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: 46f6e2ddbb ("aco: Implement storage image A16.")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18266>
This commit is contained in:
Samuel Pitoiset 2022-08-26 08:56:14 +02:00 committed by Marge Bot
parent 0250925f07
commit 8cd1683944

View file

@ -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 {