summaryrefslogtreecommitdiff
path: root/tests/spec/arb_arrays_of_arrays/execution/sampler/fs-mixed-const-and-non-const-index2.shader_test
diff options
context:
space:
mode:
Diffstat (limited to 'tests/spec/arb_arrays_of_arrays/execution/sampler/fs-mixed-const-and-non-const-index2.shader_test')
-rw-r--r--tests/spec/arb_arrays_of_arrays/execution/sampler/fs-mixed-const-and-non-const-index2.shader_test64
1 files changed, 64 insertions, 0 deletions
diff --git a/tests/spec/arb_arrays_of_arrays/execution/sampler/fs-mixed-const-and-non-const-index2.shader_test b/tests/spec/arb_arrays_of_arrays/execution/sampler/fs-mixed-const-and-non-const-index2.shader_test
new file mode 100644
index 000000000..7094ab46f
--- /dev/null
+++ b/tests/spec/arb_arrays_of_arrays/execution/sampler/fs-mixed-const-and-non-const-index2.shader_test
@@ -0,0 +1,64 @@
+# This test verifies that dynamically uniform indexing of sampler arrays
+# in the fragment shader behaves correctly.
+
+[require]
+GLSL >= 1.50
+GL_ARB_gpu_shader5
+GL_ARB_arrays_of_arrays
+
+[vertex shader passthrough]
+
+[fragment shader]
+#version 150
+#extension GL_ARB_gpu_shader5: require
+#extension GL_ARB_arrays_of_arrays: enable
+
+uniform sampler2D s[2][2];
+
+uniform int n;
+
+out vec4 color;
+
+void main()
+{
+ color = texture(s[1][n], vec2(0.75, 0.25));
+}
+
+[test]
+clear color 0.2 0.2 0.2 0.2
+clear
+
+uniform int s[0][0] 0
+uniform int s[0][1] 1
+uniform int s[1][0] 2
+uniform int s[1][1] 3
+
+texture checkerboard 0 0 (32, 32) (0.5, 0.0, 0.0, 0.0) (1.0, 0.0, 0.0, 0.0)
+texparameter 2D min nearest
+texparameter 2D mag nearest
+
+texture checkerboard 1 0 (32, 32) (0.5, 0.0, 0.0, 0.0) (0.0, 1.0, 0.0, 0.0)
+texparameter 2D min nearest
+texparameter 2D mag nearest
+
+texture checkerboard 2 0 (32, 32) (0.5, 0.0, 0.0, 0.0) (0.0, 0.0, 1.0, 0.0)
+texparameter 2D min nearest
+texparameter 2D mag nearest
+
+texture checkerboard 3 0 (32, 32) (0.5, 0.0, 0.0, 0.0) (1.0, 1.0, 1.0, 1.0)
+texparameter 2D min nearest
+texparameter 2D mag nearest
+
+uniform int n 0
+draw rect -1 0 1 1
+# real outcome?
+relative probe rect rgb (0.0, 0.5, 0.5, 0.5) (0.0, 0.0, 1.0)
+
+#uniform int n 0
+#draw rect 0 -1 1 1
+#relative probe rect rgb (0.0, 0.5, 0.5, 0.5) (0.0, 1.0, 0.0)
+
+uniform int n 1
+draw rect 0 0 1 1
+
+relative probe rect rgb (0.5, 0.5, 0.5, 0.5) (1.0, 1.0, 1.0)