# advance. Use it with discretion.
option (BUILD_SHARED_LIBS "Build shared libs" ON)
-# This option enables support for OpenCL 3.0 Provisional in the ICD loader. It
-# is currently off by default while the specification is provisional, as it may
-# change.
-option (ENABLE_OPENCL30_PROVISIONAL "Enable 3.0 provisional entry points" OFF)
-
include(CheckFunctionExists)
check_function_exists(secure_getenv HAVE_SECURE_GETENV)
check_function_exists(__secure_getenv HAVE___SECURE_GETENV)
loader/icd_platform.h)
if (WIN32)
- # By default don't include OpenCL 3.0 symbol definitions (i.e. comment them
- # out), but include them for OpenCL 3.0 builds. Once the symbols are no
- # longer provisional then they may be included unconditionally.
- set(ENABLE_OPENCL30_SYMBOLS ";")
- if (ENABLE_OPENCL30_PROVISIONAL)
- set(ENABLE_OPENCL30_SYMBOLS "")
- endif ()
- configure_file(
- ${CMAKE_CURRENT_SOURCE_DIR}/loader/windows/OpenCL.def.in
- ${CMAKE_CURRENT_BINARY_DIR}/loader/windows/OpenCL.def)
-
list (APPEND OPENCL_ICD_LOADER_SOURCES
loader/windows/adapter.h
loader/windows/icd_windows.c
loader/windows/icd_windows_hkr.h
loader/windows/icd_windows_apppackage.cpp
loader/windows/icd_windows_apppackage.h
- ${CMAKE_CURRENT_BINARY_DIR}/loader/windows/OpenCL.def
+ loader/windows/OpenCL.def
loader/windows/OpenCL.rc)
# Only add the DXSDK include directory if the environment variable is
# defined. Since the DXSDK has merged into the Windows SDK, this is
include_directories ($ENV{DXSDK_DIR}/Include)
endif ()
else ()
- # By default don't include OpenCL 3.0 symbol definitions (i.e. comment them
- # out), but include them for OpenCL 3.0 builds. Once the symbols are no
- # longer provisional then they may be included unconditionally.
- set(ENABLE_OPENCL30_SYMBOLS_START "/*")
- set(ENABLE_OPENCL30_SYMBOLS_END "*/")
- if (ENABLE_OPENCL30_PROVISIONAL)
- set(ENABLE_OPENCL30_SYMBOLS_START "")
- set(ENABLE_OPENCL30_SYMBOLS_END "")
- endif ()
- configure_file(
- ${CMAKE_CURRENT_SOURCE_DIR}/loader/linux/icd_exports.map.in
- ${CMAKE_CURRENT_BINARY_DIR}/loader/linux/icd_exports.map)
-
list (APPEND OPENCL_ICD_LOADER_SOURCES
loader/linux/icd_linux.c
loader/linux/icd_linux_envvars.c
- ${CMAKE_CURRENT_BINARY_DIR}/loader/linux/icd_exports.map)
+ loader/linux/icd_exports.map)
endif ()
set (OPENCL_ICD_LOADER_HEADERS_DIR ${CMAKE_CURRENT_SOURCE_DIR}/inc CACHE PATH "Path to OpenCL Headers")
if (APPLE)
target_link_libraries (OpenCL ${CMAKE_THREAD_LIBS_INIT})
else ()
- set_target_properties (OpenCL PROPERTIES LINK_FLAGS "-Wl,--version-script -Wl,${CMAKE_CURRENT_BINARY_DIR}/loader/linux/icd_exports.map")
+ set_target_properties (OpenCL PROPERTIES LINK_FLAGS "-Wl,--version-script -Wl,${CMAKE_CURRENT_SOURCE_DIR}/loader/linux/icd_exports.map")
target_link_libraries (OpenCL ${CMAKE_THREAD_LIBS_INIT})
endif ()
endif ()
include_directories (${OPENCL_ICD_LOADER_HEADERS_DIR})
-if (ENABLE_OPENCL30_PROVISIONAL)
- add_definitions (-DCL_TARGET_OPENCL_VERSION=300)
-else()
- add_definitions (-DCL_TARGET_OPENCL_VERSION=220)
-endif()
+add_definitions (-DCL_TARGET_OPENCL_VERSION=300)
target_include_directories (OpenCL PRIVATE ${CMAKE_CURRENT_BINARY_DIR} loader)
target_link_libraries (OpenCL ${CMAKE_DL_LIBS})
function_name);
}
-#ifdef CL_VERSION_3_0
-/* ICD loader entry points should not normally be ifdef'ed, but prevent
- * OpenCL 3.0 provisional entry points from being in general builds before the
- * specification is finalized. */
-
-CL_API_ENTRY cl_mem CL_API_CALL clCreateBufferWithProperties(
- cl_context context,
- const cl_mem_properties* properties,
- cl_mem_flags flags,
- size_t size,
- void* host_ptr,
- cl_int* errcode_ret) CL_API_SUFFIX__VERSION_3_0
-{
- KHR_ICD_VALIDATE_HANDLE_RETURN_HANDLE(context, CL_INVALID_CONTEXT);
- return context->dispatch->clCreateBufferWithProperties(
- context,
- properties,
- flags,
- size,
- host_ptr,
- errcode_ret);
-}
-
-CL_API_ENTRY cl_mem CL_API_CALL clCreateImageWithProperties(
- cl_context context,
- const cl_mem_properties* properties,
- cl_mem_flags flags,
- const cl_image_format* image_format,
- const cl_image_desc* image_desc,
- void* host_ptr,
- cl_int* errcode_ret) CL_API_SUFFIX__VERSION_3_0
-{
- KHR_ICD_VALIDATE_HANDLE_RETURN_HANDLE(context, CL_INVALID_CONTEXT);
- return context->dispatch->clCreateImageWithProperties(
- context,
- properties,
- flags,
- image_format,
- image_desc,
- host_ptr,
- errcode_ret);
-}
-
-CL_API_ENTRY cl_int CL_API_CALL clSetContextDestructorCallback(
- cl_context context,
- void (CL_CALLBACK* pfn_notify)(cl_context context, void* user_data),
- void* user_data) CL_API_SUFFIX__VERSION_3_0
-{
- KHR_ICD_VALIDATE_HANDLE_RETURN_ERROR(context, CL_INVALID_CONTEXT);
- return context->dispatch->clSetContextDestructorCallback(
- context,
- pfn_notify,
- user_data);
-}
-
-#endif // CL_VERSION_3_0
-
#ifdef __cplusplus
}
#endif
///////////////////////////////////////////////////////////////////////////////
+CL_API_ENTRY cl_int CL_API_CALL clSetContextDestructorCallback(
+ cl_context context,
+ void (CL_CALLBACK* pfn_notify)(cl_context context, void* user_data),
+ void* user_data) CL_API_SUFFIX__VERSION_3_0
+{
+ KHR_ICD_VALIDATE_HANDLE_RETURN_ERROR(context, CL_INVALID_CONTEXT);
+ return context->dispatch->clSetContextDestructorCallback(
+ context,
+ pfn_notify,
+ user_data);
+}
+
+///////////////////////////////////////////////////////////////////////////////
+
+CL_API_ENTRY cl_mem CL_API_CALL clCreateBufferWithProperties(
+ cl_context context,
+ const cl_mem_properties* properties,
+ cl_mem_flags flags,
+ size_t size,
+ void* host_ptr,
+ cl_int* errcode_ret) CL_API_SUFFIX__VERSION_3_0
+{
+ KHR_ICD_VALIDATE_HANDLE_RETURN_HANDLE(context, CL_INVALID_CONTEXT);
+ return context->dispatch->clCreateBufferWithProperties(
+ context,
+ properties,
+ flags,
+ size,
+ host_ptr,
+ errcode_ret);
+}
+
+///////////////////////////////////////////////////////////////////////////////
+
+CL_API_ENTRY cl_mem CL_API_CALL clCreateImageWithProperties(
+ cl_context context,
+ const cl_mem_properties* properties,
+ cl_mem_flags flags,
+ const cl_image_format* image_format,
+ const cl_image_desc* image_desc,
+ void* host_ptr,
+ cl_int* errcode_ret) CL_API_SUFFIX__VERSION_3_0
+{
+ KHR_ICD_VALIDATE_HANDLE_RETURN_HANDLE(context, CL_INVALID_CONTEXT);
+ return context->dispatch->clCreateImageWithProperties(
+ context,
+ properties,
+ flags,
+ image_format,
+ image_desc,
+ host_ptr,
+ errcode_ret);
+}
+
+///////////////////////////////////////////////////////////////////////////////
+
// cl_ext_device_fission
CL_API_ENTRY cl_int CL_API_CALL clReleaseDeviceEXT(
--- /dev/null
+/*
+ * Copyright (c) 2016-2019 The Khronos Group Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * OpenCL is a trademark of Apple Inc. used under license by Khronos.
+ */
+
+OPENCL_1.0 {
+ global:
+ clBuildProgram;
+ clCreateBuffer;
+ clCreateCommandQueue;
+ clCreateContext;
+ clCreateContextFromType;
+ clCreateFromGLBuffer;
+ clCreateFromGLRenderbuffer;
+ clCreateFromGLTexture2D;
+ clCreateFromGLTexture3D;
+ clCreateImage2D;
+ clCreateImage3D;
+ clCreateKernel;
+ clCreateKernelsInProgram;
+ clCreateProgramWithBinary;
+ clCreateProgramWithSource;
+ clCreateSampler;
+ clEnqueueAcquireGLObjects;
+ clEnqueueBarrier;
+ clEnqueueCopyBuffer;
+ clEnqueueCopyBufferToImage;
+ clEnqueueCopyImage;
+ clEnqueueCopyImageToBuffer;
+ clEnqueueMapBuffer;
+ clEnqueueMapImage;
+ clEnqueueMarker;
+ clEnqueueNDRangeKernel;
+ clEnqueueNativeKernel;
+ clEnqueueReadBuffer;
+ clEnqueueReadImage;
+ clEnqueueReleaseGLObjects;
+ clEnqueueTask;
+ clEnqueueUnmapMemObject;
+ clEnqueueWaitForEvents;
+ clEnqueueWriteBuffer;
+ clEnqueueWriteImage;
+ clFinish;
+ clFlush;
+ clGetCommandQueueInfo;
+ clGetContextInfo;
+ clGetDeviceIDs;
+ clGetDeviceInfo;
+ clGetEventInfo;
+ clGetEventProfilingInfo;
+ clGetExtensionFunctionAddress;
+ clGetGLObjectInfo;
+ clGetGLTextureInfo;
+ clGetImageInfo;
+ clGetKernelInfo;
+ clGetKernelWorkGroupInfo;
+ clGetMemObjectInfo;
+ clGetPlatformIDs;
+ clGetPlatformInfo;
+ clGetProgramBuildInfo;
+ clGetProgramInfo;
+ clGetSamplerInfo;
+ clGetSupportedImageFormats;
+ clReleaseCommandQueue;
+ clReleaseContext;
+ clReleaseEvent;
+ clReleaseKernel;
+ clReleaseMemObject;
+ clReleaseProgram;
+ clReleaseSampler;
+ clRetainCommandQueue;
+ clRetainContext;
+ clRetainEvent;
+ clRetainKernel;
+ clRetainMemObject;
+ clRetainProgram;
+ clRetainSampler;
+ clSetCommandQueueProperty;
+ clSetKernelArg;
+ clUnloadCompiler;
+ clWaitForEvents;
+
+ local:
+ /* Everything else is local to ICD. */
+ *;
+};
+
+OPENCL_1.1 {
+ global:
+ clCreateSubBuffer;
+ clCreateUserEvent;
+ clEnqueueCopyBufferRect;
+ clEnqueueReadBufferRect;
+ clEnqueueWriteBufferRect;
+ clSetEventCallback;
+ clSetMemObjectDestructorCallback;
+ clSetUserEventStatus;
+} OPENCL_1.0;
+
+OPENCL_1.2 {
+ global:
+ clCompileProgram;
+ clCreateFromGLTexture;
+ clCreateImage;
+ clCreateProgramWithBuiltInKernels;
+ clCreateSubDevices;
+ clEnqueueBarrierWithWaitList;
+ clEnqueueFillBuffer;
+ clEnqueueFillImage;
+ clEnqueueMarkerWithWaitList;
+ clEnqueueMigrateMemObjects;
+ clGetExtensionFunctionAddressForPlatform;
+ clGetKernelArgInfo;
+ clLinkProgram;
+ clReleaseDevice;
+ clRetainDevice;
+ clUnloadPlatformCompiler;
+} OPENCL_1.1;
+
+OPENCL_2.0 {
+ global:
+ clCreateCommandQueueWithProperties;
+ clCreatePipe;
+ clGetPipeInfo;
+ clSVMAlloc;
+ clSVMFree;
+ clEnqueueSVMFree;
+ clEnqueueSVMMemcpy;
+ clEnqueueSVMMemFill;
+ clEnqueueSVMMap;
+ clEnqueueSVMUnmap;
+ clCreateSamplerWithProperties;
+ clSetKernelArgSVMPointer;
+ clSetKernelExecInfo;
+} OPENCL_1.2;
+
+OPENCL_2.1 {
+ global:
+ clCloneKernel;
+ clCreateProgramWithIL;
+ clEnqueueSVMMigrateMem;
+ clGetDeviceAndHostTimer;
+ clGetHostTimer;
+ clGetKernelSubGroupInfo;
+ clSetDefaultDeviceCommandQueue;
+} OPENCL_2.0;
+
+OPENCL_2.2 {
+ global:
+ clSetProgramReleaseCallback;
+ clSetProgramSpecializationConstant;
+} OPENCL_2.1;
+
+OPENCL_3.0 {
+ global:
+ clCreateBufferWithProperties;
+ clCreateImageWithProperties;
+ clSetContextDestructorCallback;
+} OPENCL_2.2;
+++ /dev/null
-/*
- * Copyright (c) 2016-2019 The Khronos Group Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * OpenCL is a trademark of Apple Inc. used under license by Khronos.
- */
-
-OPENCL_1.0 {
- global:
- clBuildProgram;
- clCreateBuffer;
- clCreateCommandQueue;
- clCreateContext;
- clCreateContextFromType;
- clCreateFromGLBuffer;
- clCreateFromGLRenderbuffer;
- clCreateFromGLTexture2D;
- clCreateFromGLTexture3D;
- clCreateImage2D;
- clCreateImage3D;
- clCreateKernel;
- clCreateKernelsInProgram;
- clCreateProgramWithBinary;
- clCreateProgramWithSource;
- clCreateSampler;
- clEnqueueAcquireGLObjects;
- clEnqueueBarrier;
- clEnqueueCopyBuffer;
- clEnqueueCopyBufferToImage;
- clEnqueueCopyImage;
- clEnqueueCopyImageToBuffer;
- clEnqueueMapBuffer;
- clEnqueueMapImage;
- clEnqueueMarker;
- clEnqueueNDRangeKernel;
- clEnqueueNativeKernel;
- clEnqueueReadBuffer;
- clEnqueueReadImage;
- clEnqueueReleaseGLObjects;
- clEnqueueTask;
- clEnqueueUnmapMemObject;
- clEnqueueWaitForEvents;
- clEnqueueWriteBuffer;
- clEnqueueWriteImage;
- clFinish;
- clFlush;
- clGetCommandQueueInfo;
- clGetContextInfo;
- clGetDeviceIDs;
- clGetDeviceInfo;
- clGetEventInfo;
- clGetEventProfilingInfo;
- clGetExtensionFunctionAddress;
- clGetGLObjectInfo;
- clGetGLTextureInfo;
- clGetImageInfo;
- clGetKernelInfo;
- clGetKernelWorkGroupInfo;
- clGetMemObjectInfo;
- clGetPlatformIDs;
- clGetPlatformInfo;
- clGetProgramBuildInfo;
- clGetProgramInfo;
- clGetSamplerInfo;
- clGetSupportedImageFormats;
- clReleaseCommandQueue;
- clReleaseContext;
- clReleaseEvent;
- clReleaseKernel;
- clReleaseMemObject;
- clReleaseProgram;
- clReleaseSampler;
- clRetainCommandQueue;
- clRetainContext;
- clRetainEvent;
- clRetainKernel;
- clRetainMemObject;
- clRetainProgram;
- clRetainSampler;
- clSetCommandQueueProperty;
- clSetKernelArg;
- clUnloadCompiler;
- clWaitForEvents;
-
- local:
- /* Everything else is local to ICD. */
- *;
-};
-
-OPENCL_1.1 {
- global:
- clCreateSubBuffer;
- clCreateUserEvent;
- clEnqueueCopyBufferRect;
- clEnqueueReadBufferRect;
- clEnqueueWriteBufferRect;
- clSetEventCallback;
- clSetMemObjectDestructorCallback;
- clSetUserEventStatus;
-} OPENCL_1.0;
-
-OPENCL_1.2 {
- global:
- clCompileProgram;
- clCreateFromGLTexture;
- clCreateImage;
- clCreateProgramWithBuiltInKernels;
- clCreateSubDevices;
- clEnqueueBarrierWithWaitList;
- clEnqueueFillBuffer;
- clEnqueueFillImage;
- clEnqueueMarkerWithWaitList;
- clEnqueueMigrateMemObjects;
- clGetExtensionFunctionAddressForPlatform;
- clGetKernelArgInfo;
- clLinkProgram;
- clReleaseDevice;
- clRetainDevice;
- clUnloadPlatformCompiler;
-} OPENCL_1.1;
-
-OPENCL_2.0 {
- global:
- clCreateCommandQueueWithProperties;
- clCreatePipe;
- clGetPipeInfo;
- clSVMAlloc;
- clSVMFree;
- clEnqueueSVMFree;
- clEnqueueSVMMemcpy;
- clEnqueueSVMMemFill;
- clEnqueueSVMMap;
- clEnqueueSVMUnmap;
- clCreateSamplerWithProperties;
- clSetKernelArgSVMPointer;
- clSetKernelExecInfo;
-} OPENCL_1.2;
-
-OPENCL_2.1 {
- global:
- clCloneKernel;
- clCreateProgramWithIL;
- clEnqueueSVMMigrateMem;
- clGetDeviceAndHostTimer;
- clGetHostTimer;
- clGetKernelSubGroupInfo;
- clSetDefaultDeviceCommandQueue;
-} OPENCL_2.0;
-
-OPENCL_2.2 {
- global:
- clSetProgramReleaseCallback;
- clSetProgramSpecializationConstant;
-} OPENCL_2.1;
-
-@ENABLE_OPENCL30_SYMBOLS_START@
-OPENCL_3.0 {
- global:
- clCreateBufferWithProperties;
- clCreateImageWithProperties;
- clSetContextDestructorCallback;
-} OPENCL_2.2;
-@ENABLE_OPENCL30_SYMBOLS_END@
--- /dev/null
+;
+; Copyright (c) 2016-2019 The Khronos Group Inc.
+;
+; Licensed under the Apache License, Version 2.0 (the "License");
+; you may not use this file except in compliance with the License.
+; You may obtain a copy of the License at
+;
+; http://www.apache.org/licenses/LICENSE-2.0
+;
+; Unless required by applicable law or agreed to in writing, software
+; distributed under the License is distributed on an "AS IS" BASIS,
+; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+; See the License for the specific language governing permissions and
+; limitations under the License.
+;
+; OpenCL is a trademark of Apple Inc. used under license by Khronos.
+
+EXPORTS
+
+;
+; Note:
+;
+; 1. Functions are grouped into blocks according to the OpenCL API version they
+; were introduced in.
+;
+; 2. Function blocks are sorted in ascending order of the API version.
+;
+; 3. Functions within a block are sorted alphabetically.
+;
+
+; OpenCL 1.0 API
+clBuildProgram
+clCreateBuffer
+clCreateCommandQueue
+clCreateContext
+clCreateContextFromType
+clCreateFromGLBuffer
+clCreateFromGLRenderbuffer
+clCreateFromGLTexture2D
+clCreateFromGLTexture3D
+clCreateImage2D
+clCreateImage3D
+clCreateKernel
+clCreateKernelsInProgram
+clCreateProgramWithBinary
+clCreateProgramWithSource
+clCreateSampler
+clEnqueueAcquireGLObjects
+clEnqueueBarrier
+clEnqueueCopyBuffer
+clEnqueueCopyBufferToImage
+clEnqueueCopyImage
+clEnqueueCopyImageToBuffer
+clEnqueueMapBuffer
+clEnqueueMapImage
+clEnqueueMarker
+clEnqueueNDRangeKernel
+clEnqueueNativeKernel
+clEnqueueReadBuffer
+clEnqueueReadImage
+clEnqueueReleaseGLObjects
+clEnqueueTask
+clEnqueueUnmapMemObject
+clEnqueueWaitForEvents
+clEnqueueWriteBuffer
+clEnqueueWriteImage
+clFinish
+clFlush
+clGetCommandQueueInfo
+clGetContextInfo
+clGetDeviceIDs
+clGetDeviceInfo
+clGetEventInfo
+clGetEventProfilingInfo
+clGetExtensionFunctionAddress
+clGetGLObjectInfo
+clGetGLTextureInfo
+clGetImageInfo
+clGetKernelInfo
+clGetKernelWorkGroupInfo
+clGetMemObjectInfo
+clGetPlatformIDs
+clGetPlatformInfo
+clGetProgramBuildInfo
+clGetProgramInfo
+clGetSamplerInfo
+clGetSupportedImageFormats
+clReleaseCommandQueue
+clReleaseContext
+clReleaseEvent
+clReleaseKernel
+clReleaseMemObject
+clReleaseProgram
+clReleaseSampler
+clRetainCommandQueue
+clRetainContext
+clRetainEvent
+clRetainKernel
+clRetainMemObject
+clRetainProgram
+clRetainSampler
+clSetCommandQueueProperty
+clSetKernelArg
+clUnloadCompiler
+clWaitForEvents
+
+; OpenCL 1.1 API
+clCreateSubBuffer
+clCreateUserEvent
+clEnqueueCopyBufferRect
+clEnqueueReadBufferRect
+clEnqueueWriteBufferRect
+clSetEventCallback
+clSetMemObjectDestructorCallback
+clSetUserEventStatus
+
+; OpenCL 1.2 API
+clCompileProgram
+clCreateFromGLTexture
+clCreateImage
+clCreateProgramWithBuiltInKernels
+clCreateSubDevices
+clEnqueueBarrierWithWaitList
+clEnqueueFillBuffer
+clEnqueueFillImage
+clEnqueueMarkerWithWaitList
+clEnqueueMigrateMemObjects
+clGetExtensionFunctionAddressForPlatform
+clGetKernelArgInfo
+clLinkProgram
+clReleaseDevice
+clRetainDevice
+clUnloadPlatformCompiler
+
+; OpenCL 2.0 API
+clCreateCommandQueueWithProperties
+clCreatePipe
+clCreateSamplerWithProperties
+clEnqueueSVMFree
+clEnqueueSVMMap
+clEnqueueSVMMemcpy
+clEnqueueSVMMemFill
+clEnqueueSVMUnmap
+clGetPipeInfo
+clSetKernelArgSVMPointer
+clSetKernelExecInfo
+clSVMAlloc
+clSVMFree
+
+; OpenCL 2.1 API
+clCloneKernel
+clCreateProgramWithIL
+clEnqueueSVMMigrateMem
+clGetDeviceAndHostTimer
+clGetHostTimer
+clGetKernelSubGroupInfo
+clSetDefaultDeviceCommandQueue
+
+; OpenCL 2.2 API
+clSetProgramReleaseCallback
+clSetProgramSpecializationConstant
+
+; OpenCL 3.0 API
+clCreateBufferWithProperties
+clCreateImageWithProperties
+clSetContextDestructorCallback
+++ /dev/null
-;
-; Copyright (c) 2016-2019 The Khronos Group Inc.
-;
-; Licensed under the Apache License, Version 2.0 (the "License");
-; you may not use this file except in compliance with the License.
-; You may obtain a copy of the License at
-;
-; http://www.apache.org/licenses/LICENSE-2.0
-;
-; Unless required by applicable law or agreed to in writing, software
-; distributed under the License is distributed on an "AS IS" BASIS,
-; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-; See the License for the specific language governing permissions and
-; limitations under the License.
-;
-; OpenCL is a trademark of Apple Inc. used under license by Khronos.
-
-EXPORTS
-
-;
-; Note:
-;
-; 1. Functions are grouped into blocks according to the OpenCL API version they
-; were introduced in.
-;
-; 2. Function blocks are sorted in ascending order of the API version.
-;
-; 3. Functions within a block are sorted alphabetically.
-;
-
-; OpenCL 1.0 API
-clBuildProgram
-clCreateBuffer
-clCreateCommandQueue
-clCreateContext
-clCreateContextFromType
-clCreateFromGLBuffer
-clCreateFromGLRenderbuffer
-clCreateFromGLTexture2D
-clCreateFromGLTexture3D
-clCreateImage2D
-clCreateImage3D
-clCreateKernel
-clCreateKernelsInProgram
-clCreateProgramWithBinary
-clCreateProgramWithSource
-clCreateSampler
-clEnqueueAcquireGLObjects
-clEnqueueBarrier
-clEnqueueCopyBuffer
-clEnqueueCopyBufferToImage
-clEnqueueCopyImage
-clEnqueueCopyImageToBuffer
-clEnqueueMapBuffer
-clEnqueueMapImage
-clEnqueueMarker
-clEnqueueNDRangeKernel
-clEnqueueNativeKernel
-clEnqueueReadBuffer
-clEnqueueReadImage
-clEnqueueReleaseGLObjects
-clEnqueueTask
-clEnqueueUnmapMemObject
-clEnqueueWaitForEvents
-clEnqueueWriteBuffer
-clEnqueueWriteImage
-clFinish
-clFlush
-clGetCommandQueueInfo
-clGetContextInfo
-clGetDeviceIDs
-clGetDeviceInfo
-clGetEventInfo
-clGetEventProfilingInfo
-clGetExtensionFunctionAddress
-clGetGLObjectInfo
-clGetGLTextureInfo
-clGetImageInfo
-clGetKernelInfo
-clGetKernelWorkGroupInfo
-clGetMemObjectInfo
-clGetPlatformIDs
-clGetPlatformInfo
-clGetProgramBuildInfo
-clGetProgramInfo
-clGetSamplerInfo
-clGetSupportedImageFormats
-clReleaseCommandQueue
-clReleaseContext
-clReleaseEvent
-clReleaseKernel
-clReleaseMemObject
-clReleaseProgram
-clReleaseSampler
-clRetainCommandQueue
-clRetainContext
-clRetainEvent
-clRetainKernel
-clRetainMemObject
-clRetainProgram
-clRetainSampler
-clSetCommandQueueProperty
-clSetKernelArg
-clUnloadCompiler
-clWaitForEvents
-
-; OpenCL 1.1 API
-clCreateSubBuffer
-clCreateUserEvent
-clEnqueueCopyBufferRect
-clEnqueueReadBufferRect
-clEnqueueWriteBufferRect
-clSetEventCallback
-clSetMemObjectDestructorCallback
-clSetUserEventStatus
-
-; OpenCL 1.2 API
-clCompileProgram
-clCreateFromGLTexture
-clCreateImage
-clCreateProgramWithBuiltInKernels
-clCreateSubDevices
-clEnqueueBarrierWithWaitList
-clEnqueueFillBuffer
-clEnqueueFillImage
-clEnqueueMarkerWithWaitList
-clEnqueueMigrateMemObjects
-clGetExtensionFunctionAddressForPlatform
-clGetKernelArgInfo
-clLinkProgram
-clReleaseDevice
-clRetainDevice
-clUnloadPlatformCompiler
-
-; OpenCL 2.0 API
-clCreateCommandQueueWithProperties
-clCreatePipe
-clCreateSamplerWithProperties
-clEnqueueSVMFree
-clEnqueueSVMMap
-clEnqueueSVMMemcpy
-clEnqueueSVMMemFill
-clEnqueueSVMUnmap
-clGetPipeInfo
-clSetKernelArgSVMPointer
-clSetKernelExecInfo
-clSVMAlloc
-clSVMFree
-
-; OpenCL 2.1 API
-clCloneKernel
-clCreateProgramWithIL
-clEnqueueSVMMigrateMem
-clGetDeviceAndHostTimer
-clGetHostTimer
-clGetKernelSubGroupInfo
-clSetDefaultDeviceCommandQueue
-
-; OpenCL 2.2 API
-clSetProgramReleaseCallback
-clSetProgramSpecializationConstant
-
-; OpenCL 3.0 API
-@ENABLE_OPENCL30_SYMBOLS@clCreateBufferWithProperties
-@ENABLE_OPENCL30_SYMBOLS@clCreateImageWithProperties
-@ENABLE_OPENCL30_SYMBOLS@clSetContextDestructorCallback
#include <windows.h>
-#define OPENCL_ICD_LOADER_VERSION_MAJOR 2
-#define OPENCL_ICD_LOADER_VERSION_MINOR 2
-#define OPENCL_ICD_LOADER_VERSION_REV 9
+#define OPENCL_ICD_LOADER_VERSION_MAJOR 3
+#define OPENCL_ICD_LOADER_VERSION_MINOR 0
+#define OPENCL_ICD_LOADER_VERSION_REV 0
#ifdef RC_INVOKED
'clGetPlatformIDs', # to query platforms
'clGetExtensionFunctionAddress', # to return ICD-aware extensions
'clGetExtensionFunctionAddressForPlatform', # to return ICD-aware extensions
- 'clCreateBufferWithProperties', # only until OpenCL 3.0 is final
- 'clCreateImageWithProperties', # only until OpenCL 3.0 is final
- 'clSetContextDestructorCallback', # only until OpenCL 3.0 is final
}
# Handles, and mappings to errors when handles are invalid:
return return_value;
}
-#ifdef CL_VERSION_3_0
-
CL_API_ENTRY cl_int CL_API_CALL
clSetContextDestructorCallback(cl_context context,
void (CL_CALLBACK* pfn_notify)(cl_context context,
return return_value;
}
-#endif
-
/* Command Queue APIs */
CL_API_ENTRY cl_command_queue CL_API_CALL
clCreateCommandQueue(cl_context context,
return obj;
}
-#ifdef CL_VERSION_3_0
-
CL_API_ENTRY cl_mem CL_API_CALL
clCreateBufferWithProperties(cl_context context ,
const cl_mem_properties * properties,
return obj;
}
-#endif // CL_VERSION_3_0
-
CL_API_ENTRY cl_int CL_API_CALL
clRetainMemObject(cl_mem memobj) CL_API_SUFFIX__VERSION_1_0
{
ICD_DISPATCH_TABLE_ENTRY( NULL );
ICD_DISPATCH_TABLE_ENTRY( NULL );
-#ifdef CL_VERSION_3_0
/* OpenCL 3.0 */
ICD_DISPATCH_TABLE_ENTRY ( clCreateBufferWithProperties );
ICD_DISPATCH_TABLE_ENTRY ( clCreateImageWithProperties );
ICD_DISPATCH_TABLE_ENTRY ( clSetContextDestructorCallback );
-#else
- ICD_DISPATCH_TABLE_ENTRY( NULL );
- ICD_DISPATCH_TABLE_ENTRY( NULL );
- ICD_DISPATCH_TABLE_ENTRY( NULL );
-#endif // CL_VERSION_3_0
// return success
*outDispatchTable = dispatchTable;
size_t *param_value_size_ret;
};
-#ifdef CL_VERSION_3_0
struct clSetContextDestructorCallback_st
{
cl_context context;
void (CL_CALLBACK *pfn_notify)(cl_context context, void *user_data);
void *user_data;
};
-#endif // CL_VERSION_3_0
struct clGetPlatformIDs_st
{
void *host_ptr;
cl_int *errcode_ret;
};
-#ifdef CL_VERSION_3_0
+
struct clCreateBufferWithProperties_st
{
cl_context context;
void *host_ptr;
cl_int *errcode_ret;
};
-#endif // CL_VERSION_3_0
+
struct clCreateSubBuffer_st
{
cl_mem buffer;
cl_int *errcode_ret;
};
-#ifdef CL_VERSION_3_0
struct clCreateImageWithProperties_st
{
cl_context context;
void *host_ptr;
cl_int *errcode_ret;
};
-#endif // CL_VERSION_3_0
struct clCreateImage2D_st
{
{NULL, 0, 0, NULL, NULL}
};
-#ifdef CL_VERSION_3_0
const struct clCreateBufferWithProperties_st clCreateBufferWithPropertiesData[NUM_ITEMS_clCreateBufferWithProperties] =
{
{NULL, NULL, 0, 0, NULL, NULL}
};
-#endif // CL_VERSION_3_0
const struct clCreateSubBuffer_st clCreateSubBufferData[NUM_ITEMS_clCreateSubBuffer] =
{
{ NULL, 0x0, NULL, NULL, NULL, NULL}
};
-#ifdef CL_VERSION_3_0
const struct clCreateImageWithProperties_st clCreateImageWithPropertiesData[NUM_ITEMS_clCreateImageWithProperties] =
{
{ NULL, NULL, 0x0, NULL, NULL, NULL, NULL}
};
-#endif // CL_VERSION_3_0
const struct clCreateImage2D_st clCreateImage2DData[NUM_ITEMS_clCreateImage2D] =
{
}
-#ifdef CL_VERSION_3_0
int test_clCreateBufferWithProperties(const struct clCreateBufferWithProperties_st *data)
{
test_icd_app_log("clCreateBufferWithProperties(%p, %p, %x, %u, %p, %p)\n",
return 0;
}
-#endif // CL_VERSION_3_0
int test_clCreateSubBuffer(const struct clCreateSubBuffer_st *data)
{
}
-#ifdef CL_VERSION_3_0
int test_clCreateImageWithProperties(const struct clCreateImageWithProperties_st *data)
{
test_icd_app_log("clCreateImageWithProperties(%p, %p, %x, %p, %p, %p, %p)\n",
return 0;
}
-#endif // CL_VERSION_3_0
int test_clCreateImage2D(const struct clCreateImage2D_st *data)
{
test_clCreateBuffer(clCreateBufferData);
-#ifdef CL_VERSION_3_0
test_clCreateBufferWithProperties(clCreateBufferWithPropertiesData);
-#endif
test_clCreateSubBuffer(clCreateSubBufferData);
test_clCreateImage(clCreateImageData);
-#ifdef CL_VERSION_3_0
test_clCreateImageWithProperties(clCreateImageWithPropertiesData);
-#endif
test_clReleaseMemObject(clReleaseMemObjectDataImage);
{NULL, 0, 0, NULL, NULL}
};
-#ifdef CL_VERSION_3_0
struct clSetContextDestructorCallback_st clSetContextDestructorCallbackData[NUM_ITEMS_clSetContextDestructorCallback] =
{
{NULL, setcontextdestructor_callback, NULL}
};
-#endif // CL_VERSION_3_0
struct clGetPlatformInfo_st clGetPlatformInfoData[NUM_ITEMS_clGetPlatformInfo] =
{
}
-#ifdef CL_VERSION_3_0
int test_clSetContextDestructorCallback(
const struct clSetContextDestructorCallback_st* data)
{
return 0;
}
-#endif // CL_VERSION_3_0
int test_clGetPlatformInfo(const struct clGetPlatformInfo_st* data)
test_clRetainContext(&clRetainContextData[i]);
}
-#ifdef CL_VERSION_3_0
for (i = 0;i<NUM_ITEMS_clSetContextDestructorCallback;i++) {
test_clSetContextDestructorCallback(&clSetContextDestructorCallbackData[i]);
}
-#endif // CL_VERSION_3_0
for (i = 0;i<NUM_ITEMS_clGetContextInfo;i++) {
test_clGetContextInfo(&clGetContextInfoData[i]);