1use crate::*;
4
5pub const CL_TARGET_OPENCL_VERSION: u32 = 120;
6pub const CL_VERSION_1_2: u32 = 1;
7pub const CL_VERSION_1_1: u32 = 1;
8pub const CL_VERSION_1_0: u32 = 1;
9pub const CL_CHAR_BIT: u32 = 8;
10pub const CL_SCHAR_MAX: u32 = 127;
11pub const CL_SCHAR_MIN: i32 = -128;
12pub const CL_CHAR_MAX: u32 = 127;
13pub const CL_CHAR_MIN: i32 = -128;
14pub const CL_UCHAR_MAX: u32 = 255;
15pub const CL_SHRT_MAX: u32 = 32767;
16pub const CL_SHRT_MIN: i32 = -32768;
17pub const CL_USHRT_MAX: u32 = 65535;
18pub const CL_INT_MAX: u32 = 2147483647;
19pub const CL_INT_MIN: i32 = -2147483648;
20pub const CL_UINT_MAX: u32 = 4294967295;
21pub const CL_FLT_DIG: u32 = 6;
22pub const CL_FLT_MANT_DIG: u32 = 24;
23pub const CL_FLT_MAX_10_EXP: u32 = 38;
24pub const CL_FLT_MAX_EXP: u32 = 128;
25pub const CL_FLT_MIN_10_EXP: i32 = -37;
26pub const CL_FLT_MIN_EXP: i32 = -125;
27pub const CL_FLT_RADIX: u32 = 2;
28pub const CL_FLT_MAX: f64 = 340282346638528860000000000000000000000.0;
29pub const CL_HALF_DIG: u32 = 3;
30pub const CL_HALF_MANT_DIG: u32 = 11;
31pub const CL_HALF_MAX_10_EXP: u32 = 4;
32pub const CL_HALF_MAX_EXP: u32 = 16;
33pub const CL_HALF_MIN_10_EXP: i32 = -4;
34pub const CL_HALF_MIN_EXP: i32 = -13;
35pub const CL_HALF_RADIX: u32 = 2;
36pub const CL_HALF_MAX: f64 = 65504.0;
37pub const CL_DBL_DIG: u32 = 15;
38pub const CL_DBL_MANT_DIG: u32 = 53;
39pub const CL_DBL_MAX_10_EXP: u32 = 308;
40pub const CL_DBL_MAX_EXP: u32 = 1024;
41pub const CL_DBL_MIN_10_EXP: i32 = -307;
42pub const CL_DBL_MIN_EXP: i32 = -1021;
43pub const CL_DBL_RADIX: u32 = 2;
44pub const CL_DBL_MAX : f64 = 179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0 ;
45pub const CL_M_E: f64 = 2.718281828459045;
46pub const CL_M_LOG2E: f64 = 1.4426950408889634;
47pub const CL_M_LOG10E: f64 = 0.4342944819032518;
48pub const CL_M_LN2: f64 = 0.6931471805599453;
49pub const CL_M_LN10: f64 = 2.302585092994046;
50pub const CL_M_PI: f64 = 3.141592653589793;
51pub const CL_M_PI_2: f64 = 1.5707963267948966;
52pub const CL_M_PI_4: f64 = 0.7853981633974483;
53pub const CL_M_1_PI: f64 = 0.3183098861837907;
54pub const CL_M_2_PI: f64 = 0.6366197723675814;
55pub const CL_M_2_SQRTPI: f64 = 1.1283791670955126;
56pub const CL_M_SQRT2: f64 = 1.4142135623730951;
57pub const CL_M_SQRT1_2: f64 = 0.7071067811865476;
58pub const CL_M_E_F: f64 = 2.718281828;
59pub const CL_M_LOG2E_F: f64 = 1.442695041;
60pub const CL_M_LOG10E_F: f64 = 0.434294482;
61pub const CL_M_LN2_F: f64 = 0.693147181;
62pub const CL_M_LN10_F: f64 = 2.302585093;
63pub const CL_M_PI_F: f64 = 3.141592654;
64pub const CL_M_PI_2_F: f64 = 1.570796327;
65pub const CL_M_PI_4_F: f64 = 0.785398163;
66pub const CL_M_1_PI_F: f64 = 0.318309886;
67pub const CL_M_2_PI_F: f64 = 0.636619772;
68pub const CL_M_2_SQRTPI_F: f64 = 1.128379167;
69pub const CL_M_SQRT2_F: f64 = 1.414213562;
70pub const CL_M_SQRT1_2_F: f64 = 0.707106781;
71pub const CL_MAXFLOAT: f64 = 340282346638528860000000000000000000000.0;
72pub const CL_HAS_NAMED_VECTOR_FIELDS: u32 = 1;
73pub const CL_HAS_HI_LO_VECTOR_FIELDS: u32 = 1;
74pub const CL_SUCCESS: u32 = 0;
75pub const CL_DEVICE_NOT_FOUND: i32 = -1;
76pub const CL_DEVICE_NOT_AVAILABLE: i32 = -2;
77pub const CL_COMPILER_NOT_AVAILABLE: i32 = -3;
78pub const CL_MEM_OBJECT_ALLOCATION_FAILURE: i32 = -4;
79pub const CL_OUT_OF_RESOURCES: i32 = -5;
80pub const CL_OUT_OF_HOST_MEMORY: i32 = -6;
81pub const CL_PROFILING_INFO_NOT_AVAILABLE: i32 = -7;
82pub const CL_MEM_COPY_OVERLAP: i32 = -8;
83pub const CL_IMAGE_FORMAT_MISMATCH: i32 = -9;
84pub const CL_IMAGE_FORMAT_NOT_SUPPORTED: i32 = -10;
85pub const CL_BUILD_PROGRAM_FAILURE: i32 = -11;
86pub const CL_MAP_FAILURE: i32 = -12;
87pub const CL_MISALIGNED_SUB_BUFFER_OFFSET: i32 = -13;
88pub const CL_EXEC_STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST: i32 = -14;
89pub const CL_COMPILE_PROGRAM_FAILURE: i32 = -15;
90pub const CL_LINKER_NOT_AVAILABLE: i32 = -16;
91pub const CL_LINK_PROGRAM_FAILURE: i32 = -17;
92pub const CL_DEVICE_PARTITION_FAILED: i32 = -18;
93pub const CL_KERNEL_ARG_INFO_NOT_AVAILABLE: i32 = -19;
94pub const CL_INVALID_VALUE: i32 = -30;
95pub const CL_INVALID_DEVICE_TYPE: i32 = -31;
96pub const CL_INVALID_PLATFORM: i32 = -32;
97pub const CL_INVALID_DEVICE: i32 = -33;
98pub const CL_INVALID_CONTEXT: i32 = -34;
99pub const CL_INVALID_QUEUE_PROPERTIES: i32 = -35;
100pub const CL_INVALID_COMMAND_QUEUE: i32 = -36;
101pub const CL_INVALID_HOST_PTR: i32 = -37;
102pub const CL_INVALID_MEM_OBJECT: i32 = -38;
103pub const CL_INVALID_IMAGE_FORMAT_DESCRIPTOR: i32 = -39;
104pub const CL_INVALID_IMAGE_SIZE: i32 = -40;
105pub const CL_INVALID_SAMPLER: i32 = -41;
106pub const CL_INVALID_BINARY: i32 = -42;
107pub const CL_INVALID_BUILD_OPTIONS: i32 = -43;
108pub const CL_INVALID_PROGRAM: i32 = -44;
109pub const CL_INVALID_PROGRAM_EXECUTABLE: i32 = -45;
110pub const CL_INVALID_KERNEL_NAME: i32 = -46;
111pub const CL_INVALID_KERNEL_DEFINITION: i32 = -47;
112pub const CL_INVALID_KERNEL: i32 = -48;
113pub const CL_INVALID_ARG_INDEX: i32 = -49;
114pub const CL_INVALID_ARG_VALUE: i32 = -50;
115pub const CL_INVALID_ARG_SIZE: i32 = -51;
116pub const CL_INVALID_KERNEL_ARGS: i32 = -52;
117pub const CL_INVALID_WORK_DIMENSION: i32 = -53;
118pub const CL_INVALID_WORK_GROUP_SIZE: i32 = -54;
119pub const CL_INVALID_WORK_ITEM_SIZE: i32 = -55;
120pub const CL_INVALID_GLOBAL_OFFSET: i32 = -56;
121pub const CL_INVALID_EVENT_WAIT_LIST: i32 = -57;
122pub const CL_INVALID_EVENT: i32 = -58;
123pub const CL_INVALID_OPERATION: i32 = -59;
124pub const CL_INVALID_GL_OBJECT: i32 = -60;
125pub const CL_INVALID_BUFFER_SIZE: i32 = -61;
126pub const CL_INVALID_MIP_LEVEL: i32 = -62;
127pub const CL_INVALID_GLOBAL_WORK_SIZE: i32 = -63;
128pub const CL_INVALID_PROPERTY: i32 = -64;
129pub const CL_INVALID_IMAGE_DESCRIPTOR: i32 = -65;
130pub const CL_INVALID_COMPILER_OPTIONS: i32 = -66;
131pub const CL_INVALID_LINKER_OPTIONS: i32 = -67;
132pub const CL_INVALID_DEVICE_PARTITION_COUNT: i32 = -68;
133pub const CL_FALSE: u32 = 0;
134pub const CL_TRUE: u32 = 1;
135pub const CL_BLOCKING: u32 = 1;
136pub const CL_NON_BLOCKING: u32 = 0;
137pub const CL_PLATFORM_PROFILE: u32 = 2304;
138pub const CL_PLATFORM_VERSION: u32 = 2305;
139pub const CL_PLATFORM_NAME: u32 = 2306;
140pub const CL_PLATFORM_VENDOR: u32 = 2307;
141pub const CL_PLATFORM_EXTENSIONS: u32 = 2308;
142pub const CL_DEVICE_TYPE_DEFAULT: u32 = 1;
143pub const CL_DEVICE_TYPE_CPU: u32 = 2;
144pub const CL_DEVICE_TYPE_GPU: u32 = 4;
145pub const CL_DEVICE_TYPE_ACCELERATOR: u32 = 8;
146pub const CL_DEVICE_TYPE_CUSTOM: u32 = 16;
147pub const CL_DEVICE_TYPE_ALL: u32 = 4294967295;
148pub const CL_DEVICE_TYPE: u32 = 4096;
149pub const CL_DEVICE_VENDOR_ID: u32 = 4097;
150pub const CL_DEVICE_MAX_COMPUTE_UNITS: u32 = 4098;
151pub const CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS: u32 = 4099;
152pub const CL_DEVICE_MAX_WORK_GROUP_SIZE: u32 = 4100;
153pub const CL_DEVICE_MAX_WORK_ITEM_SIZES: u32 = 4101;
154pub const CL_DEVICE_PREFERRED_VECTOR_WIDTH_CHAR: u32 = 4102;
155pub const CL_DEVICE_PREFERRED_VECTOR_WIDTH_SHORT: u32 = 4103;
156pub const CL_DEVICE_PREFERRED_VECTOR_WIDTH_INT: u32 = 4104;
157pub const CL_DEVICE_PREFERRED_VECTOR_WIDTH_LONG: u32 = 4105;
158pub const CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT: u32 = 4106;
159pub const CL_DEVICE_PREFERRED_VECTOR_WIDTH_DOUBLE: u32 = 4107;
160pub const CL_DEVICE_MAX_CLOCK_FREQUENCY: u32 = 4108;
161pub const CL_DEVICE_ADDRESS_BITS: u32 = 4109;
162pub const CL_DEVICE_MAX_READ_IMAGE_ARGS: u32 = 4110;
163pub const CL_DEVICE_MAX_WRITE_IMAGE_ARGS: u32 = 4111;
164pub const CL_DEVICE_MAX_MEM_ALLOC_SIZE: u32 = 4112;
165pub const CL_DEVICE_IMAGE2D_MAX_WIDTH: u32 = 4113;
166pub const CL_DEVICE_IMAGE2D_MAX_HEIGHT: u32 = 4114;
167pub const CL_DEVICE_IMAGE3D_MAX_WIDTH: u32 = 4115;
168pub const CL_DEVICE_IMAGE3D_MAX_HEIGHT: u32 = 4116;
169pub const CL_DEVICE_IMAGE3D_MAX_DEPTH: u32 = 4117;
170pub const CL_DEVICE_IMAGE_SUPPORT: u32 = 4118;
171pub const CL_DEVICE_MAX_PARAMETER_SIZE: u32 = 4119;
172pub const CL_DEVICE_MAX_SAMPLERS: u32 = 4120;
173pub const CL_DEVICE_MEM_BASE_ADDR_ALIGN: u32 = 4121;
174pub const CL_DEVICE_MIN_DATA_TYPE_ALIGN_SIZE: u32 = 4122;
175pub const CL_DEVICE_SINGLE_FP_CONFIG: u32 = 4123;
176pub const CL_DEVICE_GLOBAL_MEM_CACHE_TYPE: u32 = 4124;
177pub const CL_DEVICE_GLOBAL_MEM_CACHELINE_SIZE: u32 = 4125;
178pub const CL_DEVICE_GLOBAL_MEM_CACHE_SIZE: u32 = 4126;
179pub const CL_DEVICE_GLOBAL_MEM_SIZE: u32 = 4127;
180pub const CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE: u32 = 4128;
181pub const CL_DEVICE_MAX_CONSTANT_ARGS: u32 = 4129;
182pub const CL_DEVICE_LOCAL_MEM_TYPE: u32 = 4130;
183pub const CL_DEVICE_LOCAL_MEM_SIZE: u32 = 4131;
184pub const CL_DEVICE_ERROR_CORRECTION_SUPPORT: u32 = 4132;
185pub const CL_DEVICE_PROFILING_TIMER_RESOLUTION: u32 = 4133;
186pub const CL_DEVICE_ENDIAN_LITTLE: u32 = 4134;
187pub const CL_DEVICE_AVAILABLE: u32 = 4135;
188pub const CL_DEVICE_COMPILER_AVAILABLE: u32 = 4136;
189pub const CL_DEVICE_EXECUTION_CAPABILITIES: u32 = 4137;
190pub const CL_DEVICE_QUEUE_PROPERTIES: u32 = 4138;
191pub const CL_DEVICE_NAME: u32 = 4139;
192pub const CL_DEVICE_VENDOR: u32 = 4140;
193pub const CL_DRIVER_VERSION: u32 = 4141;
194pub const CL_DEVICE_PROFILE: u32 = 4142;
195pub const CL_DEVICE_VERSION: u32 = 4143;
196pub const CL_DEVICE_EXTENSIONS: u32 = 4144;
197pub const CL_DEVICE_PLATFORM: u32 = 4145;
198pub const CL_DEVICE_DOUBLE_FP_CONFIG: u32 = 4146;
199pub const CL_DEVICE_PREFERRED_VECTOR_WIDTH_HALF: u32 = 4148;
200pub const CL_DEVICE_HOST_UNIFIED_MEMORY: u32 = 4149;
201pub const CL_DEVICE_NATIVE_VECTOR_WIDTH_CHAR: u32 = 4150;
202pub const CL_DEVICE_NATIVE_VECTOR_WIDTH_SHORT: u32 = 4151;
203pub const CL_DEVICE_NATIVE_VECTOR_WIDTH_INT: u32 = 4152;
204pub const CL_DEVICE_NATIVE_VECTOR_WIDTH_LONG: u32 = 4153;
205pub const CL_DEVICE_NATIVE_VECTOR_WIDTH_FLOAT: u32 = 4154;
206pub const CL_DEVICE_NATIVE_VECTOR_WIDTH_DOUBLE: u32 = 4155;
207pub const CL_DEVICE_NATIVE_VECTOR_WIDTH_HALF: u32 = 4156;
208pub const CL_DEVICE_OPENCL_C_VERSION: u32 = 4157;
209pub const CL_DEVICE_LINKER_AVAILABLE: u32 = 4158;
210pub const CL_DEVICE_BUILT_IN_KERNELS: u32 = 4159;
211pub const CL_DEVICE_IMAGE_MAX_BUFFER_SIZE: u32 = 4160;
212pub const CL_DEVICE_IMAGE_MAX_ARRAY_SIZE: u32 = 4161;
213pub const CL_DEVICE_PARENT_DEVICE: u32 = 4162;
214pub const CL_DEVICE_PARTITION_MAX_SUB_DEVICES: u32 = 4163;
215pub const CL_DEVICE_PARTITION_PROPERTIES: u32 = 4164;
216pub const CL_DEVICE_PARTITION_AFFINITY_DOMAIN: u32 = 4165;
217pub const CL_DEVICE_PARTITION_TYPE: u32 = 4166;
218pub const CL_DEVICE_REFERENCE_COUNT: u32 = 4167;
219pub const CL_DEVICE_PREFERRED_INTEROP_USER_SYNC: u32 = 4168;
220pub const CL_DEVICE_PRINTF_BUFFER_SIZE: u32 = 4169;
221pub const CL_FP_DENORM: u32 = 1;
222pub const CL_FP_INF_NAN: u32 = 2;
223pub const CL_FP_ROUND_TO_NEAREST: u32 = 4;
224pub const CL_FP_ROUND_TO_ZERO: u32 = 8;
225pub const CL_FP_ROUND_TO_INF: u32 = 16;
226pub const CL_FP_FMA: u32 = 32;
227pub const CL_FP_SOFT_FLOAT: u32 = 64;
228pub const CL_FP_CORRECTLY_ROUNDED_DIVIDE_SQRT: u32 = 128;
229pub const CL_NONE: u32 = 0;
230pub const CL_READ_ONLY_CACHE: u32 = 1;
231pub const CL_READ_WRITE_CACHE: u32 = 2;
232pub const CL_LOCAL: u32 = 1;
233pub const CL_GLOBAL: u32 = 2;
234pub const CL_EXEC_KERNEL: u32 = 1;
235pub const CL_EXEC_NATIVE_KERNEL: u32 = 2;
236pub const CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE: u32 = 1;
237pub const CL_QUEUE_PROFILING_ENABLE: u32 = 2;
238pub const CL_CONTEXT_REFERENCE_COUNT: u32 = 4224;
239pub const CL_CONTEXT_DEVICES: u32 = 4225;
240pub const CL_CONTEXT_PROPERTIES: u32 = 4226;
241pub const CL_CONTEXT_NUM_DEVICES: u32 = 4227;
242pub const CL_CONTEXT_PLATFORM: u32 = 4228;
243pub const CL_CONTEXT_INTEROP_USER_SYNC: u32 = 4229;
244pub const CL_DEVICE_PARTITION_EQUALLY: u32 = 4230;
245pub const CL_DEVICE_PARTITION_BY_COUNTS: u32 = 4231;
246pub const CL_DEVICE_PARTITION_BY_COUNTS_LIST_END: u32 = 0;
247pub const CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN: u32 = 4232;
248pub const CL_DEVICE_AFFINITY_DOMAIN_NUMA: u32 = 1;
249pub const CL_DEVICE_AFFINITY_DOMAIN_L4_CACHE: u32 = 2;
250pub const CL_DEVICE_AFFINITY_DOMAIN_L3_CACHE: u32 = 4;
251pub const CL_DEVICE_AFFINITY_DOMAIN_L2_CACHE: u32 = 8;
252pub const CL_DEVICE_AFFINITY_DOMAIN_L1_CACHE: u32 = 16;
253pub const CL_DEVICE_AFFINITY_DOMAIN_NEXT_PARTITIONABLE: u32 = 32;
254pub const CL_QUEUE_CONTEXT: u32 = 4240;
255pub const CL_QUEUE_DEVICE: u32 = 4241;
256pub const CL_QUEUE_REFERENCE_COUNT: u32 = 4242;
257pub const CL_QUEUE_PROPERTIES: u32 = 4243;
258pub const CL_MEM_READ_WRITE: u32 = 1;
259pub const CL_MEM_WRITE_ONLY: u32 = 2;
260pub const CL_MEM_READ_ONLY: u32 = 4;
261pub const CL_MEM_USE_HOST_PTR: u32 = 8;
262pub const CL_MEM_ALLOC_HOST_PTR: u32 = 16;
263pub const CL_MEM_COPY_HOST_PTR: u32 = 32;
264pub const CL_MEM_HOST_WRITE_ONLY: u32 = 128;
265pub const CL_MEM_HOST_READ_ONLY: u32 = 256;
266pub const CL_MEM_HOST_NO_ACCESS: u32 = 512;
267pub const CL_MIGRATE_MEM_OBJECT_HOST: u32 = 1;
268pub const CL_MIGRATE_MEM_OBJECT_CONTENT_UNDEFINED: u32 = 2;
269pub const CL_R: u32 = 4272;
270pub const CL_A: u32 = 4273;
271pub const CL_RG: u32 = 4274;
272pub const CL_RA: u32 = 4275;
273pub const CL_RGB: u32 = 4276;
274pub const CL_RGBA: u32 = 4277;
275pub const CL_BGRA: u32 = 4278;
276pub const CL_ARGB: u32 = 4279;
277pub const CL_INTENSITY: u32 = 4280;
278pub const CL_LUMINANCE: u32 = 4281;
279pub const CL_Rx: u32 = 4282;
280pub const CL_RGx: u32 = 4283;
281pub const CL_RGBx: u32 = 4284;
282pub const CL_SNORM_INT8: u32 = 4304;
283pub const CL_SNORM_INT16: u32 = 4305;
284pub const CL_UNORM_INT8: u32 = 4306;
285pub const CL_UNORM_INT16: u32 = 4307;
286pub const CL_UNORM_SHORT_565: u32 = 4308;
287pub const CL_UNORM_SHORT_555: u32 = 4309;
288pub const CL_UNORM_INT_101010: u32 = 4310;
289pub const CL_SIGNED_INT8: u32 = 4311;
290pub const CL_SIGNED_INT16: u32 = 4312;
291pub const CL_SIGNED_INT32: u32 = 4313;
292pub const CL_UNSIGNED_INT8: u32 = 4314;
293pub const CL_UNSIGNED_INT16: u32 = 4315;
294pub const CL_UNSIGNED_INT32: u32 = 4316;
295pub const CL_HALF_FLOAT: u32 = 4317;
296pub const CL_FLOAT: u32 = 4318;
297pub const CL_MEM_OBJECT_BUFFER: u32 = 4336;
298pub const CL_MEM_OBJECT_IMAGE2D: u32 = 4337;
299pub const CL_MEM_OBJECT_IMAGE3D: u32 = 4338;
300pub const CL_MEM_OBJECT_IMAGE2D_ARRAY: u32 = 4339;
301pub const CL_MEM_OBJECT_IMAGE1D: u32 = 4340;
302pub const CL_MEM_OBJECT_IMAGE1D_ARRAY: u32 = 4341;
303pub const CL_MEM_OBJECT_IMAGE1D_BUFFER: u32 = 4342;
304pub const CL_MEM_TYPE: u32 = 4352;
305pub const CL_MEM_FLAGS: u32 = 4353;
306pub const CL_MEM_SIZE: u32 = 4354;
307pub const CL_MEM_HOST_PTR: u32 = 4355;
308pub const CL_MEM_MAP_COUNT: u32 = 4356;
309pub const CL_MEM_REFERENCE_COUNT: u32 = 4357;
310pub const CL_MEM_CONTEXT: u32 = 4358;
311pub const CL_MEM_ASSOCIATED_MEMOBJECT: u32 = 4359;
312pub const CL_MEM_OFFSET: u32 = 4360;
313pub const CL_IMAGE_FORMAT: u32 = 4368;
314pub const CL_IMAGE_ELEMENT_SIZE: u32 = 4369;
315pub const CL_IMAGE_ROW_PITCH: u32 = 4370;
316pub const CL_IMAGE_SLICE_PITCH: u32 = 4371;
317pub const CL_IMAGE_WIDTH: u32 = 4372;
318pub const CL_IMAGE_HEIGHT: u32 = 4373;
319pub const CL_IMAGE_DEPTH: u32 = 4374;
320pub const CL_IMAGE_ARRAY_SIZE: u32 = 4375;
321pub const CL_IMAGE_BUFFER: u32 = 4376;
322pub const CL_IMAGE_NUM_MIP_LEVELS: u32 = 4377;
323pub const CL_IMAGE_NUM_SAMPLES: u32 = 4378;
324pub const CL_ADDRESS_NONE: u32 = 4400;
325pub const CL_ADDRESS_CLAMP_TO_EDGE: u32 = 4401;
326pub const CL_ADDRESS_CLAMP: u32 = 4402;
327pub const CL_ADDRESS_REPEAT: u32 = 4403;
328pub const CL_ADDRESS_MIRRORED_REPEAT: u32 = 4404;
329pub const CL_FILTER_NEAREST: u32 = 4416;
330pub const CL_FILTER_LINEAR: u32 = 4417;
331pub const CL_SAMPLER_REFERENCE_COUNT: u32 = 4432;
332pub const CL_SAMPLER_CONTEXT: u32 = 4433;
333pub const CL_SAMPLER_NORMALIZED_COORDS: u32 = 4434;
334pub const CL_SAMPLER_ADDRESSING_MODE: u32 = 4435;
335pub const CL_SAMPLER_FILTER_MODE: u32 = 4436;
336pub const CL_MAP_READ: u32 = 1;
337pub const CL_MAP_WRITE: u32 = 2;
338pub const CL_MAP_WRITE_INVALIDATE_REGION: u32 = 4;
339pub const CL_PROGRAM_REFERENCE_COUNT: u32 = 4448;
340pub const CL_PROGRAM_CONTEXT: u32 = 4449;
341pub const CL_PROGRAM_NUM_DEVICES: u32 = 4450;
342pub const CL_PROGRAM_DEVICES: u32 = 4451;
343pub const CL_PROGRAM_SOURCE: u32 = 4452;
344pub const CL_PROGRAM_BINARY_SIZES: u32 = 4453;
345pub const CL_PROGRAM_BINARIES: u32 = 4454;
346pub const CL_PROGRAM_NUM_KERNELS: u32 = 4455;
347pub const CL_PROGRAM_KERNEL_NAMES: u32 = 4456;
348pub const CL_PROGRAM_BUILD_STATUS: u32 = 4481;
349pub const CL_PROGRAM_BUILD_OPTIONS: u32 = 4482;
350pub const CL_PROGRAM_BUILD_LOG: u32 = 4483;
351pub const CL_PROGRAM_BINARY_TYPE: u32 = 4484;
352pub const CL_PROGRAM_BINARY_TYPE_NONE: u32 = 0;
353pub const CL_PROGRAM_BINARY_TYPE_COMPILED_OBJECT: u32 = 1;
354pub const CL_PROGRAM_BINARY_TYPE_LIBRARY: u32 = 2;
355pub const CL_PROGRAM_BINARY_TYPE_EXECUTABLE: u32 = 4;
356pub const CL_BUILD_SUCCESS: u32 = 0;
357pub const CL_BUILD_NONE: i32 = -1;
358pub const CL_BUILD_ERROR: i32 = -2;
359pub const CL_BUILD_IN_PROGRESS: i32 = -3;
360pub const CL_KERNEL_FUNCTION_NAME: u32 = 4496;
361pub const CL_KERNEL_NUM_ARGS: u32 = 4497;
362pub const CL_KERNEL_REFERENCE_COUNT: u32 = 4498;
363pub const CL_KERNEL_CONTEXT: u32 = 4499;
364pub const CL_KERNEL_PROGRAM: u32 = 4500;
365pub const CL_KERNEL_ATTRIBUTES: u32 = 4501;
366pub const CL_KERNEL_ARG_ADDRESS_QUALIFIER: u32 = 4502;
367pub const CL_KERNEL_ARG_ACCESS_QUALIFIER: u32 = 4503;
368pub const CL_KERNEL_ARG_TYPE_NAME: u32 = 4504;
369pub const CL_KERNEL_ARG_TYPE_QUALIFIER: u32 = 4505;
370pub const CL_KERNEL_ARG_NAME: u32 = 4506;
371pub const CL_KERNEL_ARG_ADDRESS_GLOBAL: u32 = 4507;
372pub const CL_KERNEL_ARG_ADDRESS_LOCAL: u32 = 4508;
373pub const CL_KERNEL_ARG_ADDRESS_CONSTANT: u32 = 4509;
374pub const CL_KERNEL_ARG_ADDRESS_PRIVATE: u32 = 4510;
375pub const CL_KERNEL_ARG_ACCESS_READ_ONLY: u32 = 4512;
376pub const CL_KERNEL_ARG_ACCESS_WRITE_ONLY: u32 = 4513;
377pub const CL_KERNEL_ARG_ACCESS_READ_WRITE: u32 = 4514;
378pub const CL_KERNEL_ARG_ACCESS_NONE: u32 = 4515;
379pub const CL_KERNEL_ARG_TYPE_NONE: u32 = 0;
380pub const CL_KERNEL_ARG_TYPE_CONST: u32 = 1;
381pub const CL_KERNEL_ARG_TYPE_RESTRICT: u32 = 2;
382pub const CL_KERNEL_ARG_TYPE_VOLATILE: u32 = 4;
383pub const CL_KERNEL_WORK_GROUP_SIZE: u32 = 4528;
384pub const CL_KERNEL_COMPILE_WORK_GROUP_SIZE: u32 = 4529;
385pub const CL_KERNEL_LOCAL_MEM_SIZE: u32 = 4530;
386pub const CL_KERNEL_PREFERRED_WORK_GROUP_SIZE_MULTIPLE: u32 = 4531;
387pub const CL_KERNEL_PRIVATE_MEM_SIZE: u32 = 4532;
388pub const CL_KERNEL_GLOBAL_WORK_SIZE: u32 = 4533;
389pub const CL_EVENT_COMMAND_QUEUE: u32 = 4560;
390pub const CL_EVENT_COMMAND_TYPE: u32 = 4561;
391pub const CL_EVENT_REFERENCE_COUNT: u32 = 4562;
392pub const CL_EVENT_COMMAND_EXECUTION_STATUS: u32 = 4563;
393pub const CL_EVENT_CONTEXT: u32 = 4564;
394pub const CL_COMMAND_NDRANGE_KERNEL: u32 = 4592;
395pub const CL_COMMAND_TASK: u32 = 4593;
396pub const CL_COMMAND_NATIVE_KERNEL: u32 = 4594;
397pub const CL_COMMAND_READ_BUFFER: u32 = 4595;
398pub const CL_COMMAND_WRITE_BUFFER: u32 = 4596;
399pub const CL_COMMAND_COPY_BUFFER: u32 = 4597;
400pub const CL_COMMAND_READ_IMAGE: u32 = 4598;
401pub const CL_COMMAND_WRITE_IMAGE: u32 = 4599;
402pub const CL_COMMAND_COPY_IMAGE: u32 = 4600;
403pub const CL_COMMAND_COPY_IMAGE_TO_BUFFER: u32 = 4601;
404pub const CL_COMMAND_COPY_BUFFER_TO_IMAGE: u32 = 4602;
405pub const CL_COMMAND_MAP_BUFFER: u32 = 4603;
406pub const CL_COMMAND_MAP_IMAGE: u32 = 4604;
407pub const CL_COMMAND_UNMAP_MEM_OBJECT: u32 = 4605;
408pub const CL_COMMAND_MARKER: u32 = 4606;
409pub const CL_COMMAND_ACQUIRE_GL_OBJECTS: u32 = 4607;
410pub const CL_COMMAND_RELEASE_GL_OBJECTS: u32 = 4608;
411pub const CL_COMMAND_READ_BUFFER_RECT: u32 = 4609;
412pub const CL_COMMAND_WRITE_BUFFER_RECT: u32 = 4610;
413pub const CL_COMMAND_COPY_BUFFER_RECT: u32 = 4611;
414pub const CL_COMMAND_USER: u32 = 4612;
415pub const CL_COMMAND_BARRIER: u32 = 4613;
416pub const CL_COMMAND_MIGRATE_MEM_OBJECTS: u32 = 4614;
417pub const CL_COMMAND_FILL_BUFFER: u32 = 4615;
418pub const CL_COMMAND_FILL_IMAGE: u32 = 4616;
419pub const CL_COMPLETE: u32 = 0;
420pub const CL_RUNNING: u32 = 1;
421pub const CL_SUBMITTED: u32 = 2;
422pub const CL_QUEUED: u32 = 3;
423pub const CL_BUFFER_CREATE_TYPE_REGION: u32 = 4640;
424pub const CL_PROFILING_COMMAND_QUEUED: u32 = 4736;
425pub const CL_PROFILING_COMMAND_SUBMIT: u32 = 4737;
426pub const CL_PROFILING_COMMAND_START: u32 = 4738;
427pub const CL_PROFILING_COMMAND_END: u32 = 4739;
428pub const CL_KHRONOS_VENDOR_ID_CODEPLAY: u32 = 65540;
429pub mod dnnl_ocl_interop_memory_kind_t {
430 #[doc = " Memory allocation kind."]
431 pub type Type = ::std::os::raw::c_uint;
432 #[doc = " USM (device, shared, host, or unknown) memory allocation kind."]
433 pub const dnnl_ocl_interop_usm: Type = 0;
434 #[doc = " Buffer memory allocation kind - default."]
435 pub const dnnl_ocl_interop_buffer: Type = 1;
436}
437pub type cl_int = i32;
438pub type cl_uint = u32;
439pub type cl_ulong = u64;
440#[repr(C)]
441#[derive(Debug, Copy, Clone)]
442pub struct _cl_platform_id {
443 _unused: [u8; 0],
444}
445pub type cl_platform_id = *mut _cl_platform_id;
446#[repr(C)]
447#[derive(Debug, Copy, Clone)]
448pub struct _cl_device_id {
449 _unused: [u8; 0],
450}
451pub type cl_device_id = *mut _cl_device_id;
452#[repr(C)]
453#[derive(Debug, Copy, Clone)]
454pub struct _cl_context {
455 _unused: [u8; 0],
456}
457pub type cl_context = *mut _cl_context;
458#[repr(C)]
459#[derive(Debug, Copy, Clone)]
460pub struct _cl_command_queue {
461 _unused: [u8; 0],
462}
463pub type cl_command_queue = *mut _cl_command_queue;
464#[repr(C)]
465#[derive(Debug, Copy, Clone)]
466pub struct _cl_mem {
467 _unused: [u8; 0],
468}
469pub type cl_mem = *mut _cl_mem;
470#[repr(C)]
471#[derive(Debug, Copy, Clone)]
472pub struct _cl_event {
473 _unused: [u8; 0],
474}
475pub type cl_event = *mut _cl_event;
476pub type cl_bool = cl_uint;
477pub type cl_bitfield = cl_ulong;
478pub type cl_device_type = cl_bitfield;
479pub type cl_platform_info = cl_uint;
480pub type cl_device_info = cl_uint;
481pub type cl_command_queue_properties = cl_bitfield;
482pub type cl_context_properties = isize;
483pub type cl_channel_order = cl_uint;
484pub type cl_channel_type = cl_uint;
485pub type cl_mem_flags = cl_bitfield;
486pub type cl_buffer_create_type = cl_uint;
487pub type cl_map_flags = cl_bitfield;
488#[repr(C)]
489#[derive(Debug, Copy, Clone)]
490pub struct _cl_image_format {
491 pub image_channel_order: cl_channel_order,
492 pub image_channel_data_type: cl_channel_type,
493}
494#[allow(clippy::unnecessary_operation, clippy::identity_op)]
495const _: () = {
496 ["Size of _cl_image_format"][::std::mem::size_of::<_cl_image_format>() - 8usize];
497 ["Alignment of _cl_image_format"][::std::mem::align_of::<_cl_image_format>() - 4usize];
498 ["Offset of field: _cl_image_format::image_channel_order"]
499 [::std::mem::offset_of!(_cl_image_format, image_channel_order) - 0usize];
500 ["Offset of field: _cl_image_format::image_channel_data_type"]
501 [::std::mem::offset_of!(_cl_image_format, image_channel_data_type) - 4usize];
502};
503pub type cl_image_format = _cl_image_format;
504unsafe extern "C" {
505 pub fn clGetPlatformIDs(
506 num_entries: cl_uint,
507 platforms: *mut cl_platform_id,
508 num_platforms: *mut cl_uint,
509 ) -> cl_int;
510}
511unsafe extern "C" {
512 pub fn clGetPlatformInfo(
513 platform: cl_platform_id,
514 param_name: cl_platform_info,
515 param_value_size: usize,
516 param_value: *mut ::std::os::raw::c_void,
517 param_value_size_ret: *mut usize,
518 ) -> cl_int;
519}
520unsafe extern "C" {
521 pub fn clGetDeviceIDs(
522 platform: cl_platform_id,
523 device_type: cl_device_type,
524 num_entries: cl_uint,
525 devices: *mut cl_device_id,
526 num_devices: *mut cl_uint,
527 ) -> cl_int;
528}
529unsafe extern "C" {
530 pub fn clGetDeviceInfo(
531 device: cl_device_id,
532 param_name: cl_device_info,
533 param_value_size: usize,
534 param_value: *mut ::std::os::raw::c_void,
535 param_value_size_ret: *mut usize,
536 ) -> cl_int;
537}
538unsafe extern "C" {
539 pub fn clCreateContext(
540 properties: *const cl_context_properties,
541 num_devices: cl_uint,
542 devices: *const cl_device_id,
543 pfn_notify: ::std::option::Option<
544 unsafe extern "C" fn(
545 errinfo: *const ::std::os::raw::c_char,
546 private_info: *const ::std::os::raw::c_void,
547 cb: usize,
548 user_data: *mut ::std::os::raw::c_void,
549 ),
550 >,
551 user_data: *mut ::std::os::raw::c_void,
552 errcode_ret: *mut cl_int,
553 ) -> cl_context;
554}
555unsafe extern "C" {
556 pub fn clRetainContext(context: cl_context) -> cl_int;
557}
558unsafe extern "C" {
559 pub fn clReleaseContext(context: cl_context) -> cl_int;
560}
561unsafe extern "C" {
562 pub fn clRetainCommandQueue(command_queue: cl_command_queue) -> cl_int;
563}
564unsafe extern "C" {
565 pub fn clReleaseCommandQueue(command_queue: cl_command_queue) -> cl_int;
566}
567unsafe extern "C" {
568 pub fn clCreateBuffer(
569 context: cl_context,
570 flags: cl_mem_flags,
571 size: usize,
572 host_ptr: *mut ::std::os::raw::c_void,
573 errcode_ret: *mut cl_int,
574 ) -> cl_mem;
575}
576unsafe extern "C" {
577 pub fn clCreateSubBuffer(
578 buffer: cl_mem,
579 flags: cl_mem_flags,
580 buffer_create_type: cl_buffer_create_type,
581 buffer_create_info: *const ::std::os::raw::c_void,
582 errcode_ret: *mut cl_int,
583 ) -> cl_mem;
584}
585unsafe extern "C" {
586 pub fn clEnqueueReadBuffer(
587 command_queue: cl_command_queue,
588 buffer: cl_mem,
589 blocking_read: cl_bool,
590 offset: usize,
591 size: usize,
592 ptr: *mut ::std::os::raw::c_void,
593 num_events_in_wait_list: cl_uint,
594 event_wait_list: *const cl_event,
595 event: *mut cl_event,
596 ) -> cl_int;
597}
598unsafe extern "C" {
599 pub fn clEnqueueWriteBuffer(
600 command_queue: cl_command_queue,
601 buffer: cl_mem,
602 blocking_write: cl_bool,
603 offset: usize,
604 size: usize,
605 ptr: *const ::std::os::raw::c_void,
606 num_events_in_wait_list: cl_uint,
607 event_wait_list: *const cl_event,
608 event: *mut cl_event,
609 ) -> cl_int;
610}
611unsafe extern "C" {
612 pub fn clEnqueueFillBuffer(
613 command_queue: cl_command_queue,
614 buffer: cl_mem,
615 pattern: *const ::std::os::raw::c_void,
616 pattern_size: usize,
617 offset: usize,
618 size: usize,
619 num_events_in_wait_list: cl_uint,
620 event_wait_list: *const cl_event,
621 event: *mut cl_event,
622 ) -> cl_int;
623}
624unsafe extern "C" {
625 pub fn clEnqueueCopyBuffer(
626 command_queue: cl_command_queue,
627 src_buffer: cl_mem,
628 dst_buffer: cl_mem,
629 src_offset: usize,
630 dst_offset: usize,
631 size: usize,
632 num_events_in_wait_list: cl_uint,
633 event_wait_list: *const cl_event,
634 event: *mut cl_event,
635 ) -> cl_int;
636}
637unsafe extern "C" {
638 pub fn clEnqueueCopyImageToBuffer(
639 command_queue: cl_command_queue,
640 src_image: cl_mem,
641 dst_buffer: cl_mem,
642 src_origin: *const usize,
643 region: *const usize,
644 dst_offset: usize,
645 num_events_in_wait_list: cl_uint,
646 event_wait_list: *const cl_event,
647 event: *mut cl_event,
648 ) -> cl_int;
649}
650unsafe extern "C" {
651 pub fn clEnqueueMapBuffer(
652 command_queue: cl_command_queue,
653 buffer: cl_mem,
654 blocking_map: cl_bool,
655 map_flags: cl_map_flags,
656 offset: usize,
657 size: usize,
658 num_events_in_wait_list: cl_uint,
659 event_wait_list: *const cl_event,
660 event: *mut cl_event,
661 errcode_ret: *mut cl_int,
662 ) -> *mut ::std::os::raw::c_void;
663}
664unsafe extern "C" {
665 pub fn clCreateImage2D(
666 context: cl_context,
667 flags: cl_mem_flags,
668 image_format: *const cl_image_format,
669 image_width: usize,
670 image_height: usize,
671 image_row_pitch: usize,
672 host_ptr: *mut ::std::os::raw::c_void,
673 errcode_ret: *mut cl_int,
674 ) -> cl_mem;
675}
676unsafe extern "C" {
677 pub fn clCreateImage3D(
678 context: cl_context,
679 flags: cl_mem_flags,
680 image_format: *const cl_image_format,
681 image_width: usize,
682 image_height: usize,
683 image_depth: usize,
684 image_row_pitch: usize,
685 image_slice_pitch: usize,
686 host_ptr: *mut ::std::os::raw::c_void,
687 errcode_ret: *mut cl_int,
688 ) -> cl_mem;
689}
690unsafe extern "C" {
691 pub fn clCreateCommandQueue(
692 context: cl_context,
693 device: cl_device_id,
694 properties: cl_command_queue_properties,
695 errcode_ret: *mut cl_int,
696 ) -> cl_command_queue;
697}
698unsafe extern "C" {
699 #[doc = " Creates a memory object.\n\n Unless @p handle is equal to DNNL_MEMORY_NONE or DNNL_MEMORY_ALLOCATE, the\n constructed memory object will have the underlying buffer set. In this\n case, the buffer will be initialized as if:\n - dnnl_memory_set_data_handle() has been called, if @p memory_kind is equal\n to dnnl_ocl_interop_usm, or\n - dnnl_ocl_interop_memory_set_mem_object() has been called, if @p memory_kind\n is equal to dnnl_ocl_interop_buffer.\n\n @param memory Output memory object.\n @param memory_desc Memory descriptor.\n @param engine Engine to use.\n @param memory_kind Memory allocation kind to specify the type of handle.\n @param handle Handle of the memory buffer to use as an underlying storage.\n - A USM pointer to the user-allocated buffer. In this case the library\n doesn't own the buffer. Requires @p memory_kind to be equal to\n dnnl_ocl_interop_usm.\n - An OpenCL buffer. In this case the library doesn't own the buffer.\n Requires @p memory_kind be equal to be equal to dnnl_ocl_interop_buffer.\n - The DNNL_MEMORY_ALLOCATE special value. Instructs the library to\n allocate the buffer that corresponds to the memory allocation kind\n @p memory_kind for the memory object. In this case the library\n owns the buffer.\n - The DNNL_MEMORY_NONE specific value. Instructs the library to\n create memory object without an underlying buffer.\n @returns #dnnl_success on success and a status describing the error\n otherwise."]
700 pub fn dnnl_ocl_interop_memory_create(
701 memory: *mut dnnl_memory_t,
702 memory_desc: const_dnnl_memory_desc_t,
703 engine: dnnl_engine_t,
704 memory_kind: dnnl_ocl_interop_memory_kind_t::Type,
705 handle: *mut ::std::os::raw::c_void,
706 ) -> dnnl_status_t::Type;
707}
708unsafe extern "C" {
709 #[doc = " Returns the memory allocation kind associated with a memory object.\n\n @param memory Memory to query.\n @param memory_kind Output underlying memory allocation kind of the memory\n object.\n @returns #dnnl_success on success and a status describing the error\n otherwise."]
710 pub fn dnnl_ocl_interop_memory_get_memory_kind(
711 memory: const_dnnl_memory_t,
712 memory_kind: *mut dnnl_ocl_interop_memory_kind_t::Type,
713 ) -> dnnl_status_t::Type;
714}
715unsafe extern "C" {
716 #[doc = " Returns an OpenCL memory object associated with a memory object.\n\n @param memory Memory object.\n @param mem_object Output OpenCL memory object.\n @returns #dnnl_success on success and a status describing the error\n otherwise."]
717 pub fn dnnl_ocl_interop_memory_get_mem_object(
718 memory: const_dnnl_memory_t,
719 mem_object: *mut cl_mem,
720 ) -> dnnl_status_t::Type;
721}
722unsafe extern "C" {
723 #[doc = " Sets OpenCL memory object associated with a memory object.\n\n For behavioral details, see dnnl_memory_set_data_handle().\n\n @param memory Memory object.\n @param mem_object OpenCL memory object.\n @returns #dnnl_success on success and a status describing the error\n otherwise."]
724 pub fn dnnl_ocl_interop_memory_set_mem_object(
725 memory: dnnl_memory_t,
726 mem_object: cl_mem,
727 ) -> dnnl_status_t::Type;
728}
729unsafe extern "C" {
730 #[doc = " Retrieves a cache blob ID for the OpenCL device.\n\n @warning\n This API is intended to be used with\n #dnnl_ocl_interop_engine_get_cache_blob() and\n #dnnl_ocl_interop_engine_create_from_cache_blob(). The returned cache\n blob ID can only be used as an ID of the cache blob returned by\n #dnnl_ocl_interop_engine_get_cache_blob().\n\n @note The cache blob ID can be empty (@p size will be 0 and\n @p cache_blob_id will be nullptr) if oneDNN doesn't have anything to\n put in the cache blob. (#dnnl_ocl_interop_engine_get_cache_blob will\n return an empty cache blob).\n\n @param device An OpenCL device.\n @param size Size of the cache blob ID in bytes.\n @param cache_blob_id Cache blob id of size @p size. If\n the @p cache_blob_id is nullptr then the size of the cache blob ID is\n returned in @p size.\n @returns #dnnl_success on success and a status describing the error\n otherwise."]
731 pub fn dnnl_ocl_interop_engine_get_cache_blob_id(
732 device: cl_device_id,
733 size: *mut usize,
734 cache_blob_id: *mut u8,
735 ) -> dnnl_status_t::Type;
736}
737unsafe extern "C" {
738 #[doc = " Retrieves a cache blob associated with the given engine.\n\n @note The cache blob can be empty (@p size will be 0 and @p cache_blob\n will be nullptr) if oneDNN doesn't have anything to put in the cache\n blob. It's the user's responsibility to check whether it's empty\n prior to passing it to\n #dnnl_ocl_interop_engine_create_from_cache_blob().\n\n @param engine Engine to query for the cache blob.\n @param size Size of the cache blob in bytes.\n @param cache_blob Cache blob of size @p size. If the @p cache_blob is\n nullptr then the size of the cache blob is returned in @p size.\n @returns #dnnl_success on success and a status describing the error\n otherwise."]
739 pub fn dnnl_ocl_interop_engine_get_cache_blob(
740 engine: dnnl_engine_t,
741 size: *mut usize,
742 cache_blob: *mut u8,
743 ) -> dnnl_status_t::Type;
744}
745unsafe extern "C" {
746 #[doc = " Creates an engine from the given cache blob.\n\n @param engine Output engine.\n @param device The OpenCL device that this engine will encapsulate.\n @param context The OpenCL context (containing the device) that this\n engine will use for all operations.\n @param size Size of the cache blob in bytes.\n @param cache_blob Cache blob of size @p size.\n @returns #dnnl_success on success and a status describing the error\n otherwise."]
747 pub fn dnnl_ocl_interop_engine_create_from_cache_blob(
748 engine: *mut dnnl_engine_t,
749 device: cl_device_id,
750 context: cl_context,
751 size: usize,
752 cache_blob: *const u8,
753 ) -> dnnl_status_t::Type;
754}
755unsafe extern "C" {
756 #[doc = " Creates an engine associated with an OpenCL device and an OpenCL context.\n\n @param engine Output engine.\n @param device Underlying OpenCL device to use for the engine.\n @param context Underlying OpenCL context to use for the engine.\n @returns #dnnl_success on success and a status describing the error\n otherwise."]
757 pub fn dnnl_ocl_interop_engine_create(
758 engine: *mut dnnl_engine_t,
759 device: cl_device_id,
760 context: cl_context,
761 ) -> dnnl_status_t::Type;
762}
763unsafe extern "C" {
764 #[doc = " Returns the OpenCL context associated with an engine.\n\n @param engine Engine to query.\n @param context Output underlying OpenCL context of the engine.\n @returns #dnnl_success on success and a status describing the error\n otherwise."]
765 pub fn dnnl_ocl_interop_engine_get_context(
766 engine: dnnl_engine_t,
767 context: *mut cl_context,
768 ) -> dnnl_status_t::Type;
769}
770unsafe extern "C" {
771 #[doc = " Returns the OpenCL device associated with an engine.\n\n @param engine Engine to query.\n @param device Output underlying OpenCL device of the engine.\n @returns #dnnl_success on success and a status describing the error\n otherwise."]
772 pub fn dnnl_ocl_interop_get_device(
773 engine: dnnl_engine_t,
774 device: *mut cl_device_id,
775 ) -> dnnl_status_t::Type;
776}
777unsafe extern "C" {
778 #[doc = " Creates an execution stream for a given engine associated with\n an OpenCL command queue.\n\n @param stream Output execution stream.\n @param engine Engine to create the execution stream on.\n @param queue OpenCL command queue to use.\n @returns #dnnl_success on success and a status describing the error\n otherwise."]
779 pub fn dnnl_ocl_interop_stream_create(
780 stream: *mut dnnl_stream_t,
781 engine: dnnl_engine_t,
782 queue: cl_command_queue,
783 ) -> dnnl_status_t::Type;
784}
785unsafe extern "C" {
786 #[doc = " Returns the OpenCL command queue associated with an execution stream.\n\n @param stream Execution stream to query.\n @param queue Output OpenCL command queue.\n @returns #dnnl_success on success and a status describing the error\n otherwise."]
787 pub fn dnnl_ocl_interop_stream_get_command_queue(
788 stream: dnnl_stream_t,
789 queue: *mut cl_command_queue,
790 ) -> dnnl_status_t::Type;
791}
792unsafe extern "C" {
793 #[doc = " Executes computations specified by the primitive in a specified stream and\n returns an OpenCL event.\n\n @param primitive Primitive to execute.\n @param stream Stream to use.\n @param nargs Number of arguments.\n @param args Array of arguments. Each argument is an\n <index, #dnnl_memory_t> pair. The index is one of the `DNNL_ARG_*`\n values such as `DNNL_ARG_SRC`. Unless runtime shapes are used (see\n #DNNL_RUNTIME_DIM_VAL), the memory object must have the same memory\n descriptor as that returned by\n #dnnl_primitive_desc_query_md(#dnnl_query_exec_arg_md, index).\n @param deps A pointer to a vector of size @p ndeps that contains\n dependencies.\n @param ndeps Number of dependencies.\n @param return_event Output event. It's the user's responsibility to\n manage lifetime of the event. Can be NULL. When @p stream is in-order\n NULL will be returned.\n @returns #dnnl_success on success and a status describing the error\n otherwise."]
794 pub fn dnnl_ocl_interop_primitive_execute(
795 primitive: const_dnnl_primitive_t,
796 stream: dnnl_stream_t,
797 nargs: ::std::os::raw::c_int,
798 args: *const dnnl_exec_arg_t,
799 deps: *const cl_event,
800 ndeps: ::std::os::raw::c_int,
801 return_event: *mut cl_event,
802 ) -> dnnl_status_t::Type;
803}