1e5c31af7Sopenharmony_cigroup builtins "Builtin Tests"
2e5c31af7Sopenharmony_ci
3e5c31af7Sopenharmony_ci	case core_gl_FragColor
4e5c31af7Sopenharmony_ci		version 420
5e5c31af7Sopenharmony_ci		expect compile_fail
6e5c31af7Sopenharmony_ci		vertex ""
7e5c31af7Sopenharmony_ci			#version 420
8e5c31af7Sopenharmony_ci			${VERTEX_DECLARATIONS}
9e5c31af7Sopenharmony_ci			void main()
10e5c31af7Sopenharmony_ci			{
11e5c31af7Sopenharmony_ci				${VERTEX_OUTPUT}
12e5c31af7Sopenharmony_ci			}
13e5c31af7Sopenharmony_ci		""
14e5c31af7Sopenharmony_ci		fragment ""
15e5c31af7Sopenharmony_ci			#version 420
16e5c31af7Sopenharmony_ci			void main()
17e5c31af7Sopenharmony_ci			{
18e5c31af7Sopenharmony_ci				gl_FragColor = vec4(1.0);
19e5c31af7Sopenharmony_ci			}
20e5c31af7Sopenharmony_ci		""
21e5c31af7Sopenharmony_ci	end
22e5c31af7Sopenharmony_ci
23e5c31af7Sopenharmony_ci	case core_gl_FragData
24e5c31af7Sopenharmony_ci		version 420
25e5c31af7Sopenharmony_ci		expect compile_fail
26e5c31af7Sopenharmony_ci		vertex ""
27e5c31af7Sopenharmony_ci			#version 420
28e5c31af7Sopenharmony_ci			${VERTEX_DECLARATIONS}
29e5c31af7Sopenharmony_ci			void main()
30e5c31af7Sopenharmony_ci			{
31e5c31af7Sopenharmony_ci				${VERTEX_OUTPUT}
32e5c31af7Sopenharmony_ci			}
33e5c31af7Sopenharmony_ci		""
34e5c31af7Sopenharmony_ci		fragment ""
35e5c31af7Sopenharmony_ci			#version 420
36e5c31af7Sopenharmony_ci			void main()
37e5c31af7Sopenharmony_ci			{
38e5c31af7Sopenharmony_ci				gl_FragData[0] = vec4(1.0, 1.0, 1.0, 1.0);
39e5c31af7Sopenharmony_ci			}
40e5c31af7Sopenharmony_ci		""
41e5c31af7Sopenharmony_ci	end
42e5c31af7Sopenharmony_ci
43e5c31af7Sopenharmony_ci	case core_gl_MaxVaryingFloats
44e5c31af7Sopenharmony_ci		version 420
45e5c31af7Sopenharmony_ci		expect compile_fail
46e5c31af7Sopenharmony_ci		vertex ""
47e5c31af7Sopenharmony_ci			#version 420
48e5c31af7Sopenharmony_ci			${VERTEX_DECLARATIONS}
49e5c31af7Sopenharmony_ci			void main()
50e5c31af7Sopenharmony_ci			{
51e5c31af7Sopenharmony_ci				${VERTEX_OUTPUT}
52e5c31af7Sopenharmony_ci			}
53e5c31af7Sopenharmony_ci		""
54e5c31af7Sopenharmony_ci		fragment ""
55e5c31af7Sopenharmony_ci			#version 420
56e5c31af7Sopenharmony_ci			out vec4 color;
57e5c31af7Sopenharmony_ci			void main()
58e5c31af7Sopenharmony_ci			{
59e5c31af7Sopenharmony_ci				color = vec4(float(gl_MaxVaryingFloats));
60e5c31af7Sopenharmony_ci			}
61e5c31af7Sopenharmony_ci		""
62e5c31af7Sopenharmony_ci	end
63e5c31af7Sopenharmony_ci
64e5c31af7Sopenharmony_ci	case core_texture_builtins
65e5c31af7Sopenharmony_ci		version 420
66e5c31af7Sopenharmony_ci		expect compile_fail
67e5c31af7Sopenharmony_ci		vertex ""
68e5c31af7Sopenharmony_ci			#version 420
69e5c31af7Sopenharmony_ci			${VERTEX_DECLARATIONS}
70e5c31af7Sopenharmony_ci			void main()
71e5c31af7Sopenharmony_ci			{
72e5c31af7Sopenharmony_ci				${VERTEX_OUTPUT}
73e5c31af7Sopenharmony_ci			}
74e5c31af7Sopenharmony_ci		""
75e5c31af7Sopenharmony_ci		fragment ""
76e5c31af7Sopenharmony_ci			#version 420
77e5c31af7Sopenharmony_ci			uniform sampler1D tex1d;
78e5c31af7Sopenharmony_ci			uniform sampler2D tex2d;
79e5c31af7Sopenharmony_ci			uniform sampler3D tex3d;
80e5c31af7Sopenharmony_ci			uniform samplerCube texCube;
81e5c31af7Sopenharmony_ci
82e5c31af7Sopenharmony_ci			uniform float i;
83e5c31af7Sopenharmony_ci			uniform float dummy_f_coord;
84e5c31af7Sopenharmony_ci			uniform vec2 dummy_v2_coord;
85e5c31af7Sopenharmony_ci			uniform vec3 dummy_v3_coord;
86e5c31af7Sopenharmony_ci			uniform vec4 dummy_v4_coord;
87e5c31af7Sopenharmony_ci			out vec4 color;
88e5c31af7Sopenharmony_ci			void main()
89e5c31af7Sopenharmony_ci			{
90e5c31af7Sopenharmony_ci				color = texture1D(tex1d, dummy_f_coord, i);
91e5c31af7Sopenharmony_ci				color =+ texture1DProj(tex1d, dummy_v2_coord, i);
92e5c31af7Sopenharmony_ci				color =+ texture1DProj(tex1d, dummy_v4_coord, i);
93e5c31af7Sopenharmony_ci				color =+ texture1DLod(tex1d, dummy_f_coord, i);
94e5c31af7Sopenharmony_ci				color =+ texture1DProjLod(tex1d, dummy_v2_coord, i);
95e5c31af7Sopenharmony_ci				color =+ texture1DProjLod(tex1d, dummy_v4_coord, i);
96e5c31af7Sopenharmony_ci
97e5c31af7Sopenharmony_ci				color =+ texture2D(tex2d, dummy_v2_coord, i);
98e5c31af7Sopenharmony_ci				color =+ texture2DProj(tex2d, dummy_v3_coord, i);
99e5c31af7Sopenharmony_ci				color =+ texture2DProj(tex2d, dummy_v4_coord, i);
100e5c31af7Sopenharmony_ci				color =+ texture2DLod(tex2d, dummy_v2_coord, i);
101e5c31af7Sopenharmony_ci				color =+ texture2DProjLod(tex2d, dummy_v3_coord, i);
102e5c31af7Sopenharmony_ci				color =+ texture2DProjLod(tex2d, dummy_v4_coord, i);
103e5c31af7Sopenharmony_ci
104e5c31af7Sopenharmony_ci				color =+ texture3D(tex3d, dummy_v3_coord, i);
105e5c31af7Sopenharmony_ci				color =+ texture3DProj(tex3d, dummy_v4_coord, i);
106e5c31af7Sopenharmony_ci				color =+ texture3DLod(tex3d, dummy_v3_coord, i);
107e5c31af7Sopenharmony_ci				color =+ texture3DProjLod(tex3d, dummy_v4_coord, i);
108e5c31af7Sopenharmony_ci
109e5c31af7Sopenharmony_ci				color =+ textureCube(texCube, dummy_v3_coord, i);
110e5c31af7Sopenharmony_ci				color =+ textureCubeLod(texCube, dummy_v3_coord, i);
111e5c31af7Sopenharmony_ci			}
112e5c31af7Sopenharmony_ci		""
113e5c31af7Sopenharmony_ci	end
114e5c31af7Sopenharmony_ci
115e5c31af7Sopenharmony_ci	case core_shadow_builtins
116e5c31af7Sopenharmony_ci		version 420
117e5c31af7Sopenharmony_ci		expect compile_fail
118e5c31af7Sopenharmony_ci		vertex ""
119e5c31af7Sopenharmony_ci			#version 420
120e5c31af7Sopenharmony_ci			${VERTEX_DECLARATIONS}
121e5c31af7Sopenharmony_ci			void main()
122e5c31af7Sopenharmony_ci			{
123e5c31af7Sopenharmony_ci				${VERTEX_OUTPUT}
124e5c31af7Sopenharmony_ci			}
125e5c31af7Sopenharmony_ci		""
126e5c31af7Sopenharmony_ci		fragment ""
127e5c31af7Sopenharmony_ci			#version 420
128e5c31af7Sopenharmony_ci			uniform sampler1DShadow tex1dshadow;
129e5c31af7Sopenharmony_ci			uniform sampler2DShadow tex2dshadow;
130e5c31af7Sopenharmony_ci
131e5c31af7Sopenharmony_ci			uniform float i;
132e5c31af7Sopenharmony_ci			uniform vec3 dummy_v3_coord;
133e5c31af7Sopenharmony_ci			uniform vec4 dummy_v4_coord;
134e5c31af7Sopenharmony_ci			out vec4 color;
135e5c31af7Sopenharmony_ci			void main()
136e5c31af7Sopenharmony_ci			{
137e5c31af7Sopenharmony_ci				color = shadow1D(tex1dshadow, dummy_v3_coord, i);
138e5c31af7Sopenharmony_ci				color =+ shadow1DProj(tex1dshadow, dummy_v4_coord, i);
139e5c31af7Sopenharmony_ci				color =+ shadow1DLod(tex1dshadow, dummy_v3_coord, i);
140e5c31af7Sopenharmony_ci				color =+ shadow1DProjLod(tex1dshadow, dummy_v4_coord, i);
141e5c31af7Sopenharmony_ci
142e5c31af7Sopenharmony_ci				color =+ shadow2D(tex2dshadow, dummy_v3_coord, i);
143e5c31af7Sopenharmony_ci				color =+ shadow2DProj(tex2dshadow, dummy_v4_coord, i);
144e5c31af7Sopenharmony_ci				color =+ shadow2DLod(tex2dshadow, dummy_v3_coord, i);
145e5c31af7Sopenharmony_ci				color =+ shadow2DProjLod(tex2dshadow, dummy_v4_coord, i);
146e5c31af7Sopenharmony_ci			}
147e5c31af7Sopenharmony_ci		""
148e5c31af7Sopenharmony_ci	end
149e5c31af7Sopenharmony_ci
150e5c31af7Sopenharmony_ci	case compatibility_gl_FragColor
151e5c31af7Sopenharmony_ci		version 420
152e5c31af7Sopenharmony_ci		vertex ""
153e5c31af7Sopenharmony_ci			#version 420 compatibility
154e5c31af7Sopenharmony_ci			${VERTEX_DECLARATIONS}
155e5c31af7Sopenharmony_ci			void main()
156e5c31af7Sopenharmony_ci			{
157e5c31af7Sopenharmony_ci				${VERTEX_OUTPUT}
158e5c31af7Sopenharmony_ci			}
159e5c31af7Sopenharmony_ci		""
160e5c31af7Sopenharmony_ci		fragment ""
161e5c31af7Sopenharmony_ci			#version 420 compatibility
162e5c31af7Sopenharmony_ci			void main()
163e5c31af7Sopenharmony_ci			{
164e5c31af7Sopenharmony_ci				gl_FragColor = vec4(1.0);
165e5c31af7Sopenharmony_ci			}
166e5c31af7Sopenharmony_ci		""
167e5c31af7Sopenharmony_ci	end
168e5c31af7Sopenharmony_ci
169e5c31af7Sopenharmony_ci	case compatibility_gl_FragData
170e5c31af7Sopenharmony_ci		version 420
171e5c31af7Sopenharmony_ci		vertex ""
172e5c31af7Sopenharmony_ci			#version 420 compatibility
173e5c31af7Sopenharmony_ci			${VERTEX_DECLARATIONS}
174e5c31af7Sopenharmony_ci			void main()
175e5c31af7Sopenharmony_ci			{
176e5c31af7Sopenharmony_ci				${VERTEX_OUTPUT}
177e5c31af7Sopenharmony_ci			}
178e5c31af7Sopenharmony_ci		""
179e5c31af7Sopenharmony_ci		fragment ""
180e5c31af7Sopenharmony_ci			#version 420 compatibility
181e5c31af7Sopenharmony_ci			void main()
182e5c31af7Sopenharmony_ci			{
183e5c31af7Sopenharmony_ci				gl_FragData[0] = vec4(1.0, 1.0, 1.0, 1.0);
184e5c31af7Sopenharmony_ci			}
185e5c31af7Sopenharmony_ci		""
186e5c31af7Sopenharmony_ci	end
187e5c31af7Sopenharmony_ci
188e5c31af7Sopenharmony_ci	case compatibility_gl_MaxVaryingFloats
189e5c31af7Sopenharmony_ci		version 420
190e5c31af7Sopenharmony_ci		vertex ""
191e5c31af7Sopenharmony_ci			#version 420 compatibility
192e5c31af7Sopenharmony_ci			${VERTEX_DECLARATIONS}
193e5c31af7Sopenharmony_ci			void main()
194e5c31af7Sopenharmony_ci			{
195e5c31af7Sopenharmony_ci				${VERTEX_OUTPUT}
196e5c31af7Sopenharmony_ci			}
197e5c31af7Sopenharmony_ci		""
198e5c31af7Sopenharmony_ci		fragment ""
199e5c31af7Sopenharmony_ci			#version 420 compatibility
200e5c31af7Sopenharmony_ci			out vec4 color;
201e5c31af7Sopenharmony_ci			void main()
202e5c31af7Sopenharmony_ci			{
203e5c31af7Sopenharmony_ci				color = vec4(float(gl_MaxVaryingFloats));
204e5c31af7Sopenharmony_ci			}
205e5c31af7Sopenharmony_ci		""
206e5c31af7Sopenharmony_ci	end
207e5c31af7Sopenharmony_ci
208e5c31af7Sopenharmony_ci	case compatibility_texture_builtins
209e5c31af7Sopenharmony_ci		version 420
210e5c31af7Sopenharmony_ci		vertex ""
211e5c31af7Sopenharmony_ci			#version 420 compatibility
212e5c31af7Sopenharmony_ci			${VERTEX_DECLARATIONS}
213e5c31af7Sopenharmony_ci			void main()
214e5c31af7Sopenharmony_ci			{
215e5c31af7Sopenharmony_ci				${VERTEX_OUTPUT}
216e5c31af7Sopenharmony_ci			}
217e5c31af7Sopenharmony_ci		""
218e5c31af7Sopenharmony_ci		fragment ""
219e5c31af7Sopenharmony_ci			#version 420 compatibility
220e5c31af7Sopenharmony_ci			uniform sampler1D tex1d;
221e5c31af7Sopenharmony_ci			uniform sampler2D tex2d;
222e5c31af7Sopenharmony_ci			uniform sampler3D tex3d;
223e5c31af7Sopenharmony_ci			uniform samplerCube texCube;
224e5c31af7Sopenharmony_ci
225e5c31af7Sopenharmony_ci			uniform float i;
226e5c31af7Sopenharmony_ci			uniform float dummy_f_coord;
227e5c31af7Sopenharmony_ci			uniform vec2 dummy_v2_coord;
228e5c31af7Sopenharmony_ci			uniform vec3 dummy_v3_coord;
229e5c31af7Sopenharmony_ci			uniform vec4 dummy_v4_coord;
230e5c31af7Sopenharmony_ci			out vec4 color;
231e5c31af7Sopenharmony_ci			void main()
232e5c31af7Sopenharmony_ci			{
233e5c31af7Sopenharmony_ci				color = texture1D(tex1d, dummy_f_coord, i);
234e5c31af7Sopenharmony_ci				color =+ texture1DProj(tex1d, dummy_v2_coord, i);
235e5c31af7Sopenharmony_ci				color =+ texture1DProj(tex1d, dummy_v4_coord, i);
236e5c31af7Sopenharmony_ci				color =+ texture1DLod(tex1d, dummy_f_coord, i);
237e5c31af7Sopenharmony_ci				color =+ texture1DProjLod(tex1d, dummy_v2_coord, i);
238e5c31af7Sopenharmony_ci				color =+ texture1DProjLod(tex1d, dummy_v4_coord, i);
239e5c31af7Sopenharmony_ci
240e5c31af7Sopenharmony_ci				color =+ texture2D(tex2d, dummy_v2_coord, i);
241e5c31af7Sopenharmony_ci				color =+ texture2DProj(tex2d, dummy_v3_coord, i);
242e5c31af7Sopenharmony_ci				color =+ texture2DProj(tex2d, dummy_v4_coord, i);
243e5c31af7Sopenharmony_ci				color =+ texture2DLod(tex2d, dummy_v2_coord, i);
244e5c31af7Sopenharmony_ci				color =+ texture2DProjLod(tex2d, dummy_v3_coord, i);
245e5c31af7Sopenharmony_ci				color =+ texture2DProjLod(tex2d, dummy_v4_coord, i);
246e5c31af7Sopenharmony_ci
247e5c31af7Sopenharmony_ci				color =+ texture3D(tex3d, dummy_v3_coord, i);
248e5c31af7Sopenharmony_ci				color =+ texture3DProj(tex3d, dummy_v4_coord, i);
249e5c31af7Sopenharmony_ci				color =+ texture3DLod(tex3d, dummy_v3_coord, i);
250e5c31af7Sopenharmony_ci				color =+ texture3DProjLod(tex3d, dummy_v4_coord, i);
251e5c31af7Sopenharmony_ci
252e5c31af7Sopenharmony_ci				color =+ textureCube(texCube, dummy_v3_coord, i);
253e5c31af7Sopenharmony_ci				color =+ textureCubeLod(texCube, dummy_v3_coord, i);
254e5c31af7Sopenharmony_ci			}
255e5c31af7Sopenharmony_ci		""
256e5c31af7Sopenharmony_ci	end
257e5c31af7Sopenharmony_ci
258e5c31af7Sopenharmony_ci	case compatibility_shadow_builtins
259e5c31af7Sopenharmony_ci		version 420
260e5c31af7Sopenharmony_ci		vertex ""
261e5c31af7Sopenharmony_ci			#version 420 compatibility
262e5c31af7Sopenharmony_ci			${VERTEX_DECLARATIONS}
263e5c31af7Sopenharmony_ci			void main()
264e5c31af7Sopenharmony_ci			{
265e5c31af7Sopenharmony_ci				${VERTEX_OUTPUT}
266e5c31af7Sopenharmony_ci			}
267e5c31af7Sopenharmony_ci		""
268e5c31af7Sopenharmony_ci		fragment ""
269e5c31af7Sopenharmony_ci			#version 420 compatibility
270e5c31af7Sopenharmony_ci			uniform sampler1DShadow tex1dshadow;
271e5c31af7Sopenharmony_ci			uniform sampler2DShadow tex2dshadow;
272e5c31af7Sopenharmony_ci
273e5c31af7Sopenharmony_ci			uniform float i;
274e5c31af7Sopenharmony_ci			uniform vec3 dummy_v3_coord;
275e5c31af7Sopenharmony_ci			uniform vec4 dummy_v4_coord;
276e5c31af7Sopenharmony_ci			out vec4 color;
277e5c31af7Sopenharmony_ci			void main()
278e5c31af7Sopenharmony_ci			{
279e5c31af7Sopenharmony_ci				color = shadow1D(tex1dshadow, dummy_v3_coord, i);
280e5c31af7Sopenharmony_ci				color =+ shadow1DProj(tex1dshadow, dummy_v4_coord, i);
281e5c31af7Sopenharmony_ci				color =+ shadow1DLod(tex1dshadow, dummy_v3_coord, i);
282e5c31af7Sopenharmony_ci				color =+ shadow1DProjLod(tex1dshadow, dummy_v4_coord, i);
283e5c31af7Sopenharmony_ci
284e5c31af7Sopenharmony_ci				color =+ shadow2D(tex2dshadow, dummy_v3_coord, i);
285e5c31af7Sopenharmony_ci				color =+ shadow2DProj(tex2dshadow, dummy_v4_coord, i);
286e5c31af7Sopenharmony_ci				color =+ shadow2DLod(tex2dshadow, dummy_v3_coord, i);
287e5c31af7Sopenharmony_ci				color =+ shadow2DProjLod(tex2dshadow, dummy_v4_coord, i);
288e5c31af7Sopenharmony_ci			}
289e5c31af7Sopenharmony_ci		""
290e5c31af7Sopenharmony_ci	end
291e5c31af7Sopenharmony_ci
292e5c31af7Sopenharmony_ciend
293