Add test for vec.swizzle *= matrix
authorChris Forbes <chrisforbes@google.com>
Wed, 19 Sep 2018 22:49:52 +0000 (15:49 -0700)
committerAlexander Galazin <Alexander.Galazin@arm.com>
Wed, 3 Oct 2018 06:55:10 +0000 (02:55 -0400)
Discovered as a bug in SwiftShader by GraphicsFuzz.

New tests:
dEQP-GLES2.functional.shaders.misc.compound_assignment.mul_swizzled_vec_by_matrix_*

Components: AOSP
Bug: b/116259485
VK-GL-CTS Issue: 1368

Change-Id: Ic7eabf564a5e024f064a0a19a919f1238c0489b4

android/cts/master/gles2-master.txt
data/gles2/shaders/misc.test [new file with mode: 0644]
external/openglcts/data/mustpass/gles/aosp_mustpass/3.2.5.x/gles2-master.txt
external/openglcts/data/mustpass/gles/aosp_mustpass/master/gles2-master.txt
modules/gles2/functional/es2fFunctionalTests.cpp

index 8217ac7..5cbd5dc 100644 (file)
@@ -2328,6 +2328,8 @@ dEQP-GLES2.functional.shaders.invalid_implicit_conversions.invalid_implicit_conv
 dEQP-GLES2.functional.shaders.invalid_implicit_conversions.invalid_implicit_conversions.div_vec4_ivec4_vec4_fragment
 dEQP-GLES2.functional.shaders.invalid_implicit_conversions.invalid_implicit_conversions.div_vec4_ivec4_ivec4_vertex
 dEQP-GLES2.functional.shaders.invalid_implicit_conversions.invalid_implicit_conversions.div_vec4_ivec4_ivec4_fragment
+dEQP-GLES2.functional.shaders.misc.compound_assignment.mul_swizzled_vec_by_matrix_vertex
+dEQP-GLES2.functional.shaders.misc.compound_assignment.mul_swizzled_vec_by_matrix_fragment
 dEQP-GLES2.functional.shaders.indexing.varying_array.float_static_write_static_read
 dEQP-GLES2.functional.shaders.indexing.varying_array.float_static_write_static_loop_read
 dEQP-GLES2.functional.shaders.indexing.varying_array.float_static_write_dynamic_loop_read
diff --git a/data/gles2/shaders/misc.test b/data/gles2/shaders/misc.test
new file mode 100644 (file)
index 0000000..b1bde2b
--- /dev/null
@@ -0,0 +1,18 @@
+group compound_assignment "Compound assignments with interesting lvalues"
+
+       case mul_swizzled_vec_by_matrix
+               values { output vec4 out0 = vec4(1.0, 2.0, 3.0, 4.0); }
+               both ""
+                       precision highp float;
+                       ${DECLARATIONS}
+
+                       void main()
+                       {
+                               out0 = vec4(1.0, 2.0, 3.0, 4.0);
+                               out0.xy *= mat2(1.0, 0.0, 0.0, 1.0);
+                               ${OUTPUT}
+                       }
+               ""
+       end
+
+end # compound_assignment
index 18357ce..467f87a 100644 (file)
@@ -2728,6 +2728,8 @@ dEQP-GLES2.functional.shaders.invalid_implicit_conversions.invalid_implicit_conv
 dEQP-GLES2.functional.shaders.invalid_implicit_conversions.invalid_implicit_conversions.div_vec4_ivec4_vec4_fragment
 dEQP-GLES2.functional.shaders.invalid_implicit_conversions.invalid_implicit_conversions.div_vec4_ivec4_ivec4_vertex
 dEQP-GLES2.functional.shaders.invalid_implicit_conversions.invalid_implicit_conversions.div_vec4_ivec4_ivec4_fragment
+dEQP-GLES2.functional.shaders.misc.compound_assignment.mul_swizzled_vec_by_matrix_vertex
+dEQP-GLES2.functional.shaders.misc.compound_assignment.mul_swizzled_vec_by_matrix_fragment
 dEQP-GLES2.functional.shaders.indexing.varying_array.float_static_write_static_read
 dEQP-GLES2.functional.shaders.indexing.varying_array.float_static_write_dynamic_read
 dEQP-GLES2.functional.shaders.indexing.varying_array.float_static_write_static_loop_read
index ab7641d..f59d7d6 100644 (file)
@@ -2870,6 +2870,8 @@ dEQP-GLES2.functional.shaders.invalid_implicit_conversions.invalid_implicit_conv
 dEQP-GLES2.functional.shaders.invalid_implicit_conversions.invalid_implicit_conversions.div_vec4_ivec4_vec4_fragment
 dEQP-GLES2.functional.shaders.invalid_implicit_conversions.invalid_implicit_conversions.div_vec4_ivec4_ivec4_vertex
 dEQP-GLES2.functional.shaders.invalid_implicit_conversions.invalid_implicit_conversions.div_vec4_ivec4_ivec4_fragment
+dEQP-GLES2.functional.shaders.misc.compound_assignment.mul_swizzled_vec_by_matrix_vertex
+dEQP-GLES2.functional.shaders.misc.compound_assignment.mul_swizzled_vec_by_matrix_fragment
 dEQP-GLES2.functional.shaders.indexing.varying_array.float_static_write_static_read
 dEQP-GLES2.functional.shaders.indexing.varying_array.float_static_write_dynamic_read
 dEQP-GLES2.functional.shaders.indexing.varying_array.float_static_write_static_loop_read
index cd7b59a..7094be4 100644 (file)
@@ -136,6 +136,7 @@ public:
                addChild(new ShaderExecuteTest(m_context, "qualification_order",                        "Order of Qualification Tests"));
                addChild(new ShaderExecuteTest(m_context, "scoping",                                            "Scoping of Declarations"));
                addChild(new ShaderExecuteTest(m_context, "invalid_implicit_conversions",       "Invalid Implicit Conversions"));
+               addChild(new ShaderExecuteTest(m_context, "misc",                                                       "Miscellaneous Tests"));
 
 
                addChild(new ShaderIndexingTests                (m_context));