iris: Drop iris_cache_flush_for_render

Before dropping this function, handle the two callers of this function:

* The call in iris_blorp.c is redundant. The required cache flushes are
  already handled by the callers of blorp functions. Delete this.

* The call in iris_resolve.c is still providing a benefit because it
  calls iris_emit_buffer_barrier_for internally. Inline the needed
  barrier.

Cc: 23.0 <mesa-stable>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21303>
This commit is contained in:
Nanley Chery
2023-02-10 14:28:41 -08:00
committed by Marge Bot
parent 7c367bef0d
commit 5d24682aae
3 changed files with 2 additions and 23 deletions
-10
View File
@@ -304,16 +304,6 @@ iris_blorp_exec_render(struct blorp_batch *blorp_batch,
!(blorp_batch->flags & BLORP_BATCH_NO_EMIT_DEPTH_STENCIL))
genX(emit_depth_state_workarounds)(ice, batch, &params->depth.surf);
/* Flush the render cache in cases where the same surface is used with
* different aux modes, which can lead to GPU hangs. Invalidation of
* sampler caches and flushing of any caches which had previously written
* the source surfaces should already have been handled by the caller.
*/
if (params->dst.enabled) {
iris_cache_flush_for_render(batch, params->dst.addr.buffer,
params->dst.aux_usage);
}
iris_require_command_space(batch, 1400);
#if GFX_VER == 8
-3
View File
@@ -1099,9 +1099,6 @@ void iris_predraw_flush_buffers(struct iris_context *ice,
void iris_postdraw_update_resolve_tracking(struct iris_context *ice);
void iris_postdraw_update_image_resolve_tracking(struct iris_context *ice,
gl_shader_stage stage);
void iris_cache_flush_for_render(struct iris_batch *batch,
struct iris_bo *bo,
enum isl_aux_usage aux_usage);
int iris_get_driver_query_info(struct pipe_screen *pscreen, unsigned index,
struct pipe_driver_query_info *info);
int iris_get_driver_query_group_info(struct pipe_screen *pscreen,
+2 -10
View File
@@ -266,7 +266,8 @@ iris_predraw_resolve_framebuffer(struct iris_context *ice,
surf->view.array_len,
aux_usage);
iris_cache_flush_for_render(batch, res->bo, aux_usage);
iris_emit_buffer_barrier_for(batch, res->bo,
IRIS_DOMAIN_RENDER_WRITE);
}
}
}
@@ -422,15 +423,6 @@ flush_previous_aux_mode(struct iris_batch *batch,
}
}
void
iris_cache_flush_for_render(struct iris_batch *batch,
struct iris_bo *bo,
enum isl_aux_usage aux_usage)
{
iris_emit_buffer_barrier_for(batch, bo, IRIS_DOMAIN_RENDER_WRITE);
flush_previous_aux_mode(batch, bo, aux_usage);
}
static void
flush_ubos(struct iris_batch *batch,
struct iris_shader_state *shs)