<Test name="struct_nested_struct_fragment">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
</Test>
+ <Test name="struct_constructor_highp_in_fragment">
+ <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
+ </Test>
</TestCase>
<TestCase name="qualifiers">
<Test name="in_float_vertex">
<Test name="struct_nested_struct_fragment">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
</Test>
+ <Test name="struct_constructor_highp_in_fragment">
+ <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
+ </Test>
</TestCase>
<TestCase name="qualifiers">
<Test name="in_float_vertex">
dEQP-GLES2.functional.shaders.functions.datatypes.struct_struct_fragment
dEQP-GLES2.functional.shaders.functions.datatypes.struct_nested_struct_vertex
dEQP-GLES2.functional.shaders.functions.datatypes.struct_nested_struct_fragment
+dEQP-GLES2.functional.shaders.functions.datatypes.struct_constructor_highp_in_fragment
dEQP-GLES2.functional.shaders.functions.qualifiers.in_float_vertex
dEQP-GLES2.functional.shaders.functions.qualifiers.in_float_fragment
dEQP-GLES2.functional.shaders.functions.qualifiers.out_float_vertex
dEQP-GLES3.functional.shaders.functions.datatypes.struct_struct_fragment
dEQP-GLES3.functional.shaders.functions.datatypes.struct_nested_struct_vertex
dEQP-GLES3.functional.shaders.functions.datatypes.struct_nested_struct_fragment
+dEQP-GLES3.functional.shaders.functions.datatypes.struct_constructor_highp_in_fragment
dEQP-GLES3.functional.shaders.functions.qualifiers.in_float_vertex
dEQP-GLES3.functional.shaders.functions.qualifiers.in_float_fragment
dEQP-GLES3.functional.shaders.functions.qualifiers.out_float_vertex
""
end
+ case struct_constructor_highp_in_fragment
+ desc "passing highp vector to struct constructor in fragment shader yields all zeros"
+ vertex ""
+ ${VERTEX_DECLARATIONS}
+ void main()
+ {
+ ${VERTEX_OUTPUT}
+ }
+ ""
+ fragment ""
+ #ifdef GL_FRAGMENT_PRECISION_HIGH
+ #define PRECISION highp
+ #else
+ #define PRECISION mediump
+ #endif
+ struct Test {
+ PRECISION vec3 color;
+ } ;
+ void main() {
+ PRECISION vec3 color = vec3(0.2, 2.0, 0.1);
+ Test test = Test(color);
+ // Bias the color so all components are guaranteed > 1.0.
+ gl_FragColor = vec4(vec3(0.25, 0.55, 0.65) + vec3(4.0, 0.25, 4.0) * test.color, 1.0);
+ }
+ ""
+ end
end # datatypes
""
end
+ case struct_constructor_highp_in_fragment
+ version 300 es
+ desc "passing highp vector to struct constructor in fragment shader yields all zeros"
+ vertex ""
+ #version 300 es
+ ${VERTEX_DECLARATIONS}
+ void main()
+ {
+ ${VERTEX_OUTPUT}
+ }
+ ""
+ fragment ""
+ #version 300 es
+ ${FRAGMENT_DECLARATIONS}
+ #ifdef GL_FRAGMENT_PRECISION_HIGH
+ #define PRECISION highp
+ #else
+ #define PRECISION mediump
+ #endif
+ struct Test {
+ PRECISION vec3 color;
+ } ;
+ void main() {
+ PRECISION vec3 color = vec3(0.2, 2.0, 0.1);
+ Test test = Test(color);
+ // Bias the color so all components are guaranteed > 1.0.
+ ${FRAG_COLOR} = vec4(vec3(0.25, 0.55, 0.65) + vec3(4.0, 0.25, 4.0) * test.color, 1.0);
+ }
+ ""
+ end
+
end # datatypes