diff options
author | Brian Paul <[email protected]> | 2009-04-27 09:51:46 -0600 |
---|---|---|
committer | Brian Paul <[email protected]> | 2009-04-27 09:51:46 -0600 |
commit | dc9705d12d162ba6d087eb762e315de9f97bc456 (patch) | |
tree | 0e81e37c6c2e21456e16e892c877a448545e0ac6 /src/mesa/drivers/dri/i965/brw_curbe.c | |
parent | 5250eec652af46d20261624fd043992355a0b4ba (diff) |
i965: only upload constant buffer data when we actually need the const buffer
Make the use_const_buffer field per-program and only call the code which
updates the constant buffer's data if the flag is set.
This should undo the perf regression from 20f3497e4b6756e330f7b3f54e8acaa1d6c92052
Diffstat (limited to 'src/mesa/drivers/dri/i965/brw_curbe.c')
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_curbe.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_curbe.c b/src/mesa/drivers/dri/i965/brw_curbe.c index 2d157930788..9197fede2d8 100644 --- a/src/mesa/drivers/dri/i965/brw_curbe.c +++ b/src/mesa/drivers/dri/i965/brw_curbe.c @@ -383,7 +383,8 @@ update_vertex_constant_buffer(struct brw_context *brw) printf("update VS constants in buffer %p\n", vp->const_buffer); printf("program %u\n", vp->program.Base.Id); } - update_constant_buffer(brw, vp->program.Base.Parameters, vp->const_buffer); + if (vp->use_const_buffer) + update_constant_buffer(brw, vp->program.Base.Parameters, vp->const_buffer); } @@ -393,7 +394,8 @@ update_fragment_constant_buffer(struct brw_context *brw) { struct brw_fragment_program *fp = (struct brw_fragment_program *) brw->fragment_program; - update_constant_buffer(brw, fp->program.Base.Parameters, fp->const_buffer); + if (fp->use_const_buffer) + update_constant_buffer(brw, fp->program.Base.Parameters, fp->const_buffer); } |