[Mesa-dev] [PATCH 2/2] mesa: Make use of u_bit_scan{,64}.
Mathias.Froehlich at gmx.net
Mathias.Froehlich at gmx.net
Thu Jun 9 05:03:41 UTC 2016
From: Mathias Fröhlich <mathias.froehlich at web.de>
Signed-off-by: Mathias Fröhlich <Mathias.Froehlich at web.de>
---
src/mesa/main/arrayobj.c | 6 +++---
src/mesa/main/buffers.c | 4 ++--
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/src/mesa/main/arrayobj.c b/src/mesa/main/arrayobj.c
index 897dac6..9c3451e 100644
--- a/src/mesa/main/arrayobj.c
+++ b/src/mesa/main/arrayobj.c
@@ -52,6 +52,7 @@
#include "mtypes.h"
#include "varray.h"
#include "main/dispatch.h"
+#include "util/bitscan.h"
/**
@@ -342,13 +343,12 @@ _mesa_update_vao_client_arrays(struct gl_context *ctx,
GLbitfield64 arrays = vao->NewArrays;
while (arrays) {
+ const int attrib = u_bit_scan64(&arrays);
+
struct gl_client_array *client_array;
struct gl_vertex_attrib_array *attrib_array;
struct gl_vertex_buffer_binding *buffer_binding;
- GLint attrib = ffsll(arrays) - 1;
- arrays ^= BITFIELD64_BIT(attrib);
-
attrib_array = &vao->VertexAttrib[attrib];
buffer_binding = &vao->VertexBinding[attrib_array->VertexBinding];
client_array = &vao->_VertexAttrib[attrib];
diff --git a/src/mesa/main/buffers.c b/src/mesa/main/buffers.c
index a28c583..e8aedde 100644
--- a/src/mesa/main/buffers.c
+++ b/src/mesa/main/buffers.c
@@ -36,6 +36,7 @@
#include "enums.h"
#include "fbobject.h"
#include "mtypes.h"
+#include "util/bitscan.h"
#define BAD_MASK ~0u
@@ -595,13 +596,12 @@ _mesa_drawbuffers(struct gl_context *ctx, struct gl_framebuffer *fb,
if (n > 0 && _mesa_bitcount(destMask[0]) > 1) {
GLuint count = 0, destMask0 = destMask[0];
while (destMask0) {
- GLint bufIndex = ffs(destMask0) - 1;
+ const int bufIndex = u_bit_scan(&destMask0);
if (fb->_ColorDrawBufferIndexes[count] != bufIndex) {
updated_drawbuffers(ctx, fb);
fb->_ColorDrawBufferIndexes[count] = bufIndex;
}
count++;
- destMask0 &= ~(1 << bufIndex);
}
fb->ColorDrawBuffer[0] = buffers[0];
fb->_NumColorDrawBuffers = count;
--
2.5.5
More information about the mesa-dev
mailing list