xref: /aosp_15_r20/external/deqp/data/gles3/shaders/declarations.test (revision 35238bce31c2a825756842865a792f8cf7f89930)
1group invalid_declarations "Invalid declarations"
2    case in_in_vertex_main
3        version 300 es
4        expect compile_fail
5        vertex ""
6            #version 300 es
7            ${VERTEX_DECLARATIONS}
8            void main()
9            {
10                in mediump float val;
11                gl_Position = vec4(1.0);
12            }
13        ""
14        fragment ""
15            #version 300 es
16            ${FRAGMENT_DECLARATIONS}
17            void main()
18            {
19                ${FRAG_COLOR} = vec4(1.0);
20            }
21        ""
22    end
23
24    case out_in_vertex_main
25        version 300 es
26        expect compile_fail
27        vertex ""
28            #version 300 es
29            ${VERTEX_DECLARATIONS}
30            void main()
31            {
32                out mediump float val;
33                gl_Position = vec4(1.0);
34            }
35        ""
36        fragment ""
37            #version 300 es
38            in mediump float val;
39            ${FRAGMENT_DECLARATIONS}
40            void main()
41            {
42                ${FRAG_COLOR} = vec4(1.0);
43            }
44        ""
45    end
46
47    case in_in_fragment_main
48        version 300 es
49        expect compile_fail
50        vertex ""
51            #version 300 es
52            out mediump float val;
53            ${VERTEX_DECLARATIONS}
54            void main()
55            {
56                gl_Position = vec4(1.0);
57            }
58        ""
59        fragment ""
60            #version 300 es
61            ${FRAGMENT_DECLARATIONS}
62            void main()
63            {
64                in mediump float val;
65                ${FRAG_COLOR} = vec4(1.0);
66            }
67        ""
68    end
69
70    case out_in_fragment_main
71        version 300 es
72        expect compile_fail
73        vertex ""
74            #version 300 es
75            ${VERTEX_DECLARATIONS}
76            void main()
77            {
78                gl_Position = vec4(1.0);
79            }
80        ""
81        fragment ""
82            #version 300 es
83            ${FRAGMENT_DECLARATIONS}
84            void main()
85            {
86                out mediump float val;
87                ${FRAG_COLOR} = vec4(1.0);
88            }
89        ""
90    end
91
92    case uniform_in_vertex_main
93        version 300 es
94        expect compile_fail
95        vertex ""
96            #version 300 es
97            ${VERTEX_DECLARATIONS}
98            void main()
99            {
100                uniform mediump float val;
101                gl_Position = vec4(1.0);
102            }
103        ""
104        fragment ""
105            #version 300 es
106            ${FRAGMENT_DECLARATIONS}
107            void main()
108            {
109                ${FRAG_COLOR} = vec4(1.0);
110            }
111        ""
112    end
113
114    case uniform_in_fragment_main
115        version 300 es
116        expect compile_fail
117        vertex ""
118            #version 300 es
119            ${VERTEX_DECLARATIONS}
120            void main()
121            {
122                gl_Position = vec4(1.0);
123            }
124        ""
125        fragment ""
126            #version 300 es
127            ${FRAGMENT_DECLARATIONS}
128            void main()
129            {
130                uniform mediump float val;
131                ${FRAG_COLOR} = vec4(1.0);
132            }
133        ""
134    end
135
136    case uniform_block_in_main
137        version 300 es
138        expect compile_fail
139        both ""
140            #version 300 es
141            ${DECLARATIONS}
142            void main()
143            {
144                uniform Block { mediump float val; };
145                ${OUTPUT}
146            }
147        ""
148    end
149
150    case invariant_attribute
151        version 300 es
152        expect compile_fail
153        vertex ""
154            #version 300 es
155            invariant in mediump float val;
156            ${VERTEX_DECLARATIONS}
157            void main()
158            {
159                gl_Position = vec4(1.0);
160            }
161        ""
162        fragment ""
163            #version 300 es
164            ${FRAGMENT_DECLARATIONS}
165            void main()
166            {
167                ${FRAG_COLOR} = vec4(1.0);
168            }
169        ""
170    end
171
172    case invariant_uniform
173        version 300 es
174        expect compile_fail
175        vertex ""
176            #version 300 es
177            invariant uniform mediump float val;
178            ${VERTEX_DECLARATIONS}
179            void main()
180            {
181                gl_Position = vec4(1.0);
182            }
183        ""
184        fragment ""
185            #version 300 es
186            ${FRAGMENT_DECLARATIONS}
187            void main()
188            {
189                ${FRAG_COLOR} = vec4(1.0);
190            }
191        ""
192    end
193
194    case invariant_uniform_block_1
195        version 300 es
196        expect compile_fail
197        both ""
198            #version 300 es
199            invariant uniform Block { mediump float val; };
200            ${DECLARATIONS}
201            void main()
202            {
203                ${OUTPUT}
204            }
205        ""
206    end
207
208    case invariant_uniform_block_2
209        version 300 es
210        expect compile_fail
211        both ""
212            #version 300 es
213            uniform Block { invariant mediump float val; };
214            ${DECLARATIONS}
215            void main()
216            {
217                ${OUTPUT}
218            }
219        ""
220    end
221
222    case uniform_block_layout_qualifier
223        version 300 es
224        expect compile_fail
225        both ""
226            #version 300 es
227            layout(foobar) uniform Block
228            {
229                mediump float val;
230            };
231            ${DECLARATIONS}
232            void main()
233            {
234                ${OUTPUT}
235            }
236        ""
237    end
238
239    case uniform_block_member_layout_qualifier
240        version 300 es
241        expect compile_fail
242        both ""
243            #version 300 es
244            ${DECLARATIONS}
245            uniform Block
246            {
247                layout(foobar) uniform mediump float val;
248            };
249            void main()
250            {
251                ${OUTPUT}
252            }
253        ""
254    end
255
256    case uniform_block_nested_struct_definition
257        version 300 es
258        expect compile_fail
259        both ""
260            #version 300 es
261            ${DECLARATIONS}
262            uniform Block
263            {
264                struct S
265                {
266                    mediump float v;
267                    struct T
268                    {
269                        highp int i;
270                    } t;
271                } s;
272            };
273            void main()
274            {
275                ${OUTPUT}
276            }
277        ""
278    end
279
280    case nested_uniform_block
281        version 300 es
282        expect compile_fail
283        both ""
284            #version 300 es
285            ${DECLARATIONS}
286            uniform Block
287            {
288                uniform Block2
289                {
290                    mediump float v;
291                } block2;
292            } block;
293            void main()
294            {
295                ${OUTPUT}
296            }
297        ""
298    end
299
300    case uniform_block_sampler_2d
301        version 300 es
302        expect compile_fail
303        both ""
304            #version 300 es
305            ${DECLARATIONS}
306            uniform Block
307            {
308                uniform sampler2D s;
309            };
310            void main()
311            {
312                ${OUTPUT}
313            }
314        ""
315    end
316
317    case uniform_block_sampler_cube
318        version 300 es
319        expect compile_fail
320        both ""
321            #version 300 es
322            ${DECLARATIONS}
323            uniform Block
324            {
325                uniform samplerCube s;
326            };
327            void main()
328            {
329                ${OUTPUT}
330            }
331        ""
332    end
333
334    case uniform_block_missing_member_semicolon
335        version 300 es
336        expect compile_fail
337        both ""
338            #version 300 es
339            ${DECLARATIONS}
340            uniform Block
341            {
342                mediump float var
343            };
344            void main()
345            {
346                ${OUTPUT}
347            }
348        ""
349    end
350
351    case uniform_block_missing_end_semicolon
352        version 300 es
353        expect compile_fail
354        both ""
355            #version 300 es
356            ${DECLARATIONS}
357            uniform Block
358            {
359                mediump float var;
360            }
361            void main()
362            {
363                ${OUTPUT}
364            }
365        ""
366    end
367
368    case uniform_block_duplicate_member_name_1
369        version 300 es
370        expect compile_fail
371        both ""
372            #version 300 es
373            ${DECLARATIONS}
374            uniform Block
375            {
376                mediump float var;
377                mediump float var;
378            };
379            void main()
380            {
381                ${OUTPUT}
382            }
383        ""
384    end
385
386    case uniform_block_duplicate_member_name_2
387        version 300 es
388        expect compile_fail
389        both ""
390            #version 300 es
391            ${DECLARATIONS}
392            uniform Block
393            {
394                mediump float var;
395            };
396            uniform Block2
397            {
398                mediump float var;
399            };
400            void main()
401            {
402                ${OUTPUT}
403            }
404        ""
405    end
406
407    case uniform_block_duplicate_member_name_3
408        version 300 es
409        expect compile_fail
410        both ""
411            #version 300 es
412            ${DECLARATIONS}
413            uniform mediump float var;
414            uniform Block
415            {
416                mediump float var;
417            };
418            void main()
419            {
420                ${OUTPUT}
421            }
422        ""
423    end
424
425    case uniform_block_duplicate_block_name
426        version 300 es
427        expect compile_fail
428        both ""
429            #version 300 es
430            ${DECLARATIONS}
431            uniform Block
432            {
433                mediump float var;
434            };
435            uniform Block
436            {
437                mediump float var2;
438            };
439            void main()
440            {
441                ${OUTPUT}
442            }
443        ""
444    end
445
446    case uniform_block_duplicate_instance_name_1
447        version 300 es
448        expect compile_fail
449        both ""
450            #version 300 es
451            ${DECLARATIONS}
452            uniform Block
453            {
454                mediump float var;
455            } block;
456            uniform Block2
457            {
458                mediump float var2;
459            } block;
460            void main()
461            {
462                ${OUTPUT}
463            }
464        ""
465    end
466
467    case uniform_block_duplicate_instance_name_2
468        version 300 es
469        expect compile_fail
470        both ""
471            #version 300 es
472            ${DECLARATIONS}
473            uniform mediump float block;
474            uniform Block
475            {
476                mediump float var;
477            } block;
478            void main()
479            {
480                ${OUTPUT}
481            }
482        ""
483    end
484
485    case uniform_block_duplicate_instance_name_3
486        version 300 es
487        expect compile_fail
488        both ""
489            #version 300 es
490            ${DECLARATIONS}
491            uniform Block
492            {
493                mediump float block;
494            };
495            uniform Block2
496            {
497                mediump float var2;
498            } block;
499            void main()
500            {
501                ${OUTPUT}
502            }
503        ""
504    end
505
506    case uniform_block_array_without_instance_name_1
507        version 300 es
508        expect compile_fail
509        both ""
510            #version 300 es
511            ${DECLARATIONS}
512            uniform Block[2]
513            {
514                mediump float var;
515            };
516            void main()
517            {
518                ${OUTPUT}
519            }
520        ""
521    end
522
523    case uniform_block_array_without_instance_name_2
524        version 300 es
525        expect compile_fail
526        both ""
527            #version 300 es
528            ${DECLARATIONS}
529            uniform Block
530            {
531                mediump float var;
532            } [2];
533            void main()
534            {
535                ${OUTPUT}
536            }
537        ""
538    end
539
540    case uniform_block_in
541        version 300 es
542        expect compile_fail
543        both ""
544            #version 300 es
545            ${DECLARATIONS}
546            uniform Block
547            {
548                in mediump float var;
549            };
550            void main()
551            {
552                ${OUTPUT}
553            }
554        ""
555    end
556
557    case uniform_block_out
558        version 300 es
559        expect compile_fail
560        both ""
561            #version 300 es
562            ${DECLARATIONS}
563            uniform Block
564            {
565                out mediump float var;
566            };
567            void main()
568            {
569                ${OUTPUT}
570            }
571        ""
572    end
573
574    case uniform_block_const
575        version 300 es
576        expect compile_fail
577        both ""
578            #version 300 es
579            ${DECLARATIONS}
580            uniform Block
581            {
582                const mediump float var;
583            };
584            void main()
585            {
586                ${OUTPUT}
587            }
588        ""
589    end
590
591end # invalid_declarations
592