diff options
-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; |