author | Stark Li <stark.li@amlogic.com> | 2017-03-06 09:03:19 (GMT) |
---|---|---|
committer | Stark Li <stark.li@amlogic.com> | 2017-03-07 08:39:47 (GMT) |
commit | c7e1b641c5b8aa0f2dc1ed2f95034d8c1127bbf6 (patch) | |
tree | 456905b81f2a544fd1b5f3a5bdee4c6a06426f23 | |
parent | 0bdb136ad905d4a7c0586fdf82f2eca5440a44ec (diff) | |
download | hwcomposer-c7e1b641c5b8aa0f2dc1ed2f95034d8c1127bbf6.zip hwcomposer-c7e1b641c5b8aa0f2dc1ed2f95034d8c1127bbf6.tar.gz hwcomposer-c7e1b641c5b8aa0f2dc1ed2f95034d8c1127bbf6.tar.bz2 |
PD#139581: fix osd is blanked when opration DTV & ATV frequently on tv platform
Change-Id: I6942544ebd41e94693bc80814d5fa0c4fb9eb3fa
-rw-r--r-- | hwc2/common/devices/PhysicalDevice.cpp | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/hwc2/common/devices/PhysicalDevice.cpp b/hwc2/common/devices/PhysicalDevice.cpp index 1380f2f..0a6b903 100644 --- a/hwc2/common/devices/PhysicalDevice.cpp +++ b/hwc2/common/devices/PhysicalDevice.cpp @@ -691,16 +691,18 @@ int32_t PhysicalDevice::postFramebuffer(int32_t* outRetireFence, bool hasVideoOv #endif fbInfo.renderMode = mRenderMode; - if (hasVideoOverlay && mHwcLayers.size() == 1) { - if (mIsContinuousBuf) + bool onlyOneVideoLayer = false; + if (hasVideoOverlay && mHwcLayers.size() == 1) onlyOneVideoLayer = true; + + if (mIsContinuousBuf) { + // bit 0 is osd blank flag. + fbInfo.op &= ~0x00000001; + if (onlyOneVideoLayer) { fbInfo.op |= 0x00000001; - else - setOSD0Blank(true); + } + mFramebufferContext->setStatus(onlyOneVideoLayer); } else { - if (mIsContinuousBuf) - fbInfo.op &= ~0x00000001; - else - setOSD0Blank(false); + setOSD0Blank(onlyOneVideoLayer); } if (!mClientTargetHnd || private_handle_t::validate(mClientTargetHnd) < 0 || mPowerMode == HWC2_POWER_MODE_OFF) { @@ -1192,6 +1194,7 @@ int32_t PhysicalDevice::validateDisplay(uint32_t* outNumTypes, #ifndef USE_CONTINOUS_BUFFER_COMPOSER DTRACE("No continous buffer composer!"); noDevComp = true; + mIsContinuousBuf = false; #endif if (mHwcLayers.size() == 0) { |