From: Brian Paul Date: Wed, 28 Oct 2009 02:09:33 +0000 (-0600) Subject: glsl: avoid redundant state changes in _mesa_use_program() X-Git-Tag: mesa-7.8~2742 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b44304efdee562b294e542ea0e47d6c758816ee8;p=platform%2Fupstream%2Fmesa.git glsl: avoid redundant state changes in _mesa_use_program() --- diff --git a/src/mesa/shader/shader_api.c b/src/mesa/shader/shader_api.c index 30fa58e..453cd39 100644 --- a/src/mesa/shader/shader_api.c +++ b/src/mesa/shader/shader_api.c @@ -1547,8 +1547,6 @@ _mesa_use_program(GLcontext *ctx, GLuint program) return; } - FLUSH_VERTICES(ctx, _NEW_PROGRAM | _NEW_PROGRAM_CONSTANTS); - if (program) { shProg = _mesa_lookup_shader_program_err(ctx, program, "glUseProgram"); if (!shProg) { @@ -1569,7 +1567,10 @@ _mesa_use_program(GLcontext *ctx, GLuint program) shProg = NULL; } - _mesa_reference_shader_program(ctx, &ctx->Shader.CurrentProgram, shProg); + if (ctx->Shader.CurrentProgram != shProg) { + FLUSH_VERTICES(ctx, _NEW_PROGRAM | _NEW_PROGRAM_CONSTANTS); + _mesa_reference_shader_program(ctx, &ctx->Shader.CurrentProgram, shProg); + } }