From b366f14b519e61ad22eae1bc26d2c096e53d0f19 Mon Sep 17 00:00:00 2001 From: Qiang Yu Date: Fri, 18 Jul 2025 10:47:33 +0800 Subject: [PATCH] mesa: program pipeline support mesh shader Reviewed-by: Mike Blumenkrantz Part-of: --- src/mesa/main/pipelineobj.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/mesa/main/pipelineobj.c b/src/mesa/main/pipelineobj.c index c71b829e25b..e466d4e9053 100644 --- a/src/mesa/main/pipelineobj.c +++ b/src/mesa/main/pipelineobj.c @@ -250,6 +250,12 @@ use_program_stages(struct gl_context *ctx, struct gl_shader_program *shProg, if ((stages & GL_COMPUTE_SHADER_BIT) != 0) use_program_stage(ctx, GL_COMPUTE_SHADER, shProg, pipe); + if ((stages & GL_TASK_SHADER_BIT_EXT) != 0) + use_program_stage(ctx, GL_TASK_SHADER_EXT, shProg, pipe); + + if ((stages & GL_MESH_SHADER_BIT_EXT) != 0) + use_program_stage(ctx, GL_MESH_SHADER_EXT, shProg, pipe); + pipe->Validated = pipe->UserValidated = false; if (pipe == ctx->_Shader) @@ -316,6 +322,8 @@ _mesa_UseProgramStages(GLuint pipeline, GLbitfield stages, GLuint program) GL_TESS_EVALUATION_SHADER_BIT; if (_mesa_has_compute_shaders(ctx)) any_valid_stages |= GL_COMPUTE_SHADER_BIT; + if (_mesa_has_EXT_mesh_shader(ctx)) + any_valid_stages |= GL_TASK_SHADER_BIT_EXT | GL_MESH_SHADER_BIT_EXT; if (stages != GL_ALL_SHADER_BITS && (stages & ~any_valid_stages) != 0) { _mesa_error(ctx, GL_INVALID_VALUE, "glUseProgramStages(Stages)");