build: update opencl headers to v2024.10.24

https://github.com/intel/compute-runtime/issues/822

Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
This commit is contained in:
Mateusz Jablonski
2025-04-14 12:24:03 +00:00
committed by Compute-Runtime-Automation
parent 1432f6a7b2
commit 21f6bb8889
18 changed files with 476 additions and 73 deletions

View File

@@ -249,7 +249,7 @@ bool Context::createImpl(const cl_context_properties *properties,
driverDiagnosticsUsed = debugManager.flags.PrintDriverDiagnostics.get(); driverDiagnosticsUsed = debugManager.flags.PrintDriverDiagnostics.get();
} }
if (driverDiagnosticsUsed >= 0) { if (driverDiagnosticsUsed >= 0) {
driverDiagnostics.reset(new DriverDiagnostics((cl_diagnostics_verbose_level)driverDiagnosticsUsed)); driverDiagnostics = std::make_unique<DriverDiagnostics>(static_cast<cl_diagnostic_verbose_level_intel>(driverDiagnosticsUsed));
} }
this->numProperties = numProperties; this->numProperties = numProperties;

View File

@@ -185,7 +185,7 @@ class Context : public BaseObject<_cl_context> {
void registerSharing(Sharing *sharing); void registerSharing(Sharing *sharing);
template <typename... Args> template <typename... Args>
void providePerformanceHint(cl_diagnostics_verbose_level flags, PerformanceHints performanceHint, Args &&...args) { void providePerformanceHint(cl_diagnostic_verbose_level_intel flags, PerformanceHints performanceHint, Args &&...args) {
DEBUG_BREAK_IF(contextCallback == nullptr); DEBUG_BREAK_IF(contextCallback == nullptr);
DEBUG_BREAK_IF(driverDiagnostics == nullptr); DEBUG_BREAK_IF(driverDiagnostics == nullptr);
char hint[DriverDiagnostics::maxHintStringSize]; char hint[DriverDiagnostics::maxHintStringSize];
@@ -202,8 +202,8 @@ class Context : public BaseObject<_cl_context> {
template <typename... Args> template <typename... Args>
void providePerformanceHintForMemoryTransfer(cl_command_type commandType, bool transferRequired, Args &&...args) { void providePerformanceHintForMemoryTransfer(cl_command_type commandType, bool transferRequired, Args &&...args) {
cl_diagnostics_verbose_level verboseLevel = transferRequired ? CL_CONTEXT_DIAGNOSTICS_LEVEL_BAD_INTEL cl_diagnostic_verbose_level_intel verboseLevel = transferRequired ? CL_CONTEXT_DIAGNOSTICS_LEVEL_BAD_INTEL
: CL_CONTEXT_DIAGNOSTICS_LEVEL_GOOD_INTEL; : CL_CONTEXT_DIAGNOSTICS_LEVEL_GOOD_INTEL;
PerformanceHints hint = driverDiagnostics->obtainHintForTransferOperation(commandType, transferRequired); PerformanceHints hint = driverDiagnostics->obtainHintForTransferOperation(commandType, transferRequired);
providePerformanceHint(verboseLevel, hint, args...); providePerformanceHint(verboseLevel, hint, args...);

View File

@@ -11,11 +11,11 @@
namespace NEO { namespace NEO {
DriverDiagnostics::DriverDiagnostics(cl_diagnostics_verbose_level level) { DriverDiagnostics::DriverDiagnostics(cl_diagnostic_verbose_level_intel level) {
this->verboseLevel = level; this->verboseLevel = level;
} }
bool DriverDiagnostics::validFlags(cl_diagnostics_verbose_level flags) const { bool DriverDiagnostics::validFlags(cl_diagnostic_verbose_level_intel flags) const {
return !!(verboseLevel & flags); return !!(verboseLevel & flags);
} }

View File

@@ -56,14 +56,14 @@ enum PerformanceHints {
class DriverDiagnostics { class DriverDiagnostics {
public: public:
DriverDiagnostics(cl_diagnostics_verbose_level level); DriverDiagnostics(cl_diagnostic_verbose_level_intel level);
bool validFlags(cl_diagnostics_verbose_level flags) const; bool validFlags(cl_diagnostic_verbose_level_intel flags) const;
~DriverDiagnostics() = default; ~DriverDiagnostics() = default;
static const char *const hintFormat[]; static const char *const hintFormat[];
static const cl_int maxHintStringSize = 1024; static const cl_int maxHintStringSize = 1024;
PerformanceHints obtainHintForTransferOperation(cl_command_type commandType, bool transferRequired); PerformanceHints obtainHintForTransferOperation(cl_command_type commandType, bool transferRequired);
protected: protected:
cl_diagnostics_verbose_level verboseLevel; cl_diagnostic_verbose_level_intel verboseLevel;
}; };
} // namespace NEO } // namespace NEO

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2018-2023 Intel Corporation * Copyright (C) 2018-2025 Intel Corporation
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT
* *
@@ -12,6 +12,7 @@
#include "opencl/source/sharings/sharing.h" #include "opencl/source/sharings/sharing.h"
#include "CL/cl.h" #include "CL/cl.h"
#include "CL/cl_gl.h"
#if __clang__ #if __clang__
#pragma clang diagnostic push #pragma clang diagnostic push

View File

@@ -38,14 +38,14 @@ void CL_CALLBACK callbackFunction(const char *providedHint, const void *flags, s
strcpy_s((char *)userData + offset, DriverDiagnostics::maxHintStringSize, providedHint); strcpy_s((char *)userData + offset, DriverDiagnostics::maxHintStringSize, providedHint);
} }
cl_diagnostics_verbose_level diagnosticsVerboseLevels[] = { cl_diagnostic_verbose_level_intel diagnosticsVerboseLevels[] = {
CL_CONTEXT_DIAGNOSTICS_LEVEL_BAD_INTEL, CL_CONTEXT_DIAGNOSTICS_LEVEL_BAD_INTEL,
CL_CONTEXT_DIAGNOSTICS_LEVEL_GOOD_INTEL, CL_CONTEXT_DIAGNOSTICS_LEVEL_GOOD_INTEL,
CL_CONTEXT_DIAGNOSTICS_LEVEL_NEUTRAL_INTEL}; CL_CONTEXT_DIAGNOSTICS_LEVEL_NEUTRAL_INTEL};
TEST_P(VerboseLevelTest, GivenVerboseLevelWhenProvidedHintLevelIsSameOrAllThenCallbackFunctionTakesProvidedHint) { TEST_P(VerboseLevelTest, GivenVerboseLevelWhenProvidedHintLevelIsSameOrAllThenCallbackFunctionTakesProvidedHint) {
cl_device_id deviceID = devices[0]; cl_device_id deviceID = devices[0];
cl_diagnostics_verbose_level diagnosticsLevel = GetParam(); cl_diagnostic_verbose_level_intel diagnosticsLevel = GetParam();
cl_context_properties validProperties[3] = {CL_CONTEXT_SHOW_DIAGNOSTICS_INTEL, (cl_context_properties)diagnosticsLevel, 0}; cl_context_properties validProperties[3] = {CL_CONTEXT_SHOW_DIAGNOSTICS_INTEL, (cl_context_properties)diagnosticsLevel, 0};
retVal = CL_SUCCESS; retVal = CL_SUCCESS;
@@ -67,7 +67,7 @@ TEST_P(VerboseLevelTest, GivenVerboseLevelWhenProvidedHintLevelIsSameOrAllThenCa
TEST_P(VerboseLevelTest, GivenVerboseLevelAllWhenAnyHintIsProvidedThenCallbackFunctionTakesProvidedHint) { TEST_P(VerboseLevelTest, GivenVerboseLevelAllWhenAnyHintIsProvidedThenCallbackFunctionTakesProvidedHint) {
cl_device_id deviceID = devices[0]; cl_device_id deviceID = devices[0];
cl_diagnostics_verbose_level providedHintLevel = GetParam(); cl_diagnostic_verbose_level_intel providedHintLevel = GetParam();
cl_context_properties validProperties[3] = {CL_CONTEXT_SHOW_DIAGNOSTICS_INTEL, CL_CONTEXT_DIAGNOSTICS_LEVEL_ALL_INTEL, 0}; cl_context_properties validProperties[3] = {CL_CONTEXT_SHOW_DIAGNOSTICS_INTEL, CL_CONTEXT_DIAGNOSTICS_LEVEL_ALL_INTEL, 0};
retVal = CL_SUCCESS; retVal = CL_SUCCESS;

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2018-2024 Intel Corporation * Copyright (C) 2018-2025 Intel Corporation
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT
* *
@@ -46,7 +46,7 @@ struct DriverDiagnosticsTest : public PlatformFixture,
}; };
struct VerboseLevelTest : public DriverDiagnosticsTest, struct VerboseLevelTest : public DriverDiagnosticsTest,
public ::testing::WithParamInterface<unsigned int> { public ::testing::WithParamInterface<uint64_t> {
void SetUp() override { void SetUp() override {
DriverDiagnosticsTest::SetUp(); DriverDiagnosticsTest::SetUp();
@@ -57,7 +57,7 @@ struct VerboseLevelTest : public DriverDiagnosticsTest,
void TearDown() override { void TearDown() override {
DriverDiagnosticsTest::TearDown(); DriverDiagnosticsTest::TearDown();
} }
std::vector<unsigned int> validLevels{ std::vector<uint64_t> validLevels{
CL_CONTEXT_DIAGNOSTICS_LEVEL_ALL_INTEL, CL_CONTEXT_DIAGNOSTICS_LEVEL_ALL_INTEL,
CL_CONTEXT_DIAGNOSTICS_LEVEL_BAD_INTEL, CL_CONTEXT_DIAGNOSTICS_LEVEL_BAD_INTEL,
CL_CONTEXT_DIAGNOSTICS_LEVEL_GOOD_INTEL, CL_CONTEXT_DIAGNOSTICS_LEVEL_GOOD_INTEL,

View File

@@ -1,2 +1,2 @@
git_url: https://github.com/KhronosGroup/OpenCL-Headers git_url: https://github.com/KhronosGroup/OpenCL-Headers
git_revision: v2024.05.08 git_revision: v2024.10.24

View File

@@ -112,9 +112,9 @@ typedef cl_uint cl_kernel_exec_info;
typedef cl_bitfield cl_device_atomic_capabilities; typedef cl_bitfield cl_device_atomic_capabilities;
typedef cl_bitfield cl_device_device_enqueue_capabilities; typedef cl_bitfield cl_device_device_enqueue_capabilities;
typedef cl_uint cl_khronos_vendor_id; typedef cl_uint cl_khronos_vendor_id;
typedef cl_properties cl_mem_properties; typedef cl_properties cl_mem_properties;
typedef cl_uint cl_version;
#endif #endif
typedef cl_uint cl_version;
typedef struct _cl_image_format { typedef struct _cl_image_format {
cl_channel_order image_channel_order; cl_channel_order image_channel_order;
@@ -914,8 +914,6 @@ typedef struct _cl_name_version {
/* cl_khronos_vendor_id */ /* cl_khronos_vendor_id */
#define CL_KHRONOS_VENDOR_ID_CODEPLAY 0x10004 #define CL_KHRONOS_VENDOR_ID_CODEPLAY 0x10004
#ifdef CL_VERSION_3_0
/* cl_version */ /* cl_version */
#define CL_VERSION_MAJOR_BITS (10) #define CL_VERSION_MAJOR_BITS (10)
#define CL_VERSION_MINOR_BITS (10) #define CL_VERSION_MINOR_BITS (10)
@@ -939,8 +937,6 @@ typedef struct _cl_name_version {
(((minor) & CL_VERSION_MINOR_MASK) << CL_VERSION_PATCH_BITS) | \ (((minor) & CL_VERSION_MINOR_MASK) << CL_VERSION_PATCH_BITS) | \
((patch) & CL_VERSION_PATCH_MASK)) ((patch) & CL_VERSION_PATCH_MASK))
#endif
/********************************************************************************************************/ /********************************************************************************************************/
/* CL_NO_PROTOTYPES implies CL_NO_CORE_PROTOTYPES: */ /* CL_NO_PROTOTYPES implies CL_NO_CORE_PROTOTYPES: */

View File

@@ -65,6 +65,9 @@ extern "C" {
#define CL_KHR_D3D10_SHARING_EXTENSION_NAME \ #define CL_KHR_D3D10_SHARING_EXTENSION_NAME \
"cl_khr_d3d10_sharing" "cl_khr_d3d10_sharing"
#define CL_KHR_D3D10_SHARING_EXTENSION_VERSION CL_MAKE_VERSION(1, 0, 0)
typedef cl_uint cl_d3d10_device_source_khr; typedef cl_uint cl_d3d10_device_source_khr;
typedef cl_uint cl_d3d10_device_set_khr; typedef cl_uint cl_d3d10_device_set_khr;
@@ -228,6 +231,9 @@ clEnqueueReleaseD3D10ObjectsKHR(
#define CL_INTEL_SHARING_FORMAT_QUERY_D3D10_EXTENSION_NAME \ #define CL_INTEL_SHARING_FORMAT_QUERY_D3D10_EXTENSION_NAME \
"cl_intel_sharing_format_query_d3d10" "cl_intel_sharing_format_query_d3d10"
#define CL_INTEL_SHARING_FORMAT_QUERY_D3D10_EXTENSION_VERSION CL_MAKE_VERSION(0, 0, 0)
/* when cl_khr_d3d10_sharing is supported */ /* when cl_khr_d3d10_sharing is supported */
typedef cl_int CL_API_CALL typedef cl_int CL_API_CALL

View File

@@ -65,6 +65,9 @@ extern "C" {
#define CL_KHR_D3D11_SHARING_EXTENSION_NAME \ #define CL_KHR_D3D11_SHARING_EXTENSION_NAME \
"cl_khr_d3d11_sharing" "cl_khr_d3d11_sharing"
#define CL_KHR_D3D11_SHARING_EXTENSION_VERSION CL_MAKE_VERSION(1, 0, 0)
typedef cl_uint cl_d3d11_device_source_khr; typedef cl_uint cl_d3d11_device_source_khr;
typedef cl_uint cl_d3d11_device_set_khr; typedef cl_uint cl_d3d11_device_set_khr;
@@ -228,6 +231,9 @@ clEnqueueReleaseD3D11ObjectsKHR(
#define CL_INTEL_SHARING_FORMAT_QUERY_D3D11_EXTENSION_NAME \ #define CL_INTEL_SHARING_FORMAT_QUERY_D3D11_EXTENSION_NAME \
"cl_intel_sharing_format_query_d3d11" "cl_intel_sharing_format_query_d3d11"
#define CL_INTEL_SHARING_FORMAT_QUERY_D3D11_EXTENSION_VERSION CL_MAKE_VERSION(0, 0, 0)
/* when cl_khr_d3d11_sharing is supported */ /* when cl_khr_d3d11_sharing is supported */
typedef cl_int CL_API_CALL typedef cl_int CL_API_CALL

View File

@@ -67,6 +67,9 @@ extern "C" {
#define CL_KHR_DX9_MEDIA_SHARING_EXTENSION_NAME \ #define CL_KHR_DX9_MEDIA_SHARING_EXTENSION_NAME \
"cl_khr_dx9_media_sharing" "cl_khr_dx9_media_sharing"
#define CL_KHR_DX9_MEDIA_SHARING_EXTENSION_VERSION CL_MAKE_VERSION(1, 0, 0)
typedef cl_uint cl_dx9_media_adapter_type_khr; typedef cl_uint cl_dx9_media_adapter_type_khr;
typedef cl_uint cl_dx9_media_adapter_set_khr; typedef cl_uint cl_dx9_media_adapter_set_khr;
@@ -209,6 +212,9 @@ clEnqueueReleaseDX9MediaSurfacesKHR(
#define CL_INTEL_DX9_MEDIA_SHARING_EXTENSION_NAME \ #define CL_INTEL_DX9_MEDIA_SHARING_EXTENSION_NAME \
"cl_intel_dx9_media_sharing" "cl_intel_dx9_media_sharing"
#define CL_INTEL_DX9_MEDIA_SHARING_EXTENSION_VERSION CL_MAKE_VERSION(0, 0, 0)
typedef cl_uint cl_dx9_device_source_intel; typedef cl_uint cl_dx9_device_source_intel;
typedef cl_uint cl_dx9_device_set_intel; typedef cl_uint cl_dx9_device_set_intel;
@@ -341,6 +347,9 @@ clEnqueueReleaseDX9ObjectsINTEL(
#define CL_INTEL_SHARING_FORMAT_QUERY_DX9_EXTENSION_NAME \ #define CL_INTEL_SHARING_FORMAT_QUERY_DX9_EXTENSION_NAME \
"cl_intel_sharing_format_query_dx9" "cl_intel_sharing_format_query_dx9"
#define CL_INTEL_SHARING_FORMAT_QUERY_DX9_EXTENSION_VERSION CL_MAKE_VERSION(0, 0, 0)
/* when cl_khr_dx9_media_sharing or cl_intel_dx9_media_sharing is supported */ /* when cl_khr_dx9_media_sharing or cl_intel_dx9_media_sharing is supported */
typedef cl_int CL_API_CALL typedef cl_int CL_API_CALL

View File

@@ -51,6 +51,9 @@ extern "C" {
#define CL_KHR_EGL_IMAGE_EXTENSION_NAME \ #define CL_KHR_EGL_IMAGE_EXTENSION_NAME \
"cl_khr_egl_image" "cl_khr_egl_image"
#define CL_KHR_EGL_IMAGE_EXTENSION_VERSION CL_MAKE_VERSION(1, 0, 0)
/* Command type for events created with clEnqueueAcquireEGLObjectsKHR */ /* Command type for events created with clEnqueueAcquireEGLObjectsKHR */
#define CL_COMMAND_EGL_FENCE_SYNC_OBJECT_KHR 0x202F #define CL_COMMAND_EGL_FENCE_SYNC_OBJECT_KHR 0x202F
#define CL_COMMAND_ACQUIRE_EGL_OBJECTS_KHR 0x202D #define CL_COMMAND_ACQUIRE_EGL_OBJECTS_KHR 0x202D
@@ -144,6 +147,9 @@ clEnqueueReleaseEGLObjectsKHR(
#define CL_KHR_EGL_EVENT_EXTENSION_NAME \ #define CL_KHR_EGL_EVENT_EXTENSION_NAME \
"cl_khr_egl_event" "cl_khr_egl_event"
#define CL_KHR_EGL_EVENT_EXTENSION_VERSION CL_MAKE_VERSION(1, 0, 0)
/* CLeglDisplayKHR is an opaque handle to an EGLDisplay */ /* CLeglDisplayKHR is an opaque handle to an EGLDisplay */
/* type CLeglDisplayKHR */ /* type CLeglDisplayKHR */

File diff suppressed because it is too large Load Diff

View File

@@ -51,6 +51,13 @@ extern "C" {
#define CL_KHR_GL_SHARING_EXTENSION_NAME \ #define CL_KHR_GL_SHARING_EXTENSION_NAME \
"cl_khr_gl_sharing" "cl_khr_gl_sharing"
#define CL_KHR_GL_SHARING_EXTENSION_VERSION CL_MAKE_VERSION(1, 0, 0)
typedef int cl_GLint;
typedef unsigned int cl_GLenum;
typedef unsigned int cl_GLuint;
typedef cl_uint cl_gl_context_info; typedef cl_uint cl_gl_context_info;
/* Error codes */ /* Error codes */
@@ -313,6 +320,9 @@ clCreateFromGLTexture3D(
#define CL_KHR_GL_EVENT_EXTENSION_NAME \ #define CL_KHR_GL_EVENT_EXTENSION_NAME \
"cl_khr_gl_event" "cl_khr_gl_event"
#define CL_KHR_GL_EVENT_EXTENSION_VERSION CL_MAKE_VERSION(1, 0, 0)
typedef struct __GLsync * cl_GLsync; typedef struct __GLsync * cl_GLsync;
/* cl_command_type */ /* cl_command_type */
@@ -345,6 +355,9 @@ clCreateEventFromGLsyncKHR(
#define CL_KHR_GL_DEPTH_IMAGES_EXTENSION_NAME \ #define CL_KHR_GL_DEPTH_IMAGES_EXTENSION_NAME \
"cl_khr_gl_depth_images" "cl_khr_gl_depth_images"
#define CL_KHR_GL_DEPTH_IMAGES_EXTENSION_VERSION CL_MAKE_VERSION(1, 0, 0)
/* cl_channel_order */ /* cl_channel_order */
#define CL_DEPTH_STENCIL 0x10BE #define CL_DEPTH_STENCIL 0x10BE
@@ -358,6 +371,9 @@ clCreateEventFromGLsyncKHR(
#define CL_KHR_GL_MSAA_SHARING_EXTENSION_NAME \ #define CL_KHR_GL_MSAA_SHARING_EXTENSION_NAME \
"cl_khr_gl_msaa_sharing" "cl_khr_gl_msaa_sharing"
#define CL_KHR_GL_MSAA_SHARING_EXTENSION_VERSION CL_MAKE_VERSION(1, 0, 0)
/* cl_gl_texture_info */ /* cl_gl_texture_info */
#define CL_GL_NUM_SAMPLES 0x2012 #define CL_GL_NUM_SAMPLES 0x2012
@@ -368,6 +384,9 @@ clCreateEventFromGLsyncKHR(
#define CL_INTEL_SHARING_FORMAT_QUERY_GL_EXTENSION_NAME \ #define CL_INTEL_SHARING_FORMAT_QUERY_GL_EXTENSION_NAME \
"cl_intel_sharing_format_query_gl" "cl_intel_sharing_format_query_gl"
#define CL_INTEL_SHARING_FORMAT_QUERY_GL_EXTENSION_VERSION CL_MAKE_VERSION(0, 0, 0)
/* when cl_khr_gl_sharing is supported */ /* when cl_khr_gl_sharing is supported */
typedef cl_int CL_API_CALL typedef cl_int CL_API_CALL

View File

@@ -77,7 +77,7 @@ extern "C" {
#ifdef __GNUC__ #ifdef __GNUC__
#define CL_API_SUFFIX_DEPRECATED __attribute__((deprecated)) #define CL_API_SUFFIX_DEPRECATED __attribute__((deprecated))
#define CL_API_PREFIX_DEPRECATED #define CL_API_PREFIX_DEPRECATED
#elif defined(_WIN32) #elif defined(_MSC_VER) && !defined(__clang__)
#define CL_API_SUFFIX_DEPRECATED #define CL_API_SUFFIX_DEPRECATED
#define CL_API_PREFIX_DEPRECATED __declspec(deprecated) #define CL_API_PREFIX_DEPRECATED __declspec(deprecated)
#else #else
@@ -361,11 +361,6 @@ typedef double cl_double;
#include <stddef.h> #include <stddef.h>
/* Mirror types to GL types. Mirror types allow us to avoid deciding which 87s to load based on whether we are using GL or GLES here. */
typedef unsigned int cl_GLuint;
typedef int cl_GLint;
typedef unsigned int cl_GLenum;
/* /*
* Vector types * Vector types
* *

View File

@@ -53,6 +53,9 @@ extern "C" {
#define CL_INTEL_SHARING_FORMAT_QUERY_VA_API_EXTENSION_NAME \ #define CL_INTEL_SHARING_FORMAT_QUERY_VA_API_EXTENSION_NAME \
"cl_intel_sharing_format_query_va_api" "cl_intel_sharing_format_query_va_api"
#define CL_INTEL_SHARING_FORMAT_QUERY_VA_API_EXTENSION_VERSION CL_MAKE_VERSION(0, 0, 0)
/* when cl_intel_va_api_media_sharing is supported */ /* when cl_intel_va_api_media_sharing is supported */
typedef cl_int CL_API_CALL typedef cl_int CL_API_CALL
@@ -89,6 +92,9 @@ clGetSupportedVA_APIMediaSurfaceFormatsINTEL(
#define CL_INTEL_VA_API_MEDIA_SHARING_EXTENSION_NAME \ #define CL_INTEL_VA_API_MEDIA_SHARING_EXTENSION_NAME \
"cl_intel_va_api_media_sharing" "cl_intel_va_api_media_sharing"
#define CL_INTEL_VA_API_MEDIA_SHARING_EXTENSION_VERSION CL_MAKE_VERSION(0, 0, 0)
typedef cl_uint cl_va_api_device_source_intel; typedef cl_uint cl_va_api_device_source_intel;
typedef cl_uint cl_va_api_device_set_intel; typedef cl_uint cl_va_api_device_set_intel;

View File

@@ -123,6 +123,11 @@ LICENSE Source license for the OpenCL API headers
CL/ Unified OpenCL API headers tree CL/ Unified OpenCL API headers tree
``` ```
## Packaging
For packaging instructions, see [RELEASE.md](https://github.com/KhronosGroup/OpenCL-SDK/blob/main/docs/RELEASE.md)
in the OpenCL SDK repository.
## License ## License
See [LICENSE](LICENSE). See [LICENSE](LICENSE).