From 46adb83a2930d346dd2ce2d4d19dfec02e0f7ca1 Mon Sep 17 00:00:00 2001 From: Francisco Jerez Date: Thu, 30 Apr 2020 17:40:52 -0700 Subject: [PATCH] iris: Emit single render target flush PIPE_CONTROL on format mismatch. The big-hammer iris_flush_depth_and_render_caches() is largely redundant whenever a format mismatch is detected from iris_cache_flush_for_render(). There is no need to kick the depth, sampler nor constant caches in that case. Reviewed-by: Kenneth Graunke Part-of: --- src/gallium/drivers/iris/iris_resolve.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/iris/iris_resolve.c b/src/gallium/drivers/iris/iris_resolve.c index 68f37f48bcf..88aa4b1dec7 100644 --- a/src/gallium/drivers/iris/iris_resolve.c +++ b/src/gallium/drivers/iris/iris_resolve.c @@ -402,7 +402,10 @@ iris_cache_flush_for_render(struct iris_batch *batch, _mesa_hash_table_insert_pre_hashed(batch->cache.render, bo->hash, bo, format_aux_tuple(format, aux_usage)); } else if (entry->data != format_aux_tuple(format, aux_usage)) { - iris_flush_depth_and_render_caches(batch); + iris_emit_pipe_control_flush(batch, + "cache tracker: render format mismatch", + PIPE_CONTROL_RENDER_TARGET_FLUSH | + PIPE_CONTROL_CS_STALL); entry->data = format_aux_tuple(format, aux_usage); } } -- 2.30.2