Merge "GLES3 tests for equality of structs with array members" am: fc76a6f2b1 am: 2fe7b09918
am: 6d6ce7d1c3
Change-Id: Ie489b5f413b75816c1de4f542d292966ea0b1796
diff --git a/android/cts/master/gles3-master.txt b/android/cts/master/gles3-master.txt
index 15ec145..9a11912 100644
--- a/android/cts/master/gles3-master.txt
+++ b/android/cts/master/gles3-master.txt
@@ -16241,6 +16241,8 @@
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
diff --git a/modules/gles3/functional/es3fShaderStructTests.cpp b/modules/gles3/functional/es3fShaderStructTests.cpp
index ad80a9a..66b9559 100644
--- a/modules/gles3/functional/es3fShaderStructTests.cpp
+++ b/modules/gles3/functional/es3fShaderStructTests.cpp
@@ -1120,6 +1120,39 @@
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