From bbb103be0e04ed98ac9810d98e7208db47a763b5 Mon Sep 17 00:00:00 2001 From: Francisco Jerez Date: Thu, 30 Apr 2020 15:11:19 -0700 Subject: [PATCH] iris: Demote all callers of iris_flush_and_dirty_for_history() to iris_dirty_for_history(). The unconditional flushing performed by iris_flush_and_dirty_for_history() is now redundant with the memory barriers introduced previously in this series, which should be in a better position to determine from which domain the buffer will actually be used in the future, and whether an additional flush or invalidation is required or redundant with other PIPE_CONTROL commands emitted elsewhere. Reviewed-by: Kenneth Graunke Part-of: --- src/gallium/drivers/iris/iris_blit.c | 9 ++------- src/gallium/drivers/iris/iris_clear.c | 10 +++------- src/gallium/drivers/iris/iris_resource.c | 17 ----------------- src/gallium/drivers/iris/iris_resource.h | 5 ----- 4 files changed, 5 insertions(+), 36 deletions(-) diff --git a/src/gallium/drivers/iris/iris_blit.c b/src/gallium/drivers/iris/iris_blit.c index 3f1239cd5c1..34b2e06cb35 100644 --- a/src/gallium/drivers/iris/iris_blit.c +++ b/src/gallium/drivers/iris/iris_blit.c @@ -559,10 +559,7 @@ iris_blit(struct pipe_context *ctx, const struct pipe_blit_info *info) blorp_batch_finish(&blorp_batch); - iris_flush_and_dirty_for_history(ice, batch, (struct iris_resource *) - info->dst.resource, - PIPE_CONTROL_RENDER_TARGET_FLUSH, - "cache history: post-blit"); + iris_dirty_for_history(ice, (struct iris_resource *)info->dst.resource); } static void @@ -780,9 +777,7 @@ iris_resource_copy_region(struct pipe_context *ctx, dsty, dstz, &s_src_res->base.b, src_level, src_box); } - iris_flush_and_dirty_for_history(ice, batch, (struct iris_resource *)p_dst, - PIPE_CONTROL_RENDER_TARGET_FLUSH, - "cache history: post copy_region"); + iris_dirty_for_history(ice, (struct iris_resource *) p_dst); } void diff --git a/src/gallium/drivers/iris/iris_clear.c b/src/gallium/drivers/iris/iris_clear.c index ffd117e4a30..16387b43aa5 100644 --- a/src/gallium/drivers/iris/iris_clear.c +++ b/src/gallium/drivers/iris/iris_clear.c @@ -366,9 +366,7 @@ clear_color(struct iris_context *ice, blorp_batch_finish(&blorp_batch); iris_batch_sync_region_end(batch); - iris_flush_and_dirty_for_history(ice, batch, res, - PIPE_CONTROL_RENDER_TARGET_FLUSH, - "cache history: post color clear"); + iris_dirty_for_history(ice, res); iris_resource_finish_render(ice, res, level, box->z, box->depth, aux_usage); @@ -544,8 +542,7 @@ clear_depth_stencil(struct iris_context *ice, can_fast_clear_depth(ice, z_res, level, box, render_condition_enabled, depth)) { fast_clear_depth(ice, z_res, level, box, depth); - iris_flush_and_dirty_for_history(ice, batch, res, 0, - "cache history: post fast Z clear"); + iris_dirty_for_history(ice, res); clear_depth = false; z_res = false; } @@ -595,8 +592,7 @@ clear_depth_stencil(struct iris_context *ice, blorp_batch_finish(&blorp_batch); iris_batch_sync_region_end(batch); - iris_flush_and_dirty_for_history(ice, batch, res, 0, - "cache history: post slow ZS clear"); + iris_dirty_for_history(ice, res); if (clear_depth && z_res) { iris_resource_finish_render(ice, z_res, level, box->z, box->depth, diff --git a/src/gallium/drivers/iris/iris_resource.c b/src/gallium/drivers/iris/iris_resource.c index 2a8673b6c99..7bebaae1de3 100644 --- a/src/gallium/drivers/iris/iris_resource.c +++ b/src/gallium/drivers/iris/iris_resource.c @@ -2567,23 +2567,6 @@ iris_flush_bits_for_history(struct iris_context *ice, return flush; } -void -iris_flush_and_dirty_for_history(struct iris_context *ice, - struct iris_batch *batch, - struct iris_resource *res, - uint32_t extra_flags, - const char *reason) -{ - if (res->base.b.target != PIPE_BUFFER) - return; - - uint32_t flush = iris_flush_bits_for_history(ice, res) | extra_flags; - - iris_emit_pipe_control_flush(batch, reason, flush); - - iris_dirty_for_history(ice, res); -} - bool iris_resource_set_clear_color(struct iris_context *ice, struct iris_resource *res, diff --git a/src/gallium/drivers/iris/iris_resource.h b/src/gallium/drivers/iris/iris_resource.h index bb4330800f4..ad99747a438 100644 --- a/src/gallium/drivers/iris/iris_resource.h +++ b/src/gallium/drivers/iris/iris_resource.h @@ -342,11 +342,6 @@ void iris_dirty_for_history(struct iris_context *ice, uint32_t iris_flush_bits_for_history(struct iris_context *ice, struct iris_resource *res); -void iris_flush_and_dirty_for_history(struct iris_context *ice, - struct iris_batch *batch, - struct iris_resource *res, - uint32_t extra_flags, - const char *reason); unsigned iris_get_num_logical_layers(const struct iris_resource *res, unsigned level);