From 9d4d9e61504c7e3ac760a88f543cf940d52a20fe Mon Sep 17 00:00:00 2001 From: Pierre-Eric Pelloux-Prayer Date: Wed, 8 Jan 2025 15:41:02 +0100 Subject: [PATCH] ac/llvm: enable wqm for ac_build_quad_swizzle from ac_build_fs_interp_mov MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Without this, WQM is only used for the lds_param_load like this: s_wqm_b64 exec, exec lds_param_load v5, attr0.x wait_vdst:15 s_mov_b64 exec, s[0:1] v_mov_b32_dpp v5, v5 quad_perm:[0,0,0,0] row_mask:0xf bank_mask:0xf With this change we get: s_wqm_b64 exec, exec lds_param_load v5, attr0.x wait_vdst:15 s_mov_b64 exec, s[0:1] ... s_wqm_b64 exec, exec v_mov_b32_dpp v5, v5 quad_perm:[0,0,0,0] row_mask:0xf bank_mask:0xf s_mov_b64 exec, s[0:1] This fixes KHR-GL46.shaders.uniform_block.random.nested_structs_instance_arrays.0 and other similar tests with LLVM. Reviewed-by: Timur Kristóf Reviewed-by: Marek Olšák Part-of: --- src/amd/llvm/ac_llvm_build.c | 2 +- src/gallium/drivers/radeonsi/ci/gfx11-navi31-fail.csv | 9 +-------- 2 files changed, 2 insertions(+), 9 deletions(-) diff --git a/src/amd/llvm/ac_llvm_build.c b/src/amd/llvm/ac_llvm_build.c index 514dc885833..0fd1381c72f 100644 --- a/src/amd/llvm/ac_llvm_build.c +++ b/src/amd/llvm/ac_llvm_build.c @@ -758,7 +758,7 @@ LLVMValueRef ac_build_fs_interp_mov(struct ac_llvm_context *ctx, unsigned parame p = ac_build_intrinsic(ctx, "llvm.amdgcn.lds.param.load", ctx->f32, args, 3, 0); p = ac_build_intrinsic(ctx, "llvm.amdgcn.wqm.f32", ctx->f32, &p, 1, 0); - p = ac_build_quad_swizzle(ctx, p, parameter, parameter, parameter, parameter, false); + p = ac_build_quad_swizzle(ctx, p, parameter, parameter, parameter, parameter, true); return ac_build_intrinsic(ctx, "llvm.amdgcn.wqm.f32", ctx->f32, &p, 1, 0); } else { args[0] = LLVMConstInt(ctx->i32, (parameter + 2) % 3, 0); diff --git a/src/gallium/drivers/radeonsi/ci/gfx11-navi31-fail.csv b/src/gallium/drivers/radeonsi/ci/gfx11-navi31-fail.csv index 424cd4e8aa3..20188cd2528 100644 --- a/src/gallium/drivers/radeonsi/ci/gfx11-navi31-fail.csv +++ b/src/gallium/drivers/radeonsi/ci/gfx11-navi31-fail.csv @@ -31,7 +31,6 @@ spec@khr_texture_compression_astc@sliced-3d-miptree-gles srgb-fp@sRGB decode ful # glcts failures GTF-GL46.gtf30.GL3Tests.fragment_coord_conventions.fragment_coord_conventions_multisample,Fail GTF-GL46.gtf32.GL3Tests.fragment_coord_conventions.fragment_coord_conventions_32_multisample,Fail -KHR-GL46.shaders.uniform_block.random.nested_structs_instance_arrays.0,Fail ## Fail because GFX10+ removed MS texture support (see si_get_sparse_texture_virtual_page_size) KHR-GL46.sparse_texture2_tests.SparseTexture2Allocation_texture_2d_multisample_array_r11f_g11f_b10f,Fail KHR-GL46.sparse_texture2_tests.SparseTexture2Allocation_texture_2d_multisample_array_r16,Fail @@ -689,11 +688,5 @@ KHR-GL46.transform_feedback_overflow_query_ARB.advanced-single-stream-separate-a KHR-GL46.transform_feedback_overflow_query_ARB.multiple-streams-multiple-buffers-per-stream,Fail KHR-GL46.transform_feedback_overflow_query_ARB.multiple-streams-one-buffer-per-stream,Fail -# escts failures (pass with ACO) -KHR-GLES3.shaders.uniform_block.random.nested_structs_instance_arrays.0,Fail +# escts failures (incorrect glMemoryBarrier usage in the test) KHR-GLES31.core.shader_image_load_store.basic-allFormats-store-fs,Fail - -# deqp failures (pass with ACO) -dEQP-GLES3.functional.ubo.random.all_per_block_buffers.29,Fail -dEQP-GLES3.functional.ubo.random.basic_instance_arrays.22,Fail -dEQP-GLES3.functional.ubo.random.nested_structs.4,Fail