Module: Mesa Branch: main Commit: 0d32ec54678904fabe9754389503f81ea9574c31 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=0d32ec54678904fabe9754389503f81ea9574c31
Author: Ian Romanick <[email protected]> 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 <[email protected]> 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; _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
