From: Kenneth Graunke Date: Wed, 14 May 2014 03:51:32 +0000 (-0700) Subject: i965/fs: Move total_scratch calculation into fs_visitor::run(). X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=7e28bd797dbe1721e5d97916f041493d1f30220d;p=mesa.git i965/fs: Move total_scratch calculation into fs_visitor::run(). With this one use gone, c->last_scratch is now only used inside fs_visitor. The rest of the driver uses prog_data->total_scratch. We already compute similar prog_data fields in fs_visitor, so this seems reasonable. Signed-off-by: Kenneth Graunke Reviewed-by: Chris Forbes --- diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp b/src/mesa/drivers/dri/i965/brw_fs.cpp index ed5bb0755f7..ea3c8dead53 100644 --- a/src/mesa/drivers/dri/i965/brw_fs.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs.cpp @@ -3093,6 +3093,10 @@ fs_visitor::run() if (!allocated_without_spills) schedule_instructions(SCHEDULE_POST); + if (c->last_scratch > 0) { + c->prog_data.total_scratch = brw_get_scratch_size(c->last_scratch); + } + if (dispatch_width == 8) c->prog_data.reg_blocks = brw_register_blocks(grf_used); else diff --git a/src/mesa/drivers/dri/i965/brw_wm.c b/src/mesa/drivers/dri/i965/brw_wm.c index cda86895bb5..5242715603a 100644 --- a/src/mesa/drivers/dri/i965/brw_wm.c +++ b/src/mesa/drivers/dri/i965/brw_wm.c @@ -184,10 +184,7 @@ bool do_wm_prog(struct brw_context *brw, if (program == NULL) return false; - /* Scratch space is used for register spilling */ - if (c->last_scratch) { - c->prog_data.total_scratch = brw_get_scratch_size(c->last_scratch); - + if (c->prog_data.total_scratch) { brw_get_scratch_bo(brw, &brw->wm.base.scratch_bo, c->prog_data.total_scratch * brw->max_wm_threads); }