diff options
author | Christoph Bumiller <[email protected]> | 2010-09-09 19:12:54 +0200 |
---|---|---|
committer | Christoph Bumiller <[email protected]> | 2010-09-09 19:21:34 +0200 |
commit | f30810cb68a53c4fef360778a230126ed0ee0ee3 (patch) | |
tree | 6b4f2fe6919261a5e356f5d75078c78a941f6cb7 /src/gallium/drivers/nv50/nv50_program.c | |
parent | d8dcff79702860eae92d3d35b461c9b71114c1c5 (diff) |
nv50: use actual loads/stores if TEMPs are accessed indirectly
Diffstat (limited to 'src/gallium/drivers/nv50/nv50_program.c')
-rw-r--r-- | src/gallium/drivers/nv50/nv50_program.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/gallium/drivers/nv50/nv50_program.c b/src/gallium/drivers/nv50/nv50_program.c index 925028700cd..24952f70f14 100644 --- a/src/gallium/drivers/nv50/nv50_program.c +++ b/src/gallium/drivers/nv50/nv50_program.c @@ -168,10 +168,17 @@ prog_inst(struct nv50_translation_info *ti, inst->Src[0].Register.File == TGSI_FILE_INPUT && dst->Index == ti->edgeflag_out) ti->p->vp.edgeflag = inst->Src[0].Register.Index; + } else + if (inst->Dst[0].Register.File == TGSI_FILE_TEMPORARY) { + if (inst->Dst[0].Register.Indirect) + ti->store_to_memory = TRUE; } for (s = 0; s < inst->Instruction.NumSrcRegs; ++s) { src = &inst->Src[s].Register; + if (src->File == TGSI_FILE_TEMPORARY) + if (inst->Src[s].Register.Indirect) + ti->store_to_memory = TRUE; if (src->File != TGSI_FILE_INPUT) continue; mask = nv50_tgsi_src_mask(inst, s); |