xref: /aosp_15_r20/external/skia/resources/sksl/shared/ArrayComparison.sksl (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1*c8dee2aaSAndroid Build Coastguard Workeruniform half4 colorGreen, colorRed;
2*c8dee2aaSAndroid Build Coastguard Workeruniform float[5] testArray, testArrayNegative;
3*c8dee2aaSAndroid Build Coastguard Worker
4*c8dee2aaSAndroid Build Coastguard Workerstruct S {
5*c8dee2aaSAndroid Build Coastguard Worker    int x, y;
6*c8dee2aaSAndroid Build Coastguard Worker};
7*c8dee2aaSAndroid Build Coastguard Worker
8*c8dee2aaSAndroid Build Coastguard Workerhalf4 main(float2 coords) {
9*c8dee2aaSAndroid Build Coastguard Worker    float f1[5] = float[5](1, 2, 3, 4, 5);
10*c8dee2aaSAndroid Build Coastguard Worker    float f2[5] = float[5](1, 2, 3, 4, 5);
11*c8dee2aaSAndroid Build Coastguard Worker    float[5] f3 = float[5](1, 2, 3, -4, 5);
12*c8dee2aaSAndroid Build Coastguard Worker
13*c8dee2aaSAndroid Build Coastguard Worker    int3 v1[2] = int3[2](int3(1, 2, 3), int3(4, 5, 6));
14*c8dee2aaSAndroid Build Coastguard Worker    int3[2] v2 = int3[2](int3(1, 2, 3), int3(4, 5, 6));
15*c8dee2aaSAndroid Build Coastguard Worker    int3 v3[2] = int3[2](int3(1, 2, 3), int3(4, 5, -6));
16*c8dee2aaSAndroid Build Coastguard Worker
17*c8dee2aaSAndroid Build Coastguard Worker    half2x2[3] m1 = half2x2[3](half2x2(1), half2x2(2), half2x2(3, 4, 5, 6));
18*c8dee2aaSAndroid Build Coastguard Worker    half2x2 m2[3] = half2x2[3](half2x2(1), half2x2(2), half2x2(3, 4, 5, 6));
19*c8dee2aaSAndroid Build Coastguard Worker    half2x2 m3[3] = half2x2[3](half2x2(1), half2x2(2, 3, 4, 5), half2x2(6));
20*c8dee2aaSAndroid Build Coastguard Worker
21*c8dee2aaSAndroid Build Coastguard Worker    S s1[3] = S[3](S(1, 2), S(3, 4), S(5, 6));
22*c8dee2aaSAndroid Build Coastguard Worker    S[3] s2 = S[3](S(1, 2), S(0, 0), S(5, 6));
23*c8dee2aaSAndroid Build Coastguard Worker    S s3[3] = S[3](S(1, 2), S(3, 4), S(5, 6));
24*c8dee2aaSAndroid Build Coastguard Worker
25*c8dee2aaSAndroid Build Coastguard Worker    return // same address space (function)
26*c8dee2aaSAndroid Build Coastguard Worker           (f1 == f2) && (f1 != f3) &&
27*c8dee2aaSAndroid Build Coastguard Worker           // same address space (uniform)
28*c8dee2aaSAndroid Build Coastguard Worker           (testArray != testArrayNegative) &&
29*c8dee2aaSAndroid Build Coastguard Worker           // mixed address space
30*c8dee2aaSAndroid Build Coastguard Worker           (testArray == f1) && (testArray != f3) &&
31*c8dee2aaSAndroid Build Coastguard Worker           // mixed address space, reverse argument order
32*c8dee2aaSAndroid Build Coastguard Worker           (f1 == testArray) && (f3 != testArray) &&
33*c8dee2aaSAndroid Build Coastguard Worker           (v1 == v2) && (v1 != v3) &&
34*c8dee2aaSAndroid Build Coastguard Worker           (m1 == m2) && (m1 != m3) &&
35*c8dee2aaSAndroid Build Coastguard Worker           (s1 != s2) && (s3 == s1) ? colorGreen : colorRed;
36*c8dee2aaSAndroid Build Coastguard Worker}
37