Mesa (main): zink: fix descriptor interface param for program_deinit

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Oct 19 18:21:04 UTC 2021


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

Author: Mike Blumenkrantz <michael.blumenkrantz at gmail.com>
Date:   Wed Oct 13 10:03:34 2021 -0400

zink: fix descriptor interface param for program_deinit

this should match the _init() method and take the context

Reviewed-by: Dave Airlie <airlied at redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13430>

---

 src/gallium/drivers/zink/zink_descriptors.c      | 5 +++--
 src/gallium/drivers/zink/zink_descriptors.h      | 4 ++--
 src/gallium/drivers/zink/zink_descriptors_lazy.c | 3 ++-
 src/gallium/drivers/zink/zink_program.c          | 4 ++--
 src/gallium/drivers/zink/zink_screen.h           | 2 +-
 5 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/src/gallium/drivers/zink/zink_descriptors.c b/src/gallium/drivers/zink/zink_descriptors.c
index a8693465df7..03445ae7dd4 100644
--- a/src/gallium/drivers/zink/zink_descriptors.c
+++ b/src/gallium/drivers/zink/zink_descriptors.c
@@ -1087,14 +1087,15 @@ zink_descriptor_program_init(struct zink_context *ctx, struct zink_program *pg)
 }
 
 void
-zink_descriptor_program_deinit(struct zink_screen *screen, struct zink_program *pg)
+zink_descriptor_program_deinit(struct zink_context *ctx, struct zink_program *pg)
 {
+   struct zink_screen *screen = zink_screen(ctx->base.screen);
    if (!pg->dd)
       return;
    for (unsigned i = 0; i < ZINK_DESCRIPTOR_TYPES; i++)
       zink_descriptor_pool_reference(screen, &pdd_cached(pg)->pool[i], NULL);
 
-   zink_descriptor_program_deinit_lazy(screen, pg);
+   zink_descriptor_program_deinit_lazy(ctx, pg);
 }
 
 static void
diff --git a/src/gallium/drivers/zink/zink_descriptors.h b/src/gallium/drivers/zink/zink_descriptors.h
index a66c2e6915a..622726255e6 100644
--- a/src/gallium/drivers/zink/zink_descriptors.h
+++ b/src/gallium/drivers/zink/zink_descriptors.h
@@ -239,7 +239,7 @@ bool
 zink_descriptor_program_init(struct zink_context *ctx, struct zink_program *pg);
 
 void
-zink_descriptor_program_deinit(struct zink_screen *screen, struct zink_program *pg);
+zink_descriptor_program_deinit(struct zink_context *ctx, struct zink_program *pg);
 
 void
 zink_descriptors_update(struct zink_context *ctx, bool is_compute);
@@ -273,7 +273,7 @@ bool
 zink_descriptor_program_init_lazy(struct zink_context *ctx, struct zink_program *pg);
 
 void
-zink_descriptor_program_deinit_lazy(struct zink_screen *screen, struct zink_program *pg);
+zink_descriptor_program_deinit_lazy(struct zink_context *ctx, struct zink_program *pg);
 
 void
 zink_descriptors_update_lazy(struct zink_context *ctx, bool is_compute);
diff --git a/src/gallium/drivers/zink/zink_descriptors_lazy.c b/src/gallium/drivers/zink/zink_descriptors_lazy.c
index 480e02dd8b5..d2c50460a0f 100644
--- a/src/gallium/drivers/zink/zink_descriptors_lazy.c
+++ b/src/gallium/drivers/zink/zink_descriptors_lazy.c
@@ -304,8 +304,9 @@ zink_descriptor_program_init_lazy(struct zink_context *ctx, struct zink_program
 }
 
 void
-zink_descriptor_program_deinit_lazy(struct zink_screen *screen, struct zink_program *pg)
+zink_descriptor_program_deinit_lazy(struct zink_context *ctx, struct zink_program *pg)
 {
+   struct zink_screen *screen = zink_screen(ctx->base.screen);
    for (unsigned i = 0; pg->num_dsl && i < ZINK_DESCRIPTOR_TYPES; i++) {
       if (pg->dd->layout_key[i])
          pg->dd->layout_key[i]->use_count--;
diff --git a/src/gallium/drivers/zink/zink_program.c b/src/gallium/drivers/zink/zink_program.c
index 7caf7618cca..393f2c10a78 100644
--- a/src/gallium/drivers/zink/zink_program.c
+++ b/src/gallium/drivers/zink/zink_program.c
@@ -597,7 +597,7 @@ zink_destroy_gfx_program(struct zink_context *ctx,
    }
    if (prog->base.pipeline_cache)
       VKSCR(DestroyPipelineCache)(screen->dev, prog->base.pipeline_cache, NULL);
-   screen->descriptor_program_deinit(screen, &prog->base);
+   screen->descriptor_program_deinit(ctx, &prog->base);
 
    ralloc_free(prog);
 }
@@ -624,7 +624,7 @@ zink_destroy_compute_program(struct zink_context *ctx,
    free(comp->module);
    if (comp->base.pipeline_cache)
       VKSCR(DestroyPipelineCache)(screen->dev, comp->base.pipeline_cache, NULL);
-   screen->descriptor_program_deinit(screen, &comp->base);
+   screen->descriptor_program_deinit(ctx, &comp->base);
 
    ralloc_free(comp);
 }
diff --git a/src/gallium/drivers/zink/zink_screen.h b/src/gallium/drivers/zink/zink_screen.h
index 4a30ef5adba..23f7fbafd54 100644
--- a/src/gallium/drivers/zink/zink_screen.h
+++ b/src/gallium/drivers/zink/zink_screen.h
@@ -143,7 +143,7 @@ struct zink_screen {
    struct vk_dispatch_table vk;
 
    bool (*descriptor_program_init)(struct zink_context *ctx, struct zink_program *pg);
-   void (*descriptor_program_deinit)(struct zink_screen *screen, struct zink_program *pg);
+   void (*descriptor_program_deinit)(struct zink_context *ctx, struct zink_program *pg);
    void (*descriptors_update)(struct zink_context *ctx, bool is_compute);
    void (*context_update_descriptor_states)(struct zink_context *ctx, bool is_compute);
    void (*context_invalidate_descriptor_state)(struct zink_context *ctx, enum pipe_shader_type shader,



More information about the mesa-commit mailing list