svga: Performance fixes

Graphics / Mesa 3D Graphics Library / Mesa - Neha Bhende [vmware.com] - 5 June 2020 06:36 EDT

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.

ba37d408da3 svga: Performance fixes
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(-)

Upstream: cgit.freedesktop.org


  • Share