xref: /aosp_15_r20/external/angle/include/CL/cl_icd.h (revision 8975f5c5ed3d1c378011245431ada316dfb6f244)
1*8975f5c5SAndroid Build Coastguard Worker /*******************************************************************************
2*8975f5c5SAndroid Build Coastguard Worker  * Copyright (c) 2019-2020 The Khronos Group Inc.
3*8975f5c5SAndroid Build Coastguard Worker  *
4*8975f5c5SAndroid Build Coastguard Worker  * Licensed under the Apache License, Version 2.0 (the "License");
5*8975f5c5SAndroid Build Coastguard Worker  * you may not use this file except in compliance with the License.
6*8975f5c5SAndroid Build Coastguard Worker  * You may obtain a copy of the License at
7*8975f5c5SAndroid Build Coastguard Worker  *
8*8975f5c5SAndroid Build Coastguard Worker  *    http://www.apache.org/licenses/LICENSE-2.0
9*8975f5c5SAndroid Build Coastguard Worker  *
10*8975f5c5SAndroid Build Coastguard Worker  * Unless required by applicable law or agreed to in writing, software
11*8975f5c5SAndroid Build Coastguard Worker  * distributed under the License is distributed on an "AS IS" BASIS,
12*8975f5c5SAndroid Build Coastguard Worker  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*8975f5c5SAndroid Build Coastguard Worker  * See the License for the specific language governing permissions and
14*8975f5c5SAndroid Build Coastguard Worker  * limitations under the License.
15*8975f5c5SAndroid Build Coastguard Worker  ******************************************************************************/
16*8975f5c5SAndroid Build Coastguard Worker 
17*8975f5c5SAndroid Build Coastguard Worker #ifndef OPENCL_CL_ICD_H
18*8975f5c5SAndroid Build Coastguard Worker #define OPENCL_CL_ICD_H
19*8975f5c5SAndroid Build Coastguard Worker 
20*8975f5c5SAndroid Build Coastguard Worker #include <CL/cl.h>
21*8975f5c5SAndroid Build Coastguard Worker #include <CL/cl_function_types.h>
22*8975f5c5SAndroid Build Coastguard Worker #include <CL/cl_egl.h>
23*8975f5c5SAndroid Build Coastguard Worker #include <CL/cl_ext.h>
24*8975f5c5SAndroid Build Coastguard Worker #include <CL/cl_gl.h>
25*8975f5c5SAndroid Build Coastguard Worker 
26*8975f5c5SAndroid Build Coastguard Worker #if defined(_WIN32)
27*8975f5c5SAndroid Build Coastguard Worker #include <CL/cl_d3d11.h>
28*8975f5c5SAndroid Build Coastguard Worker #include <CL/cl_d3d10.h>
29*8975f5c5SAndroid Build Coastguard Worker #include <CL/cl_dx9_media_sharing.h>
30*8975f5c5SAndroid Build Coastguard Worker #endif
31*8975f5c5SAndroid Build Coastguard Worker 
32*8975f5c5SAndroid Build Coastguard Worker #ifdef __cplusplus
33*8975f5c5SAndroid Build Coastguard Worker extern "C" {
34*8975f5c5SAndroid Build Coastguard Worker #endif
35*8975f5c5SAndroid Build Coastguard Worker 
36*8975f5c5SAndroid Build Coastguard Worker /* Vendor dispatch table structure */
37*8975f5c5SAndroid Build Coastguard Worker 
38*8975f5c5SAndroid Build Coastguard Worker typedef struct _cl_icd_dispatch {
39*8975f5c5SAndroid Build Coastguard Worker   /* OpenCL 1.0 */
40*8975f5c5SAndroid Build Coastguard Worker   clGetPlatformIDs_t *clGetPlatformIDs;
41*8975f5c5SAndroid Build Coastguard Worker   clGetPlatformInfo_t *clGetPlatformInfo;
42*8975f5c5SAndroid Build Coastguard Worker   clGetDeviceIDs_t *clGetDeviceIDs;
43*8975f5c5SAndroid Build Coastguard Worker   clGetDeviceInfo_t *clGetDeviceInfo;
44*8975f5c5SAndroid Build Coastguard Worker   clCreateContext_t *clCreateContext;
45*8975f5c5SAndroid Build Coastguard Worker   clCreateContextFromType_t *clCreateContextFromType;
46*8975f5c5SAndroid Build Coastguard Worker   clRetainContext_t *clRetainContext;
47*8975f5c5SAndroid Build Coastguard Worker   clReleaseContext_t *clReleaseContext;
48*8975f5c5SAndroid Build Coastguard Worker   clGetContextInfo_t *clGetContextInfo;
49*8975f5c5SAndroid Build Coastguard Worker   clCreateCommandQueue_t *clCreateCommandQueue;
50*8975f5c5SAndroid Build Coastguard Worker   clRetainCommandQueue_t *clRetainCommandQueue;
51*8975f5c5SAndroid Build Coastguard Worker   clReleaseCommandQueue_t *clReleaseCommandQueue;
52*8975f5c5SAndroid Build Coastguard Worker   clGetCommandQueueInfo_t *clGetCommandQueueInfo;
53*8975f5c5SAndroid Build Coastguard Worker   clSetCommandQueueProperty_t *clSetCommandQueueProperty;
54*8975f5c5SAndroid Build Coastguard Worker   clCreateBuffer_t *clCreateBuffer;
55*8975f5c5SAndroid Build Coastguard Worker   clCreateImage2D_t *clCreateImage2D;
56*8975f5c5SAndroid Build Coastguard Worker   clCreateImage3D_t *clCreateImage3D;
57*8975f5c5SAndroid Build Coastguard Worker   clRetainMemObject_t *clRetainMemObject;
58*8975f5c5SAndroid Build Coastguard Worker   clReleaseMemObject_t *clReleaseMemObject;
59*8975f5c5SAndroid Build Coastguard Worker   clGetSupportedImageFormats_t *clGetSupportedImageFormats;
60*8975f5c5SAndroid Build Coastguard Worker   clGetMemObjectInfo_t *clGetMemObjectInfo;
61*8975f5c5SAndroid Build Coastguard Worker   clGetImageInfo_t *clGetImageInfo;
62*8975f5c5SAndroid Build Coastguard Worker   clCreateSampler_t *clCreateSampler;
63*8975f5c5SAndroid Build Coastguard Worker   clRetainSampler_t *clRetainSampler;
64*8975f5c5SAndroid Build Coastguard Worker   clReleaseSampler_t *clReleaseSampler;
65*8975f5c5SAndroid Build Coastguard Worker   clGetSamplerInfo_t *clGetSamplerInfo;
66*8975f5c5SAndroid Build Coastguard Worker   clCreateProgramWithSource_t *clCreateProgramWithSource;
67*8975f5c5SAndroid Build Coastguard Worker   clCreateProgramWithBinary_t *clCreateProgramWithBinary;
68*8975f5c5SAndroid Build Coastguard Worker   clRetainProgram_t *clRetainProgram;
69*8975f5c5SAndroid Build Coastguard Worker   clReleaseProgram_t *clReleaseProgram;
70*8975f5c5SAndroid Build Coastguard Worker   clBuildProgram_t *clBuildProgram;
71*8975f5c5SAndroid Build Coastguard Worker   clUnloadCompiler_t *clUnloadCompiler;
72*8975f5c5SAndroid Build Coastguard Worker   clGetProgramInfo_t *clGetProgramInfo;
73*8975f5c5SAndroid Build Coastguard Worker   clGetProgramBuildInfo_t *clGetProgramBuildInfo;
74*8975f5c5SAndroid Build Coastguard Worker   clCreateKernel_t *clCreateKernel;
75*8975f5c5SAndroid Build Coastguard Worker   clCreateKernelsInProgram_t *clCreateKernelsInProgram;
76*8975f5c5SAndroid Build Coastguard Worker   clRetainKernel_t *clRetainKernel;
77*8975f5c5SAndroid Build Coastguard Worker   clReleaseKernel_t *clReleaseKernel;
78*8975f5c5SAndroid Build Coastguard Worker   clSetKernelArg_t *clSetKernelArg;
79*8975f5c5SAndroid Build Coastguard Worker   clGetKernelInfo_t *clGetKernelInfo;
80*8975f5c5SAndroid Build Coastguard Worker   clGetKernelWorkGroupInfo_t *clGetKernelWorkGroupInfo;
81*8975f5c5SAndroid Build Coastguard Worker   clWaitForEvents_t *clWaitForEvents;
82*8975f5c5SAndroid Build Coastguard Worker   clGetEventInfo_t *clGetEventInfo;
83*8975f5c5SAndroid Build Coastguard Worker   clRetainEvent_t *clRetainEvent;
84*8975f5c5SAndroid Build Coastguard Worker   clReleaseEvent_t *clReleaseEvent;
85*8975f5c5SAndroid Build Coastguard Worker   clGetEventProfilingInfo_t *clGetEventProfilingInfo;
86*8975f5c5SAndroid Build Coastguard Worker   clFlush_t *clFlush;
87*8975f5c5SAndroid Build Coastguard Worker   clFinish_t *clFinish;
88*8975f5c5SAndroid Build Coastguard Worker   clEnqueueReadBuffer_t *clEnqueueReadBuffer;
89*8975f5c5SAndroid Build Coastguard Worker   clEnqueueWriteBuffer_t *clEnqueueWriteBuffer;
90*8975f5c5SAndroid Build Coastguard Worker   clEnqueueCopyBuffer_t *clEnqueueCopyBuffer;
91*8975f5c5SAndroid Build Coastguard Worker   clEnqueueReadImage_t *clEnqueueReadImage;
92*8975f5c5SAndroid Build Coastguard Worker   clEnqueueWriteImage_t *clEnqueueWriteImage;
93*8975f5c5SAndroid Build Coastguard Worker   clEnqueueCopyImage_t *clEnqueueCopyImage;
94*8975f5c5SAndroid Build Coastguard Worker   clEnqueueCopyImageToBuffer_t *clEnqueueCopyImageToBuffer;
95*8975f5c5SAndroid Build Coastguard Worker   clEnqueueCopyBufferToImage_t *clEnqueueCopyBufferToImage;
96*8975f5c5SAndroid Build Coastguard Worker   clEnqueueMapBuffer_t *clEnqueueMapBuffer;
97*8975f5c5SAndroid Build Coastguard Worker   clEnqueueMapImage_t *clEnqueueMapImage;
98*8975f5c5SAndroid Build Coastguard Worker   clEnqueueUnmapMemObject_t *clEnqueueUnmapMemObject;
99*8975f5c5SAndroid Build Coastguard Worker   clEnqueueNDRangeKernel_t *clEnqueueNDRangeKernel;
100*8975f5c5SAndroid Build Coastguard Worker   clEnqueueTask_t *clEnqueueTask;
101*8975f5c5SAndroid Build Coastguard Worker   clEnqueueNativeKernel_t *clEnqueueNativeKernel;
102*8975f5c5SAndroid Build Coastguard Worker   clEnqueueMarker_t *clEnqueueMarker;
103*8975f5c5SAndroid Build Coastguard Worker   clEnqueueWaitForEvents_t *clEnqueueWaitForEvents;
104*8975f5c5SAndroid Build Coastguard Worker   clEnqueueBarrier_t *clEnqueueBarrier;
105*8975f5c5SAndroid Build Coastguard Worker   clGetExtensionFunctionAddress_t *clGetExtensionFunctionAddress;
106*8975f5c5SAndroid Build Coastguard Worker   clCreateFromGLBuffer_t *clCreateFromGLBuffer;
107*8975f5c5SAndroid Build Coastguard Worker   clCreateFromGLTexture2D_t *clCreateFromGLTexture2D;
108*8975f5c5SAndroid Build Coastguard Worker   clCreateFromGLTexture3D_t *clCreateFromGLTexture3D;
109*8975f5c5SAndroid Build Coastguard Worker   clCreateFromGLRenderbuffer_t *clCreateFromGLRenderbuffer;
110*8975f5c5SAndroid Build Coastguard Worker   clGetGLObjectInfo_t *clGetGLObjectInfo;
111*8975f5c5SAndroid Build Coastguard Worker   clGetGLTextureInfo_t *clGetGLTextureInfo;
112*8975f5c5SAndroid Build Coastguard Worker   clEnqueueAcquireGLObjects_t *clEnqueueAcquireGLObjects;
113*8975f5c5SAndroid Build Coastguard Worker   clEnqueueReleaseGLObjects_t *clEnqueueReleaseGLObjects;
114*8975f5c5SAndroid Build Coastguard Worker   clGetGLContextInfoKHR_t *clGetGLContextInfoKHR;
115*8975f5c5SAndroid Build Coastguard Worker 
116*8975f5c5SAndroid Build Coastguard Worker   /* cl_khr_d3d10_sharing */
117*8975f5c5SAndroid Build Coastguard Worker #ifdef _WIN32
118*8975f5c5SAndroid Build Coastguard Worker   clGetDeviceIDsFromD3D10KHR_t *clGetDeviceIDsFromD3D10KHR;
119*8975f5c5SAndroid Build Coastguard Worker   clCreateFromD3D10BufferKHR_t *clCreateFromD3D10BufferKHR;
120*8975f5c5SAndroid Build Coastguard Worker   clCreateFromD3D10Texture2DKHR_t *clCreateFromD3D10Texture2DKHR;
121*8975f5c5SAndroid Build Coastguard Worker   clCreateFromD3D10Texture3DKHR_t *clCreateFromD3D10Texture3DKHR;
122*8975f5c5SAndroid Build Coastguard Worker   clEnqueueAcquireD3D10ObjectsKHR_t *clEnqueueAcquireD3D10ObjectsKHR;
123*8975f5c5SAndroid Build Coastguard Worker   clEnqueueReleaseD3D10ObjectsKHR_t *clEnqueueReleaseD3D10ObjectsKHR;
124*8975f5c5SAndroid Build Coastguard Worker #else
125*8975f5c5SAndroid Build Coastguard Worker   void *clGetDeviceIDsFromD3D10KHR;
126*8975f5c5SAndroid Build Coastguard Worker   void *clCreateFromD3D10BufferKHR;
127*8975f5c5SAndroid Build Coastguard Worker   void *clCreateFromD3D10Texture2DKHR;
128*8975f5c5SAndroid Build Coastguard Worker   void *clCreateFromD3D10Texture3DKHR;
129*8975f5c5SAndroid Build Coastguard Worker   void *clEnqueueAcquireD3D10ObjectsKHR;
130*8975f5c5SAndroid Build Coastguard Worker   void *clEnqueueReleaseD3D10ObjectsKHR;
131*8975f5c5SAndroid Build Coastguard Worker #endif
132*8975f5c5SAndroid Build Coastguard Worker 
133*8975f5c5SAndroid Build Coastguard Worker   /* OpenCL 1.1 */
134*8975f5c5SAndroid Build Coastguard Worker #ifdef CL_VERSION_1_1
135*8975f5c5SAndroid Build Coastguard Worker   clSetEventCallback_t *clSetEventCallback;
136*8975f5c5SAndroid Build Coastguard Worker   clCreateSubBuffer_t *clCreateSubBuffer;
137*8975f5c5SAndroid Build Coastguard Worker   clSetMemObjectDestructorCallback_t *clSetMemObjectDestructorCallback;
138*8975f5c5SAndroid Build Coastguard Worker   clCreateUserEvent_t *clCreateUserEvent;
139*8975f5c5SAndroid Build Coastguard Worker   clSetUserEventStatus_t *clSetUserEventStatus;
140*8975f5c5SAndroid Build Coastguard Worker   clEnqueueReadBufferRect_t *clEnqueueReadBufferRect;
141*8975f5c5SAndroid Build Coastguard Worker   clEnqueueWriteBufferRect_t *clEnqueueWriteBufferRect;
142*8975f5c5SAndroid Build Coastguard Worker   clEnqueueCopyBufferRect_t *clEnqueueCopyBufferRect;
143*8975f5c5SAndroid Build Coastguard Worker #else
144*8975f5c5SAndroid Build Coastguard Worker   void *clSetEventCallback;
145*8975f5c5SAndroid Build Coastguard Worker   void *clCreateSubBuffer;
146*8975f5c5SAndroid Build Coastguard Worker   void *clSetMemObjectDestructorCallback;
147*8975f5c5SAndroid Build Coastguard Worker   void *clCreateUserEvent;
148*8975f5c5SAndroid Build Coastguard Worker   void *clSetUserEventStatus;
149*8975f5c5SAndroid Build Coastguard Worker   void *clEnqueueReadBufferRect;
150*8975f5c5SAndroid Build Coastguard Worker   void *clEnqueueWriteBufferRect;
151*8975f5c5SAndroid Build Coastguard Worker   void *clEnqueueCopyBufferRect;
152*8975f5c5SAndroid Build Coastguard Worker #endif
153*8975f5c5SAndroid Build Coastguard Worker 
154*8975f5c5SAndroid Build Coastguard Worker   /* cl_ext_device_fission */
155*8975f5c5SAndroid Build Coastguard Worker   clCreateSubDevicesEXT_t *clCreateSubDevicesEXT;
156*8975f5c5SAndroid Build Coastguard Worker   clRetainDeviceEXT_t *clRetainDeviceEXT;
157*8975f5c5SAndroid Build Coastguard Worker   clReleaseDeviceEXT_t *clReleaseDeviceEXT;
158*8975f5c5SAndroid Build Coastguard Worker 
159*8975f5c5SAndroid Build Coastguard Worker   /* cl_khr_gl_event */
160*8975f5c5SAndroid Build Coastguard Worker   clCreateEventFromGLsyncKHR_t *clCreateEventFromGLsyncKHR;
161*8975f5c5SAndroid Build Coastguard Worker 
162*8975f5c5SAndroid Build Coastguard Worker   /* OpenCL 1.2 */
163*8975f5c5SAndroid Build Coastguard Worker #ifdef CL_VERSION_1_2
164*8975f5c5SAndroid Build Coastguard Worker   clCreateSubDevices_t *clCreateSubDevices;
165*8975f5c5SAndroid Build Coastguard Worker   clRetainDevice_t *clRetainDevice;
166*8975f5c5SAndroid Build Coastguard Worker   clReleaseDevice_t *clReleaseDevice;
167*8975f5c5SAndroid Build Coastguard Worker   clCreateImage_t *clCreateImage;
168*8975f5c5SAndroid Build Coastguard Worker   clCreateProgramWithBuiltInKernels_t *clCreateProgramWithBuiltInKernels;
169*8975f5c5SAndroid Build Coastguard Worker   clCompileProgram_t *clCompileProgram;
170*8975f5c5SAndroid Build Coastguard Worker   clLinkProgram_t *clLinkProgram;
171*8975f5c5SAndroid Build Coastguard Worker   clUnloadPlatformCompiler_t *clUnloadPlatformCompiler;
172*8975f5c5SAndroid Build Coastguard Worker   clGetKernelArgInfo_t *clGetKernelArgInfo;
173*8975f5c5SAndroid Build Coastguard Worker   clEnqueueFillBuffer_t *clEnqueueFillBuffer;
174*8975f5c5SAndroid Build Coastguard Worker   clEnqueueFillImage_t *clEnqueueFillImage;
175*8975f5c5SAndroid Build Coastguard Worker   clEnqueueMigrateMemObjects_t *clEnqueueMigrateMemObjects;
176*8975f5c5SAndroid Build Coastguard Worker   clEnqueueMarkerWithWaitList_t *clEnqueueMarkerWithWaitList;
177*8975f5c5SAndroid Build Coastguard Worker   clEnqueueBarrierWithWaitList_t *clEnqueueBarrierWithWaitList;
178*8975f5c5SAndroid Build Coastguard Worker   clGetExtensionFunctionAddressForPlatform_t *
179*8975f5c5SAndroid Build Coastguard Worker       clGetExtensionFunctionAddressForPlatform;
180*8975f5c5SAndroid Build Coastguard Worker   clCreateFromGLTexture_t *clCreateFromGLTexture;
181*8975f5c5SAndroid Build Coastguard Worker #else
182*8975f5c5SAndroid Build Coastguard Worker   void *clCreateSubDevices;
183*8975f5c5SAndroid Build Coastguard Worker   void *clRetainDevice;
184*8975f5c5SAndroid Build Coastguard Worker   void *clReleaseDevice;
185*8975f5c5SAndroid Build Coastguard Worker   void *clCreateImage;
186*8975f5c5SAndroid Build Coastguard Worker   void *clCreateProgramWithBuiltInKernels;
187*8975f5c5SAndroid Build Coastguard Worker   void *clCompileProgram;
188*8975f5c5SAndroid Build Coastguard Worker   void *clLinkProgram;
189*8975f5c5SAndroid Build Coastguard Worker   void *clUnloadPlatformCompiler;
190*8975f5c5SAndroid Build Coastguard Worker   void *clGetKernelArgInfo;
191*8975f5c5SAndroid Build Coastguard Worker   void *clEnqueueFillBuffer;
192*8975f5c5SAndroid Build Coastguard Worker   void *clEnqueueFillImage;
193*8975f5c5SAndroid Build Coastguard Worker   void *clEnqueueMigrateMemObjects;
194*8975f5c5SAndroid Build Coastguard Worker   void *clEnqueueMarkerWithWaitList;
195*8975f5c5SAndroid Build Coastguard Worker   void *clEnqueueBarrierWithWaitList;
196*8975f5c5SAndroid Build Coastguard Worker   void *clGetExtensionFunctionAddressForPlatform;
197*8975f5c5SAndroid Build Coastguard Worker   void *clCreateFromGLTexture;
198*8975f5c5SAndroid Build Coastguard Worker #endif
199*8975f5c5SAndroid Build Coastguard Worker 
200*8975f5c5SAndroid Build Coastguard Worker   /* cl_khr_d3d11_sharing and cl_khr_dx9_media_sharing */
201*8975f5c5SAndroid Build Coastguard Worker #ifdef _WIN32
202*8975f5c5SAndroid Build Coastguard Worker   clGetDeviceIDsFromD3D11KHR_t *clGetDeviceIDsFromD3D11KHR;
203*8975f5c5SAndroid Build Coastguard Worker   clCreateFromD3D11BufferKHR_t *clCreateFromD3D11BufferKHR;
204*8975f5c5SAndroid Build Coastguard Worker   clCreateFromD3D11Texture2DKHR_t *clCreateFromD3D11Texture2DKHR;
205*8975f5c5SAndroid Build Coastguard Worker   clCreateFromD3D11Texture3DKHR_t *clCreateFromD3D11Texture3DKHR;
206*8975f5c5SAndroid Build Coastguard Worker   clCreateFromDX9MediaSurfaceKHR_t *clCreateFromDX9MediaSurfaceKHR;
207*8975f5c5SAndroid Build Coastguard Worker   clEnqueueAcquireD3D11ObjectsKHR_t *clEnqueueAcquireD3D11ObjectsKHR;
208*8975f5c5SAndroid Build Coastguard Worker   clEnqueueReleaseD3D11ObjectsKHR_t *clEnqueueReleaseD3D11ObjectsKHR;
209*8975f5c5SAndroid Build Coastguard Worker   clGetDeviceIDsFromDX9MediaAdapterKHR_t *
210*8975f5c5SAndroid Build Coastguard Worker       clGetDeviceIDsFromDX9MediaAdapterKHR;
211*8975f5c5SAndroid Build Coastguard Worker   clEnqueueAcquireDX9MediaSurfacesKHR_t *
212*8975f5c5SAndroid Build Coastguard Worker       clEnqueueAcquireDX9MediaSurfacesKHR;
213*8975f5c5SAndroid Build Coastguard Worker   clEnqueueReleaseDX9MediaSurfacesKHR_t *
214*8975f5c5SAndroid Build Coastguard Worker       clEnqueueReleaseDX9MediaSurfacesKHR;
215*8975f5c5SAndroid Build Coastguard Worker #else
216*8975f5c5SAndroid Build Coastguard Worker   void *clGetDeviceIDsFromD3D11KHR;
217*8975f5c5SAndroid Build Coastguard Worker   void *clCreateFromD3D11BufferKHR;
218*8975f5c5SAndroid Build Coastguard Worker   void *clCreateFromD3D11Texture2DKHR;
219*8975f5c5SAndroid Build Coastguard Worker   void *clCreateFromD3D11Texture3DKHR;
220*8975f5c5SAndroid Build Coastguard Worker   void *clCreateFromDX9MediaSurfaceKHR;
221*8975f5c5SAndroid Build Coastguard Worker   void *clEnqueueAcquireD3D11ObjectsKHR;
222*8975f5c5SAndroid Build Coastguard Worker   void *clEnqueueReleaseD3D11ObjectsKHR;
223*8975f5c5SAndroid Build Coastguard Worker   void *clGetDeviceIDsFromDX9MediaAdapterKHR;
224*8975f5c5SAndroid Build Coastguard Worker   void *clEnqueueAcquireDX9MediaSurfacesKHR;
225*8975f5c5SAndroid Build Coastguard Worker   void *clEnqueueReleaseDX9MediaSurfacesKHR;
226*8975f5c5SAndroid Build Coastguard Worker #endif
227*8975f5c5SAndroid Build Coastguard Worker 
228*8975f5c5SAndroid Build Coastguard Worker   /* cl_khr_egl_image */
229*8975f5c5SAndroid Build Coastguard Worker   clCreateFromEGLImageKHR_t *clCreateFromEGLImageKHR;
230*8975f5c5SAndroid Build Coastguard Worker   clEnqueueAcquireEGLObjectsKHR_t *clEnqueueAcquireEGLObjectsKHR;
231*8975f5c5SAndroid Build Coastguard Worker   clEnqueueReleaseEGLObjectsKHR_t *clEnqueueReleaseEGLObjectsKHR;
232*8975f5c5SAndroid Build Coastguard Worker 
233*8975f5c5SAndroid Build Coastguard Worker   /* cl_khr_egl_event */
234*8975f5c5SAndroid Build Coastguard Worker   clCreateEventFromEGLSyncKHR_t *clCreateEventFromEGLSyncKHR;
235*8975f5c5SAndroid Build Coastguard Worker 
236*8975f5c5SAndroid Build Coastguard Worker   /* OpenCL 2.0 */
237*8975f5c5SAndroid Build Coastguard Worker #ifdef CL_VERSION_2_0
238*8975f5c5SAndroid Build Coastguard Worker   clCreateCommandQueueWithProperties_t *clCreateCommandQueueWithProperties;
239*8975f5c5SAndroid Build Coastguard Worker   clCreatePipe_t *clCreatePipe;
240*8975f5c5SAndroid Build Coastguard Worker   clGetPipeInfo_t *clGetPipeInfo;
241*8975f5c5SAndroid Build Coastguard Worker   clSVMAlloc_t *clSVMAlloc;
242*8975f5c5SAndroid Build Coastguard Worker   clSVMFree_t *clSVMFree;
243*8975f5c5SAndroid Build Coastguard Worker   clEnqueueSVMFree_t *clEnqueueSVMFree;
244*8975f5c5SAndroid Build Coastguard Worker   clEnqueueSVMMemcpy_t *clEnqueueSVMMemcpy;
245*8975f5c5SAndroid Build Coastguard Worker   clEnqueueSVMMemFill_t *clEnqueueSVMMemFill;
246*8975f5c5SAndroid Build Coastguard Worker   clEnqueueSVMMap_t *clEnqueueSVMMap;
247*8975f5c5SAndroid Build Coastguard Worker   clEnqueueSVMUnmap_t *clEnqueueSVMUnmap;
248*8975f5c5SAndroid Build Coastguard Worker   clCreateSamplerWithProperties_t *clCreateSamplerWithProperties;
249*8975f5c5SAndroid Build Coastguard Worker   clSetKernelArgSVMPointer_t *clSetKernelArgSVMPointer;
250*8975f5c5SAndroid Build Coastguard Worker   clSetKernelExecInfo_t *clSetKernelExecInfo;
251*8975f5c5SAndroid Build Coastguard Worker #else
252*8975f5c5SAndroid Build Coastguard Worker   void *clCreateCommandQueueWithProperties;
253*8975f5c5SAndroid Build Coastguard Worker   void *clCreatePipe;
254*8975f5c5SAndroid Build Coastguard Worker   void *clGetPipeInfo;
255*8975f5c5SAndroid Build Coastguard Worker   void *clSVMAlloc;
256*8975f5c5SAndroid Build Coastguard Worker   void *clSVMFree;
257*8975f5c5SAndroid Build Coastguard Worker   void *clEnqueueSVMFree;
258*8975f5c5SAndroid Build Coastguard Worker   void *clEnqueueSVMMemcpy;
259*8975f5c5SAndroid Build Coastguard Worker   void *clEnqueueSVMMemFill;
260*8975f5c5SAndroid Build Coastguard Worker   void *clEnqueueSVMMap;
261*8975f5c5SAndroid Build Coastguard Worker   void *clEnqueueSVMUnmap;
262*8975f5c5SAndroid Build Coastguard Worker   void *clCreateSamplerWithProperties;
263*8975f5c5SAndroid Build Coastguard Worker   void *clSetKernelArgSVMPointer;
264*8975f5c5SAndroid Build Coastguard Worker   void *clSetKernelExecInfo;
265*8975f5c5SAndroid Build Coastguard Worker #endif
266*8975f5c5SAndroid Build Coastguard Worker 
267*8975f5c5SAndroid Build Coastguard Worker   /* cl_khr_sub_groups */
268*8975f5c5SAndroid Build Coastguard Worker   clGetKernelSubGroupInfoKHR_t *clGetKernelSubGroupInfoKHR;
269*8975f5c5SAndroid Build Coastguard Worker 
270*8975f5c5SAndroid Build Coastguard Worker   /* OpenCL 2.1 */
271*8975f5c5SAndroid Build Coastguard Worker #ifdef CL_VERSION_2_1
272*8975f5c5SAndroid Build Coastguard Worker   clCloneKernel_t *clCloneKernel;
273*8975f5c5SAndroid Build Coastguard Worker   clCreateProgramWithIL_t *clCreateProgramWithIL;
274*8975f5c5SAndroid Build Coastguard Worker   clEnqueueSVMMigrateMem_t *clEnqueueSVMMigrateMem;
275*8975f5c5SAndroid Build Coastguard Worker   clGetDeviceAndHostTimer_t *clGetDeviceAndHostTimer;
276*8975f5c5SAndroid Build Coastguard Worker   clGetHostTimer_t *clGetHostTimer;
277*8975f5c5SAndroid Build Coastguard Worker   clGetKernelSubGroupInfo_t *clGetKernelSubGroupInfo;
278*8975f5c5SAndroid Build Coastguard Worker   clSetDefaultDeviceCommandQueue_t *clSetDefaultDeviceCommandQueue;
279*8975f5c5SAndroid Build Coastguard Worker #else
280*8975f5c5SAndroid Build Coastguard Worker   void *clCloneKernel;
281*8975f5c5SAndroid Build Coastguard Worker   void *clCreateProgramWithIL;
282*8975f5c5SAndroid Build Coastguard Worker   void *clEnqueueSVMMigrateMem;
283*8975f5c5SAndroid Build Coastguard Worker   void *clGetDeviceAndHostTimer;
284*8975f5c5SAndroid Build Coastguard Worker   void *clGetHostTimer;
285*8975f5c5SAndroid Build Coastguard Worker   void *clGetKernelSubGroupInfo;
286*8975f5c5SAndroid Build Coastguard Worker   void *clSetDefaultDeviceCommandQueue;
287*8975f5c5SAndroid Build Coastguard Worker #endif
288*8975f5c5SAndroid Build Coastguard Worker 
289*8975f5c5SAndroid Build Coastguard Worker   /* OpenCL 2.2 */
290*8975f5c5SAndroid Build Coastguard Worker #ifdef CL_VERSION_2_2
291*8975f5c5SAndroid Build Coastguard Worker   clSetProgramReleaseCallback_t *clSetProgramReleaseCallback;
292*8975f5c5SAndroid Build Coastguard Worker   clSetProgramSpecializationConstant_t *clSetProgramSpecializationConstant;
293*8975f5c5SAndroid Build Coastguard Worker #else
294*8975f5c5SAndroid Build Coastguard Worker   void *clSetProgramReleaseCallback;
295*8975f5c5SAndroid Build Coastguard Worker   void *clSetProgramSpecializationConstant;
296*8975f5c5SAndroid Build Coastguard Worker #endif
297*8975f5c5SAndroid Build Coastguard Worker 
298*8975f5c5SAndroid Build Coastguard Worker   /* OpenCL 3.0 */
299*8975f5c5SAndroid Build Coastguard Worker #ifdef CL_VERSION_3_0
300*8975f5c5SAndroid Build Coastguard Worker   clCreateBufferWithProperties_t *clCreateBufferWithProperties;
301*8975f5c5SAndroid Build Coastguard Worker   clCreateImageWithProperties_t *clCreateImageWithProperties;
302*8975f5c5SAndroid Build Coastguard Worker   clSetContextDestructorCallback_t *clSetContextDestructorCallback;
303*8975f5c5SAndroid Build Coastguard Worker #else
304*8975f5c5SAndroid Build Coastguard Worker   void *clCreateBufferWithProperties;
305*8975f5c5SAndroid Build Coastguard Worker   void *clCreateImageWithProperties;
306*8975f5c5SAndroid Build Coastguard Worker   void *clSetContextDestructorCallback;
307*8975f5c5SAndroid Build Coastguard Worker #endif
308*8975f5c5SAndroid Build Coastguard Worker 
309*8975f5c5SAndroid Build Coastguard Worker } cl_icd_dispatch;
310*8975f5c5SAndroid Build Coastguard Worker 
311*8975f5c5SAndroid Build Coastguard Worker #ifdef __cplusplus
312*8975f5c5SAndroid Build Coastguard Worker }
313*8975f5c5SAndroid Build Coastguard Worker #endif
314*8975f5c5SAndroid Build Coastguard Worker 
315*8975f5c5SAndroid Build Coastguard Worker #endif /* #ifndef OPENCL_CL_ICD_H */
316