1 /* 2 * Copyright (C) 2018-2021 Intel Corporation 3 * 4 * SPDX-License-Identifier: MIT 5 * 6 */ 7 8 #include "dispatch.h" 9 10 #include "api.h" 11 12 SDispatchTable icdGlobalDispatchTable = 13 { 14 clGetPlatformIDs, 15 clGetPlatformInfo, 16 clGetDeviceIDs, 17 clGetDeviceInfo, 18 clCreateContext, 19 clCreateContextFromType, 20 clRetainContext, 21 clReleaseContext, 22 clGetContextInfo, 23 clCreateCommandQueue, 24 clRetainCommandQueue, 25 clReleaseCommandQueue, 26 clGetCommandQueueInfo, 27 clSetCommandQueueProperty, 28 clCreateBuffer, 29 clCreateImage2D, 30 clCreateImage3D, 31 clRetainMemObject, 32 clReleaseMemObject, 33 clGetSupportedImageFormats, 34 clGetMemObjectInfo, 35 clGetImageInfo, 36 clCreateSampler, 37 clRetainSampler, 38 clReleaseSampler, 39 clGetSamplerInfo, 40 clCreateProgramWithSource, 41 clCreateProgramWithBinary, 42 clRetainProgram, 43 clReleaseProgram, 44 clBuildProgram, 45 clUnloadCompiler, 46 clGetProgramInfo, 47 clGetProgramBuildInfo, 48 clCreateKernel, 49 clCreateKernelsInProgram, 50 clRetainKernel, 51 clReleaseKernel, 52 clSetKernelArg, 53 clGetKernelInfo, 54 clGetKernelWorkGroupInfo, 55 clWaitForEvents, 56 clGetEventInfo, 57 clRetainEvent, 58 clReleaseEvent, 59 clGetEventProfilingInfo, 60 clFlush, 61 clFinish, 62 clEnqueueReadBuffer, 63 clEnqueueWriteBuffer, 64 clEnqueueCopyBuffer, 65 clEnqueueReadImage, 66 clEnqueueWriteImage, 67 clEnqueueCopyImage, 68 clEnqueueCopyImageToBuffer, 69 clEnqueueCopyBufferToImage, 70 clEnqueueMapBuffer, 71 clEnqueueMapImage, 72 clEnqueueUnmapMemObject, 73 clEnqueueNDRangeKernel, 74 clEnqueueTask, 75 clEnqueueNativeKernel, 76 clEnqueueMarker, 77 clEnqueueWaitForEvents, 78 clEnqueueBarrier, 79 clGetExtensionFunctionAddress, 80 81 /* cl_khr_gl_sharing */ 82 nullptr, 83 nullptr, 84 nullptr, 85 nullptr, 86 nullptr, 87 nullptr, 88 nullptr, 89 nullptr, 90 nullptr, 91 92 /* cl_khr_d3d10_sharing */ 93 nullptr, // clGetDeviceIDsFromD3D10KHR, 94 nullptr, // clCreateFromD3D10BufferKHR, 95 nullptr, // clCreateFromD3D10Texture2DKHR, 96 nullptr, // clCreateFromD3D10Texture3DKHR, 97 nullptr, // clEnqueueAcquireD3D10ObjectsKHR, 98 nullptr, // clEnqueueReleaseD3D10ObjectsKHR, 99 100 /* OpenCL 1.1 */ 101 clSetEventCallback, 102 clCreateSubBuffer, 103 clSetMemObjectDestructorCallback, 104 clCreateUserEvent, 105 clSetUserEventStatus, 106 clEnqueueReadBufferRect, 107 clEnqueueWriteBufferRect, 108 clEnqueueCopyBufferRect, 109 110 /* cl_ext_device_fission */ 111 nullptr, //clCreateSubDevicesEXT, 112 nullptr, //clRetainDeviceEXT, 113 nullptr, //clReleaseDeviceEXT, 114 115 /* cl_khr_gl_event */ 116 nullptr, 117 118 /* OpenCL 1.2 */ 119 clCreateSubDevices, 120 clRetainDevice, 121 clReleaseDevice, 122 clCreateImage, 123 clCreateProgramWithBuiltInKernels, 124 clCompileProgram, 125 clLinkProgram, 126 clUnloadPlatformCompiler, 127 clGetKernelArgInfo, 128 clEnqueueFillBuffer, 129 clEnqueueFillImage, 130 clEnqueueMigrateMemObjects, 131 clEnqueueMarkerWithWaitList, 132 clEnqueueBarrierWithWaitList, 133 clGetExtensionFunctionAddressForPlatform, 134 nullptr, 135 136 /* cl_khr_d3d11_sharing */ 137 nullptr, // clGetDeviceIDsFromD3D11KHR, 138 nullptr, // clCreateFromD3D11BufferKHR, 139 nullptr, // clCreateFromD3D11Texture2DKHR, 140 nullptr, // clCreateFromD3D11Texture3DKHR, 141 nullptr, // clCreateFromDX9MediaSurfaceKHR, 142 nullptr, // clEnqueueAcquireD3D11ObjectsKHR, 143 nullptr, // clEnqueueReleaseD3D11ObjectsKHR, 144 145 /* cl_khr_dx9_media_sharing */ 146 nullptr, // clGetDeviceIDsFromDX9MediaAdapterKHR, 147 nullptr, // clEnqueueAcquireDX9MediaSurfacesKHR, 148 nullptr, // clEnqueueReleaseDX9MediaSurfacesKHR, 149 150 /* cl_khr_egl_image */ 151 nullptr, //clCreateFromEGLImageKHR, 152 nullptr, //clEnqueueAcquireEGLObjectsKHR, 153 nullptr, //clEnqueueReleaseEGLObjectsKHR, 154 155 /* cl_khr_egl_event */ 156 nullptr, //clCreateEventFromEGLSyncKHR, 157 158 /* OpenCL 2.0 */ 159 clCreateCommandQueueWithProperties, 160 clCreatePipe, 161 clGetPipeInfo, 162 clSVMAlloc, 163 clSVMFree, 164 clEnqueueSVMFree, 165 clEnqueueSVMMemcpy, 166 clEnqueueSVMMemFill, 167 clEnqueueSVMMap, 168 clEnqueueSVMUnmap, 169 clCreateSamplerWithProperties, 170 clSetKernelArgSVMPointer, 171 clSetKernelExecInfo, 172 clGetKernelSubGroupInfoKHR, 173 174 /* OpenCL 2.1 */ 175 clCloneKernel, 176 clCreateProgramWithIL, 177 clEnqueueSVMMigrateMem, 178 clGetDeviceAndHostTimer, 179 clGetHostTimer, 180 clGetKernelSubGroupInfo, 181 clSetDefaultDeviceCommandQueue, 182 183 /* OpenCL 2.2 */ 184 clSetProgramReleaseCallback, 185 clSetProgramSpecializationConstant, 186 187 /* OpenCL 3.0 */ 188 clCreateBufferWithProperties, 189 clCreateImageWithProperties, 190 clSetContextDestructorCallback}; 191 192 SCRTDispatchTable crtGlobalDispatchTable = { 193 clGetKernelArgInfo, 194 195 nullptr, // clGetDeviceIDsFromDX9INTEL, 196 nullptr, // clCreateFromDX9MediaSurfaceINTEL, 197 nullptr, // clEnqueueAcquireDX9ObjectsINTEL, 198 nullptr, // clEnqueueReleaseDX9ObjectsINTEL, 199 clGetImageParamsINTEL, 200 clCreatePerfCountersCommandQueueINTEL, 201 202 clCreateAcceleratorINTEL, 203 clGetAcceleratorInfoINTEL, 204 clRetainAcceleratorINTEL, 205 clReleaseAcceleratorINTEL, 206 207 nullptr, 208 nullptr, 209 210 nullptr, 211 nullptr, 212 nullptr, 213 nullptr, 214 215 nullptr, 216 nullptr, 217 nullptr, 218 nullptr, 219 clSetPerformanceConfigurationINTEL}; 220 221 SEntryPointsTable globalDispatchTable = {&icdGlobalDispatchTable, &crtGlobalDispatchTable}; 222