Mesa (master): i965: Replace the subroutine-skipping jump in VS with a NOP if it's a NOP.
Eric Anholt
anholt at kemper.freedesktop.org
Fri Aug 7 18:33:36 PDT 2009
Module: Mesa
Branch: master
Commit: 9f981ec27dffa562cf743b4690293569477b4553
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=9f981ec27dffa562cf743b4690293569477b4553
Author: Eric Anholt <eric at anholt.net>
Date: Fri Aug 7 14:20:56 2009 -0700
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.
---
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 f56e986..83167b9 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
More information about the mesa-commit
mailing list