diff options
author | 2024-12-20 09:50:24 -0800 | |
---|---|---|
committer | 2024-12-20 09:50:24 -0800 | |
commit | e549fd9cd3e7ba32a9e36a84db0d77263d93bc79 (patch) | |
tree | 68e2614c3c1284de164092bf6b2c0e929d70f9e5 | |
parent | 48780bd4850d6d36afd08e2a36146e6f028988ea (diff) | |
parent | 27aa241ba33990286ee91943b59084a89ddefbb8 (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.cpp | 11 |
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) { |