diff options
author | Roland Scheidegger <[email protected]> | 2013-02-15 03:15:43 +0100 |
---|---|---|
committer | Roland Scheidegger <[email protected]> | 2013-02-16 02:40:59 +0100 |
commit | f1ab67c13ab97f19c08d99c6ba101edc7d7b80e6 (patch) | |
tree | f6f4833be3ab74527a90daa15893b6fff716b582 /src/gallium/auxiliary/tgsi/tgsi_text.c | |
parent | cb2e6782945d5ea6cc26f3f47d6ee04f48caf529 (diff) |
gallivm/tgsi: fix issues with sample opcodes
We need to encode them as Texture instructions since the NumOffsets field
is encoded there. However, we don't encode the actual target in there, this
is derived from the sampler view src later.
Reviewed-by: Jose Fonseca <[email protected]>
Diffstat (limited to 'src/gallium/auxiliary/tgsi/tgsi_text.c')
-rw-r--r-- | src/gallium/auxiliary/tgsi/tgsi_text.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/gallium/auxiliary/tgsi/tgsi_text.c b/src/gallium/auxiliary/tgsi/tgsi_text.c index 1267e79edb7..5abcb456387 100644 --- a/src/gallium/auxiliary/tgsi/tgsi_text.c +++ b/src/gallium/auxiliary/tgsi/tgsi_text.c @@ -941,6 +941,17 @@ parse_instruction( inst.Instruction.NumDstRegs = info->num_dst; inst.Instruction.NumSrcRegs = info->num_src; + if (i >= TGSI_OPCODE_SAMPLE && i <= TGSI_OPCODE_GATHER4) { + /* + * These are not considered tex opcodes here (no additional + * target argument) however we're required to set the Texture + * bit so we can set the number of tex offsets (offsets aren't + * actually handled here yet in any case). + */ + inst.Instruction.Texture = 1; + inst.Texture.Texture = TGSI_TEXTURE_UNKNOWN; + } + /* Parse instruction operands. */ for (i = 0; i < info->num_dst + info->num_src + info->is_tex; i++) { |