Hello,

This updated series contains some additional fixes to clover, updates to the
OpenCL headers shipped with Mesa, the removal of the TGSI backend in clover (as
unused), the introduction of a new dependency, llvm-spirv, and some more
changes summarised further down.

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 LLVM (or NATIVE) as IR format,
so all drivers currently supported by clover.

The series is also accessible at https://github.com/pierremoreau/mesa, on the
branch clover_spirv_series_v3.

Thanks in advance for the reviews and comments,
Pierre


Changes since v2:
* Included an updated version of Karol Herbst’s patch
  “clover: update ICD table to support everything up to 2.2”: new commit, patch
  02;
* Renamed “clover: Add additional functions to query supported IRs” to
  “clover: Add an helper for checking if an IR is supported”;
* Added a new commit (patch 05) modifying existing code to use the helper
  introduced in the previous patch;
* Reworked the validation of devices when building programs: new commit, patch
  06;
* Added a new commit (patch 12) removing the TGSI backend in clover, as unused;
* Added llvm-spirv as a dependency;
* Added a new commit (patch 14) for translating SPIR-V to LLVM IR;

* Dropped commit adding PIPE_IR_SPIRV (previously, patch 08);
* Dropped commit refusing to build from source if the preferred IR was
  PIPE_IR_SPIRV (previously, patch 12);
* Dropped commit adding a pointer property (previously, patch 14);
* Dropped commit adding OpenCL 2.1 tokens related to SPIR-V, in favour of
  updating all OpenCL headers to 2.2 (previously, patch 20, new patch 01);

* Dropped commits related to adding a SPIR-V backend to clover (previously,
  patches 10, 11) as they will be submitted later on, along with an actual
  SPIR-V consumer.


Unchanged patches:
* 03: “clover/api: Fix tab indentation to spaces”
* 07: “clover/api: Fail if trying to build a non-executable binary”
* 09: “clover: Track flags per module section”
* 10: “clover: Move device extensions definitions to core/device.cpp”
* 11: “clover: Move platform extensions definitions to clover/platform.cpp”
* 15: “include/CL: Add cl_khr_il_program”
* 21: “clover: Use OpenCL 2.1 defines in place of cl_khr_il_program”


Karol Herbst (1):
  clover: update ICD table to support everything up to 2.2

Pierre Moreau (20):
  include/CL: Update to the latest OpenCL 2.2 headers
  clover/api: Fix tab indentation to spaces
  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
  clover: Remove the TGSI backend as unused
  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_KHR in clGetProgramInfo
  clover/api: Implement CL_DEVICE_IL_VERSION_KHR
  clover: Advertise cl_khr_il_program
  clover: Implement clCreateProgramWithIL from OpenCL 2.1
  clover: Use OpenCL 2.1 defines in place of cl_khr_il_program

 configure.ac                                       |  10 +
 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                                        |   4 +
 src/gallium/state_trackers/clover/Makefile.am      |  17 +-
 src/gallium/state_trackers/clover/Makefile.sources |   4 -
 src/gallium/state_trackers/clover/api/device.cpp   |  19 +-
 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  | 161 ++++++-
 src/gallium/state_trackers/clover/core/device.cpp  |  28 +-
 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 |  56 ++-
 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      |  26 ++
 .../state_trackers/clover/llvm/invocation.hpp      |   4 +
 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, 2304 insertions(+), 437 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

_______________________________________________
mesa-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to