Merge gerrit/vulkan-cts-1.0.0 into gerrit/vulkan-cts-1.0.1
[platform/upstream/VK-GL-CTS.git] / external / vulkancts / data / vulkan / glsl / es310 / linkage.test
index d463062..1ce39bb 100644 (file)
@@ -184,7 +184,7 @@ group varying "Varying linkage"
                        ""
                        fragment ""
                                #version 310 es
-                               precision mediump float;
+                               precision highp float;
                                ${FRAGMENT_DECLARATIONS}
                                layout(location = 0) in mediump float var;
                                void main()
@@ -217,7 +217,7 @@ group varying "Varying linkage"
                        ""
                        fragment ""
                                #version 310 es
-                               precision mediump float;
+                               precision highp float;
                                ${FRAGMENT_DECLARATIONS}
                                layout(location = 0) in lowp vec2 var;
                                void main()
@@ -250,7 +250,7 @@ group varying "Varying linkage"
                        ""
                        fragment ""
                                #version 310 es
-                               precision mediump float;
+                               precision highp float;
                                ${FRAGMENT_DECLARATIONS}
                                layout(location = 0) in mediump vec4 var;
                                void main()
@@ -283,7 +283,7 @@ group varying "Varying linkage"
                        ""
                        fragment ""
                                #version 310 es
-                               precision mediump float;
+                               precision highp float;
                                ${FRAGMENT_DECLARATIONS}
                                layout(location = 0) centroid in mediump float var;
                                void main()
@@ -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 highp 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 highp 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"
@@ -317,7 +390,7 @@ group varying "Varying linkage"
                        ""
                        fragment ""
                                #version 310 es
-                               precision mediump float;
+                               precision highp float;
                                ${FRAGMENT_DECLARATIONS}
                                layout(location = 0) in float var;
                                void main()
@@ -348,7 +421,7 @@ group varying "Varying linkage"
                        ""
                        fragment ""
                                #version 310 es
-                               precision mediump float;
+                               precision highp float;
                                ${FRAGMENT_DECLARATIONS}
                                layout(location = 0) in vec2 var;
                                void main()
@@ -379,7 +452,7 @@ group varying "Varying linkage"
                        ""
                        fragment ""
                                #version 310 es
-                               precision mediump float;
+                               precision highp float;
                                ${FRAGMENT_DECLARATIONS}
                                layout(location = 0) in vec3 var;
                                void main()
@@ -410,7 +483,7 @@ group varying "Varying linkage"
                        ""
                        fragment ""
                                #version 310 es
-                               precision mediump float;
+                               precision highp float;
                                ${FRAGMENT_DECLARATIONS}
                                layout(location = 0) in vec4 var;
                                void main()
@@ -441,7 +514,7 @@ group varying "Varying linkage"
                        ""
                        fragment ""
                                #version 310 es
-                               precision mediump float;
+                               precision highp float;
                                ${FRAGMENT_DECLARATIONS}
                                layout(location = 0) in mat2 var;
                                void main()
@@ -472,7 +545,7 @@ group varying "Varying linkage"
                        ""
                        fragment ""
                                #version 310 es
-                               precision mediump float;
+                               precision highp float;
                                ${FRAGMENT_DECLARATIONS}
                                layout(location = 0) in mat2x3 var;
                                void main()
@@ -503,7 +576,7 @@ group varying "Varying linkage"
                        ""
                        fragment ""
                                #version 310 es
-                               precision mediump float;
+                               precision highp float;
                                ${FRAGMENT_DECLARATIONS}
                                layout(location = 0) in mat2x4 var;
                                void main()
@@ -534,7 +607,7 @@ group varying "Varying linkage"
                        ""
                        fragment ""
                                #version 310 es
-                               precision mediump float;
+                               precision highp float;
                                ${FRAGMENT_DECLARATIONS}
                                layout(location = 0) in mat3x2 var;
                                void main()
