summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Sally Qi <sallyqi@google.com> 2024-12-20 09:50:24 -0800
committer Android (Google) Code Review <android-gerrit@google.com> 2024-12-20 09:50:24 -0800
commite549fd9cd3e7ba32a9e36a84db0d77263d93bc79 (patch)
tree68e2614c3c1284de164092bf6b2c0e929d70f9e5
parent48780bd4850d6d36afd08e2a36146e6f028988ea (diff)
parent27aa241ba33990286ee91943b59084a89ddefbb8 (diff)
Merge "[Lut shader] in Adaptive mode, GPU path outputs gamma 2p2 encoding for HDR layer." into main
-rw-r--r--libs/renderengine/skia/SkiaRenderEngine.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/libs/renderengine/skia/SkiaRenderEngine.cpp b/libs/renderengine/skia/SkiaRenderEngine.cpp
index 7e8ccef18e..14d08eea74 100644
--- a/libs/renderengine/skia/SkiaRenderEngine.cpp
+++ b/libs/renderengine/skia/SkiaRenderEngine.cpp
@@ -544,9 +544,18 @@ sk_sp<SkShader> SkiaRenderEngine::createRuntimeEffectShader(
}
if (graphicBuffer && parameters.layer.luts) {
+ const bool dimInLinearSpace = parameters.display.dimmingStage !=
+ aidl::android::hardware::graphics::composer3::DimmingStage::GAMMA_OETF;
+ const ui::Dataspace runtimeEffectDataspace = !dimInLinearSpace
+ ? static_cast<ui::Dataspace>(
+ (parameters.outputDataSpace & ui::Dataspace::STANDARD_MASK) |
+ ui::Dataspace::TRANSFER_GAMMA2_2 |
+ (parameters.outputDataSpace & ui::Dataspace::RANGE_MASK))
+ : parameters.outputDataSpace;
+
shader = mLutShader.lutShader(shader, parameters.layer.luts,
parameters.layer.sourceDataspace,
- toSkColorSpace(parameters.outputDataSpace));
+ toSkColorSpace(runtimeEffectDataspace));
}
if (parameters.requiresLinearEffect) {