From 1881b35bf6a13905ccbf8b232921677c888eda35 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Fri, 13 Sep 2019 23:58:52 -0400 Subject: [PATCH] radeonsi: set the sample index for shader images correctly Acked-by: Pierre-Eric Pelloux-Prayer --- src/gallium/drivers/radeonsi/si_shader_tgsi_mem.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_shader_tgsi_mem.c b/src/gallium/drivers/radeonsi/si_shader_tgsi_mem.c index a0f66d38c7c..243286cc629 100644 --- a/src/gallium/drivers/radeonsi/si_shader_tgsi_mem.c +++ b/src/gallium/drivers/radeonsi/si_shader_tgsi_mem.c @@ -276,18 +276,19 @@ static void image_fetch_coords( LLVMValueRef tmp; int chan; - if (target == TGSI_TEXTURE_2D_MSAA || - target == TGSI_TEXTURE_2D_ARRAY_MSAA) { - /* Need the sample index as well. */ - num_coords++; - } - for (chan = 0; chan < num_coords; ++chan) { tmp = lp_build_emit_fetch(bld_base, inst, src, chan); tmp = ac_to_integer(&ctx->ac, tmp); coords[chan] = tmp; } + if (target == TGSI_TEXTURE_2D_MSAA || + target == TGSI_TEXTURE_2D_ARRAY_MSAA) { + /* Need the sample index as well. */ + tmp = lp_build_emit_fetch(bld_base, inst, src, TGSI_SWIZZLE_W); + coords[chan] = ac_to_integer(&ctx->ac, tmp); + } + if (ctx->screen->info.chip_class == GFX9) { /* 1D textures are allocated and used as 2D on GFX9. */ if (target == TGSI_TEXTURE_1D) { -- 2.30.2