summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/i965/brw_vs_emit.c
diff options
context:
space:
mode:
authorKeith Whitwell <keithw@vmware.com>2009-11-06 10:24:19 +0000
committerKeith Whitwell <keithw@vmware.com>2009-11-06 10:24:19 +0000
commit212fb8adbd0e5e28a5d20b0cc03cde46df2831f4 (patch)
tree2aaa9b29a1ec4eac62d5893d56c701d23c5ea13c /src/gallium/drivers/i965/brw_vs_emit.c
parent1d6b5957c6be221feb836bc25686246f67769bce (diff)
i965g: don't set up vs stack register for non-branching shaders
Diffstat (limited to 'src/gallium/drivers/i965/brw_vs_emit.c')
-rw-r--r--src/gallium/drivers/i965/brw_vs_emit.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/gallium/drivers/i965/brw_vs_emit.c b/src/gallium/drivers/i965/brw_vs_emit.c
index 25aea87b8f..e0fadc8dce 100644
--- a/src/gallium/drivers/i965/brw_vs_emit.c
+++ b/src/gallium/drivers/i965/brw_vs_emit.c
@@ -252,8 +252,10 @@ static void brw_vs_alloc_regs( struct brw_vs_compile *c )
}
#endif
- c->stack = brw_uw16_reg(BRW_GENERAL_REGISTER_FILE, reg, 0);
- reg += 2;
+ if (c->vp->has_flow_control) {
+ c->stack = brw_uw16_reg(BRW_GENERAL_REGISTER_FILE, reg, 0);
+ reg += 2;
+ }
/* Some opcodes need an internal temporary:
*/
@@ -1592,7 +1594,10 @@ void brw_vs_emit(struct brw_vs_compile *c)
/* Static register allocation
*/
brw_vs_alloc_regs(c);
- brw_MOV(p, get_addr_reg(c->stack_index), brw_address(c->stack));
+
+ if (c->vp->has_flow_control) {
+ brw_MOV(p, get_addr_reg(c->stack_index), brw_address(c->stack));
+ }
/* Instructions
*/