gallium: util_set_vertex_buffers_mask(..): make use of u_bit_consecutive(..)
authorChristian Gmeiner <christian.gmeiner@gmail.com>
Fri, 13 Sep 2019 07:04:45 +0000 (09:04 +0200)
committerKenneth Graunke <kenneth@whitecape.org>
Sat, 14 Sep 2019 17:45:47 +0000 (17:45 +0000)
Also move the clearing of the bits out of if/else.

Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
src/gallium/auxiliary/util/u_helpers.c

index c9da90c775a21d97a6d96116a6d9e8d5d4991a3e..00a1a9791fac0655fe473371d9a6ee5d76f8e992 100644 (file)
@@ -52,6 +52,8 @@ void util_set_vertex_buffers_mask(struct pipe_vertex_buffer *dst,
 
    dst += start_slot;
 
+   *enabled_buffers &= ~u_bit_consecutive(start_slot, count);
+
    if (src) {
       for (i = 0; i < count; i++) {
          if (src[i].buffer.resource)
@@ -66,15 +68,12 @@ void util_set_vertex_buffers_mask(struct pipe_vertex_buffer *dst,
       /* Copy over the other members of pipe_vertex_buffer. */
       memcpy(dst, src, count * sizeof(struct pipe_vertex_buffer));
 
-      *enabled_buffers &= ~(((1ull << count) - 1) << start_slot);
       *enabled_buffers |= bitmask << start_slot;
    }
    else {
       /* Unreference the buffers. */
       for (i = 0; i < count; i++)
          pipe_vertex_buffer_unreference(&dst[i]);
-
-      *enabled_buffers &= ~(((1ull << count) - 1) << start_slot);
    }
 }