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
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
--- /dev/null
+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
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
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
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));