@@ -565,7 +638,7 @@ group varying "Varying linkage"
                        ""
                        fragment ""
                                #version 310 es
-                               precision mediump float;
+                               precision highp float;
                                ${FRAGMENT_DECLARATIONS}
                                layout(location = 0) in mat3 var;
                                void main()
@@ -596,7 +669,7 @@ group varying "Varying linkage"
                        ""
                        fragment ""
                                #version 310 es
-                               precision mediump float;
+                               precision highp float;
                                ${FRAGMENT_DECLARATIONS}
                                layout(location = 0) in mat3x4 var;
                                void main()
@@ -627,7 +700,7 @@ group varying "Varying linkage"
                        ""
                        fragment ""
                                #version 310 es
-                               precision mediump float;
+                               precision highp float;
                                ${FRAGMENT_DECLARATIONS}
                                layout(location = 0) in mat4x2 var;
                                void main()
@@ -658,7 +731,7 @@ group varying "Varying linkage"
                        ""
                        fragment ""
                                #version 310 es
-                               precision mediump float;
+                               precision highp float;
                                ${FRAGMENT_DECLARATIONS}
                                layout(location = 0) in mat4x3 var;
                                void main()
@@ -689,7 +762,7 @@ group varying "Varying linkage"
                        ""
                        fragment ""
                                #version 310 es
-                               precision mediump float;
+                               precision highp float;
                                ${FRAGMENT_DECLARATIONS}
                                layout(location = 0) in mat4 var;
                                void main()
@@ -971,7 +1044,7 @@ group varying "Varying linkage"
                        ""
                        fragment ""
                                #version 310 es
-                               precision mediump float;
+                               precision highp float;
                                ${FRAGMENT_DECLARATIONS}
                                struct S { mediump float a; };
                                layout(location = 0) in S var;
@@ -1004,7 +1077,7 @@ group varying "Varying linkage"
                        ""
                        fragment ""
                                #version 310 es
-                               precision mediump float;
+                               precision highp float;
                                ${FRAGMENT_DECLARATIONS}
                                struct S { mediump vec2 a; };
                                layout(location = 0) in S var;
@@ -1037,7 +1110,7 @@ group varying "Varying linkage"
                        ""
                        fragment ""
                                #version 310 es
-                               precision mediump float;
+                               precision highp float;
                                ${FRAGMENT_DECLARATIONS}
                                struct S { mediump vec3 a; };
                                layout(location = 0) in S var;
@@ -1070,7 +1143,7 @@ group varying "Varying linkage"
                        ""
                        fragment ""
                                #version 310 es
-                               precision mediump float;
+                               precision highp float;
                                ${FRAGMENT_DECLARATIONS}
                                struct S { mediump vec4 a; };
                                layout(location = 0) in S var;
@@ -1103,7 +1176,7 @@ group varying "Varying linkage"
                        ""
                        fragment ""
                                #version 310 es
-                               precision mediump float;
+                               precision highp float;
                                ${FRAGMENT_DECLARATIONS}
                                struct S { mediump mat2 a; };
                                layout(location = 0) in S var;
@@ -1136,7 +1209,7 @@ group varying "Varying linkage"
                        ""
                        fragment ""
                                #version 310 es
-                               precision mediump float;
+                               precision highp float;
                                ${FRAGMENT_DECLARATIONS}
                                struct S { mediump mat2x3 a; };
                                layout(location = 0) in S var;
@@ -1169,7 +1242,7 @@ group varying "Varying linkage"
                        ""
                        fragment ""
                                #version 310 es
-                               precision mediump float;
+                               precision highp float;
                                ${FRAGMENT_DECLARATIONS}
                                struct S { mediump mat2x4 a; };
                                layout(location = 0) in S var;
@@ -1202,7 +1275,7 @@ group varying "Varying linkage"
                        ""
                        fragment ""
                                #version 310 es
-                               precision mediump float;
+                               precision highp float;
                                ${FRAGMENT_DECLARATIONS}
                                struct S { mediump mat3x2 a; };
                                layout(location = 0) in S var;
