[Mesa-dev] [PATCH 3/3] radeonsi: get the sampler view type from inst->Texture for TG4

Samuel Pitoiset samuel.pitoiset at gmail.com
Wed May 17 09:17:56 UTC 2017


This will also magically fix this special lowering for
bindless samplers.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
---
 src/gallium/drivers/radeonsi/si_shader_tgsi_mem.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/src/gallium/drivers/radeonsi/si_shader_tgsi_mem.c b/src/gallium/drivers/radeonsi/si_shader_tgsi_mem.c
index 13b46949d0..cd40d3eeaf 100644
--- a/src/gallium/drivers/radeonsi/si_shader_tgsi_mem.c
+++ b/src/gallium/drivers/radeonsi/si_shader_tgsi_mem.c
@@ -1772,17 +1772,16 @@ static void build_tex_intrinsic(const struct lp_build_tgsi_action *action,
 	/* The hardware needs special lowering for Gather4 with integer formats. */
 	if (ctx->screen->b.chip_class <= VI &&
 	    opcode == TGSI_OPCODE_TG4) {
-		struct tgsi_shader_info *info = &ctx->shader->selector->info;
 		/* This will also work with non-constant indexing because of how
 		 * glsl_to_tgsi works and we intent to preserve that behavior.
 		 */
 		const unsigned src_idx = 2;
-		unsigned sampler = inst->Src[src_idx].Register.Index;
 
 		assert(inst->Src[src_idx].Register.File == TGSI_FILE_SAMPLER);
+		assert(inst->Texture.ReturnType != TGSI_RETURN_TYPE_UNKNOWN);
 
-		if (info->sampler_type[sampler] == TGSI_RETURN_TYPE_SINT ||
-		    info->sampler_type[sampler] == TGSI_RETURN_TYPE_UINT)
+		if (inst->Texture.ReturnType == TGSI_RETURN_TYPE_SINT ||
+		    inst->Texture.ReturnType == TGSI_RETURN_TYPE_UINT)
 			si_lower_gather4_integer(ctx, &args, target);
 	}
 
-- 
2.13.0



More information about the mesa-dev mailing list