summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/nv50/codegen/nv50_ir_from_tgsi.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gallium/drivers/nv50/codegen/nv50_ir_from_tgsi.cpp')
-rw-r--r--src/gallium/drivers/nv50/codegen/nv50_ir_from_tgsi.cpp34
1 files changed, 18 insertions, 16 deletions
diff --git a/src/gallium/drivers/nv50/codegen/nv50_ir_from_tgsi.cpp b/src/gallium/drivers/nv50/codegen/nv50_ir_from_tgsi.cpp
index 82e2360..334c584 100644
--- a/src/gallium/drivers/nv50/codegen/nv50_ir_from_tgsi.cpp
+++ b/src/gallium/drivers/nv50/codegen/nv50_ir_from_tgsi.cpp
@@ -548,7 +548,7 @@ static nv50_ir::operation translateOpcode(uint opcode)
NV50_IR_OPCODE_CASE(SAMPLE_D, TXD);
NV50_IR_OPCODE_CASE(SAMPLE_L, TXL);
NV50_IR_OPCODE_CASE(GATHER4, TXG);
- NV50_IR_OPCODE_CASE(RESINFO, TXQ);
+ NV50_IR_OPCODE_CASE(SVIEWINFO, TXQ);
NV50_IR_OPCODE_CASE(END, EXIT);
@@ -597,8 +597,8 @@ public:
int clipVertexOutput;
- uint8_t *resourceTargets; // TGSI_TEXTURE_*
- unsigned resourceCount;
+ uint8_t *samplerViewTargets; // TGSI_TEXTURE_*
+ unsigned samplerViewCount;
private:
int inferSysValDirection(unsigned sn) const;
@@ -617,7 +617,7 @@ Source::Source(struct nv50_ir_prog_info *prog) : info(prog)
if (prog->dbgFlags & NV50_IR_DEBUG_BASIC)
tgsi_dump(tokens, 0);
- resourceTargets = NULL;
+ samplerViewTargets = NULL;
mainTempsInLMem = FALSE;
}
@@ -632,8 +632,8 @@ Source::~Source()
if (info->immd.type)
FREE(info->immd.type);
- if (resourceTargets)
- delete[] resourceTargets;
+ if (samplerViewTargets)
+ delete[] samplerViewTargets;
}
bool Source::scanSource()
@@ -650,8 +650,8 @@ bool Source::scanSource()
clipVertexOutput = -1;
- resourceCount = scan.file_max[TGSI_FILE_RESOURCE] + 1;
- resourceTargets = new uint8_t[resourceCount];
+ samplerViewCount = scan.file_max[TGSI_FILE_SAMPLER_VIEW] + 1;
+ samplerViewTargets = new uint8_t[samplerViewCount];
info->immd.bufSize = 0;
tempArrayCount = 0;
@@ -874,9 +874,9 @@ bool Source::scanDeclaration(const struct tgsi_full_declaration *decl)
info->sv[i].input = inferSysValDirection(sn);
}
break;
- case TGSI_FILE_RESOURCE:
+ case TGSI_FILE_SAMPLER_VIEW:
for (i = first; i <= last; ++i)
- resourceTargets[i] = decl->Resource.Resource;
+ samplerViewTargets[i] = decl->SamplerView.Resource;
break;
case TGSI_FILE_IMMEDIATE_ARRAY:
{
@@ -1000,13 +1000,15 @@ bool Source::scanInstruction(const struct tgsi_full_instruction *inst)
nv50_ir::TexInstruction::Target
Instruction::getTexture(const tgsi::Source *code, int s) const
{
- if (insn->Instruction.Texture) {
- return translateTexture(insn->Texture.Texture);
- } else {
+ switch (getSrc(s).getFile()) {
+ case TGSI_FILE_SAMPLER_VIEW: {
// XXX: indirect access
unsigned int r = getSrc(s).getIndex(0);
- assert(r < code->resourceCount);
- return translateTexture(code->resourceTargets[r]);
+ assert(r < code->samplerViewCount);
+ return translateTexture(code->samplerViewTargets[r]);
+ }
+ default:
+ return translateTexture(insn->Texture.Texture);
}
}
@@ -2042,7 +2044,7 @@ Converter::handleInstruction(const struct tgsi_full_instruction *insn)
handleTXF(dst0, 1);
break;
case TGSI_OPCODE_TXQ:
- case TGSI_OPCODE_RESINFO:
+ case TGSI_OPCODE_SVIEWINFO:
handleTXQ(dst0, TXQ_DIMS);
break;
case TGSI_OPCODE_F2I: