diff options
author | Brian Paul <brianp@vmware.com> | 2015-07-14 12:56:00 -0600 |
---|---|---|
committer | Brian Paul <brianp@vmware.com> | 2015-07-22 10:53:38 -0600 |
commit | 6bb5478a7b20e3fe07b6c113cdc408d0b61d9a27 (patch) | |
tree | f0f0d3310064e6cae6709262b1d205333c89f84e | |
parent | 64c4a7057296bfd00ee15d181ecdffc80776036d (diff) |
glsl-1.10: exercise variable-indexed arrays
Reviewed-by: José Fonseca <jfonseca@vmware.com>
-rw-r--r-- | tests/spec/glsl-1.10/execution/temp_arrays.shader_test | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/tests/spec/glsl-1.10/execution/temp_arrays.shader_test b/tests/spec/glsl-1.10/execution/temp_arrays.shader_test new file mode 100644 index 000000000..fc81473bd --- /dev/null +++ b/tests/spec/glsl-1.10/execution/temp_arrays.shader_test @@ -0,0 +1,57 @@ +[require] +GLSL >= 1.10 + +[vertex shader] + +/** + * This test exercises arrays indexed with a variable. + * We test with two arrays to be sure at least one is positioned + * above TEMP[0]. + */ + +uniform float one; +uniform int writeIndex; +uniform int readIndex; +varying vec4 color; +void main() +{ + // Setup two arrays + vec4 a1[5], a2[5]; + + a1[0] = vec4(0.0, 0.0, 0.0, 0.0); + a1[1] = vec4(0.0, 0.0, 0.0, 0.0); + a1[2] = vec4(0.0, 0.0, 0.0, 0.0); + a1[3] = vec4(0.0, 0.0, 0.0, 0.0); + a1[4] = vec4(0.0, 0.0, 0.0, 0.0); + + a2[0] = vec4(0.0, 0.0, 0.0, 0.0); + a2[1] = vec4(0.0, 0.0, 0.0, 0.0); + a2[2] = vec4(0.0, 0.0, 0.0, 0.0); + a2[3] = vec4(0.0, 0.0, 0.0, 0.0); + a2[4] = vec4(0.0, 0.0, 0.25, 0.0); + + gl_Position = gl_Vertex; + + // write to the arrays + a1[writeIndex] = vec4(1.0, 0.25, 0.0, 1.0); + a2[writeIndex] = vec4(1.0, 0.25, 0.75, 1.0); + + // add array elements + color = a1[readIndex] + a2[readIndex] + a2[4]; +} + +[fragment shader] +varying vec4 color; +void main() +{ + gl_FragColor = color; +} + +[test] +uniform int readIndex 1 +uniform int writeIndex 1 +draw rect -1 -1 2 2 +relative probe rgb (0.0, 0.0) (1.0, 0.5, 1.0, 1.0) +relative probe rgb (1.0, 0.0) (1.0, 0.5, 1.0, 1.0) +relative probe rgb (0.0, 1.0) (1.0, 0.5, 1.0, 1.0) +relative probe rgb (1.0, 1.0) (1.0, 0.5, 1.0, 1.0) |