[Mesa-dev] [PATCH 00/11] Implement GL_ARB_vertex_attrib_binding

Ian Romanick idr at freedesktop.org
Mon Nov 4 13:23:29 PST 2013


Patches 1, 3, 4, 6, 7, 8, and 10 are

Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>

I sent trivial comments for patch 2.

I sent comments for patches 5 and 9.

On 10/28/2013 03:33 PM, Fredrik Höglund wrote:
> This extension decouples the vertex attributes from the vertex buffer
> bindings, making it possible to change buffers without having to
> respecify the formats.  The mapping between attributes and vertex
> buffer bindings also becomes configurable.
> 
> This series adds new state structs and changes the gl*Pointer()
> functions to update the new states as described in the specification.
> To avoid making invasive changes in the vbo module I decided to keep
> the gl_client_arrays for now.  Those are now derived from the
> gl_vertex_attrib_array and gl_vertex_buffer_binding states.
> In theory this should also make it possible to incrementally port
> other parts of Mesa to use the new states directly.
> 
> Note that this adds a glVertexAttribLFormat() entry point.
> Mesa doesn't support double-precision attributes (yet), but the
> GL specification says that the results of using a glVertex*L*()
> function to set a non-double precision attribute are undefined,
> so I don't think this is a problem.
> 
> The extension is written against the GL 4.2 specification, and
> based on the tables it refers to one can infer that it requires
> ARB_vertex_array_bgra, ARB_vertex_type_2_10_10_10_rev and
> ARB_ES2_compatibility.  I think the dependencies section should
> have language that removes references to vertex formats added by
> those extensions when they're not supported, so in this series
> I have enabled the extension unconditionally.
> 
> There are no regressions with piglit quick.tests.
> 
> Fredrik Höglund (11):
>       mesa: Restore gl_array_object::NewArray
>       mesa: Split out the format code from update_array()
>       mesa: Rename gl_array_object::VertexAttrib to _VertexAttrib
>       glapi: Add infrastructure for ARB_vertex_attrib_binding
>       mesa: Add ARB_vertex_attrib_binding
>       mesa: Don't use derived vertex state in the FF vertex program
>       mesa: Don't use derived vertex state in Get* queries
>       mesa: Don't use derived vertex state in check_valid_to_render()
>       mesa: Add Get* support for ARB_vertex_attrib_binding
>       mesa: Handle zero-stride arrays in _mesa_update_array_max_element()
>       mesa: Optimize rebinding the same VBO
> 
>  src/mapi/glapi/gen/ARB_vertex_attrib_binding.xml |   58 ++
>  src/mapi/glapi/gen/Makefile.am                   |    1 +
>  src/mapi/glapi/gen/gl_API.xml                    |    6 +-
>  src/mesa/main/api_arrayelt.c                     |   43 +-
>  src/mesa/main/arrayobj.c                         |   73 ++-
>  src/mesa/main/arrayobj.h                         |    5 +
>  src/mesa/main/attrib.c                           |    7 +-
>  src/mesa/main/bufferobj.c                        |    4 +-
>  src/mesa/main/context.c                          |    4 +
>  src/mesa/main/enable.c                           |    2 +
>  src/mesa/main/extensions.c                       |    1 +
>  src/mesa/main/get.c                              |   30 +-
>  src/mesa/main/get_hash_params.py                 |   17 +-
>  src/mesa/main/mtypes.h                           |   53 +-
>  src/mesa/main/state.c                            |    4 +
>  src/mesa/main/tests/dispatch_sanity.cpp          |   12 +-
>  src/mesa/main/varray.c                           |  689 ++++++++++++++++++---
>  src/mesa/main/varray.h                           |   77 ++-
>  src/mesa/vbo/vbo_exec_array.c                    |   12 +-
>  19 files changed, 946 insertions(+), 152 deletions(-)
> 
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
> 



More information about the mesa-dev mailing list