mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 11:48:06 +02:00
tgsi: skip texture query opcodes when examining texture targets
Should fix the assertion in piglit spec@arb_gpu_shader5@texturegather@fs-r-none-shadow-2d when the TXQ instruction specifies a 2D target but the sampler view was declared as SHADOW2D. Reviewed-by: Michel Dänzer <michel.daenzer@amd.com> Tested-by: Michel Dänzer <michel.daenzer@amd.com>
This commit is contained in:
parent
f96a403bc3
commit
9d7cd43988
1 changed files with 15 additions and 1 deletions
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue