summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTimothy Arceri <tarceri@itsqueeze.com>2017-04-06 14:47:34 +1000
committerTimothy Arceri <tarceri@itsqueeze.com>2017-04-08 11:18:50 +1000
commit9d69416a7ee041ca45998b2e46dac3e476fb41d2 (patch)
tree247e358265dda8af9f1d9fd371e389b10c7ff95e
parentbfabef0e7104dc4043a74ef44e71ecc7636cfe12 (diff)
mesa: simplify and optimise vertex bindings tracking
We only need to update it if something changes. Also _mesa_bind_vertex_buffer() will update the mask when binding to a NULL or default buffer so no need to do that update here. Reviewed-by: Juan A. Suarez Romero <jasuarez@igalia.com>
-rw-r--r--src/mesa/main/varray.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/src/mesa/main/varray.c b/src/mesa/main/varray.c
index 13126957796..233dc0dc419 100644
--- a/src/mesa/main/varray.c
+++ b/src/mesa/main/varray.c
@@ -137,14 +137,12 @@ vertex_attrib_binding(struct gl_context *ctx,
{
struct gl_array_attributes *array = &vao->VertexAttrib[attribIndex];
- if (!_mesa_is_bufferobj(vao->BufferBinding[bindingIndex].BufferObj))
- vao->VertexAttribBufferMask &= ~VERT_BIT(attribIndex);
- else
- vao->VertexAttribBufferMask |= VERT_BIT(attribIndex);
-
if (array->BufferBindingIndex != bindingIndex) {
const GLbitfield64 array_bit = VERT_BIT(attribIndex);
+ if (_mesa_is_bufferobj(vao->BufferBinding[bindingIndex].BufferObj))
+ vao->VertexAttribBufferMask |= array_bit;
+
FLUSH_VERTICES(ctx, _NEW_ARRAY);
vao->BufferBinding[array->BufferBindingIndex]._BoundArrays &= ~array_bit;