From: Timothy Arceri Date: Thu, 6 Apr 2017 04:47:34 +0000 (+1000) Subject: mesa: simplify and optimise vertex bindings tracking X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=9d69416a7ee041ca45998b2e46dac3e476fb41d2;p=mesa.git 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 --- 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;