diff options
author | Timothy Arceri <tarceri@itsqueeze.com> | 2017-04-06 14:47:34 +1000 |
---|---|---|
committer | Timothy Arceri <tarceri@itsqueeze.com> | 2017-04-08 11:18:50 +1000 |
commit | 9d69416a7ee041ca45998b2e46dac3e476fb41d2 (patch) | |
tree | 247e358265dda8af9f1d9fd371e389b10c7ff95e | |
parent | bfabef0e7104dc4043a74ef44e71ecc7636cfe12 (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.c | 8 |
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; |