Mesa (master): freedreno/ir3: Add a bunch more tests for cat6 opcodes.

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Mon Jul 20 19:57:24 UTC 2020


Module: Mesa
Branch: master
Commit: 62dcf7543216883fd084ec01784857423b232fe4
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=62dcf7543216883fd084ec01784857423b232fe4

Author: Eric Anholt <eric at anholt.net>
Date:   Wed Jul  8 16:09:48 2020 -0700

freedreno/ir3: Add a bunch more tests for cat6 opcodes.

This started with making note of some ldp/stp instructions from the blob
and how we differ from them.  In the process of fixing it, I accidentally
modified behavior of other opcodes, and the other instructions listed will
keep us from doing that.  I also dropped an old stl test that looks like I
took from after a shader 'end' instruction.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5815>

---

 src/freedreno/ir3/tests/disasm.c | 34 +++++++++++++++++++++++++++++++++-
 1 file changed, 33 insertions(+), 1 deletion(-)

diff --git a/src/freedreno/ir3/tests/disasm.c b/src/freedreno/ir3/tests/disasm.c
index 7e3d1df2a40..00658ac5b4e 100644
--- a/src/freedreno/ir3/tests/disasm.c
+++ b/src/freedreno/ir3/tests/disasm.c
@@ -92,8 +92,34 @@ static const struct test {
 	INSTR_6XX(a2802f00_00000001, "getsize (u16)(xyzw)hr0.x, r0.x, t#0"),
 
 	/* cat6 */
+
 	INSTR_6XX(c0c00000_00000000, "stg.f16 g[hr0.x], hr0.x, hr0.x"),
-	INSTR_6XX(c1100000_c1000000, "stl.f16 l[0], hr0.x, hr48.y"),
+	/* dEQP-GLES31.functional.tessellation.invariance.outer_edge_symmetry.isolines_equal_spacing_ccw */
+	INSTR_6XX(c0d20906_02800004, "stg.f32 g[r1.x+r1.z], r0.z, 2"), /* stg.a.f32 g[r1.x+(r1.z<<2)], r0.z, 2 */
+
+	/* TODO: We don't support disasm of stc yet and produce a stgb instead
+	 * (same as their disasm does for other families.  They're used as part
+	 * uniforms setup, followed by a shpe and then a load of the constant that
+	 * was stored in the dynamic part of the shader.
+	 */
+	/* dEQP-GLES3.functional.ubo.random.basic_arrays.0 */
+	/* INSTR_6XX(c7020020_01800000, "stc c[32], r0.x, 1"), */
+	/* dEQP-VK.image.image_size.cube_array.readonly_writeonly_1x1x12 */
+	/* INSTR_6XX(c7060020_03800000, "stc c[32], r0.x, 3"), */
+
+	/* dEQP-VK.image.image_size.cube_array.readonly_writeonly_1x1x12 */
+	INSTR_6XX(c0260200_03676100, "stib.untyped.1d.u32.3.imm.base0 r0.x, r0.w, 1"), /* stib.untyped.u32.1d.3.mode4.base0 r0.x, r0.w, 1 */
+	/* dEQP-VK.texture.filtering.cube.formats.a8b8g8r8_srgb_nearest_mipmap_nearest.txt */
+	INSTR_6XX(c0220200_0361b801, "ldib.typed.1d.f32.4.imm r0.x, r0.w, 1"), /* ldib.f32.1d.4.mode0.base0 r0.x, r0.w, 1 */
+
+	/* dEQP-GLES31.functional.tessellation.invariance.outer_edge_symmetry.isolines_equal_spacing_ccw */
+	INSTR_6XX(c2c21100_04800006, "stlw.f32 l[r2.x], r0.w, 4"),
+	INSTR_6XX(c2c20f00_01800004, "stlw.f32 l[r1.w], r0.z, 1"),
+	INSTR_6XX(c2860003_02808011, "ldlw.u32 r0.w, l[r0.z+8], 2"),
+
+	/* dEQP-VK.compute.basic.shared_var_single_group */
+	INSTR_6XX(c1060500_01800008, "stl.u32 l[r0.z], r1.x, 1"),
+	INSTR_6XX(c0460001_01804001, "ldl.u32 r0.y, l[r0.y], 1"),
 
 	/* resinfo */
 	INSTR_6XX(c0260000_0063c200, "resinfo.untyped.2d.u32.1.imm r0.x, 0"), /* resinfo.u32.2d.mode0.base0 r0.x, 0 */
@@ -152,6 +178,12 @@ static const struct test {
 	INSTR_6XX(c0260000_00478400, "ldc.offset2.1.imm r0.x, r0.x, 0"), /* ldc.1.mode0.base0 r0.x, r0.x, 0 */
 	INSTR_6XX(c0260000_00478600, "ldc.offset3.1.imm r0.x, r0.x, 0"), /* ldc.1.mode0.base0 r0.x, r0.x, 0 */
 
+	/* dEQP-VK.glsl.struct.local.nested_struct_array_dynamic_index_fragment */
+	INSTR_6XX(c1425b50_01803e02, "stp.f32 p[r11.y+80], r960.y, 1"), /* stp.f32 p[r11.y-176], r0.y, 1 */
+	INSTR_6XX(c1425b98_02803e14, "stp.f32 p[r11.y-104], r962.z, 2"), /* stp.f32 p[r11.y-104], r2.z, 2 */
+	INSTR_6XX(c1465ba0_01803e2a, "stp.u32 p[r11.y-96], r965.y, 1"), /* stp.u32 p[r11.y-96], r5.y, 1 */
+	INSTR_6XX(c0860008_01860001, "ldp.u32 r2.x, p[r6.x], 1"),
+
 	/* dEQP-GLES31.functional.shaders.opaque_type_indexing.sampler.const_literal.fragment.sampler2d */
 	INSTR_6XX(a0c01f04_0cc00005, "sam (f32)(xyzw)r1.x, r0.z, s#6, t#6"),
 	/* dEQP-GLES31.functional.shaders.opaque_type_indexing.sampler.uniform.fragment.sampler2d (looks like maybe the compiler didn't figure out */



More information about the mesa-commit mailing list