Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 80e5de0f authored by John Reck's avatar John Reck Committed by Automerger Merge Worker
Browse files

Merge "Adjust screenshot behavior of HDR content" into udc-dev am: c83558cf...

Merge "Adjust screenshot behavior of HDR content" into udc-dev am: c83558cf am: f58c2e78 am: ae25cc8a

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/23690614



Change-Id: I0546ad8d5fba9ecd68e3d2f4317d6bed027a83ef
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 588ae1bc ae25cc8a
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -86,6 +86,7 @@ namespace {
// Debugging settings
static const bool kPrintLayerSettings = false;
static const bool kFlushAfterEveryLayer = kPrintLayerSettings;
static constexpr bool kEnableLayerBrightening = true;

} // namespace

@@ -699,7 +700,8 @@ void SkiaRenderEngine::drawLayersInternal(

    // ...and compute the dimming ratio if dimming is requested
    const float displayDimmingRatio = display.targetLuminanceNits > 0.f &&
                    maxLayerWhitePoint > 0.f && display.targetLuminanceNits > maxLayerWhitePoint
                    maxLayerWhitePoint > 0.f &&
                    (kEnableLayerBrightening || display.targetLuminanceNits > maxLayerWhitePoint)
            ? maxLayerWhitePoint / display.targetLuminanceNits
            : 1.f;

+7 −0
Original line number Diff line number Diff line
@@ -7408,6 +7408,13 @@ ftl::SharedFuture<FenceResult> SurfaceFlinger::renderScreenImpl(
                                      renderArea->getHintForSeamlessTransition());
            sdrWhitePointNits = state.sdrWhitePointNits;
            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) {
                renderIntent = state.renderIntent;