From 8cd16839445bb67dd70d4a259cb409dfb503da84 Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Fri, 26 Aug 2022 08:56:14 +0200 Subject: [PATCH] aco: fix wrong size for 1D images and A16 on GFX9 Size is in bytes, not bits. Fixes plenty of crashes in CI, like dEQP-VK.synchronization.op.single_queue.event.write_image_fragment_read_image_tess_eval.image_128_r32_uint. Fixes: 46f6e2ddbbb ("aco: Implement storage image A16.") Signed-off-by: Samuel Pitoiset Reviewed-by: Georg Lehmann Reviewed-by: Rhys Perry Part-of: --- src/amd/compiler/aco_instruction_selection.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/amd/compiler/aco_instruction_selection.cpp b/src/amd/compiler/aco_instruction_selection.cpp index 0cb4494804c..6c6caf5c677 100644 --- a/src/amd/compiler/aco_instruction_selection.cpp +++ b/src/amd/compiler/aco_instruction_selection.cpp @@ -6142,7 +6142,7 @@ get_image_coords(isel_context* ctx, const nir_intrinsic_instr* instr) if (gfx9_1d) { coords.emplace_back(emit_extract_vector(ctx, src0, 0, rc)); - coords.emplace_back(bld.copy(bld.def(rc), Operand::zero(a16 ? 16 : 32))); + coords.emplace_back(bld.copy(bld.def(rc), Operand::zero(a16 ? 2 : 4))); if (is_array) coords.emplace_back(emit_extract_vector(ctx, src0, 1, rc)); } else {