mesa: Compute effective buffer bindings in the vao.
authorMathias Fröhlich <mathias.froehlich@web.de>
Sun, 1 Apr 2018 18:18:36 +0000 (20:18 +0200)
committerMathias Fröhlich <Mathias.Froehlich@gmx.net>
Thu, 10 May 2018 05:06:15 +0000 (07:06 +0200)
commitd1698d4311a63e1054e458ae1a27d7684595faee
tree6d73b27e4d4963a36db96f20472bc725c265309b
parentfb4011ace9022e674639f2743272b7eba650cde3
mesa: Compute effective buffer bindings in the vao.

Compute VAO buffer binding information past the position/generic0 mapping.
Scan for duplicate buffer bindings and collapse them into derived
effective buffer binding index and effective attribute mask variables.
Provide a set of helper functions to access the distilled
information in the VAO. All of them prefixed with _mesa_draw_...
to indicate that they are meant to query draw information.

v2: Also group user space arrays containing interleaved arrays.
    Add _Eff*Offset to be copied on attribute and binding copy.
    Update comments.

Reviewed-by: Brian Paul <brianp@vmware.com>
Signed-off-by: Mathias Fröhlich <Mathias.Froehlich@web.de>
src/mesa/main/arrayobj.c
src/mesa/main/arrayobj.h
src/mesa/main/attrib.c
src/mesa/main/mtypes.h
src/mesa/main/varray.c
src/mesa/vbo/vbo.h
src/mesa/vbo/vbo_context.c
src/mesa/vbo/vbo_private.h