1e5c31af7Sopenharmony_ci# WARNING: This file is auto-generated. Do NOT modify it manually, but rather
2e5c31af7Sopenharmony_ci# modify the generating script file. Otherwise changes will be lost!
3e5c31af7Sopenharmony_ci
4e5c31af7Sopenharmony_cigroup valid "Valid uniform interface block syntax tests."
5e5c31af7Sopenharmony_ci
6e5c31af7Sopenharmony_ci	case repeat_interface_qualifier_vertex
7e5c31af7Sopenharmony_ci		version 300 es
8e5c31af7Sopenharmony_ci		expect build_successful
9e5c31af7Sopenharmony_ci
10e5c31af7Sopenharmony_ci		vertex ""
11e5c31af7Sopenharmony_ci			#version 300 es
12e5c31af7Sopenharmony_ci			precision highp float;
13e5c31af7Sopenharmony_ci
14e5c31af7Sopenharmony_ci
15e5c31af7Sopenharmony_ci
16e5c31af7Sopenharmony_ci			uniform UniformBlock
17e5c31af7Sopenharmony_ci			{
18e5c31af7Sopenharmony_ci				uniform vec4 uniformMember;
19e5c31af7Sopenharmony_ci			} uniformBlock;
20e5c31af7Sopenharmony_ci
21e5c31af7Sopenharmony_ci			void main()
22e5c31af7Sopenharmony_ci			{
23e5c31af7Sopenharmony_ci				gl_Position = uniformBlock.uniformMember;
24e5c31af7Sopenharmony_ci			}
25e5c31af7Sopenharmony_ci		""
26e5c31af7Sopenharmony_ci
27e5c31af7Sopenharmony_ci		fragment ""
28e5c31af7Sopenharmony_ci			#version 300 es
29e5c31af7Sopenharmony_ci			precision highp float;
30e5c31af7Sopenharmony_ci
31e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
32e5c31af7Sopenharmony_ci
33e5c31af7Sopenharmony_ci			void main()
34e5c31af7Sopenharmony_ci			{
35e5c31af7Sopenharmony_ci				o_color = vec4(1.0);
36e5c31af7Sopenharmony_ci			}
37e5c31af7Sopenharmony_ci		""
38e5c31af7Sopenharmony_ci	end
39e5c31af7Sopenharmony_ci	case repeat_interface_qualifier_fragment
40e5c31af7Sopenharmony_ci		version 300 es
41e5c31af7Sopenharmony_ci		expect build_successful
42e5c31af7Sopenharmony_ci
43e5c31af7Sopenharmony_ci		vertex ""
44e5c31af7Sopenharmony_ci			#version 300 es
45e5c31af7Sopenharmony_ci			precision highp float;
46e5c31af7Sopenharmony_ci
47e5c31af7Sopenharmony_ci			in vec4 a_pos;
48e5c31af7Sopenharmony_ci
49e5c31af7Sopenharmony_ci			void main()
50e5c31af7Sopenharmony_ci			{
51e5c31af7Sopenharmony_ci				gl_Position = a_pos;
52e5c31af7Sopenharmony_ci			}
53e5c31af7Sopenharmony_ci		""
54e5c31af7Sopenharmony_ci
55e5c31af7Sopenharmony_ci		fragment ""
56e5c31af7Sopenharmony_ci			#version 300 es
57e5c31af7Sopenharmony_ci			precision highp float;
58e5c31af7Sopenharmony_ci
59e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
60e5c31af7Sopenharmony_ci
61e5c31af7Sopenharmony_ci			uniform UniformBlock
62e5c31af7Sopenharmony_ci			{
63e5c31af7Sopenharmony_ci				uniform vec4 uniformMember;
64e5c31af7Sopenharmony_ci			} uniformBlock;
65e5c31af7Sopenharmony_ci
66e5c31af7Sopenharmony_ci			void main()
67e5c31af7Sopenharmony_ci			{
68e5c31af7Sopenharmony_ci				o_color = uniformBlock.uniformMember;
69e5c31af7Sopenharmony_ci			}
70e5c31af7Sopenharmony_ci		""
71e5c31af7Sopenharmony_ci	end
72e5c31af7Sopenharmony_ci	case layout_shared_vertex
73e5c31af7Sopenharmony_ci		version 300 es
74e5c31af7Sopenharmony_ci		expect build_successful
75e5c31af7Sopenharmony_ci
76e5c31af7Sopenharmony_ci		vertex ""
77e5c31af7Sopenharmony_ci			#version 300 es
78e5c31af7Sopenharmony_ci			precision highp float;
79e5c31af7Sopenharmony_ci
80e5c31af7Sopenharmony_ci
81e5c31af7Sopenharmony_ci
82e5c31af7Sopenharmony_ci			layout(shared) uniform UniformBlock
83e5c31af7Sopenharmony_ci			{
84e5c31af7Sopenharmony_ci				vec4 uniformMember;
85e5c31af7Sopenharmony_ci			} uniformBlock;
86e5c31af7Sopenharmony_ci
87e5c31af7Sopenharmony_ci			void main()
88e5c31af7Sopenharmony_ci			{
89e5c31af7Sopenharmony_ci				gl_Position = uniformBlock.uniformMember;
90e5c31af7Sopenharmony_ci			}
91e5c31af7Sopenharmony_ci		""
92e5c31af7Sopenharmony_ci
93e5c31af7Sopenharmony_ci		fragment ""
94e5c31af7Sopenharmony_ci			#version 300 es
95e5c31af7Sopenharmony_ci			precision highp float;
96e5c31af7Sopenharmony_ci
97e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
98e5c31af7Sopenharmony_ci
99e5c31af7Sopenharmony_ci			void main()
100e5c31af7Sopenharmony_ci			{
101e5c31af7Sopenharmony_ci				o_color = vec4(1.0);
102e5c31af7Sopenharmony_ci			}
103e5c31af7Sopenharmony_ci		""
104e5c31af7Sopenharmony_ci	end
105e5c31af7Sopenharmony_ci	case layout_shared_fragment
106e5c31af7Sopenharmony_ci		version 300 es
107e5c31af7Sopenharmony_ci		expect build_successful
108e5c31af7Sopenharmony_ci
109e5c31af7Sopenharmony_ci		vertex ""
110e5c31af7Sopenharmony_ci			#version 300 es
111e5c31af7Sopenharmony_ci			precision highp float;
112e5c31af7Sopenharmony_ci
113e5c31af7Sopenharmony_ci			in vec4 a_pos;
114e5c31af7Sopenharmony_ci
115e5c31af7Sopenharmony_ci			void main()
116e5c31af7Sopenharmony_ci			{
117e5c31af7Sopenharmony_ci				gl_Position = a_pos;
118e5c31af7Sopenharmony_ci			}
119e5c31af7Sopenharmony_ci		""
120e5c31af7Sopenharmony_ci
121e5c31af7Sopenharmony_ci		fragment ""
122e5c31af7Sopenharmony_ci			#version 300 es
123e5c31af7Sopenharmony_ci			precision highp float;
124e5c31af7Sopenharmony_ci
125e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
126e5c31af7Sopenharmony_ci
127e5c31af7Sopenharmony_ci			layout(shared) uniform UniformBlock
128e5c31af7Sopenharmony_ci			{
129e5c31af7Sopenharmony_ci				vec4 uniformMember;
130e5c31af7Sopenharmony_ci			} uniformBlock;
131e5c31af7Sopenharmony_ci
132e5c31af7Sopenharmony_ci			void main()
133e5c31af7Sopenharmony_ci			{
134e5c31af7Sopenharmony_ci				o_color = uniformBlock.uniformMember;
135e5c31af7Sopenharmony_ci			}
136e5c31af7Sopenharmony_ci		""
137e5c31af7Sopenharmony_ci	end
138e5c31af7Sopenharmony_ci	case layout_packed_vertex
139e5c31af7Sopenharmony_ci		version 300 es
140e5c31af7Sopenharmony_ci		expect build_successful
141e5c31af7Sopenharmony_ci
142e5c31af7Sopenharmony_ci		vertex ""
143e5c31af7Sopenharmony_ci			#version 300 es
144e5c31af7Sopenharmony_ci			precision highp float;
145e5c31af7Sopenharmony_ci
146e5c31af7Sopenharmony_ci
147e5c31af7Sopenharmony_ci
148e5c31af7Sopenharmony_ci			layout(packed) uniform UniformBlock
149e5c31af7Sopenharmony_ci			{
150e5c31af7Sopenharmony_ci				vec4 uniformMember;
151e5c31af7Sopenharmony_ci			} uniformBlock;
152e5c31af7Sopenharmony_ci
153e5c31af7Sopenharmony_ci			void main()
154e5c31af7Sopenharmony_ci			{
155e5c31af7Sopenharmony_ci				gl_Position = uniformBlock.uniformMember;
156e5c31af7Sopenharmony_ci			}
157e5c31af7Sopenharmony_ci		""
158e5c31af7Sopenharmony_ci
159e5c31af7Sopenharmony_ci		fragment ""
160e5c31af7Sopenharmony_ci			#version 300 es
161e5c31af7Sopenharmony_ci			precision highp float;
162e5c31af7Sopenharmony_ci
163e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
164e5c31af7Sopenharmony_ci
165e5c31af7Sopenharmony_ci			void main()
166e5c31af7Sopenharmony_ci			{
167e5c31af7Sopenharmony_ci				o_color = vec4(1.0);
168e5c31af7Sopenharmony_ci			}
169e5c31af7Sopenharmony_ci		""
170e5c31af7Sopenharmony_ci	end
171e5c31af7Sopenharmony_ci	case layout_packed_fragment
172e5c31af7Sopenharmony_ci		version 300 es
173e5c31af7Sopenharmony_ci		expect build_successful
174e5c31af7Sopenharmony_ci
175e5c31af7Sopenharmony_ci		vertex ""
176e5c31af7Sopenharmony_ci			#version 300 es
177e5c31af7Sopenharmony_ci			precision highp float;
178e5c31af7Sopenharmony_ci
179e5c31af7Sopenharmony_ci			in vec4 a_pos;
180e5c31af7Sopenharmony_ci
181e5c31af7Sopenharmony_ci			void main()
182e5c31af7Sopenharmony_ci			{
183e5c31af7Sopenharmony_ci				gl_Position = a_pos;
184e5c31af7Sopenharmony_ci			}
185e5c31af7Sopenharmony_ci		""
186e5c31af7Sopenharmony_ci
187e5c31af7Sopenharmony_ci		fragment ""
188e5c31af7Sopenharmony_ci			#version 300 es
189e5c31af7Sopenharmony_ci			precision highp float;
190e5c31af7Sopenharmony_ci
191e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
192e5c31af7Sopenharmony_ci
193e5c31af7Sopenharmony_ci			layout(packed) uniform UniformBlock
194e5c31af7Sopenharmony_ci			{
195e5c31af7Sopenharmony_ci				vec4 uniformMember;
196e5c31af7Sopenharmony_ci			} uniformBlock;
197e5c31af7Sopenharmony_ci
198e5c31af7Sopenharmony_ci			void main()
199e5c31af7Sopenharmony_ci			{
200e5c31af7Sopenharmony_ci				o_color = uniformBlock.uniformMember;
201e5c31af7Sopenharmony_ci			}
202e5c31af7Sopenharmony_ci		""
203e5c31af7Sopenharmony_ci	end
204e5c31af7Sopenharmony_ci	case layout_std140_vertex
205e5c31af7Sopenharmony_ci		version 300 es
206e5c31af7Sopenharmony_ci		expect build_successful
207e5c31af7Sopenharmony_ci
208e5c31af7Sopenharmony_ci		vertex ""
209e5c31af7Sopenharmony_ci			#version 300 es
210e5c31af7Sopenharmony_ci			precision highp float;
211e5c31af7Sopenharmony_ci
212e5c31af7Sopenharmony_ci
213e5c31af7Sopenharmony_ci
214e5c31af7Sopenharmony_ci			layout(std140) uniform UniformBlock
215e5c31af7Sopenharmony_ci			{
216e5c31af7Sopenharmony_ci				vec4 uniformMember;
217e5c31af7Sopenharmony_ci			} uniformBlock;
218e5c31af7Sopenharmony_ci
219e5c31af7Sopenharmony_ci			void main()
220e5c31af7Sopenharmony_ci			{
221e5c31af7Sopenharmony_ci				gl_Position = uniformBlock.uniformMember;
222e5c31af7Sopenharmony_ci			}
223e5c31af7Sopenharmony_ci		""
224e5c31af7Sopenharmony_ci
225e5c31af7Sopenharmony_ci		fragment ""
226e5c31af7Sopenharmony_ci			#version 300 es
227e5c31af7Sopenharmony_ci			precision highp float;
228e5c31af7Sopenharmony_ci
229e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
230e5c31af7Sopenharmony_ci
231e5c31af7Sopenharmony_ci			void main()
232e5c31af7Sopenharmony_ci			{
233e5c31af7Sopenharmony_ci				o_color = vec4(1.0);
234e5c31af7Sopenharmony_ci			}
235e5c31af7Sopenharmony_ci		""
236e5c31af7Sopenharmony_ci	end
237e5c31af7Sopenharmony_ci	case layout_std140_fragment
238e5c31af7Sopenharmony_ci		version 300 es
239e5c31af7Sopenharmony_ci		expect build_successful
240e5c31af7Sopenharmony_ci
241e5c31af7Sopenharmony_ci		vertex ""
242e5c31af7Sopenharmony_ci			#version 300 es
243e5c31af7Sopenharmony_ci			precision highp float;
244e5c31af7Sopenharmony_ci
245e5c31af7Sopenharmony_ci			in vec4 a_pos;
246e5c31af7Sopenharmony_ci
247e5c31af7Sopenharmony_ci			void main()
248e5c31af7Sopenharmony_ci			{
249e5c31af7Sopenharmony_ci				gl_Position = a_pos;
250e5c31af7Sopenharmony_ci			}
251e5c31af7Sopenharmony_ci		""
252e5c31af7Sopenharmony_ci
253e5c31af7Sopenharmony_ci		fragment ""
254e5c31af7Sopenharmony_ci			#version 300 es
255e5c31af7Sopenharmony_ci			precision highp float;
256e5c31af7Sopenharmony_ci
257e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
258e5c31af7Sopenharmony_ci
259e5c31af7Sopenharmony_ci			layout(std140) uniform UniformBlock
260e5c31af7Sopenharmony_ci			{
261e5c31af7Sopenharmony_ci				vec4 uniformMember;
262e5c31af7Sopenharmony_ci			} uniformBlock;
263e5c31af7Sopenharmony_ci
264e5c31af7Sopenharmony_ci			void main()
265e5c31af7Sopenharmony_ci			{
266e5c31af7Sopenharmony_ci				o_color = uniformBlock.uniformMember;
267e5c31af7Sopenharmony_ci			}
268e5c31af7Sopenharmony_ci		""
269e5c31af7Sopenharmony_ci	end
270e5c31af7Sopenharmony_ci	case layout_row_major_vertex
271e5c31af7Sopenharmony_ci		version 300 es
272e5c31af7Sopenharmony_ci		expect build_successful
273e5c31af7Sopenharmony_ci
274e5c31af7Sopenharmony_ci		vertex ""
275e5c31af7Sopenharmony_ci			#version 300 es
276e5c31af7Sopenharmony_ci			precision highp float;
277e5c31af7Sopenharmony_ci
278e5c31af7Sopenharmony_ci
279e5c31af7Sopenharmony_ci
280e5c31af7Sopenharmony_ci			layout(row_major) uniform UniformBlock
281e5c31af7Sopenharmony_ci			{
282e5c31af7Sopenharmony_ci				vec4 uniformMember;
283e5c31af7Sopenharmony_ci			} uniformBlock;
284e5c31af7Sopenharmony_ci
285e5c31af7Sopenharmony_ci			void main()
286e5c31af7Sopenharmony_ci			{
287e5c31af7Sopenharmony_ci				gl_Position = uniformBlock.uniformMember;
288e5c31af7Sopenharmony_ci			}
289e5c31af7Sopenharmony_ci		""
290e5c31af7Sopenharmony_ci
291e5c31af7Sopenharmony_ci		fragment ""
292e5c31af7Sopenharmony_ci			#version 300 es
293e5c31af7Sopenharmony_ci			precision highp float;
294e5c31af7Sopenharmony_ci
295e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
296e5c31af7Sopenharmony_ci
297e5c31af7Sopenharmony_ci			void main()
298e5c31af7Sopenharmony_ci			{
299e5c31af7Sopenharmony_ci				o_color = vec4(1.0);
300e5c31af7Sopenharmony_ci			}
301e5c31af7Sopenharmony_ci		""
302e5c31af7Sopenharmony_ci	end
303e5c31af7Sopenharmony_ci	case layout_row_major_fragment
304e5c31af7Sopenharmony_ci		version 300 es
305e5c31af7Sopenharmony_ci		expect build_successful
306e5c31af7Sopenharmony_ci
307e5c31af7Sopenharmony_ci		vertex ""
308e5c31af7Sopenharmony_ci			#version 300 es
309e5c31af7Sopenharmony_ci			precision highp float;
310e5c31af7Sopenharmony_ci
311e5c31af7Sopenharmony_ci			in vec4 a_pos;
312e5c31af7Sopenharmony_ci
313e5c31af7Sopenharmony_ci			void main()
314e5c31af7Sopenharmony_ci			{
315e5c31af7Sopenharmony_ci				gl_Position = a_pos;
316e5c31af7Sopenharmony_ci			}
317e5c31af7Sopenharmony_ci		""
318e5c31af7Sopenharmony_ci
319e5c31af7Sopenharmony_ci		fragment ""
320e5c31af7Sopenharmony_ci			#version 300 es
321e5c31af7Sopenharmony_ci			precision highp float;
322e5c31af7Sopenharmony_ci
323e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
324e5c31af7Sopenharmony_ci
325e5c31af7Sopenharmony_ci			layout(row_major) uniform UniformBlock
326e5c31af7Sopenharmony_ci			{
327e5c31af7Sopenharmony_ci				vec4 uniformMember;
328e5c31af7Sopenharmony_ci			} uniformBlock;
329e5c31af7Sopenharmony_ci
330e5c31af7Sopenharmony_ci			void main()
331e5c31af7Sopenharmony_ci			{
332e5c31af7Sopenharmony_ci				o_color = uniformBlock.uniformMember;
333e5c31af7Sopenharmony_ci			}
334e5c31af7Sopenharmony_ci		""
335e5c31af7Sopenharmony_ci	end
336e5c31af7Sopenharmony_ci	case layout_column_major_vertex
337e5c31af7Sopenharmony_ci		version 300 es
338e5c31af7Sopenharmony_ci		expect build_successful
339e5c31af7Sopenharmony_ci
340e5c31af7Sopenharmony_ci		vertex ""
341e5c31af7Sopenharmony_ci			#version 300 es
342e5c31af7Sopenharmony_ci			precision highp float;
343e5c31af7Sopenharmony_ci
344e5c31af7Sopenharmony_ci
345e5c31af7Sopenharmony_ci
346e5c31af7Sopenharmony_ci			layout(column_major) uniform UniformBlock
347e5c31af7Sopenharmony_ci			{
348e5c31af7Sopenharmony_ci				vec4 uniformMember;
349e5c31af7Sopenharmony_ci			} uniformBlock;
350e5c31af7Sopenharmony_ci
351e5c31af7Sopenharmony_ci			void main()
352e5c31af7Sopenharmony_ci			{
353e5c31af7Sopenharmony_ci				gl_Position = uniformBlock.uniformMember;
354e5c31af7Sopenharmony_ci			}
355e5c31af7Sopenharmony_ci		""
356e5c31af7Sopenharmony_ci
357e5c31af7Sopenharmony_ci		fragment ""
358e5c31af7Sopenharmony_ci			#version 300 es
359e5c31af7Sopenharmony_ci			precision highp float;
360e5c31af7Sopenharmony_ci
361e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
362e5c31af7Sopenharmony_ci
363e5c31af7Sopenharmony_ci			void main()
364e5c31af7Sopenharmony_ci			{
365e5c31af7Sopenharmony_ci				o_color = vec4(1.0);
366e5c31af7Sopenharmony_ci			}
367e5c31af7Sopenharmony_ci		""
368e5c31af7Sopenharmony_ci	end
369e5c31af7Sopenharmony_ci	case layout_column_major_fragment
370e5c31af7Sopenharmony_ci		version 300 es
371e5c31af7Sopenharmony_ci		expect build_successful
372e5c31af7Sopenharmony_ci
373e5c31af7Sopenharmony_ci		vertex ""
374e5c31af7Sopenharmony_ci			#version 300 es
375e5c31af7Sopenharmony_ci			precision highp float;
376e5c31af7Sopenharmony_ci
377e5c31af7Sopenharmony_ci			in vec4 a_pos;
378e5c31af7Sopenharmony_ci
379e5c31af7Sopenharmony_ci			void main()
380e5c31af7Sopenharmony_ci			{
381e5c31af7Sopenharmony_ci				gl_Position = a_pos;
382e5c31af7Sopenharmony_ci			}
383e5c31af7Sopenharmony_ci		""
384e5c31af7Sopenharmony_ci
385e5c31af7Sopenharmony_ci		fragment ""
386e5c31af7Sopenharmony_ci			#version 300 es
387e5c31af7Sopenharmony_ci			precision highp float;
388e5c31af7Sopenharmony_ci
389e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
390e5c31af7Sopenharmony_ci
391e5c31af7Sopenharmony_ci			layout(column_major) uniform UniformBlock
392e5c31af7Sopenharmony_ci			{
393e5c31af7Sopenharmony_ci				vec4 uniformMember;
394e5c31af7Sopenharmony_ci			} uniformBlock;
395e5c31af7Sopenharmony_ci
396e5c31af7Sopenharmony_ci			void main()
397e5c31af7Sopenharmony_ci			{
398e5c31af7Sopenharmony_ci				o_color = uniformBlock.uniformMember;
399e5c31af7Sopenharmony_ci			}
400e5c31af7Sopenharmony_ci		""
401e5c31af7Sopenharmony_ci	end
402e5c31af7Sopenharmony_ci	case layout_all_vertex
403e5c31af7Sopenharmony_ci		version 300 es
404e5c31af7Sopenharmony_ci		expect build_successful
405e5c31af7Sopenharmony_ci
406e5c31af7Sopenharmony_ci		vertex ""
407e5c31af7Sopenharmony_ci			#version 300 es
408e5c31af7Sopenharmony_ci			precision highp float;
409e5c31af7Sopenharmony_ci
410e5c31af7Sopenharmony_ci
411e5c31af7Sopenharmony_ci
412e5c31af7Sopenharmony_ci			layout(shared, packed, std140, row_major, column_major) uniform UniformBlock
413e5c31af7Sopenharmony_ci			{
414e5c31af7Sopenharmony_ci				vec4 uniformMember;
415e5c31af7Sopenharmony_ci			} uniformBlock;
416e5c31af7Sopenharmony_ci
417e5c31af7Sopenharmony_ci			void main()
418e5c31af7Sopenharmony_ci			{
419e5c31af7Sopenharmony_ci				gl_Position = uniformBlock.uniformMember;
420e5c31af7Sopenharmony_ci			}
421e5c31af7Sopenharmony_ci		""
422e5c31af7Sopenharmony_ci
423e5c31af7Sopenharmony_ci		fragment ""
424e5c31af7Sopenharmony_ci			#version 300 es
425e5c31af7Sopenharmony_ci			precision highp float;
426e5c31af7Sopenharmony_ci
427e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
428e5c31af7Sopenharmony_ci
429e5c31af7Sopenharmony_ci			void main()
430e5c31af7Sopenharmony_ci			{
431e5c31af7Sopenharmony_ci				o_color = vec4(1.0);
432e5c31af7Sopenharmony_ci			}
433e5c31af7Sopenharmony_ci		""
434e5c31af7Sopenharmony_ci	end
435e5c31af7Sopenharmony_ci	case layout_all_fragment
436e5c31af7Sopenharmony_ci		version 300 es
437e5c31af7Sopenharmony_ci		expect build_successful
438e5c31af7Sopenharmony_ci
439e5c31af7Sopenharmony_ci		vertex ""
440e5c31af7Sopenharmony_ci			#version 300 es
441e5c31af7Sopenharmony_ci			precision highp float;
442e5c31af7Sopenharmony_ci
443e5c31af7Sopenharmony_ci			in vec4 a_pos;
444e5c31af7Sopenharmony_ci
445e5c31af7Sopenharmony_ci			void main()
446e5c31af7Sopenharmony_ci			{
447e5c31af7Sopenharmony_ci				gl_Position = a_pos;
448e5c31af7Sopenharmony_ci			}
449e5c31af7Sopenharmony_ci		""
450e5c31af7Sopenharmony_ci
451e5c31af7Sopenharmony_ci		fragment ""
452e5c31af7Sopenharmony_ci			#version 300 es
453e5c31af7Sopenharmony_ci			precision highp float;
454e5c31af7Sopenharmony_ci
455e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
456e5c31af7Sopenharmony_ci
457e5c31af7Sopenharmony_ci			layout(shared, packed, std140, row_major, column_major) uniform UniformBlock
458e5c31af7Sopenharmony_ci			{
459e5c31af7Sopenharmony_ci				vec4 uniformMember;
460e5c31af7Sopenharmony_ci			} uniformBlock;
461e5c31af7Sopenharmony_ci
462e5c31af7Sopenharmony_ci			void main()
463e5c31af7Sopenharmony_ci			{
464e5c31af7Sopenharmony_ci				o_color = uniformBlock.uniformMember;
465e5c31af7Sopenharmony_ci			}
466e5c31af7Sopenharmony_ci		""
467e5c31af7Sopenharmony_ci	end
468e5c31af7Sopenharmony_ci	case layout_all_8_times_vertex
469e5c31af7Sopenharmony_ci		version 300 es
470e5c31af7Sopenharmony_ci		expect build_successful
471e5c31af7Sopenharmony_ci
472e5c31af7Sopenharmony_ci		vertex ""
473e5c31af7Sopenharmony_ci			#version 300 es
474e5c31af7Sopenharmony_ci			precision highp float;
475e5c31af7Sopenharmony_ci
476e5c31af7Sopenharmony_ci
477e5c31af7Sopenharmony_ci
478e5c31af7Sopenharmony_ci			layout(shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major) uniform UniformBlock
479e5c31af7Sopenharmony_ci			{
480e5c31af7Sopenharmony_ci				vec4 uniformMember;
481e5c31af7Sopenharmony_ci			} uniformBlock;
482e5c31af7Sopenharmony_ci
483e5c31af7Sopenharmony_ci			void main()
484e5c31af7Sopenharmony_ci			{
485e5c31af7Sopenharmony_ci				gl_Position = uniformBlock.uniformMember;
486e5c31af7Sopenharmony_ci			}
487e5c31af7Sopenharmony_ci		""
488e5c31af7Sopenharmony_ci
489e5c31af7Sopenharmony_ci		fragment ""
490e5c31af7Sopenharmony_ci			#version 300 es
491e5c31af7Sopenharmony_ci			precision highp float;
492e5c31af7Sopenharmony_ci
493e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
494e5c31af7Sopenharmony_ci
495e5c31af7Sopenharmony_ci			void main()
496e5c31af7Sopenharmony_ci			{
497e5c31af7Sopenharmony_ci				o_color = vec4(1.0);
498e5c31af7Sopenharmony_ci			}
499e5c31af7Sopenharmony_ci		""
500e5c31af7Sopenharmony_ci	end
501e5c31af7Sopenharmony_ci	case layout_all_8_times_fragment
502e5c31af7Sopenharmony_ci		version 300 es
503e5c31af7Sopenharmony_ci		expect build_successful
504e5c31af7Sopenharmony_ci
505e5c31af7Sopenharmony_ci		vertex ""
506e5c31af7Sopenharmony_ci			#version 300 es
507e5c31af7Sopenharmony_ci			precision highp float;
508e5c31af7Sopenharmony_ci
509e5c31af7Sopenharmony_ci			in vec4 a_pos;
510e5c31af7Sopenharmony_ci
511e5c31af7Sopenharmony_ci			void main()
512e5c31af7Sopenharmony_ci			{
513e5c31af7Sopenharmony_ci				gl_Position = a_pos;
514e5c31af7Sopenharmony_ci			}
515e5c31af7Sopenharmony_ci		""
516e5c31af7Sopenharmony_ci
517e5c31af7Sopenharmony_ci		fragment ""
518e5c31af7Sopenharmony_ci			#version 300 es
519e5c31af7Sopenharmony_ci			precision highp float;
520e5c31af7Sopenharmony_ci
521e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
522e5c31af7Sopenharmony_ci
523e5c31af7Sopenharmony_ci			layout(shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major) uniform UniformBlock
524e5c31af7Sopenharmony_ci			{
525e5c31af7Sopenharmony_ci				vec4 uniformMember;
526e5c31af7Sopenharmony_ci			} uniformBlock;
527e5c31af7Sopenharmony_ci
528e5c31af7Sopenharmony_ci			void main()
529e5c31af7Sopenharmony_ci			{
530e5c31af7Sopenharmony_ci				o_color = uniformBlock.uniformMember;
531e5c31af7Sopenharmony_ci			}
532e5c31af7Sopenharmony_ci		""
533e5c31af7Sopenharmony_ci	end
534e5c31af7Sopenharmony_ci	case global_layout_shared_vertex
535e5c31af7Sopenharmony_ci		version 300 es
536e5c31af7Sopenharmony_ci		expect build_successful
537e5c31af7Sopenharmony_ci
538e5c31af7Sopenharmony_ci		vertex ""
539e5c31af7Sopenharmony_ci			#version 300 es
540e5c31af7Sopenharmony_ci			precision highp float;
541e5c31af7Sopenharmony_ci
542e5c31af7Sopenharmony_ci			layout(shared) uniform;
543e5c31af7Sopenharmony_ci
544e5c31af7Sopenharmony_ci
545e5c31af7Sopenharmony_ci
546e5c31af7Sopenharmony_ci			uniform UniformBlock
547e5c31af7Sopenharmony_ci			{
548e5c31af7Sopenharmony_ci				vec4 uniformMember;
549e5c31af7Sopenharmony_ci			} uniformBlock;
550e5c31af7Sopenharmony_ci
551e5c31af7Sopenharmony_ci			void main()
552e5c31af7Sopenharmony_ci			{
553e5c31af7Sopenharmony_ci				gl_Position = uniformBlock.uniformMember;
554e5c31af7Sopenharmony_ci			}
555e5c31af7Sopenharmony_ci		""
556e5c31af7Sopenharmony_ci
557e5c31af7Sopenharmony_ci		fragment ""
558e5c31af7Sopenharmony_ci			#version 300 es
559e5c31af7Sopenharmony_ci			precision highp float;
560e5c31af7Sopenharmony_ci
561e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
562e5c31af7Sopenharmony_ci
563e5c31af7Sopenharmony_ci			void main()
564e5c31af7Sopenharmony_ci			{
565e5c31af7Sopenharmony_ci				o_color = vec4(1.0);
566e5c31af7Sopenharmony_ci			}
567e5c31af7Sopenharmony_ci		""
568e5c31af7Sopenharmony_ci	end
569e5c31af7Sopenharmony_ci	case global_layout_shared_fragment
570e5c31af7Sopenharmony_ci		version 300 es
571e5c31af7Sopenharmony_ci		expect build_successful
572e5c31af7Sopenharmony_ci
573e5c31af7Sopenharmony_ci		vertex ""
574e5c31af7Sopenharmony_ci			#version 300 es
575e5c31af7Sopenharmony_ci			precision highp float;
576e5c31af7Sopenharmony_ci
577e5c31af7Sopenharmony_ci			in vec4 a_pos;
578e5c31af7Sopenharmony_ci
579e5c31af7Sopenharmony_ci			void main()
580e5c31af7Sopenharmony_ci			{
581e5c31af7Sopenharmony_ci				gl_Position = a_pos;
582e5c31af7Sopenharmony_ci			}
583e5c31af7Sopenharmony_ci		""
584e5c31af7Sopenharmony_ci
585e5c31af7Sopenharmony_ci		fragment ""
586e5c31af7Sopenharmony_ci			#version 300 es
587e5c31af7Sopenharmony_ci			precision highp float;
588e5c31af7Sopenharmony_ci
589e5c31af7Sopenharmony_ci			layout(shared) uniform;
590e5c31af7Sopenharmony_ci
591e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
592e5c31af7Sopenharmony_ci
593e5c31af7Sopenharmony_ci			uniform UniformBlock
594e5c31af7Sopenharmony_ci			{
595e5c31af7Sopenharmony_ci				vec4 uniformMember;
596e5c31af7Sopenharmony_ci			} uniformBlock;
597e5c31af7Sopenharmony_ci
598e5c31af7Sopenharmony_ci			void main()
599e5c31af7Sopenharmony_ci			{
600e5c31af7Sopenharmony_ci				o_color = uniformBlock.uniformMember;
601e5c31af7Sopenharmony_ci			}
602e5c31af7Sopenharmony_ci		""
603e5c31af7Sopenharmony_ci	end
604e5c31af7Sopenharmony_ci	case global_layout_packed_vertex
605e5c31af7Sopenharmony_ci		version 300 es
606e5c31af7Sopenharmony_ci		expect build_successful
607e5c31af7Sopenharmony_ci
608e5c31af7Sopenharmony_ci		vertex ""
609e5c31af7Sopenharmony_ci			#version 300 es
610e5c31af7Sopenharmony_ci			precision highp float;
611e5c31af7Sopenharmony_ci
612e5c31af7Sopenharmony_ci			layout(packed) uniform;
613e5c31af7Sopenharmony_ci
614e5c31af7Sopenharmony_ci
615e5c31af7Sopenharmony_ci
616e5c31af7Sopenharmony_ci			uniform UniformBlock
617e5c31af7Sopenharmony_ci			{
618e5c31af7Sopenharmony_ci				vec4 uniformMember;
619e5c31af7Sopenharmony_ci			} uniformBlock;
620e5c31af7Sopenharmony_ci
621e5c31af7Sopenharmony_ci			void main()
622e5c31af7Sopenharmony_ci			{
623e5c31af7Sopenharmony_ci				gl_Position = uniformBlock.uniformMember;
624e5c31af7Sopenharmony_ci			}
625e5c31af7Sopenharmony_ci		""
626e5c31af7Sopenharmony_ci
627e5c31af7Sopenharmony_ci		fragment ""
628e5c31af7Sopenharmony_ci			#version 300 es
629e5c31af7Sopenharmony_ci			precision highp float;
630e5c31af7Sopenharmony_ci
631e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
632e5c31af7Sopenharmony_ci
633e5c31af7Sopenharmony_ci			void main()
634e5c31af7Sopenharmony_ci			{
635e5c31af7Sopenharmony_ci				o_color = vec4(1.0);
636e5c31af7Sopenharmony_ci			}
637e5c31af7Sopenharmony_ci		""
638e5c31af7Sopenharmony_ci	end
639e5c31af7Sopenharmony_ci	case global_layout_packed_fragment
640e5c31af7Sopenharmony_ci		version 300 es
641e5c31af7Sopenharmony_ci		expect build_successful
642e5c31af7Sopenharmony_ci
643e5c31af7Sopenharmony_ci		vertex ""
644e5c31af7Sopenharmony_ci			#version 300 es
645e5c31af7Sopenharmony_ci			precision highp float;
646e5c31af7Sopenharmony_ci
647e5c31af7Sopenharmony_ci			in vec4 a_pos;
648e5c31af7Sopenharmony_ci
649e5c31af7Sopenharmony_ci			void main()
650e5c31af7Sopenharmony_ci			{
651e5c31af7Sopenharmony_ci				gl_Position = a_pos;
652e5c31af7Sopenharmony_ci			}
653e5c31af7Sopenharmony_ci		""
654e5c31af7Sopenharmony_ci
655e5c31af7Sopenharmony_ci		fragment ""
656e5c31af7Sopenharmony_ci			#version 300 es
657e5c31af7Sopenharmony_ci			precision highp float;
658e5c31af7Sopenharmony_ci
659e5c31af7Sopenharmony_ci			layout(packed) uniform;
660e5c31af7Sopenharmony_ci
661e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
662e5c31af7Sopenharmony_ci
663e5c31af7Sopenharmony_ci			uniform UniformBlock
664e5c31af7Sopenharmony_ci			{
665e5c31af7Sopenharmony_ci				vec4 uniformMember;
666e5c31af7Sopenharmony_ci			} uniformBlock;
667e5c31af7Sopenharmony_ci
668e5c31af7Sopenharmony_ci			void main()
669e5c31af7Sopenharmony_ci			{
670e5c31af7Sopenharmony_ci				o_color = uniformBlock.uniformMember;
671e5c31af7Sopenharmony_ci			}
672e5c31af7Sopenharmony_ci		""
673e5c31af7Sopenharmony_ci	end
674e5c31af7Sopenharmony_ci	case global_layout_std140_vertex
675e5c31af7Sopenharmony_ci		version 300 es
676e5c31af7Sopenharmony_ci		expect build_successful
677e5c31af7Sopenharmony_ci
678e5c31af7Sopenharmony_ci		vertex ""
679e5c31af7Sopenharmony_ci			#version 300 es
680e5c31af7Sopenharmony_ci			precision highp float;
681e5c31af7Sopenharmony_ci
682e5c31af7Sopenharmony_ci			layout(std140) uniform;
683e5c31af7Sopenharmony_ci
684e5c31af7Sopenharmony_ci
685e5c31af7Sopenharmony_ci
686e5c31af7Sopenharmony_ci			uniform UniformBlock
687e5c31af7Sopenharmony_ci			{
688e5c31af7Sopenharmony_ci				vec4 uniformMember;
689e5c31af7Sopenharmony_ci			} uniformBlock;
690e5c31af7Sopenharmony_ci
691e5c31af7Sopenharmony_ci			void main()
692e5c31af7Sopenharmony_ci			{
693e5c31af7Sopenharmony_ci				gl_Position = uniformBlock.uniformMember;
694e5c31af7Sopenharmony_ci			}
695e5c31af7Sopenharmony_ci		""
696e5c31af7Sopenharmony_ci
697e5c31af7Sopenharmony_ci		fragment ""
698e5c31af7Sopenharmony_ci			#version 300 es
699e5c31af7Sopenharmony_ci			precision highp float;
700e5c31af7Sopenharmony_ci
701e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
702e5c31af7Sopenharmony_ci
703e5c31af7Sopenharmony_ci			void main()
704e5c31af7Sopenharmony_ci			{
705e5c31af7Sopenharmony_ci				o_color = vec4(1.0);
706e5c31af7Sopenharmony_ci			}
707e5c31af7Sopenharmony_ci		""
708e5c31af7Sopenharmony_ci	end
709e5c31af7Sopenharmony_ci	case global_layout_std140_fragment
710e5c31af7Sopenharmony_ci		version 300 es
711e5c31af7Sopenharmony_ci		expect build_successful
712e5c31af7Sopenharmony_ci
713e5c31af7Sopenharmony_ci		vertex ""
714e5c31af7Sopenharmony_ci			#version 300 es
715e5c31af7Sopenharmony_ci			precision highp float;
716e5c31af7Sopenharmony_ci
717e5c31af7Sopenharmony_ci			in vec4 a_pos;
718e5c31af7Sopenharmony_ci
719e5c31af7Sopenharmony_ci			void main()
720e5c31af7Sopenharmony_ci			{
721e5c31af7Sopenharmony_ci				gl_Position = a_pos;
722e5c31af7Sopenharmony_ci			}
723e5c31af7Sopenharmony_ci		""
724e5c31af7Sopenharmony_ci
725e5c31af7Sopenharmony_ci		fragment ""
726e5c31af7Sopenharmony_ci			#version 300 es
727e5c31af7Sopenharmony_ci			precision highp float;
728e5c31af7Sopenharmony_ci
729e5c31af7Sopenharmony_ci			layout(std140) uniform;
730e5c31af7Sopenharmony_ci
731e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
732e5c31af7Sopenharmony_ci
733e5c31af7Sopenharmony_ci			uniform UniformBlock
734e5c31af7Sopenharmony_ci			{
735e5c31af7Sopenharmony_ci				vec4 uniformMember;
736e5c31af7Sopenharmony_ci			} uniformBlock;
737e5c31af7Sopenharmony_ci
738e5c31af7Sopenharmony_ci			void main()
739e5c31af7Sopenharmony_ci			{
740e5c31af7Sopenharmony_ci				o_color = uniformBlock.uniformMember;
741e5c31af7Sopenharmony_ci			}
742e5c31af7Sopenharmony_ci		""
743e5c31af7Sopenharmony_ci	end
744e5c31af7Sopenharmony_ci	case global_layout_row_major_vertex
745e5c31af7Sopenharmony_ci		version 300 es
746e5c31af7Sopenharmony_ci		expect build_successful
747e5c31af7Sopenharmony_ci
748e5c31af7Sopenharmony_ci		vertex ""
749e5c31af7Sopenharmony_ci			#version 300 es
750e5c31af7Sopenharmony_ci			precision highp float;
751e5c31af7Sopenharmony_ci
752e5c31af7Sopenharmony_ci			layout(row_major) uniform;
753e5c31af7Sopenharmony_ci
754e5c31af7Sopenharmony_ci
755e5c31af7Sopenharmony_ci
756e5c31af7Sopenharmony_ci			uniform UniformBlock
757e5c31af7Sopenharmony_ci			{
758e5c31af7Sopenharmony_ci				vec4 uniformMember;
759e5c31af7Sopenharmony_ci			} uniformBlock;
760e5c31af7Sopenharmony_ci
761e5c31af7Sopenharmony_ci			void main()
762e5c31af7Sopenharmony_ci			{
763e5c31af7Sopenharmony_ci				gl_Position = uniformBlock.uniformMember;
764e5c31af7Sopenharmony_ci			}
765e5c31af7Sopenharmony_ci		""
766e5c31af7Sopenharmony_ci
767e5c31af7Sopenharmony_ci		fragment ""
768e5c31af7Sopenharmony_ci			#version 300 es
769e5c31af7Sopenharmony_ci			precision highp float;
770e5c31af7Sopenharmony_ci
771e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
772e5c31af7Sopenharmony_ci
773e5c31af7Sopenharmony_ci			void main()
774e5c31af7Sopenharmony_ci			{
775e5c31af7Sopenharmony_ci				o_color = vec4(1.0);
776e5c31af7Sopenharmony_ci			}
777e5c31af7Sopenharmony_ci		""
778e5c31af7Sopenharmony_ci	end
779e5c31af7Sopenharmony_ci	case global_layout_row_major_fragment
780e5c31af7Sopenharmony_ci		version 300 es
781e5c31af7Sopenharmony_ci		expect build_successful
782e5c31af7Sopenharmony_ci
783e5c31af7Sopenharmony_ci		vertex ""
784e5c31af7Sopenharmony_ci			#version 300 es
785e5c31af7Sopenharmony_ci			precision highp float;
786e5c31af7Sopenharmony_ci
787e5c31af7Sopenharmony_ci			in vec4 a_pos;
788e5c31af7Sopenharmony_ci
789e5c31af7Sopenharmony_ci			void main()
790e5c31af7Sopenharmony_ci			{
791e5c31af7Sopenharmony_ci				gl_Position = a_pos;
792e5c31af7Sopenharmony_ci			}
793e5c31af7Sopenharmony_ci		""
794e5c31af7Sopenharmony_ci
795e5c31af7Sopenharmony_ci		fragment ""
796e5c31af7Sopenharmony_ci			#version 300 es
797e5c31af7Sopenharmony_ci			precision highp float;
798e5c31af7Sopenharmony_ci
799e5c31af7Sopenharmony_ci			layout(row_major) uniform;
800e5c31af7Sopenharmony_ci
801e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
802e5c31af7Sopenharmony_ci
803e5c31af7Sopenharmony_ci			uniform UniformBlock
804e5c31af7Sopenharmony_ci			{
805e5c31af7Sopenharmony_ci				vec4 uniformMember;
806e5c31af7Sopenharmony_ci			} uniformBlock;
807e5c31af7Sopenharmony_ci
808e5c31af7Sopenharmony_ci			void main()
809e5c31af7Sopenharmony_ci			{
810e5c31af7Sopenharmony_ci				o_color = uniformBlock.uniformMember;
811e5c31af7Sopenharmony_ci			}
812e5c31af7Sopenharmony_ci		""
813e5c31af7Sopenharmony_ci	end
814e5c31af7Sopenharmony_ci	case global_layout_column_major_vertex
815e5c31af7Sopenharmony_ci		version 300 es
816e5c31af7Sopenharmony_ci		expect build_successful
817e5c31af7Sopenharmony_ci
818e5c31af7Sopenharmony_ci		vertex ""
819e5c31af7Sopenharmony_ci			#version 300 es
820e5c31af7Sopenharmony_ci			precision highp float;
821e5c31af7Sopenharmony_ci
822e5c31af7Sopenharmony_ci			layout(column_major) uniform;
823e5c31af7Sopenharmony_ci
824e5c31af7Sopenharmony_ci
825e5c31af7Sopenharmony_ci
826e5c31af7Sopenharmony_ci			uniform UniformBlock
827e5c31af7Sopenharmony_ci			{
828e5c31af7Sopenharmony_ci				vec4 uniformMember;
829e5c31af7Sopenharmony_ci			} uniformBlock;
830e5c31af7Sopenharmony_ci
831e5c31af7Sopenharmony_ci			void main()
832e5c31af7Sopenharmony_ci			{
833e5c31af7Sopenharmony_ci				gl_Position = uniformBlock.uniformMember;
834e5c31af7Sopenharmony_ci			}
835e5c31af7Sopenharmony_ci		""
836e5c31af7Sopenharmony_ci
837e5c31af7Sopenharmony_ci		fragment ""
838e5c31af7Sopenharmony_ci			#version 300 es
839e5c31af7Sopenharmony_ci			precision highp float;
840e5c31af7Sopenharmony_ci
841e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
842e5c31af7Sopenharmony_ci
843e5c31af7Sopenharmony_ci			void main()
844e5c31af7Sopenharmony_ci			{
845e5c31af7Sopenharmony_ci				o_color = vec4(1.0);
846e5c31af7Sopenharmony_ci			}
847e5c31af7Sopenharmony_ci		""
848e5c31af7Sopenharmony_ci	end
849e5c31af7Sopenharmony_ci	case global_layout_column_major_fragment
850e5c31af7Sopenharmony_ci		version 300 es
851e5c31af7Sopenharmony_ci		expect build_successful
852e5c31af7Sopenharmony_ci
853e5c31af7Sopenharmony_ci		vertex ""
854e5c31af7Sopenharmony_ci			#version 300 es
855e5c31af7Sopenharmony_ci			precision highp float;
856e5c31af7Sopenharmony_ci
857e5c31af7Sopenharmony_ci			in vec4 a_pos;
858e5c31af7Sopenharmony_ci
859e5c31af7Sopenharmony_ci			void main()
860e5c31af7Sopenharmony_ci			{
861e5c31af7Sopenharmony_ci				gl_Position = a_pos;
862e5c31af7Sopenharmony_ci			}
863e5c31af7Sopenharmony_ci		""
864e5c31af7Sopenharmony_ci
865e5c31af7Sopenharmony_ci		fragment ""
866e5c31af7Sopenharmony_ci			#version 300 es
867e5c31af7Sopenharmony_ci			precision highp float;
868e5c31af7Sopenharmony_ci
869e5c31af7Sopenharmony_ci			layout(column_major) uniform;
870e5c31af7Sopenharmony_ci
871e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
872e5c31af7Sopenharmony_ci
873e5c31af7Sopenharmony_ci			uniform UniformBlock
874e5c31af7Sopenharmony_ci			{
875e5c31af7Sopenharmony_ci				vec4 uniformMember;
876e5c31af7Sopenharmony_ci			} uniformBlock;
877e5c31af7Sopenharmony_ci
878e5c31af7Sopenharmony_ci			void main()
879e5c31af7Sopenharmony_ci			{
880e5c31af7Sopenharmony_ci				o_color = uniformBlock.uniformMember;
881e5c31af7Sopenharmony_ci			}
882e5c31af7Sopenharmony_ci		""
883e5c31af7Sopenharmony_ci	end
884e5c31af7Sopenharmony_ci	case global_layout_all_vertex
885e5c31af7Sopenharmony_ci		version 300 es
886e5c31af7Sopenharmony_ci		expect build_successful
887e5c31af7Sopenharmony_ci
888e5c31af7Sopenharmony_ci		vertex ""
889e5c31af7Sopenharmony_ci			#version 300 es
890e5c31af7Sopenharmony_ci			precision highp float;
891e5c31af7Sopenharmony_ci
892e5c31af7Sopenharmony_ci			layout(shared, packed, std140, row_major, column_major) uniform;
893e5c31af7Sopenharmony_ci
894e5c31af7Sopenharmony_ci
895e5c31af7Sopenharmony_ci
896e5c31af7Sopenharmony_ci			uniform UniformBlock
897e5c31af7Sopenharmony_ci			{
898e5c31af7Sopenharmony_ci				vec4 uniformMember;
899e5c31af7Sopenharmony_ci			} uniformBlock;
900e5c31af7Sopenharmony_ci
901e5c31af7Sopenharmony_ci			void main()
902e5c31af7Sopenharmony_ci			{
903e5c31af7Sopenharmony_ci				gl_Position = uniformBlock.uniformMember;
904e5c31af7Sopenharmony_ci			}
905e5c31af7Sopenharmony_ci		""
906e5c31af7Sopenharmony_ci
907e5c31af7Sopenharmony_ci		fragment ""
908e5c31af7Sopenharmony_ci			#version 300 es
909e5c31af7Sopenharmony_ci			precision highp float;
910e5c31af7Sopenharmony_ci
911e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
912e5c31af7Sopenharmony_ci
913e5c31af7Sopenharmony_ci			void main()
914e5c31af7Sopenharmony_ci			{
915e5c31af7Sopenharmony_ci				o_color = vec4(1.0);
916e5c31af7Sopenharmony_ci			}
917e5c31af7Sopenharmony_ci		""
918e5c31af7Sopenharmony_ci	end
919e5c31af7Sopenharmony_ci	case global_layout_all_fragment
920e5c31af7Sopenharmony_ci		version 300 es
921e5c31af7Sopenharmony_ci		expect build_successful
922e5c31af7Sopenharmony_ci
923e5c31af7Sopenharmony_ci		vertex ""
924e5c31af7Sopenharmony_ci			#version 300 es
925e5c31af7Sopenharmony_ci			precision highp float;
926e5c31af7Sopenharmony_ci
927e5c31af7Sopenharmony_ci			in vec4 a_pos;
928e5c31af7Sopenharmony_ci
929e5c31af7Sopenharmony_ci			void main()
930e5c31af7Sopenharmony_ci			{
931e5c31af7Sopenharmony_ci				gl_Position = a_pos;
932e5c31af7Sopenharmony_ci			}
933e5c31af7Sopenharmony_ci		""
934e5c31af7Sopenharmony_ci
935e5c31af7Sopenharmony_ci		fragment ""
936e5c31af7Sopenharmony_ci			#version 300 es
937e5c31af7Sopenharmony_ci			precision highp float;
938e5c31af7Sopenharmony_ci
939e5c31af7Sopenharmony_ci			layout(shared, packed, std140, row_major, column_major) uniform;
940e5c31af7Sopenharmony_ci
941e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
942e5c31af7Sopenharmony_ci
943e5c31af7Sopenharmony_ci			uniform UniformBlock
944e5c31af7Sopenharmony_ci			{
945e5c31af7Sopenharmony_ci				vec4 uniformMember;
946e5c31af7Sopenharmony_ci			} uniformBlock;
947e5c31af7Sopenharmony_ci
948e5c31af7Sopenharmony_ci			void main()
949e5c31af7Sopenharmony_ci			{
950e5c31af7Sopenharmony_ci				o_color = uniformBlock.uniformMember;
951e5c31af7Sopenharmony_ci			}
952e5c31af7Sopenharmony_ci		""
953e5c31af7Sopenharmony_ci	end
954e5c31af7Sopenharmony_ci	case global_layout_all_8_times_vertex
955e5c31af7Sopenharmony_ci		version 300 es
956e5c31af7Sopenharmony_ci		expect build_successful
957e5c31af7Sopenharmony_ci
958e5c31af7Sopenharmony_ci		vertex ""
959e5c31af7Sopenharmony_ci			#version 300 es
960e5c31af7Sopenharmony_ci			precision highp float;
961e5c31af7Sopenharmony_ci
962e5c31af7Sopenharmony_ci			layout(shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major) uniform;
963e5c31af7Sopenharmony_ci
964e5c31af7Sopenharmony_ci
965e5c31af7Sopenharmony_ci
966e5c31af7Sopenharmony_ci			uniform UniformBlock
967e5c31af7Sopenharmony_ci			{
968e5c31af7Sopenharmony_ci				vec4 uniformMember;
969e5c31af7Sopenharmony_ci			} uniformBlock;
970e5c31af7Sopenharmony_ci
971e5c31af7Sopenharmony_ci			void main()
972e5c31af7Sopenharmony_ci			{
973e5c31af7Sopenharmony_ci				gl_Position = uniformBlock.uniformMember;
974e5c31af7Sopenharmony_ci			}
975e5c31af7Sopenharmony_ci		""
976e5c31af7Sopenharmony_ci
977e5c31af7Sopenharmony_ci		fragment ""
978e5c31af7Sopenharmony_ci			#version 300 es
979e5c31af7Sopenharmony_ci			precision highp float;
980e5c31af7Sopenharmony_ci
981e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
982e5c31af7Sopenharmony_ci
983e5c31af7Sopenharmony_ci			void main()
984e5c31af7Sopenharmony_ci			{
985e5c31af7Sopenharmony_ci				o_color = vec4(1.0);
986e5c31af7Sopenharmony_ci			}
987e5c31af7Sopenharmony_ci		""
988e5c31af7Sopenharmony_ci	end
989e5c31af7Sopenharmony_ci	case global_layout_all_8_times_fragment
990e5c31af7Sopenharmony_ci		version 300 es
991e5c31af7Sopenharmony_ci		expect build_successful
992e5c31af7Sopenharmony_ci
993e5c31af7Sopenharmony_ci		vertex ""
994e5c31af7Sopenharmony_ci			#version 300 es
995e5c31af7Sopenharmony_ci			precision highp float;
996e5c31af7Sopenharmony_ci
997e5c31af7Sopenharmony_ci			in vec4 a_pos;
998e5c31af7Sopenharmony_ci
999e5c31af7Sopenharmony_ci			void main()
1000e5c31af7Sopenharmony_ci			{
1001e5c31af7Sopenharmony_ci				gl_Position = a_pos;
1002e5c31af7Sopenharmony_ci			}
1003e5c31af7Sopenharmony_ci		""
1004e5c31af7Sopenharmony_ci
1005e5c31af7Sopenharmony_ci		fragment ""
1006e5c31af7Sopenharmony_ci			#version 300 es
1007e5c31af7Sopenharmony_ci			precision highp float;
1008e5c31af7Sopenharmony_ci
1009e5c31af7Sopenharmony_ci			layout(shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major) uniform;
1010e5c31af7Sopenharmony_ci
1011e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
1012e5c31af7Sopenharmony_ci
1013e5c31af7Sopenharmony_ci			uniform UniformBlock
1014e5c31af7Sopenharmony_ci			{
1015e5c31af7Sopenharmony_ci				vec4 uniformMember;
1016e5c31af7Sopenharmony_ci			} uniformBlock;
1017e5c31af7Sopenharmony_ci
1018e5c31af7Sopenharmony_ci			void main()
1019e5c31af7Sopenharmony_ci			{
1020e5c31af7Sopenharmony_ci				o_color = uniformBlock.uniformMember;
1021e5c31af7Sopenharmony_ci			}
1022e5c31af7Sopenharmony_ci		""
1023e5c31af7Sopenharmony_ci	end
1024e5c31af7Sopenharmony_ci	case member_layout_row_major_vertex
1025e5c31af7Sopenharmony_ci		version 300 es
1026e5c31af7Sopenharmony_ci		expect build_successful
1027e5c31af7Sopenharmony_ci
1028e5c31af7Sopenharmony_ci		vertex ""
1029e5c31af7Sopenharmony_ci			#version 300 es
1030e5c31af7Sopenharmony_ci			precision highp float;
1031e5c31af7Sopenharmony_ci
1032e5c31af7Sopenharmony_ci
1033e5c31af7Sopenharmony_ci
1034e5c31af7Sopenharmony_ci			uniform UniformBlock
1035e5c31af7Sopenharmony_ci			{
1036e5c31af7Sopenharmony_ci				layout(row_major) mat4 uniformMember;
1037e5c31af7Sopenharmony_ci			} uniformBlock;
1038e5c31af7Sopenharmony_ci
1039e5c31af7Sopenharmony_ci			void main()
1040e5c31af7Sopenharmony_ci			{
1041e5c31af7Sopenharmony_ci				gl_Position = uniformBlock.uniformMember[0];
1042e5c31af7Sopenharmony_ci			}
1043e5c31af7Sopenharmony_ci		""
1044e5c31af7Sopenharmony_ci
1045e5c31af7Sopenharmony_ci		fragment ""
1046e5c31af7Sopenharmony_ci			#version 300 es
1047e5c31af7Sopenharmony_ci			precision highp float;
1048e5c31af7Sopenharmony_ci
1049e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
1050e5c31af7Sopenharmony_ci
1051e5c31af7Sopenharmony_ci			void main()
1052e5c31af7Sopenharmony_ci			{
1053e5c31af7Sopenharmony_ci				o_color = vec4(1.0);
1054e5c31af7Sopenharmony_ci			}
1055e5c31af7Sopenharmony_ci		""
1056e5c31af7Sopenharmony_ci	end
1057e5c31af7Sopenharmony_ci	case member_layout_row_major_fragment
1058e5c31af7Sopenharmony_ci		version 300 es
1059e5c31af7Sopenharmony_ci		expect build_successful
1060e5c31af7Sopenharmony_ci
1061e5c31af7Sopenharmony_ci		vertex ""
1062e5c31af7Sopenharmony_ci			#version 300 es
1063e5c31af7Sopenharmony_ci			precision highp float;
1064e5c31af7Sopenharmony_ci
1065e5c31af7Sopenharmony_ci			in vec4 a_pos;
1066e5c31af7Sopenharmony_ci
1067e5c31af7Sopenharmony_ci			void main()
1068e5c31af7Sopenharmony_ci			{
1069e5c31af7Sopenharmony_ci				gl_Position = a_pos;
1070e5c31af7Sopenharmony_ci			}
1071e5c31af7Sopenharmony_ci		""
1072e5c31af7Sopenharmony_ci
1073e5c31af7Sopenharmony_ci		fragment ""
1074e5c31af7Sopenharmony_ci			#version 300 es
1075e5c31af7Sopenharmony_ci			precision highp float;
1076e5c31af7Sopenharmony_ci
1077e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
1078e5c31af7Sopenharmony_ci
1079e5c31af7Sopenharmony_ci			uniform UniformBlock
1080e5c31af7Sopenharmony_ci			{
1081e5c31af7Sopenharmony_ci				layout(row_major) mat4 uniformMember;
1082e5c31af7Sopenharmony_ci			} uniformBlock;
1083e5c31af7Sopenharmony_ci
1084e5c31af7Sopenharmony_ci			void main()
1085e5c31af7Sopenharmony_ci			{
1086e5c31af7Sopenharmony_ci				o_color = uniformBlock.uniformMember[0];
1087e5c31af7Sopenharmony_ci			}
1088e5c31af7Sopenharmony_ci		""
1089e5c31af7Sopenharmony_ci	end
1090e5c31af7Sopenharmony_ci	case member_layout_column_major_vertex
1091e5c31af7Sopenharmony_ci		version 300 es
1092e5c31af7Sopenharmony_ci		expect build_successful
1093e5c31af7Sopenharmony_ci
1094e5c31af7Sopenharmony_ci		vertex ""
1095e5c31af7Sopenharmony_ci			#version 300 es
1096e5c31af7Sopenharmony_ci			precision highp float;
1097e5c31af7Sopenharmony_ci
1098e5c31af7Sopenharmony_ci
1099e5c31af7Sopenharmony_ci
1100e5c31af7Sopenharmony_ci			uniform UniformBlock
1101e5c31af7Sopenharmony_ci			{
1102e5c31af7Sopenharmony_ci				layout(column_major) mat4 uniformMember;
1103e5c31af7Sopenharmony_ci			} uniformBlock;
1104e5c31af7Sopenharmony_ci
1105e5c31af7Sopenharmony_ci			void main()
1106e5c31af7Sopenharmony_ci			{
1107e5c31af7Sopenharmony_ci				gl_Position = uniformBlock.uniformMember[0];
1108e5c31af7Sopenharmony_ci			}
1109e5c31af7Sopenharmony_ci		""
1110e5c31af7Sopenharmony_ci
1111e5c31af7Sopenharmony_ci		fragment ""
1112e5c31af7Sopenharmony_ci			#version 300 es
1113e5c31af7Sopenharmony_ci			precision highp float;
1114e5c31af7Sopenharmony_ci
1115e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
1116e5c31af7Sopenharmony_ci
1117e5c31af7Sopenharmony_ci			void main()
1118e5c31af7Sopenharmony_ci			{
1119e5c31af7Sopenharmony_ci				o_color = vec4(1.0);
1120e5c31af7Sopenharmony_ci			}
1121e5c31af7Sopenharmony_ci		""
1122e5c31af7Sopenharmony_ci	end
1123e5c31af7Sopenharmony_ci	case member_layout_column_major_fragment
1124e5c31af7Sopenharmony_ci		version 300 es
1125e5c31af7Sopenharmony_ci		expect build_successful
1126e5c31af7Sopenharmony_ci
1127e5c31af7Sopenharmony_ci		vertex ""
1128e5c31af7Sopenharmony_ci			#version 300 es
1129e5c31af7Sopenharmony_ci			precision highp float;
1130e5c31af7Sopenharmony_ci
1131e5c31af7Sopenharmony_ci			in vec4 a_pos;
1132e5c31af7Sopenharmony_ci
1133e5c31af7Sopenharmony_ci			void main()
1134e5c31af7Sopenharmony_ci			{
1135e5c31af7Sopenharmony_ci				gl_Position = a_pos;
1136e5c31af7Sopenharmony_ci			}
1137e5c31af7Sopenharmony_ci		""
1138e5c31af7Sopenharmony_ci
1139e5c31af7Sopenharmony_ci		fragment ""
1140e5c31af7Sopenharmony_ci			#version 300 es
1141e5c31af7Sopenharmony_ci			precision highp float;
1142e5c31af7Sopenharmony_ci
1143e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
1144e5c31af7Sopenharmony_ci
1145e5c31af7Sopenharmony_ci			uniform UniformBlock
1146e5c31af7Sopenharmony_ci			{
1147e5c31af7Sopenharmony_ci				layout(column_major) mat4 uniformMember;
1148e5c31af7Sopenharmony_ci			} uniformBlock;
1149e5c31af7Sopenharmony_ci
1150e5c31af7Sopenharmony_ci			void main()
1151e5c31af7Sopenharmony_ci			{
1152e5c31af7Sopenharmony_ci				o_color = uniformBlock.uniformMember[0];
1153e5c31af7Sopenharmony_ci			}
1154e5c31af7Sopenharmony_ci		""
1155e5c31af7Sopenharmony_ci	end
1156e5c31af7Sopenharmony_ci	case member_layout_row_major_vec4_vertex
1157e5c31af7Sopenharmony_ci		version 300 es
1158e5c31af7Sopenharmony_ci		expect build_successful
1159e5c31af7Sopenharmony_ci
1160e5c31af7Sopenharmony_ci		vertex ""
1161e5c31af7Sopenharmony_ci			#version 300 es
1162e5c31af7Sopenharmony_ci			precision highp float;
1163e5c31af7Sopenharmony_ci
1164e5c31af7Sopenharmony_ci
1165e5c31af7Sopenharmony_ci
1166e5c31af7Sopenharmony_ci			uniform UniformBlock
1167e5c31af7Sopenharmony_ci			{
1168e5c31af7Sopenharmony_ci				layout(row_major) vec4 uniformMember;
1169e5c31af7Sopenharmony_ci			} uniformBlock;
1170e5c31af7Sopenharmony_ci
1171e5c31af7Sopenharmony_ci			void main()
1172e5c31af7Sopenharmony_ci			{
1173e5c31af7Sopenharmony_ci				gl_Position = uniformBlock.uniformMember;
1174e5c31af7Sopenharmony_ci			}
1175e5c31af7Sopenharmony_ci		""
1176e5c31af7Sopenharmony_ci
1177e5c31af7Sopenharmony_ci		fragment ""
1178e5c31af7Sopenharmony_ci			#version 300 es
1179e5c31af7Sopenharmony_ci			precision highp float;
1180e5c31af7Sopenharmony_ci
1181e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
1182e5c31af7Sopenharmony_ci
1183e5c31af7Sopenharmony_ci			void main()
1184e5c31af7Sopenharmony_ci			{
1185e5c31af7Sopenharmony_ci				o_color = vec4(1.0);
1186e5c31af7Sopenharmony_ci			}
1187e5c31af7Sopenharmony_ci		""
1188e5c31af7Sopenharmony_ci	end
1189e5c31af7Sopenharmony_ci	case member_layout_row_major_vec4_fragment
1190e5c31af7Sopenharmony_ci		version 300 es
1191e5c31af7Sopenharmony_ci		expect build_successful
1192e5c31af7Sopenharmony_ci
1193e5c31af7Sopenharmony_ci		vertex ""
1194e5c31af7Sopenharmony_ci			#version 300 es
1195e5c31af7Sopenharmony_ci			precision highp float;
1196e5c31af7Sopenharmony_ci
1197e5c31af7Sopenharmony_ci			in vec4 a_pos;
1198e5c31af7Sopenharmony_ci
1199e5c31af7Sopenharmony_ci			void main()
1200e5c31af7Sopenharmony_ci			{
1201e5c31af7Sopenharmony_ci				gl_Position = a_pos;
1202e5c31af7Sopenharmony_ci			}
1203e5c31af7Sopenharmony_ci		""
1204e5c31af7Sopenharmony_ci
1205e5c31af7Sopenharmony_ci		fragment ""
1206e5c31af7Sopenharmony_ci			#version 300 es
1207e5c31af7Sopenharmony_ci			precision highp float;
1208e5c31af7Sopenharmony_ci
1209e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
1210e5c31af7Sopenharmony_ci
1211e5c31af7Sopenharmony_ci			uniform UniformBlock
1212e5c31af7Sopenharmony_ci			{
1213e5c31af7Sopenharmony_ci				layout(row_major) vec4 uniformMember;
1214e5c31af7Sopenharmony_ci			} uniformBlock;
1215e5c31af7Sopenharmony_ci
1216e5c31af7Sopenharmony_ci			void main()
1217e5c31af7Sopenharmony_ci			{
1218e5c31af7Sopenharmony_ci				o_color = uniformBlock.uniformMember;
1219e5c31af7Sopenharmony_ci			}
1220e5c31af7Sopenharmony_ci		""
1221e5c31af7Sopenharmony_ci	end
1222e5c31af7Sopenharmony_ci	case member_layout_column_major_vec4_vertex
1223e5c31af7Sopenharmony_ci		version 300 es
1224e5c31af7Sopenharmony_ci		expect build_successful
1225e5c31af7Sopenharmony_ci
1226e5c31af7Sopenharmony_ci		vertex ""
1227e5c31af7Sopenharmony_ci			#version 300 es
1228e5c31af7Sopenharmony_ci			precision highp float;
1229e5c31af7Sopenharmony_ci
1230e5c31af7Sopenharmony_ci
1231e5c31af7Sopenharmony_ci
1232e5c31af7Sopenharmony_ci			uniform UniformBlock
1233e5c31af7Sopenharmony_ci			{
1234e5c31af7Sopenharmony_ci				layout(column_major) vec4 uniformMember;
1235e5c31af7Sopenharmony_ci			} uniformBlock;
1236e5c31af7Sopenharmony_ci
1237e5c31af7Sopenharmony_ci			void main()
1238e5c31af7Sopenharmony_ci			{
1239e5c31af7Sopenharmony_ci				gl_Position = uniformBlock.uniformMember;
1240e5c31af7Sopenharmony_ci			}
1241e5c31af7Sopenharmony_ci		""
1242e5c31af7Sopenharmony_ci
1243e5c31af7Sopenharmony_ci		fragment ""
1244e5c31af7Sopenharmony_ci			#version 300 es
1245e5c31af7Sopenharmony_ci			precision highp float;
1246e5c31af7Sopenharmony_ci
1247e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
1248e5c31af7Sopenharmony_ci
1249e5c31af7Sopenharmony_ci			void main()
1250e5c31af7Sopenharmony_ci			{
1251e5c31af7Sopenharmony_ci				o_color = vec4(1.0);
1252e5c31af7Sopenharmony_ci			}
1253e5c31af7Sopenharmony_ci		""
1254e5c31af7Sopenharmony_ci	end
1255e5c31af7Sopenharmony_ci	case member_layout_column_major_vec4_fragment
1256e5c31af7Sopenharmony_ci		version 300 es
1257e5c31af7Sopenharmony_ci		expect build_successful
1258e5c31af7Sopenharmony_ci
1259e5c31af7Sopenharmony_ci		vertex ""
1260e5c31af7Sopenharmony_ci			#version 300 es
1261e5c31af7Sopenharmony_ci			precision highp float;
1262e5c31af7Sopenharmony_ci
1263e5c31af7Sopenharmony_ci			in vec4 a_pos;
1264e5c31af7Sopenharmony_ci
1265e5c31af7Sopenharmony_ci			void main()
1266e5c31af7Sopenharmony_ci			{
1267e5c31af7Sopenharmony_ci				gl_Position = a_pos;
1268e5c31af7Sopenharmony_ci			}
1269e5c31af7Sopenharmony_ci		""
1270e5c31af7Sopenharmony_ci
1271e5c31af7Sopenharmony_ci		fragment ""
1272e5c31af7Sopenharmony_ci			#version 300 es
1273e5c31af7Sopenharmony_ci			precision highp float;
1274e5c31af7Sopenharmony_ci
1275e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
1276e5c31af7Sopenharmony_ci
1277e5c31af7Sopenharmony_ci			uniform UniformBlock
1278e5c31af7Sopenharmony_ci			{
1279e5c31af7Sopenharmony_ci				layout(column_major) vec4 uniformMember;
1280e5c31af7Sopenharmony_ci			} uniformBlock;
1281e5c31af7Sopenharmony_ci
1282e5c31af7Sopenharmony_ci			void main()
1283e5c31af7Sopenharmony_ci			{
1284e5c31af7Sopenharmony_ci				o_color = uniformBlock.uniformMember;
1285e5c31af7Sopenharmony_ci			}
1286e5c31af7Sopenharmony_ci		""
1287e5c31af7Sopenharmony_ci	end
1288e5c31af7Sopenharmony_ci	case member_layout_all_vertex
1289e5c31af7Sopenharmony_ci		version 300 es
1290e5c31af7Sopenharmony_ci		expect build_successful
1291e5c31af7Sopenharmony_ci
1292e5c31af7Sopenharmony_ci		vertex ""
1293e5c31af7Sopenharmony_ci			#version 300 es
1294e5c31af7Sopenharmony_ci			precision highp float;
1295e5c31af7Sopenharmony_ci
1296e5c31af7Sopenharmony_ci
1297e5c31af7Sopenharmony_ci
1298e5c31af7Sopenharmony_ci			uniform UniformBlock
1299e5c31af7Sopenharmony_ci			{
1300e5c31af7Sopenharmony_ci				layout(row_major, column_major) mat4 uniformMember;
1301e5c31af7Sopenharmony_ci			} uniformBlock;
1302e5c31af7Sopenharmony_ci
1303e5c31af7Sopenharmony_ci			void main()
1304e5c31af7Sopenharmony_ci			{
1305e5c31af7Sopenharmony_ci				gl_Position = uniformBlock.uniformMember[0];
1306e5c31af7Sopenharmony_ci			}
1307e5c31af7Sopenharmony_ci		""
1308e5c31af7Sopenharmony_ci
1309e5c31af7Sopenharmony_ci		fragment ""
1310e5c31af7Sopenharmony_ci			#version 300 es
1311e5c31af7Sopenharmony_ci			precision highp float;
1312e5c31af7Sopenharmony_ci
1313e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
1314e5c31af7Sopenharmony_ci
1315e5c31af7Sopenharmony_ci			void main()
1316e5c31af7Sopenharmony_ci			{
1317e5c31af7Sopenharmony_ci				o_color = vec4(1.0);
1318e5c31af7Sopenharmony_ci			}
1319e5c31af7Sopenharmony_ci		""
1320e5c31af7Sopenharmony_ci	end
1321e5c31af7Sopenharmony_ci	case member_layout_all_fragment
1322e5c31af7Sopenharmony_ci		version 300 es
1323e5c31af7Sopenharmony_ci		expect build_successful
1324e5c31af7Sopenharmony_ci
1325e5c31af7Sopenharmony_ci		vertex ""
1326e5c31af7Sopenharmony_ci			#version 300 es
1327e5c31af7Sopenharmony_ci			precision highp float;
1328e5c31af7Sopenharmony_ci
1329e5c31af7Sopenharmony_ci			in vec4 a_pos;
1330e5c31af7Sopenharmony_ci
1331e5c31af7Sopenharmony_ci			void main()
1332e5c31af7Sopenharmony_ci			{
1333e5c31af7Sopenharmony_ci				gl_Position = a_pos;
1334e5c31af7Sopenharmony_ci			}
1335e5c31af7Sopenharmony_ci		""
1336e5c31af7Sopenharmony_ci
1337e5c31af7Sopenharmony_ci		fragment ""
1338e5c31af7Sopenharmony_ci			#version 300 es
1339e5c31af7Sopenharmony_ci			precision highp float;
1340e5c31af7Sopenharmony_ci
1341e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
1342e5c31af7Sopenharmony_ci
1343e5c31af7Sopenharmony_ci			uniform UniformBlock
1344e5c31af7Sopenharmony_ci			{
1345e5c31af7Sopenharmony_ci				layout(row_major, column_major) mat4 uniformMember;
1346e5c31af7Sopenharmony_ci			} uniformBlock;
1347e5c31af7Sopenharmony_ci
1348e5c31af7Sopenharmony_ci			void main()
1349e5c31af7Sopenharmony_ci			{
1350e5c31af7Sopenharmony_ci				o_color = uniformBlock.uniformMember[0];
1351e5c31af7Sopenharmony_ci			}
1352e5c31af7Sopenharmony_ci		""
1353e5c31af7Sopenharmony_ci	end
1354e5c31af7Sopenharmony_ci	case member_layout_all_8_times_vertex
1355e5c31af7Sopenharmony_ci		version 300 es
1356e5c31af7Sopenharmony_ci		expect build_successful
1357e5c31af7Sopenharmony_ci
1358e5c31af7Sopenharmony_ci		vertex ""
1359e5c31af7Sopenharmony_ci			#version 300 es
1360e5c31af7Sopenharmony_ci			precision highp float;
1361e5c31af7Sopenharmony_ci
1362e5c31af7Sopenharmony_ci
1363e5c31af7Sopenharmony_ci
1364e5c31af7Sopenharmony_ci			uniform UniformBlock
1365e5c31af7Sopenharmony_ci			{
1366e5c31af7Sopenharmony_ci				layout(row_major, column_major, row_major, column_major, row_major, column_major, row_major, column_major, row_major, column_major, row_major, column_major, row_major, column_major, row_major, column_major) mat4 uniformMember;
1367e5c31af7Sopenharmony_ci			} uniformBlock;
1368e5c31af7Sopenharmony_ci
1369e5c31af7Sopenharmony_ci			void main()
1370e5c31af7Sopenharmony_ci			{
1371e5c31af7Sopenharmony_ci				gl_Position = uniformBlock.uniformMember[0];
1372e5c31af7Sopenharmony_ci			}
1373e5c31af7Sopenharmony_ci		""
1374e5c31af7Sopenharmony_ci
1375e5c31af7Sopenharmony_ci		fragment ""
1376e5c31af7Sopenharmony_ci			#version 300 es
1377e5c31af7Sopenharmony_ci			precision highp float;
1378e5c31af7Sopenharmony_ci
1379e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
1380e5c31af7Sopenharmony_ci
1381e5c31af7Sopenharmony_ci			void main()
1382e5c31af7Sopenharmony_ci			{
1383e5c31af7Sopenharmony_ci				o_color = vec4(1.0);
1384e5c31af7Sopenharmony_ci			}
1385e5c31af7Sopenharmony_ci		""
1386e5c31af7Sopenharmony_ci	end
1387e5c31af7Sopenharmony_ci	case member_layout_all_8_times_fragment
1388e5c31af7Sopenharmony_ci		version 300 es
1389e5c31af7Sopenharmony_ci		expect build_successful
1390e5c31af7Sopenharmony_ci
1391e5c31af7Sopenharmony_ci		vertex ""
1392e5c31af7Sopenharmony_ci			#version 300 es
1393e5c31af7Sopenharmony_ci			precision highp float;
1394e5c31af7Sopenharmony_ci
1395e5c31af7Sopenharmony_ci			in vec4 a_pos;
1396e5c31af7Sopenharmony_ci
1397e5c31af7Sopenharmony_ci			void main()
1398e5c31af7Sopenharmony_ci			{
1399e5c31af7Sopenharmony_ci				gl_Position = a_pos;
1400e5c31af7Sopenharmony_ci			}
1401e5c31af7Sopenharmony_ci		""
1402e5c31af7Sopenharmony_ci
1403e5c31af7Sopenharmony_ci		fragment ""
1404e5c31af7Sopenharmony_ci			#version 300 es
1405e5c31af7Sopenharmony_ci			precision highp float;
1406e5c31af7Sopenharmony_ci
1407e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
1408e5c31af7Sopenharmony_ci
1409e5c31af7Sopenharmony_ci			uniform UniformBlock
1410e5c31af7Sopenharmony_ci			{
1411e5c31af7Sopenharmony_ci				layout(row_major, column_major, row_major, column_major, row_major, column_major, row_major, column_major, row_major, column_major, row_major, column_major, row_major, column_major, row_major, column_major) mat4 uniformMember;
1412e5c31af7Sopenharmony_ci			} uniformBlock;
1413e5c31af7Sopenharmony_ci
1414e5c31af7Sopenharmony_ci			void main()
1415e5c31af7Sopenharmony_ci			{
1416e5c31af7Sopenharmony_ci				o_color = uniformBlock.uniformMember[0];
1417e5c31af7Sopenharmony_ci			}
1418e5c31af7Sopenharmony_ci		""
1419e5c31af7Sopenharmony_ci	end
1420e5c31af7Sopenharmony_ci	case no_instance_name_vertex
1421e5c31af7Sopenharmony_ci		version 300 es
1422e5c31af7Sopenharmony_ci		expect build_successful
1423e5c31af7Sopenharmony_ci
1424e5c31af7Sopenharmony_ci		vertex ""
1425e5c31af7Sopenharmony_ci			#version 300 es
1426e5c31af7Sopenharmony_ci			precision highp float;
1427e5c31af7Sopenharmony_ci
1428e5c31af7Sopenharmony_ci
1429e5c31af7Sopenharmony_ci
1430e5c31af7Sopenharmony_ci			uniform UniformBlock
1431e5c31af7Sopenharmony_ci			{
1432e5c31af7Sopenharmony_ci				vec4 uniformMember;
1433e5c31af7Sopenharmony_ci			};
1434e5c31af7Sopenharmony_ci
1435e5c31af7Sopenharmony_ci			void main()
1436e5c31af7Sopenharmony_ci			{
1437e5c31af7Sopenharmony_ci				gl_Position = uniformMember;
1438e5c31af7Sopenharmony_ci			}
1439e5c31af7Sopenharmony_ci		""
1440e5c31af7Sopenharmony_ci
1441e5c31af7Sopenharmony_ci		fragment ""
1442e5c31af7Sopenharmony_ci			#version 300 es
1443e5c31af7Sopenharmony_ci			precision highp float;
1444e5c31af7Sopenharmony_ci
1445e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
1446e5c31af7Sopenharmony_ci
1447e5c31af7Sopenharmony_ci			void main()
1448e5c31af7Sopenharmony_ci			{
1449e5c31af7Sopenharmony_ci				o_color = vec4(1.0);
1450e5c31af7Sopenharmony_ci			}
1451e5c31af7Sopenharmony_ci		""
1452e5c31af7Sopenharmony_ci	end
1453e5c31af7Sopenharmony_ci	case no_instance_name_fragment
1454e5c31af7Sopenharmony_ci		version 300 es
1455e5c31af7Sopenharmony_ci		expect build_successful
1456e5c31af7Sopenharmony_ci
1457e5c31af7Sopenharmony_ci		vertex ""
1458e5c31af7Sopenharmony_ci			#version 300 es
1459e5c31af7Sopenharmony_ci			precision highp float;
1460e5c31af7Sopenharmony_ci
1461e5c31af7Sopenharmony_ci			in vec4 a_pos;
1462e5c31af7Sopenharmony_ci
1463e5c31af7Sopenharmony_ci			void main()
1464e5c31af7Sopenharmony_ci			{
1465e5c31af7Sopenharmony_ci				gl_Position = a_pos;
1466e5c31af7Sopenharmony_ci			}
1467e5c31af7Sopenharmony_ci		""
1468e5c31af7Sopenharmony_ci
1469e5c31af7Sopenharmony_ci		fragment ""
1470e5c31af7Sopenharmony_ci			#version 300 es
1471e5c31af7Sopenharmony_ci			precision highp float;
1472e5c31af7Sopenharmony_ci
1473e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
1474e5c31af7Sopenharmony_ci
1475e5c31af7Sopenharmony_ci			uniform UniformBlock
1476e5c31af7Sopenharmony_ci			{
1477e5c31af7Sopenharmony_ci				vec4 uniformMember;
1478e5c31af7Sopenharmony_ci			};
1479e5c31af7Sopenharmony_ci
1480e5c31af7Sopenharmony_ci			void main()
1481e5c31af7Sopenharmony_ci			{
1482e5c31af7Sopenharmony_ci				o_color = uniformMember;
1483e5c31af7Sopenharmony_ci			}
1484e5c31af7Sopenharmony_ci		""
1485e5c31af7Sopenharmony_ci	end
1486e5c31af7Sopenharmony_ci	case same_variable_and_block_name_vertex
1487e5c31af7Sopenharmony_ci		version 300 es
1488e5c31af7Sopenharmony_ci		expect build_successful
1489e5c31af7Sopenharmony_ci
1490e5c31af7Sopenharmony_ci		vertex ""
1491e5c31af7Sopenharmony_ci			#version 300 es
1492e5c31af7Sopenharmony_ci			precision highp float;
1493e5c31af7Sopenharmony_ci
1494e5c31af7Sopenharmony_ci
1495e5c31af7Sopenharmony_ci
1496e5c31af7Sopenharmony_ci			uniform UniformBlock
1497e5c31af7Sopenharmony_ci			{
1498e5c31af7Sopenharmony_ci				vec4 uniformMember;
1499e5c31af7Sopenharmony_ci			} uniformBlock;
1500e5c31af7Sopenharmony_ci
1501e5c31af7Sopenharmony_ci			void main()
1502e5c31af7Sopenharmony_ci			{
1503e5c31af7Sopenharmony_ci				vec4 UniformBlock = vec4(0.0);
1504e5c31af7Sopenharmony_ci				gl_Position = UniformBlock + uniformBlock.uniformMember;
1505e5c31af7Sopenharmony_ci			}
1506e5c31af7Sopenharmony_ci		""
1507e5c31af7Sopenharmony_ci
1508e5c31af7Sopenharmony_ci		fragment ""
1509e5c31af7Sopenharmony_ci			#version 300 es
1510e5c31af7Sopenharmony_ci			precision highp float;
1511e5c31af7Sopenharmony_ci
1512e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
1513e5c31af7Sopenharmony_ci
1514e5c31af7Sopenharmony_ci			void main()
1515e5c31af7Sopenharmony_ci			{
1516e5c31af7Sopenharmony_ci				o_color = vec4(1.0);
1517e5c31af7Sopenharmony_ci			}
1518e5c31af7Sopenharmony_ci		""
1519e5c31af7Sopenharmony_ci	end
1520e5c31af7Sopenharmony_ci	case same_variable_and_block_name_fragment
1521e5c31af7Sopenharmony_ci		version 300 es
1522e5c31af7Sopenharmony_ci		expect build_successful
1523e5c31af7Sopenharmony_ci
1524e5c31af7Sopenharmony_ci		vertex ""
1525e5c31af7Sopenharmony_ci			#version 300 es
1526e5c31af7Sopenharmony_ci			precision highp float;
1527e5c31af7Sopenharmony_ci
1528e5c31af7Sopenharmony_ci			in vec4 a_pos;
1529e5c31af7Sopenharmony_ci
1530e5c31af7Sopenharmony_ci			void main()
1531e5c31af7Sopenharmony_ci			{
1532e5c31af7Sopenharmony_ci				gl_Position = a_pos;
1533e5c31af7Sopenharmony_ci			}
1534e5c31af7Sopenharmony_ci		""
1535e5c31af7Sopenharmony_ci
1536e5c31af7Sopenharmony_ci		fragment ""
1537e5c31af7Sopenharmony_ci			#version 300 es
1538e5c31af7Sopenharmony_ci			precision highp float;
1539e5c31af7Sopenharmony_ci
1540e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
1541e5c31af7Sopenharmony_ci
1542e5c31af7Sopenharmony_ci			uniform UniformBlock
1543e5c31af7Sopenharmony_ci			{
1544e5c31af7Sopenharmony_ci				vec4 uniformMember;
1545e5c31af7Sopenharmony_ci			} uniformBlock;
1546e5c31af7Sopenharmony_ci
1547e5c31af7Sopenharmony_ci			void main()
1548e5c31af7Sopenharmony_ci			{
1549e5c31af7Sopenharmony_ci				vec4 UniformBlock = vec4(0.0);
1550e5c31af7Sopenharmony_ci				o_color = UniformBlock + uniformBlock.uniformMember;
1551e5c31af7Sopenharmony_ci			}
1552e5c31af7Sopenharmony_ci		""
1553e5c31af7Sopenharmony_ci	end
1554e5c31af7Sopenharmony_ci	case same_variable_and_instance_name_vertex
1555e5c31af7Sopenharmony_ci		version 300 es
1556e5c31af7Sopenharmony_ci		expect build_successful
1557e5c31af7Sopenharmony_ci
1558e5c31af7Sopenharmony_ci		vertex ""
1559e5c31af7Sopenharmony_ci			#version 300 es
1560e5c31af7Sopenharmony_ci			precision highp float;
1561e5c31af7Sopenharmony_ci
1562e5c31af7Sopenharmony_ci
1563e5c31af7Sopenharmony_ci
1564e5c31af7Sopenharmony_ci			uniform UniformBlock
1565e5c31af7Sopenharmony_ci			{
1566e5c31af7Sopenharmony_ci				vec4 uniformMember;
1567e5c31af7Sopenharmony_ci			} uniformBlock;
1568e5c31af7Sopenharmony_ci
1569e5c31af7Sopenharmony_ci			void main()
1570e5c31af7Sopenharmony_ci			{
1571e5c31af7Sopenharmony_ci				vec4 uniformBlock = vec4(0.0);
1572e5c31af7Sopenharmony_ci				gl_Position = uniformBlock;
1573e5c31af7Sopenharmony_ci			}
1574e5c31af7Sopenharmony_ci		""
1575e5c31af7Sopenharmony_ci
1576e5c31af7Sopenharmony_ci		fragment ""
1577e5c31af7Sopenharmony_ci			#version 300 es
1578e5c31af7Sopenharmony_ci			precision highp float;
1579e5c31af7Sopenharmony_ci
1580e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
1581e5c31af7Sopenharmony_ci
1582e5c31af7Sopenharmony_ci			void main()
1583e5c31af7Sopenharmony_ci			{
1584e5c31af7Sopenharmony_ci				o_color = vec4(1.0);
1585e5c31af7Sopenharmony_ci			}
1586e5c31af7Sopenharmony_ci		""
1587e5c31af7Sopenharmony_ci	end
1588e5c31af7Sopenharmony_ci	case same_variable_and_instance_name_fragment
1589e5c31af7Sopenharmony_ci		version 300 es
1590e5c31af7Sopenharmony_ci		expect build_successful
1591e5c31af7Sopenharmony_ci
1592e5c31af7Sopenharmony_ci		vertex ""
1593e5c31af7Sopenharmony_ci			#version 300 es
1594e5c31af7Sopenharmony_ci			precision highp float;
1595e5c31af7Sopenharmony_ci
1596e5c31af7Sopenharmony_ci			in vec4 a_pos;
1597e5c31af7Sopenharmony_ci
1598e5c31af7Sopenharmony_ci			void main()
1599e5c31af7Sopenharmony_ci			{
1600e5c31af7Sopenharmony_ci				gl_Position = a_pos;
1601e5c31af7Sopenharmony_ci			}
1602e5c31af7Sopenharmony_ci		""
1603e5c31af7Sopenharmony_ci
1604e5c31af7Sopenharmony_ci		fragment ""
1605e5c31af7Sopenharmony_ci			#version 300 es
1606e5c31af7Sopenharmony_ci			precision highp float;
1607e5c31af7Sopenharmony_ci
1608e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
1609e5c31af7Sopenharmony_ci
1610e5c31af7Sopenharmony_ci			uniform UniformBlock
1611e5c31af7Sopenharmony_ci			{
1612e5c31af7Sopenharmony_ci				vec4 uniformMember;
1613e5c31af7Sopenharmony_ci			} uniformBlock;
1614e5c31af7Sopenharmony_ci
1615e5c31af7Sopenharmony_ci			void main()
1616e5c31af7Sopenharmony_ci			{
1617e5c31af7Sopenharmony_ci				vec4 uniformBlock = vec4(0.0);
1618e5c31af7Sopenharmony_ci				o_color = uniformBlock;
1619e5c31af7Sopenharmony_ci			}
1620e5c31af7Sopenharmony_ci		""
1621e5c31af7Sopenharmony_ci	end
1622e5c31af7Sopenharmony_ci	case struct_member_vertex
1623e5c31af7Sopenharmony_ci		version 300 es
1624e5c31af7Sopenharmony_ci		expect build_successful
1625e5c31af7Sopenharmony_ci
1626e5c31af7Sopenharmony_ci		vertex ""
1627e5c31af7Sopenharmony_ci			#version 300 es
1628e5c31af7Sopenharmony_ci			precision highp float;
1629e5c31af7Sopenharmony_ci
1630e5c31af7Sopenharmony_ci
1631e5c31af7Sopenharmony_ci
1632e5c31af7Sopenharmony_ci			struct Struct
1633e5c31af7Sopenharmony_ci			{
1634e5c31af7Sopenharmony_ci				vec4 uniformMember;
1635e5c31af7Sopenharmony_ci			};
1636e5c31af7Sopenharmony_ci
1637e5c31af7Sopenharmony_ci			uniform UniformBlock
1638e5c31af7Sopenharmony_ci			{
1639e5c31af7Sopenharmony_ci				Struct st;
1640e5c31af7Sopenharmony_ci			} uniformBlock;
1641e5c31af7Sopenharmony_ci
1642e5c31af7Sopenharmony_ci			void main()
1643e5c31af7Sopenharmony_ci			{
1644e5c31af7Sopenharmony_ci				gl_Position = uniformBlock.st.uniformMember;
1645e5c31af7Sopenharmony_ci			}
1646e5c31af7Sopenharmony_ci		""
1647e5c31af7Sopenharmony_ci
1648e5c31af7Sopenharmony_ci		fragment ""
1649e5c31af7Sopenharmony_ci			#version 300 es
1650e5c31af7Sopenharmony_ci			precision highp float;
1651e5c31af7Sopenharmony_ci
1652e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
1653e5c31af7Sopenharmony_ci
1654e5c31af7Sopenharmony_ci			void main()
1655e5c31af7Sopenharmony_ci			{
1656e5c31af7Sopenharmony_ci				o_color = vec4(1.0);
1657e5c31af7Sopenharmony_ci			}
1658e5c31af7Sopenharmony_ci		""
1659e5c31af7Sopenharmony_ci	end
1660e5c31af7Sopenharmony_ci	case struct_member_fragment
1661e5c31af7Sopenharmony_ci		version 300 es
1662e5c31af7Sopenharmony_ci		expect build_successful
1663e5c31af7Sopenharmony_ci
1664e5c31af7Sopenharmony_ci		vertex ""
1665e5c31af7Sopenharmony_ci			#version 300 es
1666e5c31af7Sopenharmony_ci			precision highp float;
1667e5c31af7Sopenharmony_ci
1668e5c31af7Sopenharmony_ci			in vec4 a_pos;
1669e5c31af7Sopenharmony_ci
1670e5c31af7Sopenharmony_ci			void main()
1671e5c31af7Sopenharmony_ci			{
1672e5c31af7Sopenharmony_ci				gl_Position = a_pos;
1673e5c31af7Sopenharmony_ci			}
1674e5c31af7Sopenharmony_ci		""
1675e5c31af7Sopenharmony_ci
1676e5c31af7Sopenharmony_ci		fragment ""
1677e5c31af7Sopenharmony_ci			#version 300 es
1678e5c31af7Sopenharmony_ci			precision highp float;
1679e5c31af7Sopenharmony_ci
1680e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
1681e5c31af7Sopenharmony_ci
1682e5c31af7Sopenharmony_ci			struct Struct
1683e5c31af7Sopenharmony_ci			{
1684e5c31af7Sopenharmony_ci				vec4 uniformMember;
1685e5c31af7Sopenharmony_ci			};
1686e5c31af7Sopenharmony_ci
1687e5c31af7Sopenharmony_ci			uniform UniformBlock
1688e5c31af7Sopenharmony_ci			{
1689e5c31af7Sopenharmony_ci				Struct st;
1690e5c31af7Sopenharmony_ci			} uniformBlock;
1691e5c31af7Sopenharmony_ci
1692e5c31af7Sopenharmony_ci			void main()
1693e5c31af7Sopenharmony_ci			{
1694e5c31af7Sopenharmony_ci				o_color = uniformBlock.st.uniformMember;
1695e5c31af7Sopenharmony_ci			}
1696e5c31af7Sopenharmony_ci		""
1697e5c31af7Sopenharmony_ci	end
1698e5c31af7Sopenharmony_ci	case struct_member_layout_row_major_vertex
1699e5c31af7Sopenharmony_ci		version 300 es
1700e5c31af7Sopenharmony_ci		expect build_successful
1701e5c31af7Sopenharmony_ci
1702e5c31af7Sopenharmony_ci		vertex ""
1703e5c31af7Sopenharmony_ci			#version 300 es
1704e5c31af7Sopenharmony_ci			precision highp float;
1705e5c31af7Sopenharmony_ci
1706e5c31af7Sopenharmony_ci
1707e5c31af7Sopenharmony_ci
1708e5c31af7Sopenharmony_ci			struct Struct
1709e5c31af7Sopenharmony_ci			{
1710e5c31af7Sopenharmony_ci				vec4 uniformMember;
1711e5c31af7Sopenharmony_ci			};
1712e5c31af7Sopenharmony_ci
1713e5c31af7Sopenharmony_ci			uniform UniformBlock
1714e5c31af7Sopenharmony_ci			{
1715e5c31af7Sopenharmony_ci				layout(row_major) Struct st;
1716e5c31af7Sopenharmony_ci			} uniformBlock;
1717e5c31af7Sopenharmony_ci
1718e5c31af7Sopenharmony_ci			void main()
1719e5c31af7Sopenharmony_ci			{
1720e5c31af7Sopenharmony_ci				gl_Position = uniformBlock.st.uniformMember;
1721e5c31af7Sopenharmony_ci			}
1722e5c31af7Sopenharmony_ci		""
1723e5c31af7Sopenharmony_ci
1724e5c31af7Sopenharmony_ci		fragment ""
1725e5c31af7Sopenharmony_ci			#version 300 es
1726e5c31af7Sopenharmony_ci			precision highp float;
1727e5c31af7Sopenharmony_ci
1728e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
1729e5c31af7Sopenharmony_ci
1730e5c31af7Sopenharmony_ci			void main()
1731e5c31af7Sopenharmony_ci			{
1732e5c31af7Sopenharmony_ci				o_color = vec4(1.0);
1733e5c31af7Sopenharmony_ci			}
1734e5c31af7Sopenharmony_ci		""
1735e5c31af7Sopenharmony_ci	end
1736e5c31af7Sopenharmony_ci	case struct_member_layout_row_major_fragment
1737e5c31af7Sopenharmony_ci		version 300 es
1738e5c31af7Sopenharmony_ci		expect build_successful
1739e5c31af7Sopenharmony_ci
1740e5c31af7Sopenharmony_ci		vertex ""
1741e5c31af7Sopenharmony_ci			#version 300 es
1742e5c31af7Sopenharmony_ci			precision highp float;
1743e5c31af7Sopenharmony_ci
1744e5c31af7Sopenharmony_ci			in vec4 a_pos;
1745e5c31af7Sopenharmony_ci
1746e5c31af7Sopenharmony_ci			void main()
1747e5c31af7Sopenharmony_ci			{
1748e5c31af7Sopenharmony_ci				gl_Position = a_pos;
1749e5c31af7Sopenharmony_ci			}
1750e5c31af7Sopenharmony_ci		""
1751e5c31af7Sopenharmony_ci
1752e5c31af7Sopenharmony_ci		fragment ""
1753e5c31af7Sopenharmony_ci			#version 300 es
1754e5c31af7Sopenharmony_ci			precision highp float;
1755e5c31af7Sopenharmony_ci
1756e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
1757e5c31af7Sopenharmony_ci
1758e5c31af7Sopenharmony_ci			struct Struct
1759e5c31af7Sopenharmony_ci			{
1760e5c31af7Sopenharmony_ci				vec4 uniformMember;
1761e5c31af7Sopenharmony_ci			};
1762e5c31af7Sopenharmony_ci
1763e5c31af7Sopenharmony_ci			uniform UniformBlock
1764e5c31af7Sopenharmony_ci			{
1765e5c31af7Sopenharmony_ci				layout(row_major) Struct st;
1766e5c31af7Sopenharmony_ci			} uniformBlock;
1767e5c31af7Sopenharmony_ci
1768e5c31af7Sopenharmony_ci			void main()
1769e5c31af7Sopenharmony_ci			{
1770e5c31af7Sopenharmony_ci				o_color = uniformBlock.st.uniformMember;
1771e5c31af7Sopenharmony_ci			}
1772e5c31af7Sopenharmony_ci		""
1773e5c31af7Sopenharmony_ci	end
1774e5c31af7Sopenharmony_ci	case struct_member_layout_column_major_vertex
1775e5c31af7Sopenharmony_ci		version 300 es
1776e5c31af7Sopenharmony_ci		expect build_successful
1777e5c31af7Sopenharmony_ci
1778e5c31af7Sopenharmony_ci		vertex ""
1779e5c31af7Sopenharmony_ci			#version 300 es
1780e5c31af7Sopenharmony_ci			precision highp float;
1781e5c31af7Sopenharmony_ci
1782e5c31af7Sopenharmony_ci
1783e5c31af7Sopenharmony_ci
1784e5c31af7Sopenharmony_ci			struct Struct
1785e5c31af7Sopenharmony_ci			{
1786e5c31af7Sopenharmony_ci				vec4 uniformMember;
1787e5c31af7Sopenharmony_ci			};
1788e5c31af7Sopenharmony_ci
1789e5c31af7Sopenharmony_ci			uniform UniformBlock
1790e5c31af7Sopenharmony_ci			{
1791e5c31af7Sopenharmony_ci				layout(column_major) Struct st;
1792e5c31af7Sopenharmony_ci			} uniformBlock;
1793e5c31af7Sopenharmony_ci
1794e5c31af7Sopenharmony_ci			void main()
1795e5c31af7Sopenharmony_ci			{
1796e5c31af7Sopenharmony_ci				gl_Position = uniformBlock.st.uniformMember;
1797e5c31af7Sopenharmony_ci			}
1798e5c31af7Sopenharmony_ci		""
1799e5c31af7Sopenharmony_ci
1800e5c31af7Sopenharmony_ci		fragment ""
1801e5c31af7Sopenharmony_ci			#version 300 es
1802e5c31af7Sopenharmony_ci			precision highp float;
1803e5c31af7Sopenharmony_ci
1804e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
1805e5c31af7Sopenharmony_ci
1806e5c31af7Sopenharmony_ci			void main()
1807e5c31af7Sopenharmony_ci			{
1808e5c31af7Sopenharmony_ci				o_color = vec4(1.0);
1809e5c31af7Sopenharmony_ci			}
1810e5c31af7Sopenharmony_ci		""
1811e5c31af7Sopenharmony_ci	end
1812e5c31af7Sopenharmony_ci	case struct_member_layout_column_major_fragment
1813e5c31af7Sopenharmony_ci		version 300 es
1814e5c31af7Sopenharmony_ci		expect build_successful
1815e5c31af7Sopenharmony_ci
1816e5c31af7Sopenharmony_ci		vertex ""
1817e5c31af7Sopenharmony_ci			#version 300 es
1818e5c31af7Sopenharmony_ci			precision highp float;
1819e5c31af7Sopenharmony_ci
1820e5c31af7Sopenharmony_ci			in vec4 a_pos;
1821e5c31af7Sopenharmony_ci
1822e5c31af7Sopenharmony_ci			void main()
1823e5c31af7Sopenharmony_ci			{
1824e5c31af7Sopenharmony_ci				gl_Position = a_pos;
1825e5c31af7Sopenharmony_ci			}
1826e5c31af7Sopenharmony_ci		""
1827e5c31af7Sopenharmony_ci
1828e5c31af7Sopenharmony_ci		fragment ""
1829e5c31af7Sopenharmony_ci			#version 300 es
1830e5c31af7Sopenharmony_ci			precision highp float;
1831e5c31af7Sopenharmony_ci
1832e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
1833e5c31af7Sopenharmony_ci
1834e5c31af7Sopenharmony_ci			struct Struct
1835e5c31af7Sopenharmony_ci			{
1836e5c31af7Sopenharmony_ci				vec4 uniformMember;
1837e5c31af7Sopenharmony_ci			};
1838e5c31af7Sopenharmony_ci
1839e5c31af7Sopenharmony_ci			uniform UniformBlock
1840e5c31af7Sopenharmony_ci			{
1841e5c31af7Sopenharmony_ci				layout(column_major) Struct st;
1842e5c31af7Sopenharmony_ci			} uniformBlock;
1843e5c31af7Sopenharmony_ci
1844e5c31af7Sopenharmony_ci			void main()
1845e5c31af7Sopenharmony_ci			{
1846e5c31af7Sopenharmony_ci				o_color = uniformBlock.st.uniformMember;
1847e5c31af7Sopenharmony_ci			}
1848e5c31af7Sopenharmony_ci		""
1849e5c31af7Sopenharmony_ci	end
1850e5c31af7Sopenharmony_ci	case struct_member_layout_all_vertex
1851e5c31af7Sopenharmony_ci		version 300 es
1852e5c31af7Sopenharmony_ci		expect build_successful
1853e5c31af7Sopenharmony_ci
1854e5c31af7Sopenharmony_ci		vertex ""
1855e5c31af7Sopenharmony_ci			#version 300 es
1856e5c31af7Sopenharmony_ci			precision highp float;
1857e5c31af7Sopenharmony_ci
1858e5c31af7Sopenharmony_ci
1859e5c31af7Sopenharmony_ci
1860e5c31af7Sopenharmony_ci			struct Struct
1861e5c31af7Sopenharmony_ci			{
1862e5c31af7Sopenharmony_ci				vec4 uniformMember;
1863e5c31af7Sopenharmony_ci			};
1864e5c31af7Sopenharmony_ci
1865e5c31af7Sopenharmony_ci			uniform UniformBlock
1866e5c31af7Sopenharmony_ci			{
1867e5c31af7Sopenharmony_ci				layout(row_major, column_major) Struct st;
1868e5c31af7Sopenharmony_ci			} uniformBlock;
1869e5c31af7Sopenharmony_ci
1870e5c31af7Sopenharmony_ci			void main()
1871e5c31af7Sopenharmony_ci			{
1872e5c31af7Sopenharmony_ci				gl_Position = uniformBlock.st.uniformMember;
1873e5c31af7Sopenharmony_ci			}
1874e5c31af7Sopenharmony_ci		""
1875e5c31af7Sopenharmony_ci
1876e5c31af7Sopenharmony_ci		fragment ""
1877e5c31af7Sopenharmony_ci			#version 300 es
1878e5c31af7Sopenharmony_ci			precision highp float;
1879e5c31af7Sopenharmony_ci
1880e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
1881e5c31af7Sopenharmony_ci
1882e5c31af7Sopenharmony_ci			void main()
1883e5c31af7Sopenharmony_ci			{
1884e5c31af7Sopenharmony_ci				o_color = vec4(1.0);
1885e5c31af7Sopenharmony_ci			}
1886e5c31af7Sopenharmony_ci		""
1887e5c31af7Sopenharmony_ci	end
1888e5c31af7Sopenharmony_ci	case struct_member_layout_all_fragment
1889e5c31af7Sopenharmony_ci		version 300 es
1890e5c31af7Sopenharmony_ci		expect build_successful
1891e5c31af7Sopenharmony_ci
1892e5c31af7Sopenharmony_ci		vertex ""
1893e5c31af7Sopenharmony_ci			#version 300 es
1894e5c31af7Sopenharmony_ci			precision highp float;
1895e5c31af7Sopenharmony_ci
1896e5c31af7Sopenharmony_ci			in vec4 a_pos;
1897e5c31af7Sopenharmony_ci
1898e5c31af7Sopenharmony_ci			void main()
1899e5c31af7Sopenharmony_ci			{
1900e5c31af7Sopenharmony_ci				gl_Position = a_pos;
1901e5c31af7Sopenharmony_ci			}
1902e5c31af7Sopenharmony_ci		""
1903e5c31af7Sopenharmony_ci
1904e5c31af7Sopenharmony_ci		fragment ""
1905e5c31af7Sopenharmony_ci			#version 300 es
1906e5c31af7Sopenharmony_ci			precision highp float;
1907e5c31af7Sopenharmony_ci
1908e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
1909e5c31af7Sopenharmony_ci
1910e5c31af7Sopenharmony_ci			struct Struct
1911e5c31af7Sopenharmony_ci			{
1912e5c31af7Sopenharmony_ci				vec4 uniformMember;
1913e5c31af7Sopenharmony_ci			};
1914e5c31af7Sopenharmony_ci
1915e5c31af7Sopenharmony_ci			uniform UniformBlock
1916e5c31af7Sopenharmony_ci			{
1917e5c31af7Sopenharmony_ci				layout(row_major, column_major) Struct st;
1918e5c31af7Sopenharmony_ci			} uniformBlock;
1919e5c31af7Sopenharmony_ci
1920e5c31af7Sopenharmony_ci			void main()
1921e5c31af7Sopenharmony_ci			{
1922e5c31af7Sopenharmony_ci				o_color = uniformBlock.st.uniformMember;
1923e5c31af7Sopenharmony_ci			}
1924e5c31af7Sopenharmony_ci		""
1925e5c31af7Sopenharmony_ci	end
1926e5c31af7Sopenharmony_ci	case struct_member_layout_all_8_times_vertex
1927e5c31af7Sopenharmony_ci		version 300 es
1928e5c31af7Sopenharmony_ci		expect build_successful
1929e5c31af7Sopenharmony_ci
1930e5c31af7Sopenharmony_ci		vertex ""
1931e5c31af7Sopenharmony_ci			#version 300 es
1932e5c31af7Sopenharmony_ci			precision highp float;
1933e5c31af7Sopenharmony_ci
1934e5c31af7Sopenharmony_ci
1935e5c31af7Sopenharmony_ci
1936e5c31af7Sopenharmony_ci			struct Struct
1937e5c31af7Sopenharmony_ci			{
1938e5c31af7Sopenharmony_ci				vec4 uniformMember;
1939e5c31af7Sopenharmony_ci			};
1940e5c31af7Sopenharmony_ci
1941e5c31af7Sopenharmony_ci			uniform UniformBlock
1942e5c31af7Sopenharmony_ci			{
1943e5c31af7Sopenharmony_ci				layout(row_major, column_major, row_major, column_major, row_major, column_major, row_major, column_major, row_major, column_major, row_major, column_major, row_major, column_major, row_major, column_major) Struct st;
1944e5c31af7Sopenharmony_ci			} uniformBlock;
1945e5c31af7Sopenharmony_ci
1946e5c31af7Sopenharmony_ci			void main()
1947e5c31af7Sopenharmony_ci			{
1948e5c31af7Sopenharmony_ci				gl_Position = uniformBlock.st.uniformMember;
1949e5c31af7Sopenharmony_ci			}
1950e5c31af7Sopenharmony_ci		""
1951e5c31af7Sopenharmony_ci
1952e5c31af7Sopenharmony_ci		fragment ""
1953e5c31af7Sopenharmony_ci			#version 300 es
1954e5c31af7Sopenharmony_ci			precision highp float;
1955e5c31af7Sopenharmony_ci
1956e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
1957e5c31af7Sopenharmony_ci
1958e5c31af7Sopenharmony_ci			void main()
1959e5c31af7Sopenharmony_ci			{
1960e5c31af7Sopenharmony_ci				o_color = vec4(1.0);
1961e5c31af7Sopenharmony_ci			}
1962e5c31af7Sopenharmony_ci		""
1963e5c31af7Sopenharmony_ci	end
1964e5c31af7Sopenharmony_ci	case struct_member_layout_all_8_times_fragment
1965e5c31af7Sopenharmony_ci		version 300 es
1966e5c31af7Sopenharmony_ci		expect build_successful
1967e5c31af7Sopenharmony_ci
1968e5c31af7Sopenharmony_ci		vertex ""
1969e5c31af7Sopenharmony_ci			#version 300 es
1970e5c31af7Sopenharmony_ci			precision highp float;
1971e5c31af7Sopenharmony_ci
1972e5c31af7Sopenharmony_ci			in vec4 a_pos;
1973e5c31af7Sopenharmony_ci
1974e5c31af7Sopenharmony_ci			void main()
1975e5c31af7Sopenharmony_ci			{
1976e5c31af7Sopenharmony_ci				gl_Position = a_pos;
1977e5c31af7Sopenharmony_ci			}
1978e5c31af7Sopenharmony_ci		""
1979e5c31af7Sopenharmony_ci
1980e5c31af7Sopenharmony_ci		fragment ""
1981e5c31af7Sopenharmony_ci			#version 300 es
1982e5c31af7Sopenharmony_ci			precision highp float;
1983e5c31af7Sopenharmony_ci
1984e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
1985e5c31af7Sopenharmony_ci
1986e5c31af7Sopenharmony_ci			struct Struct
1987e5c31af7Sopenharmony_ci			{
1988e5c31af7Sopenharmony_ci				vec4 uniformMember;
1989e5c31af7Sopenharmony_ci			};
1990e5c31af7Sopenharmony_ci
1991e5c31af7Sopenharmony_ci			uniform UniformBlock
1992e5c31af7Sopenharmony_ci			{
1993e5c31af7Sopenharmony_ci				layout(row_major, column_major, row_major, column_major, row_major, column_major, row_major, column_major, row_major, column_major, row_major, column_major, row_major, column_major, row_major, column_major) Struct st;
1994e5c31af7Sopenharmony_ci			} uniformBlock;
1995e5c31af7Sopenharmony_ci
1996e5c31af7Sopenharmony_ci			void main()
1997e5c31af7Sopenharmony_ci			{
1998e5c31af7Sopenharmony_ci				o_color = uniformBlock.st.uniformMember;
1999e5c31af7Sopenharmony_ci			}
2000e5c31af7Sopenharmony_ci		""
2001e5c31af7Sopenharmony_ci	end
2002e5c31af7Sopenharmony_ci	case long_block_name_vertex
2003e5c31af7Sopenharmony_ci		version 300 es
2004e5c31af7Sopenharmony_ci		expect build_successful
2005e5c31af7Sopenharmony_ci
2006e5c31af7Sopenharmony_ci		vertex ""
2007e5c31af7Sopenharmony_ci			#version 300 es
2008e5c31af7Sopenharmony_ci			precision highp float;
2009e5c31af7Sopenharmony_ci
2010e5c31af7Sopenharmony_ci
2011e5c31af7Sopenharmony_ci
2012e5c31af7Sopenharmony_ci			// Total of 1024 characters
2013e5c31af7Sopenharmony_ci			uniform aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
2014e5c31af7Sopenharmony_ci			{
2015e5c31af7Sopenharmony_ci				vec4 uniformMember;
2016e5c31af7Sopenharmony_ci			} uniformBlock;
2017e5c31af7Sopenharmony_ci
2018e5c31af7Sopenharmony_ci			void main()
2019e5c31af7Sopenharmony_ci			{
2020e5c31af7Sopenharmony_ci				gl_Position = uniformBlock.uniformMember;
2021e5c31af7Sopenharmony_ci			}
2022e5c31af7Sopenharmony_ci		""
2023e5c31af7Sopenharmony_ci
2024e5c31af7Sopenharmony_ci		fragment ""
2025e5c31af7Sopenharmony_ci			#version 300 es
2026e5c31af7Sopenharmony_ci			precision highp float;
2027e5c31af7Sopenharmony_ci
2028e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
2029e5c31af7Sopenharmony_ci
2030e5c31af7Sopenharmony_ci			void main()
2031e5c31af7Sopenharmony_ci			{
2032e5c31af7Sopenharmony_ci				o_color = vec4(1.0);
2033e5c31af7Sopenharmony_ci			}
2034e5c31af7Sopenharmony_ci		""
2035e5c31af7Sopenharmony_ci	end
2036e5c31af7Sopenharmony_ci	case long_block_name_fragment
2037e5c31af7Sopenharmony_ci		version 300 es
2038e5c31af7Sopenharmony_ci		expect build_successful
2039e5c31af7Sopenharmony_ci
2040e5c31af7Sopenharmony_ci		vertex ""
2041e5c31af7Sopenharmony_ci			#version 300 es
2042e5c31af7Sopenharmony_ci			precision highp float;
2043e5c31af7Sopenharmony_ci
2044e5c31af7Sopenharmony_ci			in vec4 a_pos;
2045e5c31af7Sopenharmony_ci
2046e5c31af7Sopenharmony_ci			void main()
2047e5c31af7Sopenharmony_ci			{
2048e5c31af7Sopenharmony_ci				gl_Position = a_pos;
2049e5c31af7Sopenharmony_ci			}
2050e5c31af7Sopenharmony_ci		""
2051e5c31af7Sopenharmony_ci
2052e5c31af7Sopenharmony_ci		fragment ""
2053e5c31af7Sopenharmony_ci			#version 300 es
2054e5c31af7Sopenharmony_ci			precision highp float;
2055e5c31af7Sopenharmony_ci
2056e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
2057e5c31af7Sopenharmony_ci
2058e5c31af7Sopenharmony_ci			// Total of 1024 characters
2059e5c31af7Sopenharmony_ci			uniform aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
2060e5c31af7Sopenharmony_ci			{
2061e5c31af7Sopenharmony_ci				vec4 uniformMember;
2062e5c31af7Sopenharmony_ci			} uniformBlock;
2063e5c31af7Sopenharmony_ci
2064e5c31af7Sopenharmony_ci			void main()
2065e5c31af7Sopenharmony_ci			{
2066e5c31af7Sopenharmony_ci				o_color = uniformBlock.uniformMember;
2067e5c31af7Sopenharmony_ci			}
2068e5c31af7Sopenharmony_ci		""
2069e5c31af7Sopenharmony_ci	end
2070e5c31af7Sopenharmony_ci	case long_instance_name_vertex
2071e5c31af7Sopenharmony_ci		version 300 es
2072e5c31af7Sopenharmony_ci		expect build_successful
2073e5c31af7Sopenharmony_ci
2074e5c31af7Sopenharmony_ci		vertex ""
2075e5c31af7Sopenharmony_ci			#version 300 es
2076e5c31af7Sopenharmony_ci			precision highp float;
2077e5c31af7Sopenharmony_ci
2078e5c31af7Sopenharmony_ci
2079e5c31af7Sopenharmony_ci
2080e5c31af7Sopenharmony_ci			uniform UniformBlock
2081e5c31af7Sopenharmony_ci			{
2082e5c31af7Sopenharmony_ci				vec4 uniformMember;
2083e5c31af7Sopenharmony_ci			} aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa;
2084e5c31af7Sopenharmony_ci			// Total of 1024 characters
2085e5c31af7Sopenharmony_ci
2086e5c31af7Sopenharmony_ci			void main()
2087e5c31af7Sopenharmony_ci			{
2088e5c31af7Sopenharmony_ci				gl_Position = aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.uniformMember;
2089e5c31af7Sopenharmony_ci			}
2090e5c31af7Sopenharmony_ci		""
2091e5c31af7Sopenharmony_ci
2092e5c31af7Sopenharmony_ci		fragment ""
2093e5c31af7Sopenharmony_ci			#version 300 es
2094e5c31af7Sopenharmony_ci			precision highp float;
2095e5c31af7Sopenharmony_ci
2096e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
2097e5c31af7Sopenharmony_ci
2098e5c31af7Sopenharmony_ci			void main()
2099e5c31af7Sopenharmony_ci			{
2100e5c31af7Sopenharmony_ci				o_color = vec4(1.0);
2101e5c31af7Sopenharmony_ci			}
2102e5c31af7Sopenharmony_ci		""
2103e5c31af7Sopenharmony_ci	end
2104e5c31af7Sopenharmony_ci	case long_instance_name_fragment
2105e5c31af7Sopenharmony_ci		version 300 es
2106e5c31af7Sopenharmony_ci		expect build_successful
2107e5c31af7Sopenharmony_ci
2108e5c31af7Sopenharmony_ci		vertex ""
2109e5c31af7Sopenharmony_ci			#version 300 es
2110e5c31af7Sopenharmony_ci			precision highp float;
2111e5c31af7Sopenharmony_ci
2112e5c31af7Sopenharmony_ci			in vec4 a_pos;
2113e5c31af7Sopenharmony_ci
2114e5c31af7Sopenharmony_ci			void main()
2115e5c31af7Sopenharmony_ci			{
2116e5c31af7Sopenharmony_ci				gl_Position = a_pos;
2117e5c31af7Sopenharmony_ci			}
2118e5c31af7Sopenharmony_ci		""
2119e5c31af7Sopenharmony_ci
2120e5c31af7Sopenharmony_ci		fragment ""
2121e5c31af7Sopenharmony_ci			#version 300 es
2122e5c31af7Sopenharmony_ci			precision highp float;
2123e5c31af7Sopenharmony_ci
2124e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
2125e5c31af7Sopenharmony_ci
2126e5c31af7Sopenharmony_ci			uniform UniformBlock
2127e5c31af7Sopenharmony_ci			{
2128e5c31af7Sopenharmony_ci				vec4 uniformMember;
2129e5c31af7Sopenharmony_ci			} aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa;
2130e5c31af7Sopenharmony_ci			// Total of 1024 characters
2131e5c31af7Sopenharmony_ci
2132e5c31af7Sopenharmony_ci			void main()
2133e5c31af7Sopenharmony_ci			{
2134e5c31af7Sopenharmony_ci				o_color = aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.uniformMember;
2135e5c31af7Sopenharmony_ci			}
2136e5c31af7Sopenharmony_ci		""
2137e5c31af7Sopenharmony_ci	end
2138e5c31af7Sopenharmony_ci	case underscore_block_name_vertex
2139e5c31af7Sopenharmony_ci		version 300 es
2140e5c31af7Sopenharmony_ci		expect build_successful
2141e5c31af7Sopenharmony_ci
2142e5c31af7Sopenharmony_ci		vertex ""
2143e5c31af7Sopenharmony_ci			#version 300 es
2144e5c31af7Sopenharmony_ci			precision highp float;
2145e5c31af7Sopenharmony_ci
2146e5c31af7Sopenharmony_ci
2147e5c31af7Sopenharmony_ci
2148e5c31af7Sopenharmony_ci			uniform _
2149e5c31af7Sopenharmony_ci			{
2150e5c31af7Sopenharmony_ci				vec4 uniformMember;
2151e5c31af7Sopenharmony_ci			} uniformBlock;
2152e5c31af7Sopenharmony_ci
2153e5c31af7Sopenharmony_ci			void main()
2154e5c31af7Sopenharmony_ci			{
2155e5c31af7Sopenharmony_ci				gl_Position = uniformBlock.uniformMember;
2156e5c31af7Sopenharmony_ci			}
2157e5c31af7Sopenharmony_ci		""
2158e5c31af7Sopenharmony_ci
2159e5c31af7Sopenharmony_ci		fragment ""
2160e5c31af7Sopenharmony_ci			#version 300 es
2161e5c31af7Sopenharmony_ci			precision highp float;
2162e5c31af7Sopenharmony_ci
2163e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
2164e5c31af7Sopenharmony_ci
2165e5c31af7Sopenharmony_ci			void main()
2166e5c31af7Sopenharmony_ci			{
2167e5c31af7Sopenharmony_ci				o_color = vec4(1.0);
2168e5c31af7Sopenharmony_ci			}
2169e5c31af7Sopenharmony_ci		""
2170e5c31af7Sopenharmony_ci	end
2171e5c31af7Sopenharmony_ci	case underscore_block_name_fragment
2172e5c31af7Sopenharmony_ci		version 300 es
2173e5c31af7Sopenharmony_ci		expect build_successful
2174e5c31af7Sopenharmony_ci
2175e5c31af7Sopenharmony_ci		vertex ""
2176e5c31af7Sopenharmony_ci			#version 300 es
2177e5c31af7Sopenharmony_ci			precision highp float;
2178e5c31af7Sopenharmony_ci
2179e5c31af7Sopenharmony_ci			in vec4 a_pos;
2180e5c31af7Sopenharmony_ci
2181e5c31af7Sopenharmony_ci			void main()
2182e5c31af7Sopenharmony_ci			{
2183e5c31af7Sopenharmony_ci				gl_Position = a_pos;
2184e5c31af7Sopenharmony_ci			}
2185e5c31af7Sopenharmony_ci		""
2186e5c31af7Sopenharmony_ci
2187e5c31af7Sopenharmony_ci		fragment ""
2188e5c31af7Sopenharmony_ci			#version 300 es
2189e5c31af7Sopenharmony_ci			precision highp float;
2190e5c31af7Sopenharmony_ci
2191e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
2192e5c31af7Sopenharmony_ci
2193e5c31af7Sopenharmony_ci			uniform _
2194e5c31af7Sopenharmony_ci			{
2195e5c31af7Sopenharmony_ci				vec4 uniformMember;
2196e5c31af7Sopenharmony_ci			} uniformBlock;
2197e5c31af7Sopenharmony_ci
2198e5c31af7Sopenharmony_ci			void main()
2199e5c31af7Sopenharmony_ci			{
2200e5c31af7Sopenharmony_ci				o_color = uniformBlock.uniformMember;
2201e5c31af7Sopenharmony_ci			}
2202e5c31af7Sopenharmony_ci		""
2203e5c31af7Sopenharmony_ci	end
2204e5c31af7Sopenharmony_ci	case underscore_instance_name_vertex
2205e5c31af7Sopenharmony_ci		version 300 es
2206e5c31af7Sopenharmony_ci		expect build_successful
2207e5c31af7Sopenharmony_ci
2208e5c31af7Sopenharmony_ci		vertex ""
2209e5c31af7Sopenharmony_ci			#version 300 es
2210e5c31af7Sopenharmony_ci			precision highp float;
2211e5c31af7Sopenharmony_ci
2212e5c31af7Sopenharmony_ci
2213e5c31af7Sopenharmony_ci
2214e5c31af7Sopenharmony_ci			uniform UniformBlock
2215e5c31af7Sopenharmony_ci			{
2216e5c31af7Sopenharmony_ci				vec4 uniformMember;
2217e5c31af7Sopenharmony_ci			} _;
2218e5c31af7Sopenharmony_ci
2219e5c31af7Sopenharmony_ci			void main()
2220e5c31af7Sopenharmony_ci			{
2221e5c31af7Sopenharmony_ci				gl_Position = _.uniformMember;
2222e5c31af7Sopenharmony_ci			}
2223e5c31af7Sopenharmony_ci		""
2224e5c31af7Sopenharmony_ci
2225e5c31af7Sopenharmony_ci		fragment ""
2226e5c31af7Sopenharmony_ci			#version 300 es
2227e5c31af7Sopenharmony_ci			precision highp float;
2228e5c31af7Sopenharmony_ci
2229e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
2230e5c31af7Sopenharmony_ci
2231e5c31af7Sopenharmony_ci			void main()
2232e5c31af7Sopenharmony_ci			{
2233e5c31af7Sopenharmony_ci				o_color = vec4(1.0);
2234e5c31af7Sopenharmony_ci			}
2235e5c31af7Sopenharmony_ci		""
2236e5c31af7Sopenharmony_ci	end
2237e5c31af7Sopenharmony_ci	case underscore_instance_name_fragment
2238e5c31af7Sopenharmony_ci		version 300 es
2239e5c31af7Sopenharmony_ci		expect build_successful
2240e5c31af7Sopenharmony_ci
2241e5c31af7Sopenharmony_ci		vertex ""
2242e5c31af7Sopenharmony_ci			#version 300 es
2243e5c31af7Sopenharmony_ci			precision highp float;
2244e5c31af7Sopenharmony_ci
2245e5c31af7Sopenharmony_ci			in vec4 a_pos;
2246e5c31af7Sopenharmony_ci
2247e5c31af7Sopenharmony_ci			void main()
2248e5c31af7Sopenharmony_ci			{
2249e5c31af7Sopenharmony_ci				gl_Position = a_pos;
2250e5c31af7Sopenharmony_ci			}
2251e5c31af7Sopenharmony_ci		""
2252e5c31af7Sopenharmony_ci
2253e5c31af7Sopenharmony_ci		fragment ""
2254e5c31af7Sopenharmony_ci			#version 300 es
2255e5c31af7Sopenharmony_ci			precision highp float;
2256e5c31af7Sopenharmony_ci
2257e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
2258e5c31af7Sopenharmony_ci
2259e5c31af7Sopenharmony_ci			uniform UniformBlock
2260e5c31af7Sopenharmony_ci			{
2261e5c31af7Sopenharmony_ci				vec4 uniformMember;
2262e5c31af7Sopenharmony_ci			} _;
2263e5c31af7Sopenharmony_ci
2264e5c31af7Sopenharmony_ci			void main()
2265e5c31af7Sopenharmony_ci			{
2266e5c31af7Sopenharmony_ci				o_color = _.uniformMember;
2267e5c31af7Sopenharmony_ci			}
2268e5c31af7Sopenharmony_ci		""
2269e5c31af7Sopenharmony_ci	end
2270e5c31af7Sopenharmony_ci
2271e5c31af7Sopenharmony_ciend # valid
2272e5c31af7Sopenharmony_cigroup invalid "Invalid uniform interface block syntax tests."
2273e5c31af7Sopenharmony_ci
2274e5c31af7Sopenharmony_ci	case member_in_interface_qualifier_vertex
2275e5c31af7Sopenharmony_ci		version 300 es
2276e5c31af7Sopenharmony_ci		expect compile_fail
2277e5c31af7Sopenharmony_ci
2278e5c31af7Sopenharmony_ci		vertex ""
2279e5c31af7Sopenharmony_ci			#version 300 es
2280e5c31af7Sopenharmony_ci			precision highp float;
2281e5c31af7Sopenharmony_ci
2282e5c31af7Sopenharmony_ci
2283e5c31af7Sopenharmony_ci
2284e5c31af7Sopenharmony_ci			uniform UniformBlock
2285e5c31af7Sopenharmony_ci			{
2286e5c31af7Sopenharmony_ci				in vec4 uniformMember;
2287e5c31af7Sopenharmony_ci			} uniformBlock;
2288e5c31af7Sopenharmony_ci
2289e5c31af7Sopenharmony_ci			void main()
2290e5c31af7Sopenharmony_ci			{
2291e5c31af7Sopenharmony_ci				gl_Position = uniformBlock.uniformMember;
2292e5c31af7Sopenharmony_ci			}
2293e5c31af7Sopenharmony_ci		""
2294e5c31af7Sopenharmony_ci
2295e5c31af7Sopenharmony_ci		fragment ""
2296e5c31af7Sopenharmony_ci			#version 300 es
2297e5c31af7Sopenharmony_ci			precision highp float;
2298e5c31af7Sopenharmony_ci
2299e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
2300e5c31af7Sopenharmony_ci
2301e5c31af7Sopenharmony_ci			void main()
2302e5c31af7Sopenharmony_ci			{
2303e5c31af7Sopenharmony_ci				o_color = vec4(1.0);
2304e5c31af7Sopenharmony_ci			}
2305e5c31af7Sopenharmony_ci		""
2306e5c31af7Sopenharmony_ci	end
2307e5c31af7Sopenharmony_ci	case member_in_interface_qualifier_fragment
2308e5c31af7Sopenharmony_ci		version 300 es
2309e5c31af7Sopenharmony_ci		expect compile_fail
2310e5c31af7Sopenharmony_ci
2311e5c31af7Sopenharmony_ci		vertex ""
2312e5c31af7Sopenharmony_ci			#version 300 es
2313e5c31af7Sopenharmony_ci			precision highp float;
2314e5c31af7Sopenharmony_ci
2315e5c31af7Sopenharmony_ci			in vec4 a_pos;
2316e5c31af7Sopenharmony_ci
2317e5c31af7Sopenharmony_ci			void main()
2318e5c31af7Sopenharmony_ci			{
2319e5c31af7Sopenharmony_ci				gl_Position = a_pos;
2320e5c31af7Sopenharmony_ci			}
2321e5c31af7Sopenharmony_ci		""
2322e5c31af7Sopenharmony_ci
2323e5c31af7Sopenharmony_ci		fragment ""
2324e5c31af7Sopenharmony_ci			#version 300 es
2325e5c31af7Sopenharmony_ci			precision highp float;
2326e5c31af7Sopenharmony_ci
2327e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
2328e5c31af7Sopenharmony_ci
2329e5c31af7Sopenharmony_ci			uniform UniformBlock
2330e5c31af7Sopenharmony_ci			{
2331e5c31af7Sopenharmony_ci				in vec4 uniformMember;
2332e5c31af7Sopenharmony_ci			} uniformBlock;
2333e5c31af7Sopenharmony_ci
2334e5c31af7Sopenharmony_ci			void main()
2335e5c31af7Sopenharmony_ci			{
2336e5c31af7Sopenharmony_ci				o_color = uniformBlock.uniformMember;
2337e5c31af7Sopenharmony_ci			}
2338e5c31af7Sopenharmony_ci		""
2339e5c31af7Sopenharmony_ci	end
2340e5c31af7Sopenharmony_ci	case member_out_interface_qualifier_vertex
2341e5c31af7Sopenharmony_ci		version 300 es
2342e5c31af7Sopenharmony_ci		expect compile_fail
2343e5c31af7Sopenharmony_ci
2344e5c31af7Sopenharmony_ci		vertex ""
2345e5c31af7Sopenharmony_ci			#version 300 es
2346e5c31af7Sopenharmony_ci			precision highp float;
2347e5c31af7Sopenharmony_ci
2348e5c31af7Sopenharmony_ci
2349e5c31af7Sopenharmony_ci
2350e5c31af7Sopenharmony_ci			uniform UniformBlock
2351e5c31af7Sopenharmony_ci			{
2352e5c31af7Sopenharmony_ci				out vec4 uniformMember;
2353e5c31af7Sopenharmony_ci			} uniformBlock;
2354e5c31af7Sopenharmony_ci
2355e5c31af7Sopenharmony_ci			void main()
2356e5c31af7Sopenharmony_ci			{
2357e5c31af7Sopenharmony_ci				gl_Position = uniformBlock.uniformMember;
2358e5c31af7Sopenharmony_ci			}
2359e5c31af7Sopenharmony_ci		""
2360e5c31af7Sopenharmony_ci
2361e5c31af7Sopenharmony_ci		fragment ""
2362e5c31af7Sopenharmony_ci			#version 300 es
2363e5c31af7Sopenharmony_ci			precision highp float;
2364e5c31af7Sopenharmony_ci
2365e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
2366e5c31af7Sopenharmony_ci
2367e5c31af7Sopenharmony_ci			void main()
2368e5c31af7Sopenharmony_ci			{
2369e5c31af7Sopenharmony_ci				o_color = vec4(1.0);
2370e5c31af7Sopenharmony_ci			}
2371e5c31af7Sopenharmony_ci		""
2372e5c31af7Sopenharmony_ci	end
2373e5c31af7Sopenharmony_ci	case member_out_interface_qualifier_fragment
2374e5c31af7Sopenharmony_ci		version 300 es
2375e5c31af7Sopenharmony_ci		expect compile_fail
2376e5c31af7Sopenharmony_ci
2377e5c31af7Sopenharmony_ci		vertex ""
2378e5c31af7Sopenharmony_ci			#version 300 es
2379e5c31af7Sopenharmony_ci			precision highp float;
2380e5c31af7Sopenharmony_ci
2381e5c31af7Sopenharmony_ci			in vec4 a_pos;
2382e5c31af7Sopenharmony_ci
2383e5c31af7Sopenharmony_ci			void main()
2384e5c31af7Sopenharmony_ci			{
2385e5c31af7Sopenharmony_ci				gl_Position = a_pos;
2386e5c31af7Sopenharmony_ci			}
2387e5c31af7Sopenharmony_ci		""
2388e5c31af7Sopenharmony_ci
2389e5c31af7Sopenharmony_ci		fragment ""
2390e5c31af7Sopenharmony_ci			#version 300 es
2391e5c31af7Sopenharmony_ci			precision highp float;
2392e5c31af7Sopenharmony_ci
2393e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
2394e5c31af7Sopenharmony_ci
2395e5c31af7Sopenharmony_ci			uniform UniformBlock
2396e5c31af7Sopenharmony_ci			{
2397e5c31af7Sopenharmony_ci				out vec4 uniformMember;
2398e5c31af7Sopenharmony_ci			} uniformBlock;
2399e5c31af7Sopenharmony_ci
2400e5c31af7Sopenharmony_ci			void main()
2401e5c31af7Sopenharmony_ci			{
2402e5c31af7Sopenharmony_ci				o_color = uniformBlock.uniformMember;
2403e5c31af7Sopenharmony_ci			}
2404e5c31af7Sopenharmony_ci		""
2405e5c31af7Sopenharmony_ci	end
2406e5c31af7Sopenharmony_ci	case member_buffer_interface_qualifier_vertex
2407e5c31af7Sopenharmony_ci		version 300 es
2408e5c31af7Sopenharmony_ci		expect compile_fail
2409e5c31af7Sopenharmony_ci
2410e5c31af7Sopenharmony_ci		vertex ""
2411e5c31af7Sopenharmony_ci			#version 300 es
2412e5c31af7Sopenharmony_ci			precision highp float;
2413e5c31af7Sopenharmony_ci
2414e5c31af7Sopenharmony_ci
2415e5c31af7Sopenharmony_ci
2416e5c31af7Sopenharmony_ci			uniform UniformBlock
2417e5c31af7Sopenharmony_ci			{
2418e5c31af7Sopenharmony_ci				buffer vec4 uniformMember;
2419e5c31af7Sopenharmony_ci			} uniformBlock;
2420e5c31af7Sopenharmony_ci
2421e5c31af7Sopenharmony_ci			void main()
2422e5c31af7Sopenharmony_ci			{
2423e5c31af7Sopenharmony_ci				gl_Position = uniformBlock.uniformMember;
2424e5c31af7Sopenharmony_ci			}
2425e5c31af7Sopenharmony_ci		""
2426e5c31af7Sopenharmony_ci
2427e5c31af7Sopenharmony_ci		fragment ""
2428e5c31af7Sopenharmony_ci			#version 300 es
2429e5c31af7Sopenharmony_ci			precision highp float;
2430e5c31af7Sopenharmony_ci
2431e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
2432e5c31af7Sopenharmony_ci
2433e5c31af7Sopenharmony_ci			void main()
2434e5c31af7Sopenharmony_ci			{
2435e5c31af7Sopenharmony_ci				o_color = vec4(1.0);
2436e5c31af7Sopenharmony_ci			}
2437e5c31af7Sopenharmony_ci		""
2438e5c31af7Sopenharmony_ci	end
2439e5c31af7Sopenharmony_ci	case member_buffer_interface_qualifier_fragment
2440e5c31af7Sopenharmony_ci		version 300 es
2441e5c31af7Sopenharmony_ci		expect compile_fail
2442e5c31af7Sopenharmony_ci
2443e5c31af7Sopenharmony_ci		vertex ""
2444e5c31af7Sopenharmony_ci			#version 300 es
2445e5c31af7Sopenharmony_ci			precision highp float;
2446e5c31af7Sopenharmony_ci
2447e5c31af7Sopenharmony_ci			in vec4 a_pos;
2448e5c31af7Sopenharmony_ci
2449e5c31af7Sopenharmony_ci			void main()
2450e5c31af7Sopenharmony_ci			{
2451e5c31af7Sopenharmony_ci				gl_Position = a_pos;
2452e5c31af7Sopenharmony_ci			}
2453e5c31af7Sopenharmony_ci		""
2454e5c31af7Sopenharmony_ci
2455e5c31af7Sopenharmony_ci		fragment ""
2456e5c31af7Sopenharmony_ci			#version 300 es
2457e5c31af7Sopenharmony_ci			precision highp float;
2458e5c31af7Sopenharmony_ci
2459e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
2460e5c31af7Sopenharmony_ci
2461e5c31af7Sopenharmony_ci			uniform UniformBlock
2462e5c31af7Sopenharmony_ci			{
2463e5c31af7Sopenharmony_ci				buffer vec4 uniformMember;
2464e5c31af7Sopenharmony_ci			} uniformBlock;
2465e5c31af7Sopenharmony_ci
2466e5c31af7Sopenharmony_ci			void main()
2467e5c31af7Sopenharmony_ci			{
2468e5c31af7Sopenharmony_ci				o_color = uniformBlock.uniformMember;
2469e5c31af7Sopenharmony_ci			}
2470e5c31af7Sopenharmony_ci		""
2471e5c31af7Sopenharmony_ci	end
2472e5c31af7Sopenharmony_ci	case member_attribute_interface_qualifier_vertex
2473e5c31af7Sopenharmony_ci		version 300 es
2474e5c31af7Sopenharmony_ci		expect compile_fail
2475e5c31af7Sopenharmony_ci
2476e5c31af7Sopenharmony_ci		vertex ""
2477e5c31af7Sopenharmony_ci			#version 300 es
2478e5c31af7Sopenharmony_ci			precision highp float;
2479e5c31af7Sopenharmony_ci
2480e5c31af7Sopenharmony_ci
2481e5c31af7Sopenharmony_ci
2482e5c31af7Sopenharmony_ci			uniform UniformBlock
2483e5c31af7Sopenharmony_ci			{
2484e5c31af7Sopenharmony_ci				attribute vec4 uniformMember;
2485e5c31af7Sopenharmony_ci			} uniformBlock;
2486e5c31af7Sopenharmony_ci
2487e5c31af7Sopenharmony_ci			void main()
2488e5c31af7Sopenharmony_ci			{
2489e5c31af7Sopenharmony_ci				gl_Position = uniformBlock.uniformMember;
2490e5c31af7Sopenharmony_ci			}
2491e5c31af7Sopenharmony_ci		""
2492e5c31af7Sopenharmony_ci
2493e5c31af7Sopenharmony_ci		fragment ""
2494e5c31af7Sopenharmony_ci			#version 300 es
2495e5c31af7Sopenharmony_ci			precision highp float;
2496e5c31af7Sopenharmony_ci
2497e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
2498e5c31af7Sopenharmony_ci
2499e5c31af7Sopenharmony_ci			void main()
2500e5c31af7Sopenharmony_ci			{
2501e5c31af7Sopenharmony_ci				o_color = vec4(1.0);
2502e5c31af7Sopenharmony_ci			}
2503e5c31af7Sopenharmony_ci		""
2504e5c31af7Sopenharmony_ci	end
2505e5c31af7Sopenharmony_ci	case member_attribute_interface_qualifier_fragment
2506e5c31af7Sopenharmony_ci		version 300 es
2507e5c31af7Sopenharmony_ci		expect compile_fail
2508e5c31af7Sopenharmony_ci
2509e5c31af7Sopenharmony_ci		vertex ""
2510e5c31af7Sopenharmony_ci			#version 300 es
2511e5c31af7Sopenharmony_ci			precision highp float;
2512e5c31af7Sopenharmony_ci
2513e5c31af7Sopenharmony_ci			in vec4 a_pos;
2514e5c31af7Sopenharmony_ci
2515e5c31af7Sopenharmony_ci			void main()
2516e5c31af7Sopenharmony_ci			{
2517e5c31af7Sopenharmony_ci				gl_Position = a_pos;
2518e5c31af7Sopenharmony_ci			}
2519e5c31af7Sopenharmony_ci		""
2520e5c31af7Sopenharmony_ci
2521e5c31af7Sopenharmony_ci		fragment ""
2522e5c31af7Sopenharmony_ci			#version 300 es
2523e5c31af7Sopenharmony_ci			precision highp float;
2524e5c31af7Sopenharmony_ci
2525e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
2526e5c31af7Sopenharmony_ci
2527e5c31af7Sopenharmony_ci			uniform UniformBlock
2528e5c31af7Sopenharmony_ci			{
2529e5c31af7Sopenharmony_ci				attribute vec4 uniformMember;
2530e5c31af7Sopenharmony_ci			} uniformBlock;
2531e5c31af7Sopenharmony_ci
2532e5c31af7Sopenharmony_ci			void main()
2533e5c31af7Sopenharmony_ci			{
2534e5c31af7Sopenharmony_ci				o_color = uniformBlock.uniformMember;
2535e5c31af7Sopenharmony_ci			}
2536e5c31af7Sopenharmony_ci		""
2537e5c31af7Sopenharmony_ci	end
2538e5c31af7Sopenharmony_ci	case member_varying_interface_qualifier_vertex
2539e5c31af7Sopenharmony_ci		version 300 es
2540e5c31af7Sopenharmony_ci		expect compile_fail
2541e5c31af7Sopenharmony_ci
2542e5c31af7Sopenharmony_ci		vertex ""
2543e5c31af7Sopenharmony_ci			#version 300 es
2544e5c31af7Sopenharmony_ci			precision highp float;
2545e5c31af7Sopenharmony_ci
2546e5c31af7Sopenharmony_ci
2547e5c31af7Sopenharmony_ci
2548e5c31af7Sopenharmony_ci			uniform UniformBlock
2549e5c31af7Sopenharmony_ci			{
2550e5c31af7Sopenharmony_ci				varying vec4 uniformMember;
2551e5c31af7Sopenharmony_ci			} uniformBlock;
2552e5c31af7Sopenharmony_ci
2553e5c31af7Sopenharmony_ci			void main()
2554e5c31af7Sopenharmony_ci			{
2555e5c31af7Sopenharmony_ci				gl_Position = uniformBlock.uniformMember;
2556e5c31af7Sopenharmony_ci			}
2557e5c31af7Sopenharmony_ci		""
2558e5c31af7Sopenharmony_ci
2559e5c31af7Sopenharmony_ci		fragment ""
2560e5c31af7Sopenharmony_ci			#version 300 es
2561e5c31af7Sopenharmony_ci			precision highp float;
2562e5c31af7Sopenharmony_ci
2563e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
2564e5c31af7Sopenharmony_ci
2565e5c31af7Sopenharmony_ci			void main()
2566e5c31af7Sopenharmony_ci			{
2567e5c31af7Sopenharmony_ci				o_color = vec4(1.0);
2568e5c31af7Sopenharmony_ci			}
2569e5c31af7Sopenharmony_ci		""
2570e5c31af7Sopenharmony_ci	end
2571e5c31af7Sopenharmony_ci	case member_varying_interface_qualifier_fragment
2572e5c31af7Sopenharmony_ci		version 300 es
2573e5c31af7Sopenharmony_ci		expect compile_fail
2574e5c31af7Sopenharmony_ci
2575e5c31af7Sopenharmony_ci		vertex ""
2576e5c31af7Sopenharmony_ci			#version 300 es
2577e5c31af7Sopenharmony_ci			precision highp float;
2578e5c31af7Sopenharmony_ci
2579e5c31af7Sopenharmony_ci			in vec4 a_pos;
2580e5c31af7Sopenharmony_ci
2581e5c31af7Sopenharmony_ci			void main()
2582e5c31af7Sopenharmony_ci			{
2583e5c31af7Sopenharmony_ci				gl_Position = a_pos;
2584e5c31af7Sopenharmony_ci			}
2585e5c31af7Sopenharmony_ci		""
2586e5c31af7Sopenharmony_ci
2587e5c31af7Sopenharmony_ci		fragment ""
2588e5c31af7Sopenharmony_ci			#version 300 es
2589e5c31af7Sopenharmony_ci			precision highp float;
2590e5c31af7Sopenharmony_ci
2591e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
2592e5c31af7Sopenharmony_ci
2593e5c31af7Sopenharmony_ci			uniform UniformBlock
2594e5c31af7Sopenharmony_ci			{
2595e5c31af7Sopenharmony_ci				varying vec4 uniformMember;
2596e5c31af7Sopenharmony_ci			} uniformBlock;
2597e5c31af7Sopenharmony_ci
2598e5c31af7Sopenharmony_ci			void main()
2599e5c31af7Sopenharmony_ci			{
2600e5c31af7Sopenharmony_ci				o_color = uniformBlock.uniformMember;
2601e5c31af7Sopenharmony_ci			}
2602e5c31af7Sopenharmony_ci		""
2603e5c31af7Sopenharmony_ci	end
2604e5c31af7Sopenharmony_ci	case conflicting_instance_names_vertex
2605e5c31af7Sopenharmony_ci		version 300 es
2606e5c31af7Sopenharmony_ci		expect compile_fail
2607e5c31af7Sopenharmony_ci
2608e5c31af7Sopenharmony_ci		vertex ""
2609e5c31af7Sopenharmony_ci			#version 300 es
2610e5c31af7Sopenharmony_ci			precision highp float;
2611e5c31af7Sopenharmony_ci
2612e5c31af7Sopenharmony_ci
2613e5c31af7Sopenharmony_ci
2614e5c31af7Sopenharmony_ci			uniform UniformBlockA
2615e5c31af7Sopenharmony_ci			{
2616e5c31af7Sopenharmony_ci				vec4 uniformMember;
2617e5c31af7Sopenharmony_ci			} uniformBlock;
2618e5c31af7Sopenharmony_ci
2619e5c31af7Sopenharmony_ci			uniform UniformBlockB
2620e5c31af7Sopenharmony_ci			{
2621e5c31af7Sopenharmony_ci				vec4 uniformMember;
2622e5c31af7Sopenharmony_ci			} uniformBlock;
2623e5c31af7Sopenharmony_ci
2624e5c31af7Sopenharmony_ci			void main()
2625e5c31af7Sopenharmony_ci			{
2626e5c31af7Sopenharmony_ci				gl_Position = uniformBlock.uniformMember;
2627e5c31af7Sopenharmony_ci			}
2628e5c31af7Sopenharmony_ci		""
2629e5c31af7Sopenharmony_ci
2630e5c31af7Sopenharmony_ci		fragment ""
2631e5c31af7Sopenharmony_ci			#version 300 es
2632e5c31af7Sopenharmony_ci			precision highp float;
2633e5c31af7Sopenharmony_ci
2634e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
2635e5c31af7Sopenharmony_ci
2636e5c31af7Sopenharmony_ci			void main()
2637e5c31af7Sopenharmony_ci			{
2638e5c31af7Sopenharmony_ci				o_color = vec4(1.0);
2639e5c31af7Sopenharmony_ci			}
2640e5c31af7Sopenharmony_ci		""
2641e5c31af7Sopenharmony_ci	end
2642e5c31af7Sopenharmony_ci	case conflicting_instance_names_fragment
2643e5c31af7Sopenharmony_ci		version 300 es
2644e5c31af7Sopenharmony_ci		expect compile_fail
2645e5c31af7Sopenharmony_ci
2646e5c31af7Sopenharmony_ci		vertex ""
2647e5c31af7Sopenharmony_ci			#version 300 es
2648e5c31af7Sopenharmony_ci			precision highp float;
2649e5c31af7Sopenharmony_ci
2650e5c31af7Sopenharmony_ci			in vec4 a_pos;
2651e5c31af7Sopenharmony_ci
2652e5c31af7Sopenharmony_ci			void main()
2653e5c31af7Sopenharmony_ci			{
2654e5c31af7Sopenharmony_ci				gl_Position = a_pos;
2655e5c31af7Sopenharmony_ci			}
2656e5c31af7Sopenharmony_ci		""
2657e5c31af7Sopenharmony_ci
2658e5c31af7Sopenharmony_ci		fragment ""
2659e5c31af7Sopenharmony_ci			#version 300 es
2660e5c31af7Sopenharmony_ci			precision highp float;
2661e5c31af7Sopenharmony_ci
2662e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
2663e5c31af7Sopenharmony_ci
2664e5c31af7Sopenharmony_ci			uniform UniformBlockA
2665e5c31af7Sopenharmony_ci			{
2666e5c31af7Sopenharmony_ci				vec4 uniformMember;
2667e5c31af7Sopenharmony_ci			} uniformBlock;
2668e5c31af7Sopenharmony_ci
2669e5c31af7Sopenharmony_ci			uniform UniformBlockB
2670e5c31af7Sopenharmony_ci			{
2671e5c31af7Sopenharmony_ci				vec4 uniformMember;
2672e5c31af7Sopenharmony_ci			} uniformBlock;
2673e5c31af7Sopenharmony_ci
2674e5c31af7Sopenharmony_ci			void main()
2675e5c31af7Sopenharmony_ci			{
2676e5c31af7Sopenharmony_ci				o_color = uniformBlock.uniformMember;
2677e5c31af7Sopenharmony_ci			}
2678e5c31af7Sopenharmony_ci		""
2679e5c31af7Sopenharmony_ci	end
2680e5c31af7Sopenharmony_ci	case conflicting_function_and_instance_name_vertex
2681e5c31af7Sopenharmony_ci		version 300 es
2682e5c31af7Sopenharmony_ci		expect compile_fail
2683e5c31af7Sopenharmony_ci
2684e5c31af7Sopenharmony_ci		vertex ""
2685e5c31af7Sopenharmony_ci			#version 300 es
2686e5c31af7Sopenharmony_ci			precision highp float;
2687e5c31af7Sopenharmony_ci
2688e5c31af7Sopenharmony_ci
2689e5c31af7Sopenharmony_ci
2690e5c31af7Sopenharmony_ci			uniform UniformBlock
2691e5c31af7Sopenharmony_ci			{
2692e5c31af7Sopenharmony_ci				vec4 uniformMember;
2693e5c31af7Sopenharmony_ci			} uniformBlock;
2694e5c31af7Sopenharmony_ci
2695e5c31af7Sopenharmony_ci			float uniformBlock (float x)
2696e5c31af7Sopenharmony_ci			{
2697e5c31af7Sopenharmony_ci				return x;
2698e5c31af7Sopenharmony_ci			}
2699e5c31af7Sopenharmony_ci
2700e5c31af7Sopenharmony_ci			void main()
2701e5c31af7Sopenharmony_ci			{
2702e5c31af7Sopenharmony_ci				gl_Position = uniformBlock.uniformMember;
2703e5c31af7Sopenharmony_ci			}
2704e5c31af7Sopenharmony_ci		""
2705e5c31af7Sopenharmony_ci
2706e5c31af7Sopenharmony_ci		fragment ""
2707e5c31af7Sopenharmony_ci			#version 300 es
2708e5c31af7Sopenharmony_ci			precision highp float;
2709e5c31af7Sopenharmony_ci
2710e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
2711e5c31af7Sopenharmony_ci
2712e5c31af7Sopenharmony_ci			void main()
2713e5c31af7Sopenharmony_ci			{
2714e5c31af7Sopenharmony_ci				o_color = vec4(1.0);
2715e5c31af7Sopenharmony_ci			}
2716e5c31af7Sopenharmony_ci		""
2717e5c31af7Sopenharmony_ci	end
2718e5c31af7Sopenharmony_ci	case conflicting_function_and_instance_name_fragment
2719e5c31af7Sopenharmony_ci		version 300 es
2720e5c31af7Sopenharmony_ci		expect compile_fail
2721e5c31af7Sopenharmony_ci
2722e5c31af7Sopenharmony_ci		vertex ""
2723e5c31af7Sopenharmony_ci			#version 300 es
2724e5c31af7Sopenharmony_ci			precision highp float;
2725e5c31af7Sopenharmony_ci
2726e5c31af7Sopenharmony_ci			in vec4 a_pos;
2727e5c31af7Sopenharmony_ci
2728e5c31af7Sopenharmony_ci			void main()
2729e5c31af7Sopenharmony_ci			{
2730e5c31af7Sopenharmony_ci				gl_Position = a_pos;
2731e5c31af7Sopenharmony_ci			}
2732e5c31af7Sopenharmony_ci		""
2733e5c31af7Sopenharmony_ci
2734e5c31af7Sopenharmony_ci		fragment ""
2735e5c31af7Sopenharmony_ci			#version 300 es
2736e5c31af7Sopenharmony_ci			precision highp float;
2737e5c31af7Sopenharmony_ci
2738e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
2739e5c31af7Sopenharmony_ci
2740e5c31af7Sopenharmony_ci			uniform UniformBlock
2741e5c31af7Sopenharmony_ci			{
2742e5c31af7Sopenharmony_ci				vec4 uniformMember;
2743e5c31af7Sopenharmony_ci			} uniformBlock;
2744e5c31af7Sopenharmony_ci
2745e5c31af7Sopenharmony_ci			float uniformBlock (float x)
2746e5c31af7Sopenharmony_ci			{
2747e5c31af7Sopenharmony_ci				return x;
2748e5c31af7Sopenharmony_ci			}
2749e5c31af7Sopenharmony_ci
2750e5c31af7Sopenharmony_ci			void main()
2751e5c31af7Sopenharmony_ci			{
2752e5c31af7Sopenharmony_ci				o_color = uniformBlock.uniformMember;
2753e5c31af7Sopenharmony_ci			}
2754e5c31af7Sopenharmony_ci		""
2755e5c31af7Sopenharmony_ci	end
2756e5c31af7Sopenharmony_ci	case conflicting_function_and_block_name_vertex
2757e5c31af7Sopenharmony_ci		version 300 es
2758e5c31af7Sopenharmony_ci		expect compile_fail
2759e5c31af7Sopenharmony_ci
2760e5c31af7Sopenharmony_ci		vertex ""
2761e5c31af7Sopenharmony_ci			#version 300 es
2762e5c31af7Sopenharmony_ci			precision highp float;
2763e5c31af7Sopenharmony_ci
2764e5c31af7Sopenharmony_ci
2765e5c31af7Sopenharmony_ci
2766e5c31af7Sopenharmony_ci			uniform UniformBlock
2767e5c31af7Sopenharmony_ci			{
2768e5c31af7Sopenharmony_ci				vec4 uniformMember;
2769e5c31af7Sopenharmony_ci			} uniformBlock;
2770e5c31af7Sopenharmony_ci
2771e5c31af7Sopenharmony_ci			float UniformBlock (float x)
2772e5c31af7Sopenharmony_ci			{
2773e5c31af7Sopenharmony_ci				return x;
2774e5c31af7Sopenharmony_ci			}
2775e5c31af7Sopenharmony_ci
2776e5c31af7Sopenharmony_ci			void main()
2777e5c31af7Sopenharmony_ci			{
2778e5c31af7Sopenharmony_ci				gl_Position = uniformBlock.uniformMember;
2779e5c31af7Sopenharmony_ci			}
2780e5c31af7Sopenharmony_ci		""
2781e5c31af7Sopenharmony_ci
2782e5c31af7Sopenharmony_ci		fragment ""
2783e5c31af7Sopenharmony_ci			#version 300 es
2784e5c31af7Sopenharmony_ci			precision highp float;
2785e5c31af7Sopenharmony_ci
2786e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
2787e5c31af7Sopenharmony_ci
2788e5c31af7Sopenharmony_ci			void main()
2789e5c31af7Sopenharmony_ci			{
2790e5c31af7Sopenharmony_ci				o_color = vec4(1.0);
2791e5c31af7Sopenharmony_ci			}
2792e5c31af7Sopenharmony_ci		""
2793e5c31af7Sopenharmony_ci	end
2794e5c31af7Sopenharmony_ci	case conflicting_function_and_block_name_fragment
2795e5c31af7Sopenharmony_ci		version 300 es
2796e5c31af7Sopenharmony_ci		expect compile_fail
2797e5c31af7Sopenharmony_ci
2798e5c31af7Sopenharmony_ci		vertex ""
2799e5c31af7Sopenharmony_ci			#version 300 es
2800e5c31af7Sopenharmony_ci			precision highp float;
2801e5c31af7Sopenharmony_ci
2802e5c31af7Sopenharmony_ci			in vec4 a_pos;
2803e5c31af7Sopenharmony_ci
2804e5c31af7Sopenharmony_ci			void main()
2805e5c31af7Sopenharmony_ci			{
2806e5c31af7Sopenharmony_ci				gl_Position = a_pos;
2807e5c31af7Sopenharmony_ci			}
2808e5c31af7Sopenharmony_ci		""
2809e5c31af7Sopenharmony_ci
2810e5c31af7Sopenharmony_ci		fragment ""
2811e5c31af7Sopenharmony_ci			#version 300 es
2812e5c31af7Sopenharmony_ci			precision highp float;
2813e5c31af7Sopenharmony_ci
2814e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
2815e5c31af7Sopenharmony_ci
2816e5c31af7Sopenharmony_ci			uniform UniformBlock
2817e5c31af7Sopenharmony_ci			{
2818e5c31af7Sopenharmony_ci				vec4 uniformMember;
2819e5c31af7Sopenharmony_ci			} uniformBlock;
2820e5c31af7Sopenharmony_ci
2821e5c31af7Sopenharmony_ci			float UniformBlock (float x)
2822e5c31af7Sopenharmony_ci			{
2823e5c31af7Sopenharmony_ci				return x;
2824e5c31af7Sopenharmony_ci			}
2825e5c31af7Sopenharmony_ci
2826e5c31af7Sopenharmony_ci			void main()
2827e5c31af7Sopenharmony_ci			{
2828e5c31af7Sopenharmony_ci				o_color = uniformBlock.uniformMember;
2829e5c31af7Sopenharmony_ci			}
2830e5c31af7Sopenharmony_ci		""
2831e5c31af7Sopenharmony_ci	end
2832e5c31af7Sopenharmony_ci	case conflicting_uniform_and_instance_name_vertex
2833e5c31af7Sopenharmony_ci		version 300 es
2834e5c31af7Sopenharmony_ci		expect compile_fail
2835e5c31af7Sopenharmony_ci
2836e5c31af7Sopenharmony_ci		vertex ""
2837e5c31af7Sopenharmony_ci			#version 300 es
2838e5c31af7Sopenharmony_ci			precision highp float;
2839e5c31af7Sopenharmony_ci
2840e5c31af7Sopenharmony_ci
2841e5c31af7Sopenharmony_ci
2842e5c31af7Sopenharmony_ci			uniform UniformBlock
2843e5c31af7Sopenharmony_ci			{
2844e5c31af7Sopenharmony_ci				vec4 uniformMember;
2845e5c31af7Sopenharmony_ci			} uniformBlock;
2846e5c31af7Sopenharmony_ci
2847e5c31af7Sopenharmony_ci			uniform vec4 uniformBlock;
2848e5c31af7Sopenharmony_ci
2849e5c31af7Sopenharmony_ci			void main()
2850e5c31af7Sopenharmony_ci			{
2851e5c31af7Sopenharmony_ci				gl_Position = uniformBlock.uniformMember;
2852e5c31af7Sopenharmony_ci			}
2853e5c31af7Sopenharmony_ci		""
2854e5c31af7Sopenharmony_ci
2855e5c31af7Sopenharmony_ci		fragment ""
2856e5c31af7Sopenharmony_ci			#version 300 es
2857e5c31af7Sopenharmony_ci			precision highp float;
2858e5c31af7Sopenharmony_ci
2859e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
2860e5c31af7Sopenharmony_ci
2861e5c31af7Sopenharmony_ci			void main()
2862e5c31af7Sopenharmony_ci			{
2863e5c31af7Sopenharmony_ci				o_color = vec4(1.0);
2864e5c31af7Sopenharmony_ci			}
2865e5c31af7Sopenharmony_ci		""
2866e5c31af7Sopenharmony_ci	end
2867e5c31af7Sopenharmony_ci	case conflicting_uniform_and_instance_name_fragment
2868e5c31af7Sopenharmony_ci		version 300 es
2869e5c31af7Sopenharmony_ci		expect compile_fail
2870e5c31af7Sopenharmony_ci
2871e5c31af7Sopenharmony_ci		vertex ""
2872e5c31af7Sopenharmony_ci			#version 300 es
2873e5c31af7Sopenharmony_ci			precision highp float;
2874e5c31af7Sopenharmony_ci
2875e5c31af7Sopenharmony_ci			in vec4 a_pos;
2876e5c31af7Sopenharmony_ci
2877e5c31af7Sopenharmony_ci			void main()
2878e5c31af7Sopenharmony_ci			{
2879e5c31af7Sopenharmony_ci				gl_Position = a_pos;
2880e5c31af7Sopenharmony_ci			}
2881e5c31af7Sopenharmony_ci		""
2882e5c31af7Sopenharmony_ci
2883e5c31af7Sopenharmony_ci		fragment ""
2884e5c31af7Sopenharmony_ci			#version 300 es
2885e5c31af7Sopenharmony_ci			precision highp float;
2886e5c31af7Sopenharmony_ci
2887e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
2888e5c31af7Sopenharmony_ci
2889e5c31af7Sopenharmony_ci			uniform UniformBlock
2890e5c31af7Sopenharmony_ci			{
2891e5c31af7Sopenharmony_ci				vec4 uniformMember;
2892e5c31af7Sopenharmony_ci			} uniformBlock;
2893e5c31af7Sopenharmony_ci
2894e5c31af7Sopenharmony_ci			uniform vec4 uniformBlock;
2895e5c31af7Sopenharmony_ci
2896e5c31af7Sopenharmony_ci			void main()
2897e5c31af7Sopenharmony_ci			{
2898e5c31af7Sopenharmony_ci				o_color = uniformBlock.uniformMember;
2899e5c31af7Sopenharmony_ci			}
2900e5c31af7Sopenharmony_ci		""
2901e5c31af7Sopenharmony_ci	end
2902e5c31af7Sopenharmony_ci	case conflicting_in_and_instance_name_vertex
2903e5c31af7Sopenharmony_ci		version 300 es
2904e5c31af7Sopenharmony_ci		expect compile_fail
2905e5c31af7Sopenharmony_ci
2906e5c31af7Sopenharmony_ci		vertex ""
2907e5c31af7Sopenharmony_ci			#version 300 es
2908e5c31af7Sopenharmony_ci			precision highp float;
2909e5c31af7Sopenharmony_ci
2910e5c31af7Sopenharmony_ci
2911e5c31af7Sopenharmony_ci
2912e5c31af7Sopenharmony_ci			uniform UniformBlock
2913e5c31af7Sopenharmony_ci			{
2914e5c31af7Sopenharmony_ci				vec4 uniformMember;
2915e5c31af7Sopenharmony_ci			} uniformBlock;
2916e5c31af7Sopenharmony_ci
2917e5c31af7Sopenharmony_ci			in vec4 uniformBlock;
2918e5c31af7Sopenharmony_ci
2919e5c31af7Sopenharmony_ci			void main()
2920e5c31af7Sopenharmony_ci			{
2921e5c31af7Sopenharmony_ci				gl_Position = uniformBlock.uniformMember;
2922e5c31af7Sopenharmony_ci			}
2923e5c31af7Sopenharmony_ci		""
2924e5c31af7Sopenharmony_ci
2925e5c31af7Sopenharmony_ci		fragment ""
2926e5c31af7Sopenharmony_ci			#version 300 es
2927e5c31af7Sopenharmony_ci			precision highp float;
2928e5c31af7Sopenharmony_ci
2929e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
2930e5c31af7Sopenharmony_ci
2931e5c31af7Sopenharmony_ci			void main()
2932e5c31af7Sopenharmony_ci			{
2933e5c31af7Sopenharmony_ci				o_color = vec4(1.0);
2934e5c31af7Sopenharmony_ci			}
2935e5c31af7Sopenharmony_ci		""
2936e5c31af7Sopenharmony_ci	end
2937e5c31af7Sopenharmony_ci	case conflicting_in_and_instance_name_fragment
2938e5c31af7Sopenharmony_ci		version 300 es
2939e5c31af7Sopenharmony_ci		expect compile_fail
2940e5c31af7Sopenharmony_ci
2941e5c31af7Sopenharmony_ci		vertex ""
2942e5c31af7Sopenharmony_ci			#version 300 es
2943e5c31af7Sopenharmony_ci			precision highp float;
2944e5c31af7Sopenharmony_ci
2945e5c31af7Sopenharmony_ci			in vec4 a_pos;
2946e5c31af7Sopenharmony_ci
2947e5c31af7Sopenharmony_ci			void main()
2948e5c31af7Sopenharmony_ci			{
2949e5c31af7Sopenharmony_ci				gl_Position = a_pos;
2950e5c31af7Sopenharmony_ci			}
2951e5c31af7Sopenharmony_ci		""
2952e5c31af7Sopenharmony_ci
2953e5c31af7Sopenharmony_ci		fragment ""
2954e5c31af7Sopenharmony_ci			#version 300 es
2955e5c31af7Sopenharmony_ci			precision highp float;
2956e5c31af7Sopenharmony_ci
2957e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
2958e5c31af7Sopenharmony_ci
2959e5c31af7Sopenharmony_ci			uniform UniformBlock
2960e5c31af7Sopenharmony_ci			{
2961e5c31af7Sopenharmony_ci				vec4 uniformMember;
2962e5c31af7Sopenharmony_ci			} uniformBlock;
2963e5c31af7Sopenharmony_ci
2964e5c31af7Sopenharmony_ci			in vec4 uniformBlock;
2965e5c31af7Sopenharmony_ci
2966e5c31af7Sopenharmony_ci			void main()
2967e5c31af7Sopenharmony_ci			{
2968e5c31af7Sopenharmony_ci				o_color = uniformBlock.uniformMember;
2969e5c31af7Sopenharmony_ci			}
2970e5c31af7Sopenharmony_ci		""
2971e5c31af7Sopenharmony_ci	end
2972e5c31af7Sopenharmony_ci	case conflicting_out_and_instance_name_vertex
2973e5c31af7Sopenharmony_ci		version 300 es
2974e5c31af7Sopenharmony_ci		expect compile_fail
2975e5c31af7Sopenharmony_ci
2976e5c31af7Sopenharmony_ci		vertex ""
2977e5c31af7Sopenharmony_ci			#version 300 es
2978e5c31af7Sopenharmony_ci			precision highp float;
2979e5c31af7Sopenharmony_ci
2980e5c31af7Sopenharmony_ci
2981e5c31af7Sopenharmony_ci
2982e5c31af7Sopenharmony_ci			uniform UniformBlock
2983e5c31af7Sopenharmony_ci			{
2984e5c31af7Sopenharmony_ci				vec4 uniformMember;
2985e5c31af7Sopenharmony_ci			} uniformBlock;
2986e5c31af7Sopenharmony_ci
2987e5c31af7Sopenharmony_ci			out vec4 uniformBlock;
2988e5c31af7Sopenharmony_ci
2989e5c31af7Sopenharmony_ci			void main()
2990e5c31af7Sopenharmony_ci			{
2991e5c31af7Sopenharmony_ci				gl_Position = uniformBlock.uniformMember;
2992e5c31af7Sopenharmony_ci			}
2993e5c31af7Sopenharmony_ci		""
2994e5c31af7Sopenharmony_ci
2995e5c31af7Sopenharmony_ci		fragment ""
2996e5c31af7Sopenharmony_ci			#version 300 es
2997e5c31af7Sopenharmony_ci			precision highp float;
2998e5c31af7Sopenharmony_ci
2999e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
3000e5c31af7Sopenharmony_ci
3001e5c31af7Sopenharmony_ci			void main()
3002e5c31af7Sopenharmony_ci			{
3003e5c31af7Sopenharmony_ci				o_color = vec4(1.0);
3004e5c31af7Sopenharmony_ci			}
3005e5c31af7Sopenharmony_ci		""
3006e5c31af7Sopenharmony_ci	end
3007e5c31af7Sopenharmony_ci	case conflicting_out_and_instance_name_fragment
3008e5c31af7Sopenharmony_ci		version 300 es
3009e5c31af7Sopenharmony_ci		expect compile_fail
3010e5c31af7Sopenharmony_ci
3011e5c31af7Sopenharmony_ci		vertex ""
3012e5c31af7Sopenharmony_ci			#version 300 es
3013e5c31af7Sopenharmony_ci			precision highp float;
3014e5c31af7Sopenharmony_ci
3015e5c31af7Sopenharmony_ci			in vec4 a_pos;
3016e5c31af7Sopenharmony_ci
3017e5c31af7Sopenharmony_ci			void main()
3018e5c31af7Sopenharmony_ci			{
3019e5c31af7Sopenharmony_ci				gl_Position = a_pos;
3020e5c31af7Sopenharmony_ci			}
3021e5c31af7Sopenharmony_ci		""
3022e5c31af7Sopenharmony_ci
3023e5c31af7Sopenharmony_ci		fragment ""
3024e5c31af7Sopenharmony_ci			#version 300 es
3025e5c31af7Sopenharmony_ci			precision highp float;
3026e5c31af7Sopenharmony_ci
3027e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
3028e5c31af7Sopenharmony_ci
3029e5c31af7Sopenharmony_ci			uniform UniformBlock
3030e5c31af7Sopenharmony_ci			{
3031e5c31af7Sopenharmony_ci				vec4 uniformMember;
3032e5c31af7Sopenharmony_ci			} uniformBlock;
3033e5c31af7Sopenharmony_ci
3034e5c31af7Sopenharmony_ci			out vec4 uniformBlock;
3035e5c31af7Sopenharmony_ci
3036e5c31af7Sopenharmony_ci			void main()
3037e5c31af7Sopenharmony_ci			{
3038e5c31af7Sopenharmony_ci				o_color = uniformBlock.uniformMember;
3039e5c31af7Sopenharmony_ci			}
3040e5c31af7Sopenharmony_ci		""
3041e5c31af7Sopenharmony_ci	end
3042e5c31af7Sopenharmony_ci	case conflicting_uniform_and_block_name_vertex
3043e5c31af7Sopenharmony_ci		version 300 es
3044e5c31af7Sopenharmony_ci		expect compile_fail
3045e5c31af7Sopenharmony_ci
3046e5c31af7Sopenharmony_ci		vertex ""
3047e5c31af7Sopenharmony_ci			#version 300 es
3048e5c31af7Sopenharmony_ci			precision highp float;
3049e5c31af7Sopenharmony_ci
3050e5c31af7Sopenharmony_ci
3051e5c31af7Sopenharmony_ci
3052e5c31af7Sopenharmony_ci			uniform UniformBlock
3053e5c31af7Sopenharmony_ci			{
3054e5c31af7Sopenharmony_ci				vec4 uniformMember;
3055e5c31af7Sopenharmony_ci			} uniformBlock;
3056e5c31af7Sopenharmony_ci
3057e5c31af7Sopenharmony_ci			uniform vec4 UniformBlock;
3058e5c31af7Sopenharmony_ci
3059e5c31af7Sopenharmony_ci			void main()
3060e5c31af7Sopenharmony_ci			{
3061e5c31af7Sopenharmony_ci				gl_Position = uniformBlock.uniformMember;
3062e5c31af7Sopenharmony_ci			}
3063e5c31af7Sopenharmony_ci		""
3064e5c31af7Sopenharmony_ci
3065e5c31af7Sopenharmony_ci		fragment ""
3066e5c31af7Sopenharmony_ci			#version 300 es
3067e5c31af7Sopenharmony_ci			precision highp float;
3068e5c31af7Sopenharmony_ci
3069e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
3070e5c31af7Sopenharmony_ci
3071e5c31af7Sopenharmony_ci			void main()
3072e5c31af7Sopenharmony_ci			{
3073e5c31af7Sopenharmony_ci				o_color = vec4(1.0);
3074e5c31af7Sopenharmony_ci			}
3075e5c31af7Sopenharmony_ci		""
3076e5c31af7Sopenharmony_ci	end
3077e5c31af7Sopenharmony_ci	case conflicting_uniform_and_block_name_fragment
3078e5c31af7Sopenharmony_ci		version 300 es
3079e5c31af7Sopenharmony_ci		expect compile_fail
3080e5c31af7Sopenharmony_ci
3081e5c31af7Sopenharmony_ci		vertex ""
3082e5c31af7Sopenharmony_ci			#version 300 es
3083e5c31af7Sopenharmony_ci			precision highp float;
3084e5c31af7Sopenharmony_ci
3085e5c31af7Sopenharmony_ci			in vec4 a_pos;
3086e5c31af7Sopenharmony_ci
3087e5c31af7Sopenharmony_ci			void main()
3088e5c31af7Sopenharmony_ci			{
3089e5c31af7Sopenharmony_ci				gl_Position = a_pos;
3090e5c31af7Sopenharmony_ci			}
3091e5c31af7Sopenharmony_ci		""
3092e5c31af7Sopenharmony_ci
3093e5c31af7Sopenharmony_ci		fragment ""
3094e5c31af7Sopenharmony_ci			#version 300 es
3095e5c31af7Sopenharmony_ci			precision highp float;
3096e5c31af7Sopenharmony_ci
3097e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
3098e5c31af7Sopenharmony_ci
3099e5c31af7Sopenharmony_ci			uniform UniformBlock
3100e5c31af7Sopenharmony_ci			{
3101e5c31af7Sopenharmony_ci				vec4 uniformMember;
3102e5c31af7Sopenharmony_ci			} uniformBlock;
3103e5c31af7Sopenharmony_ci
3104e5c31af7Sopenharmony_ci			uniform vec4 UniformBlock;
3105e5c31af7Sopenharmony_ci
3106e5c31af7Sopenharmony_ci			void main()
3107e5c31af7Sopenharmony_ci			{
3108e5c31af7Sopenharmony_ci				o_color = uniformBlock.uniformMember;
3109e5c31af7Sopenharmony_ci			}
3110e5c31af7Sopenharmony_ci		""
3111e5c31af7Sopenharmony_ci	end
3112e5c31af7Sopenharmony_ci	case conflicting_in_and_block_name_vertex
3113e5c31af7Sopenharmony_ci		version 300 es
3114e5c31af7Sopenharmony_ci		expect compile_fail
3115e5c31af7Sopenharmony_ci
3116e5c31af7Sopenharmony_ci		vertex ""
3117e5c31af7Sopenharmony_ci			#version 300 es
3118e5c31af7Sopenharmony_ci			precision highp float;
3119e5c31af7Sopenharmony_ci
3120e5c31af7Sopenharmony_ci
3121e5c31af7Sopenharmony_ci
3122e5c31af7Sopenharmony_ci			uniform UniformBlock
3123e5c31af7Sopenharmony_ci			{
3124e5c31af7Sopenharmony_ci				vec4 uniformMember;
3125e5c31af7Sopenharmony_ci			} uniformBlock;
3126e5c31af7Sopenharmony_ci
3127e5c31af7Sopenharmony_ci			in vec4 UniformBlock;
3128e5c31af7Sopenharmony_ci
3129e5c31af7Sopenharmony_ci			void main()
3130e5c31af7Sopenharmony_ci			{
3131e5c31af7Sopenharmony_ci				gl_Position = uniformBlock.uniformMember;
3132e5c31af7Sopenharmony_ci			}
3133e5c31af7Sopenharmony_ci		""
3134e5c31af7Sopenharmony_ci
3135e5c31af7Sopenharmony_ci		fragment ""
3136e5c31af7Sopenharmony_ci			#version 300 es
3137e5c31af7Sopenharmony_ci			precision highp float;
3138e5c31af7Sopenharmony_ci
3139e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
3140e5c31af7Sopenharmony_ci
3141e5c31af7Sopenharmony_ci			void main()
3142e5c31af7Sopenharmony_ci			{
3143e5c31af7Sopenharmony_ci				o_color = vec4(1.0);
3144e5c31af7Sopenharmony_ci			}
3145e5c31af7Sopenharmony_ci		""
3146e5c31af7Sopenharmony_ci	end
3147e5c31af7Sopenharmony_ci	case conflicting_in_and_block_name_fragment
3148e5c31af7Sopenharmony_ci		version 300 es
3149e5c31af7Sopenharmony_ci		expect compile_fail
3150e5c31af7Sopenharmony_ci
3151e5c31af7Sopenharmony_ci		vertex ""
3152e5c31af7Sopenharmony_ci			#version 300 es
3153e5c31af7Sopenharmony_ci			precision highp float;
3154e5c31af7Sopenharmony_ci
3155e5c31af7Sopenharmony_ci			in vec4 a_pos;
3156e5c31af7Sopenharmony_ci
3157e5c31af7Sopenharmony_ci			void main()
3158e5c31af7Sopenharmony_ci			{
3159e5c31af7Sopenharmony_ci				gl_Position = a_pos;
3160e5c31af7Sopenharmony_ci			}
3161e5c31af7Sopenharmony_ci		""
3162e5c31af7Sopenharmony_ci
3163e5c31af7Sopenharmony_ci		fragment ""
3164e5c31af7Sopenharmony_ci			#version 300 es
3165e5c31af7Sopenharmony_ci			precision highp float;
3166e5c31af7Sopenharmony_ci
3167e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
3168e5c31af7Sopenharmony_ci
3169e5c31af7Sopenharmony_ci			uniform UniformBlock
3170e5c31af7Sopenharmony_ci			{
3171e5c31af7Sopenharmony_ci				vec4 uniformMember;
3172e5c31af7Sopenharmony_ci			} uniformBlock;
3173e5c31af7Sopenharmony_ci
3174e5c31af7Sopenharmony_ci			in vec4 UniformBlock;
3175e5c31af7Sopenharmony_ci
3176e5c31af7Sopenharmony_ci			void main()
3177e5c31af7Sopenharmony_ci			{
3178e5c31af7Sopenharmony_ci				o_color = uniformBlock.uniformMember;
3179e5c31af7Sopenharmony_ci			}
3180e5c31af7Sopenharmony_ci		""
3181e5c31af7Sopenharmony_ci	end
3182e5c31af7Sopenharmony_ci	case conflicting_out_and_block_name_vertex
3183e5c31af7Sopenharmony_ci		version 300 es
3184e5c31af7Sopenharmony_ci		expect compile_fail
3185e5c31af7Sopenharmony_ci
3186e5c31af7Sopenharmony_ci		vertex ""
3187e5c31af7Sopenharmony_ci			#version 300 es
3188e5c31af7Sopenharmony_ci			precision highp float;
3189e5c31af7Sopenharmony_ci
3190e5c31af7Sopenharmony_ci
3191e5c31af7Sopenharmony_ci
3192e5c31af7Sopenharmony_ci			uniform UniformBlock
3193e5c31af7Sopenharmony_ci			{
3194e5c31af7Sopenharmony_ci				vec4 uniformMember;
3195e5c31af7Sopenharmony_ci			} uniformBlock;
3196e5c31af7Sopenharmony_ci
3197e5c31af7Sopenharmony_ci			out vec4 UniformBlock;
3198e5c31af7Sopenharmony_ci
3199e5c31af7Sopenharmony_ci			void main()
3200e5c31af7Sopenharmony_ci			{
3201e5c31af7Sopenharmony_ci				gl_Position = uniformBlock.uniformMember;
3202e5c31af7Sopenharmony_ci			}
3203e5c31af7Sopenharmony_ci		""
3204e5c31af7Sopenharmony_ci
3205e5c31af7Sopenharmony_ci		fragment ""
3206e5c31af7Sopenharmony_ci			#version 300 es
3207e5c31af7Sopenharmony_ci			precision highp float;
3208e5c31af7Sopenharmony_ci
3209e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
3210e5c31af7Sopenharmony_ci
3211e5c31af7Sopenharmony_ci			void main()
3212e5c31af7Sopenharmony_ci			{
3213e5c31af7Sopenharmony_ci				o_color = vec4(1.0);
3214e5c31af7Sopenharmony_ci			}
3215e5c31af7Sopenharmony_ci		""
3216e5c31af7Sopenharmony_ci	end
3217e5c31af7Sopenharmony_ci	case conflicting_out_and_block_name_fragment
3218e5c31af7Sopenharmony_ci		version 300 es
3219e5c31af7Sopenharmony_ci		expect compile_fail
3220e5c31af7Sopenharmony_ci
3221e5c31af7Sopenharmony_ci		vertex ""
3222e5c31af7Sopenharmony_ci			#version 300 es
3223e5c31af7Sopenharmony_ci			precision highp float;
3224e5c31af7Sopenharmony_ci
3225e5c31af7Sopenharmony_ci			in vec4 a_pos;
3226e5c31af7Sopenharmony_ci
3227e5c31af7Sopenharmony_ci			void main()
3228e5c31af7Sopenharmony_ci			{
3229e5c31af7Sopenharmony_ci				gl_Position = a_pos;
3230e5c31af7Sopenharmony_ci			}
3231e5c31af7Sopenharmony_ci		""
3232e5c31af7Sopenharmony_ci
3233e5c31af7Sopenharmony_ci		fragment ""
3234e5c31af7Sopenharmony_ci			#version 300 es
3235e5c31af7Sopenharmony_ci			precision highp float;
3236e5c31af7Sopenharmony_ci
3237e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
3238e5c31af7Sopenharmony_ci
3239e5c31af7Sopenharmony_ci			uniform UniformBlock
3240e5c31af7Sopenharmony_ci			{
3241e5c31af7Sopenharmony_ci				vec4 uniformMember;
3242e5c31af7Sopenharmony_ci			} uniformBlock;
3243e5c31af7Sopenharmony_ci
3244e5c31af7Sopenharmony_ci			out vec4 UniformBlock;
3245e5c31af7Sopenharmony_ci
3246e5c31af7Sopenharmony_ci			void main()
3247e5c31af7Sopenharmony_ci			{
3248e5c31af7Sopenharmony_ci				o_color = uniformBlock.uniformMember;
3249e5c31af7Sopenharmony_ci			}
3250e5c31af7Sopenharmony_ci		""
3251e5c31af7Sopenharmony_ci	end
3252e5c31af7Sopenharmony_ci	case matching_instance_and_block_name_vertex
3253e5c31af7Sopenharmony_ci		version 300 es
3254e5c31af7Sopenharmony_ci		expect compile_fail
3255e5c31af7Sopenharmony_ci
3256e5c31af7Sopenharmony_ci		vertex ""
3257e5c31af7Sopenharmony_ci			#version 300 es
3258e5c31af7Sopenharmony_ci			precision highp float;
3259e5c31af7Sopenharmony_ci
3260e5c31af7Sopenharmony_ci
3261e5c31af7Sopenharmony_ci
3262e5c31af7Sopenharmony_ci			uniform UniformBlock
3263e5c31af7Sopenharmony_ci			{
3264e5c31af7Sopenharmony_ci				vec4 uniformMember;
3265e5c31af7Sopenharmony_ci			} UniformBlock;
3266e5c31af7Sopenharmony_ci
3267e5c31af7Sopenharmony_ci			void main()
3268e5c31af7Sopenharmony_ci			{
3269e5c31af7Sopenharmony_ci				gl_Position = UniformBlock.uniformMember;
3270e5c31af7Sopenharmony_ci			}
3271e5c31af7Sopenharmony_ci		""
3272e5c31af7Sopenharmony_ci
3273e5c31af7Sopenharmony_ci		fragment ""
3274e5c31af7Sopenharmony_ci			#version 300 es
3275e5c31af7Sopenharmony_ci			precision highp float;
3276e5c31af7Sopenharmony_ci
3277e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
3278e5c31af7Sopenharmony_ci
3279e5c31af7Sopenharmony_ci			void main()
3280e5c31af7Sopenharmony_ci			{
3281e5c31af7Sopenharmony_ci				o_color = vec4(1.0);
3282e5c31af7Sopenharmony_ci			}
3283e5c31af7Sopenharmony_ci		""
3284e5c31af7Sopenharmony_ci	end
3285e5c31af7Sopenharmony_ci	case matching_instance_and_block_name_fragment
3286e5c31af7Sopenharmony_ci		version 300 es
3287e5c31af7Sopenharmony_ci		expect compile_fail
3288e5c31af7Sopenharmony_ci
3289e5c31af7Sopenharmony_ci		vertex ""
3290e5c31af7Sopenharmony_ci			#version 300 es
3291e5c31af7Sopenharmony_ci			precision highp float;
3292e5c31af7Sopenharmony_ci
3293e5c31af7Sopenharmony_ci			in vec4 a_pos;
3294e5c31af7Sopenharmony_ci
3295e5c31af7Sopenharmony_ci			void main()
3296e5c31af7Sopenharmony_ci			{
3297e5c31af7Sopenharmony_ci				gl_Position = a_pos;
3298e5c31af7Sopenharmony_ci			}
3299e5c31af7Sopenharmony_ci		""
3300e5c31af7Sopenharmony_ci
3301e5c31af7Sopenharmony_ci		fragment ""
3302e5c31af7Sopenharmony_ci			#version 300 es
3303e5c31af7Sopenharmony_ci			precision highp float;
3304e5c31af7Sopenharmony_ci
3305e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
3306e5c31af7Sopenharmony_ci
3307e5c31af7Sopenharmony_ci			uniform UniformBlock
3308e5c31af7Sopenharmony_ci			{
3309e5c31af7Sopenharmony_ci				vec4 uniformMember;
3310e5c31af7Sopenharmony_ci			} UniformBlock;
3311e5c31af7Sopenharmony_ci
3312e5c31af7Sopenharmony_ci			void main()
3313e5c31af7Sopenharmony_ci			{
3314e5c31af7Sopenharmony_ci				o_color = UniformBlock.uniformMember;
3315e5c31af7Sopenharmony_ci			}
3316e5c31af7Sopenharmony_ci		""
3317e5c31af7Sopenharmony_ci	end
3318e5c31af7Sopenharmony_ci	case reference_using_block_name_vertex
3319e5c31af7Sopenharmony_ci		version 300 es
3320e5c31af7Sopenharmony_ci		expect compile_fail
3321e5c31af7Sopenharmony_ci
3322e5c31af7Sopenharmony_ci		vertex ""
3323e5c31af7Sopenharmony_ci			#version 300 es
3324e5c31af7Sopenharmony_ci			precision highp float;
3325e5c31af7Sopenharmony_ci
3326e5c31af7Sopenharmony_ci
3327e5c31af7Sopenharmony_ci
3328e5c31af7Sopenharmony_ci			uniform UniformBlock
3329e5c31af7Sopenharmony_ci			{
3330e5c31af7Sopenharmony_ci				vec4 uniformMember;
3331e5c31af7Sopenharmony_ci			} uniformBlock;
3332e5c31af7Sopenharmony_ci
3333e5c31af7Sopenharmony_ci			void main()
3334e5c31af7Sopenharmony_ci			{
3335e5c31af7Sopenharmony_ci				gl_Position = UniformBlock.uniformMember;
3336e5c31af7Sopenharmony_ci			}
3337e5c31af7Sopenharmony_ci		""
3338e5c31af7Sopenharmony_ci
3339e5c31af7Sopenharmony_ci		fragment ""
3340e5c31af7Sopenharmony_ci			#version 300 es
3341e5c31af7Sopenharmony_ci			precision highp float;
3342e5c31af7Sopenharmony_ci
3343e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
3344e5c31af7Sopenharmony_ci
3345e5c31af7Sopenharmony_ci			void main()
3346e5c31af7Sopenharmony_ci			{
3347e5c31af7Sopenharmony_ci				o_color = vec4(1.0);
3348e5c31af7Sopenharmony_ci			}
3349e5c31af7Sopenharmony_ci		""
3350e5c31af7Sopenharmony_ci	end
3351e5c31af7Sopenharmony_ci	case reference_using_block_name_fragment
3352e5c31af7Sopenharmony_ci		version 300 es
3353e5c31af7Sopenharmony_ci		expect compile_fail
3354e5c31af7Sopenharmony_ci
3355e5c31af7Sopenharmony_ci		vertex ""
3356e5c31af7Sopenharmony_ci			#version 300 es
3357e5c31af7Sopenharmony_ci			precision highp float;
3358e5c31af7Sopenharmony_ci
3359e5c31af7Sopenharmony_ci			in vec4 a_pos;
3360e5c31af7Sopenharmony_ci
3361e5c31af7Sopenharmony_ci			void main()
3362e5c31af7Sopenharmony_ci			{
3363e5c31af7Sopenharmony_ci				gl_Position = a_pos;
3364e5c31af7Sopenharmony_ci			}
3365e5c31af7Sopenharmony_ci		""
3366e5c31af7Sopenharmony_ci
3367e5c31af7Sopenharmony_ci		fragment ""
3368e5c31af7Sopenharmony_ci			#version 300 es
3369e5c31af7Sopenharmony_ci			precision highp float;
3370e5c31af7Sopenharmony_ci
3371e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
3372e5c31af7Sopenharmony_ci
3373e5c31af7Sopenharmony_ci			uniform UniformBlock
3374e5c31af7Sopenharmony_ci			{
3375e5c31af7Sopenharmony_ci				vec4 uniformMember;
3376e5c31af7Sopenharmony_ci			} uniformBlock;
3377e5c31af7Sopenharmony_ci
3378e5c31af7Sopenharmony_ci			void main()
3379e5c31af7Sopenharmony_ci			{
3380e5c31af7Sopenharmony_ci				o_color = UniformBlock.uniformMember;
3381e5c31af7Sopenharmony_ci			}
3382e5c31af7Sopenharmony_ci		""
3383e5c31af7Sopenharmony_ci	end
3384e5c31af7Sopenharmony_ci	case empty_block_vertex
3385e5c31af7Sopenharmony_ci		version 300 es
3386e5c31af7Sopenharmony_ci		expect compile_fail
3387e5c31af7Sopenharmony_ci
3388e5c31af7Sopenharmony_ci		vertex ""
3389e5c31af7Sopenharmony_ci			#version 300 es
3390e5c31af7Sopenharmony_ci			precision highp float;
3391e5c31af7Sopenharmony_ci
3392e5c31af7Sopenharmony_ci
3393e5c31af7Sopenharmony_ci
3394e5c31af7Sopenharmony_ci			uniform UniformBlock
3395e5c31af7Sopenharmony_ci			{
3396e5c31af7Sopenharmony_ci			} uniformBlock;
3397e5c31af7Sopenharmony_ci
3398e5c31af7Sopenharmony_ci			void main()
3399e5c31af7Sopenharmony_ci			{
3400e5c31af7Sopenharmony_ci				gl_Position = vec4(0.0);
3401e5c31af7Sopenharmony_ci			}
3402e5c31af7Sopenharmony_ci		""
3403e5c31af7Sopenharmony_ci
3404e5c31af7Sopenharmony_ci		fragment ""
3405e5c31af7Sopenharmony_ci			#version 300 es
3406e5c31af7Sopenharmony_ci			precision highp float;
3407e5c31af7Sopenharmony_ci
3408e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
3409e5c31af7Sopenharmony_ci
3410e5c31af7Sopenharmony_ci			void main()
3411e5c31af7Sopenharmony_ci			{
3412e5c31af7Sopenharmony_ci				o_color = vec4(1.0);
3413e5c31af7Sopenharmony_ci			}
3414e5c31af7Sopenharmony_ci		""
3415e5c31af7Sopenharmony_ci	end
3416e5c31af7Sopenharmony_ci	case empty_block_fragment
3417e5c31af7Sopenharmony_ci		version 300 es
3418e5c31af7Sopenharmony_ci		expect compile_fail
3419e5c31af7Sopenharmony_ci
3420e5c31af7Sopenharmony_ci		vertex ""
3421e5c31af7Sopenharmony_ci			#version 300 es
3422e5c31af7Sopenharmony_ci			precision highp float;
3423e5c31af7Sopenharmony_ci
3424e5c31af7Sopenharmony_ci			in vec4 a_pos;
3425e5c31af7Sopenharmony_ci
3426e5c31af7Sopenharmony_ci			void main()
3427e5c31af7Sopenharmony_ci			{
3428e5c31af7Sopenharmony_ci				gl_Position = a_pos;
3429e5c31af7Sopenharmony_ci			}
3430e5c31af7Sopenharmony_ci		""
3431e5c31af7Sopenharmony_ci
3432e5c31af7Sopenharmony_ci		fragment ""
3433e5c31af7Sopenharmony_ci			#version 300 es
3434e5c31af7Sopenharmony_ci			precision highp float;
3435e5c31af7Sopenharmony_ci
3436e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
3437e5c31af7Sopenharmony_ci
3438e5c31af7Sopenharmony_ci			uniform UniformBlock
3439e5c31af7Sopenharmony_ci			{
3440e5c31af7Sopenharmony_ci			} uniformBlock;
3441e5c31af7Sopenharmony_ci
3442e5c31af7Sopenharmony_ci			void main()
3443e5c31af7Sopenharmony_ci			{
3444e5c31af7Sopenharmony_ci				o_color = vec4(0.0);
3445e5c31af7Sopenharmony_ci			}
3446e5c31af7Sopenharmony_ci		""
3447e5c31af7Sopenharmony_ci	end
3448e5c31af7Sopenharmony_ci	case empty_layout_vertex
3449e5c31af7Sopenharmony_ci		version 300 es
3450e5c31af7Sopenharmony_ci		expect compile_fail
3451e5c31af7Sopenharmony_ci
3452e5c31af7Sopenharmony_ci		vertex ""
3453e5c31af7Sopenharmony_ci			#version 300 es
3454e5c31af7Sopenharmony_ci			precision highp float;
3455e5c31af7Sopenharmony_ci
3456e5c31af7Sopenharmony_ci
3457e5c31af7Sopenharmony_ci
3458e5c31af7Sopenharmony_ci			layout() uniform UniformBlock
3459e5c31af7Sopenharmony_ci			{
3460e5c31af7Sopenharmony_ci				vec4 uniformMember;
3461e5c31af7Sopenharmony_ci			} uniformBlock;
3462e5c31af7Sopenharmony_ci
3463e5c31af7Sopenharmony_ci			void main()
3464e5c31af7Sopenharmony_ci			{
3465e5c31af7Sopenharmony_ci				gl_Position = uniformBlock.uniformMember;
3466e5c31af7Sopenharmony_ci			}
3467e5c31af7Sopenharmony_ci		""
3468e5c31af7Sopenharmony_ci
3469e5c31af7Sopenharmony_ci		fragment ""
3470e5c31af7Sopenharmony_ci			#version 300 es
3471e5c31af7Sopenharmony_ci			precision highp float;
3472e5c31af7Sopenharmony_ci
3473e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
3474e5c31af7Sopenharmony_ci
3475e5c31af7Sopenharmony_ci			void main()
3476e5c31af7Sopenharmony_ci			{
3477e5c31af7Sopenharmony_ci				o_color = vec4(1.0);
3478e5c31af7Sopenharmony_ci			}
3479e5c31af7Sopenharmony_ci		""
3480e5c31af7Sopenharmony_ci	end
3481e5c31af7Sopenharmony_ci	case empty_layout_fragment
3482e5c31af7Sopenharmony_ci		version 300 es
3483e5c31af7Sopenharmony_ci		expect compile_fail
3484e5c31af7Sopenharmony_ci
3485e5c31af7Sopenharmony_ci		vertex ""
3486e5c31af7Sopenharmony_ci			#version 300 es
3487e5c31af7Sopenharmony_ci			precision highp float;
3488e5c31af7Sopenharmony_ci
3489e5c31af7Sopenharmony_ci			in vec4 a_pos;
3490e5c31af7Sopenharmony_ci
3491e5c31af7Sopenharmony_ci			void main()
3492e5c31af7Sopenharmony_ci			{
3493e5c31af7Sopenharmony_ci				gl_Position = a_pos;
3494e5c31af7Sopenharmony_ci			}
3495e5c31af7Sopenharmony_ci		""
3496e5c31af7Sopenharmony_ci
3497e5c31af7Sopenharmony_ci		fragment ""
3498e5c31af7Sopenharmony_ci			#version 300 es
3499e5c31af7Sopenharmony_ci			precision highp float;
3500e5c31af7Sopenharmony_ci
3501e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
3502e5c31af7Sopenharmony_ci
3503e5c31af7Sopenharmony_ci			layout() uniform UniformBlock
3504e5c31af7Sopenharmony_ci			{
3505e5c31af7Sopenharmony_ci				vec4 uniformMember;
3506e5c31af7Sopenharmony_ci			} uniformBlock;
3507e5c31af7Sopenharmony_ci
3508e5c31af7Sopenharmony_ci			void main()
3509e5c31af7Sopenharmony_ci			{
3510e5c31af7Sopenharmony_ci				o_color = uniformBlock.uniformMember;
3511e5c31af7Sopenharmony_ci			}
3512e5c31af7Sopenharmony_ci		""
3513e5c31af7Sopenharmony_ci	end
3514e5c31af7Sopenharmony_ci	case empty_member_layout_vertex
3515e5c31af7Sopenharmony_ci		version 300 es
3516e5c31af7Sopenharmony_ci		expect compile_fail
3517e5c31af7Sopenharmony_ci
3518e5c31af7Sopenharmony_ci		vertex ""
3519e5c31af7Sopenharmony_ci			#version 300 es
3520e5c31af7Sopenharmony_ci			precision highp float;
3521e5c31af7Sopenharmony_ci
3522e5c31af7Sopenharmony_ci
3523e5c31af7Sopenharmony_ci
3524e5c31af7Sopenharmony_ci			uniform UniformBlock
3525e5c31af7Sopenharmony_ci			{
3526e5c31af7Sopenharmony_ci				layout() vec4 uniformMember;
3527e5c31af7Sopenharmony_ci			} uniformBlock;
3528e5c31af7Sopenharmony_ci
3529e5c31af7Sopenharmony_ci			void main()
3530e5c31af7Sopenharmony_ci			{
3531e5c31af7Sopenharmony_ci				gl_Position = uniformBlock.uniformMember;
3532e5c31af7Sopenharmony_ci			}
3533e5c31af7Sopenharmony_ci		""
3534e5c31af7Sopenharmony_ci
3535e5c31af7Sopenharmony_ci		fragment ""
3536e5c31af7Sopenharmony_ci			#version 300 es
3537e5c31af7Sopenharmony_ci			precision highp float;
3538e5c31af7Sopenharmony_ci
3539e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
3540e5c31af7Sopenharmony_ci
3541e5c31af7Sopenharmony_ci			void main()
3542e5c31af7Sopenharmony_ci			{
3543e5c31af7Sopenharmony_ci				o_color = vec4(1.0);
3544e5c31af7Sopenharmony_ci			}
3545e5c31af7Sopenharmony_ci		""
3546e5c31af7Sopenharmony_ci	end
3547e5c31af7Sopenharmony_ci	case empty_member_layout_fragment
3548e5c31af7Sopenharmony_ci		version 300 es
3549e5c31af7Sopenharmony_ci		expect compile_fail
3550e5c31af7Sopenharmony_ci
3551e5c31af7Sopenharmony_ci		vertex ""
3552e5c31af7Sopenharmony_ci			#version 300 es
3553e5c31af7Sopenharmony_ci			precision highp float;
3554e5c31af7Sopenharmony_ci
3555e5c31af7Sopenharmony_ci			in vec4 a_pos;
3556e5c31af7Sopenharmony_ci
3557e5c31af7Sopenharmony_ci			void main()
3558e5c31af7Sopenharmony_ci			{
3559e5c31af7Sopenharmony_ci				gl_Position = a_pos;
3560e5c31af7Sopenharmony_ci			}
3561e5c31af7Sopenharmony_ci		""
3562e5c31af7Sopenharmony_ci
3563e5c31af7Sopenharmony_ci		fragment ""
3564e5c31af7Sopenharmony_ci			#version 300 es
3565e5c31af7Sopenharmony_ci			precision highp float;
3566e5c31af7Sopenharmony_ci
3567e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
3568e5c31af7Sopenharmony_ci
3569e5c31af7Sopenharmony_ci			uniform UniformBlock
3570e5c31af7Sopenharmony_ci			{
3571e5c31af7Sopenharmony_ci				layout() vec4 uniformMember;
3572e5c31af7Sopenharmony_ci			} uniformBlock;
3573e5c31af7Sopenharmony_ci
3574e5c31af7Sopenharmony_ci			void main()
3575e5c31af7Sopenharmony_ci			{
3576e5c31af7Sopenharmony_ci				o_color = uniformBlock.uniformMember;
3577e5c31af7Sopenharmony_ci			}
3578e5c31af7Sopenharmony_ci		""
3579e5c31af7Sopenharmony_ci	end
3580e5c31af7Sopenharmony_ci	case empty_global_layout_vertex
3581e5c31af7Sopenharmony_ci		version 300 es
3582e5c31af7Sopenharmony_ci		expect compile_fail
3583e5c31af7Sopenharmony_ci
3584e5c31af7Sopenharmony_ci		vertex ""
3585e5c31af7Sopenharmony_ci			#version 300 es
3586e5c31af7Sopenharmony_ci			precision highp float;
3587e5c31af7Sopenharmony_ci
3588e5c31af7Sopenharmony_ci			layout() uniform;
3589e5c31af7Sopenharmony_ci
3590e5c31af7Sopenharmony_ci
3591e5c31af7Sopenharmony_ci
3592e5c31af7Sopenharmony_ci			uniform UniformBlock
3593e5c31af7Sopenharmony_ci			{
3594e5c31af7Sopenharmony_ci				vec4 uniformMember;
3595e5c31af7Sopenharmony_ci			} uniformBlock;
3596e5c31af7Sopenharmony_ci
3597e5c31af7Sopenharmony_ci			void main()
3598e5c31af7Sopenharmony_ci			{
3599e5c31af7Sopenharmony_ci				gl_Position = uniformBlock.uniformMember;
3600e5c31af7Sopenharmony_ci			}
3601e5c31af7Sopenharmony_ci		""
3602e5c31af7Sopenharmony_ci
3603e5c31af7Sopenharmony_ci		fragment ""
3604e5c31af7Sopenharmony_ci			#version 300 es
3605e5c31af7Sopenharmony_ci			precision highp float;
3606e5c31af7Sopenharmony_ci
3607e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
3608e5c31af7Sopenharmony_ci
3609e5c31af7Sopenharmony_ci			void main()
3610e5c31af7Sopenharmony_ci			{
3611e5c31af7Sopenharmony_ci				o_color = vec4(1.0);
3612e5c31af7Sopenharmony_ci			}
3613e5c31af7Sopenharmony_ci		""
3614e5c31af7Sopenharmony_ci	end
3615e5c31af7Sopenharmony_ci	case empty_global_layout_fragment
3616e5c31af7Sopenharmony_ci		version 300 es
3617e5c31af7Sopenharmony_ci		expect compile_fail
3618e5c31af7Sopenharmony_ci
3619e5c31af7Sopenharmony_ci		vertex ""
3620e5c31af7Sopenharmony_ci			#version 300 es
3621e5c31af7Sopenharmony_ci			precision highp float;
3622e5c31af7Sopenharmony_ci
3623e5c31af7Sopenharmony_ci			in vec4 a_pos;
3624e5c31af7Sopenharmony_ci
3625e5c31af7Sopenharmony_ci			void main()
3626e5c31af7Sopenharmony_ci			{
3627e5c31af7Sopenharmony_ci				gl_Position = a_pos;
3628e5c31af7Sopenharmony_ci			}
3629e5c31af7Sopenharmony_ci		""
3630e5c31af7Sopenharmony_ci
3631e5c31af7Sopenharmony_ci		fragment ""
3632e5c31af7Sopenharmony_ci			#version 300 es
3633e5c31af7Sopenharmony_ci			precision highp float;
3634e5c31af7Sopenharmony_ci
3635e5c31af7Sopenharmony_ci			layout() uniform;
3636e5c31af7Sopenharmony_ci
3637e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
3638e5c31af7Sopenharmony_ci
3639e5c31af7Sopenharmony_ci			uniform UniformBlock
3640e5c31af7Sopenharmony_ci			{
3641e5c31af7Sopenharmony_ci				vec4 uniformMember;
3642e5c31af7Sopenharmony_ci			} uniformBlock;
3643e5c31af7Sopenharmony_ci
3644e5c31af7Sopenharmony_ci			void main()
3645e5c31af7Sopenharmony_ci			{
3646e5c31af7Sopenharmony_ci				o_color = uniformBlock.uniformMember;
3647e5c31af7Sopenharmony_ci			}
3648e5c31af7Sopenharmony_ci		""
3649e5c31af7Sopenharmony_ci	end
3650e5c31af7Sopenharmony_ci	case structure_definition_vertex
3651e5c31af7Sopenharmony_ci		version 300 es
3652e5c31af7Sopenharmony_ci		expect compile_fail
3653e5c31af7Sopenharmony_ci
3654e5c31af7Sopenharmony_ci		vertex ""
3655e5c31af7Sopenharmony_ci			#version 300 es
3656e5c31af7Sopenharmony_ci			precision highp float;
3657e5c31af7Sopenharmony_ci
3658e5c31af7Sopenharmony_ci
3659e5c31af7Sopenharmony_ci
3660e5c31af7Sopenharmony_ci			uniform UniformBlock
3661e5c31af7Sopenharmony_ci			{
3662e5c31af7Sopenharmony_ci				struct A
3663e5c31af7Sopenharmony_ci				{
3664e5c31af7Sopenharmony_ci					vec4 uniformMember;
3665e5c31af7Sopenharmony_ci				} a;
3666e5c31af7Sopenharmony_ci			} uniformBlock;
3667e5c31af7Sopenharmony_ci
3668e5c31af7Sopenharmony_ci			void main()
3669e5c31af7Sopenharmony_ci			{
3670e5c31af7Sopenharmony_ci				gl_Position = uniformBlock.a.uniformMember;
3671e5c31af7Sopenharmony_ci			}
3672e5c31af7Sopenharmony_ci		""
3673e5c31af7Sopenharmony_ci
3674e5c31af7Sopenharmony_ci		fragment ""
3675e5c31af7Sopenharmony_ci			#version 300 es
3676e5c31af7Sopenharmony_ci			precision highp float;
3677e5c31af7Sopenharmony_ci
3678e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
3679e5c31af7Sopenharmony_ci
3680e5c31af7Sopenharmony_ci			void main()
3681e5c31af7Sopenharmony_ci			{
3682e5c31af7Sopenharmony_ci				o_color = vec4(1.0);
3683e5c31af7Sopenharmony_ci			}
3684e5c31af7Sopenharmony_ci		""
3685e5c31af7Sopenharmony_ci	end
3686e5c31af7Sopenharmony_ci	case structure_definition_fragment
3687e5c31af7Sopenharmony_ci		version 300 es
3688e5c31af7Sopenharmony_ci		expect compile_fail
3689e5c31af7Sopenharmony_ci
3690e5c31af7Sopenharmony_ci		vertex ""
3691e5c31af7Sopenharmony_ci			#version 300 es
3692e5c31af7Sopenharmony_ci			precision highp float;
3693e5c31af7Sopenharmony_ci
3694e5c31af7Sopenharmony_ci			in vec4 a_pos;
3695e5c31af7Sopenharmony_ci
3696e5c31af7Sopenharmony_ci			void main()
3697e5c31af7Sopenharmony_ci			{
3698e5c31af7Sopenharmony_ci				gl_Position = a_pos;
3699e5c31af7Sopenharmony_ci			}
3700e5c31af7Sopenharmony_ci		""
3701e5c31af7Sopenharmony_ci
3702e5c31af7Sopenharmony_ci		fragment ""
3703e5c31af7Sopenharmony_ci			#version 300 es
3704e5c31af7Sopenharmony_ci			precision highp float;
3705e5c31af7Sopenharmony_ci
3706e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
3707e5c31af7Sopenharmony_ci
3708e5c31af7Sopenharmony_ci			uniform UniformBlock
3709e5c31af7Sopenharmony_ci			{
3710e5c31af7Sopenharmony_ci				struct A
3711e5c31af7Sopenharmony_ci				{
3712e5c31af7Sopenharmony_ci					vec4 uniformMember;
3713e5c31af7Sopenharmony_ci				} a;
3714e5c31af7Sopenharmony_ci			} uniformBlock;
3715e5c31af7Sopenharmony_ci
3716e5c31af7Sopenharmony_ci			void main()
3717e5c31af7Sopenharmony_ci			{
3718e5c31af7Sopenharmony_ci				o_color = uniformBlock.a.uniformMember;
3719e5c31af7Sopenharmony_ci			}
3720e5c31af7Sopenharmony_ci		""
3721e5c31af7Sopenharmony_ci	end
3722e5c31af7Sopenharmony_ci	case member_layout_shared_vertex
3723e5c31af7Sopenharmony_ci		version 300 es
3724e5c31af7Sopenharmony_ci		expect compile_fail
3725e5c31af7Sopenharmony_ci
3726e5c31af7Sopenharmony_ci		vertex ""
3727e5c31af7Sopenharmony_ci			#version 300 es
3728e5c31af7Sopenharmony_ci			precision highp float;
3729e5c31af7Sopenharmony_ci
3730e5c31af7Sopenharmony_ci
3731e5c31af7Sopenharmony_ci
3732e5c31af7Sopenharmony_ci			uniform UniformBlock
3733e5c31af7Sopenharmony_ci			{
3734e5c31af7Sopenharmony_ci				layout(shared) vec4 uniformMember;
3735e5c31af7Sopenharmony_ci			} uniformBlock;
3736e5c31af7Sopenharmony_ci
3737e5c31af7Sopenharmony_ci			void main()
3738e5c31af7Sopenharmony_ci			{
3739e5c31af7Sopenharmony_ci				gl_Position = uniformBlock.uniformMember;
3740e5c31af7Sopenharmony_ci			}
3741e5c31af7Sopenharmony_ci		""
3742e5c31af7Sopenharmony_ci
3743e5c31af7Sopenharmony_ci		fragment ""
3744e5c31af7Sopenharmony_ci			#version 300 es
3745e5c31af7Sopenharmony_ci			precision highp float;
3746e5c31af7Sopenharmony_ci
3747e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
3748e5c31af7Sopenharmony_ci
3749e5c31af7Sopenharmony_ci			void main()
3750e5c31af7Sopenharmony_ci			{
3751e5c31af7Sopenharmony_ci				o_color = vec4(1.0);
3752e5c31af7Sopenharmony_ci			}
3753e5c31af7Sopenharmony_ci		""
3754e5c31af7Sopenharmony_ci	end
3755e5c31af7Sopenharmony_ci	case member_layout_shared_fragment
3756e5c31af7Sopenharmony_ci		version 300 es
3757e5c31af7Sopenharmony_ci		expect compile_fail
3758e5c31af7Sopenharmony_ci
3759e5c31af7Sopenharmony_ci		vertex ""
3760e5c31af7Sopenharmony_ci			#version 300 es
3761e5c31af7Sopenharmony_ci			precision highp float;
3762e5c31af7Sopenharmony_ci
3763e5c31af7Sopenharmony_ci			in vec4 a_pos;
3764e5c31af7Sopenharmony_ci
3765e5c31af7Sopenharmony_ci			void main()
3766e5c31af7Sopenharmony_ci			{
3767e5c31af7Sopenharmony_ci				gl_Position = a_pos;
3768e5c31af7Sopenharmony_ci			}
3769e5c31af7Sopenharmony_ci		""
3770e5c31af7Sopenharmony_ci
3771e5c31af7Sopenharmony_ci		fragment ""
3772e5c31af7Sopenharmony_ci			#version 300 es
3773e5c31af7Sopenharmony_ci			precision highp float;
3774e5c31af7Sopenharmony_ci
3775e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
3776e5c31af7Sopenharmony_ci
3777e5c31af7Sopenharmony_ci			uniform UniformBlock
3778e5c31af7Sopenharmony_ci			{
3779e5c31af7Sopenharmony_ci				layout(shared) vec4 uniformMember;
3780e5c31af7Sopenharmony_ci			} uniformBlock;
3781e5c31af7Sopenharmony_ci
3782e5c31af7Sopenharmony_ci			void main()
3783e5c31af7Sopenharmony_ci			{
3784e5c31af7Sopenharmony_ci				o_color = uniformBlock.uniformMember;
3785e5c31af7Sopenharmony_ci			}
3786e5c31af7Sopenharmony_ci		""
3787e5c31af7Sopenharmony_ci	end
3788e5c31af7Sopenharmony_ci	case member_layout_packed_vertex
3789e5c31af7Sopenharmony_ci		version 300 es
3790e5c31af7Sopenharmony_ci		expect compile_fail
3791e5c31af7Sopenharmony_ci
3792e5c31af7Sopenharmony_ci		vertex ""
3793e5c31af7Sopenharmony_ci			#version 300 es
3794e5c31af7Sopenharmony_ci			precision highp float;
3795e5c31af7Sopenharmony_ci
3796e5c31af7Sopenharmony_ci
3797e5c31af7Sopenharmony_ci
3798e5c31af7Sopenharmony_ci			uniform UniformBlock
3799e5c31af7Sopenharmony_ci			{
3800e5c31af7Sopenharmony_ci				layout(packed) vec4 uniformMember;
3801e5c31af7Sopenharmony_ci			} uniformBlock;
3802e5c31af7Sopenharmony_ci
3803e5c31af7Sopenharmony_ci			void main()
3804e5c31af7Sopenharmony_ci			{
3805e5c31af7Sopenharmony_ci				gl_Position = uniformBlock.uniformMember;
3806e5c31af7Sopenharmony_ci			}
3807e5c31af7Sopenharmony_ci		""
3808e5c31af7Sopenharmony_ci
3809e5c31af7Sopenharmony_ci		fragment ""
3810e5c31af7Sopenharmony_ci			#version 300 es
3811e5c31af7Sopenharmony_ci			precision highp float;
3812e5c31af7Sopenharmony_ci
3813e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
3814e5c31af7Sopenharmony_ci
3815e5c31af7Sopenharmony_ci			void main()
3816e5c31af7Sopenharmony_ci			{
3817e5c31af7Sopenharmony_ci				o_color = vec4(1.0);
3818e5c31af7Sopenharmony_ci			}
3819e5c31af7Sopenharmony_ci		""
3820e5c31af7Sopenharmony_ci	end
3821e5c31af7Sopenharmony_ci	case member_layout_packed_fragment
3822e5c31af7Sopenharmony_ci		version 300 es
3823e5c31af7Sopenharmony_ci		expect compile_fail
3824e5c31af7Sopenharmony_ci
3825e5c31af7Sopenharmony_ci		vertex ""
3826e5c31af7Sopenharmony_ci			#version 300 es
3827e5c31af7Sopenharmony_ci			precision highp float;
3828e5c31af7Sopenharmony_ci
3829e5c31af7Sopenharmony_ci			in vec4 a_pos;
3830e5c31af7Sopenharmony_ci
3831e5c31af7Sopenharmony_ci			void main()
3832e5c31af7Sopenharmony_ci			{
3833e5c31af7Sopenharmony_ci				gl_Position = a_pos;
3834e5c31af7Sopenharmony_ci			}
3835e5c31af7Sopenharmony_ci		""
3836e5c31af7Sopenharmony_ci
3837e5c31af7Sopenharmony_ci		fragment ""
3838e5c31af7Sopenharmony_ci			#version 300 es
3839e5c31af7Sopenharmony_ci			precision highp float;
3840e5c31af7Sopenharmony_ci
3841e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
3842e5c31af7Sopenharmony_ci
3843e5c31af7Sopenharmony_ci			uniform UniformBlock
3844e5c31af7Sopenharmony_ci			{
3845e5c31af7Sopenharmony_ci				layout(packed) vec4 uniformMember;
3846e5c31af7Sopenharmony_ci			} uniformBlock;
3847e5c31af7Sopenharmony_ci
3848e5c31af7Sopenharmony_ci			void main()
3849e5c31af7Sopenharmony_ci			{
3850e5c31af7Sopenharmony_ci				o_color = uniformBlock.uniformMember;
3851e5c31af7Sopenharmony_ci			}
3852e5c31af7Sopenharmony_ci		""
3853e5c31af7Sopenharmony_ci	end
3854e5c31af7Sopenharmony_ci	case member_layout_std140_vertex
3855e5c31af7Sopenharmony_ci		version 300 es
3856e5c31af7Sopenharmony_ci		expect compile_fail
3857e5c31af7Sopenharmony_ci
3858e5c31af7Sopenharmony_ci		vertex ""
3859e5c31af7Sopenharmony_ci			#version 300 es
3860e5c31af7Sopenharmony_ci			precision highp float;
3861e5c31af7Sopenharmony_ci
3862e5c31af7Sopenharmony_ci
3863e5c31af7Sopenharmony_ci
3864e5c31af7Sopenharmony_ci			uniform UniformBlock
3865e5c31af7Sopenharmony_ci			{
3866e5c31af7Sopenharmony_ci				layout(std140) vec4 uniformMember;
3867e5c31af7Sopenharmony_ci			} uniformBlock;
3868e5c31af7Sopenharmony_ci
3869e5c31af7Sopenharmony_ci			void main()
3870e5c31af7Sopenharmony_ci			{
3871e5c31af7Sopenharmony_ci				gl_Position = uniformBlock.uniformMember;
3872e5c31af7Sopenharmony_ci			}
3873e5c31af7Sopenharmony_ci		""
3874e5c31af7Sopenharmony_ci
3875e5c31af7Sopenharmony_ci		fragment ""
3876e5c31af7Sopenharmony_ci			#version 300 es
3877e5c31af7Sopenharmony_ci			precision highp float;
3878e5c31af7Sopenharmony_ci
3879e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
3880e5c31af7Sopenharmony_ci
3881e5c31af7Sopenharmony_ci			void main()
3882e5c31af7Sopenharmony_ci			{
3883e5c31af7Sopenharmony_ci				o_color = vec4(1.0);
3884e5c31af7Sopenharmony_ci			}
3885e5c31af7Sopenharmony_ci		""
3886e5c31af7Sopenharmony_ci	end
3887e5c31af7Sopenharmony_ci	case member_layout_std140_fragment
3888e5c31af7Sopenharmony_ci		version 300 es
3889e5c31af7Sopenharmony_ci		expect compile_fail
3890e5c31af7Sopenharmony_ci
3891e5c31af7Sopenharmony_ci		vertex ""
3892e5c31af7Sopenharmony_ci			#version 300 es
3893e5c31af7Sopenharmony_ci			precision highp float;
3894e5c31af7Sopenharmony_ci
3895e5c31af7Sopenharmony_ci			in vec4 a_pos;
3896e5c31af7Sopenharmony_ci
3897e5c31af7Sopenharmony_ci			void main()
3898e5c31af7Sopenharmony_ci			{
3899e5c31af7Sopenharmony_ci				gl_Position = a_pos;
3900e5c31af7Sopenharmony_ci			}
3901e5c31af7Sopenharmony_ci		""
3902e5c31af7Sopenharmony_ci
3903e5c31af7Sopenharmony_ci		fragment ""
3904e5c31af7Sopenharmony_ci			#version 300 es
3905e5c31af7Sopenharmony_ci			precision highp float;
3906e5c31af7Sopenharmony_ci
3907e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
3908e5c31af7Sopenharmony_ci
3909e5c31af7Sopenharmony_ci			uniform UniformBlock
3910e5c31af7Sopenharmony_ci			{
3911e5c31af7Sopenharmony_ci				layout(std140) vec4 uniformMember;
3912e5c31af7Sopenharmony_ci			} uniformBlock;
3913e5c31af7Sopenharmony_ci
3914e5c31af7Sopenharmony_ci			void main()
3915e5c31af7Sopenharmony_ci			{
3916e5c31af7Sopenharmony_ci				o_color = uniformBlock.uniformMember;
3917e5c31af7Sopenharmony_ci			}
3918e5c31af7Sopenharmony_ci		""
3919e5c31af7Sopenharmony_ci	end
3920e5c31af7Sopenharmony_ci	case missing_block_name_vertex
3921e5c31af7Sopenharmony_ci		version 300 es
3922e5c31af7Sopenharmony_ci		expect compile_fail
3923e5c31af7Sopenharmony_ci
3924e5c31af7Sopenharmony_ci		vertex ""
3925e5c31af7Sopenharmony_ci			#version 300 es
3926e5c31af7Sopenharmony_ci			precision highp float;
3927e5c31af7Sopenharmony_ci
3928e5c31af7Sopenharmony_ci
3929e5c31af7Sopenharmony_ci
3930e5c31af7Sopenharmony_ci			uniform
3931e5c31af7Sopenharmony_ci			{
3932e5c31af7Sopenharmony_ci				vec4 uniformMember;
3933e5c31af7Sopenharmony_ci			} uniformBlock;
3934e5c31af7Sopenharmony_ci
3935e5c31af7Sopenharmony_ci			void main()
3936e5c31af7Sopenharmony_ci			{
3937e5c31af7Sopenharmony_ci				gl_Position = uniformBlock.uniformMember;
3938e5c31af7Sopenharmony_ci			}
3939e5c31af7Sopenharmony_ci		""
3940e5c31af7Sopenharmony_ci
3941e5c31af7Sopenharmony_ci		fragment ""
3942e5c31af7Sopenharmony_ci			#version 300 es
3943e5c31af7Sopenharmony_ci			precision highp float;
3944e5c31af7Sopenharmony_ci
3945e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
3946e5c31af7Sopenharmony_ci
3947e5c31af7Sopenharmony_ci			void main()
3948e5c31af7Sopenharmony_ci			{
3949e5c31af7Sopenharmony_ci				o_color = vec4(1.0);
3950e5c31af7Sopenharmony_ci			}
3951e5c31af7Sopenharmony_ci		""
3952e5c31af7Sopenharmony_ci	end
3953e5c31af7Sopenharmony_ci	case missing_block_name_fragment
3954e5c31af7Sopenharmony_ci		version 300 es
3955e5c31af7Sopenharmony_ci		expect compile_fail
3956e5c31af7Sopenharmony_ci
3957e5c31af7Sopenharmony_ci		vertex ""
3958e5c31af7Sopenharmony_ci			#version 300 es
3959e5c31af7Sopenharmony_ci			precision highp float;
3960e5c31af7Sopenharmony_ci
3961e5c31af7Sopenharmony_ci			in vec4 a_pos;
3962e5c31af7Sopenharmony_ci
3963e5c31af7Sopenharmony_ci			void main()
3964e5c31af7Sopenharmony_ci			{
3965e5c31af7Sopenharmony_ci				gl_Position = a_pos;
3966e5c31af7Sopenharmony_ci			}
3967e5c31af7Sopenharmony_ci		""
3968e5c31af7Sopenharmony_ci
3969e5c31af7Sopenharmony_ci		fragment ""
3970e5c31af7Sopenharmony_ci			#version 300 es
3971e5c31af7Sopenharmony_ci			precision highp float;
3972e5c31af7Sopenharmony_ci
3973e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
3974e5c31af7Sopenharmony_ci
3975e5c31af7Sopenharmony_ci			uniform
3976e5c31af7Sopenharmony_ci			{
3977e5c31af7Sopenharmony_ci				vec4 uniformMember;
3978e5c31af7Sopenharmony_ci			} uniformBlock;
3979e5c31af7Sopenharmony_ci
3980e5c31af7Sopenharmony_ci			void main()
3981e5c31af7Sopenharmony_ci			{
3982e5c31af7Sopenharmony_ci				o_color = uniformBlock.uniformMember;
3983e5c31af7Sopenharmony_ci			}
3984e5c31af7Sopenharmony_ci		""
3985e5c31af7Sopenharmony_ci	end
3986e5c31af7Sopenharmony_ci	case invalid_number_block_name_vertex
3987e5c31af7Sopenharmony_ci		version 300 es
3988e5c31af7Sopenharmony_ci		expect compile_fail
3989e5c31af7Sopenharmony_ci
3990e5c31af7Sopenharmony_ci		vertex ""
3991e5c31af7Sopenharmony_ci			#version 300 es
3992e5c31af7Sopenharmony_ci			precision highp float;
3993e5c31af7Sopenharmony_ci
3994e5c31af7Sopenharmony_ci
3995e5c31af7Sopenharmony_ci
3996e5c31af7Sopenharmony_ci			uniform 0UniformBlock
3997e5c31af7Sopenharmony_ci			{
3998e5c31af7Sopenharmony_ci				vec4 uniformMember;
3999e5c31af7Sopenharmony_ci			} uniformBlock;
4000e5c31af7Sopenharmony_ci
4001e5c31af7Sopenharmony_ci			void main()
4002e5c31af7Sopenharmony_ci			{
4003e5c31af7Sopenharmony_ci				gl_Position = uniformBlock.uniformMember;
4004e5c31af7Sopenharmony_ci			}
4005e5c31af7Sopenharmony_ci		""
4006e5c31af7Sopenharmony_ci
4007e5c31af7Sopenharmony_ci		fragment ""
4008e5c31af7Sopenharmony_ci			#version 300 es
4009e5c31af7Sopenharmony_ci			precision highp float;
4010e5c31af7Sopenharmony_ci
4011e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
4012e5c31af7Sopenharmony_ci
4013e5c31af7Sopenharmony_ci			void main()
4014e5c31af7Sopenharmony_ci			{
4015e5c31af7Sopenharmony_ci				o_color = vec4(1.0);
4016e5c31af7Sopenharmony_ci			}
4017e5c31af7Sopenharmony_ci		""
4018e5c31af7Sopenharmony_ci	end
4019e5c31af7Sopenharmony_ci	case invalid_number_block_name_fragment
4020e5c31af7Sopenharmony_ci		version 300 es
4021e5c31af7Sopenharmony_ci		expect compile_fail
4022e5c31af7Sopenharmony_ci
4023e5c31af7Sopenharmony_ci		vertex ""
4024e5c31af7Sopenharmony_ci			#version 300 es
4025e5c31af7Sopenharmony_ci			precision highp float;
4026e5c31af7Sopenharmony_ci
4027e5c31af7Sopenharmony_ci			in vec4 a_pos;
4028e5c31af7Sopenharmony_ci
4029e5c31af7Sopenharmony_ci			void main()
4030e5c31af7Sopenharmony_ci			{
4031e5c31af7Sopenharmony_ci				gl_Position = a_pos;
4032e5c31af7Sopenharmony_ci			}
4033e5c31af7Sopenharmony_ci		""
4034e5c31af7Sopenharmony_ci
4035e5c31af7Sopenharmony_ci		fragment ""
4036e5c31af7Sopenharmony_ci			#version 300 es
4037e5c31af7Sopenharmony_ci			precision highp float;
4038e5c31af7Sopenharmony_ci
4039e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
4040e5c31af7Sopenharmony_ci
4041e5c31af7Sopenharmony_ci			uniform 0UniformBlock
4042e5c31af7Sopenharmony_ci			{
4043e5c31af7Sopenharmony_ci				vec4 uniformMember;
4044e5c31af7Sopenharmony_ci			} uniformBlock;
4045e5c31af7Sopenharmony_ci
4046e5c31af7Sopenharmony_ci			void main()
4047e5c31af7Sopenharmony_ci			{
4048e5c31af7Sopenharmony_ci				o_color = uniformBlock.uniformMember;
4049e5c31af7Sopenharmony_ci			}
4050e5c31af7Sopenharmony_ci		""
4051e5c31af7Sopenharmony_ci	end
4052e5c31af7Sopenharmony_ci	case invalid_hash_block_name_vertex
4053e5c31af7Sopenharmony_ci		version 300 es
4054e5c31af7Sopenharmony_ci		expect compile_fail
4055e5c31af7Sopenharmony_ci
4056e5c31af7Sopenharmony_ci		vertex ""
4057e5c31af7Sopenharmony_ci			#version 300 es
4058e5c31af7Sopenharmony_ci			precision highp float;
4059e5c31af7Sopenharmony_ci
4060e5c31af7Sopenharmony_ci
4061e5c31af7Sopenharmony_ci
4062e5c31af7Sopenharmony_ci			uniform #UniformBlock
4063e5c31af7Sopenharmony_ci			{
4064e5c31af7Sopenharmony_ci				vec4 uniformMember;
4065e5c31af7Sopenharmony_ci			} uniformBlock;
4066e5c31af7Sopenharmony_ci
4067e5c31af7Sopenharmony_ci			void main()
4068e5c31af7Sopenharmony_ci			{
4069e5c31af7Sopenharmony_ci				gl_Position = uniformBlock.uniformMember;
4070e5c31af7Sopenharmony_ci			}
4071e5c31af7Sopenharmony_ci		""
4072e5c31af7Sopenharmony_ci
4073e5c31af7Sopenharmony_ci		fragment ""
4074e5c31af7Sopenharmony_ci			#version 300 es
4075e5c31af7Sopenharmony_ci			precision highp float;
4076e5c31af7Sopenharmony_ci
4077e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
4078e5c31af7Sopenharmony_ci
4079e5c31af7Sopenharmony_ci			void main()
4080e5c31af7Sopenharmony_ci			{
4081e5c31af7Sopenharmony_ci				o_color = vec4(1.0);
4082e5c31af7Sopenharmony_ci			}
4083e5c31af7Sopenharmony_ci		""
4084e5c31af7Sopenharmony_ci	end
4085e5c31af7Sopenharmony_ci	case invalid_hash_block_name_fragment
4086e5c31af7Sopenharmony_ci		version 300 es
4087e5c31af7Sopenharmony_ci		expect compile_fail
4088e5c31af7Sopenharmony_ci
4089e5c31af7Sopenharmony_ci		vertex ""
4090e5c31af7Sopenharmony_ci			#version 300 es
4091e5c31af7Sopenharmony_ci			precision highp float;
4092e5c31af7Sopenharmony_ci
4093e5c31af7Sopenharmony_ci			in vec4 a_pos;
4094e5c31af7Sopenharmony_ci
4095e5c31af7Sopenharmony_ci			void main()
4096e5c31af7Sopenharmony_ci			{
4097e5c31af7Sopenharmony_ci				gl_Position = a_pos;
4098e5c31af7Sopenharmony_ci			}
4099e5c31af7Sopenharmony_ci		""
4100e5c31af7Sopenharmony_ci
4101e5c31af7Sopenharmony_ci		fragment ""
4102e5c31af7Sopenharmony_ci			#version 300 es
4103e5c31af7Sopenharmony_ci			precision highp float;
4104e5c31af7Sopenharmony_ci
4105e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
4106e5c31af7Sopenharmony_ci
4107e5c31af7Sopenharmony_ci			uniform #UniformBlock
4108e5c31af7Sopenharmony_ci			{
4109e5c31af7Sopenharmony_ci				vec4 uniformMember;
4110e5c31af7Sopenharmony_ci			} uniformBlock;
4111e5c31af7Sopenharmony_ci
4112e5c31af7Sopenharmony_ci			void main()
4113e5c31af7Sopenharmony_ci			{
4114e5c31af7Sopenharmony_ci				o_color = uniformBlock.uniformMember;
4115e5c31af7Sopenharmony_ci			}
4116e5c31af7Sopenharmony_ci		""
4117e5c31af7Sopenharmony_ci	end
4118e5c31af7Sopenharmony_ci	case invalid_dollar_block_name_vertex
4119e5c31af7Sopenharmony_ci		version 300 es
4120e5c31af7Sopenharmony_ci		expect compile_fail
4121e5c31af7Sopenharmony_ci
4122e5c31af7Sopenharmony_ci		vertex ""
4123e5c31af7Sopenharmony_ci			#version 300 es
4124e5c31af7Sopenharmony_ci			precision highp float;
4125e5c31af7Sopenharmony_ci
4126e5c31af7Sopenharmony_ci
4127e5c31af7Sopenharmony_ci
4128e5c31af7Sopenharmony_ci			uniform $UniformBlock
4129e5c31af7Sopenharmony_ci			{
4130e5c31af7Sopenharmony_ci				vec4 uniformMember;
4131e5c31af7Sopenharmony_ci			} uniformBlock;
4132e5c31af7Sopenharmony_ci
4133e5c31af7Sopenharmony_ci			void main()
4134e5c31af7Sopenharmony_ci			{
4135e5c31af7Sopenharmony_ci				gl_Position = uniformBlock.uniformMember;
4136e5c31af7Sopenharmony_ci			}
4137e5c31af7Sopenharmony_ci		""
4138e5c31af7Sopenharmony_ci
4139e5c31af7Sopenharmony_ci		fragment ""
4140e5c31af7Sopenharmony_ci			#version 300 es
4141e5c31af7Sopenharmony_ci			precision highp float;
4142e5c31af7Sopenharmony_ci
4143e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
4144e5c31af7Sopenharmony_ci
4145e5c31af7Sopenharmony_ci			void main()
4146e5c31af7Sopenharmony_ci			{
4147e5c31af7Sopenharmony_ci				o_color = vec4(1.0);
4148e5c31af7Sopenharmony_ci			}
4149e5c31af7Sopenharmony_ci		""
4150e5c31af7Sopenharmony_ci	end
4151e5c31af7Sopenharmony_ci	case invalid_dollar_block_name_fragment
4152e5c31af7Sopenharmony_ci		version 300 es
4153e5c31af7Sopenharmony_ci		expect compile_fail
4154e5c31af7Sopenharmony_ci
4155e5c31af7Sopenharmony_ci		vertex ""
4156e5c31af7Sopenharmony_ci			#version 300 es
4157e5c31af7Sopenharmony_ci			precision highp float;
4158e5c31af7Sopenharmony_ci
4159e5c31af7Sopenharmony_ci			in vec4 a_pos;
4160e5c31af7Sopenharmony_ci
4161e5c31af7Sopenharmony_ci			void main()
4162e5c31af7Sopenharmony_ci			{
4163e5c31af7Sopenharmony_ci				gl_Position = a_pos;
4164e5c31af7Sopenharmony_ci			}
4165e5c31af7Sopenharmony_ci		""
4166e5c31af7Sopenharmony_ci
4167e5c31af7Sopenharmony_ci		fragment ""
4168e5c31af7Sopenharmony_ci			#version 300 es
4169e5c31af7Sopenharmony_ci			precision highp float;
4170e5c31af7Sopenharmony_ci
4171e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
4172e5c31af7Sopenharmony_ci
4173e5c31af7Sopenharmony_ci			uniform $UniformBlock
4174e5c31af7Sopenharmony_ci			{
4175e5c31af7Sopenharmony_ci				vec4 uniformMember;
4176e5c31af7Sopenharmony_ci			} uniformBlock;
4177e5c31af7Sopenharmony_ci
4178e5c31af7Sopenharmony_ci			void main()
4179e5c31af7Sopenharmony_ci			{
4180e5c31af7Sopenharmony_ci				o_color = uniformBlock.uniformMember;
4181e5c31af7Sopenharmony_ci			}
4182e5c31af7Sopenharmony_ci		""
4183e5c31af7Sopenharmony_ci	end
4184e5c31af7Sopenharmony_ci	case invalid_identifier_block_name_vertex
4185e5c31af7Sopenharmony_ci		version 300 es
4186e5c31af7Sopenharmony_ci		expect compile_fail
4187e5c31af7Sopenharmony_ci
4188e5c31af7Sopenharmony_ci		vertex ""
4189e5c31af7Sopenharmony_ci			#version 300 es
4190e5c31af7Sopenharmony_ci			precision highp float;
4191e5c31af7Sopenharmony_ci
4192e5c31af7Sopenharmony_ci
4193e5c31af7Sopenharmony_ci
4194e5c31af7Sopenharmony_ci			uniform gl_UniformBlock
4195e5c31af7Sopenharmony_ci			{
4196e5c31af7Sopenharmony_ci				vec4 uniformMember;
4197e5c31af7Sopenharmony_ci			} uniformBlock;
4198e5c31af7Sopenharmony_ci
4199e5c31af7Sopenharmony_ci			void main()
4200e5c31af7Sopenharmony_ci			{
4201e5c31af7Sopenharmony_ci				gl_Position = uniformBlock.uniformMember;
4202e5c31af7Sopenharmony_ci			}
4203e5c31af7Sopenharmony_ci		""
4204e5c31af7Sopenharmony_ci
4205e5c31af7Sopenharmony_ci		fragment ""
4206e5c31af7Sopenharmony_ci			#version 300 es
4207e5c31af7Sopenharmony_ci			precision highp float;
4208e5c31af7Sopenharmony_ci
4209e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
4210e5c31af7Sopenharmony_ci
4211e5c31af7Sopenharmony_ci			void main()
4212e5c31af7Sopenharmony_ci			{
4213e5c31af7Sopenharmony_ci				o_color = vec4(1.0);
4214e5c31af7Sopenharmony_ci			}
4215e5c31af7Sopenharmony_ci		""
4216e5c31af7Sopenharmony_ci	end
4217e5c31af7Sopenharmony_ci	case invalid_identifier_block_name_fragment
4218e5c31af7Sopenharmony_ci		version 300 es
4219e5c31af7Sopenharmony_ci		expect compile_fail
4220e5c31af7Sopenharmony_ci
4221e5c31af7Sopenharmony_ci		vertex ""
4222e5c31af7Sopenharmony_ci			#version 300 es
4223e5c31af7Sopenharmony_ci			precision highp float;
4224e5c31af7Sopenharmony_ci
4225e5c31af7Sopenharmony_ci			in vec4 a_pos;
4226e5c31af7Sopenharmony_ci
4227e5c31af7Sopenharmony_ci			void main()
4228e5c31af7Sopenharmony_ci			{
4229e5c31af7Sopenharmony_ci				gl_Position = a_pos;
4230e5c31af7Sopenharmony_ci			}
4231e5c31af7Sopenharmony_ci		""
4232e5c31af7Sopenharmony_ci
4233e5c31af7Sopenharmony_ci		fragment ""
4234e5c31af7Sopenharmony_ci			#version 300 es
4235e5c31af7Sopenharmony_ci			precision highp float;
4236e5c31af7Sopenharmony_ci
4237e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
4238e5c31af7Sopenharmony_ci
4239e5c31af7Sopenharmony_ci			uniform gl_UniformBlock
4240e5c31af7Sopenharmony_ci			{
4241e5c31af7Sopenharmony_ci				vec4 uniformMember;
4242e5c31af7Sopenharmony_ci			} uniformBlock;
4243e5c31af7Sopenharmony_ci
4244e5c31af7Sopenharmony_ci			void main()
4245e5c31af7Sopenharmony_ci			{
4246e5c31af7Sopenharmony_ci				o_color = uniformBlock.uniformMember;
4247e5c31af7Sopenharmony_ci			}
4248e5c31af7Sopenharmony_ci		""
4249e5c31af7Sopenharmony_ci	end
4250e5c31af7Sopenharmony_ci	case too_long_block_name_vertex
4251e5c31af7Sopenharmony_ci		version 300 es
4252e5c31af7Sopenharmony_ci		expect compile_fail
4253e5c31af7Sopenharmony_ci
4254e5c31af7Sopenharmony_ci		vertex ""
4255e5c31af7Sopenharmony_ci			#version 300 es
4256e5c31af7Sopenharmony_ci			precision highp float;
4257e5c31af7Sopenharmony_ci
4258e5c31af7Sopenharmony_ci
4259e5c31af7Sopenharmony_ci
4260e5c31af7Sopenharmony_ci			// Total of 1025 characters
4261e5c31af7Sopenharmony_ci			uniform aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
4262e5c31af7Sopenharmony_ci			{
4263e5c31af7Sopenharmony_ci				vec4 uniformMember;
4264e5c31af7Sopenharmony_ci			} uniformBlock;
4265e5c31af7Sopenharmony_ci
4266e5c31af7Sopenharmony_ci			void main()
4267e5c31af7Sopenharmony_ci			{
4268e5c31af7Sopenharmony_ci				gl_Position = uniformBlock.uniformMember;
4269e5c31af7Sopenharmony_ci			}
4270e5c31af7Sopenharmony_ci		""
4271e5c31af7Sopenharmony_ci
4272e5c31af7Sopenharmony_ci		fragment ""
4273e5c31af7Sopenharmony_ci			#version 300 es
4274e5c31af7Sopenharmony_ci			precision highp float;
4275e5c31af7Sopenharmony_ci
4276e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
4277e5c31af7Sopenharmony_ci
4278e5c31af7Sopenharmony_ci			void main()
4279e5c31af7Sopenharmony_ci			{
4280e5c31af7Sopenharmony_ci				o_color = vec4(1.0);
4281e5c31af7Sopenharmony_ci			}
4282e5c31af7Sopenharmony_ci		""
4283e5c31af7Sopenharmony_ci	end
4284e5c31af7Sopenharmony_ci	case too_long_block_name_fragment
4285e5c31af7Sopenharmony_ci		version 300 es
4286e5c31af7Sopenharmony_ci		expect compile_fail
4287e5c31af7Sopenharmony_ci
4288e5c31af7Sopenharmony_ci		vertex ""
4289e5c31af7Sopenharmony_ci			#version 300 es
4290e5c31af7Sopenharmony_ci			precision highp float;
4291e5c31af7Sopenharmony_ci
4292e5c31af7Sopenharmony_ci			in vec4 a_pos;
4293e5c31af7Sopenharmony_ci
4294e5c31af7Sopenharmony_ci			void main()
4295e5c31af7Sopenharmony_ci			{
4296e5c31af7Sopenharmony_ci				gl_Position = a_pos;
4297e5c31af7Sopenharmony_ci			}
4298e5c31af7Sopenharmony_ci		""
4299e5c31af7Sopenharmony_ci
4300e5c31af7Sopenharmony_ci		fragment ""
4301e5c31af7Sopenharmony_ci			#version 300 es
4302e5c31af7Sopenharmony_ci			precision highp float;
4303e5c31af7Sopenharmony_ci
4304e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
4305e5c31af7Sopenharmony_ci
4306e5c31af7Sopenharmony_ci			// Total of 1025 characters
4307e5c31af7Sopenharmony_ci			uniform aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
4308e5c31af7Sopenharmony_ci			{
4309e5c31af7Sopenharmony_ci				vec4 uniformMember;
4310e5c31af7Sopenharmony_ci			} uniformBlock;
4311e5c31af7Sopenharmony_ci
4312e5c31af7Sopenharmony_ci			void main()
4313e5c31af7Sopenharmony_ci			{
4314e5c31af7Sopenharmony_ci				o_color = uniformBlock.uniformMember;
4315e5c31af7Sopenharmony_ci			}
4316e5c31af7Sopenharmony_ci		""
4317e5c31af7Sopenharmony_ci	end
4318e5c31af7Sopenharmony_ci	case invalid_number_instance_name_vertex
4319e5c31af7Sopenharmony_ci		version 300 es
4320e5c31af7Sopenharmony_ci		expect compile_fail
4321e5c31af7Sopenharmony_ci
4322e5c31af7Sopenharmony_ci		vertex ""
4323e5c31af7Sopenharmony_ci			#version 300 es
4324e5c31af7Sopenharmony_ci			precision highp float;
4325e5c31af7Sopenharmony_ci
4326e5c31af7Sopenharmony_ci
4327e5c31af7Sopenharmony_ci
4328e5c31af7Sopenharmony_ci			uniform UniformInstance
4329e5c31af7Sopenharmony_ci			{
4330e5c31af7Sopenharmony_ci				vec4 uniformMember;
4331e5c31af7Sopenharmony_ci			} 0uniformBlock;
4332e5c31af7Sopenharmony_ci
4333e5c31af7Sopenharmony_ci			void main()
4334e5c31af7Sopenharmony_ci			{
4335e5c31af7Sopenharmony_ci				gl_Position = 0uniformBlock.uniformMember;
4336e5c31af7Sopenharmony_ci			}
4337e5c31af7Sopenharmony_ci		""
4338e5c31af7Sopenharmony_ci
4339e5c31af7Sopenharmony_ci		fragment ""
4340e5c31af7Sopenharmony_ci			#version 300 es
4341e5c31af7Sopenharmony_ci			precision highp float;
4342e5c31af7Sopenharmony_ci
4343e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
4344e5c31af7Sopenharmony_ci
4345e5c31af7Sopenharmony_ci			void main()
4346e5c31af7Sopenharmony_ci			{
4347e5c31af7Sopenharmony_ci				o_color = vec4(1.0);
4348e5c31af7Sopenharmony_ci			}
4349e5c31af7Sopenharmony_ci		""
4350e5c31af7Sopenharmony_ci	end
4351e5c31af7Sopenharmony_ci	case invalid_number_instance_name_fragment
4352e5c31af7Sopenharmony_ci		version 300 es
4353e5c31af7Sopenharmony_ci		expect compile_fail
4354e5c31af7Sopenharmony_ci
4355e5c31af7Sopenharmony_ci		vertex ""
4356e5c31af7Sopenharmony_ci			#version 300 es
4357e5c31af7Sopenharmony_ci			precision highp float;
4358e5c31af7Sopenharmony_ci
4359e5c31af7Sopenharmony_ci			in vec4 a_pos;
4360e5c31af7Sopenharmony_ci
4361e5c31af7Sopenharmony_ci			void main()
4362e5c31af7Sopenharmony_ci			{
4363e5c31af7Sopenharmony_ci				gl_Position = a_pos;
4364e5c31af7Sopenharmony_ci			}
4365e5c31af7Sopenharmony_ci		""
4366e5c31af7Sopenharmony_ci
4367e5c31af7Sopenharmony_ci		fragment ""
4368e5c31af7Sopenharmony_ci			#version 300 es
4369e5c31af7Sopenharmony_ci			precision highp float;
4370e5c31af7Sopenharmony_ci
4371e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
4372e5c31af7Sopenharmony_ci
4373e5c31af7Sopenharmony_ci			uniform UniformInstance
4374e5c31af7Sopenharmony_ci			{
4375e5c31af7Sopenharmony_ci				vec4 uniformMember;
4376e5c31af7Sopenharmony_ci			} 0uniformBlock;
4377e5c31af7Sopenharmony_ci
4378e5c31af7Sopenharmony_ci			void main()
4379e5c31af7Sopenharmony_ci			{
4380e5c31af7Sopenharmony_ci				o_color = 0uniformBlock.uniformMember;
4381e5c31af7Sopenharmony_ci			}
4382e5c31af7Sopenharmony_ci		""
4383e5c31af7Sopenharmony_ci	end
4384e5c31af7Sopenharmony_ci	case invalid_hash_instance_name_vertex
4385e5c31af7Sopenharmony_ci		version 300 es
4386e5c31af7Sopenharmony_ci		expect compile_fail
4387e5c31af7Sopenharmony_ci
4388e5c31af7Sopenharmony_ci		vertex ""
4389e5c31af7Sopenharmony_ci			#version 300 es
4390e5c31af7Sopenharmony_ci			precision highp float;
4391e5c31af7Sopenharmony_ci
4392e5c31af7Sopenharmony_ci
4393e5c31af7Sopenharmony_ci
4394e5c31af7Sopenharmony_ci			uniform UniformInstance
4395e5c31af7Sopenharmony_ci			{
4396e5c31af7Sopenharmony_ci				vec4 uniformMember;
4397e5c31af7Sopenharmony_ci			} $uniformBlock;
4398e5c31af7Sopenharmony_ci
4399e5c31af7Sopenharmony_ci			void main()
4400e5c31af7Sopenharmony_ci			{
4401e5c31af7Sopenharmony_ci				gl_Position = $uniformBlock.uniformMember;
4402e5c31af7Sopenharmony_ci			}
4403e5c31af7Sopenharmony_ci		""
4404e5c31af7Sopenharmony_ci
4405e5c31af7Sopenharmony_ci		fragment ""
4406e5c31af7Sopenharmony_ci			#version 300 es
4407e5c31af7Sopenharmony_ci			precision highp float;
4408e5c31af7Sopenharmony_ci
4409e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
4410e5c31af7Sopenharmony_ci
4411e5c31af7Sopenharmony_ci			void main()
4412e5c31af7Sopenharmony_ci			{
4413e5c31af7Sopenharmony_ci				o_color = vec4(1.0);
4414e5c31af7Sopenharmony_ci			}
4415e5c31af7Sopenharmony_ci		""
4416e5c31af7Sopenharmony_ci	end
4417e5c31af7Sopenharmony_ci	case invalid_hash_instance_name_fragment
4418e5c31af7Sopenharmony_ci		version 300 es
4419e5c31af7Sopenharmony_ci		expect compile_fail
4420e5c31af7Sopenharmony_ci
4421e5c31af7Sopenharmony_ci		vertex ""
4422e5c31af7Sopenharmony_ci			#version 300 es
4423e5c31af7Sopenharmony_ci			precision highp float;
4424e5c31af7Sopenharmony_ci
4425e5c31af7Sopenharmony_ci			in vec4 a_pos;
4426e5c31af7Sopenharmony_ci
4427e5c31af7Sopenharmony_ci			void main()
4428e5c31af7Sopenharmony_ci			{
4429e5c31af7Sopenharmony_ci				gl_Position = a_pos;
4430e5c31af7Sopenharmony_ci			}
4431e5c31af7Sopenharmony_ci		""
4432e5c31af7Sopenharmony_ci
4433e5c31af7Sopenharmony_ci		fragment ""
4434e5c31af7Sopenharmony_ci			#version 300 es
4435e5c31af7Sopenharmony_ci			precision highp float;
4436e5c31af7Sopenharmony_ci
4437e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
4438e5c31af7Sopenharmony_ci
4439e5c31af7Sopenharmony_ci			uniform UniformInstance
4440e5c31af7Sopenharmony_ci			{
4441e5c31af7Sopenharmony_ci				vec4 uniformMember;
4442e5c31af7Sopenharmony_ci			} $uniformBlock;
4443e5c31af7Sopenharmony_ci
4444e5c31af7Sopenharmony_ci			void main()
4445e5c31af7Sopenharmony_ci			{
4446e5c31af7Sopenharmony_ci				o_color = $uniformBlock.uniformMember;
4447e5c31af7Sopenharmony_ci			}
4448e5c31af7Sopenharmony_ci		""
4449e5c31af7Sopenharmony_ci	end
4450e5c31af7Sopenharmony_ci	case invalid_dollar_instance_name_vertex
4451e5c31af7Sopenharmony_ci		version 300 es
4452e5c31af7Sopenharmony_ci		expect compile_fail
4453e5c31af7Sopenharmony_ci
4454e5c31af7Sopenharmony_ci		vertex ""
4455e5c31af7Sopenharmony_ci			#version 300 es
4456e5c31af7Sopenharmony_ci			precision highp float;
4457e5c31af7Sopenharmony_ci
4458e5c31af7Sopenharmony_ci
4459e5c31af7Sopenharmony_ci
4460e5c31af7Sopenharmony_ci			uniform UniformInstance
4461e5c31af7Sopenharmony_ci			{
4462e5c31af7Sopenharmony_ci				vec4 uniformMember;
4463e5c31af7Sopenharmony_ci			} $uniformBlock;
4464e5c31af7Sopenharmony_ci
4465e5c31af7Sopenharmony_ci			void main()
4466e5c31af7Sopenharmony_ci			{
4467e5c31af7Sopenharmony_ci				gl_Position = $uniformBlock.uniformMember;
4468e5c31af7Sopenharmony_ci			}
4469e5c31af7Sopenharmony_ci		""
4470e5c31af7Sopenharmony_ci
4471e5c31af7Sopenharmony_ci		fragment ""
4472e5c31af7Sopenharmony_ci			#version 300 es
4473e5c31af7Sopenharmony_ci			precision highp float;
4474e5c31af7Sopenharmony_ci
4475e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
4476e5c31af7Sopenharmony_ci
4477e5c31af7Sopenharmony_ci			void main()
4478e5c31af7Sopenharmony_ci			{
4479e5c31af7Sopenharmony_ci				o_color = vec4(1.0);
4480e5c31af7Sopenharmony_ci			}
4481e5c31af7Sopenharmony_ci		""
4482e5c31af7Sopenharmony_ci	end
4483e5c31af7Sopenharmony_ci	case invalid_dollar_instance_name_fragment
4484e5c31af7Sopenharmony_ci		version 300 es
4485e5c31af7Sopenharmony_ci		expect compile_fail
4486e5c31af7Sopenharmony_ci
4487e5c31af7Sopenharmony_ci		vertex ""
4488e5c31af7Sopenharmony_ci			#version 300 es
4489e5c31af7Sopenharmony_ci			precision highp float;
4490e5c31af7Sopenharmony_ci
4491e5c31af7Sopenharmony_ci			in vec4 a_pos;
4492e5c31af7Sopenharmony_ci
4493e5c31af7Sopenharmony_ci			void main()
4494e5c31af7Sopenharmony_ci			{
4495e5c31af7Sopenharmony_ci				gl_Position = a_pos;
4496e5c31af7Sopenharmony_ci			}
4497e5c31af7Sopenharmony_ci		""
4498e5c31af7Sopenharmony_ci
4499e5c31af7Sopenharmony_ci		fragment ""
4500e5c31af7Sopenharmony_ci			#version 300 es
4501e5c31af7Sopenharmony_ci			precision highp float;
4502e5c31af7Sopenharmony_ci
4503e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
4504e5c31af7Sopenharmony_ci
4505e5c31af7Sopenharmony_ci			uniform UniformInstance
4506e5c31af7Sopenharmony_ci			{
4507e5c31af7Sopenharmony_ci				vec4 uniformMember;
4508e5c31af7Sopenharmony_ci			} $uniformBlock;
4509e5c31af7Sopenharmony_ci
4510e5c31af7Sopenharmony_ci			void main()
4511e5c31af7Sopenharmony_ci			{
4512e5c31af7Sopenharmony_ci				o_color = $uniformBlock.uniformMember;
4513e5c31af7Sopenharmony_ci			}
4514e5c31af7Sopenharmony_ci		""
4515e5c31af7Sopenharmony_ci	end
4516e5c31af7Sopenharmony_ci	case invalid_identifier_instance_name_vertex
4517e5c31af7Sopenharmony_ci		version 300 es
4518e5c31af7Sopenharmony_ci		expect compile_fail
4519e5c31af7Sopenharmony_ci
4520e5c31af7Sopenharmony_ci		vertex ""
4521e5c31af7Sopenharmony_ci			#version 300 es
4522e5c31af7Sopenharmony_ci			precision highp float;
4523e5c31af7Sopenharmony_ci
4524e5c31af7Sopenharmony_ci
4525e5c31af7Sopenharmony_ci
4526e5c31af7Sopenharmony_ci			uniform UniformBlock
4527e5c31af7Sopenharmony_ci			{
4528e5c31af7Sopenharmony_ci				vec4 uniformMember;
4529e5c31af7Sopenharmony_ci			} gl_uniformBlock;
4530e5c31af7Sopenharmony_ci
4531e5c31af7Sopenharmony_ci			void main()
4532e5c31af7Sopenharmony_ci			{
4533e5c31af7Sopenharmony_ci				gl_Position = gl_uniformBlock.uniformMember;
4534e5c31af7Sopenharmony_ci			}
4535e5c31af7Sopenharmony_ci		""
4536e5c31af7Sopenharmony_ci
4537e5c31af7Sopenharmony_ci		fragment ""
4538e5c31af7Sopenharmony_ci			#version 300 es
4539e5c31af7Sopenharmony_ci			precision highp float;
4540e5c31af7Sopenharmony_ci
4541e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
4542e5c31af7Sopenharmony_ci
4543e5c31af7Sopenharmony_ci			void main()
4544e5c31af7Sopenharmony_ci			{
4545e5c31af7Sopenharmony_ci				o_color = vec4(1.0);
4546e5c31af7Sopenharmony_ci			}
4547e5c31af7Sopenharmony_ci		""
4548e5c31af7Sopenharmony_ci	end
4549e5c31af7Sopenharmony_ci	case invalid_identifier_instance_name_fragment
4550e5c31af7Sopenharmony_ci		version 300 es
4551e5c31af7Sopenharmony_ci		expect compile_fail
4552e5c31af7Sopenharmony_ci
4553e5c31af7Sopenharmony_ci		vertex ""
4554e5c31af7Sopenharmony_ci			#version 300 es
4555e5c31af7Sopenharmony_ci			precision highp float;
4556e5c31af7Sopenharmony_ci
4557e5c31af7Sopenharmony_ci			in vec4 a_pos;
4558e5c31af7Sopenharmony_ci
4559e5c31af7Sopenharmony_ci			void main()
4560e5c31af7Sopenharmony_ci			{
4561e5c31af7Sopenharmony_ci				gl_Position = a_pos;
4562e5c31af7Sopenharmony_ci			}
4563e5c31af7Sopenharmony_ci		""
4564e5c31af7Sopenharmony_ci
4565e5c31af7Sopenharmony_ci		fragment ""
4566e5c31af7Sopenharmony_ci			#version 300 es
4567e5c31af7Sopenharmony_ci			precision highp float;
4568e5c31af7Sopenharmony_ci
4569e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
4570e5c31af7Sopenharmony_ci
4571e5c31af7Sopenharmony_ci			uniform UniformBlock
4572e5c31af7Sopenharmony_ci			{
4573e5c31af7Sopenharmony_ci				vec4 uniformMember;
4574e5c31af7Sopenharmony_ci			} gl_uniformBlock;
4575e5c31af7Sopenharmony_ci
4576e5c31af7Sopenharmony_ci			void main()
4577e5c31af7Sopenharmony_ci			{
4578e5c31af7Sopenharmony_ci				o_color = gl_uniformBlock.uniformMember;
4579e5c31af7Sopenharmony_ci			}
4580e5c31af7Sopenharmony_ci		""
4581e5c31af7Sopenharmony_ci	end
4582e5c31af7Sopenharmony_ci	case repeated_block_vertex
4583e5c31af7Sopenharmony_ci		version 300 es
4584e5c31af7Sopenharmony_ci		expect compile_fail
4585e5c31af7Sopenharmony_ci
4586e5c31af7Sopenharmony_ci		vertex ""
4587e5c31af7Sopenharmony_ci			#version 300 es
4588e5c31af7Sopenharmony_ci			precision highp float;
4589e5c31af7Sopenharmony_ci
4590e5c31af7Sopenharmony_ci
4591e5c31af7Sopenharmony_ci
4592e5c31af7Sopenharmony_ci			uniform UniformBlock
4593e5c31af7Sopenharmony_ci			{
4594e5c31af7Sopenharmony_ci				vec4 uniformMember;
4595e5c31af7Sopenharmony_ci			} uniformBlockA;
4596e5c31af7Sopenharmony_ci
4597e5c31af7Sopenharmony_ci			uniform UniformBlock
4598e5c31af7Sopenharmony_ci			{
4599e5c31af7Sopenharmony_ci				vec4 uniformMember;
4600e5c31af7Sopenharmony_ci			} uniformBlockB;
4601e5c31af7Sopenharmony_ci
4602e5c31af7Sopenharmony_ci			void main()
4603e5c31af7Sopenharmony_ci			{
4604e5c31af7Sopenharmony_ci				gl_Position = uniformBlockA.uniformMember + uniformBlockB.uniformMember;
4605e5c31af7Sopenharmony_ci			}
4606e5c31af7Sopenharmony_ci		""
4607e5c31af7Sopenharmony_ci
4608e5c31af7Sopenharmony_ci		fragment ""
4609e5c31af7Sopenharmony_ci			#version 300 es
4610e5c31af7Sopenharmony_ci			precision highp float;
4611e5c31af7Sopenharmony_ci
4612e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
4613e5c31af7Sopenharmony_ci
4614e5c31af7Sopenharmony_ci			void main()
4615e5c31af7Sopenharmony_ci			{
4616e5c31af7Sopenharmony_ci				o_color = vec4(1.0);
4617e5c31af7Sopenharmony_ci			}
4618e5c31af7Sopenharmony_ci		""
4619e5c31af7Sopenharmony_ci	end
4620e5c31af7Sopenharmony_ci	case repeated_block_fragment
4621e5c31af7Sopenharmony_ci		version 300 es
4622e5c31af7Sopenharmony_ci		expect compile_fail
4623e5c31af7Sopenharmony_ci
4624e5c31af7Sopenharmony_ci		vertex ""
4625e5c31af7Sopenharmony_ci			#version 300 es
4626e5c31af7Sopenharmony_ci			precision highp float;
4627e5c31af7Sopenharmony_ci
4628e5c31af7Sopenharmony_ci			in vec4 a_pos;
4629e5c31af7Sopenharmony_ci
4630e5c31af7Sopenharmony_ci			void main()
4631e5c31af7Sopenharmony_ci			{
4632e5c31af7Sopenharmony_ci				gl_Position = a_pos;
4633e5c31af7Sopenharmony_ci			}
4634e5c31af7Sopenharmony_ci		""
4635e5c31af7Sopenharmony_ci
4636e5c31af7Sopenharmony_ci		fragment ""
4637e5c31af7Sopenharmony_ci			#version 300 es
4638e5c31af7Sopenharmony_ci			precision highp float;
4639e5c31af7Sopenharmony_ci
4640e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
4641e5c31af7Sopenharmony_ci
4642e5c31af7Sopenharmony_ci			uniform UniformBlock
4643e5c31af7Sopenharmony_ci			{
4644e5c31af7Sopenharmony_ci				vec4 uniformMember;
4645e5c31af7Sopenharmony_ci			} uniformBlockA;
4646e5c31af7Sopenharmony_ci
4647e5c31af7Sopenharmony_ci			uniform UniformBlock
4648e5c31af7Sopenharmony_ci			{
4649e5c31af7Sopenharmony_ci				vec4 uniformMember;
4650e5c31af7Sopenharmony_ci			} uniformBlockB;
4651e5c31af7Sopenharmony_ci
4652e5c31af7Sopenharmony_ci			void main()
4653e5c31af7Sopenharmony_ci			{
4654e5c31af7Sopenharmony_ci				o_color = uniformBlockA.uniformMember + uniformBlockB.uniformMember;
4655e5c31af7Sopenharmony_ci			}
4656e5c31af7Sopenharmony_ci		""
4657e5c31af7Sopenharmony_ci	end
4658e5c31af7Sopenharmony_ci	case repeated_block_no_instance_name_vertex
4659e5c31af7Sopenharmony_ci		version 300 es
4660e5c31af7Sopenharmony_ci		expect compile_fail
4661e5c31af7Sopenharmony_ci
4662e5c31af7Sopenharmony_ci		vertex ""
4663e5c31af7Sopenharmony_ci			#version 300 es
4664e5c31af7Sopenharmony_ci			precision highp float;
4665e5c31af7Sopenharmony_ci
4666e5c31af7Sopenharmony_ci
4667e5c31af7Sopenharmony_ci
4668e5c31af7Sopenharmony_ci			uniform UniformBlock
4669e5c31af7Sopenharmony_ci			{
4670e5c31af7Sopenharmony_ci				vec4 uniformMember;
4671e5c31af7Sopenharmony_ci			} uniformBlock;
4672e5c31af7Sopenharmony_ci
4673e5c31af7Sopenharmony_ci			uniform UniformBlock
4674e5c31af7Sopenharmony_ci			{
4675e5c31af7Sopenharmony_ci				vec4 uniformMember;
4676e5c31af7Sopenharmony_ci			};
4677e5c31af7Sopenharmony_ci
4678e5c31af7Sopenharmony_ci			void main()
4679e5c31af7Sopenharmony_ci			{
4680e5c31af7Sopenharmony_ci				gl_Position = uniformBlock.uniformMember + uniformMember;
4681e5c31af7Sopenharmony_ci			}
4682e5c31af7Sopenharmony_ci		""
4683e5c31af7Sopenharmony_ci
4684e5c31af7Sopenharmony_ci		fragment ""
4685e5c31af7Sopenharmony_ci			#version 300 es
4686e5c31af7Sopenharmony_ci			precision highp float;
4687e5c31af7Sopenharmony_ci
4688e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
4689e5c31af7Sopenharmony_ci
4690e5c31af7Sopenharmony_ci			void main()
4691e5c31af7Sopenharmony_ci			{
4692e5c31af7Sopenharmony_ci				o_color = vec4(1.0);
4693e5c31af7Sopenharmony_ci			}
4694e5c31af7Sopenharmony_ci		""
4695e5c31af7Sopenharmony_ci	end
4696e5c31af7Sopenharmony_ci	case repeated_block_no_instance_name_fragment
4697e5c31af7Sopenharmony_ci		version 300 es
4698e5c31af7Sopenharmony_ci		expect compile_fail
4699e5c31af7Sopenharmony_ci
4700e5c31af7Sopenharmony_ci		vertex ""
4701e5c31af7Sopenharmony_ci			#version 300 es
4702e5c31af7Sopenharmony_ci			precision highp float;
4703e5c31af7Sopenharmony_ci
4704e5c31af7Sopenharmony_ci			in vec4 a_pos;
4705e5c31af7Sopenharmony_ci
4706e5c31af7Sopenharmony_ci			void main()
4707e5c31af7Sopenharmony_ci			{
4708e5c31af7Sopenharmony_ci				gl_Position = a_pos;
4709e5c31af7Sopenharmony_ci			}
4710e5c31af7Sopenharmony_ci		""
4711e5c31af7Sopenharmony_ci
4712e5c31af7Sopenharmony_ci		fragment ""
4713e5c31af7Sopenharmony_ci			#version 300 es
4714e5c31af7Sopenharmony_ci			precision highp float;
4715e5c31af7Sopenharmony_ci
4716e5c31af7Sopenharmony_ci			layout(location=0) out vec4 o_color;
4717e5c31af7Sopenharmony_ci
4718e5c31af7Sopenharmony_ci			uniform UniformBlock
4719e5c31af7Sopenharmony_ci			{
4720e5c31af7Sopenharmony_ci				vec4 uniformMember;
4721e5c31af7Sopenharmony_ci			} uniformBlock;
4722e5c31af7Sopenharmony_ci
4723e5c31af7Sopenharmony_ci			uniform UniformBlock
4724e5c31af7Sopenharmony_ci			{
4725e5c31af7Sopenharmony_ci				vec4 uniformMember;
4726e5c31af7Sopenharmony_ci			};
4727e5c31af7Sopenharmony_ci
4728e5c31af7Sopenharmony_ci			void main()
4729e5c31af7Sopenharmony_ci			{
4730e5c31af7Sopenharmony_ci				o_color = uniformBlock.uniformMember + uniformMember;
4731e5c31af7Sopenharmony_ci			}
4732e5c31af7Sopenharmony_ci		""
4733e5c31af7Sopenharmony_ci	end
4734e5c31af7Sopenharmony_ci
4735e5c31af7Sopenharmony_ciend # invalid
4736