@@ -1235,7 +1308,7 @@ group varying "Varying linkage"
                        ""
                        fragment ""
                                #version 310 es
-                               precision mediump float;
+                               precision highp float;
                                ${FRAGMENT_DECLARATIONS}
                                struct S { mediump mat3 a; };
                                layout(location = 0) in S var;
@@ -1268,7 +1341,7 @@ group varying "Varying linkage"
                        ""
                        fragment ""
                                #version 310 es
-                               precision mediump float;
+                               precision highp float;
                                ${FRAGMENT_DECLARATIONS}
                                struct S { mediump mat3x4 a; };
                                layout(location = 0) in S var;
@@ -1301,7 +1374,7 @@ group varying "Varying linkage"
                        ""
                        fragment ""
                                #version 310 es
-                               precision mediump float;
+                               precision highp float;
                                ${FRAGMENT_DECLARATIONS}
                                struct S { mediump mat4x2 a; };
                                layout(location = 0) in S var;
@@ -1334,7 +1407,7 @@ group varying "Varying linkage"
                        ""
                        fragment ""
                                #version 310 es
-                               precision mediump float;
+                               precision highp float;
                                ${FRAGMENT_DECLARATIONS}
                                struct S { mediump mat4x3 a; };
                                layout(location = 0) in S var;
@@ -1367,7 +1440,7 @@ group varying "Varying linkage"
                        ""
                        fragment ""
                                #version 310 es
-                               precision mediump float;
+                               precision highp float;
                                ${FRAGMENT_DECLARATIONS}
                                struct S { mediump mat4 a; };
                                layout(location = 0) in S var;
@@ -1667,7 +1740,7 @@ group varying "Varying linkage"
                        ""
                        fragment ""
                                #version 310 es
-                               precision mediump float;
+                               precision highp float;
                                ${FRAGMENT_DECLARATIONS}
                                struct S { mediump float a; highp vec3 b; };
                                layout(location = 0) in S var;
@@ -1708,7 +1781,7 @@ group varying "Varying linkage"
                        ""
                        fragment ""
                                #version 310 es
-                               precision mediump float;
+                               precision highp float;
                                ${FRAGMENT_DECLARATIONS}
                                struct S { mediump float a; highp uvec2 b; highp vec3 c; };
                                layout(location = 0) flat in S var;
@@ -1744,7 +1817,7 @@ group varying "Varying linkage"
                        ""
                        fragment ""
                                #version 310 es
-                               precision mediump float;
+                               precision highp float;
                                ${FRAGMENT_DECLARATIONS}
                                layout(location = 0) smooth in vec4 var;
                                void main()
@@ -1775,7 +1848,7 @@ group varying "Varying linkage"
                        ""
                        fragment ""
                                #version 310 es
-                               precision mediump float;
+                               precision highp float;
                                ${FRAGMENT_DECLARATIONS}
                                layout(location = 0) centroid in vec4 var;
                                void main()
@@ -1806,7 +1879,7 @@ group varying "Varying linkage"
                        ""
                        fragment ""
                                #version 310 es
-                               precision mediump float;
+                               precision highp float;
                                ${FRAGMENT_DECLARATIONS}
                                layout(location = 0) flat in vec4 var;
                                void main()
@@ -1829,7 +1902,7 @@ group varying "Varying linkage"
                        }
                        vertex ""
                                #version 310 es
-                               precision mediump float;
+                               precision highp float;
                                ${VERTEX_DECLARATIONS}
                                layout(location = 0) out float var1;
                                layout(location = 1) out float var2;
@@ -1843,7 +1916,7 @@ group varying "Varying linkage"
                        ""
                        fragment ""
                                #version 310 es
-                               precision mediump float;
+                               precision highp float;
                                ${FRAGMENT_DECLARATIONS}
                                layout(location = 0) in float var1;
                                layout(location = 1) in float var2;