diff options
author | Joen Chen <joenchen@google.com> | 2023-03-29 05:24:45 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2023-03-29 05:24:45 +0000 |
commit | 9cbf266ebcf19c77139d0f665327fd9e84d41e73 (patch) | |
tree | 204f83759a56888bc438d13108cbc6e9aca9c333 | |
parent | c365356850ac76bb03b3099cbed6a46877ef1973 (diff) | |
parent | a097a660805e55977875b334b102bfc71c808fd9 (diff) | |
download | zuma-9cbf266ebcf19c77139d0f665327fd9e84d41e73.tar.gz |
Merge "libhwc2.1: The client target needs preblending" into udc-d1-dev
-rw-r--r-- | libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.cpp | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.cpp b/libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.cpp index b77aa46..0ca3195 100644 --- a/libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.cpp +++ b/libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.cpp @@ -226,16 +226,25 @@ int32_t ExynosPrimaryDisplayModule::OperationRateManager::updateOperationRateLoc void ExynosPrimaryDisplayModule::checkPreblendingRequirement() { String8 log; int count = 0; - for (size_t i = 0; i < mLayers.size(); ++i) { - auto& dpp = getDppForLayer(mLayers[i]); - mLayers[i]->mNeedPreblending = + + auto checkPreblending = [&](const int idx, ExynosMPPSource* mppSrc) -> int { + auto& dpp = getDppForLayer(mppSrc); + mppSrc->mNeedPreblending = dpp.EotfLut().enable | dpp.Gm().enable | dpp.Dtm().enable | dpp.OetfLut().enable; - count += mLayers[i]->mNeedPreblending; if (hwcCheckDebugMessages(eDebugTDM)) { - log.appendFormat(" i=%zu,pb(%d-%d,%d,%d,%d)", i, mLayers[i]->mNeedPreblending, + log.appendFormat(" i=%d,pb(%d-%d,%d,%d,%d)", idx, mppSrc->mNeedPreblending, dpp.EotfLut().enable, dpp.Gm().enable, dpp.Dtm().enable, dpp.OetfLut().enable); } + return mppSrc->mNeedPreblending; + }; + + // for client target + count += checkPreblending(-1, &mClientCompositionInfo); + + // for normal layers + for (size_t i = 0; i < mLayers.size(); ++i) { + count += checkPreblending(i, mLayers[i]); } - DISPLAY_LOGD(eDebugTDM, "%s: disp(%d),cnt=%d%s", __func__, mDisplayId, count, log.string()); + DISPLAY_LOGD(eDebugTDM, "disp(%d),cnt=%d%s", mDisplayId, count, log.string()); } |