[Mesa-dev] [PATCH 00/22] Add DSA support for vertex array objects
Fredrik Höglund
fredrik at kde.org
Wed Mar 18 16:18:26 PDT 2015
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(-)
More information about the mesa-dev
mailing list