summaryrefslogtreecommitdiff
path: root/tests/spec
diff options
context:
space:
mode:
authorMarek Olšák <marek.olsak@amd.com>2016-10-19 22:19:04 +0200
committerMarek Olšák <marek.olsak@amd.com>2016-11-08 19:39:07 +0100
commit02dfd2743888a9e6f42cd3cf8a2d3f2652c91d50 (patch)
tree5b36601723fcdf08ee491e13c91763c346369671 /tests/spec
parentd81536a3c5989b66c593d0cd13ed29c1cad093c1 (diff)
literal-varyings: new test for a radeonsi optimization
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Diffstat (limited to 'tests/spec')
-rw-r--r--tests/spec/glsl-1.20/execution/literal-varyings.shader_test43
1 files changed, 43 insertions, 0 deletions
diff --git a/tests/spec/glsl-1.20/execution/literal-varyings.shader_test b/tests/spec/glsl-1.20/execution/literal-varyings.shader_test
new file mode 100644
index 000000000..bd8ab1a26
--- /dev/null
+++ b/tests/spec/glsl-1.20/execution/literal-varyings.shader_test
@@ -0,0 +1,43 @@
+[require]
+GLSL >= 1.20
+
+[vertex shader]
+#version 120
+
+void
+main()
+{
+ gl_Position = gl_Vertex;
+ gl_TexCoord[0] = vec4(0.0, 0.0, 0.0, 1.0);
+ gl_TexCoord[1] = gl_Vertex;
+ gl_TexCoord[2] = vec4(0.0, 0.0, 0.0, 0.0);
+ gl_TexCoord[3] = gl_Vertex * 2.0;
+ gl_TexCoord[4] = vec4(1.0, 1.0, 1.0, 1.0);
+ gl_TexCoord[5] = gl_Vertex * 4.0;
+ gl_TexCoord[6] = vec4(1.0, 1.0, 1.0, 0.0);
+ gl_TexCoord[7] = gl_Vertex * 8.0;
+}
+
+
+[fragment shader]
+#version 120
+
+void
+main()
+{
+ if (gl_TexCoord[0] == vec4(0.0, 0.0, 0.0, 1.0) &&
+ gl_TexCoord[2] == vec4(0.0, 0.0, 0.0, 0.0) &&
+ gl_TexCoord[3] == gl_TexCoord[1] * 2.0 &&
+ gl_TexCoord[4] == vec4(1.0, 1.0, 1.0, 1.0) &&
+ gl_TexCoord[5] == gl_TexCoord[1] * 4.0 &&
+ gl_TexCoord[6] == vec4(1.0, 1.0, 1.0, 0.0) &&
+ gl_TexCoord[7] == gl_TexCoord[1] * 8.0)
+ gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0);
+ else
+ gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0);
+}
+
+
+[test]
+draw rect -1 -1 2 2
+probe all rgba 0 1 0 1