diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/mesa/shader/shader_api.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/mesa/shader/shader_api.c b/src/mesa/shader/shader_api.c index 1914adb54ca..842960099ea 100644 --- a/src/mesa/shader/shader_api.c +++ b/src/mesa/shader/shader_api.c @@ -842,6 +842,14 @@ _mesa_link_program(GLcontext *ctx, GLuint program) void _mesa_use_program(GLcontext *ctx, GLuint program) { + if (ctx->Shader.CurrentProgram && + ctx->Shader.CurrentProgram->Name == program) { + /* no-op */ + return; + } + + FLUSH_VERTICES(ctx, _NEW_PROGRAM); + /* unbind old */ if (ctx->Shader.CurrentProgram) { ctx->Shader.CurrentProgram->RefCount--; |