From 9d69416a7ee041ca45998b2e46dac3e476fb41d2 Mon Sep 17 00:00:00 2001 From: Timothy Arceri Date: Thu, 6 Apr 2017 14:47:34 +1000 Subject: [PATCH] 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 --- src/mesa/main/varray.c | 8 +++----- 1 file 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; -- 2.30.2