[Mesa-dev] [PATCH 00/20] GL compute shaders for radeonsi

Bas Nieuwenhuizen bas at basnieuwenhuizen.nl
Sat Apr 2 13:10:43 UTC 2016


This series implements OpenGL compute shader for radeonsi. It
is based off master + Nicolai Hähnle's SSBO patches. 

It depends on two patches for LLVM that have not
been committed yet:
  - D18340
  - D18559

The series is also available as the si-compute-shader branches of
 - https://github.com/BNieuwenhuizen/llvm
 - https://github.com/BNieuwenhuizen/mesa

Bas Nieuwenhuizen (20):
  radeonsi: set shader calling conventions
  radeonsi: lower compute shader arguments
  radeonsi: add shared memory
  radeonsi: implement shared memory load/store
  radeonsi: implement shared atomics
  radeonsi: set maximum work group size based on block size
  radeonsi: update shader count for compute shaders
  radeonsi: implement TGSI compute shader creation
  radeonsi: split input upload off from si_launch_grid
  radeonsi: don't pass scratch buffer to user SGPRs
  radeonsi: do per cs setup for compute shaders once per cs
  radeonsi: rework compute scratch buffer
  radeonsi: only emit compute shader state when switching shaders
  radeonsi: implement TGSI compute dispatch
  radeonsi: split texture decompression for compute shaders
  radeonsi: split setting graphics and compute descriptors
  radeonsi: do not do two full flushes on every compute dispatch
  radeonsi: clean up compute flush
  mesa/st: enable compute shaders if images are also supported
  radeonsi: enable TGSI support cap for compute shaders

 docs/GL3.txt                                       |   4 +-
 docs/relnotes/11.3.0.html                          |   1 +
 src/gallium/drivers/radeon/r600_pipe_common.c      |  21 +-
 src/gallium/drivers/radeon/radeon_llvm.h           |   3 +
 src/gallium/drivers/radeon/radeon_llvm_emit.c      |  17 +-
 .../drivers/radeon/radeon_setup_tgsi_llvm.c        |   4 +
 src/gallium/drivers/radeonsi/si_blit.c             |  13 +-
 src/gallium/drivers/radeonsi/si_compute.c          | 557 ++++++++++++---------
 src/gallium/drivers/radeonsi/si_descriptors.c      |  60 ++-
 src/gallium/drivers/radeonsi/si_hw_context.c       |   2 +
 src/gallium/drivers/radeonsi/si_pipe.c             |   4 +-
 src/gallium/drivers/radeonsi/si_pipe.h             |  11 +-
 src/gallium/drivers/radeonsi/si_shader.c           | 252 +++++++++-
 src/gallium/drivers/radeonsi/si_shader.h           |  10 +
 src/gallium/drivers/radeonsi/si_state.c            |   6 +-
 src/gallium/drivers/radeonsi/si_state.h            |  10 +-
 src/gallium/drivers/radeonsi/si_state_draw.c       |  31 +-
 src/mesa/state_tracker/st_extensions.c             |   6 +-
 18 files changed, 708 insertions(+), 304 deletions(-)

-- 
2.7.4



More information about the mesa-dev mailing list