skia2/resources/sksl/intrinsics/Not.sksl
John Stiles 7bb100ec04 Optimize not() intrinsic.
This is similar to the intrinsic optimization for any() and all(). Tests
for all three intrinsics have been bulked up a bit as well.

Change-Id: I262b9448e543b4709d1e7c8585f74a206c4b5abd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/406576
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2021-05-11 14:08:39 +00:00

15 lines
570 B
Plaintext

uniform half4 inputH4, expectedH4;
uniform half4 colorGreen, colorRed;
half4 main(float2 coords) {
bool4 input = bool4(inputH4);
bool4 expected = bool4(expectedH4);
const bool4 constVal = bool4(true, false, true, false);
return (not(input.xy) == expected.xy &&
not(input.xyz) == expected.xyz &&
not(input.xyzw) == expected.xyzw &&
not(constVal.xy) == expected.xy &&
not(constVal.xyz) == expected.xyz &&
not(constVal.xyzw) == expected.xyzw) ? colorGreen : colorRed;
}