Mesa (main): zink: don't increment screen->num_contexts for copy context

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Jun 30 15:06:01 UTC 2022


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

Author: Mike Blumenkrantz <michael.blumenkrantz at gmail.com>
Date:   Thu Jun 30 10:12:12 2022 -0400

zink: don't increment screen->num_contexts for copy context

this otherwise may trigger unwanted perf regressions

Reviewed-by: Adam Jackson <ajax at redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17315>

---

 src/gallium/drivers/zink/zink_context.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/gallium/drivers/zink/zink_context.c b/src/gallium/drivers/zink/zink_context.c
index b6eca1aeb72..a34d83ca852 100644
--- a/src/gallium/drivers/zink/zink_context.c
+++ b/src/gallium/drivers/zink/zink_context.c
@@ -161,7 +161,8 @@ zink_context_destroy(struct pipe_context *pctx)
 
    zink_descriptor_layouts_deinit(ctx);
 
-   p_atomic_dec(&screen->base.num_contexts);
+   if (!(ctx->flags & ZINK_CONTEXT_COPY_ONLY))
+      p_atomic_dec(&screen->base.num_contexts);
 
    ralloc_free(ctx);
 }
@@ -4448,8 +4449,8 @@ zink_context_create(struct pipe_screen *pscreen, void *priv, unsigned flags)
          ctx->di.fbfetch.imageView = zink_csurface(ctx->dummy_surface[0])->image_view;
 
       reapply_color_write(ctx);
+      p_atomic_inc(&screen->base.num_contexts);
    }
-   p_atomic_inc(&screen->base.num_contexts);
 
    zink_select_draw_vbo(ctx);
    zink_select_launch_grid(ctx);



More information about the mesa-commit mailing list