summaryrefslogtreecommitdiff
path: root/libs/hwui/ProgramCache.cpp
diff options
context:
space:
mode:
authorRomain Guy <romainguy@google.com>2017-03-15 20:38:11 -0700
committerRomain Guy <romainguy@google.com>2017-03-15 20:38:11 -0700
commit0d86d7ebc2b83f0bdd28bb99e57289215947f2e0 (patch)
tree82ec8c3a46ab66d222dba295b60ed2b57a5c1a46 /libs/hwui/ProgramCache.cpp
parent1176f7b2b097a25db3b0150e92e60b446a9952c9 (diff)
Improve dithering of alpha gradients
Bug: 32984164 Test: CtsUiRenderingTestCases Change-Id: Ic728725845befd3c52cc7b043d5c6f8e33fcfcd2
Diffstat (limited to 'libs/hwui/ProgramCache.cpp')
-rw-r--r--libs/hwui/ProgramCache.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/libs/hwui/ProgramCache.cpp b/libs/hwui/ProgramCache.cpp
index 40ab7788f218..3f842e0b5679 100644
--- a/libs/hwui/ProgramCache.cpp
+++ b/libs/hwui/ProgramCache.cpp
@@ -190,7 +190,7 @@ const char* gFS_Transfer_Functions = R"__SHADER__(
// Dithering must be done in the quantization space
// When we are writing to an sRGB framebuffer, we must do the following:
// EOTF(OETF(color) + dither)
-// The dithering pattern is generated with a triangle noise generator in the range [-0.0,1.0]
+// The dithering pattern is generated with a triangle noise generator in the range [-1.0,1.0]
// TODO: Handle linear fp16 render targets
const char* gFS_Gradient_Functions = R"__SHADER__(
float triangleNoise(const highp vec2 n) {
@@ -203,7 +203,7 @@ const char* gFS_Gradient_Functions = R"__SHADER__(
const char* gFS_Gradient_Preamble[2] = {
// Linear framebuffer
"\nvec4 dither(const vec4 color) {\n"
- " return vec4(color.rgb + (triangleNoise(gl_FragCoord.xy * screenSize.xy) / 255.0), color.a);\n"
+ " return color + (triangleNoise(gl_FragCoord.xy * screenSize.xy) / 255.0);\n"
"}\n"
"\nvec4 gammaMix(const vec4 a, const vec4 b, float v) {\n"
" vec4 c = mix(a, b, v);\n"