From 11b1ad9f3ffe41ad3309dd97e2ec8785c2fe8c4f Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Wed, 15 Mar 2023 16:38:30 -0400 Subject: [PATCH] zink: disable tc flush notify with rp optimizing this is extremely broken and nonfunctional since it randomly flushes mid-renderpass and triggers invalidations Part-of: --- src/gallium/drivers/zink/zink_batch.c | 3 ++- src/gallium/drivers/zink/zink_context.c | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/gallium/drivers/zink/zink_batch.c b/src/gallium/drivers/zink/zink_batch.c index 435e633..193d337 100644 --- a/src/gallium/drivers/zink/zink_batch.c +++ b/src/gallium/drivers/zink/zink_batch.c @@ -613,9 +613,10 @@ zink_end_batch(struct zink_context *ctx, struct zink_batch *batch) if (!ctx->queries_disabled) zink_suspend_queries(ctx, batch); - tc_driver_internal_flush_notify(ctx->tc); struct zink_screen *screen = zink_screen(ctx->base.screen); + if (!screen->driver_workarounds.track_renderpasses) + tc_driver_internal_flush_notify(ctx->tc); struct zink_batch_state *bs; /* oom flushing is triggered to handle stupid piglit tests like streaming-texture-leak */ diff --git a/src/gallium/drivers/zink/zink_context.c b/src/gallium/drivers/zink/zink_context.c index d58434e..b66ad4e 100644 --- a/src/gallium/drivers/zink/zink_context.c +++ b/src/gallium/drivers/zink/zink_context.c @@ -4145,7 +4145,8 @@ zink_flush(struct pipe_context *pctx, check_device_lost(ctx); } } - tc_driver_internal_flush_notify(ctx->tc); + if (!screen->driver_workarounds.track_renderpasses) + tc_driver_internal_flush_notify(ctx->tc); } else { fence = &batch->state->fence; submit_count = batch->state->submit_count; @@ -5486,7 +5487,7 @@ zink_context_create(struct pipe_screen *pscreen, void *priv, unsigned flags) &(struct threaded_context_options){ .create_fence = zink_create_tc_fence_for_tc, .is_resource_busy = zink_context_is_resource_busy, - .driver_calls_flush_notify = true, + .driver_calls_flush_notify = !screen->driver_workarounds.track_renderpasses, .unsynchronized_get_device_reset_status = true, .parse_renderpass_info = screen->driver_workarounds.track_renderpasses, .dsa_parse = zink_tc_parse_dsa, -- 2.7.4