Fix extended range handling when Gamma OETF is used
Populating fakeOutputDataspace got dropped, which turned off the one-off
workaround to bypass skia's color management to encode as gamma 2.2.
Turn it back on to prevent flickers on some devices.
Bug: 293311643
Test: SilkFX test app
Change-Id: I4370756c48fe79c1b4fcbd88a3bf2579fde1bf65
(cherry picked from commit e0bb6f4ff13cc45b61a1b0edccbf875bb3871c89)
diff --git a/libs/shaders/shaders.cpp b/libs/shaders/shaders.cpp
index c85517a..ef039e5 100644
--- a/libs/shaders/shaders.cpp
+++ b/libs/shaders/shaders.cpp
@@ -168,8 +168,8 @@
void generateOETF(std::string& shader) {
// Only support gamma 2.2 for now
shader.append(R"(
- float OETF(float3 linear) {
- return sign(linear) * pow(abs(linear), (1.0 / 2.2));
+ float3 OETF(float3 linear) {
+ return sign(linear) * pow(abs(linear), float3(1.0 / 2.2));
}
)");
}