Revert "Add ES3 intrinsics isinf/isnan to public SkSL ES3."
This reverts commit e43714f490ecab72bd1dca73f296a37fc99ef415.
Reason for revert: Several Pixel (Adreno) devices failing the test
Original change's description:
> Add ES3 intrinsics isinf/isnan to public SkSL ES3.
>
> The ES3 spec doesn't mandate that `isnan` actually has to do anything,
> so the Isnan test is not enabled. (It doesn't work on my personal
> machine unless I make the NaN detectable at compile-time.)
>
> We do not support these functions in constant-expressions, as we
> currently avoid optimizing anything into a non-finite value; we leave
> expressions alone if we calculate a NaN/inf result for their value.
>
> Change-Id: Ibfdfb47b6e6134165c8780db570de04a916d2bfa
> Bug: skia:12022
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/441581
> Auto-Submit: John Stiles <johnstiles@google.com>
> Reviewed-by: Brian Osman <brianosman@google.com>
> Commit-Queue: John Stiles <johnstiles@google.com>
TBR=brianosman@google.com,ethannicholas@google.com,johnstiles@google.com,skcq-be@skia-corp.google.com.iam.gserviceaccount.com
Change-Id: I89899ed391aa870350d0452bab4a0fb75bd7be38
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:12022
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/441716
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
diff --git a/resources/sksl/intrinsics/IsInf.sksl b/resources/sksl/intrinsics/IsInf.sksl
index ba07e73..377b124 100644
--- a/resources/sksl/intrinsics/IsInf.sksl
+++ b/resources/sksl/intrinsics/IsInf.sksl
@@ -1,16 +1 @@
-uniform half2x2 testMatrix2x2; // equals (1, 2, 3, 4)
-uniform half4 colorGreen, colorRed;
-
-half4 main(float2 coords) {
- half4 infiniteValue = half4(testMatrix2x2) / colorGreen.r;
- half4 finiteValue = half4(testMatrix2x2) / colorGreen.g;
-
- return ( (isinf(infiniteValue.x)) &&
- all(isinf(infiniteValue.xy)) &&
- all(isinf(infiniteValue.xyz)) &&
- all(isinf(infiniteValue.xyzw)) &&
- ! (isinf(finiteValue .x)) &&
- !any(isinf(finiteValue .xy)) &&
- !any(isinf(finiteValue .xyz)) &&
- !any(isinf(finiteValue .xyzw))) ? colorGreen : colorRed;
-}
+uniform half a; void main() { sk_FragColor.x = isinf(a) ? 1 : 0; }
diff --git a/resources/sksl/intrinsics/IsNan.sksl b/resources/sksl/intrinsics/IsNan.sksl
index f87f57b..f550f29 100644
--- a/resources/sksl/intrinsics/IsNan.sksl
+++ b/resources/sksl/intrinsics/IsNan.sksl
@@ -1,18 +1 @@
-uniform half4 testInputs; // equals (-1.25, 0, 0.75, 2.25)
-uniform half4 colorGreen, colorRed;
-
-half4 main(float2 coords) {
- // NOTE: the ES3 spec does not mandate NaN support. This test may not succeed on some GPUs.
-
- half4 valueIsNaN = 0 / testInputs.yyyy;
- half4 valueIsNumber = 1 / testInputs;
-
- return ( (isnan(valueIsNaN.x)) &&
- all(isnan(valueIsNaN.xy)) &&
- all(isnan(valueIsNaN.xyz)) &&
- all(isnan(valueIsNaN.xyzw)) &&
- ! (isnan(valueIsNumber.x)) &&
- !any(isnan(valueIsNumber.xy)) &&
- !any(isnan(valueIsNumber.xyz)) &&
- !any(isnan(valueIsNumber.xyzw))) ? colorGreen : colorRed;
-}
+uniform half a; void main() { sk_FragColor.x = isnan(a) ? 1 : 0; }
diff --git a/src/sksl/generated/sksl_public.dehydrated.sksl b/src/sksl/generated/sksl_public.dehydrated.sksl
index e3371d3..85921f7 100644
--- a/src/sksl/generated/sksl_public.dehydrated.sksl
+++ b/src/sksl/generated/sksl_public.dehydrated.sksl
@@ -1,4 +1,4 @@
-static uint8_t SKSL_INCLUDE_sksl_public[] = {53,3,
+static uint8_t SKSL_INCLUDE_sksl_public[] = {41,3,
7,100,101,103,114,101,101,115,
8,36,103,101,110,84,121,112,101,
7,114,97,100,105,97,110,115,
@@ -59,8 +59,6 @@
9,114,111,117,110,100,69,118,101,110,
3,105,110,116,
9,36,103,101,110,66,84,121,112,101,
-5,105,115,110,97,110,
-5,105,115,105,110,102,
6,108,101,110,103,116,104,
2,112,48,
2,112,49,
@@ -117,7 +115,7 @@
1,112,
4,100,70,100,120,
4,100,70,100,121,
-48,28,2,
+48,18,2,
52,1,0,
17,2,0,
49,2,0,10,0,3,
@@ -1167,776 +1165,742 @@
17,55,0,
46,2,0,3,
29,75,1,
-37,
-16,0,16,0,0,140,1,1,74,1,
-46,66,1,
+17,140,1,1,74,1,
+46,145,0,
52,76,1,
17,55,0,
46,5,0,3,
51,77,1,2,
46,75,1,
29,78,1,
-37,
-16,0,16,0,0,140,1,1,76,1,
-46,66,1,
+17,140,1,1,76,1,
+46,153,0,
46,78,1,
52,79,1,
-17,55,0,
+17,147,1,
46,2,0,3,
-29,80,1,
-37,
-16,0,16,0,0,146,1,1,79,1,
-46,66,1,
-52,81,1,
-17,55,0,
-46,5,0,3,
-51,82,1,2,
-46,80,1,
-29,83,1,
-37,
-16,0,16,0,0,146,1,1,81,1,
-46,66,1,
-46,83,1,
-52,84,1,
-17,55,0,
+52,80,1,
+17,150,1,
46,2,0,3,
-29,85,1,
-17,152,1,1,84,1,
+29,81,1,
+17,153,1,2,79,1,80,1,
46,145,0,
+52,82,1,
+17,147,1,
+46,5,0,3,
+52,83,1,
+17,150,1,
+46,5,0,3,
+51,84,1,2,
+46,81,1,
+29,85,1,
+17,153,1,2,82,1,83,1,
+46,153,0,
+46,85,1,
52,86,1,
17,55,0,
-46,5,0,3,
-51,87,1,2,
-46,85,1,
+46,2,0,3,
+52,87,1,
+17,67,0,
+46,2,0,3,
29,88,1,
-17,152,1,1,86,1,
-46,153,0,
-46,88,1,
+17,162,1,2,86,1,87,1,
+46,145,0,
52,89,1,
-17,159,1,
-46,2,0,3,
+17,55,0,
+46,5,0,3,
52,90,1,
-17,162,1,
-46,2,0,3,
-29,91,1,
-17,165,1,2,89,1,90,1,
-46,145,0,
-52,92,1,
-17,159,1,
+17,67,0,
46,5,0,3,
+51,91,1,2,
+46,88,1,
+29,92,1,
+17,162,1,2,89,1,90,1,
+46,153,0,
+46,92,1,
52,93,1,
-17,162,1,
-46,5,0,3,
-51,94,1,2,
-46,91,1,
-29,95,1,
-17,165,1,2,92,1,93,1,
-46,153,0,
-46,95,1,
-52,96,1,
17,55,0,
-46,2,0,3,
+49,94,1,166,1,3,
+52,95,1,
+17,67,0,
+46,94,1,3,
+29,96,1,
+17,173,1,2,93,1,95,1,
+46,94,1,
52,97,1,
-17,67,0,
-46,2,0,3,
-29,98,1,
-17,174,1,2,96,1,97,1,
-46,145,0,
+17,55,0,
+49,98,1,179,1,3,
52,99,1,
-17,55,0,
-46,5,0,3,
-52,100,1,
17,67,0,
-46,5,0,3,
-51,101,1,2,
+46,98,1,3,
+51,100,1,2,
+46,96,1,
+29,101,1,
+17,173,1,2,97,1,99,1,
46,98,1,
-29,102,1,
-17,174,1,2,99,1,100,1,
-46,153,0,
-46,102,1,
-52,103,1,
+46,101,1,
+52,102,1,
17,55,0,
-49,104,1,178,1,3,
-52,105,1,
-17,67,0,
-46,104,1,3,
+46,2,0,3,
+29,103,1,
+17,185,1,1,102,1,
+46,2,0,
+52,104,1,
+17,55,0,
+46,5,0,3,
+51,105,1,2,
+46,103,1,
29,106,1,
-17,185,1,2,103,1,105,1,
-46,104,1,
-52,107,1,
-17,55,0,
-49,108,1,191,1,3,
-52,109,1,
-17,67,0,
-46,108,1,3,
-51,110,1,2,
+17,185,1,1,104,1,
+46,5,0,
46,106,1,
-29,111,1,
-17,185,1,2,107,1,109,1,
-46,108,1,
-46,111,1,
+52,107,1,
+17,195,1,
+46,2,0,3,
+52,108,1,
+17,197,1,
+46,2,0,3,
+52,109,1,
+17,199,1,
+46,2,0,3,
+29,110,1,
+17,204,1,3,107,1,108,1,109,1,
+46,2,0,
+52,111,1,
+17,195,1,
+46,5,0,3,
52,112,1,
-17,55,0,
-46,2,0,3,
-29,113,1,
-17,197,1,1,112,1,
-46,2,0,
-52,114,1,
-17,55,0,
+17,197,1,
46,5,0,3,
-51,115,1,2,
-46,113,1,
-29,116,1,
-17,197,1,1,114,1,
+52,113,1,
+17,199,1,
+46,5,0,3,
+51,114,1,2,
+46,110,1,
+29,115,1,
+17,204,1,3,111,1,112,1,113,1,
46,5,0,
-46,116,1,
+46,115,1,
+52,116,1,
+17,197,1,
+46,2,0,3,
52,117,1,
-17,207,1,
+17,195,1,
46,2,0,3,
-52,118,1,
-17,209,1,
-46,2,0,3,
+29,118,1,
+17,216,1,2,116,1,117,1,
+46,2,0,
52,119,1,
-17,211,1,
-46,2,0,3,
-29,120,1,
-17,216,1,3,117,1,118,1,119,1,
-46,2,0,
-52,121,1,
-17,207,1,
+17,197,1,
46,5,0,3,
-52,122,1,
-17,209,1,
+52,120,1,
+17,195,1,
46,5,0,3,
+51,121,1,2,
+46,118,1,
+29,122,1,
+17,216,1,2,119,1,120,1,
+46,5,0,
+46,122,1,
52,123,1,
-17,211,1,
-46,5,0,3,
-51,124,1,2,
-46,120,1,
-29,125,1,
-17,216,1,3,121,1,122,1,123,1,
-46,5,0,
-46,125,1,
-52,126,1,
-17,209,1,
+17,197,1,
46,2,0,3,
-52,127,1,
-17,207,1,
+52,124,1,
+17,195,1,
46,2,0,3,
-29,128,1,
-17,228,1,2,126,1,127,1,
-46,2,0,
-52,129,1,
-17,209,1,
-46,5,0,3,
-52,130,1,
-17,207,1,
-46,5,0,3,
-51,131,1,2,
-46,128,1,
-29,132,1,
-17,228,1,2,129,1,130,1,
-46,5,0,
-46,132,1,
-52,133,1,
-17,209,1,
-46,2,0,3,
-52,134,1,
-17,207,1,
-46,2,0,3,
-52,135,1,
-17,236,1,
+52,125,1,
+17,224,1,
46,145,0,3,
-29,136,1,
-17,240,1,3,133,1,134,1,135,1,
+29,126,1,
+17,228,1,3,123,1,124,1,125,1,
46,2,0,
-52,137,1,
-17,209,1,
+52,127,1,
+17,197,1,
46,5,0,3,
-52,138,1,
-17,207,1,
+52,128,1,
+17,195,1,
46,5,0,3,
-52,139,1,
-17,236,1,
+52,129,1,
+17,224,1,
46,153,0,3,
-51,140,1,2,
-46,136,1,
-29,141,1,
-17,240,1,3,137,1,138,1,139,1,
+51,130,1,2,
+46,126,1,
+29,131,1,
+17,228,1,3,127,1,128,1,129,1,
46,5,0,
-46,141,1,
-52,142,1,
+46,131,1,
+52,132,1,
17,55,0,
-49,143,1,248,1,3,
-52,144,1,
+49,133,1,236,1,3,
+52,134,1,
17,67,0,
-46,143,1,3,
+46,133,1,3,
+29,135,1,
+17,247,1,2,132,1,134,1,
+46,133,1,
+52,136,1,
+17,55,0,
+49,137,1,6,2,3,
+52,138,1,
+17,67,0,
+46,137,1,3,
+51,139,1,2,
+46,135,1,
+29,140,1,
+17,247,1,2,136,1,138,1,
+46,137,1,
+46,140,1,
+52,141,1,
+17,18,2,
+46,133,1,3,
+29,142,1,
+37,
+16,0,16,0,0,20,2,1,141,1,
+46,145,0,
+52,143,1,
+17,18,2,
+46,137,1,3,
+51,144,1,2,
+46,142,1,
29,145,1,
-17,3,2,2,142,1,144,1,
-46,143,1,
-52,146,1,
-17,55,0,
-49,147,1,18,2,3,
-52,148,1,
-17,67,0,
-46,147,1,3,
-51,149,1,2,
+37,
+16,0,16,0,0,20,2,1,143,1,
+46,153,0,
46,145,1,
-29,150,1,
-17,3,2,2,146,1,148,1,
+52,146,1,
+17,18,2,
+46,133,1,3,
+29,147,1,
+37,
+16,0,16,0,0,32,2,1,146,1,
+46,133,1,
+52,148,1,
+17,18,2,
+46,137,1,3,
+51,149,1,2,
46,147,1,
+29,150,1,
+37,
+16,0,16,0,0,32,2,1,148,1,
+46,137,1,
46,150,1,
52,151,1,
-17,30,2,
-46,143,1,3,
-29,152,1,
+17,18,2,
+49,152,1,42,2,3,
+51,153,1,3,
+46,147,1,
+46,150,1,
+29,154,1,
37,
16,0,16,0,0,32,2,1,151,1,
-46,145,0,
-52,153,1,
-17,30,2,
-46,147,1,3,
-51,154,1,2,
-46,152,1,
-29,155,1,
-37,
-16,0,16,0,0,32,2,1,153,1,
-46,153,0,
-46,155,1,
+49,155,1,51,2,
+46,154,1,
52,156,1,
-17,30,2,
-46,143,1,3,
-29,157,1,
-37,
-16,0,16,0,0,44,2,1,156,1,
-46,143,1,
-52,158,1,
-17,30,2,
-46,147,1,3,
-51,159,1,2,
-46,157,1,
-29,160,1,
-37,
-16,0,16,0,0,44,2,1,158,1,
+17,18,2,
+49,157,1,60,2,3,
+51,158,1,4,
46,147,1,
-46,160,1,
+46,150,1,
+46,154,1,
+29,159,1,
+37,
+16,0,16,0,0,32,2,1,156,1,
+49,160,1,68,2,
+46,159,1,
52,161,1,
-17,30,2,
-49,162,1,54,2,3,
-51,163,1,3,
-46,157,1,
-46,160,1,
+17,18,2,
+49,162,1,76,2,3,
+51,163,1,5,
+46,147,1,
+46,150,1,
+46,154,1,
+46,159,1,
29,164,1,
37,
-16,0,16,0,0,44,2,1,161,1,
-49,165,1,63,2,
+16,0,16,0,0,32,2,1,161,1,
+49,165,1,85,2,
46,164,1,
52,166,1,
-17,30,2,
-49,167,1,72,2,3,
-51,168,1,4,
-46,157,1,
-46,160,1,
+17,18,2,
+49,167,1,94,2,3,
+51,168,1,6,
+46,147,1,
+46,150,1,
+46,154,1,
+46,159,1,
46,164,1,
29,169,1,
37,
-16,0,16,0,0,44,2,1,166,1,
-49,170,1,80,2,
+16,0,16,0,0,32,2,1,166,1,
+49,170,1,102,2,
46,169,1,
52,171,1,
-17,30,2,
-49,172,1,88,2,3,
-51,173,1,5,
-46,157,1,
-46,160,1,
+17,18,2,
+46,155,1,3,
+51,172,1,7,
+46,147,1,
+46,150,1,
+46,154,1,
+46,159,1,
46,164,1,
46,169,1,
-29,174,1,
+29,173,1,
37,
-16,0,16,0,0,44,2,1,171,1,
-49,175,1,97,2,
-46,174,1,
-52,176,1,
-17,30,2,
-49,177,1,106,2,3,
-51,178,1,6,
-46,157,1,
-46,160,1,
+16,0,16,0,0,32,2,1,171,1,
+46,152,1,
+46,173,1,
+52,174,1,
+17,18,2,
+46,160,1,3,
+51,175,1,8,
+46,147,1,
+46,150,1,
+46,154,1,
+46,159,1,
46,164,1,
46,169,1,
-46,174,1,
-29,179,1,
+46,173,1,
+29,176,1,
37,
-16,0,16,0,0,44,2,1,176,1,
-49,180,1,114,2,
-46,179,1,
-52,181,1,
-17,30,2,
-46,165,1,3,
-51,182,1,7,
+16,0,16,0,0,32,2,1,174,1,
46,157,1,
-46,160,1,
+46,176,1,
+52,177,1,
+17,18,2,
+49,178,1,110,2,3,
+51,179,1,9,
+46,147,1,
+46,150,1,
+46,154,1,
+46,159,1,
46,164,1,
46,169,1,
-46,174,1,
-46,179,1,
-29,183,1,
+46,173,1,
+46,176,1,
+29,180,1,
37,
-16,0,16,0,0,44,2,1,181,1,
-46,162,1,
-46,183,1,
-52,184,1,
-17,30,2,
-46,170,1,3,
-51,185,1,8,
-46,157,1,
-46,160,1,
+16,0,16,0,0,32,2,1,177,1,
+49,181,1,119,2,
+46,180,1,
+52,182,1,
+17,18,2,
+49,183,1,128,2,3,
+51,184,1,10,
+46,147,1,
+46,150,1,
+46,154,1,
+46,159,1,
46,164,1,
46,169,1,
-46,174,1,
-46,179,1,
-46,183,1,
-29,186,1,
+46,173,1,
+46,176,1,
+46,180,1,
+29,185,1,
37,
-16,0,16,0,0,44,2,1,184,1,
-46,167,1,
-46,186,1,
+16,0,16,0,0,32,2,1,182,1,
+49,186,1,136,2,
+46,185,1,
52,187,1,
-17,30,2,
-49,188,1,122,2,3,
-51,189,1,9,
-46,157,1,
-46,160,1,
+17,18,2,
+46,165,1,3,
+51,188,1,11,
+46,147,1,
+46,150,1,
+46,154,1,
+46,159,1,
46,164,1,
46,169,1,
-46,174,1,
-46,179,1,
-46,183,1,
-46,186,1,
-29,190,1,
+46,173,1,
+46,176,1,
+46,180,1,
+46,185,1,
+29,189,1,
37,
-16,0,16,0,0,44,2,1,187,1,
-49,191,1,131,2,
-46,190,1,
-52,192,1,
-17,30,2,
-49,193,1,140,2,3,
-51,194,1,10,
-46,157,1,
-46,160,1,
+16,0,16,0,0,32,2,1,187,1,
+46,162,1,
+46,189,1,
+52,190,1,
+17,18,2,
+46,170,1,3,
+51,191,1,12,
+46,147,1,
+46,150,1,
+46,154,1,
+46,159,1,
46,164,1,
46,169,1,
-46,174,1,
-46,179,1,
-46,183,1,
-46,186,1,
-46,190,1,
+46,173,1,
+46,176,1,
+46,180,1,
+46,185,1,
+46,189,1,
+29,192,1,
+37,
+16,0,16,0,0,32,2,1,190,1,
+46,167,1,
+46,192,1,
+52,193,1,
+17,18,2,
+46,181,1,3,
+51,194,1,13,
+46,147,1,
+46,150,1,
+46,154,1,
+46,159,1,
+46,164,1,
+46,169,1,
+46,173,1,
+46,176,1,
+46,180,1,
+46,185,1,
+46,189,1,
+46,192,1,
29,195,1,
37,
-16,0,16,0,0,44,2,1,192,1,
-49,196,1,148,2,
+16,0,16,0,0,32,2,1,193,1,
+46,178,1,
46,195,1,
-52,197,1,
-17,30,2,
-46,175,1,3,
-51,198,1,11,
-46,157,1,
-46,160,1,
-46,164,1,
-46,169,1,
-46,174,1,
-46,179,1,
-46,183,1,
-46,186,1,
-46,190,1,
-46,195,1,
-29,199,1,
-37,
-16,0,16,0,0,44,2,1,197,1,
-46,172,1,
-46,199,1,
-52,200,1,
-17,30,2,
-46,180,1,3,
-51,201,1,12,
-46,157,1,
-46,160,1,
-46,164,1,
-46,169,1,
-46,174,1,
-46,179,1,
-46,183,1,
-46,186,1,
-46,190,1,
-46,195,1,
-46,199,1,
-29,202,1,
-37,
-16,0,16,0,0,44,2,1,200,1,
-46,177,1,
-46,202,1,
-52,203,1,
-17,30,2,
-46,191,1,3,
-51,204,1,13,
-46,157,1,
-46,160,1,
-46,164,1,
-46,169,1,
-46,174,1,
-46,179,1,
-46,183,1,
-46,186,1,
-46,190,1,
-46,195,1,
-46,199,1,
-46,202,1,
-29,205,1,
-37,
-16,0,16,0,0,44,2,1,203,1,
-46,188,1,
-46,205,1,
-52,206,1,
-17,30,2,
-46,196,1,3,
-51,207,1,14,
-46,157,1,
-46,160,1,
-46,164,1,
-46,169,1,
-46,174,1,
-46,179,1,
-46,183,1,
-46,186,1,
-46,190,1,
-46,195,1,
-46,199,1,
-46,202,1,
-46,205,1,
-29,208,1,
-37,
-16,0,16,0,0,44,2,1,206,1,
-46,193,1,
-46,208,1,
-52,209,1,
-17,30,2,
-46,143,1,3,
-29,210,1,
-17,156,2,1,209,1,
-46,143,1,
-52,211,1,
-17,30,2,
-46,147,1,3,
-51,212,1,2,
-46,210,1,
-29,213,1,
-17,156,2,1,211,1,
+52,196,1,
+17,18,2,
+46,186,1,3,
+51,197,1,14,
46,147,1,
+46,150,1,
+46,154,1,
+46,159,1,
+46,164,1,
+46,169,1,
+46,173,1,
+46,176,1,
+46,180,1,
+46,185,1,
+46,189,1,
+46,192,1,
+46,195,1,
+29,198,1,
+37,
+16,0,16,0,0,32,2,1,196,1,
+46,183,1,
+46,198,1,
+52,199,1,
+17,18,2,
+46,133,1,3,
+29,200,1,
+17,144,2,1,199,1,
+46,133,1,
+52,201,1,
+17,18,2,
+46,137,1,3,
+51,202,1,2,
+46,200,1,
+29,203,1,
+17,144,2,1,201,1,
+46,137,1,
+46,203,1,
+52,204,1,
+17,55,0,
+49,205,1,152,2,3,
+52,206,1,
+17,67,0,
+46,205,1,3,
+29,207,1,
+17,157,2,2,204,1,206,1,
+49,208,1,166,2,
+52,209,1,
+17,55,0,
+49,210,1,172,2,3,
+52,211,1,
+17,67,0,
+46,210,1,3,
+51,212,1,2,
+46,207,1,
+29,213,1,
+17,157,2,2,209,1,211,1,
+46,208,1,
46,213,1,
52,214,1,
17,55,0,
-49,215,1,164,2,3,
+49,215,1,178,2,3,
52,216,1,
17,67,0,
46,215,1,3,
-29,217,1,
-17,169,2,2,214,1,216,1,
-49,218,1,178,2,
+51,217,1,3,
+46,207,1,
+46,213,1,
+29,218,1,
+17,157,2,2,214,1,216,1,
+46,208,1,
+46,218,1,
52,219,1,
17,55,0,
-49,220,1,184,2,3,
-52,221,1,
+46,205,1,3,
+52,220,1,
17,67,0,
-46,220,1,3,
-51,222,1,2,
-46,217,1,
-29,223,1,
-17,169,2,2,219,1,221,1,
-46,218,1,
-46,223,1,
-52,224,1,
+46,205,1,3,
+29,221,1,
+17,184,2,2,219,1,220,1,
+46,208,1,
+52,222,1,
17,55,0,
-49,225,1,190,2,3,
+46,210,1,3,
+52,223,1,
+17,67,0,
+46,210,1,3,
+51,224,1,2,
+46,221,1,
+29,225,1,
+17,184,2,2,222,1,223,1,
+46,208,1,
+46,225,1,
52,226,1,
-17,67,0,
-46,225,1,3,
-51,227,1,3,
-46,217,1,
-46,223,1,
-29,228,1,
-17,169,2,2,224,1,226,1,
-46,218,1,
-46,228,1,
-52,229,1,
17,55,0,
46,215,1,3,
+52,227,1,
+17,67,0,
+46,215,1,3,
+51,228,1,3,
+46,221,1,
+46,225,1,
+29,229,1,
+17,184,2,2,226,1,227,1,
+46,208,1,
+46,229,1,
52,230,1,
-17,67,0,
-46,215,1,3,
-29,231,1,
-17,196,2,2,229,1,230,1,
-46,218,1,
-52,232,1,
17,55,0,
-46,220,1,3,
+46,205,1,3,
+52,231,1,
+17,67,0,
+46,205,1,3,
+29,232,1,
+17,198,2,2,230,1,231,1,
+46,208,1,
52,233,1,
-17,67,0,
-46,220,1,3,
-51,234,1,2,
-46,231,1,
-29,235,1,
-17,196,2,2,232,1,233,1,
-46,218,1,
-46,235,1,
-52,236,1,
17,55,0,
-46,225,1,3,
+46,210,1,3,
+52,234,1,
+17,67,0,
+46,210,1,3,
+51,235,1,2,
+46,232,1,
+29,236,1,
+17,198,2,2,233,1,234,1,
+46,208,1,
+46,236,1,
52,237,1,
-17,67,0,
-46,225,1,3,
-51,238,1,3,
-46,231,1,
-46,235,1,
-29,239,1,
-17,196,2,2,236,1,237,1,
-46,218,1,
-46,239,1,
-52,240,1,
17,55,0,
46,215,1,3,
+52,238,1,
+17,67,0,
+46,215,1,3,
+51,239,1,3,
+46,232,1,
+46,236,1,
+29,240,1,
+17,198,2,2,237,1,238,1,
+46,208,1,
+46,240,1,
52,241,1,
-17,67,0,
-46,215,1,3,
-29,242,1,
-17,210,2,2,240,1,241,1,
-46,218,1,
-52,243,1,
17,55,0,
-46,220,1,3,
+46,205,1,3,
+52,242,1,
+17,67,0,
+46,205,1,3,
+29,243,1,
+17,210,2,2,241,1,242,1,
+46,208,1,
52,244,1,
-17,67,0,
-46,220,1,3,
-51,245,1,2,
-46,242,1,
-29,246,1,
-17,210,2,2,243,1,244,1,
-46,218,1,
-46,246,1,
-52,247,1,
17,55,0,
-46,225,1,3,
+46,210,1,3,
+52,245,1,
+17,67,0,
+46,210,1,3,
+51,246,1,2,
+46,243,1,
+29,247,1,
+17,210,2,2,244,1,245,1,
+46,208,1,
+46,247,1,
52,248,1,
-17,67,0,
-46,225,1,3,
-51,249,1,3,
-46,242,1,
-46,246,1,
-29,250,1,
-17,210,2,2,247,1,248,1,
-46,218,1,
-46,250,1,
-52,251,1,
17,55,0,
46,215,1,3,
+52,249,1,
+17,67,0,
+46,215,1,3,
+51,250,1,3,
+46,243,1,
+46,247,1,
+29,251,1,
+17,210,2,2,248,1,249,1,
+46,208,1,
+46,251,1,
52,252,1,
-17,67,0,
-46,215,1,3,
-29,253,1,
-17,222,2,2,251,1,252,1,
-46,218,1,
-52,254,1,
17,55,0,
-46,220,1,3,
+46,205,1,3,
+52,253,1,
+17,67,0,
+46,205,1,3,
+29,254,1,
+17,227,2,2,252,1,253,1,
+46,208,1,
52,255,1,
-17,67,0,
-46,220,1,3,
-51,0,2,2,
-46,253,1,
-29,1,2,
-17,222,2,2,254,1,255,1,
-46,218,1,
-46,1,2,
-52,2,2,
17,55,0,
-46,225,1,3,
+46,210,1,3,
+52,0,2,
+17,67,0,
+46,210,1,3,
+51,1,2,2,
+46,254,1,
+29,2,2,
+17,227,2,2,255,1,0,2,
+46,208,1,
+46,2,2,
52,3,2,
-17,67,0,
-46,225,1,3,
-51,4,2,3,
-46,253,1,
-46,1,2,
-29,5,2,
-17,222,2,2,2,2,3,2,
-46,218,1,
-46,5,2,
-52,6,2,
17,55,0,
46,215,1,3,
+52,4,2,
+17,67,0,
+46,215,1,3,
+51,5,2,3,
+46,254,1,
+46,2,2,
+29,6,2,
+17,227,2,2,3,2,4,2,
+46,208,1,
+46,6,2,
52,7,2,
-17,67,0,
-46,215,1,3,
-29,8,2,
-17,239,2,2,6,2,7,2,
-46,218,1,
-52,9,2,
17,55,0,
-46,220,1,3,
-52,10,2,
+46,208,1,3,
+52,8,2,
17,67,0,
-46,220,1,3,
-51,11,2,2,
-46,8,2,
-29,12,2,
-17,239,2,2,9,2,10,2,
-46,218,1,
-46,12,2,
-52,13,2,
+46,208,1,3,
+51,9,2,4,
+46,254,1,
+46,2,2,
+46,6,2,
+29,10,2,
+17,227,2,2,7,2,8,2,
+46,208,1,
+46,10,2,
+52,11,2,
17,55,0,
-46,225,1,3,
+46,205,1,3,
+52,12,2,
+17,67,0,
+46,205,1,3,
+29,13,2,
+17,233,2,2,11,2,12,2,
+46,208,1,
52,14,2,
-17,67,0,
-46,225,1,3,
-51,15,2,3,
-46,8,2,
-46,12,2,
-29,16,2,
-17,239,2,2,13,2,14,2,
-46,218,1,
-46,16,2,
-52,17,2,
17,55,0,
-46,218,1,3,
+46,210,1,3,
+52,15,2,
+17,67,0,
+46,210,1,3,
+51,16,2,2,
+46,13,2,
+29,17,2,
+17,233,2,2,14,2,15,2,
+46,208,1,
+46,17,2,
52,18,2,
-17,67,0,
-46,218,1,3,
-51,19,2,4,
-46,8,2,
-46,12,2,
-46,16,2,
-29,20,2,
-17,239,2,2,17,2,18,2,
-46,218,1,
-46,20,2,
-52,21,2,
17,55,0,
46,215,1,3,
+52,19,2,
+17,67,0,
+46,215,1,3,
+51,20,2,3,
+46,13,2,
+46,17,2,
+29,21,2,
+17,233,2,2,18,2,19,2,
+46,208,1,
+46,21,2,
52,22,2,
-17,67,0,
-46,215,1,3,
-29,23,2,
-17,245,2,2,21,2,22,2,
-46,218,1,
-52,24,2,
17,55,0,
-46,220,1,3,
-52,25,2,
+46,208,1,3,
+52,23,2,
17,67,0,
-46,220,1,3,
-51,26,2,2,
-46,23,2,
+46,208,1,3,
+51,24,2,4,
+46,13,2,
+46,17,2,
+46,21,2,
+29,25,2,
+17,233,2,2,22,2,23,2,
+46,208,1,
+46,25,2,
+52,26,2,
+17,55,0,
+46,208,1,3,
29,27,2,
-17,245,2,2,24,2,25,2,
-46,218,1,
-46,27,2,
-52,28,2,
-17,55,0,
-46,225,1,3,
+17,242,2,1,26,2,
+49,28,2,246,2,
52,29,2,
-17,67,0,
-46,225,1,3,
-51,30,2,3,
-46,23,2,
-46,27,2,
-29,31,2,
-17,245,2,2,28,2,29,2,
-46,218,1,
-46,31,2,
-52,32,2,
17,55,0,
-46,218,1,3,
+46,208,1,3,
+29,30,2,
+17,251,2,1,29,2,
+46,28,2,
+52,31,2,
+17,55,0,
+46,208,1,3,
+29,32,2,
+17,255,2,1,31,2,
+46,208,1,
52,33,2,
-17,67,0,
-46,218,1,3,
-51,34,2,4,
-46,23,2,
-46,27,2,
-46,31,2,
+17,3,3,
+49,34,2,9,3,3,
29,35,2,
-17,245,2,2,32,2,33,2,
-46,218,1,
-46,35,2,
+17,15,3,1,33,2,
+46,34,2,
52,36,2,
-17,55,0,
-46,218,1,3,
-29,37,2,
-17,254,2,1,36,2,
-49,38,2,2,3,
-52,39,2,
-17,55,0,
-46,218,1,3,
-29,40,2,
-17,7,3,1,39,2,
-46,38,2,
-52,41,2,
-17,55,0,
-46,218,1,3,
-29,42,2,
-17,11,3,1,41,2,
-46,218,1,
-52,43,2,
-17,15,3,
-49,44,2,21,3,3,
-29,45,2,
-17,27,3,1,43,2,
-46,44,2,
-52,46,2,
-17,15,3,
-49,47,2,36,3,3,
+17,3,3,
+49,37,2,24,3,3,
+51,38,2,2,
+46,35,2,
+29,39,2,
+17,15,3,1,36,2,
+46,37,2,
+46,39,2,
+52,40,2,
+17,31,3,
+46,2,0,3,
+29,41,2,
+37,
+16,0,16,0,0,33,3,1,40,2,
+46,2,0,
+52,42,2,
+17,31,3,
+46,2,0,3,
+29,43,2,
+37,
+16,0,16,0,0,38,3,1,42,2,
+46,2,0,
+52,44,2,
+17,31,3,
+46,5,0,3,
+51,45,2,2,
+46,41,2,
+29,46,2,
+37,
+16,0,16,0,0,33,3,1,44,2,
+46,5,0,
+46,46,2,
+52,47,2,
+17,31,3,
+46,5,0,3,
51,48,2,2,
-46,45,2,
+46,43,2,
29,49,2,
-17,27,3,1,46,2,
-46,47,2,
-46,49,2,
-52,50,2,
-17,43,3,
-46,2,0,3,
-29,51,2,
37,
-16,0,16,0,0,45,3,1,50,2,
-46,2,0,
-52,52,2,
-17,43,3,
-46,2,0,3,
-29,53,2,
-37,
-16,0,16,0,0,50,3,1,52,2,
-46,2,0,
-52,54,2,
-17,43,3,
-46,5,0,3,
-51,55,2,2,
-46,51,2,
-29,56,2,
-37,
-16,0,16,0,0,45,3,1,54,2,
+16,0,16,0,0,38,3,1,47,2,
46,5,0,
-46,56,2,
-52,57,2,
-17,43,3,
-46,5,0,3,
-51,58,2,2,
-46,53,2,
-29,59,2,
-37,
-16,0,16,0,0,50,3,1,57,2,
-46,5,0,
-46,59,2,67,0,
+46,49,2,65,0,
118,0,
33,0,
71,0,
-10,2,
-8,2,
+0,2,
+254,1,
28,0,
66,0,
46,0,
@@ -1945,45 +1909,43 @@
53,1,
18,0,
56,0,
-99,1,
-23,2,
-26,2,
+89,1,
+13,2,
+16,2,
8,0,
-141,1,
-85,1,
-92,1,
-246,1,
+131,1,
+75,1,
+82,1,
+236,1,
88,0,
98,0,
-113,1,
+103,1,
7,1,
9,1,
128,0,
138,0,
-220,1,
-231,1,
+210,1,
+221,1,
11,1,
-187,1,
+177,1,
113,0,
-73,1,
68,1,
-78,1,
-198,1,
-209,1,
+188,1,
+199,1,
93,0,
103,0,
-136,1,
+126,1,
43,1,
35,1,
63,1,
153,0,
-104,1,
-12,2,
-5,2,
+94,1,
+2,2,
+251,1,
83,0,
3,0,
-120,1,
-129,1,
+110,1,
+119,1,
22,1,
27,1,
207,0,
@@ -1995,44 +1957,44 @@
241,0,
23,0,
61,0,
-182,1,
+172,1,
17,1,
13,1,
-16,2,
+6,2,
20,
-28,45,2,
+28,35,2,
2,
48,0,0,0,0,1,
40,
8,
-46,44,2,2,
+46,34,2,2,
1,
45,
-55,43,2,0,3,0,1,2,50,
+55,33,2,0,3,0,1,2,50,
27,
46,153,0,185,0,2,
45,
-55,43,2,0,1,3,
+55,33,2,0,1,3,
25,
46,153,0,23,183,209,56,
45,
-55,43,2,0,1,3,1,0,
-28,49,2,
+55,33,2,0,1,3,1,0,
+28,39,2,
2,
48,0,0,0,0,1,
40,
8,
-46,47,2,2,
+46,37,2,2,
1,
45,
-55,46,2,0,3,0,1,2,50,
+55,36,2,0,3,0,1,2,50,
27,
46,145,0,177,0,2,
45,
-55,46,2,0,1,3,
+55,36,2,0,1,3,
25,
46,145,0,23,183,209,56,
45,
-55,46,2,0,1,3,1,0,
+55,36,2,0,1,3,1,0,
21,};
static constexpr size_t SKSL_INCLUDE_sksl_public_LENGTH = sizeof(SKSL_INCLUDE_sksl_public);
diff --git a/src/sksl/sksl_public.sksl b/src/sksl/sksl_public.sksl
index 5a9bd19..32fdccf 100644
--- a/src/sksl/sksl_public.sksl
+++ b/src/sksl/sksl_public.sksl
@@ -118,12 +118,6 @@
$es3 $genType mix($genType x, $genType y, $genBType a);
$es3 $genHType mix($genHType x, $genHType y, $genBType a);
-// 8.3 : Common Functions (Version 3.0) -- cannot be used in constant-expressions
-$es3 $genBType isnan($genType x);
-$es3 $genBType isnan($genHType x);
-$es3 $genBType isinf($genType x);
-$es3 $genBType isinf($genHType x);
-
// 8.4 : Geometric Functions
float length($genType x);
half length($genHType x);
diff --git a/tests/SkSLTest.cpp b/tests/SkSLTest.cpp
index 22960b8..c5e7f7f 100644
--- a/tests/SkSLTest.cpp
+++ b/tests/SkSLTest.cpp
@@ -214,7 +214,7 @@
SKSL_TEST_ES3(SkSLIntrinsicFloatBitsToInt, "intrinsics/FloatBitsToInt.sksl")
SKSL_TEST_ES3(SkSLIntrinsicFloatBitsToUint, "intrinsics/FloatBitsToUint.sksl")
SKSL_TEST_ES3(SkSLIntrinsicIntBitsToFloat, "intrinsics/IntBitsToFloat.sksl")
-SKSL_TEST_ES3(SkSLIntrinsicIsInf, "intrinsics/IsInf.sksl")
+SKSL_TEST_ES3(SkSLIntrinsicUintBitsToFloat, "intrinsics/UintBitsToFloat.sksl")
// TODO(johnstiles): test broken on Adreno 6xx + Vulkan
//SKSL_TEST(SkSLIntrinsicClampFloat, "intrinsics/ClampFloat.sksl")
SKSL_TEST(SkSLIntrinsicMaxFloat, "intrinsics/MaxFloat.sksl")
@@ -227,7 +227,6 @@
SKSL_TEST(SkSLIntrinsicStep, "intrinsics/Step.sksl")
SKSL_TEST_ES3(SkSLIntrinsicTrunc, "intrinsics/Trunc.sksl")
SKSL_TEST_ES3(SkSLIntrinsicTranspose, "intrinsics/Transpose.sksl")
-SKSL_TEST_ES3(SkSLIntrinsicUintBitsToFloat, "intrinsics/UintBitsToFloat.sksl")
SKSL_TEST_ES3(SkSLArrayNarrowingConversions, "runtime/ArrayNarrowingConversions.rts")
diff --git a/tests/sksl/intrinsics/IsInf.asm.frag b/tests/sksl/intrinsics/IsInf.asm.frag
index fa9b62f..822d67d 100644
--- a/tests/sksl/intrinsics/IsInf.asm.frag
+++ b/tests/sksl/intrinsics/IsInf.asm.frag
@@ -1,72 +1,24 @@
OpCapability Shader
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
-OpEntryPoint Fragment %_entrypoint_v "_entrypoint" %sk_FragColor %sk_Clockwise
-OpExecutionMode %_entrypoint_v OriginUpperLeft
+OpEntryPoint Fragment %main "main" %sk_FragColor %sk_Clockwise
+OpExecutionMode %main OriginUpperLeft
OpName %sk_FragColor "sk_FragColor"
OpName %sk_Clockwise "sk_Clockwise"
OpName %_UniformBuffer "_UniformBuffer"
-OpMemberName %_UniformBuffer 0 "testMatrix2x2"
-OpMemberName %_UniformBuffer 1 "colorGreen"
-OpMemberName %_UniformBuffer 2 "colorRed"
-OpName %_entrypoint_v "_entrypoint_v"
+OpMemberName %_UniformBuffer 0 "a"
OpName %main "main"
-OpName %infiniteValue "infiniteValue"
-OpName %finiteValue "finiteValue"
OpDecorate %sk_FragColor RelaxedPrecision
OpDecorate %sk_FragColor Location 0
OpDecorate %sk_FragColor Index 0
OpDecorate %sk_Clockwise BuiltIn FrontFacing
OpMemberDecorate %_UniformBuffer 0 Offset 0
-OpMemberDecorate %_UniformBuffer 0 ColMajor
-OpMemberDecorate %_UniformBuffer 0 MatrixStride 16
OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision
-OpMemberDecorate %_UniformBuffer 1 Offset 32
-OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision
-OpMemberDecorate %_UniformBuffer 2 Offset 48
-OpMemberDecorate %_UniformBuffer 2 RelaxedPrecision
OpDecorate %_UniformBuffer Block
OpDecorate %10 Binding 0
OpDecorate %10 DescriptorSet 0
-OpDecorate %infiniteValue RelaxedPrecision
-OpDecorate %33 RelaxedPrecision
-OpDecorate %34 RelaxedPrecision
-OpDecorate %35 RelaxedPrecision
-OpDecorate %36 RelaxedPrecision
-OpDecorate %37 RelaxedPrecision
-OpDecorate %38 RelaxedPrecision
-OpDecorate %42 RelaxedPrecision
-OpDecorate %43 RelaxedPrecision
-OpDecorate %45 RelaxedPrecision
-OpDecorate %46 RelaxedPrecision
-OpDecorate %finiteValue RelaxedPrecision
-OpDecorate %49 RelaxedPrecision
-OpDecorate %50 RelaxedPrecision
-OpDecorate %51 RelaxedPrecision
-OpDecorate %52 RelaxedPrecision
-OpDecorate %53 RelaxedPrecision
-OpDecorate %54 RelaxedPrecision
-OpDecorate %56 RelaxedPrecision
-OpDecorate %57 RelaxedPrecision
-OpDecorate %58 RelaxedPrecision
-OpDecorate %59 RelaxedPrecision
-OpDecorate %62 RelaxedPrecision
-OpDecorate %63 RelaxedPrecision
-OpDecorate %68 RelaxedPrecision
-OpDecorate %69 RelaxedPrecision
-OpDecorate %76 RelaxedPrecision
-OpDecorate %77 RelaxedPrecision
-OpDecorate %85 RelaxedPrecision
-OpDecorate %92 RelaxedPrecision
-OpDecorate %93 RelaxedPrecision
-OpDecorate %100 RelaxedPrecision
-OpDecorate %101 RelaxedPrecision
-OpDecorate %108 RelaxedPrecision
-OpDecorate %109 RelaxedPrecision
-OpDecorate %116 RelaxedPrecision
-OpDecorate %123 RelaxedPrecision
-OpDecorate %126 RelaxedPrecision
-OpDecorate %127 RelaxedPrecision
+OpDecorate %21 RelaxedPrecision
+OpDecorate %24 RelaxedPrecision
%float = OpTypeFloat 32
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
@@ -74,157 +26,24 @@
%bool = OpTypeBool
%_ptr_Input_bool = OpTypePointer Input %bool
%sk_Clockwise = OpVariable %_ptr_Input_bool Input
-%v2float = OpTypeVector %float 2
-%mat2v2float = OpTypeMatrix %v2float 2
-%_UniformBuffer = OpTypeStruct %mat2v2float %v4float %v4float
+%_UniformBuffer = OpTypeStruct %float
%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer
%10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform
%void = OpTypeVoid
-%17 = OpTypeFunction %void
-%float_0 = OpConstant %float 0
-%20 = OpConstantComposite %v2float %float_0 %float_0
-%_ptr_Function_v2float = OpTypePointer Function %v2float
-%24 = OpTypeFunction %v4float %_ptr_Function_v2float
-%_ptr_Function_v4float = OpTypePointer Function %v4float
-%_ptr_Uniform_mat2v2float = OpTypePointer Uniform %mat2v2float
+%14 = OpTypeFunction %void
+%_ptr_Uniform_float = OpTypePointer Uniform %float
%int = OpTypeInt 32 1
%int_0 = OpConstant %int 0
-%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
%int_1 = OpConstant %int 1
-%float_1 = OpConstant %float 1
-%false = OpConstantFalse %bool
-%v2bool = OpTypeVector %bool 2
-%v3float = OpTypeVector %float 3
-%v3bool = OpTypeVector %bool 3
-%v4bool = OpTypeVector %bool 4
-%int_2 = OpConstant %int 2
-%_entrypoint_v = OpFunction %void None %17
-%18 = OpLabel
-%21 = OpVariable %_ptr_Function_v2float Function
-OpStore %21 %20
-%23 = OpFunctionCall %v4float %main %21
-OpStore %sk_FragColor %23
+%_ptr_Output_float = OpTypePointer Output %float
+%main = OpFunction %void None %14
+%15 = OpLabel
+%17 = OpAccessChain %_ptr_Uniform_float %10 %int_0
+%21 = OpLoad %float %17
+%16 = OpIsInf %bool %21
+%22 = OpSelect %int %16 %int_1 %int_0
+%24 = OpConvertSToF %float %22
+%25 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
+OpStore %25 %24
OpReturn
OpFunctionEnd
-%main = OpFunction %v4float None %24
-%25 = OpFunctionParameter %_ptr_Function_v2float
-%26 = OpLabel
-%infiniteValue = OpVariable %_ptr_Function_v4float Function
-%finiteValue = OpVariable %_ptr_Function_v4float Function
-%118 = OpVariable %_ptr_Function_v4float Function
-%29 = OpAccessChain %_ptr_Uniform_mat2v2float %10 %int_0
-%33 = OpLoad %mat2v2float %29
-%34 = OpCompositeExtract %float %33 0 0
-%35 = OpCompositeExtract %float %33 0 1
-%36 = OpCompositeExtract %float %33 1 0
-%37 = OpCompositeExtract %float %33 1 1
-%38 = OpCompositeConstruct %v4float %34 %35 %36 %37
-%39 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1
-%42 = OpLoad %v4float %39
-%43 = OpCompositeExtract %float %42 0
-%45 = OpFDiv %float %float_1 %43
-%46 = OpVectorTimesScalar %v4float %38 %45
-OpStore %infiniteValue %46
-%48 = OpAccessChain %_ptr_Uniform_mat2v2float %10 %int_0
-%49 = OpLoad %mat2v2float %48
-%50 = OpCompositeExtract %float %49 0 0
-%51 = OpCompositeExtract %float %49 0 1
-%52 = OpCompositeExtract %float %49 1 0
-%53 = OpCompositeExtract %float %49 1 1
-%54 = OpCompositeConstruct %v4float %50 %51 %52 %53
-%55 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1
-%56 = OpLoad %v4float %55
-%57 = OpCompositeExtract %float %56 1
-%58 = OpFDiv %float %float_1 %57
-%59 = OpVectorTimesScalar %v4float %54 %58
-OpStore %finiteValue %59
-%62 = OpLoad %v4float %infiniteValue
-%63 = OpCompositeExtract %float %62 0
-%61 = OpIsInf %bool %63
-OpSelectionMerge %65 None
-OpBranchConditional %61 %64 %65
-%64 = OpLabel
-%68 = OpLoad %v4float %infiniteValue
-%69 = OpVectorShuffle %v2float %68 %68 0 1
-%67 = OpIsInf %v2bool %69
-%66 = OpAll %bool %67
-OpBranch %65
-%65 = OpLabel
-%71 = OpPhi %bool %false %26 %66 %64
-OpSelectionMerge %73 None
-OpBranchConditional %71 %72 %73
-%72 = OpLabel
-%76 = OpLoad %v4float %infiniteValue
-%77 = OpVectorShuffle %v3float %76 %76 0 1 2
-%75 = OpIsInf %v3bool %77
-%74 = OpAll %bool %75
-OpBranch %73
-%73 = OpLabel
-%80 = OpPhi %bool %false %65 %74 %72
-OpSelectionMerge %82 None
-OpBranchConditional %80 %81 %82
-%81 = OpLabel
-%85 = OpLoad %v4float %infiniteValue
-%84 = OpIsInf %v4bool %85
-%83 = OpAll %bool %84
-OpBranch %82
-%82 = OpLabel
-%87 = OpPhi %bool %false %73 %83 %81
-OpSelectionMerge %89 None
-OpBranchConditional %87 %88 %89
-%88 = OpLabel
-%92 = OpLoad %v4float %finiteValue
-%93 = OpCompositeExtract %float %92 0
-%91 = OpIsInf %bool %93
-%90 = OpLogicalNot %bool %91
-OpBranch %89
-%89 = OpLabel
-%94 = OpPhi %bool %false %82 %90 %88
-OpSelectionMerge %96 None
-OpBranchConditional %94 %95 %96
-%95 = OpLabel
-%100 = OpLoad %v4float %finiteValue
-%101 = OpVectorShuffle %v2float %100 %100 0 1
-%99 = OpIsInf %v2bool %101
-%98 = OpAny %bool %99
-%97 = OpLogicalNot %bool %98
-OpBranch %96
-%96 = OpLabel
-%102 = OpPhi %bool %false %89 %97 %95
-OpSelectionMerge %104 None
-OpBranchConditional %102 %103 %104
-%103 = OpLabel
-%108 = OpLoad %v4float %finiteValue
-%109 = OpVectorShuffle %v3float %108 %108 0 1 2
-%107 = OpIsInf %v3bool %109
-%106 = OpAny %bool %107
-%105 = OpLogicalNot %bool %106
-OpBranch %104
-%104 = OpLabel
-%110 = OpPhi %bool %false %96 %105 %103
-OpSelectionMerge %112 None
-OpBranchConditional %110 %111 %112
-%111 = OpLabel
-%116 = OpLoad %v4float %finiteValue
-%115 = OpIsInf %v4bool %116
-%114 = OpAny %bool %115
-%113 = OpLogicalNot %bool %114
-OpBranch %112
-%112 = OpLabel
-%117 = OpPhi %bool %false %104 %113 %111
-OpSelectionMerge %121 None
-OpBranchConditional %117 %119 %120
-%119 = OpLabel
-%122 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1
-%123 = OpLoad %v4float %122
-OpStore %118 %123
-OpBranch %121
-%120 = OpLabel
-%124 = OpAccessChain %_ptr_Uniform_v4float %10 %int_2
-%126 = OpLoad %v4float %124
-OpStore %118 %126
-OpBranch %121
-%121 = OpLabel
-%127 = OpLoad %v4float %118
-OpReturnValue %127
-OpFunctionEnd
diff --git a/tests/sksl/intrinsics/IsInf.glsl b/tests/sksl/intrinsics/IsInf.glsl
index 0d3898d..b0fe50d 100644
--- a/tests/sksl/intrinsics/IsInf.glsl
+++ b/tests/sksl/intrinsics/IsInf.glsl
@@ -1,10 +1,6 @@
out vec4 sk_FragColor;
-uniform mat2 testMatrix2x2;
-uniform vec4 colorGreen;
-uniform vec4 colorRed;
-vec4 main() {
- vec4 infiniteValue = vec4(testMatrix2x2) / colorGreen.x;
- vec4 finiteValue = vec4(testMatrix2x2) / colorGreen.y;
- return ((((((isinf(infiniteValue.x) && all(isinf(infiniteValue.xy))) && all(isinf(infiniteValue.xyz))) && all(isinf(infiniteValue))) && !isinf(finiteValue.x)) && !any(isinf(finiteValue.xy))) && !any(isinf(finiteValue.xyz))) && !any(isinf(finiteValue)) ? colorGreen : colorRed;
+uniform float a;
+void main() {
+ sk_FragColor.x = float(isinf(a) ? 1 : 0);
}
diff --git a/tests/sksl/intrinsics/IsInf.metal b/tests/sksl/intrinsics/IsInf.metal
index 5779c07..32d85b9 100644
--- a/tests/sksl/intrinsics/IsInf.metal
+++ b/tests/sksl/intrinsics/IsInf.metal
@@ -2,24 +2,16 @@
#include <simd/simd.h>
using namespace metal;
struct Uniforms {
- float2x2 testMatrix2x2;
- float4 colorGreen;
- float4 colorRed;
+ float a;
};
struct Inputs {
};
struct Outputs {
float4 sk_FragColor [[color(0)]];
};
-
-float4 float4_from_float2x2(float2x2 x) {
- return float4(x[0].xy, x[1].xy);
-}
fragment Outputs fragmentMain(Inputs _in [[stage_in]], constant Uniforms& _uniforms [[buffer(0)]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) {
Outputs _out;
(void)_out;
- float4 infiniteValue = float4_from_float2x2(_uniforms.testMatrix2x2) / _uniforms.colorGreen.x;
- float4 finiteValue = float4_from_float2x2(_uniforms.testMatrix2x2) / _uniforms.colorGreen.y;
- _out.sk_FragColor = ((((((isinf(infiniteValue.x) && all(isinf(infiniteValue.xy))) && all(isinf(infiniteValue.xyz))) && all(isinf(infiniteValue))) && !isinf(finiteValue.x)) && !any(isinf(finiteValue.xy))) && !any(isinf(finiteValue.xyz))) && !any(isinf(finiteValue)) ? _uniforms.colorGreen : _uniforms.colorRed;
+ _out.sk_FragColor.x = float(isinf(_uniforms.a) ? 1 : 0);
return _out;
}
diff --git a/tests/sksl/intrinsics/IsNan.asm.frag b/tests/sksl/intrinsics/IsNan.asm.frag
index ca47cd2..3c23c2e 100644
--- a/tests/sksl/intrinsics/IsNan.asm.frag
+++ b/tests/sksl/intrinsics/IsNan.asm.frag
@@ -1,57 +1,24 @@
OpCapability Shader
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
-OpEntryPoint Fragment %_entrypoint_v "_entrypoint" %sk_FragColor %sk_Clockwise
-OpExecutionMode %_entrypoint_v OriginUpperLeft
+OpEntryPoint Fragment %main "main" %sk_FragColor %sk_Clockwise
+OpExecutionMode %main OriginUpperLeft
OpName %sk_FragColor "sk_FragColor"
OpName %sk_Clockwise "sk_Clockwise"
OpName %_UniformBuffer "_UniformBuffer"
-OpMemberName %_UniformBuffer 0 "testInputs"
-OpMemberName %_UniformBuffer 1 "colorGreen"
-OpMemberName %_UniformBuffer 2 "colorRed"
-OpName %_entrypoint_v "_entrypoint_v"
+OpMemberName %_UniformBuffer 0 "a"
OpName %main "main"
-OpName %valueIsNaN "valueIsNaN"
-OpName %valueIsNumber "valueIsNumber"
OpDecorate %sk_FragColor RelaxedPrecision
OpDecorate %sk_FragColor Location 0
OpDecorate %sk_FragColor Index 0
OpDecorate %sk_Clockwise BuiltIn FrontFacing
OpMemberDecorate %_UniformBuffer 0 Offset 0
OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision
-OpMemberDecorate %_UniformBuffer 1 Offset 16
-OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision
-OpMemberDecorate %_UniformBuffer 2 Offset 32
-OpMemberDecorate %_UniformBuffer 2 RelaxedPrecision
OpDecorate %_UniformBuffer Block
OpDecorate %10 Binding 0
OpDecorate %10 DescriptorSet 0
-OpDecorate %valueIsNaN RelaxedPrecision
-OpDecorate %32 RelaxedPrecision
-OpDecorate %33 RelaxedPrecision
-OpDecorate %34 RelaxedPrecision
-OpDecorate %35 RelaxedPrecision
-OpDecorate %valueIsNumber RelaxedPrecision
-OpDecorate %39 RelaxedPrecision
-OpDecorate %40 RelaxedPrecision
-OpDecorate %41 RelaxedPrecision
-OpDecorate %44 RelaxedPrecision
-OpDecorate %45 RelaxedPrecision
-OpDecorate %50 RelaxedPrecision
-OpDecorate %51 RelaxedPrecision
-OpDecorate %58 RelaxedPrecision
-OpDecorate %59 RelaxedPrecision
-OpDecorate %67 RelaxedPrecision
-OpDecorate %74 RelaxedPrecision
-OpDecorate %75 RelaxedPrecision
-OpDecorate %82 RelaxedPrecision
-OpDecorate %83 RelaxedPrecision
-OpDecorate %90 RelaxedPrecision
-OpDecorate %91 RelaxedPrecision
-OpDecorate %98 RelaxedPrecision
-OpDecorate %106 RelaxedPrecision
-OpDecorate %109 RelaxedPrecision
-OpDecorate %110 RelaxedPrecision
+OpDecorate %21 RelaxedPrecision
+OpDecorate %24 RelaxedPrecision
%float = OpTypeFloat 32
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
@@ -59,140 +26,24 @@
%bool = OpTypeBool
%_ptr_Input_bool = OpTypePointer Input %bool
%sk_Clockwise = OpVariable %_ptr_Input_bool Input
-%_UniformBuffer = OpTypeStruct %v4float %v4float %v4float
+%_UniformBuffer = OpTypeStruct %float
%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer
%10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform
%void = OpTypeVoid
-%15 = OpTypeFunction %void
-%v2float = OpTypeVector %float 2
-%float_0 = OpConstant %float 0
-%19 = OpConstantComposite %v2float %float_0 %float_0
-%_ptr_Function_v2float = OpTypePointer Function %v2float
-%23 = OpTypeFunction %v4float %_ptr_Function_v2float
-%_ptr_Function_v4float = OpTypePointer Function %v4float
-%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
+%14 = OpTypeFunction %void
+%_ptr_Uniform_float = OpTypePointer Uniform %float
%int = OpTypeInt 32 1
%int_0 = OpConstant %int 0
-%float_1 = OpConstant %float 1
-%false = OpConstantFalse %bool
-%v2bool = OpTypeVector %bool 2
-%v3float = OpTypeVector %float 3
-%v3bool = OpTypeVector %bool 3
-%v4bool = OpTypeVector %bool 4
%int_1 = OpConstant %int 1
-%int_2 = OpConstant %int 2
-%_entrypoint_v = OpFunction %void None %15
-%16 = OpLabel
-%20 = OpVariable %_ptr_Function_v2float Function
-OpStore %20 %19
-%22 = OpFunctionCall %v4float %main %20
-OpStore %sk_FragColor %22
+%_ptr_Output_float = OpTypePointer Output %float
+%main = OpFunction %void None %14
+%15 = OpLabel
+%17 = OpAccessChain %_ptr_Uniform_float %10 %int_0
+%21 = OpLoad %float %17
+%16 = OpIsNan %bool %21
+%22 = OpSelect %int %16 %int_1 %int_0
+%24 = OpConvertSToF %float %22
+%25 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
+OpStore %25 %24
OpReturn
OpFunctionEnd
-%main = OpFunction %v4float None %23
-%24 = OpFunctionParameter %_ptr_Function_v2float
-%25 = OpLabel
-%valueIsNaN = OpVariable %_ptr_Function_v4float Function
-%valueIsNumber = OpVariable %_ptr_Function_v4float Function
-%100 = OpVariable %_ptr_Function_v4float Function
-%28 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
-%32 = OpLoad %v4float %28
-%33 = OpVectorShuffle %v4float %32 %32 1 1 1 1
-%34 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %float_0
-%35 = OpFDiv %v4float %34 %33
-OpStore %valueIsNaN %35
-%38 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
-%39 = OpLoad %v4float %38
-%40 = OpCompositeConstruct %v4float %float_1 %float_1 %float_1 %float_1
-%41 = OpFDiv %v4float %40 %39
-OpStore %valueIsNumber %41
-%44 = OpLoad %v4float %valueIsNaN
-%45 = OpCompositeExtract %float %44 0
-%43 = OpIsNan %bool %45
-OpSelectionMerge %47 None
-OpBranchConditional %43 %46 %47
-%46 = OpLabel
-%50 = OpLoad %v4float %valueIsNaN
-%51 = OpVectorShuffle %v2float %50 %50 0 1
-%49 = OpIsNan %v2bool %51
-%48 = OpAll %bool %49
-OpBranch %47
-%47 = OpLabel
-%53 = OpPhi %bool %false %25 %48 %46
-OpSelectionMerge %55 None
-OpBranchConditional %53 %54 %55
-%54 = OpLabel
-%58 = OpLoad %v4float %valueIsNaN
-%59 = OpVectorShuffle %v3float %58 %58 0 1 2
-%57 = OpIsNan %v3bool %59
-%56 = OpAll %bool %57
-OpBranch %55
-%55 = OpLabel
-%62 = OpPhi %bool %false %47 %56 %54
-OpSelectionMerge %64 None
-OpBranchConditional %62 %63 %64
-%63 = OpLabel
-%67 = OpLoad %v4float %valueIsNaN
-%66 = OpIsNan %v4bool %67
-%65 = OpAll %bool %66
-OpBranch %64
-%64 = OpLabel
-%69 = OpPhi %bool %false %55 %65 %63
-OpSelectionMerge %71 None
-OpBranchConditional %69 %70 %71
-%70 = OpLabel
-%74 = OpLoad %v4float %valueIsNumber
-%75 = OpCompositeExtract %float %74 0
-%73 = OpIsNan %bool %75
-%72 = OpLogicalNot %bool %73
-OpBranch %71
-%71 = OpLabel
-%76 = OpPhi %bool %false %64 %72 %70
-OpSelectionMerge %78 None
-OpBranchConditional %76 %77 %78
-%77 = OpLabel
-%82 = OpLoad %v4float %valueIsNumber
-%83 = OpVectorShuffle %v2float %82 %82 0 1
-%81 = OpIsNan %v2bool %83
-%80 = OpAny %bool %81
-%79 = OpLogicalNot %bool %80
-OpBranch %78
-%78 = OpLabel
-%84 = OpPhi %bool %false %71 %79 %77
-OpSelectionMerge %86 None
-OpBranchConditional %84 %85 %86
-%85 = OpLabel
-%90 = OpLoad %v4float %valueIsNumber
-%91 = OpVectorShuffle %v3float %90 %90 0 1 2
-%89 = OpIsNan %v3bool %91
-%88 = OpAny %bool %89
-%87 = OpLogicalNot %bool %88
-OpBranch %86
-%86 = OpLabel
-%92 = OpPhi %bool %false %78 %87 %85
-OpSelectionMerge %94 None
-OpBranchConditional %92 %93 %94
-%93 = OpLabel
-%98 = OpLoad %v4float %valueIsNumber
-%97 = OpIsNan %v4bool %98
-%96 = OpAny %bool %97
-%95 = OpLogicalNot %bool %96
-OpBranch %94
-%94 = OpLabel
-%99 = OpPhi %bool %false %86 %95 %93
-OpSelectionMerge %103 None
-OpBranchConditional %99 %101 %102
-%101 = OpLabel
-%104 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1
-%106 = OpLoad %v4float %104
-OpStore %100 %106
-OpBranch %103
-%102 = OpLabel
-%107 = OpAccessChain %_ptr_Uniform_v4float %10 %int_2
-%109 = OpLoad %v4float %107
-OpStore %100 %109
-OpBranch %103
-%103 = OpLabel
-%110 = OpLoad %v4float %100
-OpReturnValue %110
-OpFunctionEnd
diff --git a/tests/sksl/intrinsics/IsNan.glsl b/tests/sksl/intrinsics/IsNan.glsl
index 68c97df..35a2501 100644
--- a/tests/sksl/intrinsics/IsNan.glsl
+++ b/tests/sksl/intrinsics/IsNan.glsl
@@ -1,10 +1,6 @@
out vec4 sk_FragColor;
-uniform vec4 testInputs;
-uniform vec4 colorGreen;
-uniform vec4 colorRed;
-vec4 main() {
- vec4 valueIsNaN = 0.0 / testInputs.yyyy;
- vec4 valueIsNumber = 1.0 / testInputs;
- return ((((((isnan(valueIsNaN.x) && all(isnan(valueIsNaN.xy))) && all(isnan(valueIsNaN.xyz))) && all(isnan(valueIsNaN))) && !isnan(valueIsNumber.x)) && !any(isnan(valueIsNumber.xy))) && !any(isnan(valueIsNumber.xyz))) && !any(isnan(valueIsNumber)) ? colorGreen : colorRed;
+uniform float a;
+void main() {
+ sk_FragColor.x = float(isnan(a) ? 1 : 0);
}
diff --git a/tests/sksl/intrinsics/IsNan.metal b/tests/sksl/intrinsics/IsNan.metal
index dddf2ed..f9f038c 100644
--- a/tests/sksl/intrinsics/IsNan.metal
+++ b/tests/sksl/intrinsics/IsNan.metal
@@ -2,9 +2,7 @@
#include <simd/simd.h>
using namespace metal;
struct Uniforms {
- float4 testInputs;
- float4 colorGreen;
- float4 colorRed;
+ float a;
};
struct Inputs {
};
@@ -14,8 +12,6 @@
fragment Outputs fragmentMain(Inputs _in [[stage_in]], constant Uniforms& _uniforms [[buffer(0)]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) {
Outputs _out;
(void)_out;
- float4 valueIsNaN = 0.0 / _uniforms.testInputs.yyyy;
- float4 valueIsNumber = 1.0 / _uniforms.testInputs;
- _out.sk_FragColor = ((((((isnan(valueIsNaN.x) && all(isnan(valueIsNaN.xy))) && all(isnan(valueIsNaN.xyz))) && all(isnan(valueIsNaN))) && !isnan(valueIsNumber.x)) && !any(isnan(valueIsNumber.xy))) && !any(isnan(valueIsNumber.xyz))) && !any(isnan(valueIsNumber)) ? _uniforms.colorGreen : _uniforms.colorRed;
+ _out.sk_FragColor.x = float(isnan(_uniforms.a) ? 1 : 0);
return _out;
}