perf/pixel-rate: new pixel throughput microbenchmark
[piglit.git] / tests / spec / glsl-1.10 / execution / vs-loop-complex-with-else-break.shader_test
blobca056a3884984aa7a1b7f10f37d3051d795b4310
1 # This tests a bug in the r300 compiler where it was too aggressive
2 # with optimizations (copy propagation) of movs in loops.
4 # See: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6467
5 [require]
6 GLSL >= 1.10
8 [vertex shader]
9 uniform int loop_count;
10 uniform int limit;
12 void main()
14   gl_Position = gl_Vertex;
16   vec4 colour = vec4(1.0, 1.0, 1.0, 1.0);
17   for (int i = 0; i < loop_count; i++) {
19      if (i > limit) {
20         colour = vec4(1.0, 0.0, 0.0, 1.0);
21      }
23      if (i <= limit) {
24         colour = vec4(0.0, 1.0, 0.0, 1.0);
25      } else {
26         break;
27      }
28   }
30   gl_FrontColor = colour;
33 [fragment shader]
34 void main()
36   gl_FragColor = gl_Color;
39 [test]
40 clear color 0.5 0.5 0.5 0.5
42 uniform int limit 1
43 uniform int loop_count 3
44 draw rect -1 -1 2 2
45 probe all rgba 1.0 0.0 0.0 1.0
47 uniform int loop_count 2
48 draw rect -1 -1 2 2
49 probe all rgba 0.0 1.0 0.0 1.0
51 uniform int loop_count 1
52 draw rect -1 -1 2 2
53 probe all rgba 0.0 1.0 0.0 1.0
55 uniform int loop_count 0
56 draw rect -1 -1 2 2
57 probe all rgba 1.0 1.0 1.0 1.0