[Mesa-dev] [PATCH v4 00/20] Introducing SPIR-V support to clover
Pierre Moreau
pierre.morrow at free.fr
Thu Mar 8 00:21:09 UTC 2018
Hello,
This new version addresses the comments from the v3, making SPIRV-Tools and
llvm-spirv dependencies optional among others.
The series is also accessible at https://github.com/pierremoreau/mesa, on the
branch clover_spirv_series_v4.
llvm-spirv can be currently grabbed from
https://github.com/pierremoreau/llvm-spirv, on the branch integrate_with_mesa.
It seems this will be the current “master” repository, until it gets accepted
as an external tool in LLVM. As an out-of-tree LLVM consumer, it should be
relatively easy to package (especially compared to Khronos’ SPIRV_LLVM
repository).
The SPIR-V clover backend, that was previously part of this series, has been
dropped out for now, and will instead be submitted in a separate series along
with a consumer. So, what this series enable (besides fixing bugs), is to
accept SPIR-V binaries for drivers that accept NATIVE as IR format, so all
drivers currently supported by clover.
Thanks in advance for the reviews and comments,
Pierre
v4:
* Addressed comments in patch 7 and 14;
* Dropped unneeded modification to the TGSI backend in patch 10, as the backend
is now removed in patch 04;
* Moved old patch 12 forward, to new patch 04;
* Modified patches 13, 16 and 19 to make SPIRV-Tools and llvm-spirv optional;
* Dropped old patch 21, as changes are part of new patch 17 and 18 now.
Unchanged patches:
* 01: “include/CL: Update to the latest OpenCL 2.2 headers”
* 02: “clover: update ICD table to support everything up to 2.2”
* 03: “clover/api: Fix tab indentation to spaces”
* 04: “clover: Remove the TGSI backend as unused”
* 05: “clover: Add an helper for checking if an IR is supported”
* 06: “clover/device: Replace usage of "1 << PIPE_SHADER_IR_*" with supports_ir”
* 08: “clover/api: Fail if trying to build a non-executable binary”
* 09: “clover: Disallow creating libraries from other libraries”
* 11: “clover: Move device extensions definitions to core/device.cpp”
* 12: “clover: Move platform extensions definitions to clover/platform.cpp”
* 15: “include/CL: Add cl_khr_il_program”
* 20: “clover: Implement clCreateProgramWithIL from OpenCL 2.1”
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/api: Fix tab indentation to spaces
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: 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 | 17 +
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 | 7 +
src/gallium/state_trackers/clover/Makefile.am | 17 +-
src/gallium/state_trackers/clover/Makefile.sources | 4 -
src/gallium/state_trackers/clover/api/device.cpp | 20 +-
src/gallium/state_trackers/clover/api/dispatch.cpp | 29 +-
src/gallium/state_trackers/clover/api/dispatch.hpp | 194 +++++++++
src/gallium/state_trackers/clover/api/platform.cpp | 6 +-
src/gallium/state_trackers/clover/api/program.cpp | 151 ++++++-
src/gallium/state_trackers/clover/core/device.cpp | 32 +-
src/gallium/state_trackers/clover/core/device.hpp | 2 +
src/gallium/state_trackers/clover/core/module.cpp | 1 +
src/gallium/state_trackers/clover/core/module.hpp | 13 +-
.../state_trackers/clover/core/platform.cpp | 5 +
.../state_trackers/clover/core/platform.hpp | 2 +
src/gallium/state_trackers/clover/core/program.cpp | 55 ++-
src/gallium/state_trackers/clover/core/program.hpp | 12 +
.../state_trackers/clover/llvm/codegen/bitcode.cpp | 3 +-
.../state_trackers/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 | 12 +-
.../state_trackers/clover/tgsi/compiler.cpp | 120 ------
.../state_trackers/clover/tgsi/invocation.hpp | 37 --
37 files changed, 2321 insertions(+), 429 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
delete mode 100644 src/gallium/state_trackers/clover/tgsi/compiler.cpp
delete mode 100644 src/gallium/state_trackers/clover/tgsi/invocation.hpp
--
2.16.2
More information about the mesa-dev
mailing list