xref: /aosp_15_r20/external/skia/tests/sksl/shared/OutParams.glsl (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1*c8dee2aaSAndroid Build Coastguard Worker
2*c8dee2aaSAndroid Build Coastguard Workerout vec4 sk_FragColor;
3*c8dee2aaSAndroid Build Coastguard Workeruniform vec4 colorGreen;
4*c8dee2aaSAndroid Build Coastguard Workeruniform vec4 colorRed;
5*c8dee2aaSAndroid Build Coastguard Workeruniform vec4 colorWhite;
6*c8dee2aaSAndroid Build Coastguard Workervoid out_half_vh(out float v) {
7*c8dee2aaSAndroid Build Coastguard Worker    v = colorWhite.x;
8*c8dee2aaSAndroid Build Coastguard Worker}
9*c8dee2aaSAndroid Build Coastguard Workervoid out_half2_vh2(out vec2 v) {
10*c8dee2aaSAndroid Build Coastguard Worker    v = vec2(colorWhite.y);
11*c8dee2aaSAndroid Build Coastguard Worker}
12*c8dee2aaSAndroid Build Coastguard Workervoid out_half3_vh3(out vec3 v) {
13*c8dee2aaSAndroid Build Coastguard Worker    v = vec3(colorWhite.z);
14*c8dee2aaSAndroid Build Coastguard Worker}
15*c8dee2aaSAndroid Build Coastguard Workervoid out_half4_vh4(out vec4 v) {
16*c8dee2aaSAndroid Build Coastguard Worker    v = vec4(colorWhite.w);
17*c8dee2aaSAndroid Build Coastguard Worker}
18*c8dee2aaSAndroid Build Coastguard Workervoid out_half2x2_vh22(out mat2 v) {
19*c8dee2aaSAndroid Build Coastguard Worker    v = mat2(colorWhite.x);
20*c8dee2aaSAndroid Build Coastguard Worker}
21*c8dee2aaSAndroid Build Coastguard Workervoid out_half3x3_vh33(out mat3 v) {
22*c8dee2aaSAndroid Build Coastguard Worker    v = mat3(colorWhite.y);
23*c8dee2aaSAndroid Build Coastguard Worker}
24*c8dee2aaSAndroid Build Coastguard Workervoid out_half4x4_vh44(out mat4 v) {
25*c8dee2aaSAndroid Build Coastguard Worker    v = mat4(colorWhite.z);
26*c8dee2aaSAndroid Build Coastguard Worker}
27*c8dee2aaSAndroid Build Coastguard Workervoid out_int_vi(out int v) {
28*c8dee2aaSAndroid Build Coastguard Worker    v = int(colorWhite.x);
29*c8dee2aaSAndroid Build Coastguard Worker}
30*c8dee2aaSAndroid Build Coastguard Workervoid out_int2_vi2(out ivec2 v) {
31*c8dee2aaSAndroid Build Coastguard Worker    v = ivec2(int(colorWhite.y));
32*c8dee2aaSAndroid Build Coastguard Worker}
33*c8dee2aaSAndroid Build Coastguard Workervoid out_int3_vi3(out ivec3 v) {
34*c8dee2aaSAndroid Build Coastguard Worker    v = ivec3(int(colorWhite.z));
35*c8dee2aaSAndroid Build Coastguard Worker}
36*c8dee2aaSAndroid Build Coastguard Workervoid out_int4_vi4(out ivec4 v) {
37*c8dee2aaSAndroid Build Coastguard Worker    v = ivec4(int(colorWhite.w));
38*c8dee2aaSAndroid Build Coastguard Worker}
39*c8dee2aaSAndroid Build Coastguard Workervoid out_float_vf(out float v) {
40*c8dee2aaSAndroid Build Coastguard Worker    v = colorWhite.x;
41*c8dee2aaSAndroid Build Coastguard Worker}
42*c8dee2aaSAndroid Build Coastguard Workervoid out_float2_vf2(out vec2 v) {
43*c8dee2aaSAndroid Build Coastguard Worker    v = vec2(colorWhite.y);
44*c8dee2aaSAndroid Build Coastguard Worker}
45*c8dee2aaSAndroid Build Coastguard Workervoid out_float3_vf3(out vec3 v) {
46*c8dee2aaSAndroid Build Coastguard Worker    v = vec3(colorWhite.z);
47*c8dee2aaSAndroid Build Coastguard Worker}
48*c8dee2aaSAndroid Build Coastguard Workervoid out_float4_vf4(out vec4 v) {
49*c8dee2aaSAndroid Build Coastguard Worker    v = vec4(colorWhite.w);
50*c8dee2aaSAndroid Build Coastguard Worker}
51*c8dee2aaSAndroid Build Coastguard Workervoid out_float2x2_vf22(out mat2 v) {
52*c8dee2aaSAndroid Build Coastguard Worker    v = mat2(colorWhite.x);
53*c8dee2aaSAndroid Build Coastguard Worker}
54*c8dee2aaSAndroid Build Coastguard Workervoid out_float3x3_vf33(out mat3 v) {
55*c8dee2aaSAndroid Build Coastguard Worker    v = mat3(colorWhite.y);
56*c8dee2aaSAndroid Build Coastguard Worker}
57*c8dee2aaSAndroid Build Coastguard Workervoid out_float4x4_vf44(out mat4 v) {
58*c8dee2aaSAndroid Build Coastguard Worker    v = mat4(colorWhite.z);
59*c8dee2aaSAndroid Build Coastguard Worker}
60*c8dee2aaSAndroid Build Coastguard Workervoid out_bool_vb(out bool v) {
61*c8dee2aaSAndroid Build Coastguard Worker    v = bool(colorWhite.x);
62*c8dee2aaSAndroid Build Coastguard Worker}
63*c8dee2aaSAndroid Build Coastguard Workervoid out_bool2_vb2(out bvec2 v) {
64*c8dee2aaSAndroid Build Coastguard Worker    v = bvec2(bool(colorWhite.y));
65*c8dee2aaSAndroid Build Coastguard Worker}
66*c8dee2aaSAndroid Build Coastguard Workervoid out_bool3_vb3(out bvec3 v) {
67*c8dee2aaSAndroid Build Coastguard Worker    v = bvec3(bool(colorWhite.z));
68*c8dee2aaSAndroid Build Coastguard Worker}
69*c8dee2aaSAndroid Build Coastguard Workervoid out_bool4_vb4(out bvec4 v) {
70*c8dee2aaSAndroid Build Coastguard Worker    v = bvec4(bool(colorWhite.w));
71*c8dee2aaSAndroid Build Coastguard Worker}
72*c8dee2aaSAndroid Build Coastguard Workervec4 main() {
73*c8dee2aaSAndroid Build Coastguard Worker    float h;
74*c8dee2aaSAndroid Build Coastguard Worker    out_half_vh(h);
75*c8dee2aaSAndroid Build Coastguard Worker    vec2 h2;
76*c8dee2aaSAndroid Build Coastguard Worker    out_half2_vh2(h2);
77*c8dee2aaSAndroid Build Coastguard Worker    vec3 h3;
78*c8dee2aaSAndroid Build Coastguard Worker    out_half3_vh3(h3);
79*c8dee2aaSAndroid Build Coastguard Worker    vec4 h4;
80*c8dee2aaSAndroid Build Coastguard Worker    out_half4_vh4(h4);
81*c8dee2aaSAndroid Build Coastguard Worker    out_half_vh(h3.y);
82*c8dee2aaSAndroid Build Coastguard Worker    out_half2_vh2(h3.xz);
83*c8dee2aaSAndroid Build Coastguard Worker    out_half4_vh4(h4.zwxy);
84*c8dee2aaSAndroid Build Coastguard Worker    mat2 h2x2;
85*c8dee2aaSAndroid Build Coastguard Worker    out_half2x2_vh22(h2x2);
86*c8dee2aaSAndroid Build Coastguard Worker    mat3 h3x3;
87*c8dee2aaSAndroid Build Coastguard Worker    out_half3x3_vh33(h3x3);
88*c8dee2aaSAndroid Build Coastguard Worker    mat4 h4x4;
89*c8dee2aaSAndroid Build Coastguard Worker    out_half4x4_vh44(h4x4);
90*c8dee2aaSAndroid Build Coastguard Worker    out_half3_vh3(h3x3[1]);
91*c8dee2aaSAndroid Build Coastguard Worker    out_half_vh(h4x4[3].w);
92*c8dee2aaSAndroid Build Coastguard Worker    out_half_vh(h2x2[0].x);
93*c8dee2aaSAndroid Build Coastguard Worker    int i;
94*c8dee2aaSAndroid Build Coastguard Worker    out_int_vi(i);
95*c8dee2aaSAndroid Build Coastguard Worker    ivec2 i2;
96*c8dee2aaSAndroid Build Coastguard Worker    out_int2_vi2(i2);
97*c8dee2aaSAndroid Build Coastguard Worker    ivec3 i3;
98*c8dee2aaSAndroid Build Coastguard Worker    out_int3_vi3(i3);
99*c8dee2aaSAndroid Build Coastguard Worker    ivec4 i4;
100*c8dee2aaSAndroid Build Coastguard Worker    out_int4_vi4(i4);
101*c8dee2aaSAndroid Build Coastguard Worker    out_int3_vi3(i4.xyz);
102*c8dee2aaSAndroid Build Coastguard Worker    out_int_vi(i2.y);
103*c8dee2aaSAndroid Build Coastguard Worker    float f;
104*c8dee2aaSAndroid Build Coastguard Worker    out_float_vf(f);
105*c8dee2aaSAndroid Build Coastguard Worker    vec2 f2;
106*c8dee2aaSAndroid Build Coastguard Worker    out_float2_vf2(f2);
107*c8dee2aaSAndroid Build Coastguard Worker    vec3 f3;
108*c8dee2aaSAndroid Build Coastguard Worker    out_float3_vf3(f3);
109*c8dee2aaSAndroid Build Coastguard Worker    vec4 f4;
110*c8dee2aaSAndroid Build Coastguard Worker    out_float4_vf4(f4);
111*c8dee2aaSAndroid Build Coastguard Worker    out_float2_vf2(f3.xy);
112*c8dee2aaSAndroid Build Coastguard Worker    out_float_vf(f2.x);
113*c8dee2aaSAndroid Build Coastguard Worker    mat2 f2x2;
114*c8dee2aaSAndroid Build Coastguard Worker    out_float2x2_vf22(f2x2);
115*c8dee2aaSAndroid Build Coastguard Worker    mat3 f3x3;
116*c8dee2aaSAndroid Build Coastguard Worker    out_float3x3_vf33(f3x3);
117*c8dee2aaSAndroid Build Coastguard Worker    mat4 f4x4;
118*c8dee2aaSAndroid Build Coastguard Worker    out_float4x4_vf44(f4x4);
119*c8dee2aaSAndroid Build Coastguard Worker    out_float_vf(f2x2[0].x);
120*c8dee2aaSAndroid Build Coastguard Worker    bool b;
121*c8dee2aaSAndroid Build Coastguard Worker    out_bool_vb(b);
122*c8dee2aaSAndroid Build Coastguard Worker    bvec2 b2;
123*c8dee2aaSAndroid Build Coastguard Worker    out_bool2_vb2(b2);
124*c8dee2aaSAndroid Build Coastguard Worker    bvec3 b3;
125*c8dee2aaSAndroid Build Coastguard Worker    out_bool3_vb3(b3);
126*c8dee2aaSAndroid Build Coastguard Worker    bvec4 b4;
127*c8dee2aaSAndroid Build Coastguard Worker    out_bool4_vb4(b4);
128*c8dee2aaSAndroid Build Coastguard Worker    out_bool2_vb2(b4.xw);
129*c8dee2aaSAndroid Build Coastguard Worker    out_bool_vb(b3.z);
130*c8dee2aaSAndroid Build Coastguard Worker    bool ok = true;
131*c8dee2aaSAndroid Build Coastguard Worker    ok = ok && 1.0 == (((((h * h2.x) * h3.x) * h4.x) * h2x2[0].x) * h3x3[0].x) * h4x4[0].x;
132*c8dee2aaSAndroid Build Coastguard Worker    ok = ok && 1.0 == (((((f * f2.x) * f3.x) * f4.x) * f2x2[0].x) * f3x3[0].x) * f4x4[0].x;
133*c8dee2aaSAndroid Build Coastguard Worker    ok = ok && 1 == ((i * i2.x) * i3.x) * i4.x;
134*c8dee2aaSAndroid Build Coastguard Worker    ok = ok && (((b && b2.x) && b3.x) && b4.x);
135*c8dee2aaSAndroid Build Coastguard Worker    return ok ? colorGreen : colorRed;
136*c8dee2aaSAndroid Build Coastguard Worker}
137