summaryrefslogtreecommitdiff
path: root/tests/shaders/glsl-vs-unroll-explosion.shader_test
blob: 91e2b43aaf1cf0145466f9a15f5d0ac53c1356ba (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
// if you inline all functions indiscriminately, you won't pass this
[require]
GLSL >= 1.10
rlimit 268435456

[vertex shader]

void main()
{
	gl_TexCoord[0] = vec4(0.1, 0.2, 0.3, 0.4);
	if(gl_Vertex.x > 2.0) // this branch is never taken, but the compiler doesn't know this
	{
		for(int i0 = 0; i0 < 16; ++i0)
		for(int i1 = 0; i1 < 16; ++i1)
		for(int i2 = 0; i2 < 16; ++i2)
		for(int i3 = 0; i3 < 16; ++i3)
		for(int i4 = 0; i4 < 16; ++i4)
		for(int i5 = 0; i5 < 16; ++i5)
		for(int i6 = 0; i6 < 16; ++i6)
		for(int i7 = 0; i7 < 16; ++i7)
		for(int i8 = 0; i8 < 16; ++i8)
		for(int i9 = 0; i9 < 16; ++i9)
		for(int i10 = 0; i10 < 16; ++i10)
		for(int i11 = 0; i11 < 16; ++i11)
		for(int i12 = 0; i12 < 16; ++i12)
		for(int i13 = 0; i13 < 16; ++i13)
		for(int i14 = 0; i14 < 16; ++i14)
		for(int i15 = 0; i15 < 16; ++i15)
		{
			gl_TexCoord[0] = exp(gl_TexCoord[0]);
		}
	}
	gl_Position = gl_Vertex;
}
[fragment shader]
void main()
{
	gl_FragColor = gl_TexCoord[0];
}

[test]
draw rect -1 -1 2 2
probe all rgba 0.1 0.2 0.3 0.4