Reviewed-by: Marta Lofstedt <marta.lofst...@intel.com>
> -----Original Message----- > From: mesa-dev [mailto:mesa-dev-boun...@lists.freedesktop.org] On > Behalf Of Jordan Justen > Sent: Thursday, October 29, 2015 8:52 AM > To: mesa-dev@lists.freedesktop.org > Subject: [Mesa-dev] [PATCH 2/2] mesa/sso: Add compute shader support > > Signed-off-by: Jordan Justen <jordan.l.jus...@intel.com> > --- > src/mesa/main/api_validate.c | 2 +- > src/mesa/main/pipelineobj.c | 11 +++++++++++ > 2 files changed, 12 insertions(+), 1 deletion(-) > > diff --git a/src/mesa/main/api_validate.c b/src/mesa/main/api_validate.c > index c59b6f3..46f39e7 100644 > --- a/src/mesa/main/api_validate.c > +++ b/src/mesa/main/api_validate.c > @@ -923,7 +923,7 @@ check_valid_to_compute(struct gl_context *ctx, > const char *function) > * "An INVALID_OPERATION error is generated if there is no active program > * for the compute shader stage." > */ > - prog = ctx->Shader.CurrentProgram[MESA_SHADER_COMPUTE]; > + prog = ctx->_Shader->CurrentProgram[MESA_SHADER_COMPUTE]; > if (prog == NULL || prog->_LinkedShaders[MESA_SHADER_COMPUTE] == > NULL) { > _mesa_error(ctx, GL_INVALID_OPERATION, > "%s(no active compute shader)", diff --git > a/src/mesa/main/pipelineobj.c b/src/mesa/main/pipelineobj.c index > c8c50fa..58730f4 100644 > --- a/src/mesa/main/pipelineobj.c > +++ b/src/mesa/main/pipelineobj.c > @@ -255,6 +255,8 @@ _mesa_UseProgramStages(GLuint pipeline, GLbitfield > stages, GLuint program) > if (_mesa_has_tessellation(ctx)) > any_valid_stages |= GL_TESS_CONTROL_SHADER_BIT | > GL_TESS_EVALUATION_SHADER_BIT; > + if (_mesa_has_compute_shaders(ctx)) > + any_valid_stages |= GL_COMPUTE_SHADER_BIT; > > if (stages != GL_ALL_SHADER_BITS && (stages & ~any_valid_stages) != 0) { > _mesa_error(ctx, GL_INVALID_VALUE, "glUseProgramStages(Stages)"); > @@ -336,6 +338,9 @@ _mesa_UseProgramStages(GLuint pipeline, GLbitfield > stages, GLuint program) > > if ((stages & GL_TESS_EVALUATION_SHADER_BIT) != 0) > _mesa_use_shader_program(ctx, GL_TESS_EVALUATION_SHADER, > shProg, pipe); > + > + if ((stages & GL_COMPUTE_SHADER_BIT) != 0) > + _mesa_use_shader_program(ctx, GL_COMPUTE_SHADER, shProg, > pipe); > } > > /** > @@ -669,6 +674,12 @@ _mesa_GetProgramPipelineiv(GLuint pipeline, > GLenum pname, GLint *params) > *params = pipe->CurrentProgram[MESA_SHADER_FRAGMENT] > ? pipe->CurrentProgram[MESA_SHADER_FRAGMENT]->Name : 0; > return; > + case GL_COMPUTE_SHADER: > + if (!_mesa_has_compute_shaders(ctx)) > + break; > + *params = pipe->CurrentProgram[MESA_SHADER_COMPUTE] > + ? pipe->CurrentProgram[MESA_SHADER_COMPUTE]->Name : 0; > + return; > default: > break; > } > -- > 2.5.1 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev