meta: Save/restore compute shaders

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
This commit is contained in:
Jordan Justen 2015-05-25 12:23:05 -07:00
parent 4a9480b64a
commit 4bdd5e09c3
1 changed files with 4 additions and 2 deletions

View File

@ -599,7 +599,7 @@ _mesa_meta_begin(struct gl_context *ctx, GLbitfield state)
/* Save the shader state from ctx->Shader (instead of ctx->_Shader) so
* that we don't have to worry about the current pipeline state.
*/
for (i = 0; i <= MESA_SHADER_FRAGMENT; i++) {
for (i = 0; i < MESA_SHADER_STAGES; i++) {
_mesa_reference_shader_program(ctx, &save->Shader[i],
ctx->Shader.CurrentProgram[i]);
}
@ -949,7 +949,9 @@ _mesa_meta_end(struct gl_context *ctx)
GL_TESS_EVALUATION_SHADER,
GL_GEOMETRY_SHADER,
GL_FRAGMENT_SHADER,
GL_COMPUTE_SHADER,
};
STATIC_ASSERT(MESA_SHADER_STAGES == ARRAY_SIZE(targets));
bool any_shader;
@ -975,7 +977,7 @@ _mesa_meta_end(struct gl_context *ctx)
}
any_shader = false;
for (i = 0; i <= MESA_SHADER_FRAGMENT; i++) {
for (i = 0; i < MESA_SHADER_STAGES; i++) {
/* It is safe to call _mesa_use_shader_program even if the extension
* necessary for that program state is not supported. In that case,
* the saved program object must be NULL and the currently bound