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