Mesa (main): iris: Unify iris_delete_[shader stage]_state functions

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Jul 28 18:00:25 UTC 2021


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

Author: Ian Romanick <ian.d.romanick at intel.com>
Date:   Wed May 19 10:29:50 2021 -0700

iris: Unify iris_delete_[shader stage]_state functions

This is in prepartion for using the live shader cache.

Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11229>

---

 src/gallium/drivers/iris/iris_program.c | 52 ++++++---------------------------
 1 file changed, 9 insertions(+), 43 deletions(-)

diff --git a/src/gallium/drivers/iris/iris_program.c b/src/gallium/drivers/iris/iris_program.c
index e4400d9bd81..e3c0ab7e7a1 100644
--- a/src/gallium/drivers/iris/iris_program.c
+++ b/src/gallium/drivers/iris/iris_program.c
@@ -2555,11 +2555,13 @@ iris_create_compute_state(struct pipe_context *ctx,
  * Frees the iris_uncompiled_shader.
  */
 static void
-iris_delete_shader_state(struct pipe_context *ctx, void *state, gl_shader_stage stage)
+iris_delete_shader_state(struct pipe_context *ctx, void *state)
 {
    struct iris_uncompiled_shader *ish = state;
    struct iris_context *ice = (void *) ctx;
 
+   const gl_shader_stage stage = ish->nir->info.stage;
+
    if (ice->shaders.uncompiled[stage] == ish) {
       ice->shaders.uncompiled[stage] = NULL;
       ice->state.stage_dirty |= IRIS_STAGE_DIRTY_UNCOMPILED_VS << stage;
@@ -2579,42 +2581,6 @@ iris_delete_shader_state(struct pipe_context *ctx, void *state, gl_shader_stage
    free(ish);
 }
 
-static void
-iris_delete_vs_state(struct pipe_context *ctx, void *state)
-{
-   iris_delete_shader_state(ctx, state, MESA_SHADER_VERTEX);
-}
-
-static void
-iris_delete_tcs_state(struct pipe_context *ctx, void *state)
-{
-   iris_delete_shader_state(ctx, state, MESA_SHADER_TESS_CTRL);
-}
-
-static void
-iris_delete_tes_state(struct pipe_context *ctx, void *state)
-{
-   iris_delete_shader_state(ctx, state, MESA_SHADER_TESS_EVAL);
-}
-
-static void
-iris_delete_gs_state(struct pipe_context *ctx, void *state)
-{
-   iris_delete_shader_state(ctx, state, MESA_SHADER_GEOMETRY);
-}
-
-static void
-iris_delete_fs_state(struct pipe_context *ctx, void *state)
-{
-   iris_delete_shader_state(ctx, state, MESA_SHADER_FRAGMENT);
-}
-
-static void
-iris_delete_cs_state(struct pipe_context *ctx, void *state)
-{
-   iris_delete_shader_state(ctx, state, MESA_SHADER_COMPUTE);
-}
-
 /**
  * The pipe->bind_[stage]_state() driver hook.
  *
@@ -2766,12 +2732,12 @@ iris_init_program_functions(struct pipe_context *ctx)
    ctx->create_fs_state  = iris_create_fs_state;
    ctx->create_compute_state = iris_create_compute_state;
 
-   ctx->delete_vs_state  = iris_delete_vs_state;
-   ctx->delete_tcs_state = iris_delete_tcs_state;
-   ctx->delete_tes_state = iris_delete_tes_state;
-   ctx->delete_gs_state  = iris_delete_gs_state;
-   ctx->delete_fs_state  = iris_delete_fs_state;
-   ctx->delete_compute_state = iris_delete_cs_state;
+   ctx->delete_vs_state  = iris_delete_shader_state;
+   ctx->delete_tcs_state = iris_delete_shader_state;
+   ctx->delete_tes_state = iris_delete_shader_state;
+   ctx->delete_gs_state  = iris_delete_shader_state;
+   ctx->delete_fs_state  = iris_delete_shader_state;
+   ctx->delete_compute_state = iris_delete_shader_state;
 
    ctx->bind_vs_state  = iris_bind_vs_state;
    ctx->bind_tcs_state = iris_bind_tcs_state;



More information about the mesa-commit mailing list