summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Paul <brianp@vmware.com>2017-04-27 08:52:30 -0600
committerBrian Paul <brianp@vmware.com>2017-04-28 13:12:31 -0600
commit6b60153f042c1191ae8fde3fbfc7d861650287aa (patch)
tree08e70ec8392cf03fd0f215fdbc71213ee7d0b4ff
parent054fb129e1117315d0c4d1ac95bde650aee3faf5 (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 <marek.olsak@amd.com>
-rw-r--r--src/mesa/main/clear.c9
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;
}