summaryrefslogtreecommitdiff
path: root/data/gles31
diff options
context:
space:
mode:
authorPyry Haulos <phaulos@google.com>2014-10-06 15:13:09 -0700
committerPyry Haulos <phaulos@google.com>2014-10-06 15:13:09 -0700
commitf6981ac458964bbfe296b497bff57c8fee8eb589 (patch)
treedc02228e898a9ff5eab0ad1dd6567b21ee3dfb54 /data/gles31
parent1bdf526ea422474296d2b88392e8f24dd4f31a99 (diff)
downloadVK-GL-CTS-f6981ac458964bbfe296b497bff57c8fee8eb589.tar.gz
VK-GL-CTS-f6981ac458964bbfe296b497bff57c8fee8eb589.tar.bz2
VK-GL-CTS-f6981ac458964bbfe296b497bff57c8fee8eb589.zip
Update SSO tests to follow new spec language
Upcoming ES3.1 spec revision will change the interface matching rules slightly by disallowing flat/smooth mismatch. This change removes cases that assumed that mismatch should work, and adds additional validation cases to check that driver indeed gives validation and draw time errors on such mismatch. See Khronos bug 12630. Change-Id: I0c77c80aa7779443df4c1dac71048f0d2a380600
Diffstat (limited to 'data/gles31')
-rw-r--r--data/gles31/shaders/separate_shader_validation.test160
1 files changed, 160 insertions, 0 deletions
diff --git a/data/gles31/shaders/separate_shader_validation.test b/data/gles31/shaders/separate_shader_validation.test
index a93768ecb..690fcd831 100644
--- a/data/gles31/shaders/separate_shader_validation.test
+++ b/data/gles31/shaders/separate_shader_validation.test
@@ -629,6 +629,166 @@ group varying "Default block varying matching"
""
end
end
+
+ case mismatch_qualifier_vertex_flat_fragment_none
+ version 310 es
+ desc "Interpolation qualifier mismatch"
+ expect validation_fail
+
+ pipeline_program
+ active_stages {vertex}
+ vertex ""
+ #version 310 es
+ ${VERTEX_DECLARATIONS}
+ out flat highp vec4 v_val;
+ void main()
+ {
+ v_val = vec4(float(gl_VertexID));
+ ${VERTEX_OUTPUT}
+ }
+ ""
+ end
+ pipeline_program
+ active_stages {fragment}
+ fragment ""
+ #version 310 es
+ ${FRAGMENT_DECLARATIONS}
+ in highp vec4 v_val;
+ void main()
+ {
+ ${FRAG_COLOR} = v_val;
+ }
+ ""
+ end
+ end
+
+ case mismatch_qualifier_vertex_flat_fragment_smooth
+ version 310 es
+ desc "Interpolation qualifier mismatch"
+ expect validation_fail
+
+ pipeline_program
+ active_stages {vertex}
+ vertex ""
+ #version 310 es
+ ${VERTEX_DECLARATIONS}
+ out flat highp vec4 v_val;
+ void main()
+ {
+ v_val = vec4(float(gl_VertexID));
+ ${VERTEX_OUTPUT}
+ }
+ ""
+ end
+ pipeline_program
+ active_stages {fragment}
+ fragment ""
+ #version 310 es
+ ${FRAGMENT_DECLARATIONS}
+ in smooth highp vec4 v_val;
+ void main()
+ {
+ ${FRAG_COLOR} = v_val;
+ }
+ ""
+ end
+ end
+
+ case mismatch_qualifier_vertex_flat_fragment_centroid
+ version 310 es
+ desc "Interpolation qualifier mismatch"
+ expect validation_fail
+
+ pipeline_program
+ active_stages {vertex}
+ vertex ""
+ #version 310 es
+ ${VERTEX_DECLARATIONS}
+ out flat highp vec4 v_val;
+ void main()
+ {
+ v_val = vec4(float(gl_VertexID));
+ ${VERTEX_OUTPUT}
+ }
+ ""
+ end
+ pipeline_program
+ active_stages {fragment}
+ fragment ""
+ #version 310 es
+ ${FRAGMENT_DECLARATIONS}
+ in centroid highp vec4 v_val;
+ void main()
+ {
+ ${FRAG_COLOR} = v_val;
+ }
+ ""
+ end
+ end
+
+ case mismatch_qualifier_vertex_smooth_fragment_flat
+ version 310 es
+ desc "Interpolation qualifier mismatch"
+ expect validation_fail
+
+ pipeline_program
+ active_stages {vertex}
+ vertex ""
+ #version 310 es
+ ${VERTEX_DECLARATIONS}
+ out smooth highp vec4 v_val;
+ void main()
+ {
+ v_val = vec4(float(gl_VertexID));
+ ${VERTEX_OUTPUT}
+ }
+ ""
+ end
+ pipeline_program
+ active_stages {fragment}
+ fragment ""
+ #version 310 es
+ ${FRAGMENT_DECLARATIONS}
+ in flat highp vec4 v_val;
+ void main()
+ {
+ ${FRAG_COLOR} = v_val;
+ }
+ ""
+ end
+ end
+
+ case mismatch_qualifier_vertex_centroid_fragment_flat
+ version 310 es
+ desc "Interpolation qualifier mismatch"
+ expect validation_fail
+
+ pipeline_program
+ active_stages {vertex}
+ vertex ""
+ #version 310 es
+ ${VERTEX_DECLARATIONS}
+ out centroid highp vec4 v_val;
+ void main()
+ {
+ v_val = vec4(float(gl_VertexID));
+ ${VERTEX_OUTPUT}
+ }
+ ""
+ end
+ pipeline_program
+ active_stages {fragment}
+ fragment ""
+ #version 310 es
+ ${FRAGMENT_DECLARATIONS}
+ in flat highp vec4 v_val;
+ void main()
+ {
+ ${FRAG_COLOR} = v_val;
+ }
+ ""
+ end
+ end
end
group io_blocks "shader io blocks"