[Mesa-dev] [RFC PATCH 09/56] mesa: Allow tess stages in glUseProgramStages
Ian Romanick
idr at freedesktop.org
Tue Sep 30 08:54:51 PDT 2014
On 09/20/2014 06:40 PM, Chris Forbes wrote:
> ---
> src/mesa/main/pipelineobj.c | 17 +++++++++++++----
> 1 file changed, 13 insertions(+), 4 deletions(-)
>
> diff --git a/src/mesa/main/pipelineobj.c b/src/mesa/main/pipelineobj.c
> index 61a5785..c902107 100644
> --- a/src/mesa/main/pipelineobj.c
> +++ b/src/mesa/main/pipelineobj.c
> @@ -243,14 +243,13 @@ _mesa_UseProgramStages(GLuint pipeline, GLbitfield stages, GLuint program)
> *
> * "If stages is not the special value ALL_SHADER_BITS, and has a bit
> * set that is not recognized, the error INVALID_VALUE is generated."
> - *
> - * NOT YET SUPPORTED:
> - * GL_TESS_CONTROL_SHADER_BIT
> - * GL_TESS_EVALUATION_SHADER_BIT
> */
> any_valid_stages = GL_VERTEX_SHADER_BIT | GL_FRAGMENT_SHADER_BIT;
> if (_mesa_has_geometry_shaders(ctx))
> any_valid_stages |= GL_GEOMETRY_SHADER_BIT;
> + if (ctx->Extensions.ARB_tessellation_shader)
> + any_valid_stages |= GL_TESS_CONTROL_SHADER_BIT |
> + GL_TESS_EVALUATION_SHADER_BIT;
>
> if (stages != GL_ALL_SHADER_BITS && (stages & ~any_valid_stages) != 0) {
> _mesa_error(ctx, GL_INVALID_VALUE, "glUseProgramStages(Stages)");
> @@ -326,6 +325,12 @@ _mesa_UseProgramStages(GLuint pipeline, GLbitfield stages, GLuint program)
>
> if ((stages & GL_GEOMETRY_SHADER_BIT) != 0)
> _mesa_use_shader_program(ctx, GL_GEOMETRY_SHADER, shProg, pipe);
> +
> + if ((stages & GL_TESS_CONTROL_SHADER_BIT) != 0)
> + _mesa_use_shader_program(ctx, GL_TESS_CONTROL_SHADER, shProg, pipe);
> +
> + if ((stages & GL_TESS_EVALUATION_SHADER_BIT) != 0)
> + _mesa_use_shader_program(ctx, GL_TESS_EVALUATION_SHADER, shProg, pipe);
> }
>
> /**
> @@ -723,6 +728,8 @@ _mesa_validate_program_pipeline(struct gl_context* ctx,
> pipe->CurrentProgram[MESA_SHADER_VERTEX]->Name);
> goto err;
> }
> +
> + /* XXX tess */
Other places in Mesa use FINISHME. I haven't gotten far enough in this
series to see if these are fixed, so this comment may be irrelevant.
> }
>
> /* Section 2.11.11 (Shader Execution), subheading "Validation," of the
> @@ -742,6 +749,8 @@ _mesa_validate_program_pipeline(struct gl_context* ctx,
> && pipe->CurrentProgram[MESA_SHADER_GEOMETRY]) {
> pipe->InfoLog = ralloc_strdup(pipe, "Program lacks a vertex shader");
> goto err;
> +
> + /* XXX: tess */
> }
>
> /* Section 2.11.11 (Shader Execution), subheading "Validation," of the
>
More information about the mesa-dev
mailing list