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

Reply via email to