xref: /aosp_15_r20/external/deqp/data/gles2/shaders/constants.test (revision 35238bce31c2a825756842865a792f8cf7f89930)
1*35238bceSAndroid Build Coastguard Workercase float_input
2*35238bceSAndroid Build Coastguard Worker    values
3*35238bceSAndroid Build Coastguard Worker    {
4*35238bceSAndroid Build Coastguard Worker        input float in0 = [ 1.123 | 0.75 | -512.0 | -72.13 | 199.91 | -1.123 | -0.75 | 512.0 | -72.13 | -199.91 ];
5*35238bceSAndroid Build Coastguard Worker        output float out0 = [ 1.123 | 0.75 | -512.0 | -72.13 | 199.91 | -1.123 | -0.75 | 512.0 | -72.13 | -199.91 ];
6*35238bceSAndroid Build Coastguard Worker    }
7*35238bceSAndroid Build Coastguard Worker
8*35238bceSAndroid Build Coastguard Worker    both ""
9*35238bceSAndroid Build Coastguard Worker        precision highp float;
10*35238bceSAndroid Build Coastguard Worker        ${DECLARATIONS}
11*35238bceSAndroid Build Coastguard Worker        void main()
12*35238bceSAndroid Build Coastguard Worker        {
13*35238bceSAndroid Build Coastguard Worker            out0 = in0;
14*35238bceSAndroid Build Coastguard Worker            ${OUTPUT}
15*35238bceSAndroid Build Coastguard Worker        }
16*35238bceSAndroid Build Coastguard Worker    ""
17*35238bceSAndroid Build Coastguard Workerend
18*35238bceSAndroid Build Coastguard Worker
19*35238bceSAndroid Build Coastguard Workercase float_uniform
20*35238bceSAndroid Build Coastguard Worker    values
21*35238bceSAndroid Build Coastguard Worker    {
22*35238bceSAndroid Build Coastguard Worker        uniform float uni0 = [ 1.123 | 0.75 | -512.0 | -72.13 | 199.91 ];
23*35238bceSAndroid Build Coastguard Worker        output float out0 = [ 1.123 | 0.75 | -512.0 | -72.13 | 199.91 ];
24*35238bceSAndroid Build Coastguard Worker    }
25*35238bceSAndroid Build Coastguard Worker
26*35238bceSAndroid Build Coastguard Worker    both ""
27*35238bceSAndroid Build Coastguard Worker        precision highp float;
28*35238bceSAndroid Build Coastguard Worker        ${DECLARATIONS}
29*35238bceSAndroid Build Coastguard Worker        uniform float uni0;
30*35238bceSAndroid Build Coastguard Worker        void main()
31*35238bceSAndroid Build Coastguard Worker        {
32*35238bceSAndroid Build Coastguard Worker            out0 = uni0;
33*35238bceSAndroid Build Coastguard Worker            ${OUTPUT}
34*35238bceSAndroid Build Coastguard Worker        }
35*35238bceSAndroid Build Coastguard Worker    ""
36*35238bceSAndroid Build Coastguard Workerend
37*35238bceSAndroid Build Coastguard Worker
38*35238bceSAndroid Build Coastguard Workercase float_0
39*35238bceSAndroid Build Coastguard Worker    values { output float out0 = 1.123; }
40*35238bceSAndroid Build Coastguard Worker    both ""
41*35238bceSAndroid Build Coastguard Worker        precision highp float;
42*35238bceSAndroid Build Coastguard Worker        ${DECLARATIONS}
43*35238bceSAndroid Build Coastguard Worker        void main()
44*35238bceSAndroid Build Coastguard Worker        {
45*35238bceSAndroid Build Coastguard Worker            out0 = +1.123;
46*35238bceSAndroid Build Coastguard Worker            ${OUTPUT}
47*35238bceSAndroid Build Coastguard Worker        }
48*35238bceSAndroid Build Coastguard Worker    ""
49*35238bceSAndroid Build Coastguard Workerend
50*35238bceSAndroid Build Coastguard Worker
51*35238bceSAndroid Build Coastguard Workercase float_1
52*35238bceSAndroid Build Coastguard Worker    values { output float out0 = -1.123; }
53*35238bceSAndroid Build Coastguard Worker    both ""
54*35238bceSAndroid Build Coastguard Worker        precision highp float;
55*35238bceSAndroid Build Coastguard Worker        ${DECLARATIONS}
56*35238bceSAndroid Build Coastguard Worker        void main()
57*35238bceSAndroid Build Coastguard Worker        {
58*35238bceSAndroid Build Coastguard Worker            out0 = -1.123;
59*35238bceSAndroid Build Coastguard Worker            ${OUTPUT}
60*35238bceSAndroid Build Coastguard Worker        }
61*35238bceSAndroid Build Coastguard Worker    ""
62*35238bceSAndroid Build Coastguard Workerend
63*35238bceSAndroid Build Coastguard Worker
64*35238bceSAndroid Build Coastguard Workercase float_2
65*35238bceSAndroid Build Coastguard Worker    values { output float out0 = 123.0; }
66*35238bceSAndroid Build Coastguard Worker    both ""
67*35238bceSAndroid Build Coastguard Worker        precision highp float;
68*35238bceSAndroid Build Coastguard Worker        ${DECLARATIONS}
69*35238bceSAndroid Build Coastguard Worker        void main()
70*35238bceSAndroid Build Coastguard Worker        {
71*35238bceSAndroid Build Coastguard Worker            out0 = 123.;
72*35238bceSAndroid Build Coastguard Worker            ${OUTPUT}
73*35238bceSAndroid Build Coastguard Worker        }
74*35238bceSAndroid Build Coastguard Worker    ""
75*35238bceSAndroid Build Coastguard Workerend
76*35238bceSAndroid Build Coastguard Worker
77*35238bceSAndroid Build Coastguard Workercase float_3
78*35238bceSAndroid Build Coastguard Worker    values { output float out0 = 0.123; }
79*35238bceSAndroid Build Coastguard Worker    both ""
80*35238bceSAndroid Build Coastguard Worker        precision highp float;
81*35238bceSAndroid Build Coastguard Worker        ${DECLARATIONS}
82*35238bceSAndroid Build Coastguard Worker        void main()
83*35238bceSAndroid Build Coastguard Worker        {
84*35238bceSAndroid Build Coastguard Worker            out0 = .123;
85*35238bceSAndroid Build Coastguard Worker            ${OUTPUT}
86*35238bceSAndroid Build Coastguard Worker        }
87*35238bceSAndroid Build Coastguard Worker    ""
88*35238bceSAndroid Build Coastguard Workerend
89*35238bceSAndroid Build Coastguard Worker
90*35238bceSAndroid Build Coastguard Workercase float_4
91*35238bceSAndroid Build Coastguard Worker    values { output float out0 = 123.0; }
92*35238bceSAndroid Build Coastguard Worker    both ""
93*35238bceSAndroid Build Coastguard Worker        precision highp float;
94*35238bceSAndroid Build Coastguard Worker        ${DECLARATIONS}
95*35238bceSAndroid Build Coastguard Worker        void main()
96*35238bceSAndroid Build Coastguard Worker        {
97*35238bceSAndroid Build Coastguard Worker            out0 = 1.23e+2;
98*35238bceSAndroid Build Coastguard Worker            ${OUTPUT}
99*35238bceSAndroid Build Coastguard Worker        }
100*35238bceSAndroid Build Coastguard Worker    ""
101*35238bceSAndroid Build Coastguard Workerend
102*35238bceSAndroid Build Coastguard Worker
103*35238bceSAndroid Build Coastguard Workercase float_5
104*35238bceSAndroid Build Coastguard Worker    values { output float out0 = -123.0; }
105*35238bceSAndroid Build Coastguard Worker    both ""
106*35238bceSAndroid Build Coastguard Worker        precision highp float;
107*35238bceSAndroid Build Coastguard Worker        ${DECLARATIONS}
108*35238bceSAndroid Build Coastguard Worker        void main()
109*35238bceSAndroid Build Coastguard Worker        {
110*35238bceSAndroid Build Coastguard Worker            out0 = -1.23E+2;
111*35238bceSAndroid Build Coastguard Worker            ${OUTPUT}
112*35238bceSAndroid Build Coastguard Worker        }
113*35238bceSAndroid Build Coastguard Worker    ""
114*35238bceSAndroid Build Coastguard Workerend
115*35238bceSAndroid Build Coastguard Worker
116*35238bceSAndroid Build Coastguard Workercase float_6
117*35238bceSAndroid Build Coastguard Worker    values { output float out0 = -123.0; }
118*35238bceSAndroid Build Coastguard Worker    both ""
119*35238bceSAndroid Build Coastguard Worker        precision highp float;
120*35238bceSAndroid Build Coastguard Worker        ${DECLARATIONS}
121*35238bceSAndroid Build Coastguard Worker        void main()
122*35238bceSAndroid Build Coastguard Worker        {
123*35238bceSAndroid Build Coastguard Worker            out0 = -1.23e2;
124*35238bceSAndroid Build Coastguard Worker            ${OUTPUT}
125*35238bceSAndroid Build Coastguard Worker        }
126*35238bceSAndroid Build Coastguard Worker    ""
127*35238bceSAndroid Build Coastguard Workerend
128*35238bceSAndroid Build Coastguard Worker
129*35238bceSAndroid Build Coastguard Workercase float_7
130*35238bceSAndroid Build Coastguard Worker    values { output float out0 = 0.123; }
131*35238bceSAndroid Build Coastguard Worker    both ""
132*35238bceSAndroid Build Coastguard Worker        precision highp float;
133*35238bceSAndroid Build Coastguard Worker        ${DECLARATIONS}
134*35238bceSAndroid Build Coastguard Worker        void main()
135*35238bceSAndroid Build Coastguard Worker        {
136*35238bceSAndroid Build Coastguard Worker            out0 = 1.23e-1;
137*35238bceSAndroid Build Coastguard Worker            ${OUTPUT}
138*35238bceSAndroid Build Coastguard Worker        }
139*35238bceSAndroid Build Coastguard Worker    ""
140*35238bceSAndroid Build Coastguard Workerend
141*35238bceSAndroid Build Coastguard Worker
142*35238bceSAndroid Build Coastguard Workercase float_8
143*35238bceSAndroid Build Coastguard Worker    values { output float out0 = 1000.0; }
144*35238bceSAndroid Build Coastguard Worker    both ""
145*35238bceSAndroid Build Coastguard Worker        precision highp float;
146*35238bceSAndroid Build Coastguard Worker        ${DECLARATIONS}
147*35238bceSAndroid Build Coastguard Worker        void main()
148*35238bceSAndroid Build Coastguard Worker        {
149*35238bceSAndroid Build Coastguard Worker            out0 = 1e3;
150*35238bceSAndroid Build Coastguard Worker            ${OUTPUT}
151*35238bceSAndroid Build Coastguard Worker        }
152*35238bceSAndroid Build Coastguard Worker    ""
153*35238bceSAndroid Build Coastguard Workerend
154*35238bceSAndroid Build Coastguard Worker
155*35238bceSAndroid Build Coastguard Workercase int_0
156*35238bceSAndroid Build Coastguard Worker    values { output int out0 = 123; }
157*35238bceSAndroid Build Coastguard Worker    both ""
158*35238bceSAndroid Build Coastguard Worker        precision highp float;
159*35238bceSAndroid Build Coastguard Worker        ${DECLARATIONS}
160*35238bceSAndroid Build Coastguard Worker        void main()
161*35238bceSAndroid Build Coastguard Worker        {
162*35238bceSAndroid Build Coastguard Worker            out0 = 123;
163*35238bceSAndroid Build Coastguard Worker            ${OUTPUT}
164*35238bceSAndroid Build Coastguard Worker        }
165*35238bceSAndroid Build Coastguard Worker    ""
166*35238bceSAndroid Build Coastguard Workerend
167*35238bceSAndroid Build Coastguard Worker
168*35238bceSAndroid Build Coastguard Workercase int_1
169*35238bceSAndroid Build Coastguard Worker    values { output int out0 = -321; }
170*35238bceSAndroid Build Coastguard Worker    both ""
171*35238bceSAndroid Build Coastguard Worker        precision highp float;
172*35238bceSAndroid Build Coastguard Worker        ${DECLARATIONS}
173*35238bceSAndroid Build Coastguard Worker        void main()
174*35238bceSAndroid Build Coastguard Worker        {
175*35238bceSAndroid Build Coastguard Worker            out0 = -321;
176*35238bceSAndroid Build Coastguard Worker            ${OUTPUT}
177*35238bceSAndroid Build Coastguard Worker        }
178*35238bceSAndroid Build Coastguard Worker    ""
179*35238bceSAndroid Build Coastguard Workerend
180*35238bceSAndroid Build Coastguard Worker
181*35238bceSAndroid Build Coastguard Workercase int_2
182*35238bceSAndroid Build Coastguard Worker    values { output int out0 = 123; }
183*35238bceSAndroid Build Coastguard Worker    both ""
184*35238bceSAndroid Build Coastguard Worker        precision highp float;
185*35238bceSAndroid Build Coastguard Worker        ${DECLARATIONS}
186*35238bceSAndroid Build Coastguard Worker        void main()
187*35238bceSAndroid Build Coastguard Worker        {
188*35238bceSAndroid Build Coastguard Worker            out0 = 0x7B;
189*35238bceSAndroid Build Coastguard Worker            ${OUTPUT}
190*35238bceSAndroid Build Coastguard Worker        }
191*35238bceSAndroid Build Coastguard Worker    ""
192*35238bceSAndroid Build Coastguard Workerend
193*35238bceSAndroid Build Coastguard Worker
194*35238bceSAndroid Build Coastguard Workercase int_3
195*35238bceSAndroid Build Coastguard Worker    values { output int out0 = 123; }
196*35238bceSAndroid Build Coastguard Worker    both ""
197*35238bceSAndroid Build Coastguard Worker        precision highp float;
198*35238bceSAndroid Build Coastguard Worker        ${DECLARATIONS}
199*35238bceSAndroid Build Coastguard Worker        void main()
200*35238bceSAndroid Build Coastguard Worker        {
201*35238bceSAndroid Build Coastguard Worker            out0 = 0X7b;
202*35238bceSAndroid Build Coastguard Worker            ${OUTPUT}
203*35238bceSAndroid Build Coastguard Worker        }
204*35238bceSAndroid Build Coastguard Worker    ""
205*35238bceSAndroid Build Coastguard Workerend
206*35238bceSAndroid Build Coastguard Worker
207*35238bceSAndroid Build Coastguard Workercase int_4
208*35238bceSAndroid Build Coastguard Worker    values { output int out0 = 123; }
209*35238bceSAndroid Build Coastguard Worker    both ""
210*35238bceSAndroid Build Coastguard Worker        precision highp float;
211*35238bceSAndroid Build Coastguard Worker        ${DECLARATIONS}
212*35238bceSAndroid Build Coastguard Worker        void main()
213*35238bceSAndroid Build Coastguard Worker        {
214*35238bceSAndroid Build Coastguard Worker            out0 = 0173;
215*35238bceSAndroid Build Coastguard Worker            ${OUTPUT}
216*35238bceSAndroid Build Coastguard Worker        }
217*35238bceSAndroid Build Coastguard Worker    ""
218*35238bceSAndroid Build Coastguard Workerend
219*35238bceSAndroid Build Coastguard Worker
220*35238bceSAndroid Build Coastguard Workercase bool_0
221*35238bceSAndroid Build Coastguard Worker    values { output bool out0 = true; }
222*35238bceSAndroid Build Coastguard Worker    both ""
223*35238bceSAndroid Build Coastguard Worker        precision highp float;
224*35238bceSAndroid Build Coastguard Worker        ${DECLARATIONS}
225*35238bceSAndroid Build Coastguard Worker        void main()
226*35238bceSAndroid Build Coastguard Worker        {
227*35238bceSAndroid Build Coastguard Worker            out0 = true;
228*35238bceSAndroid Build Coastguard Worker            ${OUTPUT}
229*35238bceSAndroid Build Coastguard Worker        }
230*35238bceSAndroid Build Coastguard Worker    ""
231*35238bceSAndroid Build Coastguard Workerend
232*35238bceSAndroid Build Coastguard Worker
233*35238bceSAndroid Build Coastguard Workercase bool_1
234*35238bceSAndroid Build Coastguard Worker    values { output bool out0 = false; }
235*35238bceSAndroid Build Coastguard Worker    both ""
236*35238bceSAndroid Build Coastguard Worker        precision highp float;
237*35238bceSAndroid Build Coastguard Worker        ${DECLARATIONS}
238*35238bceSAndroid Build Coastguard Worker        void main()
239*35238bceSAndroid Build Coastguard Worker        {
240*35238bceSAndroid Build Coastguard Worker            out0 = false;
241*35238bceSAndroid Build Coastguard Worker            ${OUTPUT}
242*35238bceSAndroid Build Coastguard Worker        }
243*35238bceSAndroid Build Coastguard Worker    ""
244*35238bceSAndroid Build Coastguard Workerend
245*35238bceSAndroid Build Coastguard Worker
246*35238bceSAndroid Build Coastguard Workercase const_float_global
247*35238bceSAndroid Build Coastguard Worker     values { output float out0 = 1000.0; }
248*35238bceSAndroid Build Coastguard Worker
249*35238bceSAndroid Build Coastguard Worker     both ""
250*35238bceSAndroid Build Coastguard Worker          precision mediump float;
251*35238bceSAndroid Build Coastguard Worker          ${DECLARATIONS}
252*35238bceSAndroid Build Coastguard Worker          const float theConstant = 1000.0;
253*35238bceSAndroid Build Coastguard Worker          void main()
254*35238bceSAndroid Build Coastguard Worker          {
255*35238bceSAndroid Build Coastguard Worker                out0 = theConstant;
256*35238bceSAndroid Build Coastguard Worker                ${OUTPUT}
257*35238bceSAndroid Build Coastguard Worker          }
258*35238bceSAndroid Build Coastguard Worker     ""
259*35238bceSAndroid Build Coastguard Workerend
260*35238bceSAndroid Build Coastguard Worker
261*35238bceSAndroid Build Coastguard Workercase const_float_main
262*35238bceSAndroid Build Coastguard Worker     values { output float out0 = -1000.0; }
263*35238bceSAndroid Build Coastguard Worker
264*35238bceSAndroid Build Coastguard Worker     both ""
265*35238bceSAndroid Build Coastguard Worker          precision mediump float;
266*35238bceSAndroid Build Coastguard Worker          ${DECLARATIONS}
267*35238bceSAndroid Build Coastguard Worker          void main()
268*35238bceSAndroid Build Coastguard Worker          {
269*35238bceSAndroid Build Coastguard Worker                const float theConstant = -1000.0;
270*35238bceSAndroid Build Coastguard Worker                out0 = theConstant;
271*35238bceSAndroid Build Coastguard Worker                ${OUTPUT}
272*35238bceSAndroid Build Coastguard Worker          }
273*35238bceSAndroid Build Coastguard Worker     ""
274*35238bceSAndroid Build Coastguard Workerend
275*35238bceSAndroid Build Coastguard Worker
276*35238bceSAndroid Build Coastguard Workercase const_float_function
277*35238bceSAndroid Build Coastguard Worker     values { output float out0 = -0.012; }
278*35238bceSAndroid Build Coastguard Worker
279*35238bceSAndroid Build Coastguard Worker     both ""
280*35238bceSAndroid Build Coastguard Worker          precision mediump float;
281*35238bceSAndroid Build Coastguard Worker          ${DECLARATIONS}
282*35238bceSAndroid Build Coastguard Worker          float func()
283*35238bceSAndroid Build Coastguard Worker          {
284*35238bceSAndroid Build Coastguard Worker                const float theConstant = -0.012;
285*35238bceSAndroid Build Coastguard Worker                return theConstant;
286*35238bceSAndroid Build Coastguard Worker          }
287*35238bceSAndroid Build Coastguard Worker          void main()
288*35238bceSAndroid Build Coastguard Worker          {
289*35238bceSAndroid Build Coastguard Worker                out0 = func();
290*35238bceSAndroid Build Coastguard Worker                ${OUTPUT}
291*35238bceSAndroid Build Coastguard Worker          }
292*35238bceSAndroid Build Coastguard Worker     ""
293*35238bceSAndroid Build Coastguard Workerend
294*35238bceSAndroid Build Coastguard Worker
295*35238bceSAndroid Build Coastguard Workercase const_float_scope
296*35238bceSAndroid Build Coastguard Worker     values { output float out0 = 1.0; }
297*35238bceSAndroid Build Coastguard Worker
298*35238bceSAndroid Build Coastguard Worker     both ""
299*35238bceSAndroid Build Coastguard Worker          precision mediump float;
300*35238bceSAndroid Build Coastguard Worker          ${DECLARATIONS}
301*35238bceSAndroid Build Coastguard Worker          void main()
302*35238bceSAndroid Build Coastguard Worker          {
303*35238bceSAndroid Build Coastguard Worker                {
304*35238bceSAndroid Build Coastguard Worker                     const float theConstant = 1.0;
305*35238bceSAndroid Build Coastguard Worker                     out0 = theConstant;
306*35238bceSAndroid Build Coastguard Worker                }
307*35238bceSAndroid Build Coastguard Worker                ${OUTPUT}
308*35238bceSAndroid Build Coastguard Worker          }
309*35238bceSAndroid Build Coastguard Worker     ""
310*35238bceSAndroid Build Coastguard Workerend
311*35238bceSAndroid Build Coastguard Worker
312*35238bceSAndroid Build Coastguard Workercase const_float_scope_shawdowing_1
313*35238bceSAndroid Build Coastguard Worker     values { output float out0 = 1.0; }
314*35238bceSAndroid Build Coastguard Worker
315*35238bceSAndroid Build Coastguard Worker     both ""
316*35238bceSAndroid Build Coastguard Worker          precision mediump float;
317*35238bceSAndroid Build Coastguard Worker          ${DECLARATIONS}
318*35238bceSAndroid Build Coastguard Worker          void main()
319*35238bceSAndroid Build Coastguard Worker          {
320*35238bceSAndroid Build Coastguard Worker                const float theConstant = 100.0;
321*35238bceSAndroid Build Coastguard Worker                {
322*35238bceSAndroid Build Coastguard Worker                     const float theConstant = 1.0;
323*35238bceSAndroid Build Coastguard Worker                     out0 = theConstant;
324*35238bceSAndroid Build Coastguard Worker                }
325*35238bceSAndroid Build Coastguard Worker                ${OUTPUT}
326*35238bceSAndroid Build Coastguard Worker          }
327*35238bceSAndroid Build Coastguard Worker     ""
328*35238bceSAndroid Build Coastguard Workerend
329*35238bceSAndroid Build Coastguard Worker
330*35238bceSAndroid Build Coastguard Workercase const_float_scope_shawdowing_2
331*35238bceSAndroid Build Coastguard Worker     values { output float out0 = 1.0; }
332*35238bceSAndroid Build Coastguard Worker
333*35238bceSAndroid Build Coastguard Worker     both ""
334*35238bceSAndroid Build Coastguard Worker          precision mediump float;
335*35238bceSAndroid Build Coastguard Worker          ${DECLARATIONS}
336*35238bceSAndroid Build Coastguard Worker          const float theConstant = 100.0;
337*35238bceSAndroid Build Coastguard Worker          void main()
338*35238bceSAndroid Build Coastguard Worker          {
339*35238bceSAndroid Build Coastguard Worker                {
340*35238bceSAndroid Build Coastguard Worker                     const float theConstant = 1.0;
341*35238bceSAndroid Build Coastguard Worker                     out0 = theConstant;
342*35238bceSAndroid Build Coastguard Worker                }
343*35238bceSAndroid Build Coastguard Worker                ${OUTPUT}
344*35238bceSAndroid Build Coastguard Worker          }
345*35238bceSAndroid Build Coastguard Worker     ""
346*35238bceSAndroid Build Coastguard Workerend
347*35238bceSAndroid Build Coastguard Worker
348*35238bceSAndroid Build Coastguard Workercase const_float_scope_shawdowing_3
349*35238bceSAndroid Build Coastguard Worker     values { output float out0 = 1.0; }
350*35238bceSAndroid Build Coastguard Worker
351*35238bceSAndroid Build Coastguard Worker     both ""
352*35238bceSAndroid Build Coastguard Worker          precision mediump float;
353*35238bceSAndroid Build Coastguard Worker          ${DECLARATIONS}
354*35238bceSAndroid Build Coastguard Worker          const float theConstant = 100.0;
355*35238bceSAndroid Build Coastguard Worker          void main()
356*35238bceSAndroid Build Coastguard Worker          {
357*35238bceSAndroid Build Coastguard Worker                const float theConstant = -100.0;
358*35238bceSAndroid Build Coastguard Worker                {
359*35238bceSAndroid Build Coastguard Worker                     const float theConstant = 1.0;
360*35238bceSAndroid Build Coastguard Worker                     out0 = theConstant;
361*35238bceSAndroid Build Coastguard Worker                }
362*35238bceSAndroid Build Coastguard Worker                ${OUTPUT}
363*35238bceSAndroid Build Coastguard Worker          }
364*35238bceSAndroid Build Coastguard Worker     ""
365*35238bceSAndroid Build Coastguard Workerend
366*35238bceSAndroid Build Coastguard Worker
367*35238bceSAndroid Build Coastguard Workercase const_float_scope_shawdowing_4
368*35238bceSAndroid Build Coastguard Worker     values { output float out0 = 2.0; }
369*35238bceSAndroid Build Coastguard Worker
370*35238bceSAndroid Build Coastguard Worker     both ""
371*35238bceSAndroid Build Coastguard Worker          precision mediump float;
372*35238bceSAndroid Build Coastguard Worker          ${DECLARATIONS}
373*35238bceSAndroid Build Coastguard Worker          const float theConstant = 100.0;
374*35238bceSAndroid Build Coastguard Worker          float func()
375*35238bceSAndroid Build Coastguard Worker          {
376*35238bceSAndroid Build Coastguard Worker                const float theConstant = 2.0;
377*35238bceSAndroid Build Coastguard Worker                return theConstant;
378*35238bceSAndroid Build Coastguard Worker          }
379*35238bceSAndroid Build Coastguard Worker          void main()
380*35238bceSAndroid Build Coastguard Worker          {
381*35238bceSAndroid Build Coastguard Worker                const float theConstant = -100.0;
382*35238bceSAndroid Build Coastguard Worker                {
383*35238bceSAndroid Build Coastguard Worker                     const float theConstant = 1.0;
384*35238bceSAndroid Build Coastguard Worker                     out0 = func();
385*35238bceSAndroid Build Coastguard Worker                }
386*35238bceSAndroid Build Coastguard Worker                ${OUTPUT}
387*35238bceSAndroid Build Coastguard Worker          }
388*35238bceSAndroid Build Coastguard Worker     ""
389*35238bceSAndroid Build Coastguard Workerend
390*35238bceSAndroid Build Coastguard Worker
391*35238bceSAndroid Build Coastguard Workercase const_float_operations_with_const
392*35238bceSAndroid Build Coastguard Worker     values { output float out0 = 21.0; }
393*35238bceSAndroid Build Coastguard Worker
394*35238bceSAndroid Build Coastguard Worker     both ""
395*35238bceSAndroid Build Coastguard Worker          precision mediump float;
396*35238bceSAndroid Build Coastguard Worker          ${DECLARATIONS}
397*35238bceSAndroid Build Coastguard Worker          const float theGlobalConstant = 10.0;
398*35238bceSAndroid Build Coastguard Worker          float func()
399*35238bceSAndroid Build Coastguard Worker          {
400*35238bceSAndroid Build Coastguard Worker                const float theConstant = 2.0;
401*35238bceSAndroid Build Coastguard Worker                return theConstant;
402*35238bceSAndroid Build Coastguard Worker          }
403*35238bceSAndroid Build Coastguard Worker          void main()
404*35238bceSAndroid Build Coastguard Worker          {
405*35238bceSAndroid Build Coastguard Worker                const float theConstant = -100.0;
406*35238bceSAndroid Build Coastguard Worker                {
407*35238bceSAndroid Build Coastguard Worker                     const float theConstant = 1.0;
408*35238bceSAndroid Build Coastguard Worker                     out0 = func() * theGlobalConstant + theConstant;
409*35238bceSAndroid Build Coastguard Worker                }
410*35238bceSAndroid Build Coastguard Worker                ${OUTPUT}
411*35238bceSAndroid Build Coastguard Worker          }
412*35238bceSAndroid Build Coastguard Worker     ""
413*35238bceSAndroid Build Coastguard Workerend
414*35238bceSAndroid Build Coastguard Worker
415*35238bceSAndroid Build Coastguard Workercase const_float_assignment_1
416*35238bceSAndroid Build Coastguard Worker     values { output float out0 = 10.0; }
417*35238bceSAndroid Build Coastguard Worker
418*35238bceSAndroid Build Coastguard Worker     both ""
419*35238bceSAndroid Build Coastguard Worker          precision mediump float;
420*35238bceSAndroid Build Coastguard Worker          ${DECLARATIONS}
421*35238bceSAndroid Build Coastguard Worker          void main()
422*35238bceSAndroid Build Coastguard Worker          {
423*35238bceSAndroid Build Coastguard Worker                const float theConstant1 = 10.0;
424*35238bceSAndroid Build Coastguard Worker                const float theConstant2 = theConstant1;
425*35238bceSAndroid Build Coastguard Worker                out0 = theConstant2;
426*35238bceSAndroid Build Coastguard Worker                ${OUTPUT}
427*35238bceSAndroid Build Coastguard Worker          }
428*35238bceSAndroid Build Coastguard Worker     ""
429*35238bceSAndroid Build Coastguard Workerend
430*35238bceSAndroid Build Coastguard Worker
431*35238bceSAndroid Build Coastguard Workercase const_float_assignment_2
432*35238bceSAndroid Build Coastguard Worker     values { output float out0 = 10.0; }
433*35238bceSAndroid Build Coastguard Worker
434*35238bceSAndroid Build Coastguard Worker     both ""
435*35238bceSAndroid Build Coastguard Worker          precision mediump float;
436*35238bceSAndroid Build Coastguard Worker          ${DECLARATIONS}
437*35238bceSAndroid Build Coastguard Worker          void main()
438*35238bceSAndroid Build Coastguard Worker          {
439*35238bceSAndroid Build Coastguard Worker                const float theConstant1 = 10.0;
440*35238bceSAndroid Build Coastguard Worker                {
441*35238bceSAndroid Build Coastguard Worker                    const float theConstant2 = theConstant1;
442*35238bceSAndroid Build Coastguard Worker                    out0 = theConstant2;
443*35238bceSAndroid Build Coastguard Worker                }
444*35238bceSAndroid Build Coastguard Worker                ${OUTPUT}
445*35238bceSAndroid Build Coastguard Worker          }
446*35238bceSAndroid Build Coastguard Worker     ""
447*35238bceSAndroid Build Coastguard Workerend
448*35238bceSAndroid Build Coastguard Worker
449*35238bceSAndroid Build Coastguard Workercase const_float_assignment_3
450*35238bceSAndroid Build Coastguard Worker     values { output float out0 = 10.0; }
451*35238bceSAndroid Build Coastguard Worker
452*35238bceSAndroid Build Coastguard Worker     both ""
453*35238bceSAndroid Build Coastguard Worker          precision mediump float;
454*35238bceSAndroid Build Coastguard Worker          ${DECLARATIONS}
455*35238bceSAndroid Build Coastguard Worker          const float theConstant1 = 10.0;
456*35238bceSAndroid Build Coastguard Worker          void main()
457*35238bceSAndroid Build Coastguard Worker          {
458*35238bceSAndroid Build Coastguard Worker                const float theConstant2 = theConstant1;
459*35238bceSAndroid Build Coastguard Worker                out0 = theConstant2;
460*35238bceSAndroid Build Coastguard Worker                ${OUTPUT}
461*35238bceSAndroid Build Coastguard Worker          }
462*35238bceSAndroid Build Coastguard Worker     ""
463*35238bceSAndroid Build Coastguard Workerend
464*35238bceSAndroid Build Coastguard Worker
465*35238bceSAndroid Build Coastguard Workercase const_float_assignment_4
466*35238bceSAndroid Build Coastguard Worker     values { output float out0 = 10.0; }
467*35238bceSAndroid Build Coastguard Worker
468*35238bceSAndroid Build Coastguard Worker     both ""
469*35238bceSAndroid Build Coastguard Worker          precision mediump float;
470*35238bceSAndroid Build Coastguard Worker          ${DECLARATIONS}
471*35238bceSAndroid Build Coastguard Worker          const float theConstant1 = 10.0;
472*35238bceSAndroid Build Coastguard Worker          float func()
473*35238bceSAndroid Build Coastguard Worker          {
474*35238bceSAndroid Build Coastguard Worker                const float theConstant2 = theConstant1;
475*35238bceSAndroid Build Coastguard Worker                return theConstant2;
476*35238bceSAndroid Build Coastguard Worker          }
477*35238bceSAndroid Build Coastguard Worker          void main()
478*35238bceSAndroid Build Coastguard Worker          {
479*35238bceSAndroid Build Coastguard Worker                out0 = func();
480*35238bceSAndroid Build Coastguard Worker                ${OUTPUT}
481*35238bceSAndroid Build Coastguard Worker          }
482*35238bceSAndroid Build Coastguard Worker     ""
483*35238bceSAndroid Build Coastguard Workerend
484*35238bceSAndroid Build Coastguard Worker
485*35238bceSAndroid Build Coastguard Workercase const_float_assign_uniform
486*35238bceSAndroid Build Coastguard Worker     expect compile_fail
487*35238bceSAndroid Build Coastguard Worker     values { output float out0 = 10.0; }
488*35238bceSAndroid Build Coastguard Worker     both ""
489*35238bceSAndroid Build Coastguard Worker          precision mediump float;
490*35238bceSAndroid Build Coastguard Worker          ${DECLARATIONS}
491*35238bceSAndroid Build Coastguard Worker          uniform float theUniform;
492*35238bceSAndroid Build Coastguard Worker          void main()
493*35238bceSAndroid Build Coastguard Worker          {
494*35238bceSAndroid Build Coastguard Worker                const float theConstant = theUniform;
495*35238bceSAndroid Build Coastguard Worker                out0 = theConstant;
496*35238bceSAndroid Build Coastguard Worker                ${OUTPUT}
497*35238bceSAndroid Build Coastguard Worker          }
498*35238bceSAndroid Build Coastguard Worker     ""
499*35238bceSAndroid Build Coastguard Workerend
500*35238bceSAndroid Build Coastguard Worker
501*35238bceSAndroid Build Coastguard Workercase const_float_assign_varying
502*35238bceSAndroid Build Coastguard Worker     expect compile_fail
503*35238bceSAndroid Build Coastguard Worker     values { output float out0 = 10.0; }
504*35238bceSAndroid Build Coastguard Worker     vertex ""
505*35238bceSAndroid Build Coastguard Worker          ${VERTEX_DECLARATIONS}
506*35238bceSAndroid Build Coastguard Worker          varying float theVarying;
507*35238bceSAndroid Build Coastguard Worker          void main()
508*35238bceSAndroid Build Coastguard Worker          {
509*35238bceSAndroid Build Coastguard Worker                theVarying = 1.0;
510*35238bceSAndroid Build Coastguard Worker                gl_Position = vec(1.0);
511*35238bceSAndroid Build Coastguard Worker          }
512*35238bceSAndroid Build Coastguard Worker     ""
513*35238bceSAndroid Build Coastguard Worker     fragment ""
514*35238bceSAndroid Build Coastguard Worker          precision mediump float;
515*35238bceSAndroid Build Coastguard Worker          ${FRAGMENT_DECLARATIONS}
516*35238bceSAndroid Build Coastguard Worker          varying float theVarying;
517*35238bceSAndroid Build Coastguard Worker          void main()
518*35238bceSAndroid Build Coastguard Worker          {
519*35238bceSAndroid Build Coastguard Worker                const float theConstant = theVarying;
520*35238bceSAndroid Build Coastguard Worker                out0 = theConstant;
521*35238bceSAndroid Build Coastguard Worker                ${FRAGMENT_OUTPUT}
522*35238bceSAndroid Build Coastguard Worker          }
523*35238bceSAndroid Build Coastguard Worker     ""
524*35238bceSAndroid Build Coastguard Workerend
525*35238bceSAndroid Build Coastguard Worker
526*35238bceSAndroid Build Coastguard Workercase const_float_function_gotcha
527*35238bceSAndroid Build Coastguard Worker     desc "Function constant parameters are not really constants, so using them as constant expressions should fail."
528*35238bceSAndroid Build Coastguard Worker     expect compile_fail
529*35238bceSAndroid Build Coastguard Worker     values { output float out0 = 20.0; }
530*35238bceSAndroid Build Coastguard Worker     both ""
531*35238bceSAndroid Build Coastguard Worker          precision mediump float;
532*35238bceSAndroid Build Coastguard Worker          ${DECLARATIONS}
533*35238bceSAndroid Build Coastguard Worker          float func(const float gotcha)
534*35238bceSAndroid Build Coastguard Worker          {
535*35238bceSAndroid Build Coastguard Worker                const float theConstant2 = gotcha;
536*35238bceSAndroid Build Coastguard Worker                return theConstant2*2.0;
537*35238bceSAndroid Build Coastguard Worker          }
538*35238bceSAndroid Build Coastguard Worker          void main()
539*35238bceSAndroid Build Coastguard Worker          {
540*35238bceSAndroid Build Coastguard Worker                const float theConstant = 10.0;
541*35238bceSAndroid Build Coastguard Worker                out0 = func(theConstant);
542*35238bceSAndroid Build Coastguard Worker                ${OUTPUT}
543*35238bceSAndroid Build Coastguard Worker          }
544*35238bceSAndroid Build Coastguard Worker     ""
545*35238bceSAndroid Build Coastguard Workerend
546*35238bceSAndroid Build Coastguard Worker
547*35238bceSAndroid Build Coastguard Workercase const_float_from_int
548*35238bceSAndroid Build Coastguard Worker     values { output float out0 = 10.0; }
549*35238bceSAndroid Build Coastguard Worker
550*35238bceSAndroid Build Coastguard Worker     both ""
551*35238bceSAndroid Build Coastguard Worker          precision mediump float;
552*35238bceSAndroid Build Coastguard Worker          ${DECLARATIONS}
553*35238bceSAndroid Build Coastguard Worker          const float theConstant = float(10);
554*35238bceSAndroid Build Coastguard Worker          void main()
555*35238bceSAndroid Build Coastguard Worker          {
556*35238bceSAndroid Build Coastguard Worker                out0 = theConstant;
557*35238bceSAndroid Build Coastguard Worker                ${OUTPUT}
558*35238bceSAndroid Build Coastguard Worker          }
559*35238bceSAndroid Build Coastguard Worker     ""
560*35238bceSAndroid Build Coastguard Workerend
561*35238bceSAndroid Build Coastguard Worker
562*35238bceSAndroid Build Coastguard Workercase const_float_from_vec2
563*35238bceSAndroid Build Coastguard Worker     values { output float out0 = 10.0; }
564*35238bceSAndroid Build Coastguard Worker
565*35238bceSAndroid Build Coastguard Worker     both ""
566*35238bceSAndroid Build Coastguard Worker          precision mediump float;
567*35238bceSAndroid Build Coastguard Worker          ${DECLARATIONS}
568*35238bceSAndroid Build Coastguard Worker          const float theConstant = vec2(1.0, 10.0).y;
569*35238bceSAndroid Build Coastguard Worker          void main()
570*35238bceSAndroid Build Coastguard Worker          {
571*35238bceSAndroid Build Coastguard Worker                out0 = theConstant;
572*35238bceSAndroid Build Coastguard Worker                ${OUTPUT}
573*35238bceSAndroid Build Coastguard Worker          }
574*35238bceSAndroid Build Coastguard Worker     ""
575*35238bceSAndroid Build Coastguard Workerend
576*35238bceSAndroid Build Coastguard Worker
577*35238bceSAndroid Build Coastguard Workercase const_float_from_vec3
578*35238bceSAndroid Build Coastguard Worker     values { output float out0 = 10.0; }
579*35238bceSAndroid Build Coastguard Worker
580*35238bceSAndroid Build Coastguard Worker     both ""
581*35238bceSAndroid Build Coastguard Worker          precision mediump float;
582*35238bceSAndroid Build Coastguard Worker          ${DECLARATIONS}
583*35238bceSAndroid Build Coastguard Worker          const float theConstant = vec3(1.0, 10.0, 20.0).y;
584*35238bceSAndroid Build Coastguard Worker          void main()
585*35238bceSAndroid Build Coastguard Worker          {
586*35238bceSAndroid Build Coastguard Worker                out0 = theConstant;
587*35238bceSAndroid Build Coastguard Worker                ${OUTPUT}
588*35238bceSAndroid Build Coastguard Worker          }
589*35238bceSAndroid Build Coastguard Worker     ""
590*35238bceSAndroid Build Coastguard Workerend
591*35238bceSAndroid Build Coastguard Worker
592*35238bceSAndroid Build Coastguard Workercase const_float_from_vec4
593*35238bceSAndroid Build Coastguard Worker     values { output float out0 = 10.0; }
594*35238bceSAndroid Build Coastguard Worker
595*35238bceSAndroid Build Coastguard Worker     both ""
596*35238bceSAndroid Build Coastguard Worker          precision mediump float;
597*35238bceSAndroid Build Coastguard Worker          ${DECLARATIONS}
598*35238bceSAndroid Build Coastguard Worker          const float theConstant = vec4(1.0, 10.0, 20.0, -10.0).y;
599*35238bceSAndroid Build Coastguard Worker          void main()
600*35238bceSAndroid Build Coastguard Worker          {
601*35238bceSAndroid Build Coastguard Worker                out0 = theConstant;
602*35238bceSAndroid Build Coastguard Worker                ${OUTPUT}
603*35238bceSAndroid Build Coastguard Worker          }
604*35238bceSAndroid Build Coastguard Worker     ""
605*35238bceSAndroid Build Coastguard Workerend
606*35238bceSAndroid Build Coastguard Worker
607*35238bceSAndroid Build Coastguard Workercase const_float_assign_variable_1
608*35238bceSAndroid Build Coastguard Worker     expect compile_fail
609*35238bceSAndroid Build Coastguard Worker     values { output float out0 = 20.0; }
610*35238bceSAndroid Build Coastguard Worker     both ""
611*35238bceSAndroid Build Coastguard Worker          precision mediump float;
612*35238bceSAndroid Build Coastguard Worker          ${DECLARATIONS}
613*35238bceSAndroid Build Coastguard Worker          void main()
614*35238bceSAndroid Build Coastguard Worker          {
615*35238bceSAndroid Build Coastguard Worker                float theVariable = 20.0;
616*35238bceSAndroid Build Coastguard Worker                const float theConstant = theVariable;
617*35238bceSAndroid Build Coastguard Worker                out0 = theConstant;
618*35238bceSAndroid Build Coastguard Worker                ${OUTPUT}
619*35238bceSAndroid Build Coastguard Worker          }
620*35238bceSAndroid Build Coastguard Worker     ""
621*35238bceSAndroid Build Coastguard Workerend
622*35238bceSAndroid Build Coastguard Worker
623*35238bceSAndroid Build Coastguard Workercase const_float_assign_variable_2
624*35238bceSAndroid Build Coastguard Worker     expect compile_fail
625*35238bceSAndroid Build Coastguard Worker     values { output float out0 = 50.0; }
626*35238bceSAndroid Build Coastguard Worker     both ""
627*35238bceSAndroid Build Coastguard Worker          precision mediump float;
628*35238bceSAndroid Build Coastguard Worker          ${DECLARATIONS}
629*35238bceSAndroid Build Coastguard Worker          void main()
630*35238bceSAndroid Build Coastguard Worker          {
631*35238bceSAndroid Build Coastguard Worker                float theVariable = 20.0;
632*35238bceSAndroid Build Coastguard Worker                theVariable += 30.0;
633*35238bceSAndroid Build Coastguard Worker                const float theConstant = theVariable;
634*35238bceSAndroid Build Coastguard Worker                out0 = theConstant;
635*35238bceSAndroid Build Coastguard Worker                ${OUTPUT}
636*35238bceSAndroid Build Coastguard Worker          }
637*35238bceSAndroid Build Coastguard Worker     ""
638*35238bceSAndroid Build Coastguard Workerend
639*35238bceSAndroid Build Coastguard Worker
640*35238bceSAndroid Build Coastguard Workercase const_float_assign_user_func
641*35238bceSAndroid Build Coastguard Worker     expect compile_fail
642*35238bceSAndroid Build Coastguard Worker     values { output float out0 = 50.0; }
643*35238bceSAndroid Build Coastguard Worker     both ""
644*35238bceSAndroid Build Coastguard Worker          precision mediump float;
645*35238bceSAndroid Build Coastguard Worker          ${DECLARATIONS}
646*35238bceSAndroid Build Coastguard Worker          float func()
647*35238bceSAndroid Build Coastguard Worker          {
648*35238bceSAndroid Build Coastguard Worker                return 50.0;
649*35238bceSAndroid Build Coastguard Worker          }
650*35238bceSAndroid Build Coastguard Worker          void main()
651*35238bceSAndroid Build Coastguard Worker          {
652*35238bceSAndroid Build Coastguard Worker                const float theConstant = func();
653*35238bceSAndroid Build Coastguard Worker                out0 = theConstant;
654*35238bceSAndroid Build Coastguard Worker                ${OUTPUT}
655*35238bceSAndroid Build Coastguard Worker          }
656*35238bceSAndroid Build Coastguard Worker     ""
657*35238bceSAndroid Build Coastguard Workerend
658