Skip to content

Commit 3e9d2e7

Browse files
committed
minor updates for pfn_ function pointer typedef generation
1 parent 0815413 commit 3e9d2e7

4 files changed

Lines changed: 47 additions & 29 deletions

File tree

CL/cl_layer.h

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -52,20 +52,27 @@ clGetLayerInfo_fn)(
5252
void* param_value,
5353
size_t* param_value_size_ret) ;
5454

55-
typedef cl_int (CL_API_CALL *
56-
pfn_clGetLayerInfo)(
57-
size_t param_value_size,
58-
cl_layer_info param_name,
59-
void* param_value,
60-
size_t* param_value_size_ret) ;
61-
6255
typedef cl_int (CL_API_CALL *
6356
clInitLayer_fn)(
6457
cl_uint num_entries,
6558
const cl_icd_dispatch* target_dispatch,
6659
cl_uint* num_entries_ret,
6760
const cl_icd_dispatch** layer_dispatch) ;
6861

62+
/*
63+
** The function pointer typedefs prefixed with "pfn_" are provided for
64+
** compatibility with earlier versions of the headers. New code is
65+
** encouraged to use the function pointer typedefs that are suffixed with
66+
** "_fn" instead, for consistency.
67+
*/
68+
69+
typedef cl_int (CL_API_CALL *
70+
pfn_clGetLayerInfo)(
71+
size_t param_value_size,
72+
cl_layer_info param_name,
73+
void* param_value,
74+
size_t* param_value_size_ret) ;
75+
6976
typedef cl_int (CL_API_CALL *
7077
pfn_clInitLayer)(
7178
cl_uint num_entries,

CMakeLists.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ endif()
6767

6868
if(CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME)
6969
find_package(Python3 COMPONENTS Interpreter)
70-
set(OPENCL_HEADERS_XML_PATH CACHE FILEPATH "Path to cl.xml for OpenCL Extension Loader genereration")
70+
set(OPENCL_HEADERS_XML_PATH CACHE FILEPATH "Path to cl.xml for OpenCL Header genereration")
7171
set(OPENCL_HEADERS_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/generated)
7272
add_custom_target(headers_generate
7373
COMMAND ${CMAKE_COMMAND} -E make_directory ${OPENCL_HEADERS_OUTPUT_DIRECTORY}
@@ -96,10 +96,10 @@ if(CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME)
9696
${OPENCL_HEADERS_OUTPUT_DIRECTORY}/cl_gl.h
9797
${CMAKE_CURRENT_SOURCE_DIR}/CL
9898
COMMAND ${CMAKE_COMMAND} -E copy
99-
${OPENCL_HEADERS_OUTPUT_DIRECTORY}/cl_va_api_media_sharing_intel.h
99+
${OPENCL_HEADERS_OUTPUT_DIRECTORY}/cl_layer.h
100100
${CMAKE_CURRENT_SOURCE_DIR}/CL
101101
COMMAND ${CMAKE_COMMAND} -E copy
102-
${OPENCL_HEADERS_OUTPUT_DIRECTORY}/cl_layer.h
102+
${OPENCL_HEADERS_OUTPUT_DIRECTORY}/cl_va_api_media_sharing_intel.h
103103
${CMAKE_CURRENT_SOURCE_DIR}/CL
104104
)
105105
set_target_properties(headers_generate PROPERTIES FOLDER "Generation")

scripts/cl_ext.h.mako

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -198,8 +198,19 @@ ${api.Name}_fn)(
198198
${paramStr}) ${api.Suffix};
199199
% endif
200200
% endfor
201-
% if prefix_pointer_gen:
201+
% endfor
202+
% if generate_pfn_typedefs:
202203

204+
/*
205+
** The function pointer typedefs prefixed with "pfn_" are provided for
206+
** compatibility with earlier versions of the headers. New code is
207+
** encouraged to use the function pointer typedefs that are suffixed with
208+
** "_fn" instead, for consistency.
209+
*/
210+
% for func in block.findall('command'):
211+
<%
212+
api = apisigs[func.get('name')]
213+
%>
203214
typedef ${api.RetType} (CL_API_CALL *
204215
pfn_${api.Name})(
205216
% for i, paramStr in enumerate(getCParameterStrings(api.Params)):
@@ -209,8 +220,8 @@ pfn_${api.Name})(
209220
${paramStr}) ${api.Suffix};
210221
% endif
211222
% endfor
212-
% endif
213-
% endfor
223+
% endfor
224+
% endif
214225

215226
#ifndef CL_NO_PROTOTYPES
216227
% for func in block.findall('command'):

scripts/gen_headers.py

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -72,15 +72,15 @@ def getWin32OnlyIncludeString(include):
7272
},
7373
guard="OPENCL_CL_DX9_MEDIA_SHARING_H_",
7474
includes=getWin32OnlyIncludeString("#include <d3d9.h>"),
75+
generate_pfn_typedefs=False,
7576
spec=spec,
7677
typedefs=typedefs,
7778
macros=macros,
7879
structs=structs,
7980
enums=enums,
8081
apisigs=apisigs,
8182
coreapis=coreapis,
82-
extapis=extapis,
83-
prefix_pointer_gen=False).
83+
extapis=extapis).
8484
encode('utf-8', 'replace'))
8585

