MR on gitlab: https://gitlab.freedesktop.org/mesa/mesa/merge_requests/563
Due to some nouveau and other random bits I thought it makes sense to post this series on the Mailing List as well. In short, this series adds support for providing OpenCL through spirv by using the spirv-llvm-translator library to convert llvm to spirv. Karol Herbst (10): nv50/ir/nir: parse system values first and stop for compute shaders nv50/ir/nir: don't assert on !main nv50/ir/nir: handle kernel inputs nv50/ir/nir: implement load/store_global gallium: add blob field to pipe_llvm_program_header rename pipe_llvm_program_header to pipe_binary_program_header nir/spirv: add spirv_to_nir_cl gallium: add entry_point field to pipe_compute_state clover: add support for consuming spirv nvc0: expose spirv support Pierre Moreau (5): meson: Check for SPIRV-Tools and llvm-spirv clover/spirv: Add functions for validating SPIR-V binaries clover/spirv: Add functions for parsing arguments, linking programs, etc. clover/llvm: Add options for dumping SPIR-V binaries clover/llvm: Add functions for compiling from source to SPIR-V meson.build | 13 + meson_options.txt | 6 + src/compiler/Makefile.sources | 1 + src/compiler/nir/meson.build | 1 + src/compiler/spirv/nir_spirv.h | 4 + src/compiler/spirv/spirv_to_nir_cl.c | 124 +++ .../nouveau/codegen/nv50_ir_from_nir.cpp | 120 ++- src/gallium/drivers/nouveau/nouveau_screen.c | 1 + src/gallium/drivers/nouveau/nouveau_screen.h | 1 + .../drivers/nouveau/nvc0/nvc0_screen.c | 14 +- .../drivers/nouveau/nvc0/nvc0_screen.h | 2 + src/gallium/drivers/nouveau/nvc0/nvc0_state.c | 10 + src/gallium/drivers/r600/evergreen_compute.c | 6 +- src/gallium/drivers/radeonsi/si_compute.c | 6 +- src/gallium/include/pipe/p_defines.h | 1 + src/gallium/include/pipe/p_state.h | 4 +- .../state_trackers/clover/Makefile.sources | 4 + .../state_trackers/clover/core/compiler.hpp | 68 ++ .../state_trackers/clover/core/device.cpp | 21 +- .../state_trackers/clover/core/kernel.cpp | 1 + .../state_trackers/clover/core/program.cpp | 10 +- .../clover/llvm/codegen/common.cpp | 2 +- .../state_trackers/clover/llvm/invocation.cpp | 100 ++- .../state_trackers/clover/llvm/invocation.hpp | 8 + .../state_trackers/clover/llvm/util.hpp | 4 +- src/gallium/state_trackers/clover/meson.build | 23 +- .../clover/spirv/invocation.cpp | 756 ++++++++++++++++++ .../clover/spirv/invocation.hpp | 63 ++ 28 files changed, 1291 insertions(+), 83 deletions(-) create mode 100644 src/compiler/spirv/spirv_to_nir_cl.c create mode 100644 src/gallium/state_trackers/clover/core/compiler.hpp create mode 100644 src/gallium/state_trackers/clover/spirv/invocation.cpp create mode 100644 src/gallium/state_trackers/clover/spirv/invocation.hpp -- 2.21.0 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev