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 _______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
