Mesa (main): zink: unify gfx shader create callbacks

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Jun 16 04:59:42 UTC 2021


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

Author: Mike Blumenkrantz <michael.blumenkrantz at gmail.com>
Date:   Mon May 10 06:30:19 2021 -0400

zink: unify gfx shader create callbacks

these are identical

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

---

 src/gallium/drivers/zink/zink_program.c | 87 +++++++--------------------------
 1 file changed, 17 insertions(+), 70 deletions(-)

diff --git a/src/gallium/drivers/zink/zink_program.c b/src/gallium/drivers/zink/zink_program.c
index 281c5608de6..9901ab4cbc8 100644
--- a/src/gallium/drivers/zink/zink_program.c
+++ b/src/gallium/drivers/zink/zink_program.c
@@ -968,19 +968,6 @@ zink_get_compute_pipeline(struct zink_screen *screen,
 }
 
 
-static void *
-zink_create_vs_state(struct pipe_context *pctx,
-                     const struct pipe_shader_state *shader)
-{
-   struct nir_shader *nir;
-   if (shader->type != PIPE_SHADER_IR_NIR)
-      nir = zink_tgsi_to_nir(pctx->screen, shader->tokens);
-   else
-      nir = (struct nir_shader *)shader->ir.nir;
-
-   return zink_shader_create(zink_screen(pctx->screen), nir, &shader->stream_output);
-}
-
 static inline void
 bind_stage(struct zink_context *ctx, enum pipe_shader_type stage,
            struct zink_shader *shader)
@@ -1003,19 +990,6 @@ zink_bind_vs_state(struct pipe_context *pctx,
    bind_stage(zink_context(pctx), PIPE_SHADER_VERTEX, cso);
 }
 
-static void *
-zink_create_fs_state(struct pipe_context *pctx,
-                     const struct pipe_shader_state *shader)
-{
-   struct nir_shader *nir;
-   if (shader->type != PIPE_SHADER_IR_NIR)
-      nir = zink_tgsi_to_nir(pctx->screen, shader->tokens);
-   else
-      nir = (struct nir_shader *)shader->ir.nir;
-
-   return zink_shader_create(zink_screen(pctx->screen), nir, NULL);
-}
-
 static void
 zink_bind_fs_state(struct pipe_context *pctx,
                    void *cso)
@@ -1023,19 +997,6 @@ zink_bind_fs_state(struct pipe_context *pctx,
    bind_stage(zink_context(pctx), PIPE_SHADER_FRAGMENT, cso);
 }
 
-static void *
-zink_create_gs_state(struct pipe_context *pctx,
-                     const struct pipe_shader_state *shader)
-{
-   struct nir_shader *nir;
-   if (shader->type != PIPE_SHADER_IR_NIR)
-      nir = zink_tgsi_to_nir(pctx->screen, shader->tokens);
-   else
-      nir = (struct nir_shader *)shader->ir.nir;
-
-   return zink_shader_create(zink_screen(pctx->screen), nir, &shader->stream_output);
-}
-
 static void
 zink_bind_gs_state(struct pipe_context *pctx,
                    void *cso)
@@ -1047,19 +1008,6 @@ zink_bind_gs_state(struct pipe_context *pctx,
    bind_stage(ctx, PIPE_SHADER_GEOMETRY, cso);
 }
 
-static void *
-zink_create_tcs_state(struct pipe_context *pctx,
-                     const struct pipe_shader_state *shader)
-{
-   struct nir_shader *nir;
-   if (shader->type != PIPE_SHADER_IR_NIR)
-      nir = zink_tgsi_to_nir(pctx->screen, shader->tokens);
-   else
-      nir = (struct nir_shader *)shader->ir.nir;
-
-   return zink_shader_create(zink_screen(pctx->screen), nir, &shader->stream_output);
-}
-
 static void
 zink_bind_tcs_state(struct pipe_context *pctx,
                    void *cso)
@@ -1067,19 +1015,6 @@ zink_bind_tcs_state(struct pipe_context *pctx,
    bind_stage(zink_context(pctx), PIPE_SHADER_TESS_CTRL, cso);
 }
 
-static void *
-zink_create_tes_state(struct pipe_context *pctx,
-                     const struct pipe_shader_state *shader)
-{
-   struct nir_shader *nir;
-   if (shader->type != PIPE_SHADER_IR_NIR)
-      nir = zink_tgsi_to_nir(pctx->screen, shader->tokens);
-   else
-      nir = (struct nir_shader *)shader->ir.nir;
-
-   return zink_shader_create(zink_screen(pctx->screen), nir, &shader->stream_output);
-}
-
 static void
 zink_bind_tes_state(struct pipe_context *pctx,
                    void *cso)
@@ -1122,26 +1057,38 @@ zink_bind_cs_state(struct pipe_context *pctx,
    bind_stage(zink_context(pctx), PIPE_SHADER_COMPUTE, cso);
 }
 
+static void *
+zink_create_gfx_shader_state(struct pipe_context *pctx, const struct pipe_shader_state *shader)
+{
+   struct nir_shader *nir;
+   if (shader->type != PIPE_SHADER_IR_NIR)
+      nir = zink_tgsi_to_nir(pctx->screen, shader->tokens);
+   else
+      nir = (struct nir_shader *)shader->ir.nir;
+
+   return zink_shader_create(zink_screen(pctx->screen), nir, &shader->stream_output);
+}
+
 void
 zink_program_init(struct zink_context *ctx)
 {
-   ctx->base.create_vs_state = zink_create_vs_state;
+   ctx->base.create_vs_state = zink_create_gfx_shader_state;
    ctx->base.bind_vs_state = zink_bind_vs_state;
    ctx->base.delete_vs_state = zink_delete_shader_state;
 
-   ctx->base.create_fs_state = zink_create_fs_state;
+   ctx->base.create_fs_state = zink_create_gfx_shader_state;
    ctx->base.bind_fs_state = zink_bind_fs_state;
    ctx->base.delete_fs_state = zink_delete_shader_state;
 
-   ctx->base.create_gs_state = zink_create_gs_state;
+   ctx->base.create_gs_state = zink_create_gfx_shader_state;
    ctx->base.bind_gs_state = zink_bind_gs_state;
    ctx->base.delete_gs_state = zink_delete_shader_state;
 
-   ctx->base.create_tcs_state = zink_create_tcs_state;
+   ctx->base.create_tcs_state = zink_create_gfx_shader_state;
    ctx->base.bind_tcs_state = zink_bind_tcs_state;
    ctx->base.delete_tcs_state = zink_delete_shader_state;
 
-   ctx->base.create_tes_state = zink_create_tes_state;
+   ctx->base.create_tes_state = zink_create_gfx_shader_state;
    ctx->base.bind_tes_state = zink_bind_tes_state;
    ctx->base.delete_tes_state = zink_delete_shader_state;
 



More information about the mesa-commit mailing list