[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