@@ -2604,6 +2604,7 @@ F: package/ripgrep/
N: Sebastian Weyer <sebastian.weyer@smile.fr>
F: package/opencl-headers
+F: package/opencl-icd-loader
F: package/rust-bindgen
N: Sébastien Szymanski <sebastien.szymanski@armadeus.com>
@@ -1639,6 +1639,7 @@ menu "Graphics"
source "package/menu-cache/Config.in"
source "package/opencl-clhpp/Config.in"
source "package/opencl-headers/Config.in"
+ source "package/opencl-icd-loader/Config.in"
source "package/opencv3/Config.in"
source "package/opencv4/Config.in"
source "package/opencv4-contrib/Config.in"
new file mode 100644
@@ -0,0 +1,12 @@
+config BR2_PACKAGE_OPENCL_ICD_LOADER
+ bool "OpenCL-ICD-Loader"
+ depends on BR2_INSTALL_LIBSTDCPP
+ depends on BR2_PACKAGE_HAS_LIBOPENCL
+ select BR2_PACKAGE_OPENCL_HEADERS
+ help
+ OpenCL defines an Installable Client Driver (ICD) mechanism to
+ allow developers to build applications against an Installable
+ Client Driver loader (ICD loader) rather than linking their
+ applications against a specific OpenCL implementation.
+
+ https://github.com/KhronosGroup/OpenCL-ICD-Loader
new file mode 100644
@@ -0,0 +1,3 @@
+# locally generated
+sha256 173bdc4f321d550b6578ad2aafc2832f25fbb36041f095e6221025f74134b876 OpenCL-ICD-Loader-2023.04.17.tar.gz
+sha256 c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4 LICENSE
new file mode 100644
@@ -0,0 +1,19 @@
+################################################################################
+#
+# opencl-icd-loader
+#
+################################################################################
+
+OPENCL_ICD_LOADER_VERSION = 2023.04.17
+OPENCL_ICD_LOADER_SOURCE = OpenCL-ICD-Loader-$(OPENCL_ICD_LOADER_VERSION).tar.gz
+OPENCL_ICD_LOADER_SITE = $(call github,KhronosGroup,OpenCL-ICD-Loader,v$(OPENCL_ICD_LOADER_VERSION))
+OPENCL_ICD_LOADER_LICENSE = Apache-2.0
+OPENCL_ICD_LOADER_LICENSE_FILES = LICENSE
+OPENCL_ICD_LOADER_INSTALL_STAGING = YES
+
+OPENCL_ICD_LOADER_DEPENDENCIES = opencl-headers
+
+OPENCL_ICD_LOADER_CONF_OPTS += -DOPENCL_ICD_LOADER_HEADERS_DIR=$(STAGING_DIR)/usr/include
+
+$(eval $(cmake-package))
+$(eval $(host-cmake-package))
With this package it is possible to have multiple implementations of OpenCL at the same time. This package provides a libOpenCL.so file that captures the OpenCL API calls and forwards it to the correct implementation of OpenCL. OpenCL implementations can be manually registered by creating a file containing its full file path in /etc/OpenCL/vendors/<implementation>.icd[1] This package is required by certain OpenCL implementations, for example Mesa3D's implementation if it is not built in standalone mode. [1] https://github.com/KhronosGroup/OpenCL-ICD-Loader#registering-icds Signed-off-by: Sebastian Weyer <sebastian.weyer@smile.fr> --- DEVELOPERS | 1 + package/Config.in | 1 + package/opencl-icd-loader/Config.in | 12 ++++++++++++ .../opencl-icd-loader/opencl-icd-loader.hash | 3 +++ .../opencl-icd-loader/opencl-icd-loader.mk | 19 +++++++++++++++++++ 5 files changed, 36 insertions(+) create mode 100644 package/opencl-icd-loader/Config.in create mode 100644 package/opencl-icd-loader/opencl-icd-loader.hash create mode 100644 package/opencl-icd-loader/opencl-icd-loader.mk