[Mesa-dev] [PATCH] tgsi: skip texture query opcodes when examining texture targets

Michel Dänzer michel at daenzer.net
Thu Mar 31 07:12:18 UTC 2016


On 31.03.2016 00:58, Brian Paul wrote:
> Should fix the assertion in piglit
> spec at arb_gpu_shader5@texturegather at fs-r-none-shadow-2d when the
> TXQ instruction specifies a 2D target but the sampler view was
> declared as SHADOW2D.
> ---
>  src/gallium/auxiliary/tgsi/tgsi_scan.c | 16 +++++++++++++++-
>  1 file changed, 15 insertions(+), 1 deletion(-)
> 
> diff --git a/src/gallium/auxiliary/tgsi/tgsi_scan.c b/src/gallium/auxiliary/tgsi/tgsi_scan.c
> index 76a6fef..d90fb1d 100644
> --- a/src/gallium/auxiliary/tgsi/tgsi_scan.c
> +++ b/src/gallium/auxiliary/tgsi/tgsi_scan.c
> @@ -54,6 +54,20 @@ is_memory_file(unsigned file)
>  }
>  
>  
> +/**
> + * Is the opcode a "true" texture instruction which samples from a
> + * texture map?
> + */
> +static bool
> +is_texture_inst(unsigned opcode)
> +{
> +   return (opcode != TGSI_OPCODE_TXQ &&
> +           opcode != TGSI_OPCODE_TXQS &&
> +           opcode != TGSI_OPCODE_TXQ_LZ &&
> +           opcode != TGSI_OPCODE_LODQ &&
> +           tgsi_get_opcode_info(opcode)->is_tex);
> +}
> +
>  static void
>  scan_instruction(struct tgsi_shader_info *info,
>                   const struct tgsi_full_instruction *fullinst,
> @@ -189,7 +203,7 @@ scan_instruction(struct tgsi_shader_info *info,
>           assert(index < Elements(info->is_msaa_sampler));
>           assert(index < PIPE_MAX_SAMPLERS);
>  
> -         if (tgsi_get_opcode_info(fullinst->Instruction.Opcode)->is_tex) {
> +         if (is_texture_inst(fullinst->Instruction.Opcode)) {
>              const unsigned target = fullinst->Texture.Texture;
>              assert(target < TGSI_TEXTURE_UNKNOWN);
>              /* for texture instructions, check that the texture instruction
> 

Thanks Brian.

Reviewed-and-Tested-by: Michel Dänzer <michel.daenzer at amd.com>


-- 
Earthling Michel Dänzer               |               http://www.amd.com
Libre software enthusiast             |             Mesa and X developer


More information about the mesa-dev mailing list