[Mesa-dev] [PATCH 00/10] Make use of VAO information in i965 v4.

Mathias.Froehlich at gmx.net Mathias.Froehlich at gmx.net
Wed Dec 12 06:44:34 UTC 2018


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


Hi all,

The following series is a resend from last spring with some rebasing
on the way.

This change finally makes use of the binding/attribute information now
present in the VAO. The big part is basically a rewrite of brw_draw_upload
in a way that traverses in an outer loop the bindings and for each binding
the attached arrays. By this way the driver emits as few buffers as the VAO
allows. For an application that already configures the VAO with a minimal
set of buffers, this information is now routed through from the application
down into the backend and the hardware.
And there is the first in the series that remove the last VERT_ATTRIB_MAX
long loop in the fast draw path.

I did, up to now, not find a sensible way to split the big blob #2 into smaller
nicer to review chunks. Nevertheless, the patchset run through intels CI
system without introducing failures (With changes in logs frohlich/#85).

The piglit drawoverhead test improves from 1.5 million to 2 million
DrawElements calls and from 1.5 million to 2 million DrawArrays calls
on a Skylake GT2.

Note that the change also serves as a preparation for further cleanup
in the vbo module due to a different code flow for the current attribute values.

Please review

Thanks and best
Mathias


Mathias Fröhlich (10):
  i965: Move down genX_upload_sbe in profiles.
  i965: Use the VAOs binding information in array setup.
  i965: Split merge_inputs and clear_buffers.
  i965: Reorder workaround flags computation.
  i965: Remove glbinding from brw_vertex_element.
  mesa: Remove now unused _mesa_draw_attrib_and_binding.
  mesa: Remove now unused _mesa_draw_attrib.
  mesa: Provide gl_vertex_format accessors.
  i965: Make use of the vertex format functions in i965.
  i965: Use gl_vertex_format in brw_vertex_element.

 src/intel/compiler/brw_compiler.h             |   7 +
 src/intel/compiler/brw_fs.cpp                 |  25 ++
 src/intel/compiler/brw_fs.h                   |   2 +
 src/intel/compiler/brw_fs_visitor.cpp         |   1 +
 src/mesa/drivers/dri/i965/brw_context.h       |   3 +-
 src/mesa/drivers/dri/i965/brw_draw.c          | 103 +++--
 src/mesa/drivers/dri/i965/brw_draw_upload.c   | 366 +++++++++---------
 src/mesa/drivers/dri/i965/genX_state_upload.c |  27 +-
 src/mesa/main/arrayobj.h                      |  51 +--
 9 files changed, 307 insertions(+), 278 deletions(-)

-- 
2.19.2



More information about the mesa-dev mailing list