From: Mathias Fröhlich <mathias.froehl...@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 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev