mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-03 09:20:13 +01:00
nv50/ir: fix image stores with indirect handles
Having this if statement here prevented the next if statement from being reached in the case of image stores, which is needed for instructions with indirect bindless handles like "STORE TEMP[ADDR[2].x+1](1) ...". Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Karol Herbst <kherbst@redhat.com> Signed-off-by: Karol Herbst <kherbst@redhat.com>
This commit is contained in:
parent
d7c4ce1d1d
commit
d885303a38
1 changed files with 5 additions and 4 deletions
|
|
@ -1570,6 +1570,11 @@ bool Source::scanInstruction(const struct tgsi_full_instruction *inst)
|
|||
if (insn.dstCount()) {
|
||||
Instruction::DstRegister dst = insn.getDst(0);
|
||||
|
||||
if (insn.getOpcode() == TGSI_OPCODE_STORE &&
|
||||
dst.getFile() != TGSI_FILE_MEMORY) {
|
||||
info->io.globalAccess |= 0x2;
|
||||
}
|
||||
|
||||
if (dst.getFile() == TGSI_FILE_OUTPUT) {
|
||||
if (dst.isIndirect(0))
|
||||
for (unsigned i = 0; i < info->numOutputs; ++i)
|
||||
|
|
@ -1587,10 +1592,6 @@ bool Source::scanInstruction(const struct tgsi_full_instruction *inst)
|
|||
if (isEdgeFlagPassthrough(insn))
|
||||
info->io.edgeFlagIn = insn.getSrc(0).getIndex(0);
|
||||
} else
|
||||
if (dst.getFile() != TGSI_FILE_MEMORY &&
|
||||
insn.getOpcode() == TGSI_OPCODE_STORE) {
|
||||
info->io.globalAccess |= 0x2;
|
||||
} else
|
||||
if (dst.getFile() == TGSI_FILE_TEMPORARY) {
|
||||
if (dst.isIndirect(0))
|
||||
indirectTempArrays.insert(dst.getArrayId());
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue