summaryrefslogtreecommitdiffstats
path: root/src/mesa/drivers/dri/i965/brw_curbe.c
diff options
context:
space:
mode:
authorBrian Paul <[email protected]>2009-04-27 09:51:46 -0600
committerBrian Paul <[email protected]>2009-04-27 09:51:46 -0600
commitdc9705d12d162ba6d087eb762e315de9f97bc456 (patch)
tree0e81e37c6c2e21456e16e892c877a448545e0ac6 /src/mesa/drivers/dri/i965/brw_curbe.c
parent5250eec652af46d20261624fd043992355a0b4ba (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.c6
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);
}