diff options
Diffstat (limited to 'tests/spec/arb_arrays_of_arrays/execution/sampler/fs-struct-non-const-index.shader_test')
-rw-r--r-- | tests/spec/arb_arrays_of_arrays/execution/sampler/fs-struct-non-const-index.shader_test | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/tests/spec/arb_arrays_of_arrays/execution/sampler/fs-struct-non-const-index.shader_test b/tests/spec/arb_arrays_of_arrays/execution/sampler/fs-struct-non-const-index.shader_test new file mode 100644 index 000000000..22ab511b8 --- /dev/null +++ b/tests/spec/arb_arrays_of_arrays/execution/sampler/fs-struct-non-const-index.shader_test @@ -0,0 +1,79 @@ +# 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 + +struct S { + sampler2D tex; +}; + +uniform S s[2][2]; + +uniform int n; +uniform int m; + +out vec4 color; + +void main() +{ + color = texture(s[n][m].tex, vec2(0.75, 0.25)); +} + +[test] +clear color 0.2 0.2 0.2 0.2 +clear + +uniform int s[0][0].tex 0 +uniform int s[0][1].tex 1 +uniform int s[1][0].tex 2 +uniform int s[1][1].tex 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 +uniform int m 0 +draw rect -1 -1 1 1 + +relative probe rect rgb (0.0, 0.0, 0.5, 0.5) (1.0, 0.0, 0.0) + +uniform int n 0 +uniform int m 1 +draw rect 0 -1 1 1 + +relative probe rect rgb (0.5, 0.0, 0.5, 0.5) (0.0, 1.0, 0.0) + +uniform int n 1 +uniform int m 0 +draw rect -1 0 1 1 + +relative probe rect rgb (0.0, 0.5, 0.5, 0.5) (0.0, 0.0, 1.0) + +uniform int n 1 +uniform int m 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) |