diff options
author | Brian Paul <[email protected]> | 2017-04-27 08:52:30 -0600 |
---|---|---|
committer | Brian Paul <[email protected]> | 2017-04-28 13:12:31 -0600 |
commit | 6b60153f042c1191ae8fde3fbfc7d861650287aa (patch) | |
tree | 08e70ec8392cf03fd0f215fdbc71213ee7d0b4ff | |
parent | 054fb129e1117315d0c4d1ac95bde650aee3faf5 (diff) |
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 <[email protected]>
-rw-r--r-- | src/mesa/main/clear.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/mesa/main/clear.c b/src/mesa/main/clear.c index a1bb36efe24..884cf986c70 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; } |