From 7e28bd797dbe1721e5d97916f041493d1f30220d Mon Sep 17 00:00:00 2001 From: Kenneth Graunke Date: Tue, 13 May 2014 20:51:32 -0700 Subject: [PATCH] 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 --- src/mesa/drivers/dri/i965/brw_fs.cpp | 4 ++++ src/mesa/drivers/dri/i965/brw_wm.c | 5 +---- 2 files changed, 5 insertions(+), 4 deletions(-) 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); } -- 2.30.2