diff options
author | Eric Anholt <[email protected]> | 2009-08-07 14:20:56 -0700 |
---|---|---|
committer | Eric Anholt <[email protected]> | 2009-08-07 18:33:08 -0700 |
commit | 9f981ec27dffa562cf743b4690293569477b4553 (patch) | |
tree | 724104018cc0c34794447fa37e8043869e26d4bf /src/mesa/drivers/dri/i965/brw_vs_emit.c | |
parent | 7de5e60c18898715765d610313f9d33b1d1e89fb (diff) |
i965: Replace the subroutine-skipping jump in VS with a NOP if it's a NOP.
This showed a 1.9% (+/-.3%, n=3) improvement in OA performance with high
geometry settings.
Diffstat (limited to 'src/mesa/drivers/dri/i965/brw_vs_emit.c')
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_vs_emit.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_vs_emit.c b/src/mesa/drivers/dri/i965/brw_vs_emit.c index f56e9862e4c..83167b9258e 100644 --- a/src/mesa/drivers/dri/i965/brw_vs_emit.c +++ b/src/mesa/drivers/dri/i965/brw_vs_emit.c @@ -1262,7 +1262,11 @@ post_vs_emit( struct brw_vs_compile *c, /* patch up the END code to jump past subroutines, etc */ offset = last_inst - end_inst; - brw_set_src1(end_inst, brw_imm_d(offset * 16)); + if (offset > 1) { + brw_set_src1(end_inst, brw_imm_d(offset * 16)); + } else { + end_inst->header.opcode = BRW_OPCODE_NOP; + } } static uint32_t |