[Piglit] [PATCH 1/2] Prevent loop unrolling in a shader test

Brian Paul brianp at vmware.com
Fri Jul 20 15:48:11 UTC 2018


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



More information about the Piglit mailing list