diff options
author | Marek Olšák <[email protected]> | 2019-09-13 23:58:52 -0400 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2019-10-09 17:12:30 -0400 |
commit | 1881b35bf6a13905ccbf8b232921677c888eda35 (patch) | |
tree | 5974ae725f95c7c94aed3ca2321870df1d43f87f /src/gallium/drivers | |
parent | 0a0def7317571d94d68a6b515ffe7ea8a37f6f1c (diff) |
radeonsi: set the sample index for shader images correctly
Acked-by: Pierre-Eric Pelloux-Prayer <[email protected]>
Diffstat (limited to 'src/gallium/drivers')
-rw-r--r-- | src/gallium/drivers/radeonsi/si_shader_tgsi_mem.c | 13 |
1 files 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) { |