On Sat, Mar 14, 2015 at 9:54 PM, Jordan Justen <jordan.l.jus...@intel.com> wrote: > From: Paul Berry <stereotype...@gmail.com> > > Reviewed-by: Jordan Justen <jordan.l.jus...@intel.com>
Reviewed-by: Kristian Høgsberg <k...@bitplanet.net> > --- > src/mesa/main/state.c | 21 +++++++++++++++++++++ > 1 file changed, 21 insertions(+) > > diff --git a/src/mesa/main/state.c b/src/mesa/main/state.c > index dadfb3c..5d5e94d 100644 > --- a/src/mesa/main/state.c > +++ b/src/mesa/main/state.c > @@ -101,9 +101,12 @@ update_program(struct gl_context *ctx) > ctx->_Shader->CurrentProgram[MESA_SHADER_GEOMETRY]; > struct gl_shader_program *fsProg = > ctx->_Shader->CurrentProgram[MESA_SHADER_FRAGMENT]; > + const struct gl_shader_program *csProg = > + ctx->_Shader->CurrentProgram[MESA_SHADER_COMPUTE]; > const struct gl_vertex_program *prevVP = ctx->VertexProgram._Current; > const struct gl_fragment_program *prevFP = ctx->FragmentProgram._Current; > const struct gl_geometry_program *prevGP = ctx->GeometryProgram._Current; > + const struct gl_compute_program *prevCP = ctx->ComputeProgram._Current; > GLbitfield new_state = 0x0; > > /* > @@ -199,6 +202,16 @@ update_program(struct gl_context *ctx) > _mesa_reference_vertprog(ctx, &ctx->VertexProgram._Current, NULL); > } > > + if (csProg && csProg->LinkStatus > + && csProg->_LinkedShaders[MESA_SHADER_COMPUTE]) { > + /* Use GLSL compute shader */ > + _mesa_reference_compprog(ctx, &ctx->ComputeProgram._Current, > + > gl_compute_program(csProg->_LinkedShaders[MESA_SHADER_COMPUTE]->Program)); > + } else { > + /* no compute program */ > + _mesa_reference_compprog(ctx, &ctx->ComputeProgram._Current, NULL); > + } > + > /* Let the driver know what's happening: > */ > if (ctx->FragmentProgram._Current != prevFP) { > @@ -225,6 +238,14 @@ update_program(struct gl_context *ctx) > } > } > > + if (ctx->ComputeProgram._Current != prevCP) { > + new_state |= _NEW_PROGRAM; > + if (ctx->Driver.BindProgram) { > + ctx->Driver.BindProgram(ctx, GL_COMPUTE_PROGRAM_NV, > + (struct gl_program *) > ctx->ComputeProgram._Current); > + } > + } > + > return new_state; > } > > -- > 2.1.4 > > _______________________________________________ > 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