227 lines
6.7 KiB
C++
227 lines
6.7 KiB
C++
/*
|
|
* Copyright (c) 2017, Intel Corporation
|
|
*
|
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
|
* copy of this software and associated documentation files (the "Software"),
|
|
* to deal in the Software without restriction, including without limitation
|
|
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
* and/or sell copies of the Software, and to permit persons to whom the
|
|
* Software is furnished to do so, subject to the following conditions:
|
|
*
|
|
* The above copyright notice and this permission notice shall be included
|
|
* in all copies or substantial portions of the Software.
|
|
*
|
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
|
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
|
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
|
* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
|
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
|
* OTHER DEALINGS IN THE SOFTWARE.
|
|
*/
|
|
|
|
#include "dispatch.h"
|
|
#include "api.h"
|
|
|
|
SDispatchTable icdGlobalDispatchTable =
|
|
{
|
|
clGetPlatformIDs,
|
|
clGetPlatformInfo,
|
|
clGetDeviceIDs,
|
|
clGetDeviceInfo,
|
|
clCreateContext,
|
|
clCreateContextFromType,
|
|
clRetainContext,
|
|
clReleaseContext,
|
|
clGetContextInfo,
|
|
clCreateCommandQueue,
|
|
clRetainCommandQueue,
|
|
clReleaseCommandQueue,
|
|
clGetCommandQueueInfo,
|
|
clSetCommandQueueProperty,
|
|
clCreateBuffer,
|
|
clCreateImage2D,
|
|
clCreateImage3D,
|
|
clRetainMemObject,
|
|
clReleaseMemObject,
|
|
clGetSupportedImageFormats,
|
|
clGetMemObjectInfo,
|
|
clGetImageInfo,
|
|
clCreateSampler,
|
|
clRetainSampler,
|
|
clReleaseSampler,
|
|
clGetSamplerInfo,
|
|
clCreateProgramWithSource,
|
|
clCreateProgramWithBinary,
|
|
clRetainProgram,
|
|
clReleaseProgram,
|
|
clBuildProgram,
|
|
clUnloadCompiler,
|
|
clGetProgramInfo,
|
|
clGetProgramBuildInfo,
|
|
clCreateKernel,
|
|
clCreateKernelsInProgram,
|
|
clRetainKernel,
|
|
clReleaseKernel,
|
|
clSetKernelArg,
|
|
clGetKernelInfo,
|
|
clGetKernelWorkGroupInfo,
|
|
clWaitForEvents,
|
|
clGetEventInfo,
|
|
clRetainEvent,
|
|
clReleaseEvent,
|
|
clGetEventProfilingInfo,
|
|
clFlush,
|
|
clFinish,
|
|
clEnqueueReadBuffer,
|
|
clEnqueueWriteBuffer,
|
|
clEnqueueCopyBuffer,
|
|
clEnqueueReadImage,
|
|
clEnqueueWriteImage,
|
|
clEnqueueCopyImage,
|
|
clEnqueueCopyImageToBuffer,
|
|
clEnqueueCopyBufferToImage,
|
|
clEnqueueMapBuffer,
|
|
clEnqueueMapImage,
|
|
clEnqueueUnmapMemObject,
|
|
clEnqueueNDRangeKernel,
|
|
clEnqueueTask,
|
|
clEnqueueNativeKernel,
|
|
clEnqueueMarker,
|
|
clEnqueueWaitForEvents,
|
|
clEnqueueBarrier,
|
|
clGetExtensionFunctionAddress,
|
|
|
|
/* cl_khr_gl_sharing */
|
|
nullptr,
|
|
nullptr,
|
|
nullptr,
|
|
nullptr,
|
|
nullptr,
|
|
nullptr,
|
|
nullptr,
|
|
nullptr,
|
|
nullptr,
|
|
|
|
/* cl_khr_d3d10_sharing */
|
|
nullptr, // clGetDeviceIDsFromD3D10KHR,
|
|
nullptr, // clCreateFromD3D10BufferKHR,
|
|
nullptr, // clCreateFromD3D10Texture2DKHR,
|
|
nullptr, // clCreateFromD3D10Texture3DKHR,
|
|
nullptr, // clEnqueueAcquireD3D10ObjectsKHR,
|
|
nullptr, // clEnqueueReleaseD3D10ObjectsKHR,
|
|
|
|
/* OpenCL 1.1 */
|
|
clSetEventCallback,
|
|
clCreateSubBuffer,
|
|
clSetMemObjectDestructorCallback,
|
|
clCreateUserEvent,
|
|
clSetUserEventStatus,
|
|
clEnqueueReadBufferRect,
|
|
clEnqueueWriteBufferRect,
|
|
clEnqueueCopyBufferRect,
|
|
|
|
/* cl_ext_device_fission */
|
|
nullptr, //clCreateSubDevicesEXT,
|
|
nullptr, //clRetainDeviceEXT,
|
|
nullptr, //clReleaseDeviceEXT,
|
|
|
|
/* cl_khr_gl_event */
|
|
nullptr,
|
|
|
|
/* OpenCL 1.2 */
|
|
clCreateSubDevices,
|
|
clRetainDevice,
|
|
clReleaseDevice,
|
|
clCreateImage,
|
|
clCreateProgramWithBuiltInKernels,
|
|
clCompileProgram,
|
|
clLinkProgram,
|
|
clUnloadPlatformCompiler,
|
|
clGetKernelArgInfo,
|
|
clEnqueueFillBuffer,
|
|
clEnqueueFillImage,
|
|
clEnqueueMigrateMemObjects,
|
|
clEnqueueMarkerWithWaitList,
|
|
clEnqueueBarrierWithWaitList,
|
|
clGetExtensionFunctionAddressForPlatform,
|
|
nullptr,
|
|
|
|
/* cl_khr_d3d11_sharing */
|
|
nullptr, // clGetDeviceIDsFromD3D11KHR,
|
|
nullptr, // clCreateFromD3D11BufferKHR,
|
|
nullptr, // clCreateFromD3D11Texture2DKHR,
|
|
nullptr, // clCreateFromD3D11Texture3DKHR,
|
|
nullptr, // clCreateFromDX9MediaSurfaceKHR,
|
|
nullptr, // clEnqueueAcquireD3D11ObjectsKHR,
|
|
nullptr, // clEnqueueReleaseD3D11ObjectsKHR,
|
|
|
|
/* cl_khr_dx9_media_sharing */
|
|
nullptr, // clGetDeviceIDsFromDX9MediaAdapterKHR,
|
|
nullptr, // clEnqueueAcquireDX9MediaSurfacesKHR,
|
|
nullptr, // clEnqueueReleaseDX9MediaSurfacesKHR,
|
|
|
|
/* cl_khr_egl_image */
|
|
nullptr, //clCreateFromEGLImageKHR,
|
|
nullptr, //clEnqueueAcquireEGLObjectsKHR,
|
|
nullptr, //clEnqueueReleaseEGLObjectsKHR,
|
|
|
|
/* cl_khr_egl_event */
|
|
nullptr, //clCreateEventFromEGLSyncKHR,
|
|
|
|
/* OpenCL 2.0 */
|
|
clCreateCommandQueueWithProperties,
|
|
clCreatePipe,
|
|
clGetPipeInfo,
|
|
clSVMAlloc,
|
|
clSVMFree,
|
|
clEnqueueSVMFree,
|
|
clEnqueueSVMMemcpy,
|
|
clEnqueueSVMMemFill,
|
|
clEnqueueSVMMap,
|
|
clEnqueueSVMUnmap,
|
|
clCreateSamplerWithProperties,
|
|
clSetKernelArgSVMPointer,
|
|
clSetKernelExecInfo,
|
|
clGetKernelSubGroupInfoKHR,
|
|
|
|
/* OpenCL 2.1 */
|
|
clCloneKernel,
|
|
clCreateProgramWithIL,
|
|
clEnqueueSVMMigrateMem,
|
|
clGetDeviceAndHostTimer,
|
|
clGetHostTimer,
|
|
clGetKernelSubGroupInfo,
|
|
clSetDefaultDeviceCommandQueue,
|
|
};
|
|
SCRTDispatchTable crtGlobalDispatchTable = {
|
|
clGetKernelArgInfo,
|
|
|
|
nullptr, // clGetDeviceIDsFromDX9INTEL,
|
|
nullptr, // clCreateFromDX9MediaSurfaceINTEL,
|
|
nullptr, // clEnqueueAcquireDX9ObjectsINTEL,
|
|
nullptr, // clEnqueueReleaseDX9ObjectsINTEL,
|
|
clGetImageParamsINTEL,
|
|
clCreatePerfCountersCommandQueueINTEL,
|
|
|
|
clCreateAcceleratorINTEL,
|
|
clGetAcceleratorInfoINTEL,
|
|
clRetainAcceleratorINTEL,
|
|
clReleaseAcceleratorINTEL,
|
|
|
|
nullptr,
|
|
nullptr,
|
|
|
|
nullptr,
|
|
nullptr,
|
|
nullptr,
|
|
nullptr,
|
|
|
|
nullptr,
|
|
nullptr,
|
|
nullptr,
|
|
nullptr,
|
|
clSetPerformanceConfigurationINTEL};
|
|
|
|
SEntryPointsTable globalDispatchTable = {&icdGlobalDispatchTable, &crtGlobalDispatchTable};
|