mesa: optimize _UsesDualSrc blend flag setting
authorBrian Paul <brianp@vmware.com>
Wed, 14 Oct 2015 16:08:18 +0000 (10:08 -0600)
committerBrian Paul <brianp@vmware.com>
Thu, 15 Oct 2015 13:21:08 +0000 (07:21 -0600)
For glBlendFunc and glBlendFuncSeparate(), the _UsesDualSrc flag
will be the same for all buffers, so no need to compute it N times.

Reviewed-by: Eric Anholt <eric@anholt.net>
src/mesa/main/blend.c

index a7b7c5b7e8ac28a46fde22cc9e9176c26d157f01..9dec2d41408befa599f51b4f80ab2d2099dc8550 100644 (file)
@@ -255,8 +255,13 @@ _mesa_BlendFuncSeparate( GLenum sfactorRGB, GLenum dfactorRGB,
       ctx->Color.Blend[buf].DstRGB = dfactorRGB;
       ctx->Color.Blend[buf].SrcA = sfactorA;
       ctx->Color.Blend[buf].DstA = dfactorA;
-      update_uses_dual_src(ctx, buf);
    }
+
+   update_uses_dual_src(ctx, 0);
+   for (buf = 1; buf < numBuffers; buf++) {
+      ctx->Color.Blend[buf]._UsesDualSrc = ctx->Color.Blend[0]._UsesDualSrc;
+   }
+
    ctx->Color._BlendFuncPerBuffer = GL_FALSE;
 
    if (ctx->Driver.BlendFuncSeparate) {