Implement R5G6B5 write masking. Bug 20891368 Change-Id: Ie4e153330c0a422c849953caf02b199df860b8f0 Reviewed-on: https://swiftshader-review.googlesource.com/3256 Reviewed-by: Alexis Hétu <sugoi@google.com> Reviewed-by: Nicolas Capens <capn@google.com> Tested-by: Nicolas Capens <capn@google.com>
diff --git a/src/Shader/Constants.cpp b/src/Shader/Constants.cpp index c9965ff..474842b 100644 --- a/src/Shader/Constants.cpp +++ b/src/Shader/Constants.cpp
@@ -238,6 +238,19 @@ invMaskQ23X[i][1] = ~-(i >> 3 & 1); } + for(int i = 0; i < 8; i++) + { + mask565Q[i][0] = + mask565Q[i][1] = + mask565Q[i][2] = + mask565Q[i][3] = (i & 0x1 ? 0x001F : 0) | (i & 0x2 ? 0x07E0 : 0) | (i & 0x4 ? 0xF800 : 0); + + invMask565Q[i][0] = + invMask565Q[i][1] = + invMask565Q[i][2] = + invMask565Q[i][3] = ~mask565Q[i][0]; + } + for(int i = 0; i < 4; i++) { maskW01Q[i][0] = -(i >> 0 & 1);