Mesa (master): mesa: optimize color_buffer_writes_enabled()

Brian Paul brianp at kemper.freedesktop.org
Fri Apr 28 19:12:15 UTC 2017


Module: Mesa
Branch: master
Commit: 6b60153f042c1191ae8fde3fbfc7d861650287aa
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=6b60153f042c1191ae8fde3fbfc7d861650287aa

Author: Brian Paul <brianp at vmware.com>
Date:   Thu Apr 27 08:52:30 2017 -0600

mesa: optimize color_buffer_writes_enabled()

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 at amd.com>

---

 src/mesa/main/clear.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/src/mesa/main/clear.c b/src/mesa/main/clear.c
index a1bb36efe2..884cf986c7 100644
--- a/src/mesa/main/clear.c
+++ b/src/mesa/main/clear.c
@@ -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;
 }
 
 




More information about the mesa-commit mailing list