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

Nicolai Hähnle nhaehnle at gmail.com
Wed Apr 6 00:21:32 UTC 2016


On 02.04.2016 08:10, Bas Nieuwenhuizen wrote:
> 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

Thanks for working on this!

With the remarks of Tom, Marek, Samuel, and Ilia addressed (I tend to 
agree with Ilia on patch #19), patches 1-2, 4, 6-7, 9-14, 15-20 are

Reviewed-by: Nicolai Hähnle <nicolai.haehnle at amd.com>

The barrier and flushing (patches 17-18) look correct to me, but they 
definitely require some Gfx <-> CS tests to be sure.

Cheers,
Nicolai

> 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(-)
>


More information about the mesa-dev mailing list