Hello everyone, The series is largely unchanged compared to the previous version, but it was also rebased on the latest master. It would be nice to have the series merged in for 19.0 (only three patches out of 20 are missing a review), if the series is ready enough.
For recap since this series has been going on for a while and the last update was some time ago, this series focuses on three areas: * Updating the OpenCL headers and ICD table to OpenCL 2.2; * Cleaning up and improving certain areas in clover, mostly in preparation for SPIR-V support; * Accepting SPIR-V as an input (via the cl_khr_il_program extension for OpenCL <2.1, as well as via the OpenCL >=2.1 core support) and converting it to LLVM IR so that in can easily be used by drivers that already consume LLVM IR. Missing reviews: * Patch 13 (“clover/llvm: Allow translating from SPIR-V to LLVM”) * Patch 15 (“clover/spirv: Add functions for validating SPIR-V binaries”) * Patch 16 (“clover: Implement clCreateProgramWithILKHR”) Changes since v9: * Patch 15 (“clover/spirv: Add functions for validating SPIR-V binaries”): * Fix rebase conflicts against master; * Add `clover_cpp_std` to the overrides of the libcspirv target on Meson. Changes since v8: * Patch 3 (“clover/api: Fix tab indentation to spaces”) was dropped as another fix was merged in the mean time. The whole series can be found at https://gitlab.freedesktop.org/pmoreau/mesa/commits/clover_spirv_series_v10. Thanks in advance, Pierre Karol Herbst (1): clover: update ICD table to support everything up to 2.2 Pierre Moreau (19): include/CL: Update to the latest OpenCL 2.2 headers clover: Remove the TGSI backend as unused clover: Add an helper for checking if an IR is supported clover/device: Replace usage of "1 << PIPE_SHADER_IR_*" with supports_ir clover/api: Rework the validation of devices for building clover/api: Fail if trying to build a non-executable binary clover: Disallow creating libraries from other libraries clover: Track flags per module section clover: Move device extensions definitions to core/device.cpp clover: Move platform extensions definitions to clover/platform.cpp configure.ac,meson: Check for SPIRV-Tools and llvm-spirv clover/llvm: Allow translating from SPIR-V to LLVM IR include/CL: Add cl_khr_il_program clover/spirv: Add functions for validating SPIR-V binaries clover: Implement clCreateProgramWithILKHR clover: Handle CL_PROGRAM_IL in clGetProgramInfo clover/api: Implement CL_DEVICE_IL_VERSION clover: Advertise cl_khr_il_program clover: Implement clCreateProgramWithIL from OpenCL 2.1 configure.ac | 18 + include/CL/cl.h | 472 ++++++++++++++---- include/CL/cl_d3d10.h | 7 +- include/CL/cl_d3d11.h | 7 +- include/CL/cl_dx9_media_sharing.h | 9 +- include/CL/cl_dx9_media_sharing_intel.h | 182 +++++++ include/CL/cl_egl.h | 9 +- include/CL/cl_ext.h | 338 ++++++++++++- include/CL/cl_ext_intel.h | 429 ++++++++++++++++ include/CL/cl_gl.h | 7 +- include/CL/cl_gl_ext.h | 7 +- include/CL/cl_platform.h | 328 +++++++++--- include/CL/cl_va_api_media_sharing_intel.h | 172 +++++++ include/CL/opencl.h | 7 +- meson.build | 8 + src/gallium/state_trackers/clover/Makefile.am | 30 +- .../state_trackers/clover/Makefile.sources | 6 +- .../state_trackers/clover/api/device.cpp | 18 +- .../state_trackers/clover/api/dispatch.cpp | 29 +- .../state_trackers/clover/api/dispatch.hpp | 194 +++++++ .../state_trackers/clover/api/platform.cpp | 6 +- .../state_trackers/clover/api/program.cpp | 119 ++++- .../state_trackers/clover/core/device.cpp | 32 +- .../state_trackers/clover/core/device.hpp | 2 + .../state_trackers/clover/core/module.cpp | 1 + .../state_trackers/clover/core/module.hpp | 13 +- .../state_trackers/clover/core/platform.cpp | 5 + .../state_trackers/clover/core/platform.hpp | 2 + .../state_trackers/clover/core/program.cpp | 55 +- .../state_trackers/clover/core/program.hpp | 12 + .../clover/llvm/codegen/bitcode.cpp | 3 +- .../clover/llvm/codegen/common.cpp | 2 +- .../state_trackers/clover/llvm/invocation.cpp | 29 ++ .../state_trackers/clover/llvm/invocation.hpp | 6 + src/gallium/state_trackers/clover/meson.build | 21 +- .../clover/spirv/invocation.cpp | 138 +++++ .../clover/{tgsi => spirv}/invocation.hpp | 26 +- .../state_trackers/clover/tgsi/compiler.cpp | 120 ----- 38 files changed, 2470 insertions(+), 399 deletions(-) create mode 100644 include/CL/cl_dx9_media_sharing_intel.h create mode 100644 include/CL/cl_ext_intel.h create mode 100644 include/CL/cl_va_api_media_sharing_intel.h create mode 100644 src/gallium/state_trackers/clover/spirv/invocation.cpp rename src/gallium/state_trackers/clover/{tgsi => spirv}/invocation.hpp (56%) delete mode 100644 src/gallium/state_trackers/clover/tgsi/compiler.cpp -- 2.20.1 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev