[Mesa-dev] [PATCH 00/11] Use binding information from DrawVAO.

Mathias.Froehlich at gmx.net Mathias.Froehlich at gmx.net
Sun Apr 1 18:13:00 UTC 2018


From: Mathias Fröhlich <Mathias.Froehlich at gmx.net>

Hi Brian,

We are getting there somehow.
The series builds up unique binding information internal to a VAO.
This shall help drivers to get as few buffer objects as possible.
The first patch implements building up this unique binding information.
Then there is a bunch of gallium changes that do utilize this unique
set of buffer objects for array setup.
Followed by some changes to i965 to get again somehow closer to
utilizing that unique binding information. But here we are not yet
there.
After all we have tnl as only user of gl_vertex_array and consequently
move all that into tnl and rename accordingly.
The changeset has been tested locally with piglit on radeonsi, classic
swrast and i965(Sandybridge Mobile) as well as with intels CI system without
regressions.

There is still a lot of possible cleanup and optimization around
drawing, but with this change gl_vertex_array is pushed into legacy
tnl based drivers.

please review
Thanks!

Mathias



Mathias Fröhlich (11):
  mesa: Compute effective buffer bindings in the vao.
  gallium: Use _DrawVAO for edgeflag enabled check.
  gallium: Make the input_to_index array available.
  gallium: Use Array._DrawVAO in st_atom_array.c.
  gallium: Make feedback draw and rasterpos use _DrawVAO.
  gallium: Remove the now unused gl_vertex_array.
  i965: Implement all_varyings_in_vbos in terms of Array._DrawVAO.
  i965: Remove the gl_vertex_array indirection.
  i965: Remove the now unused gl_vertex_array.
  mesa: Remove Array._DrawArrays.
  mesa/vbo/tnl: Move gl_vertex_array related stuff to tnl.

 src/mesa/drivers/dri/i965/brw_context.h       |   7 +-
 src/mesa/drivers/dri/i965/brw_draw.c          |  49 +--
 src/mesa/drivers/dri/i965/brw_draw_upload.c   |  33 +-
 src/mesa/drivers/dri/i965/genX_state_upload.c |  12 +-
 src/mesa/drivers/dri/nouveau/nouveau_vbo_t.c  |  40 +--
 src/mesa/main/arrayobj.c                      | 293 ++++++++++++++++-
 src/mesa/main/arrayobj.h                      | 171 ++++++++++
 src/mesa/main/attrib.c                        |   2 +-
 src/mesa/main/mtypes.h                        |  56 ++--
 src/mesa/main/varray.c                        |   2 +
 src/mesa/main/varray.h                        |  26 --
 src/mesa/state_tracker/st_atom.c              |  11 +-
 src/mesa/state_tracker/st_atom_array.c        | 448 +++++++-------------------
 src/mesa/state_tracker/st_cb_feedback.c       |  32 +-
 src/mesa/state_tracker/st_cb_rasterpos.c      |  38 +--
 src/mesa/state_tracker/st_context.c           |   3 -
 src/mesa/state_tracker/st_context.h           |   3 -
 src/mesa/state_tracker/st_draw.c              |   8 -
 src/mesa/state_tracker/st_draw.h              |   1 -
 src/mesa/state_tracker/st_draw_feedback.c     |  41 +--
 src/mesa/state_tracker/st_program.c           |  17 +-
 src/mesa/state_tracker/st_program.h           |   5 +
 src/mesa/state_tracker/st_shader_cache.c      |   4 +
 src/mesa/tnl/t_context.c                      |   4 +-
 src/mesa/tnl/t_context.h                      |  41 ++-
 src/mesa/tnl/t_draw.c                         | 100 +++++-
 src/mesa/tnl/t_rebase.c                       |   4 +-
 src/mesa/tnl/t_rebase.h                       |   2 +-
 src/mesa/tnl/t_split.c                        |   2 +-
 src/mesa/tnl/t_split.h                        |   4 +-
 src/mesa/tnl/t_split_copy.c                   |  34 +-
 src/mesa/tnl/t_split_inplace.c                |   4 +-
 src/mesa/tnl/tnl.h                            |  24 +-
 src/mesa/vbo/vbo.h                            |  37 +--
 src/mesa/vbo/vbo_context.c                    |  17 +
 src/mesa/vbo/vbo_exec.c                       |  86 -----
 36 files changed, 927 insertions(+), 734 deletions(-)

-- 
2.14.3



More information about the mesa-dev mailing list