To reduce churn later, move the brw->render_cache dirty set into the batch (i.e. brw->batch.render_cache).
Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk> --- src/mesa/drivers/dri/i965/brw_batch.h | 7 +++++++ src/mesa/drivers/dri/i965/brw_context.h | 7 ------- src/mesa/drivers/dri/i965/intel_fbo.c | 12 ++++++------ 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/mesa/drivers/dri/i965/brw_batch.h b/src/mesa/drivers/dri/i965/brw_batch.h index 1d0f0dd..3b8d354 100644 --- a/src/mesa/drivers/dri/i965/brw_batch.h +++ b/src/mesa/drivers/dri/i965/brw_batch.h @@ -64,6 +64,13 @@ typedef struct brw_batch { uint32_t *map_next; int reloc_count; } saved; + + /** + * Set of brw_bo* that have been rendered to within this batchbuffer + * and would need flushing before being used from another cache domain that + * isn't coherent with it (i.e. the sampler). + */ + struct set *render_cache; } brw_batch; inline static brw_bo *brw_bo_get(brw_bo *bo) diff --git a/src/mesa/drivers/dri/i965/brw_context.h b/src/mesa/drivers/dri/i965/brw_context.h index cd8ea50..238d0eb 100644 --- a/src/mesa/drivers/dri/i965/brw_context.h +++ b/src/mesa/drivers/dri/i965/brw_context.h @@ -1009,13 +1009,6 @@ struct brw_context uint8_t pipe_controls_since_last_cs_stall; /** - * Set of brw_bo* that have been rendered to within this batchbuffer - * and would need flushing before being used from another cache domain that - * isn't coherent with it (i.e. the sampler). - */ - struct set *render_cache; - - /** * Number of resets observed in the system at context creation. * * This is tracked in the context so that we can determine that another diff --git a/src/mesa/drivers/dri/i965/intel_fbo.c b/src/mesa/drivers/dri/i965/intel_fbo.c index b22931e..fbccf7e 100644 --- a/src/mesa/drivers/dri/i965/intel_fbo.c +++ b/src/mesa/drivers/dri/i965/intel_fbo.c @@ -1050,15 +1050,15 @@ brw_render_cache_set_clear(struct brw_context *brw) { struct set_entry *entry; - set_foreach(brw->render_cache, entry) { - _mesa_set_remove(brw->render_cache, entry); + set_foreach(brw->batch.render_cache, entry) { + _mesa_set_remove(brw->batch.render_cache, entry); } } void brw_render_cache_set_add_bo(struct brw_context *brw, brw_bo *bo) { - _mesa_set_add(brw->render_cache, bo); + _mesa_set_add(brw->batch.render_cache, bo); } /** @@ -1076,7 +1076,7 @@ brw_render_cache_set_add_bo(struct brw_context *brw, brw_bo *bo) void brw_render_cache_set_check_flush(struct brw_context *brw, brw_bo *bo) { - if (!_mesa_set_search(brw->render_cache, bo)) + if (!_mesa_set_search(brw->batch.render_cache, bo)) return; brw_emit_mi_flush(brw); @@ -1103,6 +1103,6 @@ intel_fbo_init(struct brw_context *brw) dd->EGLImageTargetRenderbufferStorage = intel_image_target_renderbuffer_storage; - brw->render_cache = _mesa_set_create(brw, _mesa_hash_pointer, - _mesa_key_pointer_equal); + brw->batch.render_cache = _mesa_set_create(brw, _mesa_hash_pointer, + _mesa_key_pointer_equal); } -- 2.5.0 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev