The new test case adds regression coverage for the Qualcomm driver
shader compiler crash seen in Android N:
https://crbug.com/695687
It is a port of this WebGL test case:
https://github.com/KhronosGroup/WebGL/blob/master/sdk/tests/conformance2/glsl3/compare-structs-containing-arrays.html
New tests: dEQP-GLES3.functional.shaders.struct.local.array_member_equality_vertex, dEQP-GLES3.functional.shaders.struct.local.array_member_equality_fragment
Components: AOSP
Change-Id: Ie130439f80fddb081fb36db02c24a9e18f5c4bca
dEQP-GLES3.functional.shaders.struct.local.dynamic_loop_struct_array_fragment
dEQP-GLES3.functional.shaders.struct.local.dynamic_loop_nested_struct_array_vertex
dEQP-GLES3.functional.shaders.struct.local.dynamic_loop_nested_struct_array_fragment
+dEQP-GLES3.functional.shaders.struct.local.array_member_equality_vertex
+dEQP-GLES3.functional.shaders.struct.local.array_member_equality_fragment
dEQP-GLES3.functional.shaders.struct.uniform.basic_vertex
dEQP-GLES3.functional.shaders.struct.uniform.basic_fragment
dEQP-GLES3.functional.shaders.struct.uniform.nested_vertex
c.color.y() = 1.0f;
c.color.z() = 1.0f;
});
+
+ LOCAL_STRUCT_CASE(array_member_equality, "Struct with array members equality",
+ LineStream()
+ << "${HEADER}"
+ << ""
+ << "struct S {"
+ << " bool m[2];"
+ << "};"
+ << ""
+ << "void main (void)"
+ << "{"
+ << " S a;"
+ << " a.m[0] = true;"
+ << " a.m[1] = false;"
+ << ""
+ << " S b;"
+ << " b.m[0] = true;"
+ << " b.m[1] = false;"
+ << ""
+ << " S c;"
+ << " c.m[0] = true;"
+ << " c.m[1] = true;"
+ << ""
+ << " ${DST} = vec4(0.0, 0.0, 1.0, 1.0);"
+ << " if (a == b) ${DST}.x = 1.0;"
+ << " if (a != c) ${DST}.y = 1.0;"
+ << " ${ASSIGN_POS}"
+ << "}",
+ {
+ c.color.x() = 1.0f;
+ c.color.y() = 1.0f;
+ c.color.z() = 1.0f;
+ });
}
class UniformStructTests : public TestCaseGroup