xref: /aosp_15_r20/external/skia/tests/sksl/shared/ArrayCast.glsl (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1*c8dee2aaSAndroid Build Coastguard Worker#version 400
2*c8dee2aaSAndroid Build Coastguard Workerprecision mediump float;
3*c8dee2aaSAndroid Build Coastguard Workerprecision mediump sampler2D;
4*c8dee2aaSAndroid Build Coastguard Workerout mediump vec4 sk_FragColor;
5*c8dee2aaSAndroid Build Coastguard Workeruniform mediump vec4 colorGreen;
6*c8dee2aaSAndroid Build Coastguard Workeruniform mediump vec4 colorRed;
7*c8dee2aaSAndroid Build Coastguard Workermediump vec4 main() {
8*c8dee2aaSAndroid Build Coastguard Worker    highp float f[4] = float[4](1.0, 2.0, 3.0, 4.0);
9*c8dee2aaSAndroid Build Coastguard Worker    mediump float h[4] = f;
10*c8dee2aaSAndroid Build Coastguard Worker    f = h;
11*c8dee2aaSAndroid Build Coastguard Worker    h = f;
12*c8dee2aaSAndroid Build Coastguard Worker    highp ivec3 i3[3] = ivec3[3](ivec3(1), ivec3(2), ivec3(3));
13*c8dee2aaSAndroid Build Coastguard Worker    mediump ivec3 s3[3] = i3;
14*c8dee2aaSAndroid Build Coastguard Worker    i3 = s3;
15*c8dee2aaSAndroid Build Coastguard Worker    s3 = i3;
16*c8dee2aaSAndroid Build Coastguard Worker    mediump mat2 h2x2[2] = mat2[2](mat2(1.0, 2.0, 3.0, 4.0), mat2(5.0, 6.0, 7.0, 8.0));
17*c8dee2aaSAndroid Build Coastguard Worker    highp mat2 f2x2[2] = h2x2;
18*c8dee2aaSAndroid Build Coastguard Worker    f2x2 = h2x2;
19*c8dee2aaSAndroid Build Coastguard Worker    h2x2 = f2x2;
20*c8dee2aaSAndroid Build Coastguard Worker    return (f == h && i3 == s3) && f2x2 == h2x2 ? colorGreen : colorRed;
21*c8dee2aaSAndroid Build Coastguard Worker}
22