[Mesa-dev] [PATCH 0/7] gallium/virgl: use hw-atomic buffers

Erik Faye-Lund erik.faye-lund at collabora.com
Thu Aug 30 13:40:11 UTC 2018


Here's a patch-series that cleans up some evergreen-specific gallium
assumptions regarding hw-atomic buffers, as well as uses them on virgl
to avoid reporting synthetically few SSBOs.

The goal is really for gallium drivers to accrately report the exact
amount of SSBOs and hw-atomic buffers they suppport, without any artifical
limitations.

Ideally, I'd submit the last two patches separately, but I left them in
here to show the motivation.

This depends on this virglrenderer MR to be effective:
https://gitlab.freedesktop.org/virgl/virglrenderer/merge_requests/12

This is the final step currently needed to pass dEQP GLES-3.1 (as well as
GLES-3.2) using virgl/virglrenderer on i965 hardware.

Erik Faye-Lund (6):
  st/mesa: use real bool for can_ubo
  st/mesa: clean up atomic vs ssbo code
  st/mesa: simplify MaxAtomicBufferSize-logic
  gallium: add PIPE_CAP_MAX_COMBINED_SHADER_BUFFERS
  gallium: add PIPE_CAP_MAX_COMBINED_HW_ATOMIC_COUNTER{S,_BUFFERS}
  virgl: update minor differences to upstream header

Tomeu Vizoso (1):
  virgl: use hw-atomics instead of in-ssbo ones

 src/gallium/drivers/etnaviv/etnaviv_screen.c  |  8 +++
 .../drivers/freedreno/freedreno_screen.c      |  8 +++
 .../drivers/nouveau/nv30/nv30_screen.c        |  4 ++
 .../drivers/nouveau/nv50/nv50_screen.c        |  4 ++
 .../drivers/nouveau/nvc0/nvc0_screen.c        |  4 ++
 src/gallium/drivers/r300/r300_screen.c        |  8 ++-
 src/gallium/drivers/r600/r600_pipe.c          | 13 ++++
 src/gallium/drivers/radeonsi/si_get.c         |  4 ++
 src/gallium/drivers/svga/svga_screen.c        |  4 ++
 src/gallium/drivers/v3d/v3d_screen.c          | 10 ++-
 src/gallium/drivers/vc4/vc4_screen.c          | 10 ++-
 src/gallium/drivers/virgl/virgl_context.c     | 37 +++++++++++
 src/gallium/drivers/virgl/virgl_context.h     |  2 +
 src/gallium/drivers/virgl/virgl_encode.c      | 23 +++++++
 src/gallium/drivers/virgl/virgl_encode.h      |  3 +
 src/gallium/drivers/virgl/virgl_hw.h          |  5 ++
 src/gallium/drivers/virgl/virgl_protocol.h    | 11 +++-
 src/gallium/drivers/virgl/virgl_screen.c      | 12 +++-
 src/gallium/include/pipe/p_defines.h          |  3 +
 src/mesa/state_tracker/st_extensions.c        | 65 ++++++++++++-------
 20 files changed, 205 insertions(+), 33 deletions(-)

-- 
2.17.1



More information about the mesa-dev mailing list