diff options
author | Anjaneya Prasad Musunuri <aprasad@codeaurora.org> | 2016-12-19 20:43:06 +0530 |
---|---|---|
committer | Anjaneya Prasad Musunuri <aprasad@codeaurora.org> | 2016-12-20 18:51:41 +0530 |
commit | a6e0f9f2d181f942b46b8c6c84a65f6c8fbd2fe0 (patch) | |
tree | aee9ec3f251d1a00cf27872337528622350f2246 | |
parent | bf2b25c1064e856a69821d7e65148f3ed3544ee5 (diff) | |
download | display-a6e0f9f2d181f942b46b8c6c84a65f6c8fbd2fe0.tar.gz |
sdm: skip null commit on command mode panels
Command mode panels do not requre NULL commit to free
buffers. Skip null to resolve flickers seen during
no app layers present in draw cycle.
Change-Id: I2ed87da94db1ff3b21903f2a8c354c6cf521bf8e
CRs-fixed: 1103190
-rw-r--r-- | sdm/libs/hwc/hwc_display_primary.cpp | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/sdm/libs/hwc/hwc_display_primary.cpp b/sdm/libs/hwc/hwc_display_primary.cpp index 51402d73..7dfee0ae 100644 --- a/sdm/libs/hwc/hwc_display_primary.cpp +++ b/sdm/libs/hwc/hwc_display_primary.cpp @@ -190,7 +190,13 @@ int HWCDisplayPrimary::Prepare(hwc_display_contents_1_t *content_list) { } if (content_list->numHwLayers <= 1) { - flush_ = true; + DisplayConfigFixedInfo display_config; + display_intf_->GetConfig(&display_config); + if (display_config.is_cmdmode) { + DLOGI("Skipping null commit on cmd mode panel"); + } else { + flush_ = true; + } return 0; } @@ -204,6 +210,14 @@ int HWCDisplayPrimary::Prepare(hwc_display_contents_1_t *content_list) { int HWCDisplayPrimary::Commit(hwc_display_contents_1_t *content_list) { int status = 0; + + DisplayConfigFixedInfo display_config; + display_intf_->GetConfig(&display_config); + if (content_list->numHwLayers <= 1 && display_config.is_cmdmode) { + DLOGI("Skipping null commit on cmd mode panel"); + return 0; + } + if (display_paused_) { if (content_list->outbufAcquireFenceFd >= 0) { // If we do not handle the frame set retireFenceFd to outbufAcquireFenceFd, |