The GLSL compiler can easily unroll this loop and simplify the function down to a single assignment. That defeats the purpose of the test. Replace literals with uniforms to prevent unrolling. --- tests/shaders/glsl-vs-loop-break.shader_test | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/tests/shaders/glsl-vs-loop-break.shader_test b/tests/shaders/glsl-vs-loop-break.shader_test index cb8dbee..66cfeb2 100644 --- a/tests/shaders/glsl-vs-loop-break.shader_test +++ b/tests/shaders/glsl-vs-loop-break.shader_test @@ -3,12 +3,14 @@ GLSL >= 1.10 [vertex shader] varying vec4 color; +uniform int iters; +uniform int target; void main() { gl_Position = gl_Vertex; - for (int i = 0; i < 8; i++) { - if (i > 4) { + for (int i = 0; i < iters; i++) { + if (i > target) { color = vec4(0.0, 1.0, 0.0, 0.0); break; } @@ -24,5 +26,7 @@ void main() } [test] +uniform int iters 8 +uniform int target 4 draw rect -1 -1 2 2 relative probe rgb (0.03, 0.25) (0.0, 1.0, 0.0) -- 2.7.4 _______________________________________________ Piglit mailing list Piglit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/piglit