ext_gpu_shader4: add compiler tests for everything
[piglit.git] / tests / spec / glsl-1.10 / execution / vs-call-in-nested-loop.shader_test
blob1fc7acfb7303728c203e0960451830d047bfca01
1 # Check that loop analysis properly accounts for the side effects of a
2 # function call, even if that function call appears inside a nested
3 # loop.
5 [require]
6 GLSL >= 1.10
8 [vertex shader]
9 int i;
10 int num_calls_to_foo;
11 attribute vec4 piglit_vertex;
12 varying vec4 color;
14 void foo()
16   num_calls_to_foo++;
17   i = 2;
20 void main()
22   num_calls_to_foo = 0;
23   for (i = 0; i < 3; i++) { // Executes once, since foo() sets i to 2
24     for (int j = 0; j < 3; j++) { // Executes 3 times
25       foo();
26     }
27   }
28   gl_Position = piglit_vertex;
29   if (num_calls_to_foo == 3)
30     color = vec4(0.0, 1.0, 0.0, 1.0);
31   else
32     color = vec4(1.0, 0.0, 0.0, 1.0);
35 [fragment shader]
36 varying vec4 color;
38 void main()
40   gl_FragColor = color;
43 [test]
44 draw rect -1 -1 2 2
45 probe all rgba 0 1 0 1