diff options
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_fs.cpp | 4 | ||||
-rw-r--r-- | 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); } |