+ vao->_MaxElement = compute_max_element(vao, enabled);
+}
+
+
+/**
+ * Updates the derived gl_client_arrays when a gl_vertex_attrib_array
+ * or a gl_vertex_buffer_binding has changed.
+ */
+void
+_mesa_update_vao_client_arrays(struct gl_context *ctx,
+ struct gl_vertex_array_object *vao)
+{
+ GLbitfield64 arrays = vao->NewArrays;
+
+ while (arrays) {
+ struct gl_client_array *client_array;
+ struct gl_vertex_attrib_array *attrib_array;
+ struct gl_vertex_buffer_binding *buffer_binding;
+
+ GLint attrib = ffsll(arrays) - 1;
+ arrays ^= BITFIELD64_BIT(attrib);
+
+ attrib_array = &vao->VertexAttrib[attrib];
+ buffer_binding = &vao->VertexBinding[attrib_array->VertexBinding];
+ client_array = &vao->_VertexAttrib[attrib];
+
+ _mesa_update_client_array(ctx, client_array, attrib_array,
+ buffer_binding);
+ }