Loading libs/renderengine/skia/SkiaRenderEngine.cpp +3 −1 Original line number Original line Diff line number Diff line Loading @@ -86,6 +86,7 @@ namespace { // Debugging settings // Debugging settings static const bool kPrintLayerSettings = false; static const bool kPrintLayerSettings = false; static const bool kFlushAfterEveryLayer = kPrintLayerSettings; static const bool kFlushAfterEveryLayer = kPrintLayerSettings; static constexpr bool kEnableLayerBrightening = true; } // namespace } // namespace Loading Loading @@ -699,7 +700,8 @@ void SkiaRenderEngine::drawLayersInternal( // ...and compute the dimming ratio if dimming is requested // ...and compute the dimming ratio if dimming is requested const float displayDimmingRatio = display.targetLuminanceNits > 0.f && const float displayDimmingRatio = display.targetLuminanceNits > 0.f && maxLayerWhitePoint > 0.f && display.targetLuminanceNits > maxLayerWhitePoint maxLayerWhitePoint > 0.f && (kEnableLayerBrightening || display.targetLuminanceNits > maxLayerWhitePoint) ? maxLayerWhitePoint / display.targetLuminanceNits ? maxLayerWhitePoint / display.targetLuminanceNits : 1.f; : 1.f; Loading services/surfaceflinger/SurfaceFlinger.cpp +7 −0 Original line number Original line Diff line number Diff line Loading @@ -7419,6 +7419,13 @@ ftl::SharedFuture<FenceResult> SurfaceFlinger::renderScreenImpl( renderArea->getHintForSeamlessTransition()); renderArea->getHintForSeamlessTransition()); sdrWhitePointNits = state.sdrWhitePointNits; sdrWhitePointNits = state.sdrWhitePointNits; displayBrightnessNits = state.displayBrightnessNits; displayBrightnessNits = state.displayBrightnessNits; if (sdrWhitePointNits > 1.0f) { // Restrict the amount of HDR "headroom" in the screenshot to avoid over-dimming // the SDR portion. 2.0 chosen by experimentation constexpr float kMaxScreenshotHeadroom = 2.0f; displayBrightnessNits = std::min(sdrWhitePointNits * kMaxScreenshotHeadroom, displayBrightnessNits); } if (requestedDataspace == ui::Dataspace::UNKNOWN) { if (requestedDataspace == ui::Dataspace::UNKNOWN) { renderIntent = state.renderIntent; renderIntent = state.renderIntent; Loading Loading
libs/renderengine/skia/SkiaRenderEngine.cpp +3 −1 Original line number Original line Diff line number Diff line Loading @@ -86,6 +86,7 @@ namespace { // Debugging settings // Debugging settings static const bool kPrintLayerSettings = false; static const bool kPrintLayerSettings = false; static const bool kFlushAfterEveryLayer = kPrintLayerSettings; static const bool kFlushAfterEveryLayer = kPrintLayerSettings; static constexpr bool kEnableLayerBrightening = true; } // namespace } // namespace Loading Loading @@ -699,7 +700,8 @@ void SkiaRenderEngine::drawLayersInternal( // ...and compute the dimming ratio if dimming is requested // ...and compute the dimming ratio if dimming is requested const float displayDimmingRatio = display.targetLuminanceNits > 0.f && const float displayDimmingRatio = display.targetLuminanceNits > 0.f && maxLayerWhitePoint > 0.f && display.targetLuminanceNits > maxLayerWhitePoint maxLayerWhitePoint > 0.f && (kEnableLayerBrightening || display.targetLuminanceNits > maxLayerWhitePoint) ? maxLayerWhitePoint / display.targetLuminanceNits ? maxLayerWhitePoint / display.targetLuminanceNits : 1.f; : 1.f; Loading
services/surfaceflinger/SurfaceFlinger.cpp +7 −0 Original line number Original line Diff line number Diff line Loading @@ -7419,6 +7419,13 @@ ftl::SharedFuture<FenceResult> SurfaceFlinger::renderScreenImpl( renderArea->getHintForSeamlessTransition()); renderArea->getHintForSeamlessTransition()); sdrWhitePointNits = state.sdrWhitePointNits; sdrWhitePointNits = state.sdrWhitePointNits; displayBrightnessNits = state.displayBrightnessNits; displayBrightnessNits = state.displayBrightnessNits; if (sdrWhitePointNits > 1.0f) { // Restrict the amount of HDR "headroom" in the screenshot to avoid over-dimming // the SDR portion. 2.0 chosen by experimentation constexpr float kMaxScreenshotHeadroom = 2.0f; displayBrightnessNits = std::min(sdrWhitePointNits * kMaxScreenshotHeadroom, displayBrightnessNits); } if (requestedDataspace == ui::Dataspace::UNKNOWN) { if (requestedDataspace == ui::Dataspace::UNKNOWN) { renderIntent = state.renderIntent; renderIntent = state.renderIntent; Loading