diff options
author | Francisco Jerez <[email protected]> | 2016-06-13 14:56:22 -0700 |
---|---|---|
committer | Francisco Jerez <[email protected]> | 2016-06-13 15:55:58 -0700 |
commit | d960284e447df9b1563deef0ce950617decfba63 (patch) | |
tree | 60222b4182c52923d46d129b5f7d478ae81469ed /src/mesa/drivers/dri/i965/brw_tes.c | |
parent | 013ae4a70aeb40dc74e53943824bff33dda109e1 (diff) |
i965: Keep track of the per-thread scratch allocation in brw_stage_state.
This will be used to find out what per-thread slot size a previously
allocated scratch BO was used with in order to fix a hardware race
condition without introducing additional stalls or memory allocations.
Instead of calling brw_get_scratch_bo() manually from the various
codegen functions, call a new helper function that keeps track of the
per-thread scratch size and conditionally allocates a larger scratch
BO.
v2: Handle BO allocation manually instead of relying on
brw_get_scratch_bo (Ken).
Cc: <[email protected]>
Reviewed-by: Kenneth Graunke <[email protected]>
Diffstat (limited to 'src/mesa/drivers/dri/i965/brw_tes.c')
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_tes.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_tes.c b/src/mesa/drivers/dri/i965/brw_tes.c index a4cd4daadde..d7b3e69a269 100644 --- a/src/mesa/drivers/dri/i965/brw_tes.c +++ b/src/mesa/drivers/dri/i965/brw_tes.c @@ -214,11 +214,9 @@ brw_codegen_tes_prog(struct brw_context *brw, } /* Scratch space is used for register spilling */ - if (prog_data.base.base.total_scratch) { - brw_get_scratch_bo(brw, &stage_state->scratch_bo, - prog_data.base.base.total_scratch * - brw->max_ds_threads); - } + brw_alloc_stage_scratch(brw, stage_state, + prog_data.base.base.total_scratch, + brw->max_ds_threads); brw_upload_cache(&brw->cache, BRW_CACHE_TES_PROG, key, sizeof(*key), |