8686
print('Generating cl_d3d10.h...')
@@ -93,15 +93,15 @@ def getWin32OnlyIncludeString(include):
9393
},
9494
guard="OPENCL_CL_D3D10_H_",
9595
includes=getDisableWarningIncludeString("#include <d3d10.h>"),
96+
generate_pfn_typedefs=False,
9697
spec=spec,
9798
typedefs=typedefs,
9899
macros=macros,
99100
structs=structs,
100101
enums=enums,
101102
apisigs=apisigs,
102103
coreapis=coreapis,
103-
extapis=extapis,
104-
prefix_pointer_gen=False).
104+
extapis=extapis).
105105
encode('utf-8', 'replace'))
106106

107107
print('Generating cl_d3d11.h...')
@@ -114,15 +114,15 @@ def getWin32OnlyIncludeString(include):
114114
},
115115
guard="OPENCL_CL_D3D11_H_",
116116
includes=getDisableWarningIncludeString("#include <d3d11.h>"),
117+
generate_pfn_typedefs=False,
117118
spec=spec,
118119
typedefs=typedefs,
119120
macros=macros,
120121
structs=structs,
121122
enums=enums,
122123
apisigs=apisigs,
123124
coreapis=coreapis,
124-
extapis=extapis,
125-
prefix_pointer_gen=False).
125+
extapis=extapis).
126126
encode('utf-8', 'replace'))
127127

128128
print('Generating cl_egl.h...')
@@ -131,15 +131,15 @@ def getWin32OnlyIncludeString(include):
131131
cl_ext_h_template.render_unicode(
132132
genExtensions={'cl_khr_egl_event', 'cl_khr_egl_image'},
133133
guard="OPENCL_CL_EGL_H_",
134+
generate_pfn_typedefs=False,
134135
spec=spec,
135136
typedefs=typedefs,
136137
macros=macros,
137138
structs=structs,
138139
enums=enums,
139140
apisigs=apisigs,
140141
coreapis=coreapis,
141-
extapis=extapis,
142-
prefix_pointer_gen=False).
142+
extapis=extapis).
143143
encode('utf-8', 'replace'))
144144

145145
print('Generating cl_gl.h...')
@@ -154,15 +154,15 @@ def getWin32OnlyIncludeString(include):
154154
'cl_intel_sharing_format_query_gl',
155155
},
156156
guard="OPENCL_CL_GL_H_",
157+
generate_pfn_typedefs=False,
157158
spec=spec,
158159
typedefs=typedefs,
159160
macros=macros,
160161
structs=structs,
161162
enums=enums,
162163
apisigs=apisigs,
163164
coreapis=coreapis,
164-
extapis=extapis,
165-
prefix_pointer_gen=False).
165+
extapis=extapis).
166166
encode('utf-8', 'replace'))
167167

168168
print('Generating cl_layer.h...')
@@ -172,15 +172,15 @@ def getWin32OnlyIncludeString(include):
172172
genExtensions={'cl_loader_layers'},
173173
guard="OPENCL_CL_LAYER_H_",
174174
includes='#include <CL/cl_icd.h>',
175+
generate_pfn_typedefs=True,
175176
spec=spec,
176177
typedefs=typedefs,
177178
macros=macros,
178179
structs=structs,
179180
enums=enums,
180181
apisigs=apisigs,
181182
coreapis=coreapis,
182-
extapis=extapis,
183-
prefix_pointer_gen=True).
183+
extapis=extapis).
184184
encode('utf-8', 'replace'))
185185

186186
print('Generating cl_va_api_media_sharing_intel.h...')
@@ -193,15 +193,15 @@ def getWin32OnlyIncludeString(include):
193193
},
194194
guard="OPENCL_CL_VA_API_MEDIA_SHARING_INTEL_H_",
195195
includes='#include <va/va.h>',
196+
generate_pfn_typedefs=False,
196197
spec=spec,
197198
typedefs=typedefs,
198199
macros=macros,
199200
structs=structs,
200201
enums=enums,
201202
apisigs=apisigs,
202203
coreapis=coreapis,
203-
extapis=extapis,
204-
prefix_pointer_gen=False).
204+
extapis=extapis).
205205
encode('utf-8', 'replace'))
206206

207207
print('Generating cl_ext.h...')
@@ -210,15 +210,15 @@ def getWin32OnlyIncludeString(include):
210210
cl_ext_h_template.render_unicode(
211211
genExtensions={},
212212
guard="OPENCL_CL_EXT_H_",
213+
generate_pfn_typedefs=False,
213214
spec=spec,
214215
typedefs=typedefs,
215216
macros=macros,
216217
structs=structs,
217218
enums=enums,
218219
apisigs=apisigs,
219220
coreapis=coreapis,
220-
extapis=extapis,
221-
prefix_pointer_gen=False).
221+
extapis=extapis).
222222
encode('utf-8', 'replace'))
223223
except:
224224
traceback = RichTraceback()

0 commit comments

Comments
 (0)