summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Alec Mouri <alecmouri@google.com> 2024-12-11 19:51:22 +0000
committer Alec Mouri <alecmouri@google.com> 2024-12-11 13:30:59 -0800
commit8cc976854ee82edfb419eff70532b9f012d45934 (patch)
treed39038aae0ced0c5a715dea8ac83b1c469c8ab71
parent69fe63d28343dac58e3d4dcb6105f06e488d5cc8 (diff)
Always use seamless transition flag when capturing a transition
All transitions capture a screenshot, parent it above everything else in its container, then orphans the layer once the container has finished applying its transactions to complete the transition. That is, by definition, a seamless transition. This is important for HDR, as previously the seamless transition flag was NOT used, which was causing tonemapping into SDR rather than capturing display-relative pixels. Then, if HDR layers were captured, we'd disable SDR dimming when displaying the screenshot, which effectively inverse-tonemapped the screenshot into HDR, which caused a flashing effect. Bug: 383512175 Flag: EXEMPT bug fix Test: Circle to Search an HDR video Change-Id: I04a0828caea2daf293d838c5a03a109822c0bdda
-rw-r--r--services/core/java/com/android/server/wm/Transition.java4
1 files changed, 3 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/wm/Transition.java b/services/core/java/com/android/server/wm/Transition.java
index bcd12f253299..b4a22b0dd034 100644
--- a/services/core/java/com/android/server/wm/Transition.java
+++ b/services/core/java/com/android/server/wm/Transition.java
@@ -4150,7 +4150,9 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener {
.setSourceCrop(cropBounds)
.setCaptureSecureLayers(true)
.setAllowProtected(true)
- .setHintForSeamlessTransition(isDisplayRotation)
+ // We always reroute this screenshot to the display, so this transition
+ // is ALWAYS seamless
+ .setHintForSeamlessTransition(true)
.build();
ScreenCapture.ScreenshotHardwareBuffer screenshotBuffer =
ScreenCapture.captureLayers(captureArgs);