mesa: optimize color_buffer_writes_enabled()
authorBrian Paul <brianp@vmware.com>
Thu, 27 Apr 2017 14:52:30 +0000 (08:52 -0600)
committerBrian Paul <brianp@vmware.com>
Fri, 28 Apr 2017 19:12:31 +0000 (13:12 -0600)
Return as soon as we find an existing color channel that's enabled for
writing.  Typically, this allows us to return true on the first loop
iteration intead of doing four iterations.

No piglit regressions.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
src/mesa/main/clear.c

index a1bb36efe241e0508b6fd09dd917f43501713082..884cf986c704b73c9bc1cb1f4774d9f9990ecf65 100644 (file)
@@ -115,16 +115,17 @@ color_buffer_writes_enabled(const struct gl_context *ctx, unsigned idx)
 {
    struct gl_renderbuffer *rb = ctx->DrawBuffer->_ColorDrawBuffers[idx];
    GLuint c;
-   GLubyte colorMask = 0;
 
    if (rb) {
       for (c = 0; c < 4; c++) {
-         if (_mesa_format_has_color_component(rb->Format, c))
-            colorMask |= ctx->Color.ColorMask[idx][c];
+         if (ctx->Color.ColorMask[idx][c] &&
+             _mesa_format_has_color_component(rb->Format, c)) {
+            return true;
+         }
       }
    }
 
-   return colorMask != 0;
+   return false;
 }