diff options
author | Timothy Arceri <t_arceri@yahoo.com.au> | 2015-07-05 17:18:11 +1000 |
---|---|---|
committer | Timothy Arceri <t_arceri@yahoo.com.au> | 2015-10-16 09:14:33 +1100 |
commit | a6d445a8f017660a1f487d1a62e32955da758f3e (patch) | |
tree | a91dda34c035c09c6eb3daf712e3ad68cfaa7c92 | |
parent | 34cd099cb4f921c0c8280af3ad1c6c53a75f63a2 (diff) |
arb_arrays_of_arrays: test linking of interface fields
Test results:
AMD Radeon HD 6670 - Catalyst 14.501.1003 OpenGL 4.4
vs-to-fs-interface-field-mismatch.shader_test - fail
vs-to-fs-interface-field-mismatch2.shader_test - fail
vs-to-fs-interface-field-unsized-mismatch.shader_test - crash
vs-to-fs-interface-field-unsized-mismatch2.shader_test - crash
vs-to-fs-interface-field-unsized.shader_test - crash
vs-to-fs-interface-field-unsized2.shader_test - crash
Nvidia GeForce 840M - NVIDIA 346.47
vs-to-fs-interface-field-mismatch.shader_test - fail
vs-to-fs-interface-field-mismatch2.shader_test - fail
vs-to-fs-interface-field-unsized-mismatch.shader_test - fail
vs-to-fs-interface-field-unsized-mismatch2.shader_test - fail
vs-to-fs-interface-field-unsized.shader_test - pass
vs-to-fs-interface-field-unsized2.shader_test - fail
6 files changed, 222 insertions, 0 deletions
diff --git a/tests/spec/arb_arrays_of_arrays/linker/vs-to-fs-interface-field-mismatch.shader_test b/tests/spec/arb_arrays_of_arrays/linker/vs-to-fs-interface-field-mismatch.shader_test new file mode 100644 index 000000000..68a82176d --- /dev/null +++ b/tests/spec/arb_arrays_of_arrays/linker/vs-to-fs-interface-field-mismatch.shader_test @@ -0,0 +1,36 @@ +# Test for linking error when interface fields +# have mismatching array sizes + +[require] +GLSL >= 1.50 +GL_ARB_arrays_of_arrays + +[vertex shader] +#version 150 +#extension GL_ARB_arrays_of_arrays: enable +out ArraysOfArraysBlock +{ + vec4 a[3][2]; +} i; + +void main() +{ + i.a[1][1] = vec4(1.0); + gl_Position = vec4(1.0); +} + +[fragment shader] +#version 150 +#extension GL_ARB_arrays_of_arrays: enable +in ArraysOfArraysBlock +{ + vec4 a[2][2]; +} i; + +void main() +{ + gl_FragColor = i.a[1][1]; +} + +[test] +link error diff --git a/tests/spec/arb_arrays_of_arrays/linker/vs-to-fs-interface-field-mismatch2.shader_test b/tests/spec/arb_arrays_of_arrays/linker/vs-to-fs-interface-field-mismatch2.shader_test new file mode 100644 index 000000000..a76ba52dc --- /dev/null +++ b/tests/spec/arb_arrays_of_arrays/linker/vs-to-fs-interface-field-mismatch2.shader_test @@ -0,0 +1,36 @@ +# Test for linking error when interface fields +# have mismatching array sizes + +[require] +GLSL >= 1.50 +GL_ARB_arrays_of_arrays + +[vertex shader] +#version 150 +#extension GL_ARB_arrays_of_arrays: enable +out ArraysOfArraysBlock +{ + vec4 a[3][2]; +} i; + +void main() +{ + i.a[1][1] = vec4(1.0); + gl_Position = vec4(1.0); +} + +[fragment shader] +#version 150 +#extension GL_ARB_arrays_of_arrays: enable +in ArraysOfArraysBlock +{ + vec4 a[3][4]; +} i; + +void main() +{ + gl_FragColor = i.a[1][1]; +} + +[test] +link error diff --git a/tests/spec/arb_arrays_of_arrays/linker/vs-to-fs-interface-field-unsized-mismatch.shader_test b/tests/spec/arb_arrays_of_arrays/linker/vs-to-fs-interface-field-unsized-mismatch.shader_test new file mode 100644 index 000000000..76321e51d --- /dev/null +++ b/tests/spec/arb_arrays_of_arrays/linker/vs-to-fs-interface-field-unsized-mismatch.shader_test @@ -0,0 +1,36 @@ +# Test for linking error between vertex and fragment shaders +# when interface fields are unmatching unsized arrays + +[require] +GLSL >= 1.50 +GL_ARB_arrays_of_arrays + +[vertex shader] +#version 150 +#extension GL_ARB_arrays_of_arrays: enable +out ArraysOfArraysBlock +{ + vec4 a[][3]; +} i; + +void main() +{ + i.a[2][2] = vec4(1.0); + gl_Position = vec4(1.0); +} + +[fragment shader] +#version 150 +#extension GL_ARB_arrays_of_arrays: enable +in ArraysOfArraysBlock +{ + vec4 a[][3]; +} i; + +void main() +{ + gl_FragColor = i.a[1][2]; +} + +[test] +link error diff --git a/tests/spec/arb_arrays_of_arrays/linker/vs-to-fs-interface-field-unsized-mismatch2.shader_test b/tests/spec/arb_arrays_of_arrays/linker/vs-to-fs-interface-field-unsized-mismatch2.shader_test new file mode 100644 index 000000000..12acb1e84 --- /dev/null +++ b/tests/spec/arb_arrays_of_arrays/linker/vs-to-fs-interface-field-unsized-mismatch2.shader_test @@ -0,0 +1,37 @@ +# Test for linking error between vertex and fragment shaders +# when interface fields are unmatching unsized arrays, and the interface +# itself is an array of arrays. + +[require] +GLSL >= 1.50 +GL_ARB_arrays_of_arrays + +[vertex shader] +#version 150 +#extension GL_ARB_arrays_of_arrays: enable +out ArraysOfArraysBlock +{ + vec4 a[][2]; +} i[2][2]; + +void main() +{ + i[0][1].a[1][1] = vec4(1.0); + gl_Position = vec4(1.0); +} + +[fragment shader] +#version 150 +#extension GL_ARB_arrays_of_arrays: enable +in ArraysOfArraysBlock +{ + vec4 a[][2]; +} i[2][2]; + +void main() +{ + gl_FragColor = i[0][1].a[0][1]; +} + +[test] +link error diff --git a/tests/spec/arb_arrays_of_arrays/linker/vs-to-fs-interface-field-unsized.shader_test b/tests/spec/arb_arrays_of_arrays/linker/vs-to-fs-interface-field-unsized.shader_test new file mode 100644 index 000000000..f53e93252 --- /dev/null +++ b/tests/spec/arb_arrays_of_arrays/linker/vs-to-fs-interface-field-unsized.shader_test @@ -0,0 +1,36 @@ +# Test for successful linking between vertex and fragment shaders +# when interface field is an unsized array + +[require] +GLSL >= 1.50 +GL_ARB_arrays_of_arrays + +[vertex shader] +#version 150 +#extension GL_ARB_arrays_of_arrays: enable +out ArraysOfArraysBlock +{ + vec4 a[][3]; +} i; + +void main() +{ + i.a[1][2] = vec4(1.0); + gl_Position = vec4(1.0); +} + +[fragment shader] +#version 150 +#extension GL_ARB_arrays_of_arrays: enable +in ArraysOfArraysBlock +{ + vec4 a[][3]; +} i; + +void main() +{ + gl_FragColor = i.a[1][2]; +} + +[test] +link success diff --git a/tests/spec/arb_arrays_of_arrays/linker/vs-to-fs-interface-field-unsized2.shader_test b/tests/spec/arb_arrays_of_arrays/linker/vs-to-fs-interface-field-unsized2.shader_test new file mode 100644 index 000000000..269690462 --- /dev/null +++ b/tests/spec/arb_arrays_of_arrays/linker/vs-to-fs-interface-field-unsized2.shader_test @@ -0,0 +1,41 @@ +# Test for successful linking between vertex and fragment shaders +# when interface field is an unsized array, and the interface +# itself is an array of arrays instance +# +# Note: The size of the arrays also means this tests the +# max boundary of GL_MAX_VERTEX_ATTRIBS when it's set +# to 64 (the mininum allowed for an implementation). + +[require] +GLSL >= 1.50 +GL_ARB_arrays_of_arrays + +[vertex shader] +#version 150 +#extension GL_ARB_arrays_of_arrays: enable +out ArraysOfArraysBlock +{ + vec4 a[][2]; +} i[2][2]; + +void main() +{ + i[1][0].a[1][1] = vec4(1.0); + gl_Position = vec4(1.0); +} + +[fragment shader] +#version 150 +#extension GL_ARB_arrays_of_arrays: enable +in ArraysOfArraysBlock +{ + vec4 a[][2]; +} i[2][2]; + +void main() +{ + gl_FragColor = i[1][0].a[1][1]; +} + +[test] +link success |