Mesa (master): svga: Performance fixes

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Fri Jun 5 06:56:08 UTC 2020


Module: Mesa
Branch: master
Commit: ba37d408da30d87b6848d76242d9d797dbef80a0
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=ba37d408da30d87b6848d76242d9d797dbef80a0

Author: Neha Bhende <bhenden at vmware.com>
Date:   Tue May 26 21:47:50 2020 +0530

svga: Performance fixes

This is a squash commit of in house performance fixes and misc bug fixes
for GL4.1 support.

Performance fixes:
* started using system memory for constant buffer to gain 3X performance boost with metro redux

Misc bug fixes:
* fixed usage of vertexid in shader
* added empty control point phase in hull shader for zero ouput control point
* misc shader signature fixes
* fixed clip_distance input declaration
* clearing the dirty bit for the surface while using direct map if surface is already flushed
  and there is no pending primitive

This patch also uses SVGA_RETRY macro for commands retries. Part of it is already
used in previous patch.

Reviewed-by: Brian Paul <brianp at vmware.com>
Reviewed-by: Charmaine Lee <charmainel at vmware.com>
Signed-off-by: Neha Bhende <bhenden at vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5317>

---

 src/gallium/drivers/svga/svga_cmd.h                |   6 +
 src/gallium/drivers/svga/svga_cmd_vgpu10.c         |  25 ++
 src/gallium/drivers/svga/svga_context.c            |   4 +-
 src/gallium/drivers/svga/svga_context.h            |  20 +-
 src/gallium/drivers/svga/svga_draw.c               |  40 +-
 src/gallium/drivers/svga/svga_link.c               |  46 ++-
 src/gallium/drivers/svga/svga_link.h               |   7 +-
 src/gallium/drivers/svga/svga_pipe_constants.c     |  35 +-
 src/gallium/drivers/svga/svga_pipe_depthstencil.c  |  73 ++--
 src/gallium/drivers/svga/svga_pipe_draw.c          |   9 +
 src/gallium/drivers/svga/svga_pipe_fs.c            |   8 +-
 src/gallium/drivers/svga/svga_pipe_gs.c            |   8 +-
 src/gallium/drivers/svga/svga_pipe_query.c         | 185 ++++-----
 src/gallium/drivers/svga/svga_pipe_rasterizer.c    |  53 +--
 src/gallium/drivers/svga/svga_pipe_sampler.c       |  53 +--
 src/gallium/drivers/svga/svga_pipe_streamout.c     |   9 +
 src/gallium/drivers/svga/svga_pipe_vertex.c        |  21 +-
 src/gallium/drivers/svga/svga_pipe_vs.c            |   8 +-
 src/gallium/drivers/svga/svga_resource_buffer.c    |  49 ++-
 src/gallium/drivers/svga/svga_resource_buffer.h    |  15 +-
 .../drivers/svga/svga_resource_buffer_upload.c     |  59 +--
 src/gallium/drivers/svga/svga_resource_texture.c   | 149 ++-----
 src/gallium/drivers/svga/svga_screen.c             |   2 +-
 src/gallium/drivers/svga/svga_screen_cache.c       |  20 +-
 src/gallium/drivers/svga/svga_screen_cache.h       |   3 +
 src/gallium/drivers/svga/svga_shader.h             |   3 +
 src/gallium/drivers/svga/svga_state.c              |   8 +
 src/gallium/drivers/svga/svga_state.h              |   5 +
 src/gallium/drivers/svga/svga_state_constants.c    | 458 +++++++++++++++------
 src/gallium/drivers/svga/svga_state_fs.c           |  28 +-
 src/gallium/drivers/svga/svga_state_ts.c           |  30 +-
 src/gallium/drivers/svga/svga_state_vs.c           |   4 +
 src/gallium/drivers/svga/svga_surface.c            |  61 +--
 src/gallium/drivers/svga/svga_swtnl_backend.c      |   9 +-
 src/gallium/drivers/svga/svga_swtnl_draw.c         |  11 +-
 src/gallium/drivers/svga/svga_tgsi_vgpu10.c        | 251 +++++++++--
 src/gallium/drivers/svga/svga_winsys.h             |  14 +
 src/gallium/winsys/svga/drm/vmw_screen.c           |   1 +
 src/gallium/winsys/svga/drm/vmw_screen_svga.c      |   1 +
 src/gallium/winsys/svga/drm/vmw_surface.c          |  61 +++
 src/gallium/winsys/svga/drm/vmw_surface.h          |   6 +
 41 files changed, 1141 insertions(+), 717 deletions(-)

Diff:   http://cgit.freedesktop.org/mesa/mesa/diff/?id=ba37d408da30d87b6848d76242d9d797dbef80a0


More information about the mesa-commit mailing list