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.haeh...@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(-)

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to