Merge "Add tests for varying linking by location" into nyc-dev
authorPyry Haulos <phaulos@google.com>
Mon, 13 Jun 2016 21:41:39 +0000 (21:41 +0000)
committerAndroid (Google) Code Review <android-gerrit@google.com>
Mon, 13 Jun 2016 21:41:40 +0000 (21:41 +0000)
android/cts/master/com.drawelements.deqp.vk.xml
android/cts/master/vk-master.txt
external/vulkancts/data/vulkan/glsl/es310/linkage.test

index 3247183..58683c6 100644 (file)
                                                <Test name="differing_interpolation_2">
                                                        <TestInstance/>
                                                </Test>
+                                               <Test name="differing_name_1">
+                                                       <TestInstance/>
+                                               </Test>
+                                               <Test name="differing_name_2">
+                                                       <TestInstance/>
+                                               </Test>
                                        </TestCase>
                                        <TestCase name="basic_types">
                                                <Test name="float">
index 98a5df3..4e07680 100644 (file)
@@ -63850,6 +63850,8 @@ dEQP-VK.glsl.linkage.varying.rules.differing_precision_1
 dEQP-VK.glsl.linkage.varying.rules.differing_precision_2
 dEQP-VK.glsl.linkage.varying.rules.differing_precision_3
 dEQP-VK.glsl.linkage.varying.rules.differing_interpolation_2
+dEQP-VK.glsl.linkage.varying.rules.differing_name_1
+dEQP-VK.glsl.linkage.varying.rules.differing_name_2
 dEQP-VK.glsl.linkage.varying.basic_types.float
 dEQP-VK.glsl.linkage.varying.basic_types.vec2
 dEQP-VK.glsl.linkage.varying.basic_types.vec3
index d463062..d9a2352 100644 (file)
@@ -294,6 +294,79 @@ group varying "Varying linkage"
                        ""
                end
 
+               # differing name (linking is done by location only in SPIR-V)
+               case differing_name_1
+                       version 310 es
+                       desc "varying declared with matching location but different name"
+                       values
+                       {
+                               input float in0         = [ 2.0 | 5.0 | -3.0 | 4.0 ];
+                               input float in1         = [ 4.0 | 1.0 | -0.5 | 2.0 ];
+                               output float out0       = [ -2.0 | 4.0 | -2.5 | 2.0 ];
+                       }
+
+                       vertex ""
+                               #version 310 es
+                               ${VERTEX_DECLARATIONS}
+                               layout(location = 0) out highp float vtxVarB;
+                               layout(location = 2) out highp float vtxVarA;
+                               void main()
+                               {
+                                       vtxVarA = in0;
+                                       vtxVarB = in1;
+                                       ${VERTEX_OUTPUT}
+                               }
+                       ""
+                       fragment ""
+                               #version 310 es
+                               precision mediump float;
+                               ${FRAGMENT_DECLARATIONS}
+                               layout(location = 2) in highp float fragVarA;
+                               layout(location = 0) in highp float fragVarB;
+                               void main()
+                               {
+                                       out0 = fragVarA - fragVarB;
+                                       ${FRAGMENT_OUTPUT}
+                               }
+                       ""
+               end
+
+               # differing name (linking is done by location only in SPIR-V)
+               case differing_name_2
+                       version 310 es
+                       desc "varying declared with matching location but different name"
+                       values
+                       {
+                               input float in0         = [ 2.0 | 5.0 | -3.0 | 4.0 ];
+                               input float in1         = [ 4.0 | 1.0 | -0.5 | 2.0 ];
+                               output float out0       = [ -2.0 | 4.0 | -2.5 | 2.0 ];
+                       }
+
+                       vertex ""
+                               #version 310 es
+                               ${VERTEX_DECLARATIONS}
+                               layout(location = 0) out highp float varA;
+                               layout(location = 2) out highp float varB;
+                               void main()
+                               {
+                                       varA = in0;
+                                       varB = in1;
+                                       ${VERTEX_OUTPUT}
+                               }
+                       ""
+                       fragment ""
+                               #version 310 es
+                               precision mediump float;
+                               ${FRAGMENT_DECLARATIONS}
+                               layout(location = 2) in highp float varA;
+                               layout(location = 0) in highp float varB;
+                               void main()
+                               {
+                                       out0 = varB - varA;
+                                       ${FRAGMENT_OUTPUT}
+                               }
+                       ""
+               end
        end
 
        group basic_types "Basic varying types"