From e251b3903a6aadd49cec6a9ce1ce466e3fcbbdcd Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Tue, 21 Jun 2011 15:18:44 +1000 Subject: r600g: use maths instead of a loop to work out mask. This is equivalent results with less looping. Signed-off-by: Dave Airlie --- src/gallium/drivers/r600/r600_state_common.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) (limited to 'src/gallium/drivers/r600') diff --git a/src/gallium/drivers/r600/r600_state_common.c b/src/gallium/drivers/r600/r600_state_common.c index 0fe0e3d5d67..30c61817a08 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; -- cgit v1.2.3