From: Francisco Jerez Date: Fri, 1 May 2020 00:40:52 +0000 (-0700) Subject: iris: Emit single render target flush PIPE_CONTROL on format mismatch. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=46adb83a2930d346dd2ce2d4d19dfec02e0f7ca1;p=mesa.git 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: --- 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); } }