diff options
author | Keith Whitwell <keithw@vmware.com> | 2009-11-06 10:24:19 +0000 |
---|---|---|
committer | Keith Whitwell <keithw@vmware.com> | 2009-11-06 10:24:19 +0000 |
commit | 212fb8adbd0e5e28a5d20b0cc03cde46df2831f4 (patch) | |
tree | 2aaa9b29a1ec4eac62d5893d56c701d23c5ea13c /src/gallium/drivers/i965/brw_vs_emit.c | |
parent | 1d6b5957c6be221feb836bc25686246f67769bce (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.c | 11 |
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 */ |