aboutsummaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/nv50/codegen/nv50_ir_build_util.h
diff options
context:
space:
mode:
authorChristoph Bumiller <[email protected]>2013-02-23 00:39:23 +0100
committerChristoph Bumiller <[email protected]>2013-03-12 12:55:35 +0100
commitc2dfcd7f0eaf4eda375eb320e0e87793a80ef92d (patch)
treefc72ee7b904fad16fb44b7c991306bfd604166aa /src/gallium/drivers/nv50/codegen/nv50_ir_build_util.h
parentd105b3df14283a4dd80cecc1e6cab58432368ef6 (diff)
nv50/ir/tgsi: handle TGSI_OPCODE_LOAD,STORE
Squashed and (heavily) modified original patches by Francisco Jerez: nv50/ir/tgsi: Implement resource LOAD/STORE (wip). nv50/ir/tgsi: Emit SUST/SULD for surface access, and add CB LOAD/STORE support nv50/ir/tgsi: Fix/clean up the LOAD/STORE handling code. Left out for now: nv50/ir/tgsi: Resource indirect indexing Treating raw, read-only surfaces as constant buffers (CBs) was removed because CBs are limited to a size of 64 KiB which isn't desireable, and because this decision should probably be made by the state tracker. If we used a number of CB slots for surfaces, it might find that we cannot accomodate the advertised limit.
Diffstat (limited to 'src/gallium/drivers/nv50/codegen/nv50_ir_build_util.h')
-rw-r--r--src/gallium/drivers/nv50/codegen/nv50_ir_build_util.h6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/gallium/drivers/nv50/codegen/nv50_ir_build_util.h b/src/gallium/drivers/nv50/codegen/nv50_ir_build_util.h
index 963c3505083..f48dbc21168 100644
--- a/src/gallium/drivers/nv50/codegen/nv50_ir_build_util.h
+++ b/src/gallium/drivers/nv50/codegen/nv50_ir_build_util.h
@@ -75,8 +75,10 @@ public:
CmpInstruction *mkCmp(operation, CondCode, DataType,
Value *,
Value *, Value *, Value * = NULL);
- Instruction *mkTex(operation, TexTarget, uint8_t tic, uint8_t tsc,
- Value **def, Value **src);
+ TexInstruction *mkTex(operation, TexTarget,
+ uint16_t tic, uint16_t tsc,
+ const std::vector<Value *> &def,
+ const std::vector<Value *> &src);
Instruction *mkQuadop(uint8_t qop, Value *, uint8_t l, Value *, Value *);
FlowInstruction *mkFlow(operation, void *target, CondCode, Value *pred);