Module: Mesa
Branch: main
Commit: 32b7659fffb4d023d6564e1af44a8e9b94981870
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=32b7659fffb4d023d6564e1af44a8e9b94981870

Author: Mike Blumenkrantz <[email protected]>
Date:   Tue May 23 13:58:09 2023 -0400

zink: use the per-context track_renderpasses flag in more places

this should fix some erroneous zsbuf invalidation

Fixes: 215beee16d9 ("zink: more explicitly track/check rp optimizing 
per-context")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23189>

---

 src/gallium/drivers/zink/zink_context.c | 2 +-
 src/gallium/drivers/zink/zink_state.c   | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/gallium/drivers/zink/zink_context.c 
b/src/gallium/drivers/zink/zink_context.c
index c6520c14dcc..5cd93fba037 100644
--- a/src/gallium/drivers/zink/zink_context.c
+++ b/src/gallium/drivers/zink/zink_context.c
@@ -3622,7 +3622,7 @@ zink_flush(struct pipe_context *pctx,
                 check_device_lost(ctx);
           }
        }
-       if (ctx->tc && !screen->driver_workarounds.track_renderpasses)
+       if (ctx->tc && !ctx->track_renderpasses)
          tc_driver_internal_flush_notify(ctx->tc);
    } else {
       fence = &batch->state->fence;
diff --git a/src/gallium/drivers/zink/zink_state.c 
b/src/gallium/drivers/zink/zink_state.c
index d702c089ea3..5bffbd05530 100644
--- a/src/gallium/drivers/zink/zink_state.c
+++ b/src/gallium/drivers/zink/zink_state.c
@@ -522,10 +522,10 @@ zink_bind_depth_stencil_alpha_state(struct pipe_context 
*pctx, void *cso)
          state->dirty |= 
!zink_screen(pctx->screen)->info.have_EXT_extended_dynamic_state;
          ctx->dsa_state_changed = true;
       }
-      if 
(!zink_screen(ctx->base.screen)->driver_workarounds.track_renderpasses && 
!ctx->blitting)
+      if (!ctx->track_renderpasses && !ctx->blitting)
          zink_parse_tc_info(ctx);
    }
-   if (!zink_screen(ctx->base.screen)->driver_workarounds.track_renderpasses 
&& !ctx->blitting) {
+   if (!ctx->track_renderpasses && !ctx->blitting) {
       bool zs_write = ctx->dsa_state ? ctx->dsa_state->hw_state.depth_write || 
ctx->dsa_state->hw_state.stencil_test : false;
       if (prev_zswrite != zs_write) {
          /* flag renderpass for re-check on next draw */

Reply via email to