Simple rename and parameter passing changes now to avoid doing so inside a much larger patch.
Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk> --- src/mesa/drivers/dri/i965/brw_batch.h | 5 +++++ src/mesa/drivers/dri/i965/brw_context.c | 3 ++- src/mesa/drivers/dri/i965/brw_context.h | 2 ++ src/mesa/drivers/dri/i965/brw_draw.c | 6 +++--- src/mesa/drivers/dri/i965/brw_misc_state.c | 8 ++++---- src/mesa/drivers/dri/i965/brw_pipe_control.c | 2 +- src/mesa/drivers/dri/i965/gen8_depth_state.c | 2 +- src/mesa/drivers/dri/i965/intel_batchbuffer.c | 2 +- src/mesa/drivers/dri/i965/intel_fbo.c | 19 ++++++++----------- src/mesa/drivers/dri/i965/intel_fbo.h | 4 ---- 10 files changed, 27 insertions(+), 26 deletions(-) diff --git a/src/mesa/drivers/dri/i965/brw_batch.h b/src/mesa/drivers/dri/i965/brw_batch.h index 3b8d354..b9e67dd 100644 --- a/src/mesa/drivers/dri/i965/brw_batch.h +++ b/src/mesa/drivers/dri/i965/brw_batch.h @@ -33,6 +33,8 @@ extern "C" { #include <intel_bufmgr.h> +#include "util/list.h" + typedef drm_intel_bo brw_bo; enum brw_gpu_ring { @@ -97,6 +99,9 @@ inline static uint32_t brw_bo_flink(brw_bo *bo) return name; } +void brw_batch_clear_dirty(brw_batch *batch); +void brw_bo_mark_dirty(brw_batch *batch, brw_bo *bo); + #ifdef __cplusplus } #endif diff --git a/src/mesa/drivers/dri/i965/brw_context.c b/src/mesa/drivers/dri/i965/brw_context.c index f8add33..d0c0d23 100644 --- a/src/mesa/drivers/dri/i965/brw_context.c +++ b/src/mesa/drivers/dri/i965/brw_context.c @@ -185,7 +185,8 @@ intel_update_state(struct gl_context * ctx, GLuint new_state) continue; intel_miptree_all_slices_resolve_depth(brw, tex_obj->mt); intel_miptree_resolve_color(brw, tex_obj->mt); - brw_render_cache_set_check_flush(brw, tex_obj->mt->bo); + if (brw_check_dirty(brw, tex_obj->mt->bo)) + brw_emit_mi_flush(brw); } _mesa_lock_context_textures(ctx); diff --git a/src/mesa/drivers/dri/i965/brw_context.h b/src/mesa/drivers/dri/i965/brw_context.h index 238d0eb..2c9ac9a 100644 --- a/src/mesa/drivers/dri/i965/brw_context.h +++ b/src/mesa/drivers/dri/i965/brw_context.h @@ -1993,6 +1993,8 @@ void brw_emit_depth_stall_flushes(struct brw_context *brw); void gen7_emit_vs_workaround_flush(struct brw_context *brw); void gen7_emit_cs_stall_flush(struct brw_context *brw); +bool brw_check_dirty(struct brw_context *ctx, brw_bo *bo); + #ifdef __cplusplus } #endif diff --git a/src/mesa/drivers/dri/i965/brw_draw.c b/src/mesa/drivers/dri/i965/brw_draw.c index 1aa0093..8ffc1c5 100644 --- a/src/mesa/drivers/dri/i965/brw_draw.c +++ b/src/mesa/drivers/dri/i965/brw_draw.c @@ -375,12 +375,12 @@ brw_postdraw_set_buffers_need_resolve(struct brw_context *brw) back_irb->need_downsample = true; if (depth_irb && ctx->Depth.Mask) { intel_renderbuffer_att_set_needs_depth_resolve(depth_att); - brw_render_cache_set_add_bo(brw, depth_irb->mt->bo); + brw_bo_mark_dirty(&brw->batch, depth_irb->mt->bo); } if (ctx->Extensions.ARB_stencil_texturing && stencil_irb && ctx->Stencil._WriteEnabled) { - brw_render_cache_set_add_bo(brw, stencil_irb->mt->bo); + brw_bo_mark_dirty(&brw->batch, stencil_irb->mt->bo); } for (int i = 0; i < fb->_NumColorDrawBuffers; i++) { @@ -388,7 +388,7 @@ brw_postdraw_set_buffers_need_resolve(struct brw_context *brw) intel_renderbuffer(fb->_ColorDrawBuffers[i]); if (irb) - brw_render_cache_set_add_bo(brw, irb->mt->bo); + brw_bo_mark_dirty(&brw->batch, irb->mt->bo); } } diff --git a/src/mesa/drivers/dri/i965/brw_misc_state.c b/src/mesa/drivers/dri/i965/brw_misc_state.c index 122f450..b1e8503 100644 --- a/src/mesa/drivers/dri/i965/brw_misc_state.c +++ b/src/mesa/drivers/dri/i965/brw_misc_state.c @@ -546,10 +546,10 @@ brw_emit_depthbuffer(struct brw_context *brw) height = stencil_irb->Base.Base.Height; } - if (depth_mt) - brw_render_cache_set_check_flush(brw, depth_mt->bo); - if (stencil_mt) - brw_render_cache_set_check_flush(brw, stencil_mt->bo); + if (depth_mt && brw_check_dirty(brw, depth_mt->bo)) + brw_emit_mi_flush(brw); + if (stencil_mt && brw_check_dirty(brw, stencil_mt->bo)) + brw_emit_mi_flush(brw); brw->vtbl.emit_depth_stencil_hiz(brw, depth_mt, depth_offset, depthbuffer_format, depth_surface_type, diff --git a/src/mesa/drivers/dri/i965/brw_pipe_control.c b/src/mesa/drivers/dri/i965/brw_pipe_control.c index 1e5a3ba..e513c15 100644 --- a/src/mesa/drivers/dri/i965/brw_pipe_control.c +++ b/src/mesa/drivers/dri/i965/brw_pipe_control.c @@ -326,7 +326,7 @@ brw_emit_mi_flush(struct brw_context *brw) brw_emit_pipe_control_flush(brw, flags); } - brw_render_cache_set_clear(brw); + brw_batch_clear_dirty(&brw->batch); } void diff --git a/src/mesa/drivers/dri/i965/gen8_depth_state.c b/src/mesa/drivers/dri/i965/gen8_depth_state.c index 480eaab..05a003f 100644 --- a/src/mesa/drivers/dri/i965/gen8_depth_state.c +++ b/src/mesa/drivers/dri/i965/gen8_depth_state.c @@ -508,7 +508,7 @@ gen8_hiz_exec(struct brw_context *brw, struct intel_mipmap_tree *mt, ADVANCE_BATCH(); /* Mark this buffer as needing a TC flush, as we've rendered to it. */ - brw_render_cache_set_add_bo(brw, mt->bo); + brw_bo_mark_dirty(&brw->batch, mt->bo); /* We've clobbered all of the depth packets, and the drawing rectangle, * so we need to ensure those packets are re-emitted before the next diff --git a/src/mesa/drivers/dri/i965/intel_batchbuffer.c b/src/mesa/drivers/dri/i965/intel_batchbuffer.c index db9b761..37dcc85 100644 --- a/src/mesa/drivers/dri/i965/intel_batchbuffer.c +++ b/src/mesa/drivers/dri/i965/intel_batchbuffer.c @@ -59,7 +59,7 @@ intel_batchbuffer_reset(struct brw_context *brw) brw_bo_put(brw->batch.last_bo); brw->batch.last_bo = brw->batch.bo; - brw_render_cache_set_clear(brw); + brw_batch_clear_dirty(&brw->batch); brw->batch.bo = drm_intel_bo_alloc(brw->bufmgr, "batchbuffer", BATCH_SZ, 4096); diff --git a/src/mesa/drivers/dri/i965/intel_fbo.c b/src/mesa/drivers/dri/i965/intel_fbo.c index fbccf7e..5c86655 100644 --- a/src/mesa/drivers/dri/i965/intel_fbo.c +++ b/src/mesa/drivers/dri/i965/intel_fbo.c @@ -1046,19 +1046,19 @@ intel_renderbuffer_move_to_temp(struct brw_context *brw, } void -brw_render_cache_set_clear(struct brw_context *brw) +brw_batch_clear_dirty(brw_batch *batch) { struct set_entry *entry; - set_foreach(brw->batch.render_cache, entry) { - _mesa_set_remove(brw->batch.render_cache, entry); + set_foreach(batch->render_cache, entry) { + _mesa_set_remove(batch->render_cache, entry); } } void -brw_render_cache_set_add_bo(struct brw_context *brw, brw_bo *bo) +brw_bo_mark_dirty(brw_batch *batch, brw_bo *bo) { - _mesa_set_add(brw->batch.render_cache, bo); + _mesa_set_add(batch->render_cache, bo); } /** @@ -1073,13 +1073,10 @@ brw_render_cache_set_add_bo(struct brw_context *brw, brw_bo *bo) * necessary is flushed before another use of that BO, but for reuse from * different caches within a batchbuffer, it's all our responsibility. */ -void -brw_render_cache_set_check_flush(struct brw_context *brw, brw_bo *bo) +bool +brw_check_dirty(struct brw_context *brw, brw_bo *bo) { - if (!_mesa_set_search(brw->batch.render_cache, bo)) - return; - - brw_emit_mi_flush(brw); + return _mesa_set_search(brw->batch.render_cache, bo); } /** diff --git a/src/mesa/drivers/dri/i965/intel_fbo.h b/src/mesa/drivers/dri/i965/intel_fbo.h index aad5bf7..6c761e6 100644 --- a/src/mesa/drivers/dri/i965/intel_fbo.h +++ b/src/mesa/drivers/dri/i965/intel_fbo.h @@ -240,10 +240,6 @@ void intel_renderbuffer_upsample(struct brw_context *brw, struct intel_renderbuffer *irb); -void brw_render_cache_set_clear(struct brw_context *brw); -void 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); - unsigned intel_quantize_num_samples(struct intel_screen *intel, unsigned num_samples); -- 2.5.0 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev