Mesa (master): r600g: use maths instead of a loop to work out mask.

Dave Airlie airlied at kemper.freedesktop.org
Tue Jun 21 05:19:15 UTC 2011


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

Author: Dave Airlie <airlied at redhat.com>
Date:   Tue Jun 21 15:18:44 2011 +1000

r600g: use maths instead of a loop to work out mask.

This is equivalent results with less looping.

Signed-off-by: Dave Airlie <airlied at redhat.com>

---

 src/gallium/drivers/r600/r600_state_common.c |    5 +----
 1 files changed, 1 insertions(+), 4 deletions(-)

diff --git a/src/gallium/drivers/r600/r600_state_common.c b/src/gallium/drivers/r600/r600_state_common.c
index 0fe0e3d..30c6181 100644
--- a/src/gallium/drivers/r600/r600_state_common.c
+++ b/src/gallium/drivers/r600/r600_state_common.c
@@ -576,10 +576,7 @@ void r600_draw_vbo(struct pipe_context *ctx, const struct pipe_draw_info *info)
 	if (rctx->alpha_ref_dirty)
 		r600_update_alpha_ref(rctx);
 
-	mask = 0;
-	for (int i = 0; i < rctx->framebuffer.nr_cbufs; i++) {
-		mask |= (0xF << (i * 4));
-	}
+	mask = (1ULL << ((unsigned)rctx->framebuffer.nr_cbufs * 4)) - 1;
 
 	if (rctx->vgt.id != R600_PIPE_STATE_VGT) {
 		rctx->vgt.id = R600_PIPE_STATE_VGT;




More information about the mesa-commit mailing list