opencl_dynamic_sys/constants/
mod.rs

1#![allow(non_upper_case_globals)]
2
3use crate::types::{
4    cl_addressing_mode, cl_bool, cl_buffer_create_type, cl_build_status, cl_channel_order,
5    cl_channel_type, cl_command_queue_info, cl_command_queue_properties, cl_command_type,
6    cl_context_info, cl_context_properties, cl_device_affinity_domain,
7    cl_device_atomic_capabilities, cl_device_device_enqueue_capabilities,
8    cl_device_exec_capabilities, cl_device_fp_config, cl_device_info, cl_device_local_mem_type,
9    cl_device_mem_cache_type, cl_device_partition_property, cl_device_svm_capabilities,
10    cl_device_type, cl_event_info, cl_filter_mode, cl_image_info, cl_kernel_arg_access_qualifier,
11    cl_kernel_arg_address_qualifier, cl_kernel_arg_info, cl_kernel_arg_type_qualifier,
12    cl_kernel_exec_info, cl_kernel_info, cl_kernel_sub_group_info, cl_kernel_work_group_info,
13    cl_khronos_vendor_id, cl_map_flags, cl_mem_flags, cl_mem_info, cl_mem_object_type,
14    cl_pipe_info, cl_platform::cl_int, cl_platform_info, cl_profiling_info, cl_program_binary_type,
15    cl_program_build_info, cl_program_info, cl_sampler_info, cl_svm_mem_flags, cl_version,
16};
17
18pub mod cl_d3d10;
19pub mod cl_d3d11;
20pub mod cl_dx9_media_sharing;
21pub mod cl_egl;
22pub mod cl_ext;
23pub mod cl_gl;
24pub mod cl_layer;
25
26pub const CL_NAME_VERSION_MAX_NAME_SIZE: usize = 64;
27
28// Error Codes:
29pub const CL_SUCCESS: cl_int = 0;
30pub const CL_DEVICE_NOT_FOUND: cl_int = -1;
31pub const CL_DEVICE_NOT_AVAILABLE: cl_int = -2;
32pub const CL_COMPILER_NOT_AVAILABLE: cl_int = -3;
33pub const CL_MEM_OBJECT_ALLOCATION_FAILURE: cl_int = -4;
34pub const CL_OUT_OF_RESOURCES: cl_int = -5;
35pub const CL_OUT_OF_HOST_MEMORY: cl_int = -6;
36pub const CL_PROFILING_INFO_NOT_AVAILABLE: cl_int = -7;
37pub const CL_MEM_COPY_OVERLAP: cl_int = -8;
38pub const CL_IMAGE_FORMAT_MISMATCH: cl_int = -9;
39pub const CL_IMAGE_FORMAT_NOT_SUPPORTED: cl_int = -10;
40pub const CL_BUILD_PROGRAM_FAILURE: cl_int = -11;
41pub const CL_MAP_FAILURE: cl_int = -12;
42pub const CL_MISALIGNED_SUB_BUFFER_OFFSET: cl_int = -13;
43pub const CL_EXEC_STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST: cl_int = -14;
44pub const CL_COMPILE_PROGRAM_FAILURE: cl_int = -15;
45pub const CL_LINKER_NOT_AVAILABLE: cl_int = -16;
46pub const CL_LINK_PROGRAM_FAILURE: cl_int = -17;
47pub const CL_DEVICE_PARTITION_FAILED: cl_int = -18;
48pub const CL_KERNEL_ARG_INFO_NOT_AVAILABLE: cl_int = -19;
49
50pub const CL_INVALID_VALUE: cl_int = -30;
51pub const CL_INVALID_DEVICE_TYPE: cl_int = -31;
52pub const CL_INVALID_PLATFORM: cl_int = -32;
53pub const CL_INVALID_DEVICE: cl_int = -33;
54pub const CL_INVALID_CONTEXT: cl_int = -34;
55pub const CL_INVALID_QUEUE_PROPERTIES: cl_int = -35;
56pub const CL_INVALID_COMMAND_QUEUE: cl_int = -36;
57pub const CL_INVALID_HOST_PTR: cl_int = -37;
58pub const CL_INVALID_MEM_OBJECT: cl_int = -38;
59pub const CL_INVALID_IMAGE_FORMAT_DESCRIPTOR: cl_int = -39;
60pub const CL_INVALID_IMAGE_SIZE: cl_int = -40;
61pub const CL_INVALID_SAMPLER: cl_int = -41;
62pub const CL_INVALID_BINARY: cl_int = -42;
63pub const CL_INVALID_BUILD_OPTIONS: cl_int = -43;
64pub const CL_INVALID_PROGRAM: cl_int = -44;
65pub const CL_INVALID_PROGRAM_EXECUTABLE: cl_int = -45;
66pub const CL_INVALID_KERNEL_NAME: cl_int = -46;
67pub const CL_INVALID_KERNEL_DEFINITION: cl_int = -47;
68pub const CL_INVALID_KERNEL: cl_int = -48;
69pub const CL_INVALID_ARG_INDEX: cl_int = -49;
70pub const CL_INVALID_ARG_VALUE: cl_int = -50;
71pub const CL_INVALID_ARG_SIZE: cl_int = -51;
72pub const CL_INVALID_KERNEL_ARGS: cl_int = -52;
73pub const CL_INVALID_WORK_DIMENSION: cl_int = -53;
74pub const CL_INVALID_WORK_GROUP_SIZE: cl_int = -54;
75pub const CL_INVALID_WORK_ITEM_SIZE: cl_int = -55;
76pub const CL_INVALID_GLOBAL_OFFSET: cl_int = -56;
77pub const CL_INVALID_EVENT_WAIT_LIST: cl_int = -57;
78pub const CL_INVALID_EVENT: cl_int = -58;
79pub const CL_INVALID_OPERATION: cl_int = -59;
80pub const CL_INVALID_GL_OBJECT: cl_int = -60;
81pub const CL_INVALID_BUFFER_SIZE: cl_int = -61;
82pub const CL_INVALID_MIP_LEVEL: cl_int = -62;
83pub const CL_INVALID_GLOBAL_WORK_SIZE: cl_int = -63;
84pub const CL_INVALID_PROPERTY: cl_int = -64;
85pub const CL_INVALID_IMAGE_DESCRIPTOR: cl_int = -65;
86pub const CL_INVALID_COMPILER_OPTIONS: cl_int = -66;
87pub const CL_INVALID_LINKER_OPTIONS: cl_int = -67;
88pub const CL_INVALID_DEVICE_PARTITION_COUNT: cl_int = -68;
89pub const CL_INVALID_PIPE_SIZE: cl_int = -69;
90pub const CL_INVALID_DEVICE_QUEUE: cl_int = -70;
91pub const CL_INVALID_SPEC_ID: cl_int = -71;
92pub const CL_MAX_SIZE_RESTRICTION_EXCEEDED: cl_int = -72;
93
94pub const CL_RUNTIME_LOAD_FAILED: cl_int = -2000;
95pub const CL_FUNCTION_NOT_AVAILABLE: cl_int = -2001;
96
97// cl_bool:
98pub const CL_FALSE: cl_bool = 0;
99pub const CL_TRUE: cl_bool = 1;
100pub const CL_BLOCKING: cl_bool = CL_TRUE;
101pub const CL_NON_BLOCKING: cl_bool = CL_FALSE;
102
103// cl_platform_info
104pub const CL_PLATFORM_PROFILE: cl_platform_info = 0x0900;
105pub const CL_PLATFORM_VERSION: cl_platform_info = 0x0901;
106pub const CL_PLATFORM_NAME: cl_platform_info = 0x0902;
107pub const CL_PLATFORM_VENDOR: cl_platform_info = 0x0903;
108pub const CL_PLATFORM_EXTENSIONS: cl_platform_info = 0x0904;
109pub const CL_PLATFORM_HOST_TIMER_RESOLUTION: cl_platform_info = 0x0905;
110pub const CL_PLATFORM_NUMERIC_VERSION: cl_platform_info = 0x0906;
111pub const CL_PLATFORM_EXTENSIONS_WITH_VERSION: cl_platform_info = 0x0907;
112
113// cl_device_type - bitfield:
114pub const CL_DEVICE_TYPE_DEFAULT: cl_device_type = 1 << 0;
115pub const CL_DEVICE_TYPE_CPU: cl_device_type = 1 << 1;
116pub const CL_DEVICE_TYPE_GPU: cl_device_type = 1 << 2;
117pub const CL_DEVICE_TYPE_ACCELERATOR: cl_device_type = 1 << 3;
118pub const CL_DEVICE_TYPE_CUSTOM: cl_device_type = 1 << 4;
119pub const CL_DEVICE_TYPE_ALL: cl_device_type = 0xFFFF_FFFF;
120
121// cl_device_info:
122pub const CL_DEVICE_TYPE: cl_device_info = 0x1000;
123pub const CL_DEVICE_VENDOR_ID: cl_device_info = 0x1001;
124pub const CL_DEVICE_MAX_COMPUTE_UNITS: cl_device_info = 0x1002;
125pub const CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS: cl_device_info = 0x1003;
126pub const CL_DEVICE_MAX_WORK_GROUP_SIZE: cl_device_info = 0x1004;
127pub const CL_DEVICE_MAX_WORK_ITEM_SIZES: cl_device_info = 0x1005;
128pub const CL_DEVICE_PREFERRED_VECTOR_WIDTH_CHAR: cl_device_info = 0x1006;
129pub const CL_DEVICE_PREFERRED_VECTOR_WIDTH_SHORT: cl_device_info = 0x1007;
130pub const CL_DEVICE_PREFERRED_VECTOR_WIDTH_INT: cl_device_info = 0x1008;
131pub const CL_DEVICE_PREFERRED_VECTOR_WIDTH_LONG: cl_device_info = 0x1009;
132pub const CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT: cl_device_info = 0x100A;
133pub const CL_DEVICE_PREFERRED_VECTOR_WIDTH_DOUBLE: cl_device_info = 0x100B;
134pub const CL_DEVICE_MAX_CLOCK_FREQUENCY: cl_device_info = 0x100C;
135pub const CL_DEVICE_ADDRESS_BITS: cl_device_info = 0x100D;
136pub const CL_DEVICE_MAX_READ_IMAGE_ARGS: cl_device_info = 0x100E;
137pub const CL_DEVICE_MAX_WRITE_IMAGE_ARGS: cl_device_info = 0x100F;
138pub const CL_DEVICE_MAX_MEM_ALLOC_SIZE: cl_device_info = 0x1010;
139pub const CL_DEVICE_IMAGE2D_MAX_WIDTH: cl_device_info = 0x1011;
140pub const CL_DEVICE_IMAGE2D_MAX_HEIGHT: cl_device_info = 0x1012;
141pub const CL_DEVICE_IMAGE3D_MAX_WIDTH: cl_device_info = 0x1013;
142pub const CL_DEVICE_IMAGE3D_MAX_HEIGHT: cl_device_info = 0x1014;
143pub const CL_DEVICE_IMAGE3D_MAX_DEPTH: cl_device_info = 0x1015;
144pub const CL_DEVICE_IMAGE_SUPPORT: cl_device_info = 0x1016;
145pub const CL_DEVICE_MAX_PARAMETER_SIZE: cl_device_info = 0x1017;
146pub const CL_DEVICE_MAX_SAMPLERS: cl_device_info = 0x1018;
147pub const CL_DEVICE_MEM_BASE_ADDR_ALIGN: cl_device_info = 0x1019;
148pub const CL_DEVICE_MIN_DATA_TYPE_ALIGN_SIZE: cl_device_info = 0x101A;
149pub const CL_DEVICE_SINGLE_FP_CONFIG: cl_device_info = 0x101B;
150pub const CL_DEVICE_GLOBAL_MEM_CACHE_TYPE: cl_device_info = 0x101C;
151pub const CL_DEVICE_GLOBAL_MEM_CACHELINE_SIZE: cl_device_info = 0x101D;
152pub const CL_DEVICE_GLOBAL_MEM_CACHE_SIZE: cl_device_info = 0x101E;
153pub const CL_DEVICE_GLOBAL_MEM_SIZE: cl_device_info = 0x101F;
154pub const CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE: cl_device_info = 0x1020;
155pub const CL_DEVICE_MAX_CONSTANT_ARGS: cl_device_info = 0x1021;
156pub const CL_DEVICE_LOCAL_MEM_TYPE: cl_device_info = 0x1022;
157pub const CL_DEVICE_LOCAL_MEM_SIZE: cl_device_info = 0x1023;
158pub const CL_DEVICE_ERROR_CORRECTION_SUPPORT: cl_device_info = 0x1024;
159pub const CL_DEVICE_PROFILING_TIMER_RESOLUTION: cl_device_info = 0x1025;
160pub const CL_DEVICE_ENDIAN_LITTLE: cl_device_info = 0x1026;
161pub const CL_DEVICE_AVAILABLE: cl_device_info = 0x1027;
162pub const CL_DEVICE_COMPILER_AVAILABLE: cl_device_info = 0x1028;
163pub const CL_DEVICE_EXECUTION_CAPABILITIES: cl_device_info = 0x1029;
164pub const CL_DEVICE_QUEUE_PROPERTIES: cl_device_info = 0x102A; // deprecated
165pub const CL_DEVICE_QUEUE_ON_HOST_PROPERTIES: cl_device_info = 0x102A;
166pub const CL_DEVICE_NAME: cl_device_info = 0x102B;
167pub const CL_DEVICE_VENDOR: cl_device_info = 0x102C;
168pub const CL_DRIVER_VERSION: cl_device_info = 0x102D;
169pub const CL_DEVICE_PROFILE: cl_device_info = 0x102E;
170pub const CL_DEVICE_VERSION: cl_device_info = 0x102F;
171pub const CL_DEVICE_EXTENSIONS: cl_device_info = 0x1030;
172pub const CL_DEVICE_PLATFORM: cl_device_info = 0x1031;
173pub const CL_DEVICE_PREFERRED_VECTOR_WIDTH_HALF: cl_device_info = 0x1034;
174pub const CL_DEVICE_HOST_UNIFIED_MEMORY: cl_device_info = 0x1035; // deprecated
175pub const CL_DEVICE_NATIVE_VECTOR_WIDTH_CHAR: cl_device_info = 0x1036;
176pub const CL_DEVICE_NATIVE_VECTOR_WIDTH_SHORT: cl_device_info = 0x1037;
177pub const CL_DEVICE_NATIVE_VECTOR_WIDTH_INT: cl_device_info = 0x1038;
178pub const CL_DEVICE_NATIVE_VECTOR_WIDTH_LONG: cl_device_info = 0x1039;
179pub const CL_DEVICE_NATIVE_VECTOR_WIDTH_FLOAT: cl_device_info = 0x103A;
180pub const CL_DEVICE_NATIVE_VECTOR_WIDTH_DOUBLE: cl_device_info = 0x103B;
181pub const CL_DEVICE_NATIVE_VECTOR_WIDTH_HALF: cl_device_info = 0x103C;
182pub const CL_DEVICE_OPENCL_C_VERSION: cl_device_info = 0x103D;
183pub const CL_DEVICE_LINKER_AVAILABLE: cl_device_info = 0x103E;
184pub const CL_DEVICE_BUILT_IN_KERNELS: cl_device_info = 0x103F;
185pub const CL_DEVICE_IMAGE_MAX_BUFFER_SIZE: cl_device_info = 0x1040;
186pub const CL_DEVICE_IMAGE_MAX_ARRAY_SIZE: cl_device_info = 0x1041;
187pub const CL_DEVICE_PARENT_DEVICE: cl_device_info = 0x1042;
188pub const CL_DEVICE_PARTITION_MAX_SUB_DEVICES: cl_device_info = 0x1043;
189pub const CL_DEVICE_PARTITION_PROPERTIES: cl_device_info = 0x1044;
190pub const CL_DEVICE_PARTITION_AFFINITY_DOMAIN: cl_device_info = 0x1045;
191pub const CL_DEVICE_PARTITION_TYPE: cl_device_info = 0x1046;
192pub const CL_DEVICE_REFERENCE_COUNT: cl_device_info = 0x1047;
193pub const CL_DEVICE_PREFERRED_INTEROP_USER_SYNC: cl_device_info = 0x1048;
194pub const CL_DEVICE_PRINTF_BUFFER_SIZE: cl_device_info = 0x1049;
195pub const CL_DEVICE_IMAGE_PITCH_ALIGNMENT: cl_device_info = 0x104A;
196pub const CL_DEVICE_IMAGE_BASE_ADDRESS_ALIGNMENT: cl_device_info = 0x104B;
197pub const CL_DEVICE_MAX_READ_WRITE_IMAGE_ARGS: cl_device_info = 0x104C;
198pub const CL_DEVICE_MAX_GLOBAL_VARIABLE_SIZE: cl_device_info = 0x104D;
199pub const CL_DEVICE_QUEUE_ON_DEVICE_PROPERTIES: cl_device_info = 0x104E;
200pub const CL_DEVICE_QUEUE_ON_DEVICE_PREFERRED_SIZE: cl_device_info = 0x104F;
201pub const CL_DEVICE_QUEUE_ON_DEVICE_MAX_SIZE: cl_device_info = 0x1050;
202pub const CL_DEVICE_MAX_ON_DEVICE_QUEUES: cl_device_info = 0x1051;
203pub const CL_DEVICE_MAX_ON_DEVICE_EVENTS: cl_device_info = 0x1052;
204pub const CL_DEVICE_SVM_CAPABILITIES: cl_device_info = 0x1053;
205pub const CL_DEVICE_GLOBAL_VARIABLE_PREFERRED_TOTAL_SIZE: cl_device_info = 0x1054;
206pub const CL_DEVICE_MAX_PIPE_ARGS: cl_device_info = 0x1055;
207pub const CL_DEVICE_PIPE_MAX_ACTIVE_RESERVATIONS: cl_device_info = 0x1056;
208pub const CL_DEVICE_PIPE_MAX_PACKET_SIZE: cl_device_info = 0x1057;
209pub const CL_DEVICE_PREFERRED_PLATFORM_ATOMIC_ALIGNMENT: cl_device_info = 0x1058;
210pub const CL_DEVICE_PREFERRED_GLOBAL_ATOMIC_ALIGNMENT: cl_device_info = 0x1059;
211pub const CL_DEVICE_PREFERRED_LOCAL_ATOMIC_ALIGNMENT: cl_device_info = 0x105A;
212pub const CL_DEVICE_IL_VERSION: cl_device_info = 0x105B;
213pub const CL_DEVICE_MAX_NUM_SUB_GROUPS: cl_device_info = 0x105C;
214pub const CL_DEVICE_SUB_GROUP_INDEPENDENT_FORWARD_PROGRESS: cl_device_info = 0x105D;
215pub const CL_DEVICE_NUMERIC_VERSION: cl_device_info = 0x105E;
216pub const CL_DEVICE_EXTENSIONS_WITH_VERSION: cl_device_info = 0x1060;
217pub const CL_DEVICE_ILS_WITH_VERSION: cl_device_info = 0x1061;
218pub const CL_DEVICE_BUILT_IN_KERNELS_WITH_VERSION: cl_device_info = 0x1062;
219pub const CL_DEVICE_ATOMIC_MEMORY_CAPABILITIES: cl_device_info = 0x1063;
220pub const CL_DEVICE_ATOMIC_FENCE_CAPABILITIES: cl_device_info = 0x1064;
221pub const CL_DEVICE_NON_UNIFORM_WORK_GROUP_SUPPORT: cl_device_info = 0x1065;
222pub const CL_DEVICE_OPENCL_C_ALL_VERSIONS: cl_device_info = 0x1066;
223pub const CL_DEVICE_PREFERRED_WORK_GROUP_SIZE_MULTIPLE: cl_device_info = 0x1067;
224pub const CL_DEVICE_WORK_GROUP_COLLECTIVE_FUNCTIONS_SUPPORT: cl_device_info = 0x1068;
225pub const CL_DEVICE_GENERIC_ADDRESS_SPACE_SUPPORT: cl_device_info = 0x1069;
226pub const CL_DEVICE_OPENCL_C_FEATURES: cl_device_info = 0x106F;
227pub const CL_DEVICE_DEVICE_ENQUEUE_CAPABILITIES: cl_device_info = 0x1070;
228pub const CL_DEVICE_PIPE_SUPPORT: cl_device_info = 0x1071;
229pub const CL_DEVICE_LATEST_CONFORMANCE_VERSION_PASSED: cl_device_info = 0x1072;
230
231// cl_device_fp_config - bitfield:
232pub const CL_FP_DENORM: cl_device_fp_config = 1 << 0;
233pub const CL_FP_INF_NAN: cl_device_fp_config = 1 << 1;
234pub const CL_FP_ROUND_TO_NEAREST: cl_device_fp_config = 1 << 2;
235pub const CL_FP_ROUND_TO_ZERO: cl_device_fp_config = 1 << 3;
236pub const CL_FP_ROUND_TO_INF: cl_device_fp_config = 1 << 4;
237pub const CL_FP_FMA: cl_device_fp_config = 1 << 5;
238pub const CL_FP_SOFT_FLOAT: cl_device_fp_config = 1 << 6;
239pub const CL_FP_CORRECTLY_ROUNDED_DIVIDE_SQRT: cl_device_fp_config = 1 << 7;
240
241// cl_device_mem_cache_type
242pub const CL_NONE: cl_device_mem_cache_type = 0x0;
243pub const CL_READ_ONLY_CACHE: cl_device_mem_cache_type = 0x1;
244pub const CL_READ_WRITE_CACHE: cl_device_mem_cache_type = 0x2;
245
246// cl_device_local_mem_type
247pub const CL_LOCAL: cl_device_local_mem_type = 0x1;
248pub const CL_GLOBAL: cl_device_local_mem_type = 0x2;
249
250// cl_device_exec_capabilities - bitfield:
251pub const CL_EXEC_KERNEL: cl_device_exec_capabilities = 1 << 0;
252pub const CL_EXEC_NATIVE_KERNEL: cl_device_exec_capabilities = 1 << 1;
253
254// cl_command_queue_properties - bitfield:
255pub const CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE: cl_command_queue_properties = 1 << 0;
256pub const CL_QUEUE_PROFILING_ENABLE: cl_command_queue_properties = 1 << 1;
257pub const CL_QUEUE_ON_DEVICE: cl_command_queue_properties = 1 << 2;
258pub const CL_QUEUE_ON_DEVICE_DEFAULT: cl_command_queue_properties = 1 << 3;
259
260// cl_context_info
261pub const CL_CONTEXT_REFERENCE_COUNT: cl_context_info = 0x1080;
262pub const CL_CONTEXT_DEVICES: cl_context_info = 0x1081;
263pub const CL_CONTEXT_PROPERTIES: cl_context_info = 0x1082;
264pub const CL_CONTEXT_NUM_DEVICES: cl_context_info = 0x1083;
265
266// cl_context_properties:
267pub const CL_CONTEXT_PLATFORM: cl_context_properties = 0x1084;
268pub const CL_CONTEXT_INTEROP_USER_SYNC: cl_context_properties = 0x1085;
269
270// cl_device_partition_property
271pub const CL_DEVICE_PARTITION_EQUALLY: cl_device_partition_property = 0x1086;
272pub const CL_DEVICE_PARTITION_BY_COUNTS: cl_device_partition_property = 0x1087;
273pub const CL_DEVICE_PARTITION_BY_COUNTS_LIST_END: cl_device_partition_property = 0x0;
274pub const CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN: cl_device_partition_property = 0x1088;
275
276// cl_device_affinity_domain
277pub const CL_DEVICE_AFFINITY_DOMAIN_NUMA: cl_device_affinity_domain = 1 << 0;
278pub const CL_DEVICE_AFFINITY_DOMAIN_L4_CACHE: cl_device_affinity_domain = 1 << 1;
279pub const CL_DEVICE_AFFINITY_DOMAIN_L3_CACHE: cl_device_affinity_domain = 1 << 2;
280pub const CL_DEVICE_AFFINITY_DOMAIN_L2_CACHE: cl_device_affinity_domain = 1 << 3;
281pub const CL_DEVICE_AFFINITY_DOMAIN_L1_CACHE: cl_device_affinity_domain = 1 << 4;
282pub const CL_DEVICE_AFFINITY_DOMAIN_NEXT_PARTITIONABLE: cl_device_affinity_domain = 1 << 5;
283
284// cl_device_svm_capabilities
285pub const CL_DEVICE_SVM_COARSE_GRAIN_BUFFER: cl_device_svm_capabilities = 1 << 0;
286pub const CL_DEVICE_SVM_FINE_GRAIN_BUFFER: cl_device_svm_capabilities = 1 << 1;
287pub const CL_DEVICE_SVM_FINE_GRAIN_SYSTEM: cl_device_svm_capabilities = 1 << 2;
288pub const CL_DEVICE_SVM_ATOMICS: cl_device_svm_capabilities = 1 << 3;
289
290// cl_command_queue_info
291pub const CL_QUEUE_CONTEXT: cl_command_queue_info = 0x1090;
292pub const CL_QUEUE_DEVICE: cl_command_queue_info = 0x1091;
293pub const CL_QUEUE_REFERENCE_COUNT: cl_command_queue_info = 0x1092;
294pub const CL_QUEUE_PROPERTIES: cl_command_queue_info = 0x1093;
295pub const CL_QUEUE_SIZE: cl_command_queue_info = 0x1094;
296pub const CL_QUEUE_DEVICE_DEFAULT: cl_command_queue_info = 0x1095;
297pub const CL_QUEUE_PROPERTIES_ARRAY: cl_command_queue_info = 0x1098;
298
299// cl_mem_flags and cl_svm_mem_flags - bitfield
300pub const CL_MEM_READ_WRITE: cl_mem_flags = 1 << 0;
301pub const CL_MEM_WRITE_ONLY: cl_mem_flags = 1 << 1;
302pub const CL_MEM_READ_ONLY: cl_mem_flags = 1 << 2;
303pub const CL_MEM_USE_HOST_PTR: cl_mem_flags = 1 << 3;
304pub const CL_MEM_ALLOC_HOST_PTR: cl_mem_flags = 1 << 4;
305pub const CL_MEM_COPY_HOST_PTR: cl_mem_flags = 1 << 5;
306pub const CL_MEM_HOST_WRITE_ONLY: cl_mem_flags = 1 << 7;
307pub const CL_MEM_HOST_READ_ONLY: cl_mem_flags = 1 << 8;
308pub const CL_MEM_HOST_NO_ACCESS: cl_mem_flags = 1 << 9;
309pub const CL_MEM_SVM_FINE_GRAIN_BUFFER: cl_svm_mem_flags = 1 << 10; // used by cl_svm_mem_flags only
310pub const CL_MEM_SVM_ATOMICS: cl_svm_mem_flags = 1 << 11; // used by cl_svm_mem_flags only
311pub const CL_MEM_KERNEL_READ_AND_WRITE: cl_svm_mem_flags = 1 << 12;
312
313// cl_mem_migration_flags - bitfield:
314pub const CL_MIGRATE_MEM_OBJECT_HOST: cl_svm_mem_flags = 1 << 0;
315pub const CL_MIGRATE_MEM_OBJECT_CONTENT_UNDEFINED: cl_svm_mem_flags = 1 << 1;
316
317// cl_channel_order
318pub const CL_R: cl_channel_order = 0x10B0;
319pub const CL_A: cl_channel_order = 0x10B1;
320pub const CL_RG: cl_channel_order = 0x10B2;
321pub const CL_RA: cl_channel_order = 0x10B3;
322pub const CL_RGB: cl_channel_order = 0x10B4;
323pub const CL_RGBA: cl_channel_order = 0x10B5;
324pub const CL_BGRA: cl_channel_order = 0x10B6;
325pub const CL_ARGB: cl_channel_order = 0x10B7;
326pub const CL_INTENSITY: cl_channel_order = 0x10B8;
327pub const CL_LUMINANCE: cl_channel_order = 0x10B9;
328pub const CL_Rx: cl_channel_order = 0x10BA;
329pub const CL_RGx: cl_channel_order = 0x10BB;
330pub const CL_RGBx: cl_channel_order = 0x10BC;
331pub const CL_DEPTH: cl_channel_order = 0x10BD;
332pub const CL_sRGB: cl_channel_order = 0x10BF;
333pub const CL_sRGBx: cl_channel_order = 0x10C0;
334pub const CL_sRGBA: cl_channel_order = 0x10C1;
335pub const CL_sBGRA: cl_channel_order = 0x10C2;
336pub const CL_ABGR: cl_channel_order = 0x10C3;
337
338// cl_channel_type
339pub const CL_SNORM_INT8: cl_channel_type = 0x10D0;
340pub const CL_SNORM_INT16: cl_channel_type = 0x10D1;
341pub const CL_UNORM_INT8: cl_channel_type = 0x10D2;
342pub const CL_UNORM_INT16: cl_channel_type = 0x10D3;
343pub const CL_UNORM_SHORT_565: cl_channel_type = 0x10D4;
344pub const CL_UNORM_SHORT_555: cl_channel_type = 0x10D5;
345pub const CL_UNORM_INT_101010: cl_channel_type = 0x10D6;
346pub const CL_SIGNED_INT8: cl_channel_type = 0x10D7;
347pub const CL_SIGNED_INT16: cl_channel_type = 0x10D8;
348pub const CL_SIGNED_INT32: cl_channel_type = 0x10D9;
349pub const CL_UNSIGNED_INT8: cl_channel_type = 0x10DA;
350pub const CL_UNSIGNED_INT16: cl_channel_type = 0x10DB;
351pub const CL_UNSIGNED_INT32: cl_channel_type = 0x10DC;
352pub const CL_HALF_FLOAT: cl_channel_type = 0x10DD;
353pub const CL_FLOAT: cl_channel_type = 0x10DE;
354pub const CL_UNORM_INT_101010_2: cl_channel_type = 0x10E0;
355
356// cl_mem_object_type
357pub const CL_MEM_OBJECT_BUFFER: cl_mem_object_type = 0x10F0;
358pub const CL_MEM_OBJECT_IMAGE2D: cl_mem_object_type = 0x10F1;
359pub const CL_MEM_OBJECT_IMAGE3D: cl_mem_object_type = 0x10F2;
360pub const CL_MEM_OBJECT_IMAGE2D_ARRAY: cl_mem_object_type = 0x10F3;
361pub const CL_MEM_OBJECT_IMAGE1D: cl_mem_object_type = 0x10F4;
362pub const CL_MEM_OBJECT_IMAGE1D_ARRAY: cl_mem_object_type = 0x10F5;
363pub const CL_MEM_OBJECT_IMAGE1D_BUFFER: cl_mem_object_type = 0x10F6;
364pub const CL_MEM_OBJECT_PIPE: cl_mem_object_type = 0x10F7;
365
366// cl_mem_info:
367pub const CL_MEM_TYPE: cl_mem_info = 0x1100;
368pub const CL_MEM_FLAGS: cl_mem_info = 0x1101;
369pub const CL_MEM_SIZE: cl_mem_info = 0x1102;
370pub const CL_MEM_HOST_PTR: cl_mem_info = 0x1103;
371pub const CL_MEM_MAP_COUNT: cl_mem_info = 0x1104;
372pub const CL_MEM_REFERENCE_COUNT: cl_mem_info = 0x1105;
373pub const CL_MEM_CONTEXT: cl_mem_info = 0x1106;
374pub const CL_MEM_ASSOCIATED_MEMOBJECT: cl_mem_info = 0x1107;
375pub const CL_MEM_OFFSET: cl_mem_info = 0x1108;
376pub const CL_MEM_USES_SVM_POINTER: cl_mem_info = 0x1109;
377pub const CL_MEM_PROPERTIES: cl_mem_info = 0x110A;
378
379// cl_image_info
380pub const CL_IMAGE_FORMAT: cl_image_info = 0x1110;
381pub const CL_IMAGE_ELEMENT_SIZE: cl_image_info = 0x1111;
382pub const CL_IMAGE_ROW_PITCH: cl_image_info = 0x1112;
383pub const CL_IMAGE_SLICE_PITCH: cl_image_info = 0x1113;
384pub const CL_IMAGE_WIDTH: cl_image_info = 0x1114;
385pub const CL_IMAGE_HEIGHT: cl_image_info = 0x1115;
386pub const CL_IMAGE_DEPTH: cl_image_info = 0x1116;
387pub const CL_IMAGE_ARRAY_SIZE: cl_image_info = 0x1117;
388pub const CL_IMAGE_BUFFER: cl_image_info = 0x1118;
389pub const CL_IMAGE_NUM_MIP_LEVELS: cl_image_info = 0x1119;
390pub const CL_IMAGE_NUM_SAMPLES: cl_image_info = 0x111A;
391
392// cl_pipe_info
393pub const CL_PIPE_PACKET_SIZE: cl_pipe_info = 0x1120;
394pub const CL_PIPE_MAX_PACKETS: cl_pipe_info = 0x1121;
395pub const CL_PIPE_PROPERTIES: cl_pipe_info = 0x1122;
396
397// cl_addressing_mode
398pub const CL_ADDRESS_NONE: cl_addressing_mode = 0x1130;
399pub const CL_ADDRESS_CLAMP_TO_EDGE: cl_addressing_mode = 0x1131;
400pub const CL_ADDRESS_CLAMP: cl_addressing_mode = 0x1132;
401pub const CL_ADDRESS_REPEAT: cl_addressing_mode = 0x1133;
402pub const CL_ADDRESS_MIRRORED_REPEAT: cl_addressing_mode = 0x1134;
403
404// cl_filter_mode
405pub const CL_FILTER_NEAREST: cl_filter_mode = 0x1140;
406pub const CL_FILTER_LINEAR: cl_filter_mode = 0x1141;
407
408// cl_sampler_info
409pub const CL_SAMPLER_REFERENCE_COUNT: cl_sampler_info = 0x1150;
410pub const CL_SAMPLER_CONTEXT: cl_sampler_info = 0x1151;
411pub const CL_SAMPLER_NORMALIZED_COORDS: cl_sampler_info = 0x1152;
412pub const CL_SAMPLER_ADDRESSING_MODE: cl_sampler_info = 0x1153;
413pub const CL_SAMPLER_FILTER_MODE: cl_sampler_info = 0x1154;
414pub const CL_SAMPLER_MIP_FILTER_MODE: cl_sampler_info = 0x1155;
415pub const CL_SAMPLER_LOD_MIN: cl_sampler_info = 0x1156;
416pub const CL_SAMPLER_LOD_MAX: cl_sampler_info = 0x1157;
417pub const CL_SAMPLER_PROPERTIES: cl_sampler_info = 0x1158;
418
419// cl_map_flags - bitfield
420pub const CL_MAP_READ: cl_map_flags = 1 << 0;
421pub const CL_MAP_WRITE: cl_map_flags = 1 << 1;
422pub const CL_MAP_WRITE_INVALIDATE_REGION: cl_map_flags = 1 << 2;
423
424// cl_program_info
425pub const CL_PROGRAM_REFERENCE_COUNT: cl_program_info = 0x1160;
426pub const CL_PROGRAM_CONTEXT: cl_program_info = 0x1161;
427pub const CL_PROGRAM_NUM_DEVICES: cl_program_info = 0x1162;
428pub const CL_PROGRAM_DEVICES: cl_program_info = 0x1163;
429pub const CL_PROGRAM_SOURCE: cl_program_info = 0x1164;
430pub const CL_PROGRAM_BINARY_SIZES: cl_program_info = 0x1165;
431pub const CL_PROGRAM_BINARIES: cl_program_info = 0x1166;
432pub const CL_PROGRAM_NUM_KERNELS: cl_program_info = 0x1167;
433pub const CL_PROGRAM_KERNEL_NAMES: cl_program_info = 0x1168;
434pub const CL_PROGRAM_IL: cl_program_info = 0x1169;
435pub const CL_PROGRAM_SCOPE_GLOBAL_CTORS_PRESENT: cl_program_info = 0x116A;
436pub const CL_PROGRAM_SCOPE_GLOBAL_DTORS_PRESENT: cl_program_info = 0x116B;
437
438// cl_program_build_info
439pub const CL_PROGRAM_BUILD_STATUS: cl_program_build_info = 0x1181;
440pub const CL_PROGRAM_BUILD_OPTIONS: cl_program_build_info = 0x1182;
441pub const CL_PROGRAM_BUILD_LOG: cl_program_build_info = 0x1183;
442pub const CL_PROGRAM_BINARY_TYPE: cl_program_build_info = 0x1184;
443pub const CL_PROGRAM_BUILD_GLOBAL_VARIABLE_TOTAL_SIZE: cl_program_build_info = 0x1185;
444
445// cl_program_binary_type
446pub const CL_PROGRAM_BINARY_TYPE_NONE: cl_program_binary_type = 0x0;
447pub const CL_PROGRAM_BINARY_TYPE_COMPILED_OBJECT: cl_program_binary_type = 0x1;
448pub const CL_PROGRAM_BINARY_TYPE_LIBRARY: cl_program_binary_type = 0x2;
449pub const CL_PROGRAM_BINARY_TYPE_EXECUTABLE: cl_program_binary_type = 0x4;
450
451// cl_build_status
452pub const CL_BUILD_SUCCESS: cl_build_status = 0;
453pub const CL_BUILD_NONE: cl_build_status = -1;
454pub const CL_BUILD_ERROR: cl_build_status = -2;
455pub const CL_BUILD_IN_PROGRESS: cl_build_status = -3;
456
457// cl_kernel_info
458pub const CL_KERNEL_FUNCTION_NAME: cl_kernel_info = 0x1190;
459pub const CL_KERNEL_NUM_ARGS: cl_kernel_info = 0x1191;
460pub const CL_KERNEL_REFERENCE_COUNT: cl_kernel_info = 0x1192;
461pub const CL_KERNEL_CONTEXT: cl_kernel_info = 0x1193;
462pub const CL_KERNEL_PROGRAM: cl_kernel_info = 0x1194;
463pub const CL_KERNEL_ATTRIBUTES: cl_kernel_info = 0x1195;
464
465// cl_kernel_arg_info
466pub const CL_KERNEL_ARG_ADDRESS_QUALIFIER: cl_kernel_arg_info = 0x1196;
467pub const CL_KERNEL_ARG_ACCESS_QUALIFIER: cl_kernel_arg_info = 0x1197;
468pub const CL_KERNEL_ARG_TYPE_NAME: cl_kernel_arg_info = 0x1198;
469pub const CL_KERNEL_ARG_TYPE_QUALIFIER: cl_kernel_arg_info = 0x1199;
470pub const CL_KERNEL_ARG_NAME: cl_kernel_arg_info = 0x119A;
471
472// cl_kernel_arg_address_qualifier
473pub const CL_KERNEL_ARG_ADDRESS_GLOBAL: cl_kernel_arg_address_qualifier = 0x119B;
474pub const CL_KERNEL_ARG_ADDRESS_LOCAL: cl_kernel_arg_address_qualifier = 0x119C;
475pub const CL_KERNEL_ARG_ADDRESS_CONSTANT: cl_kernel_arg_address_qualifier = 0x119D;
476pub const CL_KERNEL_ARG_ADDRESS_PRIVATE: cl_kernel_arg_address_qualifier = 0x119E;
477
478// cl_kernel_arg_access_qualifier
479pub const CL_KERNEL_ARG_ACCESS_READ_ONLY: cl_kernel_arg_access_qualifier = 0x11A0;
480pub const CL_KERNEL_ARG_ACCESS_WRITE_ONLY: cl_kernel_arg_access_qualifier = 0x11A1;
481pub const CL_KERNEL_ARG_ACCESS_READ_WRITE: cl_kernel_arg_access_qualifier = 0x11A2;
482pub const CL_KERNEL_ARG_ACCESS_NONE: cl_kernel_arg_access_qualifier = 0x11A3;
483
484// cl_kernel_arg_type_qualifier
485pub const CL_KERNEL_ARG_TYPE_NONE: cl_kernel_arg_type_qualifier = 0;
486pub const CL_KERNEL_ARG_TYPE_CONST: cl_kernel_arg_type_qualifier = 1 << 0;
487pub const CL_KERNEL_ARG_TYPE_RESTRICT: cl_kernel_arg_type_qualifier = 1 << 1;
488pub const CL_KERNEL_ARG_TYPE_VOLATILE: cl_kernel_arg_type_qualifier = 1 << 2;
489pub const CL_KERNEL_ARG_TYPE_PIPE: cl_kernel_arg_type_qualifier = 1 << 3;
490
491// cl_kernel_work_group_info
492pub const CL_KERNEL_WORK_GROUP_SIZE: cl_kernel_work_group_info = 0x11B0;
493pub const CL_KERNEL_COMPILE_WORK_GROUP_SIZE: cl_kernel_work_group_info = 0x11B1;
494pub const CL_KERNEL_LOCAL_MEM_SIZE: cl_kernel_work_group_info = 0x11B2;
495pub const CL_KERNEL_PREFERRED_WORK_GROUP_SIZE_MULTIPLE: cl_kernel_work_group_info = 0x11B3;
496pub const CL_KERNEL_PRIVATE_MEM_SIZE: cl_kernel_work_group_info = 0x11B4;
497pub const CL_KERNEL_GLOBAL_WORK_SIZE: cl_kernel_work_group_info = 0x11B5;
498
499// cl_kernel_sub_group_info
500pub const CL_KERNEL_MAX_SUB_GROUP_SIZE_FOR_NDRANGE: cl_kernel_sub_group_info = 0x2033;
501pub const CL_KERNEL_SUB_GROUP_COUNT_FOR_NDRANGE: cl_kernel_sub_group_info = 0x2034;
502pub const CL_KERNEL_LOCAL_SIZE_FOR_SUB_GROUP_COUNT: cl_kernel_sub_group_info = 0x11B8;
503pub const CL_KERNEL_MAX_NUM_SUB_GROUPS: cl_kernel_sub_group_info = 0x11B9;
504pub const CL_KERNEL_COMPILE_NUM_SUB_GROUPS: cl_kernel_sub_group_info = 0x11BA;
505
506// cl_kernel_exec_info
507pub const CL_KERNEL_EXEC_INFO_SVM_PTRS: cl_kernel_exec_info = 0x11B6;
508pub const CL_KERNEL_EXEC_INFO_SVM_FINE_GRAIN_SYSTEM: cl_kernel_exec_info = 0x11B7;
509
510// cl_event_info
511pub const CL_EVENT_COMMAND_QUEUE: cl_event_info = 0x11D0;
512pub const CL_EVENT_COMMAND_TYPE: cl_event_info = 0x11D1;
513pub const CL_EVENT_REFERENCE_COUNT: cl_event_info = 0x11D2;
514pub const CL_EVENT_COMMAND_EXECUTION_STATUS: cl_event_info = 0x11D3;
515pub const CL_EVENT_CONTEXT: cl_event_info = 0x11D4;
516
517// cl_command_type
518pub const CL_COMMAND_NDRANGE_KERNEL: cl_command_type = 0x11F0;
519pub const CL_COMMAND_TASK: cl_command_type = 0x11F1;
520pub const CL_COMMAND_NATIVE_KERNEL: cl_command_type = 0x11F2;
521pub const CL_COMMAND_READ_BUFFER: cl_command_type = 0x11F3;
522pub const CL_COMMAND_WRITE_BUFFER: cl_command_type = 0x11F4;
523pub const CL_COMMAND_COPY_BUFFER: cl_command_type = 0x11F5;
524pub const CL_COMMAND_READ_IMAGE: cl_command_type = 0x11F6;
525pub const CL_COMMAND_WRITE_IMAGE: cl_command_type = 0x11F7;
526pub const CL_COMMAND_COPY_IMAGE: cl_command_type = 0x11F8;
527pub const CL_COMMAND_COPY_IMAGE_TO_BUFFER: cl_command_type = 0x11F9;
528pub const CL_COMMAND_COPY_BUFFER_TO_IMAGE: cl_command_type = 0x11FA;
529pub const CL_COMMAND_MAP_BUFFER: cl_command_type = 0x11FB;
530pub const CL_COMMAND_MAP_IMAGE: cl_command_type = 0x11FC;
531pub const CL_COMMAND_UNMAP_MEM_OBJECT: cl_command_type = 0x11FD;
532pub const CL_COMMAND_MARKER: cl_command_type = 0x11FE;
533pub const CL_COMMAND_ACQUIRE_GL_OBJECTS: cl_command_type = 0x11FF;
534pub const CL_COMMAND_RELEASE_GL_OBJECTS: cl_command_type = 0x1200;
535pub const CL_COMMAND_READ_BUFFER_RECT: cl_command_type = 0x1201;
536pub const CL_COMMAND_WRITE_BUFFER_RECT: cl_command_type = 0x1202;
537pub const CL_COMMAND_COPY_BUFFER_RECT: cl_command_type = 0x1203;
538pub const CL_COMMAND_USER: cl_command_type = 0x1204;
539pub const CL_COMMAND_BARRIER: cl_command_type = 0x1205;
540pub const CL_COMMAND_MIGRATE_MEM_OBJECTS: cl_command_type = 0x1206;
541pub const CL_COMMAND_FILL_BUFFER: cl_command_type = 0x1207;
542pub const CL_COMMAND_FILL_IMAGE: cl_command_type = 0x1208;
543pub const CL_COMMAND_SVM_FREE: cl_command_type = 0x1209;
544pub const CL_COMMAND_SVM_MEMCPY: cl_command_type = 0x120A;
545pub const CL_COMMAND_SVM_MEMFILL: cl_command_type = 0x120B;
546pub const CL_COMMAND_SVM_MAP: cl_command_type = 0x120C;
547pub const CL_COMMAND_SVM_UNMAP: cl_command_type = 0x120D;
548pub const CL_COMMAND_SVM_MIGRATE_MEM: cl_command_type = 0x120E;
549
550// command execution status
551pub const CL_COMPLETE: cl_int = 0x0;
552pub const CL_RUNNING: cl_int = 0x1;
553pub const CL_SUBMITTED: cl_int = 0x2;
554pub const CL_QUEUED: cl_int = 0x3;
555
556// cl_buffer_create_type
557pub const CL_BUFFER_CREATE_TYPE_REGION: cl_buffer_create_type = 0x1220;
558
559// cl_profiling_info
560pub const CL_PROFILING_COMMAND_QUEUED: cl_profiling_info = 0x1280;
561pub const CL_PROFILING_COMMAND_SUBMIT: cl_profiling_info = 0x1281;
562pub const CL_PROFILING_COMMAND_START: cl_profiling_info = 0x1282;
563pub const CL_PROFILING_COMMAND_END: cl_profiling_info = 0x1283;
564pub const CL_PROFILING_COMMAND_COMPLETE: cl_profiling_info = 0x1284;
565
566// cl_device_atomic_capabilities - bitfield
567pub const CL_DEVICE_ATOMIC_ORDER_RELAXED: cl_device_atomic_capabilities = 1 << 0;
568pub const CL_DEVICE_ATOMIC_ORDER_ACQ_REL: cl_device_atomic_capabilities = 1 << 1;
569pub const CL_DEVICE_ATOMIC_ORDER_SEQ_CST: cl_device_atomic_capabilities = 1 << 2;
570pub const CL_DEVICE_ATOMIC_SCOPE_WORK_ITEM: cl_device_atomic_capabilities = 1 << 3;
571pub const CL_DEVICE_ATOMIC_SCOPE_WORK_GROUP: cl_device_atomic_capabilities = 1 << 4;
572pub const CL_DEVICE_ATOMIC_SCOPE_DEVICE: cl_device_atomic_capabilities = 1 << 5;
573pub const CL_DEVICE_ATOMIC_SCOPE_ALL_DEVICES: cl_device_atomic_capabilities = 1 << 6;
574
575// cl_device_device_enqueue_capabilities - bitfield
576pub const CL_DEVICE_QUEUE_SUPPORTED: cl_device_device_enqueue_capabilities = 1 << 0;
577pub const CL_DEVICE_QUEUE_REPLACEABLE_DEFAULT: cl_device_device_enqueue_capabilities = 1 << 1;
578
579// cl_khronos_vendor_id
580pub const CL_KHRONOS_VENDOR_ID_CODEPLAY: cl_khronos_vendor_id = 0x10004;
581
582// cl_version
583pub const CL_VERSION_MAJOR_BITS: cl_version = 10;
584pub const CL_VERSION_MINOR_BITS: cl_version = 10;
585pub const CL_VERSION_PATCH_BITS: cl_version = 12;
586
587pub const CL_VERSION_MAJOR_MASK: cl_version = (1 << CL_VERSION_MAJOR_BITS) - 1;
588pub const CL_VERSION_MINOR_MASK: cl_version = (1 << CL_VERSION_MINOR_BITS) - 1;
589pub const CL_VERSION_PATCH_MASK: cl_version = (1 << CL_VERSION_PATCH_BITS) - 1;