This series implements the VAO portion of GL_ARB_direct_state_access. I started working on this before the decision was made to only expose the extension in the core profile, so this series implements both the core and compatibility behavior. The compatibility support actually only amounts to a couple of lines of code in _mesa_lookup_vao_err(). Everything else was already implemented in the now refactored selector- based entry points.
There are a couple of things worth noting. The first is that VertexArrayElementBuffer requires that the buffer object exists, while VertexArrayVertexBuffer only requires that the ID has been returned by GenBuffers or CreateBuffers. I'm not sure if this is a mistake or not, because the specfication really is quite explicit about it. The second is that the specification can't agree with itself about which parameters GetVertexArrayIndexediv accepts. See the comments in patch 21 for the details. I made the interpretation that the intent is that it should be possible to query all states that can be set with a DSA function. The new piglit tests also depend on this. This series is also available at: git://people.freedesktop.org/~fredrik/mesa arb-direct-state-access I plan on posting the piglit tests shortly. Fredrik Höglund (22): mesa: Implement CreateVertexArrays mesa: Add _mesa_lookup_vao_err mesa: Keep track of the last looked-up VAO mesa: Implement DisableVertexArrayAttrib mesa: Implement EnableVertexArrayAttrib mesa: Implement VertexArrayElementBuffer mesa: Add a vao parameter to bind_vertex_buffer mesa: Implement VertexArrayVertexBuffer mesa: Implement VertexArrayVertexBuffers mesa: Refactor VertexAttrib[I|L]Format mesa: Add a vao parameter to update_array_format mesa: Implement VertexArrayAttrib[I|L]Format mesa: Add a vao parameter to vertex_attrib_binding mesa: Implement VertexArrayAttribBinding mesa: Add a vao parameter to vertex_binding_divisor mesa: Implement VertexArrayBindingDivisor mesa: Implement GetVertexArrayiv mesa: Add a vao parameter to get_vertex_array_attrib mesa: Add a Doubles field in gl_vertex_attrib_array mesa: Add support for quering GL_VERTEX_ATTRIB_ARRAY_LONG mesa: Implement GetVertexArrayIndexed[64]iv docs: Update the ARB_direct_state_access status docs/GL3.txt | 2 +- src/mapi/glapi/gen/ARB_direct_state_access.xml | 96 +++ src/mesa/main/arrayobj.c | 151 +++- src/mesa/main/arrayobj.h | 9 + src/mesa/main/mtypes.h | 5 + src/mesa/main/tests/dispatch_sanity.cpp | 14 + src/mesa/main/varray.c | 757 ++++++++++++++------ src/mesa/main/varray.h | 49 ++ 8 files changed, 876 insertions(+), 207 deletions(-) _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev