xref: /aosp_15_r20/external/OpenCL-ICD-Loader/scripts/icd_dispatch_generated.c.mako (revision 1cddb830dba8aa7c1cc1039338e56b3b9fa24952)
1*1cddb830SAndroid Build Coastguard Worker<%
2*1cddb830SAndroid Build Coastguard Worker# APIs to skip - they need to be done "manually":
3*1cddb830SAndroid Build Coastguard Workerapiskip = {
4*1cddb830SAndroid Build Coastguard Worker    'clGetPlatformIDs',                         # to query platforms
5*1cddb830SAndroid Build Coastguard Worker    'clGetExtensionFunctionAddress',            # to return ICD-aware extensions
6*1cddb830SAndroid Build Coastguard Worker    'clGetExtensionFunctionAddressForPlatform', # to return ICD-aware extensions
7*1cddb830SAndroid Build Coastguard Worker    }
8*1cddb830SAndroid Build Coastguard Worker
9*1cddb830SAndroid Build Coastguard Workerapiinit = {
10*1cddb830SAndroid Build Coastguard Worker    'clCreateContextFromType',
11*1cddb830SAndroid Build Coastguard Worker    'clGetGLContextInfoKHR',
12*1cddb830SAndroid Build Coastguard Worker    }
13*1cddb830SAndroid Build Coastguard Worker# Handles, and mappings to errors when handles are invalid:
14*1cddb830SAndroid Build Coastguard Workerapihandles = {
15*1cddb830SAndroid Build Coastguard Worker    'cl_command_queue'  : 'CL_INVALID_COMMAND_QUEUE',
16*1cddb830SAndroid Build Coastguard Worker    'cl_context'        : 'CL_INVALID_CONTEXT',
17*1cddb830SAndroid Build Coastguard Worker    'cl_device_id'      : 'CL_INVALID_DEVICE',
18*1cddb830SAndroid Build Coastguard Worker    'cl_event'          : 'CL_INVALID_EVENT',
19*1cddb830SAndroid Build Coastguard Worker    'cl_kernel'         : 'CL_INVALID_KERNEL',
20*1cddb830SAndroid Build Coastguard Worker    'cl_mem'            : 'CL_INVALID_MEM_OBJECT',
21*1cddb830SAndroid Build Coastguard Worker    'cl_platform_id'    : 'CL_INVALID_PLATFORM',
22*1cddb830SAndroid Build Coastguard Worker    'cl_program'        : 'CL_INVALID_PROGRAM',
23*1cddb830SAndroid Build Coastguard Worker    'cl_sampler'        : 'CL_INVALID_SAMPLER',
24*1cddb830SAndroid Build Coastguard Worker    }
25*1cddb830SAndroid Build Coastguard Worker%>/*
26*1cddb830SAndroid Build Coastguard Worker * Copyright (c) 2012-2023 The Khronos Group Inc.
27*1cddb830SAndroid Build Coastguard Worker *
28*1cddb830SAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License");
29*1cddb830SAndroid Build Coastguard Worker * you may not use this file except in compliance with the License.
30*1cddb830SAndroid Build Coastguard Worker * You may obtain a copy of the License at
31*1cddb830SAndroid Build Coastguard Worker *
32*1cddb830SAndroid Build Coastguard Worker *     http://www.apache.org/licenses/LICENSE-2.0
33*1cddb830SAndroid Build Coastguard Worker *
34*1cddb830SAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software
35*1cddb830SAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS,
36*1cddb830SAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
37*1cddb830SAndroid Build Coastguard Worker * See the License for the specific language governing permissions and
38*1cddb830SAndroid Build Coastguard Worker * limitations under the License.
39*1cddb830SAndroid Build Coastguard Worker *
40*1cddb830SAndroid Build Coastguard Worker * OpenCL is a trademark of Apple Inc. used under license by Khronos.
41*1cddb830SAndroid Build Coastguard Worker */
42*1cddb830SAndroid Build Coastguard Worker
43*1cddb830SAndroid Build Coastguard Worker#include "icd.h"
44*1cddb830SAndroid Build Coastguard Worker#include "icd_dispatch.h"
45*1cddb830SAndroid Build Coastguard Worker
46*1cddb830SAndroid Build Coastguard Worker#ifdef __cplusplus
47*1cddb830SAndroid Build Coastguard Workerextern "C" {
48*1cddb830SAndroid Build Coastguard Worker#endif
49*1cddb830SAndroid Build Coastguard Worker
50*1cddb830SAndroid Build Coastguard Worker///////////////////////////////////////////////////////////////////////////////
51*1cddb830SAndroid Build Coastguard Worker// Core APIs:
52*1cddb830SAndroid Build Coastguard Worker%for apis in coreapis.values():
53*1cddb830SAndroid Build Coastguard Worker%for api in apis:
54*1cddb830SAndroid Build Coastguard Worker%if not api.Name in apiskip:
55*1cddb830SAndroid Build Coastguard Worker<%
56*1cddb830SAndroid Build Coastguard Worker      handle = api.Params[0]
57*1cddb830SAndroid Build Coastguard Worker      if handle.Type in apihandles:
58*1cddb830SAndroid Build Coastguard Worker          invalid = apihandles[handle.Type]
59*1cddb830SAndroid Build Coastguard Worker      else:
60*1cddb830SAndroid Build Coastguard Worker          invalid = 'NULL'
61*1cddb830SAndroid Build Coastguard Worker%>
62*1cddb830SAndroid Build Coastguard Worker%for disp in [0, 1]:
63*1cddb830SAndroid Build Coastguard Worker%  if disp == 1:
64*1cddb830SAndroid Build Coastguard Worker#if defined(CL_ENABLE_LAYERS)
65*1cddb830SAndroid Build Coastguard Worker%  endif
66*1cddb830SAndroid Build Coastguard Worker${("CL_API_ENTRY", "static")[disp]} ${api.RetType} CL_API_CALL ${api.Name + ("", "_disp")[disp]}(
67*1cddb830SAndroid Build Coastguard Worker%for i, param in enumerate(api.Params):
68*1cddb830SAndroid Build Coastguard Worker%  if i < len(api.Params)-1:
69*1cddb830SAndroid Build Coastguard Worker    ${param.Type} ${param.Name}${param.TypeEnd},
70*1cddb830SAndroid Build Coastguard Worker%  else:
71*1cddb830SAndroid Build Coastguard Worker    ${param.Type} ${param.Name}${param.TypeEnd})
72*1cddb830SAndroid Build Coastguard Worker%  endif
73*1cddb830SAndroid Build Coastguard Worker%endfor
74*1cddb830SAndroid Build Coastguard Worker{
75*1cddb830SAndroid Build Coastguard Worker%if api.Name in apiinit:
76*1cddb830SAndroid Build Coastguard Worker    khrIcdInitialize();
77*1cddb830SAndroid Build Coastguard Worker%endif
78*1cddb830SAndroid Build Coastguard Worker%if disp == 0:
79*1cddb830SAndroid Build Coastguard Worker#if defined(CL_ENABLE_LAYERS)
80*1cddb830SAndroid Build Coastguard Worker    if (khrFirstLayer)
81*1cddb830SAndroid Build Coastguard Worker%  if api.Name == "clSVMFree":
82*1cddb830SAndroid Build Coastguard Worker    {
83*1cddb830SAndroid Build Coastguard Worker        khrFirstLayer->dispatch.${api.Name}(
84*1cddb830SAndroid Build Coastguard Worker%  else:
85*1cddb830SAndroid Build Coastguard Worker        return khrFirstLayer->dispatch.${api.Name}(
86*1cddb830SAndroid Build Coastguard Worker%  endif
87*1cddb830SAndroid Build Coastguard Worker%for i, param in enumerate(api.Params):
88*1cddb830SAndroid Build Coastguard Worker%  if i < len(api.Params)-1:
89*1cddb830SAndroid Build Coastguard Worker            ${param.Name},
90*1cddb830SAndroid Build Coastguard Worker%  else:
91*1cddb830SAndroid Build Coastguard Worker            ${param.Name});
92*1cddb830SAndroid Build Coastguard Worker%  endif
93*1cddb830SAndroid Build Coastguard Worker%endfor
94*1cddb830SAndroid Build Coastguard Worker%  if api.Name == "clSVMFree":
95*1cddb830SAndroid Build Coastguard Worker    }
96*1cddb830SAndroid Build Coastguard Worker    else
97*1cddb830SAndroid Build Coastguard Worker%  endif
98*1cddb830SAndroid Build Coastguard Worker#endif // defined(CL_ENABLE_LAYERS)
99*1cddb830SAndroid Build Coastguard Worker%endif
100*1cddb830SAndroid Build Coastguard Worker%if api.RetType in apihandles or api.RetType == "void*":
101*1cddb830SAndroid Build Coastguard Worker## clCreateContext is a special case, since it calls through
102*1cddb830SAndroid Build Coastguard Worker## the dispatch table via the first "device":
103*1cddb830SAndroid Build Coastguard Worker%  if api.Name == "clCreateContext":
104*1cddb830SAndroid Build Coastguard Worker    if (${api.Params[1].Name} == 0 || ${api.Params[2].Name} == NULL) {
105*1cddb830SAndroid Build Coastguard Worker        KHR_ICD_VALIDATE_HANDLE_RETURN_HANDLE(NULL, CL_INVALID_VALUE);
106*1cddb830SAndroid Build Coastguard Worker    }
107*1cddb830SAndroid Build Coastguard Worker    KHR_ICD_VALIDATE_HANDLE_RETURN_HANDLE(${api.Params[2].Name}[0], CL_INVALID_DEVICE);
108*1cddb830SAndroid Build Coastguard Worker## clCreateContextFromType is a special case, since it calls
109*1cddb830SAndroid Build Coastguard Worker## through a platform passed via properties:
110*1cddb830SAndroid Build Coastguard Worker%  elif api.Name == "clCreateContextFromType":
111*1cddb830SAndroid Build Coastguard Worker    cl_platform_id platform = NULL;
112*1cddb830SAndroid Build Coastguard Worker    khrIcdContextPropertiesGetPlatform(properties, &platform);
113*1cddb830SAndroid Build Coastguard Worker    KHR_ICD_VALIDATE_HANDLE_RETURN_HANDLE(platform, CL_INVALID_PLATFORM);
114*1cddb830SAndroid Build Coastguard Worker## These APIs are special cases because they return a void*, but
115*1cddb830SAndroid Build Coastguard Worker## do not nave an errcode_ret:
116*1cddb830SAndroid Build Coastguard Worker%  elif api.Name == "clSVMAlloc" or api.Name == "clGetExtensionFunctionAddressForPlatform":
117*1cddb830SAndroid Build Coastguard Worker    KHR_ICD_VALIDATE_HANDLE_RETURN_ERROR(${handle.Name}, NULL);
118*1cddb830SAndroid Build Coastguard Worker%  else:
119*1cddb830SAndroid Build Coastguard Worker    KHR_ICD_VALIDATE_HANDLE_RETURN_HANDLE(${handle.Name}, ${invalid});
120*1cddb830SAndroid Build Coastguard Worker%  endif
121*1cddb830SAndroid Build Coastguard Worker%elif api.Name == "clSVMFree":
122*1cddb830SAndroid Build Coastguard Worker## clSVMFree has no return value or errcode_ret:
123*1cddb830SAndroid Build Coastguard Worker    if (${handle.Name} != NULL)
124*1cddb830SAndroid Build Coastguard Worker## clWaitForEvents is a special case, since it calls through
125*1cddb830SAndroid Build Coastguard Worker## the dispatch table via the first "event":
126*1cddb830SAndroid Build Coastguard Worker%elif api.Name == "clWaitForEvents":
127*1cddb830SAndroid Build Coastguard Worker    if (${api.Params[0].Name} == 0 || ${api.Params[1].Name} == NULL) {
128*1cddb830SAndroid Build Coastguard Worker        return CL_INVALID_VALUE;
129*1cddb830SAndroid Build Coastguard Worker    }
130*1cddb830SAndroid Build Coastguard Worker    KHR_ICD_VALIDATE_HANDLE_RETURN_ERROR(${api.Params[1].Name}[0], CL_INVALID_EVENT);
131*1cddb830SAndroid Build Coastguard Worker%elif api.Name == "clUnloadCompiler":
132*1cddb830SAndroid Build Coastguard Worker    // Nothing!
133*1cddb830SAndroid Build Coastguard Worker%else:
134*1cddb830SAndroid Build Coastguard Worker    KHR_ICD_VALIDATE_HANDLE_RETURN_ERROR(${handle.Name}, ${invalid});
135*1cddb830SAndroid Build Coastguard Worker%endif
136*1cddb830SAndroid Build Coastguard Worker%if api.Name == "clCreateContext":
137*1cddb830SAndroid Build Coastguard Worker    return ${api.Params[2].Name}[0]->dispatch->${api.Name}(
138*1cddb830SAndroid Build Coastguard Worker%elif api.Name == "clWaitForEvents":
139*1cddb830SAndroid Build Coastguard Worker    return ${api.Params[1].Name}[0]->dispatch->${api.Name}(
140*1cddb830SAndroid Build Coastguard Worker%elif api.Name == "clCreateContextFromType":
141*1cddb830SAndroid Build Coastguard Worker    return platform->dispatch->${api.Name}(
142*1cddb830SAndroid Build Coastguard Worker%elif api.Name == "clSVMFree":
143*1cddb830SAndroid Build Coastguard Worker    ${handle.Name}->dispatch->${api.Name}(
144*1cddb830SAndroid Build Coastguard Worker%elif api.Name == "clUnloadCompiler":
145*1cddb830SAndroid Build Coastguard Worker    return CL_SUCCESS;
146*1cddb830SAndroid Build Coastguard Worker%else:
147*1cddb830SAndroid Build Coastguard Worker    return ${handle.Name}->dispatch->${api.Name}(
148*1cddb830SAndroid Build Coastguard Worker%endif:
149*1cddb830SAndroid Build Coastguard Worker%for i, param in enumerate(api.Params):
150*1cddb830SAndroid Build Coastguard Worker%  if i < len(api.Params)-1:
151*1cddb830SAndroid Build Coastguard Worker        ${param.Name},
152*1cddb830SAndroid Build Coastguard Worker%  elif param.Name: # for clUnloadCompiler
153*1cddb830SAndroid Build Coastguard Worker        ${param.Name});
154*1cddb830SAndroid Build Coastguard Worker%  endif
155*1cddb830SAndroid Build Coastguard Worker%endfor
156*1cddb830SAndroid Build Coastguard Worker}
157*1cddb830SAndroid Build Coastguard Worker%  if disp == 1:
158*1cddb830SAndroid Build Coastguard Worker#endif // defined(CL_ENABLE_LAYERS)
159*1cddb830SAndroid Build Coastguard Worker%  endif
160*1cddb830SAndroid Build Coastguard Worker
161*1cddb830SAndroid Build Coastguard Worker///////////////////////////////////////////////////////////////////////////////
162*1cddb830SAndroid Build Coastguard Worker%endfor
163*1cddb830SAndroid Build Coastguard Worker%else:
164*1cddb830SAndroid Build Coastguard Worker#if defined(CL_ENABLE_LAYERS)
165*1cddb830SAndroid Build Coastguard Workerextern ${api.RetType} CL_API_CALL ${api.Name + "_disp"}(
166*1cddb830SAndroid Build Coastguard Worker%for i, param in enumerate(api.Params):
167*1cddb830SAndroid Build Coastguard Worker%  if i < len(api.Params)-1:
168*1cddb830SAndroid Build Coastguard Worker    ${param.Type} ${param.Name}${param.TypeEnd},
169*1cddb830SAndroid Build Coastguard Worker%  else:
170*1cddb830SAndroid Build Coastguard Worker    ${param.Type} ${param.Name}${param.TypeEnd}) ${api.Suffix};
171*1cddb830SAndroid Build Coastguard Worker%  endif
172*1cddb830SAndroid Build Coastguard Worker%endfor
173*1cddb830SAndroid Build Coastguard Worker#endif // defined(CL_ENABLE_LAYERS)
174*1cddb830SAndroid Build Coastguard Worker%endif
175*1cddb830SAndroid Build Coastguard Worker%endfor
176*1cddb830SAndroid Build Coastguard Worker%endfor
177*1cddb830SAndroid Build Coastguard Worker<%
178*1cddb830SAndroid Build Coastguard Workericdextensions = [
179*1cddb830SAndroid Build Coastguard Worker    'cl_ext_device_fission',
180*1cddb830SAndroid Build Coastguard Worker    'cl_khr_d3d10_sharing',
181*1cddb830SAndroid Build Coastguard Worker    'cl_khr_d3d11_sharing',
182*1cddb830SAndroid Build Coastguard Worker    'cl_khr_dx9_media_sharing',
183*1cddb830SAndroid Build Coastguard Worker    'cl_khr_egl_event',
184*1cddb830SAndroid Build Coastguard Worker    'cl_khr_egl_image',
185*1cddb830SAndroid Build Coastguard Worker    'cl_khr_gl_event',
186*1cddb830SAndroid Build Coastguard Worker    'cl_khr_gl_sharing',
187*1cddb830SAndroid Build Coastguard Worker    'cl_khr_subgroups'
188*1cddb830SAndroid Build Coastguard Worker    ]
189*1cddb830SAndroid Build Coastguard Workerwin32extensions = {
190*1cddb830SAndroid Build Coastguard Worker    'cl_khr_d3d10_sharing',
191*1cddb830SAndroid Build Coastguard Worker    'cl_khr_d3d11_sharing',
192*1cddb830SAndroid Build Coastguard Worker    'cl_khr_dx9_media_sharing',
193*1cddb830SAndroid Build Coastguard Worker    }
194*1cddb830SAndroid Build Coastguard Worker%>
195*1cddb830SAndroid Build Coastguard Worker%for extension in icdextensions:
196*1cddb830SAndroid Build Coastguard Worker<%
197*1cddb830SAndroid Build Coastguard Worker    apis = extapis[extension]
198*1cddb830SAndroid Build Coastguard Worker%>// ${extension}
199*1cddb830SAndroid Build Coastguard Worker%if extension in win32extensions:
200*1cddb830SAndroid Build Coastguard Worker
201*1cddb830SAndroid Build Coastguard Worker#if defined(_WIN32)
202*1cddb830SAndroid Build Coastguard Worker%endif
203*1cddb830SAndroid Build Coastguard Worker%for api in apis:
204*1cddb830SAndroid Build Coastguard Worker<%
205*1cddb830SAndroid Build Coastguard Worker      handle = api.Params[0]
206*1cddb830SAndroid Build Coastguard Worker      if handle.Type in apihandles:
207*1cddb830SAndroid Build Coastguard Worker          invalid = apihandles[handle.Type]
208*1cddb830SAndroid Build Coastguard Worker      else:
209*1cddb830SAndroid Build Coastguard Worker          invalid = 'NULL'
210*1cddb830SAndroid Build Coastguard Worker%>
211*1cddb830SAndroid Build Coastguard Worker%for disp in [0, 1]:
212*1cddb830SAndroid Build Coastguard Worker%  if disp == 1:
213*1cddb830SAndroid Build Coastguard Worker#if defined(CL_ENABLE_LAYERS)
214*1cddb830SAndroid Build Coastguard Worker%  endif
215*1cddb830SAndroid Build Coastguard Worker${("CL_API_ENTRY", "static")[disp]} ${api.RetType} CL_API_CALL ${api.Name + ("", "_disp")[disp]}(
216*1cddb830SAndroid Build Coastguard Worker%for i, param in enumerate(api.Params):
217*1cddb830SAndroid Build Coastguard Worker%  if i < len(api.Params)-1:
218*1cddb830SAndroid Build Coastguard Worker    ${param.Type} ${param.Name}${param.TypeEnd},
219*1cddb830SAndroid Build Coastguard Worker%  else:
220*1cddb830SAndroid Build Coastguard Worker    ${param.Type} ${param.Name}${param.TypeEnd})
221*1cddb830SAndroid Build Coastguard Worker%  endif
222*1cddb830SAndroid Build Coastguard Worker%endfor
223*1cddb830SAndroid Build Coastguard Worker{
224*1cddb830SAndroid Build Coastguard Worker%if disp == 0:
225*1cddb830SAndroid Build Coastguard Worker#if defined(CL_ENABLE_LAYERS)
226*1cddb830SAndroid Build Coastguard Worker    if (khrFirstLayer)
227*1cddb830SAndroid Build Coastguard Worker        return khrFirstLayer->dispatch.${api.Name}(
228*1cddb830SAndroid Build Coastguard Worker%for i, param in enumerate(api.Params):
229*1cddb830SAndroid Build Coastguard Worker%  if i < len(api.Params)-1:
230*1cddb830SAndroid Build Coastguard Worker            ${param.Name},
231*1cddb830SAndroid Build Coastguard Worker%  else:
232*1cddb830SAndroid Build Coastguard Worker            ${param.Name});
233*1cddb830SAndroid Build Coastguard Worker%  endif
234*1cddb830SAndroid Build Coastguard Worker%endfor
235*1cddb830SAndroid Build Coastguard Worker#endif // defined(CL_ENABLE_LAYERS)
236*1cddb830SAndroid Build Coastguard Worker%endif
237*1cddb830SAndroid Build Coastguard Worker%if api.RetType in apihandles or api.RetType == "void*":
238*1cddb830SAndroid Build Coastguard Worker%  if False:
239*1cddb830SAndroid Build Coastguard Worker    // api.Name == "clXXX":  # There are currently no API special cases here.
240*1cddb830SAndroid Build Coastguard Worker%  else:
241*1cddb830SAndroid Build Coastguard Worker    KHR_ICD_VALIDATE_HANDLE_RETURN_HANDLE(${handle.Name}, ${invalid});
242*1cddb830SAndroid Build Coastguard Worker    KHR_ICD_VALIDATE_POINTER_RETURN_HANDLE(${handle.Name}->dispatch->${api.Name});
243*1cddb830SAndroid Build Coastguard Worker% endif
244*1cddb830SAndroid Build Coastguard Worker%else:
245*1cddb830SAndroid Build Coastguard Worker%  if api.Name == "clGetGLContextInfoKHR":
246*1cddb830SAndroid Build Coastguard Worker    cl_platform_id platform = NULL;
247*1cddb830SAndroid Build Coastguard Worker    khrIcdContextPropertiesGetPlatform(properties, &platform);
248*1cddb830SAndroid Build Coastguard Worker    KHR_ICD_VALIDATE_HANDLE_RETURN_ERROR(platform, CL_INVALID_PLATFORM);
249*1cddb830SAndroid Build Coastguard Worker    KHR_ICD_VALIDATE_POINTER_RETURN_ERROR(platform->dispatch->${api.Name});
250*1cddb830SAndroid Build Coastguard Worker%  else:
251*1cddb830SAndroid Build Coastguard Worker    KHR_ICD_VALIDATE_HANDLE_RETURN_ERROR(${handle.Name}, ${invalid});
252*1cddb830SAndroid Build Coastguard Worker    KHR_ICD_VALIDATE_POINTER_RETURN_ERROR(${handle.Name}->dispatch->${api.Name});
253*1cddb830SAndroid Build Coastguard Worker%  endif
254*1cddb830SAndroid Build Coastguard Worker%endif
255*1cddb830SAndroid Build Coastguard Worker%if api.Name == "clGetGLContextInfoKHR":
256*1cddb830SAndroid Build Coastguard Worker    return platform->dispatch->${api.Name}(
257*1cddb830SAndroid Build Coastguard Worker%else:
258*1cddb830SAndroid Build Coastguard Worker    return ${handle.Name}->dispatch->${api.Name}(
259*1cddb830SAndroid Build Coastguard Worker%endif
260*1cddb830SAndroid Build Coastguard Worker%for i, param in enumerate(api.Params):
261*1cddb830SAndroid Build Coastguard Worker%  if i < len(api.Params)-1:
262*1cddb830SAndroid Build Coastguard Worker        ${param.Name},
263*1cddb830SAndroid Build Coastguard Worker%  elif param.Name: # for clUnloadCompiler
264*1cddb830SAndroid Build Coastguard Worker        ${param.Name});
265*1cddb830SAndroid Build Coastguard Worker%  endif
266*1cddb830SAndroid Build Coastguard Worker%endfor
267*1cddb830SAndroid Build Coastguard Worker}
268*1cddb830SAndroid Build Coastguard Worker%  if disp == 1:
269*1cddb830SAndroid Build Coastguard Worker#endif // defined(CL_ENABLE_LAYERS)
270*1cddb830SAndroid Build Coastguard Worker%  endif
271*1cddb830SAndroid Build Coastguard Worker%endfor
272*1cddb830SAndroid Build Coastguard Worker%endfor
273*1cddb830SAndroid Build Coastguard Worker
274*1cddb830SAndroid Build Coastguard Worker%if extension in win32extensions:
275*1cddb830SAndroid Build Coastguard Worker#endif // defined(_WIN32)
276*1cddb830SAndroid Build Coastguard Worker
277*1cddb830SAndroid Build Coastguard Worker%endif
278*1cddb830SAndroid Build Coastguard Worker///////////////////////////////////////////////////////////////////////////////
279*1cddb830SAndroid Build Coastguard Worker
280*1cddb830SAndroid Build Coastguard Worker%endfor
281*1cddb830SAndroid Build Coastguard Worker#if defined(CL_ENABLE_LAYERS)
282*1cddb830SAndroid Build Coastguard Workerstruct _cl_icd_dispatch khrMasterDispatch = {
283*1cddb830SAndroid Build Coastguard Worker    &clGetPlatformIDs_disp,
284*1cddb830SAndroid Build Coastguard Worker    &clGetPlatformInfo_disp,
285*1cddb830SAndroid Build Coastguard Worker    &clGetDeviceIDs_disp,
286*1cddb830SAndroid Build Coastguard Worker    &clGetDeviceInfo_disp,
287*1cddb830SAndroid Build Coastguard Worker    &clCreateContext_disp,
288*1cddb830SAndroid Build Coastguard Worker    &clCreateContextFromType_disp,
289*1cddb830SAndroid Build Coastguard Worker    &clRetainContext_disp,
290*1cddb830SAndroid Build Coastguard Worker    &clReleaseContext_disp,
291*1cddb830SAndroid Build Coastguard Worker    &clGetContextInfo_disp,
292*1cddb830SAndroid Build Coastguard Worker    &clCreateCommandQueue_disp,
293*1cddb830SAndroid Build Coastguard Worker    &clRetainCommandQueue_disp,
294*1cddb830SAndroid Build Coastguard Worker    &clReleaseCommandQueue_disp,
295*1cddb830SAndroid Build Coastguard Worker    &clGetCommandQueueInfo_disp,
296*1cddb830SAndroid Build Coastguard Worker    &clSetCommandQueueProperty_disp,
297*1cddb830SAndroid Build Coastguard Worker    &clCreateBuffer_disp,
298*1cddb830SAndroid Build Coastguard Worker    &clCreateImage2D_disp,
299*1cddb830SAndroid Build Coastguard Worker    &clCreateImage3D_disp,
300*1cddb830SAndroid Build Coastguard Worker    &clRetainMemObject_disp,
301*1cddb830SAndroid Build Coastguard Worker    &clReleaseMemObject_disp,
302*1cddb830SAndroid Build Coastguard Worker    &clGetSupportedImageFormats_disp,
303*1cddb830SAndroid Build Coastguard Worker    &clGetMemObjectInfo_disp,
304*1cddb830SAndroid Build Coastguard Worker    &clGetImageInfo_disp,
305*1cddb830SAndroid Build Coastguard Worker    &clCreateSampler_disp,
306*1cddb830SAndroid Build Coastguard Worker    &clRetainSampler_disp,
307*1cddb830SAndroid Build Coastguard Worker    &clReleaseSampler_disp,
308*1cddb830SAndroid Build Coastguard Worker    &clGetSamplerInfo_disp,
309*1cddb830SAndroid Build Coastguard Worker    &clCreateProgramWithSource_disp,
310*1cddb830SAndroid Build Coastguard Worker    &clCreateProgramWithBinary_disp,
311*1cddb830SAndroid Build Coastguard Worker    &clRetainProgram_disp,
312*1cddb830SAndroid Build Coastguard Worker    &clReleaseProgram_disp,
313*1cddb830SAndroid Build Coastguard Worker    &clBuildProgram_disp,
314*1cddb830SAndroid Build Coastguard Worker    &clUnloadCompiler_disp,
315*1cddb830SAndroid Build Coastguard Worker    &clGetProgramInfo_disp,
316*1cddb830SAndroid Build Coastguard Worker    &clGetProgramBuildInfo_disp,
317*1cddb830SAndroid Build Coastguard Worker    &clCreateKernel_disp,
318*1cddb830SAndroid Build Coastguard Worker    &clCreateKernelsInProgram_disp,
319*1cddb830SAndroid Build Coastguard Worker    &clRetainKernel_disp,
320*1cddb830SAndroid Build Coastguard Worker    &clReleaseKernel_disp,
321*1cddb830SAndroid Build Coastguard Worker    &clSetKernelArg_disp,
322*1cddb830SAndroid Build Coastguard Worker    &clGetKernelInfo_disp,
323*1cddb830SAndroid Build Coastguard Worker    &clGetKernelWorkGroupInfo_disp,
324*1cddb830SAndroid Build Coastguard Worker    &clWaitForEvents_disp,
325*1cddb830SAndroid Build Coastguard Worker    &clGetEventInfo_disp,
326*1cddb830SAndroid Build Coastguard Worker    &clRetainEvent_disp,
327*1cddb830SAndroid Build Coastguard Worker    &clReleaseEvent_disp,
328*1cddb830SAndroid Build Coastguard Worker    &clGetEventProfilingInfo_disp,
329*1cddb830SAndroid Build Coastguard Worker    &clFlush_disp,
330*1cddb830SAndroid Build Coastguard Worker    &clFinish_disp,
331*1cddb830SAndroid Build Coastguard Worker    &clEnqueueReadBuffer_disp,
332*1cddb830SAndroid Build Coastguard Worker    &clEnqueueWriteBuffer_disp,
333*1cddb830SAndroid Build Coastguard Worker    &clEnqueueCopyBuffer_disp,
334*1cddb830SAndroid Build Coastguard Worker    &clEnqueueReadImage_disp,
335*1cddb830SAndroid Build Coastguard Worker    &clEnqueueWriteImage_disp,
336*1cddb830SAndroid Build Coastguard Worker    &clEnqueueCopyImage_disp,
337*1cddb830SAndroid Build Coastguard Worker    &clEnqueueCopyImageToBuffer_disp,
338*1cddb830SAndroid Build Coastguard Worker    &clEnqueueCopyBufferToImage_disp,
339*1cddb830SAndroid Build Coastguard Worker    &clEnqueueMapBuffer_disp,
340*1cddb830SAndroid Build Coastguard Worker    &clEnqueueMapImage_disp,
341*1cddb830SAndroid Build Coastguard Worker    &clEnqueueUnmapMemObject_disp,
342*1cddb830SAndroid Build Coastguard Worker    &clEnqueueNDRangeKernel_disp,
343*1cddb830SAndroid Build Coastguard Worker    &clEnqueueTask_disp,
344*1cddb830SAndroid Build Coastguard Worker    &clEnqueueNativeKernel_disp,
345*1cddb830SAndroid Build Coastguard Worker    &clEnqueueMarker_disp,
346*1cddb830SAndroid Build Coastguard Worker    &clEnqueueWaitForEvents_disp,
347*1cddb830SAndroid Build Coastguard Worker    &clEnqueueBarrier_disp,
348*1cddb830SAndroid Build Coastguard Worker    &clGetExtensionFunctionAddress_disp,
349*1cddb830SAndroid Build Coastguard Worker    &clCreateFromGLBuffer_disp,
350*1cddb830SAndroid Build Coastguard Worker    &clCreateFromGLTexture2D_disp,
351*1cddb830SAndroid Build Coastguard Worker    &clCreateFromGLTexture3D_disp,
352*1cddb830SAndroid Build Coastguard Worker    &clCreateFromGLRenderbuffer_disp,
353*1cddb830SAndroid Build Coastguard Worker    &clGetGLObjectInfo_disp,
354*1cddb830SAndroid Build Coastguard Worker    &clGetGLTextureInfo_disp,
355*1cddb830SAndroid Build Coastguard Worker    &clEnqueueAcquireGLObjects_disp,
356*1cddb830SAndroid Build Coastguard Worker    &clEnqueueReleaseGLObjects_disp,
357*1cddb830SAndroid Build Coastguard Worker    &clGetGLContextInfoKHR_disp,
358*1cddb830SAndroid Build Coastguard Worker
359*1cddb830SAndroid Build Coastguard Worker  /* cl_khr_d3d10_sharing */
360*1cddb830SAndroid Build Coastguard Worker#if defined(_WIN32)
361*1cddb830SAndroid Build Coastguard Worker    &clGetDeviceIDsFromD3D10KHR_disp,
362*1cddb830SAndroid Build Coastguard Worker    &clCreateFromD3D10BufferKHR_disp,
363*1cddb830SAndroid Build Coastguard Worker    &clCreateFromD3D10Texture2DKHR_disp,
364*1cddb830SAndroid Build Coastguard Worker    &clCreateFromD3D10Texture3DKHR_disp,
365*1cddb830SAndroid Build Coastguard Worker    &clEnqueueAcquireD3D10ObjectsKHR_disp,
366*1cddb830SAndroid Build Coastguard Worker    &clEnqueueReleaseD3D10ObjectsKHR_disp,
367*1cddb830SAndroid Build Coastguard Worker#else
368*1cddb830SAndroid Build Coastguard Worker    NULL,
369*1cddb830SAndroid Build Coastguard Worker    NULL,
370*1cddb830SAndroid Build Coastguard Worker    NULL,
371*1cddb830SAndroid Build Coastguard Worker    NULL,
372*1cddb830SAndroid Build Coastguard Worker    NULL,
373*1cddb830SAndroid Build Coastguard Worker    NULL,
374*1cddb830SAndroid Build Coastguard Worker#endif
375*1cddb830SAndroid Build Coastguard Worker
376*1cddb830SAndroid Build Coastguard Worker  /* OpenCL 1.1 */
377*1cddb830SAndroid Build Coastguard Worker    &clSetEventCallback_disp,
378*1cddb830SAndroid Build Coastguard Worker    &clCreateSubBuffer_disp,
379*1cddb830SAndroid Build Coastguard Worker    &clSetMemObjectDestructorCallback_disp,
380*1cddb830SAndroid Build Coastguard Worker    &clCreateUserEvent_disp,
381*1cddb830SAndroid Build Coastguard Worker    &clSetUserEventStatus_disp,
382*1cddb830SAndroid Build Coastguard Worker    &clEnqueueReadBufferRect_disp,
383*1cddb830SAndroid Build Coastguard Worker    &clEnqueueWriteBufferRect_disp,
384*1cddb830SAndroid Build Coastguard Worker    &clEnqueueCopyBufferRect_disp,
385*1cddb830SAndroid Build Coastguard Worker
386*1cddb830SAndroid Build Coastguard Worker  /* cl_ext_device_fission */
387*1cddb830SAndroid Build Coastguard Worker    &clCreateSubDevicesEXT_disp,
388*1cddb830SAndroid Build Coastguard Worker    &clRetainDeviceEXT_disp,
389*1cddb830SAndroid Build Coastguard Worker    &clReleaseDeviceEXT_disp,
390*1cddb830SAndroid Build Coastguard Worker
391*1cddb830SAndroid Build Coastguard Worker  /* cl_khr_gl_event */
392*1cddb830SAndroid Build Coastguard Worker    &clCreateEventFromGLsyncKHR_disp,
393*1cddb830SAndroid Build Coastguard Worker
394*1cddb830SAndroid Build Coastguard Worker  /* OpenCL 1.2 */
395*1cddb830SAndroid Build Coastguard Worker    &clCreateSubDevices_disp,
396*1cddb830SAndroid Build Coastguard Worker    &clRetainDevice_disp,
397*1cddb830SAndroid Build Coastguard Worker    &clReleaseDevice_disp,
398*1cddb830SAndroid Build Coastguard Worker    &clCreateImage_disp,
399*1cddb830SAndroid Build Coastguard Worker    &clCreateProgramWithBuiltInKernels_disp,
400*1cddb830SAndroid Build Coastguard Worker    &clCompileProgram_disp,
401*1cddb830SAndroid Build Coastguard Worker    &clLinkProgram_disp,
402*1cddb830SAndroid Build Coastguard Worker    &clUnloadPlatformCompiler_disp,
403*1cddb830SAndroid Build Coastguard Worker    &clGetKernelArgInfo_disp,
404*1cddb830SAndroid Build Coastguard Worker    &clEnqueueFillBuffer_disp,
405*1cddb830SAndroid Build Coastguard Worker    &clEnqueueFillImage_disp,
406*1cddb830SAndroid Build Coastguard Worker    &clEnqueueMigrateMemObjects_disp,
407*1cddb830SAndroid Build Coastguard Worker    &clEnqueueMarkerWithWaitList_disp,
408*1cddb830SAndroid Build Coastguard Worker    &clEnqueueBarrierWithWaitList_disp,
409*1cddb830SAndroid Build Coastguard Worker    &clGetExtensionFunctionAddressForPlatform_disp,
410*1cddb830SAndroid Build Coastguard Worker    &clCreateFromGLTexture_disp,
411*1cddb830SAndroid Build Coastguard Worker
412*1cddb830SAndroid Build Coastguard Worker  /* cl_khr_d3d11_sharing */
413*1cddb830SAndroid Build Coastguard Worker#if defined(_WIN32)
414*1cddb830SAndroid Build Coastguard Worker    &clGetDeviceIDsFromD3D11KHR_disp,
415*1cddb830SAndroid Build Coastguard Worker    &clCreateFromD3D11BufferKHR_disp,
416*1cddb830SAndroid Build Coastguard Worker    &clCreateFromD3D11Texture2DKHR_disp,
417*1cddb830SAndroid Build Coastguard Worker    &clCreateFromD3D11Texture3DKHR_disp,
418*1cddb830SAndroid Build Coastguard Worker    &clCreateFromDX9MediaSurfaceKHR_disp,
419*1cddb830SAndroid Build Coastguard Worker    &clEnqueueAcquireD3D11ObjectsKHR_disp,
420*1cddb830SAndroid Build Coastguard Worker    &clEnqueueReleaseD3D11ObjectsKHR_disp,
421*1cddb830SAndroid Build Coastguard Worker#else
422*1cddb830SAndroid Build Coastguard Worker    NULL,
423*1cddb830SAndroid Build Coastguard Worker    NULL,
424*1cddb830SAndroid Build Coastguard Worker    NULL,
425*1cddb830SAndroid Build Coastguard Worker    NULL,
426*1cddb830SAndroid Build Coastguard Worker    NULL,
427*1cddb830SAndroid Build Coastguard Worker    NULL,
428*1cddb830SAndroid Build Coastguard Worker    NULL,
429*1cddb830SAndroid Build Coastguard Worker#endif
430*1cddb830SAndroid Build Coastguard Worker
431*1cddb830SAndroid Build Coastguard Worker  /* cl_khr_dx9_media_sharing */
432*1cddb830SAndroid Build Coastguard Worker#if defined(_WIN32)
433*1cddb830SAndroid Build Coastguard Worker    &clGetDeviceIDsFromDX9MediaAdapterKHR_disp,
434*1cddb830SAndroid Build Coastguard Worker    &clEnqueueAcquireDX9MediaSurfacesKHR_disp,
435*1cddb830SAndroid Build Coastguard Worker    &clEnqueueReleaseDX9MediaSurfacesKHR_disp,
436*1cddb830SAndroid Build Coastguard Worker#else
437*1cddb830SAndroid Build Coastguard Worker    NULL,
438*1cddb830SAndroid Build Coastguard Worker    NULL,
439*1cddb830SAndroid Build Coastguard Worker    NULL,
440*1cddb830SAndroid Build Coastguard Worker#endif
441*1cddb830SAndroid Build Coastguard Worker
442*1cddb830SAndroid Build Coastguard Worker  /* cl_khr_egl_image */
443*1cddb830SAndroid Build Coastguard Worker    &clCreateFromEGLImageKHR_disp,
444*1cddb830SAndroid Build Coastguard Worker    &clEnqueueAcquireEGLObjectsKHR_disp,
445*1cddb830SAndroid Build Coastguard Worker    &clEnqueueReleaseEGLObjectsKHR_disp,
446*1cddb830SAndroid Build Coastguard Worker
447*1cddb830SAndroid Build Coastguard Worker  /* cl_khr_egl_event */
448*1cddb830SAndroid Build Coastguard Worker    &clCreateEventFromEGLSyncKHR_disp,
449*1cddb830SAndroid Build Coastguard Worker
450*1cddb830SAndroid Build Coastguard Worker  /* OpenCL 2.0 */
451*1cddb830SAndroid Build Coastguard Worker    &clCreateCommandQueueWithProperties_disp,
452*1cddb830SAndroid Build Coastguard Worker    &clCreatePipe_disp,
453*1cddb830SAndroid Build Coastguard Worker    &clGetPipeInfo_disp,
454*1cddb830SAndroid Build Coastguard Worker    &clSVMAlloc_disp,
455*1cddb830SAndroid Build Coastguard Worker    &clSVMFree_disp,
456*1cddb830SAndroid Build Coastguard Worker    &clEnqueueSVMFree_disp,
457*1cddb830SAndroid Build Coastguard Worker    &clEnqueueSVMMemcpy_disp,
458*1cddb830SAndroid Build Coastguard Worker    &clEnqueueSVMMemFill_disp,
459*1cddb830SAndroid Build Coastguard Worker    &clEnqueueSVMMap_disp,
460*1cddb830SAndroid Build Coastguard Worker    &clEnqueueSVMUnmap_disp,
461*1cddb830SAndroid Build Coastguard Worker    &clCreateSamplerWithProperties_disp,
462*1cddb830SAndroid Build Coastguard Worker    &clSetKernelArgSVMPointer_disp,
463*1cddb830SAndroid Build Coastguard Worker    &clSetKernelExecInfo_disp,
464*1cddb830SAndroid Build Coastguard Worker
465*1cddb830SAndroid Build Coastguard Worker  /* cl_khr_sub_groups */
466*1cddb830SAndroid Build Coastguard Worker    &clGetKernelSubGroupInfoKHR_disp,
467*1cddb830SAndroid Build Coastguard Worker
468*1cddb830SAndroid Build Coastguard Worker  /* OpenCL 2.1 */
469*1cddb830SAndroid Build Coastguard Worker    &clCloneKernel_disp,
470*1cddb830SAndroid Build Coastguard Worker    &clCreateProgramWithIL_disp,
471*1cddb830SAndroid Build Coastguard Worker    &clEnqueueSVMMigrateMem_disp,
472*1cddb830SAndroid Build Coastguard Worker    &clGetDeviceAndHostTimer_disp,
473*1cddb830SAndroid Build Coastguard Worker    &clGetHostTimer_disp,
474*1cddb830SAndroid Build Coastguard Worker    &clGetKernelSubGroupInfo_disp,
475*1cddb830SAndroid Build Coastguard Worker    &clSetDefaultDeviceCommandQueue_disp,
476*1cddb830SAndroid Build Coastguard Worker
477*1cddb830SAndroid Build Coastguard Worker  /* OpenCL 2.2 */
478*1cddb830SAndroid Build Coastguard Worker    &clSetProgramReleaseCallback_disp,
479*1cddb830SAndroid Build Coastguard Worker    &clSetProgramSpecializationConstant_disp,
480*1cddb830SAndroid Build Coastguard Worker
481*1cddb830SAndroid Build Coastguard Worker  /* OpenCL 3.0 */
482*1cddb830SAndroid Build Coastguard Worker    &clCreateBufferWithProperties_disp,
483*1cddb830SAndroid Build Coastguard Worker    &clCreateImageWithProperties_disp,
484*1cddb830SAndroid Build Coastguard Worker    &clSetContextDestructorCallback_disp
485*1cddb830SAndroid Build Coastguard Worker};
486*1cddb830SAndroid Build Coastguard Worker#endif // defined(CL_ENABLE_LAYERS)
487*1cddb830SAndroid Build Coastguard Worker#ifdef __cplusplus
488*1cddb830SAndroid Build Coastguard Worker}
489*1cddb830SAndroid Build Coastguard Worker#endif
490