1*c217d954SCole Faust /******************************************************************************* 2*c217d954SCole Faust * Copyright (c) 2008-2020 The Khronos Group Inc. 3*c217d954SCole Faust * 4*c217d954SCole Faust * Licensed under the Apache License, Version 2.0 (the "License"); 5*c217d954SCole Faust * you may not use this file except in compliance with the License. 6*c217d954SCole Faust * You may obtain a copy of the License at 7*c217d954SCole Faust * 8*c217d954SCole Faust * http://www.apache.org/licenses/LICENSE-2.0 9*c217d954SCole Faust * 10*c217d954SCole Faust * Unless required by applicable law or agreed to in writing, software 11*c217d954SCole Faust * distributed under the License is distributed on an "AS IS" BASIS, 12*c217d954SCole Faust * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*c217d954SCole Faust * See the License for the specific language governing permissions and 14*c217d954SCole Faust * limitations under the License. 15*c217d954SCole Faust ******************************************************************************/ 16*c217d954SCole Faust 17*c217d954SCole Faust /* cl_ext.h contains OpenCL extensions which don't have external */ 18*c217d954SCole Faust /* (OpenGL, D3D) dependencies. */ 19*c217d954SCole Faust 20*c217d954SCole Faust #ifndef __CL_EXT_H 21*c217d954SCole Faust #define __CL_EXT_H 22*c217d954SCole Faust 23*c217d954SCole Faust #ifdef __cplusplus 24*c217d954SCole Faust extern "C" { 25*c217d954SCole Faust #endif 26*c217d954SCole Faust 27*c217d954SCole Faust #include <CL/cl.h> 28*c217d954SCole Faust 29*c217d954SCole Faust /* cl_khr_fp64 extension - no extension #define since it has no functions */ 30*c217d954SCole Faust /* CL_DEVICE_DOUBLE_FP_CONFIG is defined in CL.h for OpenCL >= 120 */ 31*c217d954SCole Faust 32*c217d954SCole Faust #if CL_TARGET_OPENCL_VERSION <= 110 33*c217d954SCole Faust #define CL_DEVICE_DOUBLE_FP_CONFIG 0x1032 34*c217d954SCole Faust #endif 35*c217d954SCole Faust 36*c217d954SCole Faust /* cl_khr_fp16 extension - no extension #define since it has no functions */ 37*c217d954SCole Faust #define CL_DEVICE_HALF_FP_CONFIG 0x1033 38*c217d954SCole Faust 39*c217d954SCole Faust /* Memory object destruction 40*c217d954SCole Faust * 41*c217d954SCole Faust * Apple extension for use to manage externally allocated buffers used with cl_mem objects with CL_MEM_USE_HOST_PTR 42*c217d954SCole Faust * 43*c217d954SCole Faust * Registers a user callback function that will be called when the memory object is deleted and its resources 44*c217d954SCole Faust * freed. Each call to clSetMemObjectCallbackFn registers the specified user callback function on a callback 45*c217d954SCole Faust * stack associated with memobj. The registered user callback functions are called in the reverse order in 46*c217d954SCole Faust * which they were registered. The user callback functions are called and then the memory object is deleted 47*c217d954SCole Faust * and its resources freed. This provides a mechanism for the application (and libraries) using memobj to be 48*c217d954SCole Faust * notified when the memory referenced by host_ptr, specified when the memory object is created and used as 49*c217d954SCole Faust * the storage bits for the memory object, can be reused or freed. 50*c217d954SCole Faust * 51*c217d954SCole Faust * The application may not call CL api's with the cl_mem object passed to the pfn_notify. 52*c217d954SCole Faust * 53*c217d954SCole Faust * Please check for the "cl_APPLE_SetMemObjectDestructor" extension using clGetDeviceInfo(CL_DEVICE_EXTENSIONS) 54*c217d954SCole Faust * before using. 55*c217d954SCole Faust */ 56*c217d954SCole Faust #define cl_APPLE_SetMemObjectDestructor 1 57*c217d954SCole Faust extern CL_API_ENTRY cl_int CL_API_CALL clSetMemObjectDestructorAPPLE( cl_mem memobj, 58*c217d954SCole Faust void (* pfn_notify)(cl_mem memobj, void * user_data), 59*c217d954SCole Faust void * user_data) CL_API_SUFFIX__VERSION_1_0; 60*c217d954SCole Faust 61*c217d954SCole Faust 62*c217d954SCole Faust /* Context Logging Functions 63*c217d954SCole Faust * 64*c217d954SCole Faust * The next three convenience functions are intended to be used as the pfn_notify parameter to clCreateContext(). 65*c217d954SCole Faust * Please check for the "cl_APPLE_ContextLoggingFunctions" extension using clGetDeviceInfo(CL_DEVICE_EXTENSIONS) 66*c217d954SCole Faust * before using. 67*c217d954SCole Faust * 68*c217d954SCole Faust * clLogMessagesToSystemLog forwards on all log messages to the Apple System Logger 69*c217d954SCole Faust */ 70*c217d954SCole Faust #define cl_APPLE_ContextLoggingFunctions 1 71*c217d954SCole Faust extern CL_API_ENTRY void CL_API_CALL clLogMessagesToSystemLogAPPLE( const char * errstr, 72*c217d954SCole Faust const void * private_info, 73*c217d954SCole Faust size_t cb, 74*c217d954SCole Faust void * user_data) CL_API_SUFFIX__VERSION_1_0; 75*c217d954SCole Faust 76*c217d954SCole Faust /* clLogMessagesToStdout sends all log messages to the file descriptor stdout */ 77*c217d954SCole Faust extern CL_API_ENTRY void CL_API_CALL clLogMessagesToStdoutAPPLE( const char * errstr, 78*c217d954SCole Faust const void * private_info, 79*c217d954SCole Faust size_t cb, 80*c217d954SCole Faust void * user_data) CL_API_SUFFIX__VERSION_1_0; 81*c217d954SCole Faust 82*c217d954SCole Faust /* clLogMessagesToStderr sends all log messages to the file descriptor stderr */ 83*c217d954SCole Faust extern CL_API_ENTRY void CL_API_CALL clLogMessagesToStderrAPPLE( const char * errstr, 84*c217d954SCole Faust const void * private_info, 85*c217d954SCole Faust size_t cb, 86*c217d954SCole Faust void * user_data) CL_API_SUFFIX__VERSION_1_0; 87*c217d954SCole Faust 88*c217d954SCole Faust 89*c217d954SCole Faust /************************ 90*c217d954SCole Faust * cl_khr_icd extension * 91*c217d954SCole Faust ************************/ 92*c217d954SCole Faust #define cl_khr_icd 1 93*c217d954SCole Faust 94*c217d954SCole Faust /* cl_platform_info */ 95*c217d954SCole Faust #define CL_PLATFORM_ICD_SUFFIX_KHR 0x0920 96*c217d954SCole Faust 97*c217d954SCole Faust /* Additional Error Codes */ 98*c217d954SCole Faust #define CL_PLATFORM_NOT_FOUND_KHR -1001 99*c217d954SCole Faust 100*c217d954SCole Faust extern CL_API_ENTRY cl_int CL_API_CALL 101*c217d954SCole Faust clIcdGetPlatformIDsKHR(cl_uint num_entries, 102*c217d954SCole Faust cl_platform_id * platforms, 103*c217d954SCole Faust cl_uint * num_platforms); 104*c217d954SCole Faust 105*c217d954SCole Faust typedef cl_int 106*c217d954SCole Faust (CL_API_CALL *clIcdGetPlatformIDsKHR_fn)(cl_uint num_entries, 107*c217d954SCole Faust cl_platform_id * platforms, 108*c217d954SCole Faust cl_uint * num_platforms); 109*c217d954SCole Faust 110*c217d954SCole Faust 111*c217d954SCole Faust /******************************* 112*c217d954SCole Faust * cl_khr_il_program extension * 113*c217d954SCole Faust *******************************/ 114*c217d954SCole Faust #define cl_khr_il_program 1 115*c217d954SCole Faust 116*c217d954SCole Faust /* New property to clGetDeviceInfo for retrieving supported intermediate 117*c217d954SCole Faust * languages 118*c217d954SCole Faust */ 119*c217d954SCole Faust #define CL_DEVICE_IL_VERSION_KHR 0x105B 120*c217d954SCole Faust 121*c217d954SCole Faust /* New property to clGetProgramInfo for retrieving for retrieving the IL of a 122*c217d954SCole Faust * program 123*c217d954SCole Faust */ 124*c217d954SCole Faust #define CL_PROGRAM_IL_KHR 0x1169 125*c217d954SCole Faust 126*c217d954SCole Faust extern CL_API_ENTRY cl_program CL_API_CALL 127*c217d954SCole Faust clCreateProgramWithILKHR(cl_context context, 128*c217d954SCole Faust const void * il, 129*c217d954SCole Faust size_t length, 130*c217d954SCole Faust cl_int * errcode_ret); 131*c217d954SCole Faust 132*c217d954SCole Faust typedef cl_program 133*c217d954SCole Faust (CL_API_CALL *clCreateProgramWithILKHR_fn)(cl_context context, 134*c217d954SCole Faust const void * il, 135*c217d954SCole Faust size_t length, 136*c217d954SCole Faust cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2; 137*c217d954SCole Faust 138*c217d954SCole Faust /* Extension: cl_khr_image2d_from_buffer 139*c217d954SCole Faust * 140*c217d954SCole Faust * This extension allows a 2D image to be created from a cl_mem buffer without 141*c217d954SCole Faust * a copy. The type associated with a 2D image created from a buffer in an 142*c217d954SCole Faust * OpenCL program is image2d_t. Both the sampler and sampler-less read_image 143*c217d954SCole Faust * built-in functions are supported for 2D images and 2D images created from 144*c217d954SCole Faust * a buffer. Similarly, the write_image built-ins are also supported for 2D 145*c217d954SCole Faust * images created from a buffer. 146*c217d954SCole Faust * 147*c217d954SCole Faust * When the 2D image from buffer is created, the client must specify the 148*c217d954SCole Faust * width, height, image format (i.e. channel order and channel data type) 149*c217d954SCole Faust * and optionally the row pitch. 150*c217d954SCole Faust * 151*c217d954SCole Faust * The pitch specified must be a multiple of 152*c217d954SCole Faust * CL_DEVICE_IMAGE_PITCH_ALIGNMENT_KHR pixels. 153*c217d954SCole Faust * The base address of the buffer must be aligned to 154*c217d954SCole Faust * CL_DEVICE_IMAGE_BASE_ADDRESS_ALIGNMENT_KHR pixels. 155*c217d954SCole Faust */ 156*c217d954SCole Faust 157*c217d954SCole Faust #define CL_DEVICE_IMAGE_PITCH_ALIGNMENT_KHR 0x104A 158*c217d954SCole Faust #define CL_DEVICE_IMAGE_BASE_ADDRESS_ALIGNMENT_KHR 0x104B 159*c217d954SCole Faust 160*c217d954SCole Faust 161*c217d954SCole Faust /************************************** 162*c217d954SCole Faust * cl_khr_initialize_memory extension * 163*c217d954SCole Faust **************************************/ 164*c217d954SCole Faust 165*c217d954SCole Faust #define CL_CONTEXT_MEMORY_INITIALIZE_KHR 0x2030 166*c217d954SCole Faust 167*c217d954SCole Faust 168*c217d954SCole Faust /************************************** 169*c217d954SCole Faust * cl_khr_terminate_context extension * 170*c217d954SCole Faust **************************************/ 171*c217d954SCole Faust 172*c217d954SCole Faust #define CL_CONTEXT_TERMINATED_KHR -1121 173*c217d954SCole Faust 174*c217d954SCole Faust #define CL_DEVICE_TERMINATE_CAPABILITY_KHR 0x2031 175*c217d954SCole Faust #define CL_CONTEXT_TERMINATE_KHR 0x2032 176*c217d954SCole Faust 177*c217d954SCole Faust #define cl_khr_terminate_context 1 178*c217d954SCole Faust extern CL_API_ENTRY cl_int CL_API_CALL 179*c217d954SCole Faust clTerminateContextKHR(cl_context context) CL_API_SUFFIX__VERSION_1_2; 180*c217d954SCole Faust 181*c217d954SCole Faust typedef cl_int 182*c217d954SCole Faust (CL_API_CALL *clTerminateContextKHR_fn)(cl_context context) CL_API_SUFFIX__VERSION_1_2; 183*c217d954SCole Faust 184*c217d954SCole Faust 185*c217d954SCole Faust /* 186*c217d954SCole Faust * Extension: cl_khr_spir 187*c217d954SCole Faust * 188*c217d954SCole Faust * This extension adds support to create an OpenCL program object from a 189*c217d954SCole Faust * Standard Portable Intermediate Representation (SPIR) instance 190*c217d954SCole Faust */ 191*c217d954SCole Faust 192*c217d954SCole Faust #define CL_DEVICE_SPIR_VERSIONS 0x40E0 193*c217d954SCole Faust #define CL_PROGRAM_BINARY_TYPE_INTERMEDIATE 0x40E1 194*c217d954SCole Faust 195*c217d954SCole Faust 196*c217d954SCole Faust /***************************************** 197*c217d954SCole Faust * cl_khr_create_command_queue extension * 198*c217d954SCole Faust *****************************************/ 199*c217d954SCole Faust #define cl_khr_create_command_queue 1 200*c217d954SCole Faust 201*c217d954SCole Faust typedef cl_properties cl_queue_properties_khr; 202*c217d954SCole Faust 203*c217d954SCole Faust extern CL_API_ENTRY cl_command_queue CL_API_CALL 204*c217d954SCole Faust clCreateCommandQueueWithPropertiesKHR(cl_context context, 205*c217d954SCole Faust cl_device_id device, 206*c217d954SCole Faust const cl_queue_properties_khr* properties, 207*c217d954SCole Faust cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; 208*c217d954SCole Faust 209*c217d954SCole Faust typedef cl_command_queue 210*c217d954SCole Faust (CL_API_CALL *clCreateCommandQueueWithPropertiesKHR_fn)(cl_context context, 211*c217d954SCole Faust cl_device_id device, 212*c217d954SCole Faust const cl_queue_properties_khr* properties, 213*c217d954SCole Faust cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; 214*c217d954SCole Faust 215*c217d954SCole Faust 216*c217d954SCole Faust /****************************************** 217*c217d954SCole Faust * cl_nv_device_attribute_query extension * 218*c217d954SCole Faust ******************************************/ 219*c217d954SCole Faust 220*c217d954SCole Faust /* cl_nv_device_attribute_query extension - no extension #define since it has no functions */ 221*c217d954SCole Faust #define CL_DEVICE_COMPUTE_CAPABILITY_MAJOR_NV 0x4000 222*c217d954SCole Faust #define CL_DEVICE_COMPUTE_CAPABILITY_MINOR_NV 0x4001 223*c217d954SCole Faust #define CL_DEVICE_REGISTERS_PER_BLOCK_NV 0x4002 224*c217d954SCole Faust #define CL_DEVICE_WARP_SIZE_NV 0x4003 225*c217d954SCole Faust #define CL_DEVICE_GPU_OVERLAP_NV 0x4004 226*c217d954SCole Faust #define CL_DEVICE_KERNEL_EXEC_TIMEOUT_NV 0x4005 227*c217d954SCole Faust #define CL_DEVICE_INTEGRATED_MEMORY_NV 0x4006 228*c217d954SCole Faust 229*c217d954SCole Faust 230*c217d954SCole Faust /********************************* 231*c217d954SCole Faust * cl_amd_device_attribute_query * 232*c217d954SCole Faust *********************************/ 233*c217d954SCole Faust 234*c217d954SCole Faust #define CL_DEVICE_PROFILING_TIMER_OFFSET_AMD 0x4036 235*c217d954SCole Faust #define CL_DEVICE_TOPOLOGY_AMD 0x4037 236*c217d954SCole Faust #define CL_DEVICE_BOARD_NAME_AMD 0x4038 237*c217d954SCole Faust #define CL_DEVICE_GLOBAL_FREE_MEMORY_AMD 0x4039 238*c217d954SCole Faust #define CL_DEVICE_SIMD_PER_COMPUTE_UNIT_AMD 0x4040 239*c217d954SCole Faust #define CL_DEVICE_SIMD_WIDTH_AMD 0x4041 240*c217d954SCole Faust #define CL_DEVICE_SIMD_INSTRUCTION_WIDTH_AMD 0x4042 241*c217d954SCole Faust #define CL_DEVICE_WAVEFRONT_WIDTH_AMD 0x4043 242*c217d954SCole Faust #define CL_DEVICE_GLOBAL_MEM_CHANNELS_AMD 0x4044 243*c217d954SCole Faust #define CL_DEVICE_GLOBAL_MEM_CHANNEL_BANKS_AMD 0x4045 244*c217d954SCole Faust #define CL_DEVICE_GLOBAL_MEM_CHANNEL_BANK_WIDTH_AMD 0x4046 245*c217d954SCole Faust #define CL_DEVICE_LOCAL_MEM_SIZE_PER_COMPUTE_UNIT_AMD 0x4047 246*c217d954SCole Faust #define CL_DEVICE_LOCAL_MEM_BANKS_AMD 0x4048 247*c217d954SCole Faust #define CL_DEVICE_THREAD_TRACE_SUPPORTED_AMD 0x4049 248*c217d954SCole Faust #define CL_DEVICE_GFXIP_MAJOR_AMD 0x404A 249*c217d954SCole Faust #define CL_DEVICE_GFXIP_MINOR_AMD 0x404B 250*c217d954SCole Faust #define CL_DEVICE_AVAILABLE_ASYNC_QUEUES_AMD 0x404C 251*c217d954SCole Faust #define CL_DEVICE_PREFERRED_WORK_GROUP_SIZE_AMD 0x4030 252*c217d954SCole Faust #define CL_DEVICE_MAX_WORK_GROUP_SIZE_AMD 0x4031 253*c217d954SCole Faust #define CL_DEVICE_PREFERRED_CONSTANT_BUFFER_SIZE_AMD 0x4033 254*c217d954SCole Faust #define CL_DEVICE_PCIE_ID_AMD 0x4034 255*c217d954SCole Faust 256*c217d954SCole Faust 257*c217d954SCole Faust /********************************* 258*c217d954SCole Faust * cl_arm_printf extension 259*c217d954SCole Faust *********************************/ 260*c217d954SCole Faust 261*c217d954SCole Faust #define CL_PRINTF_CALLBACK_ARM 0x40B0 262*c217d954SCole Faust #define CL_PRINTF_BUFFERSIZE_ARM 0x40B1 263*c217d954SCole Faust 264*c217d954SCole Faust 265*c217d954SCole Faust /*********************************** 266*c217d954SCole Faust * cl_ext_device_fission extension 267*c217d954SCole Faust ***********************************/ 268*c217d954SCole Faust #define cl_ext_device_fission 1 269*c217d954SCole Faust 270*c217d954SCole Faust extern CL_API_ENTRY cl_int CL_API_CALL 271*c217d954SCole Faust clReleaseDeviceEXT(cl_device_id device) CL_API_SUFFIX__VERSION_1_1; 272*c217d954SCole Faust 273*c217d954SCole Faust typedef cl_int 274*c217d954SCole Faust (CL_API_CALL *clReleaseDeviceEXT_fn)(cl_device_id device) CL_API_SUFFIX__VERSION_1_1; 275*c217d954SCole Faust 276*c217d954SCole Faust extern CL_API_ENTRY cl_int CL_API_CALL 277*c217d954SCole Faust clRetainDeviceEXT(cl_device_id device) CL_API_SUFFIX__VERSION_1_1; 278*c217d954SCole Faust 279*c217d954SCole Faust typedef cl_int 280*c217d954SCole Faust (CL_API_CALL *clRetainDeviceEXT_fn)(cl_device_id device) CL_API_SUFFIX__VERSION_1_1; 281*c217d954SCole Faust 282*c217d954SCole Faust typedef cl_ulong cl_device_partition_property_ext; 283*c217d954SCole Faust extern CL_API_ENTRY cl_int CL_API_CALL 284*c217d954SCole Faust clCreateSubDevicesEXT(cl_device_id in_device, 285*c217d954SCole Faust const cl_device_partition_property_ext * properties, 286*c217d954SCole Faust cl_uint num_entries, 287*c217d954SCole Faust cl_device_id * out_devices, 288*c217d954SCole Faust cl_uint * num_devices) CL_API_SUFFIX__VERSION_1_1; 289*c217d954SCole Faust 290*c217d954SCole Faust typedef cl_int 291*c217d954SCole Faust (CL_API_CALL * clCreateSubDevicesEXT_fn)(cl_device_id in_device, 292*c217d954SCole Faust const cl_device_partition_property_ext * properties, 293*c217d954SCole Faust cl_uint num_entries, 294*c217d954SCole Faust cl_device_id * out_devices, 295*c217d954SCole Faust cl_uint * num_devices) CL_API_SUFFIX__VERSION_1_1; 296*c217d954SCole Faust 297*c217d954SCole Faust /* cl_device_partition_property_ext */ 298*c217d954SCole Faust #define CL_DEVICE_PARTITION_EQUALLY_EXT 0x4050 299*c217d954SCole Faust #define CL_DEVICE_PARTITION_BY_COUNTS_EXT 0x4051 300*c217d954SCole Faust #define CL_DEVICE_PARTITION_BY_NAMES_EXT 0x4052 301*c217d954SCole Faust #define CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN_EXT 0x4053 302*c217d954SCole Faust 303*c217d954SCole Faust /* clDeviceGetInfo selectors */ 304*c217d954SCole Faust #define CL_DEVICE_PARENT_DEVICE_EXT 0x4054 305*c217d954SCole Faust #define CL_DEVICE_PARTITION_TYPES_EXT 0x4055 306*c217d954SCole Faust #define CL_DEVICE_AFFINITY_DOMAINS_EXT 0x4056 307*c217d954SCole Faust #define CL_DEVICE_REFERENCE_COUNT_EXT 0x4057 308*c217d954SCole Faust #define CL_DEVICE_PARTITION_STYLE_EXT 0x4058 309*c217d954SCole Faust 310*c217d954SCole Faust /* error codes */ 311*c217d954SCole Faust #define CL_DEVICE_PARTITION_FAILED_EXT -1057 312*c217d954SCole Faust #define CL_INVALID_PARTITION_COUNT_EXT -1058 313*c217d954SCole Faust #define CL_INVALID_PARTITION_NAME_EXT -1059 314*c217d954SCole Faust 315*c217d954SCole Faust /* CL_AFFINITY_DOMAINs */ 316*c217d954SCole Faust #define CL_AFFINITY_DOMAIN_L1_CACHE_EXT 0x1 317*c217d954SCole Faust #define CL_AFFINITY_DOMAIN_L2_CACHE_EXT 0x2 318*c217d954SCole Faust #define CL_AFFINITY_DOMAIN_L3_CACHE_EXT 0x3 319*c217d954SCole Faust #define CL_AFFINITY_DOMAIN_L4_CACHE_EXT 0x4 320*c217d954SCole Faust #define CL_AFFINITY_DOMAIN_NUMA_EXT 0x10 321*c217d954SCole Faust #define CL_AFFINITY_DOMAIN_NEXT_FISSIONABLE_EXT 0x100 322*c217d954SCole Faust 323*c217d954SCole Faust /* cl_device_partition_property_ext list terminators */ 324*c217d954SCole Faust #define CL_PROPERTIES_LIST_END_EXT ((cl_device_partition_property_ext) 0) 325*c217d954SCole Faust #define CL_PARTITION_BY_COUNTS_LIST_END_EXT ((cl_device_partition_property_ext) 0) 326*c217d954SCole Faust #define CL_PARTITION_BY_NAMES_LIST_END_EXT ((cl_device_partition_property_ext) 0 - 1) 327*c217d954SCole Faust 328*c217d954SCole Faust 329*c217d954SCole Faust /*********************************** 330*c217d954SCole Faust * cl_ext_migrate_memobject extension definitions 331*c217d954SCole Faust ***********************************/ 332*c217d954SCole Faust #define cl_ext_migrate_memobject 1 333*c217d954SCole Faust 334*c217d954SCole Faust typedef cl_bitfield cl_mem_migration_flags_ext; 335*c217d954SCole Faust 336*c217d954SCole Faust #define CL_MIGRATE_MEM_OBJECT_HOST_EXT 0x1 337*c217d954SCole Faust 338*c217d954SCole Faust #define CL_COMMAND_MIGRATE_MEM_OBJECT_EXT 0x4040 339*c217d954SCole Faust 340*c217d954SCole Faust extern CL_API_ENTRY cl_int CL_API_CALL 341*c217d954SCole Faust clEnqueueMigrateMemObjectEXT(cl_command_queue command_queue, 342*c217d954SCole Faust cl_uint num_mem_objects, 343*c217d954SCole Faust const cl_mem * mem_objects, 344*c217d954SCole Faust cl_mem_migration_flags_ext flags, 345*c217d954SCole Faust cl_uint num_events_in_wait_list, 346*c217d954SCole Faust const cl_event * event_wait_list, 347*c217d954SCole Faust cl_event * event); 348*c217d954SCole Faust 349*c217d954SCole Faust typedef cl_int 350*c217d954SCole Faust (CL_API_CALL *clEnqueueMigrateMemObjectEXT_fn)(cl_command_queue command_queue, 351*c217d954SCole Faust cl_uint num_mem_objects, 352*c217d954SCole Faust const cl_mem * mem_objects, 353*c217d954SCole Faust cl_mem_migration_flags_ext flags, 354*c217d954SCole Faust cl_uint num_events_in_wait_list, 355*c217d954SCole Faust const cl_event * event_wait_list, 356*c217d954SCole Faust cl_event * event); 357*c217d954SCole Faust 358*c217d954SCole Faust 359*c217d954SCole Faust /********************************* 360*c217d954SCole Faust * cl_ext_cxx_for_opencl extension 361*c217d954SCole Faust *********************************/ 362*c217d954SCole Faust #define cl_ext_cxx_for_opencl 1 363*c217d954SCole Faust 364*c217d954SCole Faust #define CL_DEVICE_CXX_FOR_OPENCL_NUMERIC_VERSION_EXT 0x4230 365*c217d954SCole Faust 366*c217d954SCole Faust /********************************* 367*c217d954SCole Faust * cl_qcom_ext_host_ptr extension 368*c217d954SCole Faust *********************************/ 369*c217d954SCole Faust #define cl_qcom_ext_host_ptr 1 370*c217d954SCole Faust 371*c217d954SCole Faust #define CL_MEM_EXT_HOST_PTR_QCOM (1 << 29) 372*c217d954SCole Faust 373*c217d954SCole Faust #define CL_DEVICE_EXT_MEM_PADDING_IN_BYTES_QCOM 0x40A0 374*c217d954SCole Faust #define CL_DEVICE_PAGE_SIZE_QCOM 0x40A1 375*c217d954SCole Faust #define CL_IMAGE_ROW_ALIGNMENT_QCOM 0x40A2 376*c217d954SCole Faust #define CL_IMAGE_SLICE_ALIGNMENT_QCOM 0x40A3 377*c217d954SCole Faust #define CL_MEM_HOST_UNCACHED_QCOM 0x40A4 378*c217d954SCole Faust #define CL_MEM_HOST_WRITEBACK_QCOM 0x40A5 379*c217d954SCole Faust #define CL_MEM_HOST_WRITETHROUGH_QCOM 0x40A6 380*c217d954SCole Faust #define CL_MEM_HOST_WRITE_COMBINING_QCOM 0x40A7 381*c217d954SCole Faust 382*c217d954SCole Faust typedef cl_uint cl_image_pitch_info_qcom; 383*c217d954SCole Faust 384*c217d954SCole Faust extern CL_API_ENTRY cl_int CL_API_CALL 385*c217d954SCole Faust clGetDeviceImageInfoQCOM(cl_device_id device, 386*c217d954SCole Faust size_t image_width, 387*c217d954SCole Faust size_t image_height, 388*c217d954SCole Faust const cl_image_format *image_format, 389*c217d954SCole Faust cl_image_pitch_info_qcom param_name, 390*c217d954SCole Faust size_t param_value_size, 391*c217d954SCole Faust void *param_value, 392*c217d954SCole Faust size_t *param_value_size_ret); 393*c217d954SCole Faust 394*c217d954SCole Faust typedef struct _cl_mem_ext_host_ptr 395*c217d954SCole Faust { 396*c217d954SCole Faust /* Type of external memory allocation. */ 397*c217d954SCole Faust /* Legal values will be defined in layered extensions. */ 398*c217d954SCole Faust cl_uint allocation_type; 399*c217d954SCole Faust 400*c217d954SCole Faust /* Host cache policy for this external memory allocation. */ 401*c217d954SCole Faust cl_uint host_cache_policy; 402*c217d954SCole Faust 403*c217d954SCole Faust } cl_mem_ext_host_ptr; 404*c217d954SCole Faust 405*c217d954SCole Faust 406*c217d954SCole Faust /******************************************* 407*c217d954SCole Faust * cl_qcom_ext_host_ptr_iocoherent extension 408*c217d954SCole Faust ********************************************/ 409*c217d954SCole Faust 410*c217d954SCole Faust /* Cache policy specifying io-coherence */ 411*c217d954SCole Faust #define CL_MEM_HOST_IOCOHERENT_QCOM 0x40A9 412*c217d954SCole Faust 413*c217d954SCole Faust 414*c217d954SCole Faust /********************************* 415*c217d954SCole Faust * cl_qcom_ion_host_ptr extension 416*c217d954SCole Faust *********************************/ 417*c217d954SCole Faust 418*c217d954SCole Faust #define CL_MEM_ION_HOST_PTR_QCOM 0x40A8 419*c217d954SCole Faust 420*c217d954SCole Faust typedef struct _cl_mem_ion_host_ptr 421*c217d954SCole Faust { 422*c217d954SCole Faust /* Type of external memory allocation. */ 423*c217d954SCole Faust /* Must be CL_MEM_ION_HOST_PTR_QCOM for ION allocations. */ 424*c217d954SCole Faust cl_mem_ext_host_ptr ext_host_ptr; 425*c217d954SCole Faust 426*c217d954SCole Faust /* ION file descriptor */ 427*c217d954SCole Faust int ion_filedesc; 428*c217d954SCole Faust 429*c217d954SCole Faust /* Host pointer to the ION allocated memory */ 430*c217d954SCole Faust void* ion_hostptr; 431*c217d954SCole Faust 432*c217d954SCole Faust } cl_mem_ion_host_ptr; 433*c217d954SCole Faust 434*c217d954SCole Faust 435*c217d954SCole Faust /********************************* 436*c217d954SCole Faust * cl_qcom_android_native_buffer_host_ptr extension 437*c217d954SCole Faust *********************************/ 438*c217d954SCole Faust 439*c217d954SCole Faust #define CL_MEM_ANDROID_NATIVE_BUFFER_HOST_PTR_QCOM 0x40C6 440*c217d954SCole Faust 441*c217d954SCole Faust typedef struct _cl_mem_android_native_buffer_host_ptr 442*c217d954SCole Faust { 443*c217d954SCole Faust /* Type of external memory allocation. */ 444*c217d954SCole Faust /* Must be CL_MEM_ANDROID_NATIVE_BUFFER_HOST_PTR_QCOM for Android native buffers. */ 445*c217d954SCole Faust cl_mem_ext_host_ptr ext_host_ptr; 446*c217d954SCole Faust 447*c217d954SCole Faust /* Virtual pointer to the android native buffer */ 448*c217d954SCole Faust void* anb_ptr; 449*c217d954SCole Faust 450*c217d954SCole Faust } cl_mem_android_native_buffer_host_ptr; 451*c217d954SCole Faust 452*c217d954SCole Faust 453*c217d954SCole Faust /****************************************** 454*c217d954SCole Faust * cl_img_yuv_image extension * 455*c217d954SCole Faust ******************************************/ 456*c217d954SCole Faust 457*c217d954SCole Faust /* Image formats used in clCreateImage */ 458*c217d954SCole Faust #define CL_NV21_IMG 0x40D0 459*c217d954SCole Faust #define CL_YV12_IMG 0x40D1 460*c217d954SCole Faust 461*c217d954SCole Faust 462*c217d954SCole Faust /****************************************** 463*c217d954SCole Faust * cl_img_cached_allocations extension * 464*c217d954SCole Faust ******************************************/ 465*c217d954SCole Faust 466*c217d954SCole Faust /* Flag values used by clCreateBuffer */ 467*c217d954SCole Faust #define CL_MEM_USE_UNCACHED_CPU_MEMORY_IMG (1 << 26) 468*c217d954SCole Faust #define CL_MEM_USE_CACHED_CPU_MEMORY_IMG (1 << 27) 469*c217d954SCole Faust 470*c217d954SCole Faust 471*c217d954SCole Faust /****************************************** 472*c217d954SCole Faust * cl_img_use_gralloc_ptr extension * 473*c217d954SCole Faust ******************************************/ 474*c217d954SCole Faust #define cl_img_use_gralloc_ptr 1 475*c217d954SCole Faust 476*c217d954SCole Faust /* Flag values used by clCreateBuffer */ 477*c217d954SCole Faust #define CL_MEM_USE_GRALLOC_PTR_IMG (1 << 28) 478*c217d954SCole Faust 479*c217d954SCole Faust /* To be used by clGetEventInfo: */ 480*c217d954SCole Faust #define CL_COMMAND_ACQUIRE_GRALLOC_OBJECTS_IMG 0x40D2 481*c217d954SCole Faust #define CL_COMMAND_RELEASE_GRALLOC_OBJECTS_IMG 0x40D3 482*c217d954SCole Faust 483*c217d954SCole Faust /* Error codes from clEnqueueAcquireGrallocObjectsIMG and clEnqueueReleaseGrallocObjectsIMG */ 484*c217d954SCole Faust #define CL_GRALLOC_RESOURCE_NOT_ACQUIRED_IMG 0x40D4 485*c217d954SCole Faust #define CL_INVALID_GRALLOC_OBJECT_IMG 0x40D5 486*c217d954SCole Faust 487*c217d954SCole Faust extern CL_API_ENTRY cl_int CL_API_CALL 488*c217d954SCole Faust clEnqueueAcquireGrallocObjectsIMG(cl_command_queue command_queue, 489*c217d954SCole Faust cl_uint num_objects, 490*c217d954SCole Faust const cl_mem * mem_objects, 491*c217d954SCole Faust cl_uint num_events_in_wait_list, 492*c217d954SCole Faust const cl_event * event_wait_list, 493*c217d954SCole Faust cl_event * event) CL_API_SUFFIX__VERSION_1_2; 494*c217d954SCole Faust 495*c217d954SCole Faust extern CL_API_ENTRY cl_int CL_API_CALL 496*c217d954SCole Faust clEnqueueReleaseGrallocObjectsIMG(cl_command_queue command_queue, 497*c217d954SCole Faust cl_uint num_objects, 498*c217d954SCole Faust const cl_mem * mem_objects, 499*c217d954SCole Faust cl_uint num_events_in_wait_list, 500*c217d954SCole Faust const cl_event * event_wait_list, 501*c217d954SCole Faust cl_event * event) CL_API_SUFFIX__VERSION_1_2; 502*c217d954SCole Faust 503*c217d954SCole Faust /****************************************** 504*c217d954SCole Faust * cl_img_generate_mipmap extension * 505*c217d954SCole Faust ******************************************/ 506*c217d954SCole Faust #define cl_img_generate_mipmap 1 507*c217d954SCole Faust 508*c217d954SCole Faust typedef cl_uint cl_mipmap_filter_mode_img; 509*c217d954SCole Faust 510*c217d954SCole Faust /* To be used by clEnqueueGenerateMipmapIMG */ 511*c217d954SCole Faust #define CL_MIPMAP_FILTER_ANY_IMG 0x0 512*c217d954SCole Faust #define CL_MIPMAP_FILTER_BOX_IMG 0x1 513*c217d954SCole Faust 514*c217d954SCole Faust /* To be used by clGetEventInfo */ 515*c217d954SCole Faust #define CL_COMMAND_GENERATE_MIPMAP_IMG 0x40D6 516*c217d954SCole Faust 517*c217d954SCole Faust extern CL_API_ENTRY cl_int CL_API_CALL 518*c217d954SCole Faust clEnqueueGenerateMipmapIMG(cl_command_queue command_queue, 519*c217d954SCole Faust cl_mem src_image, 520*c217d954SCole Faust cl_mem dst_image, 521*c217d954SCole Faust cl_mipmap_filter_mode_img mipmap_filter_mode, 522*c217d954SCole Faust const size_t *array_region, 523*c217d954SCole Faust const size_t *mip_region, 524*c217d954SCole Faust cl_uint num_events_in_wait_list, 525*c217d954SCole Faust const cl_event *event_wait_list, 526*c217d954SCole Faust cl_event *event) CL_API_SUFFIX__VERSION_1_2; 527*c217d954SCole Faust 528*c217d954SCole Faust /****************************************** 529*c217d954SCole Faust * cl_img_mem_properties extension * 530*c217d954SCole Faust ******************************************/ 531*c217d954SCole Faust #define cl_img_mem_properties 1 532*c217d954SCole Faust 533*c217d954SCole Faust /* To be used by clCreateBufferWithProperties */ 534*c217d954SCole Faust #define CL_MEM_ALLOC_FLAGS_IMG 0x40D7 535*c217d954SCole Faust 536*c217d954SCole Faust /* To be used wiith the CL_MEM_ALLOC_FLAGS_IMG property */ 537*c217d954SCole Faust typedef cl_bitfield cl_mem_alloc_flags_img; 538*c217d954SCole Faust 539*c217d954SCole Faust /* To be used with cl_mem_alloc_flags_img */ 540*c217d954SCole Faust #define CL_MEM_ALLOC_RELAX_REQUIREMENTS_IMG (1 << 0) 541*c217d954SCole Faust 542*c217d954SCole Faust /********************************* 543*c217d954SCole Faust * cl_khr_subgroups extension 544*c217d954SCole Faust *********************************/ 545*c217d954SCole Faust #define cl_khr_subgroups 1 546*c217d954SCole Faust 547*c217d954SCole Faust #if !defined(CL_VERSION_2_1) 548*c217d954SCole Faust /* For OpenCL 2.1 and newer, cl_kernel_sub_group_info is declared in CL.h. 549*c217d954SCole Faust In hindsight, there should have been a khr suffix on this type for 550*c217d954SCole Faust the extension, but keeping it un-suffixed to maintain backwards 551*c217d954SCole Faust compatibility. */ 552*c217d954SCole Faust typedef cl_uint cl_kernel_sub_group_info; 553*c217d954SCole Faust #endif 554*c217d954SCole Faust 555*c217d954SCole Faust /* cl_kernel_sub_group_info */ 556*c217d954SCole Faust #define CL_KERNEL_MAX_SUB_GROUP_SIZE_FOR_NDRANGE_KHR 0x2033 557*c217d954SCole Faust #define CL_KERNEL_SUB_GROUP_COUNT_FOR_NDRANGE_KHR 0x2034 558*c217d954SCole Faust 559*c217d954SCole Faust extern CL_API_ENTRY cl_int CL_API_CALL 560*c217d954SCole Faust clGetKernelSubGroupInfoKHR(cl_kernel in_kernel, 561*c217d954SCole Faust cl_device_id in_device, 562*c217d954SCole Faust cl_kernel_sub_group_info param_name, 563*c217d954SCole Faust size_t input_value_size, 564*c217d954SCole Faust const void * input_value, 565*c217d954SCole Faust size_t param_value_size, 566*c217d954SCole Faust void * param_value, 567*c217d954SCole Faust size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_2_0_DEPRECATED; 568*c217d954SCole Faust 569*c217d954SCole Faust typedef cl_int 570*c217d954SCole Faust (CL_API_CALL * clGetKernelSubGroupInfoKHR_fn)(cl_kernel in_kernel, 571*c217d954SCole Faust cl_device_id in_device, 572*c217d954SCole Faust cl_kernel_sub_group_info param_name, 573*c217d954SCole Faust size_t input_value_size, 574*c217d954SCole Faust const void * input_value, 575*c217d954SCole Faust size_t param_value_size, 576*c217d954SCole Faust void * param_value, 577*c217d954SCole Faust size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_2_0_DEPRECATED; 578*c217d954SCole Faust 579*c217d954SCole Faust 580*c217d954SCole Faust /********************************* 581*c217d954SCole Faust * cl_khr_mipmap_image extension 582*c217d954SCole Faust *********************************/ 583*c217d954SCole Faust 584*c217d954SCole Faust /* cl_sampler_properties */ 585*c217d954SCole Faust #define CL_SAMPLER_MIP_FILTER_MODE_KHR 0x1155 586*c217d954SCole Faust #define CL_SAMPLER_LOD_MIN_KHR 0x1156 587*c217d954SCole Faust #define CL_SAMPLER_LOD_MAX_KHR 0x1157 588*c217d954SCole Faust 589*c217d954SCole Faust 590*c217d954SCole Faust /********************************* 591*c217d954SCole Faust * cl_khr_priority_hints extension 592*c217d954SCole Faust *********************************/ 593*c217d954SCole Faust /* This extension define is for backwards compatibility. 594*c217d954SCole Faust It shouldn't be required since this extension has no new functions. */ 595*c217d954SCole Faust #define cl_khr_priority_hints 1 596*c217d954SCole Faust 597*c217d954SCole Faust typedef cl_uint cl_queue_priority_khr; 598*c217d954SCole Faust 599*c217d954SCole Faust /* cl_command_queue_properties */ 600*c217d954SCole Faust #define CL_QUEUE_PRIORITY_KHR 0x1096 601*c217d954SCole Faust 602*c217d954SCole Faust /* cl_queue_priority_khr */ 603*c217d954SCole Faust #define CL_QUEUE_PRIORITY_HIGH_KHR (1<<0) 604*c217d954SCole Faust #define CL_QUEUE_PRIORITY_MED_KHR (1<<1) 605*c217d954SCole Faust #define CL_QUEUE_PRIORITY_LOW_KHR (1<<2) 606*c217d954SCole Faust 607*c217d954SCole Faust 608*c217d954SCole Faust /********************************* 609*c217d954SCole Faust * cl_khr_throttle_hints extension 610*c217d954SCole Faust *********************************/ 611*c217d954SCole Faust /* This extension define is for backwards compatibility. 612*c217d954SCole Faust It shouldn't be required since this extension has no new functions. */ 613*c217d954SCole Faust #define cl_khr_throttle_hints 1 614*c217d954SCole Faust 615*c217d954SCole Faust typedef cl_uint cl_queue_throttle_khr; 616*c217d954SCole Faust 617*c217d954SCole Faust /* cl_command_queue_properties */ 618*c217d954SCole Faust #define CL_QUEUE_THROTTLE_KHR 0x1097 619*c217d954SCole Faust 620*c217d954SCole Faust /* cl_queue_throttle_khr */ 621*c217d954SCole Faust #define CL_QUEUE_THROTTLE_HIGH_KHR (1<<0) 622*c217d954SCole Faust #define CL_QUEUE_THROTTLE_MED_KHR (1<<1) 623*c217d954SCole Faust #define CL_QUEUE_THROTTLE_LOW_KHR (1<<2) 624*c217d954SCole Faust 625*c217d954SCole Faust 626*c217d954SCole Faust /********************************* 627*c217d954SCole Faust * cl_khr_subgroup_named_barrier 628*c217d954SCole Faust *********************************/ 629*c217d954SCole Faust /* This extension define is for backwards compatibility. 630*c217d954SCole Faust It shouldn't be required since this extension has no new functions. */ 631*c217d954SCole Faust #define cl_khr_subgroup_named_barrier 1 632*c217d954SCole Faust 633*c217d954SCole Faust /* cl_device_info */ 634*c217d954SCole Faust #define CL_DEVICE_MAX_NAMED_BARRIER_COUNT_KHR 0x2035 635*c217d954SCole Faust 636*c217d954SCole Faust 637*c217d954SCole Faust /********************************* 638*c217d954SCole Faust * cl_khr_extended_versioning 639*c217d954SCole Faust *********************************/ 640*c217d954SCole Faust 641*c217d954SCole Faust #define cl_khr_extended_versioning 1 642*c217d954SCole Faust 643*c217d954SCole Faust #define CL_VERSION_MAJOR_BITS_KHR (10) 644*c217d954SCole Faust #define CL_VERSION_MINOR_BITS_KHR (10) 645*c217d954SCole Faust #define CL_VERSION_PATCH_BITS_KHR (12) 646*c217d954SCole Faust 647*c217d954SCole Faust #define CL_VERSION_MAJOR_MASK_KHR ((1 << CL_VERSION_MAJOR_BITS_KHR) - 1) 648*c217d954SCole Faust #define CL_VERSION_MINOR_MASK_KHR ((1 << CL_VERSION_MINOR_BITS_KHR) - 1) 649*c217d954SCole Faust #define CL_VERSION_PATCH_MASK_KHR ((1 << CL_VERSION_PATCH_BITS_KHR) - 1) 650*c217d954SCole Faust 651*c217d954SCole Faust #define CL_VERSION_MAJOR_KHR(version) ((version) >> (CL_VERSION_MINOR_BITS_KHR + CL_VERSION_PATCH_BITS_KHR)) 652*c217d954SCole Faust #define CL_VERSION_MINOR_KHR(version) (((version) >> CL_VERSION_PATCH_BITS_KHR) & CL_VERSION_MINOR_MASK_KHR) 653*c217d954SCole Faust #define CL_VERSION_PATCH_KHR(version) ((version) & CL_VERSION_PATCH_MASK_KHR) 654*c217d954SCole Faust 655*c217d954SCole Faust #define CL_MAKE_VERSION_KHR(major, minor, patch) \ 656*c217d954SCole Faust ((((major) & CL_VERSION_MAJOR_MASK_KHR) << (CL_VERSION_MINOR_BITS_KHR + CL_VERSION_PATCH_BITS_KHR)) | \ 657*c217d954SCole Faust (((minor) & CL_VERSION_MINOR_MASK_KHR) << CL_VERSION_PATCH_BITS_KHR) | \ 658*c217d954SCole Faust ((patch) & CL_VERSION_PATCH_MASK_KHR)) 659*c217d954SCole Faust 660*c217d954SCole Faust typedef cl_uint cl_version_khr; 661*c217d954SCole Faust 662*c217d954SCole Faust #define CL_NAME_VERSION_MAX_NAME_SIZE_KHR 64 663*c217d954SCole Faust 664*c217d954SCole Faust typedef struct _cl_name_version_khr 665*c217d954SCole Faust { 666*c217d954SCole Faust cl_version_khr version; 667*c217d954SCole Faust char name[CL_NAME_VERSION_MAX_NAME_SIZE_KHR]; 668*c217d954SCole Faust } cl_name_version_khr; 669*c217d954SCole Faust 670*c217d954SCole Faust /* cl_platform_info */ 671*c217d954SCole Faust #define CL_PLATFORM_NUMERIC_VERSION_KHR 0x0906 672*c217d954SCole Faust #define CL_PLATFORM_EXTENSIONS_WITH_VERSION_KHR 0x0907 673*c217d954SCole Faust 674*c217d954SCole Faust /* cl_device_info */ 675*c217d954SCole Faust #define CL_DEVICE_NUMERIC_VERSION_KHR 0x105E 676*c217d954SCole Faust #define CL_DEVICE_OPENCL_C_NUMERIC_VERSION_KHR 0x105F 677*c217d954SCole Faust #define CL_DEVICE_EXTENSIONS_WITH_VERSION_KHR 0x1060 678*c217d954SCole Faust #define CL_DEVICE_ILS_WITH_VERSION_KHR 0x1061 679*c217d954SCole Faust #define CL_DEVICE_BUILT_IN_KERNELS_WITH_VERSION_KHR 0x1062 680*c217d954SCole Faust 681*c217d954SCole Faust 682*c217d954SCole Faust /********************************* 683*c217d954SCole Faust * cl_khr_device_uuid extension 684*c217d954SCole Faust *********************************/ 685*c217d954SCole Faust #define cl_khr_device_uuid 1 686*c217d954SCole Faust 687*c217d954SCole Faust #define CL_UUID_SIZE_KHR 16 688*c217d954SCole Faust #define CL_LUID_SIZE_KHR 8 689*c217d954SCole Faust 690*c217d954SCole Faust #define CL_DEVICE_UUID_KHR 0x106A 691*c217d954SCole Faust #define CL_DRIVER_UUID_KHR 0x106B 692*c217d954SCole Faust #define CL_DEVICE_LUID_VALID_KHR 0x106C 693*c217d954SCole Faust #define CL_DEVICE_LUID_KHR 0x106D 694*c217d954SCole Faust #define CL_DEVICE_NODE_MASK_KHR 0x106E 695*c217d954SCole Faust 696*c217d954SCole Faust 697*c217d954SCole Faust /*************************************************************** 698*c217d954SCole Faust * cl_khr_pci_bus_info 699*c217d954SCole Faust ***************************************************************/ 700*c217d954SCole Faust #define cl_khr_pci_bus_info 1 701*c217d954SCole Faust 702*c217d954SCole Faust typedef struct _cl_device_pci_bus_info_khr { 703*c217d954SCole Faust cl_uint pci_domain; 704*c217d954SCole Faust cl_uint pci_bus; 705*c217d954SCole Faust cl_uint pci_device; 706*c217d954SCole Faust cl_uint pci_function; 707*c217d954SCole Faust } cl_device_pci_bus_info_khr; 708*c217d954SCole Faust 709*c217d954SCole Faust /* cl_device_info */ 710*c217d954SCole Faust #define CL_DEVICE_PCI_BUS_INFO_KHR 0x410F 711*c217d954SCole Faust 712*c217d954SCole Faust 713*c217d954SCole Faust /*************************************************************** 714*c217d954SCole Faust * cl_khr_suggested_local_work_size 715*c217d954SCole Faust ***************************************************************/ 716*c217d954SCole Faust #define cl_khr_suggested_local_work_size 1 717*c217d954SCole Faust 718*c217d954SCole Faust extern CL_API_ENTRY cl_int CL_API_CALL 719*c217d954SCole Faust clGetKernelSuggestedLocalWorkSizeKHR( 720*c217d954SCole Faust cl_command_queue command_queue, 721*c217d954SCole Faust cl_kernel kernel, 722*c217d954SCole Faust cl_uint work_dim, 723*c217d954SCole Faust const size_t* global_work_offset, 724*c217d954SCole Faust const size_t* global_work_size, 725*c217d954SCole Faust size_t* suggested_local_work_size) CL_API_SUFFIX__VERSION_3_0; 726*c217d954SCole Faust 727*c217d954SCole Faust typedef cl_int (CL_API_CALL * 728*c217d954SCole Faust clGetKernelSuggestedLocalWorkSizeKHR_fn)( 729*c217d954SCole Faust cl_command_queue command_queue, 730*c217d954SCole Faust cl_kernel kernel, 731*c217d954SCole Faust cl_uint work_dim, 732*c217d954SCole Faust const size_t* global_work_offset, 733*c217d954SCole Faust const size_t* global_work_size, 734*c217d954SCole Faust size_t* suggested_local_work_size) CL_API_SUFFIX__VERSION_3_0; 735*c217d954SCole Faust 736*c217d954SCole Faust 737*c217d954SCole Faust /*************************************************************** 738*c217d954SCole Faust * cl_khr_integer_dot_product 739*c217d954SCole Faust ***************************************************************/ 740*c217d954SCole Faust #define cl_khr_integer_dot_product 1 741*c217d954SCole Faust 742*c217d954SCole Faust typedef cl_bitfield cl_device_integer_dot_product_capabilities_khr; 743*c217d954SCole Faust 744*c217d954SCole Faust /* cl_device_integer_dot_product_capabilities_khr */ 745*c217d954SCole Faust #define CL_DEVICE_INTEGER_DOT_PRODUCT_INPUT_4x8BIT_PACKED_KHR (1 << 0) 746*c217d954SCole Faust #define CL_DEVICE_INTEGER_DOT_PRODUCT_INPUT_4x8BIT_KHR (1 << 1) 747*c217d954SCole Faust 748*c217d954SCole Faust /* cl_device_info */ 749*c217d954SCole Faust #define CL_DEVICE_INTEGER_DOT_PRODUCT_CAPABILITIES_KHR 0x1073 750*c217d954SCole Faust 751*c217d954SCole Faust 752*c217d954SCole Faust /********************************** 753*c217d954SCole Faust * cl_arm_import_memory extension * 754*c217d954SCole Faust **********************************/ 755*c217d954SCole Faust #define cl_arm_import_memory 1 756*c217d954SCole Faust 757*c217d954SCole Faust typedef intptr_t cl_import_properties_arm; 758*c217d954SCole Faust 759*c217d954SCole Faust /* Default and valid proporties name for cl_arm_import_memory */ 760*c217d954SCole Faust #define CL_IMPORT_TYPE_ARM 0x40B2 761*c217d954SCole Faust 762*c217d954SCole Faust /* Host process memory type default value for CL_IMPORT_TYPE_ARM property */ 763*c217d954SCole Faust #define CL_IMPORT_TYPE_HOST_ARM 0x40B3 764*c217d954SCole Faust 765*c217d954SCole Faust /* DMA BUF memory type value for CL_IMPORT_TYPE_ARM property */ 766*c217d954SCole Faust #define CL_IMPORT_TYPE_DMA_BUF_ARM 0x40B4 767*c217d954SCole Faust 768*c217d954SCole Faust /* Protected memory property */ 769*c217d954SCole Faust #define CL_IMPORT_TYPE_PROTECTED_ARM 0x40B5 770*c217d954SCole Faust 771*c217d954SCole Faust /* Android hardware buffer type value for CL_IMPORT_TYPE_ARM property */ 772*c217d954SCole Faust #define CL_IMPORT_TYPE_ANDROID_HARDWARE_BUFFER_ARM 0x41E2 773*c217d954SCole Faust 774*c217d954SCole Faust /* Data consistency with host property */ 775*c217d954SCole Faust #define CL_IMPORT_DMA_BUF_DATA_CONSISTENCY_WITH_HOST_ARM 0x41E3 776*c217d954SCole Faust 777*c217d954SCole Faust /* Index of plane in a multiplanar hardware buffer */ 778*c217d954SCole Faust #define CL_IMPORT_ANDROID_HARDWARE_BUFFER_PLANE_INDEX_ARM 0x41EF 779*c217d954SCole Faust 780*c217d954SCole Faust /* Index of layer in a multilayer hardware buffer */ 781*c217d954SCole Faust #define CL_IMPORT_ANDROID_HARDWARE_BUFFER_LAYER_INDEX_ARM 0x41F0 782*c217d954SCole Faust 783*c217d954SCole Faust /* Import memory size value to indicate a size for the whole buffer */ 784*c217d954SCole Faust #define CL_IMPORT_MEMORY_WHOLE_ALLOCATION_ARM SIZE_MAX 785*c217d954SCole Faust 786*c217d954SCole Faust /* This extension adds a new function that allows for direct memory import into 787*c217d954SCole Faust * OpenCL via the clImportMemoryARM function. 788*c217d954SCole Faust * 789*c217d954SCole Faust * Memory imported through this interface will be mapped into the device's page 790*c217d954SCole Faust * tables directly, providing zero copy access. It will never fall back to copy 791*c217d954SCole Faust * operations and aliased buffers. 792*c217d954SCole Faust * 793*c217d954SCole Faust * Types of memory supported for import are specified as additional extension 794*c217d954SCole Faust * strings. 795*c217d954SCole Faust * 796*c217d954SCole Faust * This extension produces cl_mem allocations which are compatible with all other 797*c217d954SCole Faust * users of cl_mem in the standard API. 798*c217d954SCole Faust * 799*c217d954SCole Faust * This extension maps pages with the same properties as the normal buffer creation 800*c217d954SCole Faust * function clCreateBuffer. 801*c217d954SCole Faust */ 802*c217d954SCole Faust extern CL_API_ENTRY cl_mem CL_API_CALL 803*c217d954SCole Faust clImportMemoryARM( cl_context context, 804*c217d954SCole Faust cl_mem_flags flags, 805*c217d954SCole Faust const cl_import_properties_arm *properties, 806*c217d954SCole Faust void *memory, 807*c217d954SCole Faust size_t size, 808*c217d954SCole Faust cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_0; 809*c217d954SCole Faust 810*c217d954SCole Faust 811*c217d954SCole Faust /****************************************** 812*c217d954SCole Faust * cl_arm_shared_virtual_memory extension * 813*c217d954SCole Faust ******************************************/ 814*c217d954SCole Faust #define cl_arm_shared_virtual_memory 1 815*c217d954SCole Faust 816*c217d954SCole Faust /* Used by clGetDeviceInfo */ 817*c217d954SCole Faust #define CL_DEVICE_SVM_CAPABILITIES_ARM 0x40B6 818*c217d954SCole Faust 819*c217d954SCole Faust /* Used by clGetMemObjectInfo */ 820*c217d954SCole Faust #define CL_MEM_USES_SVM_POINTER_ARM 0x40B7 821*c217d954SCole Faust 822*c217d954SCole Faust /* Used by clSetKernelExecInfoARM: */ 823*c217d954SCole Faust #define CL_KERNEL_EXEC_INFO_SVM_PTRS_ARM 0x40B8 824*c217d954SCole Faust #define CL_KERNEL_EXEC_INFO_SVM_FINE_GRAIN_SYSTEM_ARM 0x40B9 825*c217d954SCole Faust 826*c217d954SCole Faust /* To be used by clGetEventInfo: */ 827*c217d954SCole Faust #define CL_COMMAND_SVM_FREE_ARM 0x40BA 828*c217d954SCole Faust #define CL_COMMAND_SVM_MEMCPY_ARM 0x40BB 829*c217d954SCole Faust #define CL_COMMAND_SVM_MEMFILL_ARM 0x40BC 830*c217d954SCole Faust #define CL_COMMAND_SVM_MAP_ARM 0x40BD 831*c217d954SCole Faust #define CL_COMMAND_SVM_UNMAP_ARM 0x40BE 832*c217d954SCole Faust 833*c217d954SCole Faust /* Flag values returned by clGetDeviceInfo with CL_DEVICE_SVM_CAPABILITIES_ARM as the param_name. */ 834*c217d954SCole Faust #define CL_DEVICE_SVM_COARSE_GRAIN_BUFFER_ARM (1 << 0) 835*c217d954SCole Faust #define CL_DEVICE_SVM_FINE_GRAIN_BUFFER_ARM (1 << 1) 836*c217d954SCole Faust #define CL_DEVICE_SVM_FINE_GRAIN_SYSTEM_ARM (1 << 2) 837*c217d954SCole Faust #define CL_DEVICE_SVM_ATOMICS_ARM (1 << 3) 838*c217d954SCole Faust 839*c217d954SCole Faust /* Flag values used by clSVMAllocARM: */ 840*c217d954SCole Faust #define CL_MEM_SVM_FINE_GRAIN_BUFFER_ARM (1 << 10) 841*c217d954SCole Faust #define CL_MEM_SVM_ATOMICS_ARM (1 << 11) 842*c217d954SCole Faust 843*c217d954SCole Faust typedef cl_bitfield cl_svm_mem_flags_arm; 844*c217d954SCole Faust typedef cl_uint cl_kernel_exec_info_arm; 845*c217d954SCole Faust typedef cl_bitfield cl_device_svm_capabilities_arm; 846*c217d954SCole Faust 847*c217d954SCole Faust extern CL_API_ENTRY void * CL_API_CALL 848*c217d954SCole Faust clSVMAllocARM(cl_context context, 849*c217d954SCole Faust cl_svm_mem_flags_arm flags, 850*c217d954SCole Faust size_t size, 851*c217d954SCole Faust cl_uint alignment) CL_API_SUFFIX__VERSION_1_2; 852*c217d954SCole Faust 853*c217d954SCole Faust extern CL_API_ENTRY void CL_API_CALL 854*c217d954SCole Faust clSVMFreeARM(cl_context context, 855*c217d954SCole Faust void * svm_pointer) CL_API_SUFFIX__VERSION_1_2; 856*c217d954SCole Faust 857*c217d954SCole Faust extern CL_API_ENTRY cl_int CL_API_CALL 858*c217d954SCole Faust clEnqueueSVMFreeARM(cl_command_queue command_queue, 859*c217d954SCole Faust cl_uint num_svm_pointers, 860*c217d954SCole Faust void * svm_pointers[], 861*c217d954SCole Faust void (CL_CALLBACK * pfn_free_func)(cl_command_queue queue, 862*c217d954SCole Faust cl_uint num_svm_pointers, 863*c217d954SCole Faust void * svm_pointers[], 864*c217d954SCole Faust void * user_data), 865*c217d954SCole Faust void * user_data, 866*c217d954SCole Faust cl_uint num_events_in_wait_list, 867*c217d954SCole Faust const cl_event * event_wait_list, 868*c217d954SCole Faust cl_event * event) CL_API_SUFFIX__VERSION_1_2; 869*c217d954SCole Faust 870*c217d954SCole Faust extern CL_API_ENTRY cl_int CL_API_CALL 871*c217d954SCole Faust clEnqueueSVMMemcpyARM(cl_command_queue command_queue, 872*c217d954SCole Faust cl_bool blocking_copy, 873*c217d954SCole Faust void * dst_ptr, 874*c217d954SCole Faust const void * src_ptr, 875*c217d954SCole Faust size_t size, 876*c217d954SCole Faust cl_uint num_events_in_wait_list, 877*c217d954SCole Faust const cl_event * event_wait_list, 878*c217d954SCole Faust cl_event * event) CL_API_SUFFIX__VERSION_1_2; 879*c217d954SCole Faust 880*c217d954SCole Faust extern CL_API_ENTRY cl_int CL_API_CALL 881*c217d954SCole Faust clEnqueueSVMMemFillARM(cl_command_queue command_queue, 882*c217d954SCole Faust void * svm_ptr, 883*c217d954SCole Faust const void * pattern, 884*c217d954SCole Faust size_t pattern_size, 885*c217d954SCole Faust size_t size, 886*c217d954SCole Faust cl_uint num_events_in_wait_list, 887*c217d954SCole Faust const cl_event * event_wait_list, 888*c217d954SCole Faust cl_event * event) CL_API_SUFFIX__VERSION_1_2; 889*c217d954SCole Faust 890*c217d954SCole Faust extern CL_API_ENTRY cl_int CL_API_CALL 891*c217d954SCole Faust clEnqueueSVMMapARM(cl_command_queue command_queue, 892*c217d954SCole Faust cl_bool blocking_map, 893*c217d954SCole Faust cl_map_flags flags, 894*c217d954SCole Faust void * svm_ptr, 895*c217d954SCole Faust size_t size, 896*c217d954SCole Faust cl_uint num_events_in_wait_list, 897*c217d954SCole Faust const cl_event * event_wait_list, 898*c217d954SCole Faust cl_event * event) CL_API_SUFFIX__VERSION_1_2; 899*c217d954SCole Faust 900*c217d954SCole Faust extern CL_API_ENTRY cl_int CL_API_CALL 901*c217d954SCole Faust clEnqueueSVMUnmapARM(cl_command_queue command_queue, 902*c217d954SCole Faust void * svm_ptr, 903*c217d954SCole Faust cl_uint num_events_in_wait_list, 904*c217d954SCole Faust const cl_event * event_wait_list, 905*c217d954SCole Faust cl_event * event) CL_API_SUFFIX__VERSION_1_2; 906*c217d954SCole Faust 907*c217d954SCole Faust extern CL_API_ENTRY cl_int CL_API_CALL 908*c217d954SCole Faust clSetKernelArgSVMPointerARM(cl_kernel kernel, 909*c217d954SCole Faust cl_uint arg_index, 910*c217d954SCole Faust const void * arg_value) CL_API_SUFFIX__VERSION_1_2; 911*c217d954SCole Faust 912*c217d954SCole Faust extern CL_API_ENTRY cl_int CL_API_CALL 913*c217d954SCole Faust clSetKernelExecInfoARM(cl_kernel kernel, 914*c217d954SCole Faust cl_kernel_exec_info_arm param_name, 915*c217d954SCole Faust size_t param_value_size, 916*c217d954SCole Faust const void * param_value) CL_API_SUFFIX__VERSION_1_2; 917*c217d954SCole Faust 918*c217d954SCole Faust /******************************** 919*c217d954SCole Faust * cl_arm_get_core_id extension * 920*c217d954SCole Faust ********************************/ 921*c217d954SCole Faust 922*c217d954SCole Faust #ifdef CL_VERSION_1_2 923*c217d954SCole Faust 924*c217d954SCole Faust #define cl_arm_get_core_id 1 925*c217d954SCole Faust 926*c217d954SCole Faust /* Device info property for bitfield of cores present */ 927*c217d954SCole Faust #define CL_DEVICE_COMPUTE_UNITS_BITFIELD_ARM 0x40BF 928*c217d954SCole Faust 929*c217d954SCole Faust #endif /* CL_VERSION_1_2 */ 930*c217d954SCole Faust 931*c217d954SCole Faust /********************************* 932*c217d954SCole Faust * cl_arm_job_slot_selection 933*c217d954SCole Faust *********************************/ 934*c217d954SCole Faust 935*c217d954SCole Faust #define cl_arm_job_slot_selection 1 936*c217d954SCole Faust 937*c217d954SCole Faust /* cl_device_info */ 938*c217d954SCole Faust #define CL_DEVICE_JOB_SLOTS_ARM 0x41E0 939*c217d954SCole Faust 940*c217d954SCole Faust /* cl_command_queue_properties */ 941*c217d954SCole Faust #define CL_QUEUE_JOB_SLOT_ARM 0x41E1 942*c217d954SCole Faust 943*c217d954SCole Faust /********************************* 944*c217d954SCole Faust * cl_arm_scheduling_controls 945*c217d954SCole Faust *********************************/ 946*c217d954SCole Faust 947*c217d954SCole Faust #define cl_arm_scheduling_controls 1 948*c217d954SCole Faust 949*c217d954SCole Faust typedef cl_bitfield cl_device_scheduling_controls_capabilities_arm; 950*c217d954SCole Faust 951*c217d954SCole Faust /* cl_device_info */ 952*c217d954SCole Faust #define CL_DEVICE_SCHEDULING_CONTROLS_CAPABILITIES_ARM 0x41E4 953*c217d954SCole Faust 954*c217d954SCole Faust #define CL_DEVICE_SCHEDULING_KERNEL_BATCHING_ARM (1 << 0) 955*c217d954SCole Faust #define CL_DEVICE_SCHEDULING_WORKGROUP_BATCH_SIZE_ARM (1 << 1) 956*c217d954SCole Faust #define CL_DEVICE_SCHEDULING_WORKGROUP_BATCH_SIZE_MODIFIER_ARM (1 << 2) 957*c217d954SCole Faust #define CL_DEVICE_SCHEDULING_DEFERRED_FLUSH_ARM (1 << 3) 958*c217d954SCole Faust #define CL_DEVICE_SCHEDULING_REGISTER_ALLOCATION_ARM (1 << 4) 959*c217d954SCole Faust 960*c217d954SCole Faust #define CL_DEVICE_SUPPORTED_REGISTER_ALLOCATIONS_ARM 0x41EB 961*c217d954SCole Faust 962*c217d954SCole Faust /* cl_kernel_info */ 963*c217d954SCole Faust #define CL_KERNEL_EXEC_INFO_WORKGROUP_BATCH_SIZE_ARM 0x41E5 964*c217d954SCole Faust #define CL_KERNEL_EXEC_INFO_WORKGROUP_BATCH_SIZE_MODIFIER_ARM 0x41E6 965*c217d954SCole Faust 966*c217d954SCole Faust /* cl_queue_properties */ 967*c217d954SCole Faust #define CL_QUEUE_KERNEL_BATCHING_ARM 0x41E7 968*c217d954SCole Faust #define CL_QUEUE_DEFERRED_FLUSH_ARM 0x41EC 969*c217d954SCole Faust 970*c217d954SCole Faust /************************************** 971*c217d954SCole Faust * cl_arm_controlled_kernel_termination 972*c217d954SCole Faust ***************************************/ 973*c217d954SCole Faust 974*c217d954SCole Faust #define cl_arm_controlled_kernel_termination 1 975*c217d954SCole Faust 976*c217d954SCole Faust /* Error code to indicate kernel terminated with failure */ 977*c217d954SCole Faust #define CL_COMMAND_TERMINATED_ITSELF_WITH_FAILURE_ARM -1108 978*c217d954SCole Faust 979*c217d954SCole Faust /* cl_device_info */ 980*c217d954SCole Faust #define CL_DEVICE_CONTROLLED_TERMINATION_CAPABILITIES_ARM 0x41EE 981*c217d954SCole Faust 982*c217d954SCole Faust /* Bit fields for controlled termination feature query */ 983*c217d954SCole Faust typedef cl_bitfield cl_device_controlled_termination_capabilities_arm; 984*c217d954SCole Faust 985*c217d954SCole Faust #define CL_DEVICE_CONTROLLED_TERMINATION_SUCCESS_ARM (1 << 0) 986*c217d954SCole Faust #define CL_DEVICE_CONTROLLED_TERMINATION_FAILURE_ARM (1 << 1) 987*c217d954SCole Faust #define CL_DEVICE_CONTROLLED_TERMINATION_QUERY_ARM (1 << 2) 988*c217d954SCole Faust 989*c217d954SCole Faust /* cl_event_info */ 990*c217d954SCole Faust #define CL_EVENT_COMMAND_TERMINATION_REASON_ARM 0x41ED 991*c217d954SCole Faust 992*c217d954SCole Faust /* Values returned for event termination reason query */ 993*c217d954SCole Faust typedef cl_uint cl_command_termination_reason_arm; 994*c217d954SCole Faust 995*c217d954SCole Faust #define CL_COMMAND_TERMINATION_COMPLETION_ARM 0 996*c217d954SCole Faust #define CL_COMMAND_TERMINATION_CONTROLLED_SUCCESS_ARM 1 997*c217d954SCole Faust #define CL_COMMAND_TERMINATION_CONTROLLED_FAILURE_ARM 2 998*c217d954SCole Faust #define CL_COMMAND_TERMINATION_ERROR_ARM 3 999*c217d954SCole Faust 1000*c217d954SCole Faust /*************************************** 1001*c217d954SCole Faust * cl_intel_thread_local_exec extension * 1002*c217d954SCole Faust ****************************************/ 1003*c217d954SCole Faust 1004*c217d954SCole Faust #define cl_intel_thread_local_exec 1 1005*c217d954SCole Faust 1006*c217d954SCole Faust #define CL_QUEUE_THREAD_LOCAL_EXEC_ENABLE_INTEL (((cl_bitfield)1) << 31) 1007*c217d954SCole Faust 1008*c217d954SCole Faust /*********************************************** 1009*c217d954SCole Faust * cl_intel_device_partition_by_names extension * 1010*c217d954SCole Faust ************************************************/ 1011*c217d954SCole Faust 1012*c217d954SCole Faust #define cl_intel_device_partition_by_names 1 1013*c217d954SCole Faust 1014*c217d954SCole Faust #define CL_DEVICE_PARTITION_BY_NAMES_INTEL 0x4052 1015*c217d954SCole Faust #define CL_PARTITION_BY_NAMES_LIST_END_INTEL -1 1016*c217d954SCole Faust 1017*c217d954SCole Faust /************************************************ 1018*c217d954SCole Faust * cl_intel_accelerator extension * 1019*c217d954SCole Faust * cl_intel_motion_estimation extension * 1020*c217d954SCole Faust * cl_intel_advanced_motion_estimation extension * 1021*c217d954SCole Faust *************************************************/ 1022*c217d954SCole Faust 1023*c217d954SCole Faust #define cl_intel_accelerator 1 1024*c217d954SCole Faust #define cl_intel_motion_estimation 1 1025*c217d954SCole Faust #define cl_intel_advanced_motion_estimation 1 1026*c217d954SCole Faust 1027*c217d954SCole Faust typedef struct _cl_accelerator_intel* cl_accelerator_intel; 1028*c217d954SCole Faust typedef cl_uint cl_accelerator_type_intel; 1029*c217d954SCole Faust typedef cl_uint cl_accelerator_info_intel; 1030*c217d954SCole Faust 1031*c217d954SCole Faust typedef struct _cl_motion_estimation_desc_intel { 1032*c217d954SCole Faust cl_uint mb_block_type; 1033*c217d954SCole Faust cl_uint subpixel_mode; 1034*c217d954SCole Faust cl_uint sad_adjust_mode; 1035*c217d954SCole Faust cl_uint search_path_type; 1036*c217d954SCole Faust } cl_motion_estimation_desc_intel; 1037*c217d954SCole Faust 1038*c217d954SCole Faust /* error codes */ 1039*c217d954SCole Faust #define CL_INVALID_ACCELERATOR_INTEL -1094 1040*c217d954SCole Faust #define CL_INVALID_ACCELERATOR_TYPE_INTEL -1095 1041*c217d954SCole Faust #define CL_INVALID_ACCELERATOR_DESCRIPTOR_INTEL -1096 1042*c217d954SCole Faust #define CL_ACCELERATOR_TYPE_NOT_SUPPORTED_INTEL -1097 1043*c217d954SCole Faust 1044*c217d954SCole Faust /* cl_accelerator_type_intel */ 1045*c217d954SCole Faust #define CL_ACCELERATOR_TYPE_MOTION_ESTIMATION_INTEL 0x0 1046*c217d954SCole Faust 1047*c217d954SCole Faust /* cl_accelerator_info_intel */ 1048*c217d954SCole Faust #define CL_ACCELERATOR_DESCRIPTOR_INTEL 0x4090 1049*c217d954SCole Faust #define CL_ACCELERATOR_REFERENCE_COUNT_INTEL 0x4091 1050*c217d954SCole Faust #define CL_ACCELERATOR_CONTEXT_INTEL 0x4092 1051*c217d954SCole Faust #define CL_ACCELERATOR_TYPE_INTEL 0x4093 1052*c217d954SCole Faust 1053*c217d954SCole Faust /* cl_motion_detect_desc_intel flags */ 1054*c217d954SCole Faust #define CL_ME_MB_TYPE_16x16_INTEL 0x0 1055*c217d954SCole Faust #define CL_ME_MB_TYPE_8x8_INTEL 0x1 1056*c217d954SCole Faust #define CL_ME_MB_TYPE_4x4_INTEL 0x2 1057*c217d954SCole Faust 1058*c217d954SCole Faust #define CL_ME_SUBPIXEL_MODE_INTEGER_INTEL 0x0 1059*c217d954SCole Faust #define CL_ME_SUBPIXEL_MODE_HPEL_INTEL 0x1 1060*c217d954SCole Faust #define CL_ME_SUBPIXEL_MODE_QPEL_INTEL 0x2 1061*c217d954SCole Faust 1062*c217d954SCole Faust #define CL_ME_SAD_ADJUST_MODE_NONE_INTEL 0x0 1063*c217d954SCole Faust #define CL_ME_SAD_ADJUST_MODE_HAAR_INTEL 0x1 1064*c217d954SCole Faust 1065*c217d954SCole Faust #define CL_ME_SEARCH_PATH_RADIUS_2_2_INTEL 0x0 1066*c217d954SCole Faust #define CL_ME_SEARCH_PATH_RADIUS_4_4_INTEL 0x1 1067*c217d954SCole Faust #define CL_ME_SEARCH_PATH_RADIUS_16_12_INTEL 0x5 1068*c217d954SCole Faust 1069*c217d954SCole Faust #define CL_ME_SKIP_BLOCK_TYPE_16x16_INTEL 0x0 1070*c217d954SCole Faust #define CL_ME_CHROMA_INTRA_PREDICT_ENABLED_INTEL 0x1 1071*c217d954SCole Faust #define CL_ME_LUMA_INTRA_PREDICT_ENABLED_INTEL 0x2 1072*c217d954SCole Faust #define CL_ME_SKIP_BLOCK_TYPE_8x8_INTEL 0x4 1073*c217d954SCole Faust 1074*c217d954SCole Faust #define CL_ME_FORWARD_INPUT_MODE_INTEL 0x1 1075*c217d954SCole Faust #define CL_ME_BACKWARD_INPUT_MODE_INTEL 0x2 1076*c217d954SCole Faust #define CL_ME_BIDIRECTION_INPUT_MODE_INTEL 0x3 1077*c217d954SCole Faust 1078*c217d954SCole Faust #define CL_ME_BIDIR_WEIGHT_QUARTER_INTEL 16 1079*c217d954SCole Faust #define CL_ME_BIDIR_WEIGHT_THIRD_INTEL 21 1080*c217d954SCole Faust #define CL_ME_BIDIR_WEIGHT_HALF_INTEL 32 1081*c217d954SCole Faust #define CL_ME_BIDIR_WEIGHT_TWO_THIRD_INTEL 43 1082*c217d954SCole Faust #define CL_ME_BIDIR_WEIGHT_THREE_QUARTER_INTEL 48 1083*c217d954SCole Faust 1084*c217d954SCole Faust #define CL_ME_COST_PENALTY_NONE_INTEL 0x0 1085*c217d954SCole Faust #define CL_ME_COST_PENALTY_LOW_INTEL 0x1 1086*c217d954SCole Faust #define CL_ME_COST_PENALTY_NORMAL_INTEL 0x2 1087*c217d954SCole Faust #define CL_ME_COST_PENALTY_HIGH_INTEL 0x3 1088*c217d954SCole Faust 1089*c217d954SCole Faust #define CL_ME_COST_PRECISION_QPEL_INTEL 0x0 1090*c217d954SCole Faust #define CL_ME_COST_PRECISION_HPEL_INTEL 0x1 1091*c217d954SCole Faust #define CL_ME_COST_PRECISION_PEL_INTEL 0x2 1092*c217d954SCole Faust #define CL_ME_COST_PRECISION_DPEL_INTEL 0x3 1093*c217d954SCole Faust 1094*c217d954SCole Faust #define CL_ME_LUMA_PREDICTOR_MODE_VERTICAL_INTEL 0x0 1095*c217d954SCole Faust #define CL_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_INTEL 0x1 1096*c217d954SCole Faust #define CL_ME_LUMA_PREDICTOR_MODE_DC_INTEL 0x2 1097*c217d954SCole Faust #define CL_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_LEFT_INTEL 0x3 1098*c217d954SCole Faust 1099*c217d954SCole Faust #define CL_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_RIGHT_INTEL 0x4 1100*c217d954SCole Faust #define CL_ME_LUMA_PREDICTOR_MODE_PLANE_INTEL 0x4 1101*c217d954SCole Faust #define CL_ME_LUMA_PREDICTOR_MODE_VERTICAL_RIGHT_INTEL 0x5 1102*c217d954SCole Faust #define CL_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_DOWN_INTEL 0x6 1103*c217d954SCole Faust #define CL_ME_LUMA_PREDICTOR_MODE_VERTICAL_LEFT_INTEL 0x7 1104*c217d954SCole Faust #define CL_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_UP_INTEL 0x8 1105*c217d954SCole Faust 1106*c217d954SCole Faust #define CL_ME_CHROMA_PREDICTOR_MODE_DC_INTEL 0x0 1107*c217d954SCole Faust #define CL_ME_CHROMA_PREDICTOR_MODE_HORIZONTAL_INTEL 0x1 1108*c217d954SCole Faust #define CL_ME_CHROMA_PREDICTOR_MODE_VERTICAL_INTEL 0x2 1109*c217d954SCole Faust #define CL_ME_CHROMA_PREDICTOR_MODE_PLANE_INTEL 0x3 1110*c217d954SCole Faust 1111*c217d954SCole Faust /* cl_device_info */ 1112*c217d954SCole Faust #define CL_DEVICE_ME_VERSION_INTEL 0x407E 1113*c217d954SCole Faust 1114*c217d954SCole Faust #define CL_ME_VERSION_LEGACY_INTEL 0x0 1115*c217d954SCole Faust #define CL_ME_VERSION_ADVANCED_VER_1_INTEL 0x1 1116*c217d954SCole Faust #define CL_ME_VERSION_ADVANCED_VER_2_INTEL 0x2 1117*c217d954SCole Faust 1118*c217d954SCole Faust extern CL_API_ENTRY cl_accelerator_intel CL_API_CALL 1119*c217d954SCole Faust clCreateAcceleratorINTEL( 1120*c217d954SCole Faust cl_context context, 1121*c217d954SCole Faust cl_accelerator_type_intel accelerator_type, 1122*c217d954SCole Faust size_t descriptor_size, 1123*c217d954SCole Faust const void* descriptor, 1124*c217d954SCole Faust cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; 1125*c217d954SCole Faust 1126*c217d954SCole Faust typedef cl_accelerator_intel (CL_API_CALL *clCreateAcceleratorINTEL_fn)( 1127*c217d954SCole Faust cl_context context, 1128*c217d954SCole Faust cl_accelerator_type_intel accelerator_type, 1129*c217d954SCole Faust size_t descriptor_size, 1130*c217d954SCole Faust const void* descriptor, 1131*c217d954SCole Faust cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; 1132*c217d954SCole Faust 1133*c217d954SCole Faust extern CL_API_ENTRY cl_int CL_API_CALL 1134*c217d954SCole Faust clGetAcceleratorInfoINTEL( 1135*c217d954SCole Faust cl_accelerator_intel accelerator, 1136*c217d954SCole Faust cl_accelerator_info_intel param_name, 1137*c217d954SCole Faust size_t param_value_size, 1138*c217d954SCole Faust void* param_value, 1139*c217d954SCole Faust size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_2; 1140*c217d954SCole Faust 1141*c217d954SCole Faust typedef cl_int (CL_API_CALL *clGetAcceleratorInfoINTEL_fn)( 1142*c217d954SCole Faust cl_accelerator_intel accelerator, 1143*c217d954SCole Faust cl_accelerator_info_intel param_name, 1144*c217d954SCole Faust size_t param_value_size, 1145*c217d954SCole Faust void* param_value, 1146*c217d954SCole Faust size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_2; 1147*c217d954SCole Faust 1148*c217d954SCole Faust extern CL_API_ENTRY cl_int CL_API_CALL 1149*c217d954SCole Faust clRetainAcceleratorINTEL( 1150*c217d954SCole Faust cl_accelerator_intel accelerator) CL_API_SUFFIX__VERSION_1_2; 1151*c217d954SCole Faust 1152*c217d954SCole Faust typedef cl_int (CL_API_CALL *clRetainAcceleratorINTEL_fn)( 1153*c217d954SCole Faust cl_accelerator_intel accelerator) CL_API_SUFFIX__VERSION_1_2; 1154*c217d954SCole Faust 1155*c217d954SCole Faust extern CL_API_ENTRY cl_int CL_API_CALL 1156*c217d954SCole Faust clReleaseAcceleratorINTEL( 1157*c217d954SCole Faust cl_accelerator_intel accelerator) CL_API_SUFFIX__VERSION_1_2; 1158*c217d954SCole Faust 1159*c217d954SCole Faust typedef cl_int (CL_API_CALL *clReleaseAcceleratorINTEL_fn)( 1160*c217d954SCole Faust cl_accelerator_intel accelerator) CL_API_SUFFIX__VERSION_1_2; 1161*c217d954SCole Faust 1162*c217d954SCole Faust /****************************************** 1163*c217d954SCole Faust * cl_intel_simultaneous_sharing extension * 1164*c217d954SCole Faust *******************************************/ 1165*c217d954SCole Faust 1166*c217d954SCole Faust #define cl_intel_simultaneous_sharing 1 1167*c217d954SCole Faust 1168*c217d954SCole Faust #define CL_DEVICE_SIMULTANEOUS_INTEROPS_INTEL 0x4104 1169*c217d954SCole Faust #define CL_DEVICE_NUM_SIMULTANEOUS_INTEROPS_INTEL 0x4105 1170*c217d954SCole Faust 1171*c217d954SCole Faust /*********************************** 1172*c217d954SCole Faust * cl_intel_egl_image_yuv extension * 1173*c217d954SCole Faust ************************************/ 1174*c217d954SCole Faust 1175*c217d954SCole Faust #define cl_intel_egl_image_yuv 1 1176*c217d954SCole Faust 1177*c217d954SCole Faust #define CL_EGL_YUV_PLANE_INTEL 0x4107 1178*c217d954SCole Faust 1179*c217d954SCole Faust /******************************** 1180*c217d954SCole Faust * cl_intel_packed_yuv extension * 1181*c217d954SCole Faust *********************************/ 1182*c217d954SCole Faust 1183*c217d954SCole Faust #define cl_intel_packed_yuv 1 1184*c217d954SCole Faust 1185*c217d954SCole Faust #define CL_YUYV_INTEL 0x4076 1186*c217d954SCole Faust #define CL_UYVY_INTEL 0x4077 1187*c217d954SCole Faust #define CL_YVYU_INTEL 0x4078 1188*c217d954SCole Faust #define CL_VYUY_INTEL 0x4079 1189*c217d954SCole Faust 1190*c217d954SCole Faust /******************************************** 1191*c217d954SCole Faust * cl_intel_required_subgroup_size extension * 1192*c217d954SCole Faust *********************************************/ 1193*c217d954SCole Faust 1194*c217d954SCole Faust #define cl_intel_required_subgroup_size 1 1195*c217d954SCole Faust 1196*c217d954SCole Faust #define CL_DEVICE_SUB_GROUP_SIZES_INTEL 0x4108 1197*c217d954SCole Faust #define CL_KERNEL_SPILL_MEM_SIZE_INTEL 0x4109 1198*c217d954SCole Faust #define CL_KERNEL_COMPILE_SUB_GROUP_SIZE_INTEL 0x410A 1199*c217d954SCole Faust 1200*c217d954SCole Faust /**************************************** 1201*c217d954SCole Faust * cl_intel_driver_diagnostics extension * 1202*c217d954SCole Faust *****************************************/ 1203*c217d954SCole Faust 1204*c217d954SCole Faust #define cl_intel_driver_diagnostics 1 1205*c217d954SCole Faust 1206*c217d954SCole Faust typedef cl_uint cl_diagnostics_verbose_level; 1207*c217d954SCole Faust 1208*c217d954SCole Faust #define CL_CONTEXT_SHOW_DIAGNOSTICS_INTEL 0x4106 1209*c217d954SCole Faust 1210*c217d954SCole Faust #define CL_CONTEXT_DIAGNOSTICS_LEVEL_ALL_INTEL ( 0xff ) 1211*c217d954SCole Faust #define CL_CONTEXT_DIAGNOSTICS_LEVEL_GOOD_INTEL ( 1 ) 1212*c217d954SCole Faust #define CL_CONTEXT_DIAGNOSTICS_LEVEL_BAD_INTEL ( 1 << 1 ) 1213*c217d954SCole Faust #define CL_CONTEXT_DIAGNOSTICS_LEVEL_NEUTRAL_INTEL ( 1 << 2 ) 1214*c217d954SCole Faust 1215*c217d954SCole Faust /******************************** 1216*c217d954SCole Faust * cl_intel_planar_yuv extension * 1217*c217d954SCole Faust *********************************/ 1218*c217d954SCole Faust 1219*c217d954SCole Faust #define CL_NV12_INTEL 0x410E 1220*c217d954SCole Faust 1221*c217d954SCole Faust #define CL_MEM_NO_ACCESS_INTEL ( 1 << 24 ) 1222*c217d954SCole Faust #define CL_MEM_ACCESS_FLAGS_UNRESTRICTED_INTEL ( 1 << 25 ) 1223*c217d954SCole Faust 1224*c217d954SCole Faust #define CL_DEVICE_PLANAR_YUV_MAX_WIDTH_INTEL 0x417E 1225*c217d954SCole Faust #define CL_DEVICE_PLANAR_YUV_MAX_HEIGHT_INTEL 0x417F 1226*c217d954SCole Faust 1227*c217d954SCole Faust /******************************************************* 1228*c217d954SCole Faust * cl_intel_device_side_avc_motion_estimation extension * 1229*c217d954SCole Faust ********************************************************/ 1230*c217d954SCole Faust 1231*c217d954SCole Faust #define CL_DEVICE_AVC_ME_VERSION_INTEL 0x410B 1232*c217d954SCole Faust #define CL_DEVICE_AVC_ME_SUPPORTS_TEXTURE_SAMPLER_USE_INTEL 0x410C 1233*c217d954SCole Faust #define CL_DEVICE_AVC_ME_SUPPORTS_PREEMPTION_INTEL 0x410D 1234*c217d954SCole Faust 1235*c217d954SCole Faust #define CL_AVC_ME_VERSION_0_INTEL 0x0 /* No support. */ 1236*c217d954SCole Faust #define CL_AVC_ME_VERSION_1_INTEL 0x1 /* First supported version. */ 1237*c217d954SCole Faust 1238*c217d954SCole Faust #define CL_AVC_ME_MAJOR_16x16_INTEL 0x0 1239*c217d954SCole Faust #define CL_AVC_ME_MAJOR_16x8_INTEL 0x1 1240*c217d954SCole Faust #define CL_AVC_ME_MAJOR_8x16_INTEL 0x2 1241*c217d954SCole Faust #define CL_AVC_ME_MAJOR_8x8_INTEL 0x3 1242*c217d954SCole Faust 1243*c217d954SCole Faust #define CL_AVC_ME_MINOR_8x8_INTEL 0x0 1244*c217d954SCole Faust #define CL_AVC_ME_MINOR_8x4_INTEL 0x1 1245*c217d954SCole Faust #define CL_AVC_ME_MINOR_4x8_INTEL 0x2 1246*c217d954SCole Faust #define CL_AVC_ME_MINOR_4x4_INTEL 0x3 1247*c217d954SCole Faust 1248*c217d954SCole Faust #define CL_AVC_ME_MAJOR_FORWARD_INTEL 0x0 1249*c217d954SCole Faust #define CL_AVC_ME_MAJOR_BACKWARD_INTEL 0x1 1250*c217d954SCole Faust #define CL_AVC_ME_MAJOR_BIDIRECTIONAL_INTEL 0x2 1251*c217d954SCole Faust 1252*c217d954SCole Faust #define CL_AVC_ME_PARTITION_MASK_ALL_INTEL 0x0 1253*c217d954SCole Faust #define CL_AVC_ME_PARTITION_MASK_16x16_INTEL 0x7E 1254*c217d954SCole Faust #define CL_AVC_ME_PARTITION_MASK_16x8_INTEL 0x7D 1255*c217d954SCole Faust #define CL_AVC_ME_PARTITION_MASK_8x16_INTEL 0x7B 1256*c217d954SCole Faust #define CL_AVC_ME_PARTITION_MASK_8x8_INTEL 0x77 1257*c217d954SCole Faust #define CL_AVC_ME_PARTITION_MASK_8x4_INTEL 0x6F 1258*c217d954SCole Faust #define CL_AVC_ME_PARTITION_MASK_4x8_INTEL 0x5F 1259*c217d954SCole Faust #define CL_AVC_ME_PARTITION_MASK_4x4_INTEL 0x3F 1260*c217d954SCole Faust 1261*c217d954SCole Faust #define CL_AVC_ME_SEARCH_WINDOW_EXHAUSTIVE_INTEL 0x0 1262*c217d954SCole Faust #define CL_AVC_ME_SEARCH_WINDOW_SMALL_INTEL 0x1 1263*c217d954SCole Faust #define CL_AVC_ME_SEARCH_WINDOW_TINY_INTEL 0x2 1264*c217d954SCole Faust #define CL_AVC_ME_SEARCH_WINDOW_EXTRA_TINY_INTEL 0x3 1265*c217d954SCole Faust #define CL_AVC_ME_SEARCH_WINDOW_DIAMOND_INTEL 0x4 1266*c217d954SCole Faust #define CL_AVC_ME_SEARCH_WINDOW_LARGE_DIAMOND_INTEL 0x5 1267*c217d954SCole Faust #define CL_AVC_ME_SEARCH_WINDOW_RESERVED0_INTEL 0x6 1268*c217d954SCole Faust #define CL_AVC_ME_SEARCH_WINDOW_RESERVED1_INTEL 0x7 1269*c217d954SCole Faust #define CL_AVC_ME_SEARCH_WINDOW_CUSTOM_INTEL 0x8 1270*c217d954SCole Faust #define CL_AVC_ME_SEARCH_WINDOW_16x12_RADIUS_INTEL 0x9 1271*c217d954SCole Faust #define CL_AVC_ME_SEARCH_WINDOW_4x4_RADIUS_INTEL 0x2 1272*c217d954SCole Faust #define CL_AVC_ME_SEARCH_WINDOW_2x2_RADIUS_INTEL 0xa 1273*c217d954SCole Faust 1274*c217d954SCole Faust #define CL_AVC_ME_SAD_ADJUST_MODE_NONE_INTEL 0x0 1275*c217d954SCole Faust #define CL_AVC_ME_SAD_ADJUST_MODE_HAAR_INTEL 0x2 1276*c217d954SCole Faust 1277*c217d954SCole Faust #define CL_AVC_ME_SUBPIXEL_MODE_INTEGER_INTEL 0x0 1278*c217d954SCole Faust #define CL_AVC_ME_SUBPIXEL_MODE_HPEL_INTEL 0x1 1279*c217d954SCole Faust #define CL_AVC_ME_SUBPIXEL_MODE_QPEL_INTEL 0x3 1280*c217d954SCole Faust 1281*c217d954SCole Faust #define CL_AVC_ME_COST_PRECISION_QPEL_INTEL 0x0 1282*c217d954SCole Faust #define CL_AVC_ME_COST_PRECISION_HPEL_INTEL 0x1 1283*c217d954SCole Faust #define CL_AVC_ME_COST_PRECISION_PEL_INTEL 0x2 1284*c217d954SCole Faust #define CL_AVC_ME_COST_PRECISION_DPEL_INTEL 0x3 1285*c217d954SCole Faust 1286*c217d954SCole Faust #define CL_AVC_ME_BIDIR_WEIGHT_QUARTER_INTEL 0x10 1287*c217d954SCole Faust #define CL_AVC_ME_BIDIR_WEIGHT_THIRD_INTEL 0x15 1288*c217d954SCole Faust #define CL_AVC_ME_BIDIR_WEIGHT_HALF_INTEL 0x20 1289*c217d954SCole Faust #define CL_AVC_ME_BIDIR_WEIGHT_TWO_THIRD_INTEL 0x2B 1290*c217d954SCole Faust #define CL_AVC_ME_BIDIR_WEIGHT_THREE_QUARTER_INTEL 0x30 1291*c217d954SCole Faust 1292*c217d954SCole Faust #define CL_AVC_ME_BORDER_REACHED_LEFT_INTEL 0x0 1293*c217d954SCole Faust #define CL_AVC_ME_BORDER_REACHED_RIGHT_INTEL 0x2 1294*c217d954SCole Faust #define CL_AVC_ME_BORDER_REACHED_TOP_INTEL 0x4 1295*c217d954SCole Faust #define CL_AVC_ME_BORDER_REACHED_BOTTOM_INTEL 0x8 1296*c217d954SCole Faust 1297*c217d954SCole Faust #define CL_AVC_ME_SKIP_BLOCK_PARTITION_16x16_INTEL 0x0 1298*c217d954SCole Faust #define CL_AVC_ME_SKIP_BLOCK_PARTITION_8x8_INTEL 0x4000 1299*c217d954SCole Faust 1300*c217d954SCole Faust #define CL_AVC_ME_SKIP_BLOCK_16x16_FORWARD_ENABLE_INTEL ( 0x1 << 24 ) 1301*c217d954SCole Faust #define CL_AVC_ME_SKIP_BLOCK_16x16_BACKWARD_ENABLE_INTEL ( 0x2 << 24 ) 1302*c217d954SCole Faust #define CL_AVC_ME_SKIP_BLOCK_16x16_DUAL_ENABLE_INTEL ( 0x3 << 24 ) 1303*c217d954SCole Faust #define CL_AVC_ME_SKIP_BLOCK_8x8_FORWARD_ENABLE_INTEL ( 0x55 << 24 ) 1304*c217d954SCole Faust #define CL_AVC_ME_SKIP_BLOCK_8x8_BACKWARD_ENABLE_INTEL ( 0xAA << 24 ) 1305*c217d954SCole Faust #define CL_AVC_ME_SKIP_BLOCK_8x8_DUAL_ENABLE_INTEL ( 0xFF << 24 ) 1306*c217d954SCole Faust #define CL_AVC_ME_SKIP_BLOCK_8x8_0_FORWARD_ENABLE_INTEL ( 0x1 << 24 ) 1307*c217d954SCole Faust #define CL_AVC_ME_SKIP_BLOCK_8x8_0_BACKWARD_ENABLE_INTEL ( 0x2 << 24 ) 1308*c217d954SCole Faust #define CL_AVC_ME_SKIP_BLOCK_8x8_1_FORWARD_ENABLE_INTEL ( 0x1 << 26 ) 1309*c217d954SCole Faust #define CL_AVC_ME_SKIP_BLOCK_8x8_1_BACKWARD_ENABLE_INTEL ( 0x2 << 26 ) 1310*c217d954SCole Faust #define CL_AVC_ME_SKIP_BLOCK_8x8_2_FORWARD_ENABLE_INTEL ( 0x1 << 28 ) 1311*c217d954SCole Faust #define CL_AVC_ME_SKIP_BLOCK_8x8_2_BACKWARD_ENABLE_INTEL ( 0x2 << 28 ) 1312*c217d954SCole Faust #define CL_AVC_ME_SKIP_BLOCK_8x8_3_FORWARD_ENABLE_INTEL ( 0x1 << 30 ) 1313*c217d954SCole Faust #define CL_AVC_ME_SKIP_BLOCK_8x8_3_BACKWARD_ENABLE_INTEL ( 0x2 << 30 ) 1314*c217d954SCole Faust 1315*c217d954SCole Faust #define CL_AVC_ME_BLOCK_BASED_SKIP_4x4_INTEL 0x00 1316*c217d954SCole Faust #define CL_AVC_ME_BLOCK_BASED_SKIP_8x8_INTEL 0x80 1317*c217d954SCole Faust 1318*c217d954SCole Faust #define CL_AVC_ME_INTRA_16x16_INTEL 0x0 1319*c217d954SCole Faust #define CL_AVC_ME_INTRA_8x8_INTEL 0x1 1320*c217d954SCole Faust #define CL_AVC_ME_INTRA_4x4_INTEL 0x2 1321*c217d954SCole Faust 1322*c217d954SCole Faust #define CL_AVC_ME_INTRA_LUMA_PARTITION_MASK_16x16_INTEL 0x6 1323*c217d954SCole Faust #define CL_AVC_ME_INTRA_LUMA_PARTITION_MASK_8x8_INTEL 0x5 1324*c217d954SCole Faust #define CL_AVC_ME_INTRA_LUMA_PARTITION_MASK_4x4_INTEL 0x3 1325*c217d954SCole Faust 1326*c217d954SCole Faust #define CL_AVC_ME_INTRA_NEIGHBOR_LEFT_MASK_ENABLE_INTEL 0x60 1327*c217d954SCole Faust #define CL_AVC_ME_INTRA_NEIGHBOR_UPPER_MASK_ENABLE_INTEL 0x10 1328*c217d954SCole Faust #define CL_AVC_ME_INTRA_NEIGHBOR_UPPER_RIGHT_MASK_ENABLE_INTEL 0x8 1329*c217d954SCole Faust #define CL_AVC_ME_INTRA_NEIGHBOR_UPPER_LEFT_MASK_ENABLE_INTEL 0x4 1330*c217d954SCole Faust 1331*c217d954SCole Faust #define CL_AVC_ME_LUMA_PREDICTOR_MODE_VERTICAL_INTEL 0x0 1332*c217d954SCole Faust #define CL_AVC_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_INTEL 0x1 1333*c217d954SCole Faust #define CL_AVC_ME_LUMA_PREDICTOR_MODE_DC_INTEL 0x2 1334*c217d954SCole Faust #define CL_AVC_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_LEFT_INTEL 0x3 1335*c217d954SCole Faust #define CL_AVC_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_RIGHT_INTEL 0x4 1336*c217d954SCole Faust #define CL_AVC_ME_LUMA_PREDICTOR_MODE_PLANE_INTEL 0x4 1337*c217d954SCole Faust #define CL_AVC_ME_LUMA_PREDICTOR_MODE_VERTICAL_RIGHT_INTEL 0x5 1338*c217d954SCole Faust #define CL_AVC_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_DOWN_INTEL 0x6 1339*c217d954SCole Faust #define CL_AVC_ME_LUMA_PREDICTOR_MODE_VERTICAL_LEFT_INTEL 0x7 1340*c217d954SCole Faust #define CL_AVC_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_UP_INTEL 0x8 1341*c217d954SCole Faust #define CL_AVC_ME_CHROMA_PREDICTOR_MODE_DC_INTEL 0x0 1342*c217d954SCole Faust #define CL_AVC_ME_CHROMA_PREDICTOR_MODE_HORIZONTAL_INTEL 0x1 1343*c217d954SCole Faust #define CL_AVC_ME_CHROMA_PREDICTOR_MODE_VERTICAL_INTEL 0x2 1344*c217d954SCole Faust #define CL_AVC_ME_CHROMA_PREDICTOR_MODE_PLANE_INTEL 0x3 1345*c217d954SCole Faust 1346*c217d954SCole Faust #define CL_AVC_ME_FRAME_FORWARD_INTEL 0x1 1347*c217d954SCole Faust #define CL_AVC_ME_FRAME_BACKWARD_INTEL 0x2 1348*c217d954SCole Faust #define CL_AVC_ME_FRAME_DUAL_INTEL 0x3 1349*c217d954SCole Faust 1350*c217d954SCole Faust #define CL_AVC_ME_SLICE_TYPE_PRED_INTEL 0x0 1351*c217d954SCole Faust #define CL_AVC_ME_SLICE_TYPE_BPRED_INTEL 0x1 1352*c217d954SCole Faust #define CL_AVC_ME_SLICE_TYPE_INTRA_INTEL 0x2 1353*c217d954SCole Faust 1354*c217d954SCole Faust #define CL_AVC_ME_INTERLACED_SCAN_TOP_FIELD_INTEL 0x0 1355*c217d954SCole Faust #define CL_AVC_ME_INTERLACED_SCAN_BOTTOM_FIELD_INTEL 0x1 1356*c217d954SCole Faust 1357*c217d954SCole Faust /******************************************* 1358*c217d954SCole Faust * cl_intel_unified_shared_memory extension * 1359*c217d954SCole Faust ********************************************/ 1360*c217d954SCole Faust 1361*c217d954SCole Faust /* These APIs are in sync with Revision Q of the cl_intel_unified_shared_memory spec! */ 1362*c217d954SCole Faust 1363*c217d954SCole Faust #define cl_intel_unified_shared_memory 1 1364*c217d954SCole Faust 1365*c217d954SCole Faust /* cl_device_info */ 1366*c217d954SCole Faust #define CL_DEVICE_HOST_MEM_CAPABILITIES_INTEL 0x4190 1367*c217d954SCole Faust #define CL_DEVICE_DEVICE_MEM_CAPABILITIES_INTEL 0x4191 1368*c217d954SCole Faust #define CL_DEVICE_SINGLE_DEVICE_SHARED_MEM_CAPABILITIES_INTEL 0x4192 1369*c217d954SCole Faust #define CL_DEVICE_CROSS_DEVICE_SHARED_MEM_CAPABILITIES_INTEL 0x4193 1370*c217d954SCole Faust #define CL_DEVICE_SHARED_SYSTEM_MEM_CAPABILITIES_INTEL 0x4194 1371*c217d954SCole Faust 1372*c217d954SCole Faust typedef cl_bitfield cl_device_unified_shared_memory_capabilities_intel; 1373*c217d954SCole Faust 1374*c217d954SCole Faust /* cl_device_unified_shared_memory_capabilities_intel - bitfield */ 1375*c217d954SCole Faust #define CL_UNIFIED_SHARED_MEMORY_ACCESS_INTEL (1 << 0) 1376*c217d954SCole Faust #define CL_UNIFIED_SHARED_MEMORY_ATOMIC_ACCESS_INTEL (1 << 1) 1377*c217d954SCole Faust #define CL_UNIFIED_SHARED_MEMORY_CONCURRENT_ACCESS_INTEL (1 << 2) 1378*c217d954SCole Faust #define CL_UNIFIED_SHARED_MEMORY_CONCURRENT_ATOMIC_ACCESS_INTEL (1 << 3) 1379*c217d954SCole Faust 1380*c217d954SCole Faust typedef cl_properties cl_mem_properties_intel; 1381*c217d954SCole Faust 1382*c217d954SCole Faust /* cl_mem_properties_intel */ 1383*c217d954SCole Faust #define CL_MEM_ALLOC_FLAGS_INTEL 0x4195 1384*c217d954SCole Faust 1385*c217d954SCole Faust typedef cl_bitfield cl_mem_alloc_flags_intel; 1386*c217d954SCole Faust 1387*c217d954SCole Faust /* cl_mem_alloc_flags_intel - bitfield */ 1388*c217d954SCole Faust #define CL_MEM_ALLOC_WRITE_COMBINED_INTEL (1 << 0) 1389*c217d954SCole Faust 1390*c217d954SCole Faust typedef cl_uint cl_mem_info_intel; 1391*c217d954SCole Faust 1392*c217d954SCole Faust /* cl_mem_alloc_info_intel */ 1393*c217d954SCole Faust #define CL_MEM_ALLOC_TYPE_INTEL 0x419A 1394*c217d954SCole Faust #define CL_MEM_ALLOC_BASE_PTR_INTEL 0x419B 1395*c217d954SCole Faust #define CL_MEM_ALLOC_SIZE_INTEL 0x419C 1396*c217d954SCole Faust #define CL_MEM_ALLOC_DEVICE_INTEL 0x419D 1397*c217d954SCole Faust /* Enum values 0x419E-0x419F are reserved for future queries. */ 1398*c217d954SCole Faust 1399*c217d954SCole Faust typedef cl_uint cl_unified_shared_memory_type_intel; 1400*c217d954SCole Faust 1401*c217d954SCole Faust /* cl_unified_shared_memory_type_intel */ 1402*c217d954SCole Faust #define CL_MEM_TYPE_UNKNOWN_INTEL 0x4196 1403*c217d954SCole Faust #define CL_MEM_TYPE_HOST_INTEL 0x4197 1404*c217d954SCole Faust #define CL_MEM_TYPE_DEVICE_INTEL 0x4198 1405*c217d954SCole Faust #define CL_MEM_TYPE_SHARED_INTEL 0x4199 1406*c217d954SCole Faust 1407*c217d954SCole Faust typedef cl_uint cl_mem_advice_intel; 1408*c217d954SCole Faust 1409*c217d954SCole Faust /* cl_mem_advice_intel */ 1410*c217d954SCole Faust /* Enum values 0x4208-0x420F are reserved for future memory advices. */ 1411*c217d954SCole Faust 1412*c217d954SCole Faust /* cl_kernel_exec_info */ 1413*c217d954SCole Faust #define CL_KERNEL_EXEC_INFO_INDIRECT_HOST_ACCESS_INTEL 0x4200 1414*c217d954SCole Faust #define CL_KERNEL_EXEC_INFO_INDIRECT_DEVICE_ACCESS_INTEL 0x4201 1415*c217d954SCole Faust #define CL_KERNEL_EXEC_INFO_INDIRECT_SHARED_ACCESS_INTEL 0x4202 1416*c217d954SCole Faust #define CL_KERNEL_EXEC_INFO_USM_PTRS_INTEL 0x4203 1417*c217d954SCole Faust 1418*c217d954SCole Faust /* cl_command_type */ 1419*c217d954SCole Faust #define CL_COMMAND_MEMFILL_INTEL 0x4204 1420*c217d954SCole Faust #define CL_COMMAND_MEMCPY_INTEL 0x4205 1421*c217d954SCole Faust #define CL_COMMAND_MIGRATEMEM_INTEL 0x4206 1422*c217d954SCole Faust #define CL_COMMAND_MEMADVISE_INTEL 0x4207 1423*c217d954SCole Faust 1424*c217d954SCole Faust extern CL_API_ENTRY void* CL_API_CALL 1425*c217d954SCole Faust clHostMemAllocINTEL( 1426*c217d954SCole Faust cl_context context, 1427*c217d954SCole Faust const cl_mem_properties_intel* properties, 1428*c217d954SCole Faust size_t size, 1429*c217d954SCole Faust cl_uint alignment, 1430*c217d954SCole Faust cl_int* errcode_ret); 1431*c217d954SCole Faust 1432*c217d954SCole Faust typedef void* (CL_API_CALL * 1433*c217d954SCole Faust clHostMemAllocINTEL_fn)( 1434*c217d954SCole Faust cl_context context, 1435*c217d954SCole Faust const cl_mem_properties_intel* properties, 1436*c217d954SCole Faust size_t size, 1437*c217d954SCole Faust cl_uint alignment, 1438*c217d954SCole Faust cl_int* errcode_ret); 1439*c217d954SCole Faust 1440*c217d954SCole Faust extern CL_API_ENTRY void* CL_API_CALL 1441*c217d954SCole Faust clDeviceMemAllocINTEL( 1442*c217d954SCole Faust cl_context context, 1443*c217d954SCole Faust cl_device_id device, 1444*c217d954SCole Faust const cl_mem_properties_intel* properties, 1445*c217d954SCole Faust size_t size, 1446*c217d954SCole Faust cl_uint alignment, 1447*c217d954SCole Faust cl_int* errcode_ret); 1448*c217d954SCole Faust 1449*c217d954SCole Faust typedef void* (CL_API_CALL * 1450*c217d954SCole Faust clDeviceMemAllocINTEL_fn)( 1451*c217d954SCole Faust cl_context context, 1452*c217d954SCole Faust cl_device_id device, 1453*c217d954SCole Faust const cl_mem_properties_intel* properties, 1454*c217d954SCole Faust size_t size, 1455*c217d954SCole Faust cl_uint alignment, 1456*c217d954SCole Faust cl_int* errcode_ret); 1457*c217d954SCole Faust 1458*c217d954SCole Faust extern CL_API_ENTRY void* CL_API_CALL 1459*c217d954SCole Faust clSharedMemAllocINTEL( 1460*c217d954SCole Faust cl_context context, 1461*c217d954SCole Faust cl_device_id device, 1462*c217d954SCole Faust const cl_mem_properties_intel* properties, 1463*c217d954SCole Faust size_t size, 1464*c217d954SCole Faust cl_uint alignment, 1465*c217d954SCole Faust cl_int* errcode_ret); 1466*c217d954SCole Faust 1467*c217d954SCole Faust typedef void* (CL_API_CALL * 1468*c217d954SCole Faust clSharedMemAllocINTEL_fn)( 1469*c217d954SCole Faust cl_context context, 1470*c217d954SCole Faust cl_device_id device, 1471*c217d954SCole Faust const cl_mem_properties_intel* properties, 1472*c217d954SCole Faust size_t size, 1473*c217d954SCole Faust cl_uint alignment, 1474*c217d954SCole Faust cl_int* errcode_ret); 1475*c217d954SCole Faust 1476*c217d954SCole Faust extern CL_API_ENTRY cl_int CL_API_CALL 1477*c217d954SCole Faust clMemFreeINTEL( 1478*c217d954SCole Faust cl_context context, 1479*c217d954SCole Faust void* ptr); 1480*c217d954SCole Faust 1481*c217d954SCole Faust typedef cl_int (CL_API_CALL * 1482*c217d954SCole Faust clMemFreeINTEL_fn)( 1483*c217d954SCole Faust cl_context context, 1484*c217d954SCole Faust void* ptr); 1485*c217d954SCole Faust 1486*c217d954SCole Faust extern CL_API_ENTRY cl_int CL_API_CALL 1487*c217d954SCole Faust clMemBlockingFreeINTEL( 1488*c217d954SCole Faust cl_context context, 1489*c217d954SCole Faust void* ptr); 1490*c217d954SCole Faust 1491*c217d954SCole Faust typedef cl_int (CL_API_CALL * 1492*c217d954SCole Faust clMemBlockingFreeINTEL_fn)( 1493*c217d954SCole Faust cl_context context, 1494*c217d954SCole Faust void* ptr); 1495*c217d954SCole Faust 1496*c217d954SCole Faust extern CL_API_ENTRY cl_int CL_API_CALL 1497*c217d954SCole Faust clGetMemAllocInfoINTEL( 1498*c217d954SCole Faust cl_context context, 1499*c217d954SCole Faust const void* ptr, 1500*c217d954SCole Faust cl_mem_info_intel param_name, 1501*c217d954SCole Faust size_t param_value_size, 1502*c217d954SCole Faust void* param_value, 1503*c217d954SCole Faust size_t* param_value_size_ret); 1504*c217d954SCole Faust 1505*c217d954SCole Faust typedef cl_int (CL_API_CALL * 1506*c217d954SCole Faust clGetMemAllocInfoINTEL_fn)( 1507*c217d954SCole Faust cl_context context, 1508*c217d954SCole Faust const void* ptr, 1509*c217d954SCole Faust cl_mem_info_intel param_name, 1510*c217d954SCole Faust size_t param_value_size, 1511*c217d954SCole Faust void* param_value, 1512*c217d954SCole Faust size_t* param_value_size_ret); 1513*c217d954SCole Faust 1514*c217d954SCole Faust extern CL_API_ENTRY cl_int CL_API_CALL 1515*c217d954SCole Faust clSetKernelArgMemPointerINTEL( 1516*c217d954SCole Faust cl_kernel kernel, 1517*c217d954SCole Faust cl_uint arg_index, 1518*c217d954SCole Faust const void* arg_value); 1519*c217d954SCole Faust 1520*c217d954SCole Faust typedef cl_int (CL_API_CALL * 1521*c217d954SCole Faust clSetKernelArgMemPointerINTEL_fn)( 1522*c217d954SCole Faust cl_kernel kernel, 1523*c217d954SCole Faust cl_uint arg_index, 1524*c217d954SCole Faust const void* arg_value); 1525*c217d954SCole Faust 1526*c217d954SCole Faust extern CL_API_ENTRY cl_int CL_API_CALL 1527*c217d954SCole Faust clEnqueueMemsetINTEL( /* Deprecated */ 1528*c217d954SCole Faust cl_command_queue command_queue, 1529*c217d954SCole Faust void* dst_ptr, 1530*c217d954SCole Faust cl_int value, 1531*c217d954SCole Faust size_t size, 1532*c217d954SCole Faust cl_uint num_events_in_wait_list, 1533*c217d954SCole Faust const cl_event* event_wait_list, 1534*c217d954SCole Faust cl_event* event); 1535*c217d954SCole Faust 1536*c217d954SCole Faust typedef cl_int (CL_API_CALL * 1537*c217d954SCole Faust clEnqueueMemsetINTEL_fn)( /* Deprecated */ 1538*c217d954SCole Faust cl_command_queue command_queue, 1539*c217d954SCole Faust void* dst_ptr, 1540*c217d954SCole Faust cl_int value, 1541*c217d954SCole Faust size_t size, 1542*c217d954SCole Faust cl_uint num_events_in_wait_list, 1543*c217d954SCole Faust const cl_event* event_wait_list, 1544*c217d954SCole Faust cl_event* event); 1545*c217d954SCole Faust 1546*c217d954SCole Faust extern CL_API_ENTRY cl_int CL_API_CALL 1547*c217d954SCole Faust clEnqueueMemFillINTEL( 1548*c217d954SCole Faust cl_command_queue command_queue, 1549*c217d954SCole Faust void* dst_ptr, 1550*c217d954SCole Faust const void* pattern, 1551*c217d954SCole Faust size_t pattern_size, 1552*c217d954SCole Faust size_t size, 1553*c217d954SCole Faust cl_uint num_events_in_wait_list, 1554*c217d954SCole Faust const cl_event* event_wait_list, 1555*c217d954SCole Faust cl_event* event); 1556*c217d954SCole Faust 1557*c217d954SCole Faust typedef cl_int (CL_API_CALL * 1558*c217d954SCole Faust clEnqueueMemFillINTEL_fn)( 1559*c217d954SCole Faust cl_command_queue command_queue, 1560*c217d954SCole Faust void* dst_ptr, 1561*c217d954SCole Faust const void* pattern, 1562*c217d954SCole Faust size_t pattern_size, 1563*c217d954SCole Faust size_t size, 1564*c217d954SCole Faust cl_uint num_events_in_wait_list, 1565*c217d954SCole Faust const cl_event* event_wait_list, 1566*c217d954SCole Faust cl_event* event); 1567*c217d954SCole Faust 1568*c217d954SCole Faust extern CL_API_ENTRY cl_int CL_API_CALL 1569*c217d954SCole Faust clEnqueueMemcpyINTEL( 1570*c217d954SCole Faust cl_command_queue command_queue, 1571*c217d954SCole Faust cl_bool blocking, 1572*c217d954SCole Faust void* dst_ptr, 1573*c217d954SCole Faust const void* src_ptr, 1574*c217d954SCole Faust size_t size, 1575*c217d954SCole Faust cl_uint num_events_in_wait_list, 1576*c217d954SCole Faust const cl_event* event_wait_list, 1577*c217d954SCole Faust cl_event* event); 1578*c217d954SCole Faust 1579*c217d954SCole Faust typedef cl_int (CL_API_CALL * 1580*c217d954SCole Faust clEnqueueMemcpyINTEL_fn)( 1581*c217d954SCole Faust cl_command_queue command_queue, 1582*c217d954SCole Faust cl_bool blocking, 1583*c217d954SCole Faust void* dst_ptr, 1584*c217d954SCole Faust const void* src_ptr, 1585*c217d954SCole Faust size_t size, 1586*c217d954SCole Faust cl_uint num_events_in_wait_list, 1587*c217d954SCole Faust const cl_event* event_wait_list, 1588*c217d954SCole Faust cl_event* event); 1589*c217d954SCole Faust 1590*c217d954SCole Faust #ifdef CL_VERSION_1_2 1591*c217d954SCole Faust 1592*c217d954SCole Faust /* Because these APIs use cl_mem_migration_flags, they require 1593*c217d954SCole Faust OpenCL 1.2: */ 1594*c217d954SCole Faust 1595*c217d954SCole Faust extern CL_API_ENTRY cl_int CL_API_CALL 1596*c217d954SCole Faust clEnqueueMigrateMemINTEL( 1597*c217d954SCole Faust cl_command_queue command_queue, 1598*c217d954SCole Faust const void* ptr, 1599*c217d954SCole Faust size_t size, 1600*c217d954SCole Faust cl_mem_migration_flags flags, 1601*c217d954SCole Faust cl_uint num_events_in_wait_list, 1602*c217d954SCole Faust const cl_event* event_wait_list, 1603*c217d954SCole Faust cl_event* event); 1604*c217d954SCole Faust 1605*c217d954SCole Faust typedef cl_int (CL_API_CALL * 1606*c217d954SCole Faust clEnqueueMigrateMemINTEL_fn)( 1607*c217d954SCole Faust cl_command_queue command_queue, 1608*c217d954SCole Faust const void* ptr, 1609*c217d954SCole Faust size_t size, 1610*c217d954SCole Faust cl_mem_migration_flags flags, 1611*c217d954SCole Faust cl_uint num_events_in_wait_list, 1612*c217d954SCole Faust const cl_event* event_wait_list, 1613*c217d954SCole Faust cl_event* event); 1614*c217d954SCole Faust 1615*c217d954SCole Faust #endif 1616*c217d954SCole Faust 1617*c217d954SCole Faust extern CL_API_ENTRY cl_int CL_API_CALL 1618*c217d954SCole Faust clEnqueueMemAdviseINTEL( 1619*c217d954SCole Faust cl_command_queue command_queue, 1620*c217d954SCole Faust const void* ptr, 1621*c217d954SCole Faust size_t size, 1622*c217d954SCole Faust cl_mem_advice_intel advice, 1623*c217d954SCole Faust cl_uint num_events_in_wait_list, 1624*c217d954SCole Faust const cl_event* event_wait_list, 1625*c217d954SCole Faust cl_event* event); 1626*c217d954SCole Faust 1627*c217d954SCole Faust typedef cl_int (CL_API_CALL * 1628*c217d954SCole Faust clEnqueueMemAdviseINTEL_fn)( 1629*c217d954SCole Faust cl_command_queue command_queue, 1630*c217d954SCole Faust const void* ptr, 1631*c217d954SCole Faust size_t size, 1632*c217d954SCole Faust cl_mem_advice_intel advice, 1633*c217d954SCole Faust cl_uint num_events_in_wait_list, 1634*c217d954SCole Faust const cl_event* event_wait_list, 1635*c217d954SCole Faust cl_event* event); 1636*c217d954SCole Faust 1637*c217d954SCole Faust /*************************************************** 1638*c217d954SCole Faust * cl_intel_create_buffer_with_properties extension * 1639*c217d954SCole Faust ****************************************************/ 1640*c217d954SCole Faust 1641*c217d954SCole Faust #define cl_intel_create_buffer_with_properties 1 1642*c217d954SCole Faust 1643*c217d954SCole Faust extern CL_API_ENTRY cl_mem CL_API_CALL 1644*c217d954SCole Faust clCreateBufferWithPropertiesINTEL( 1645*c217d954SCole Faust cl_context context, 1646*c217d954SCole Faust const cl_mem_properties_intel* properties, 1647*c217d954SCole Faust cl_mem_flags flags, 1648*c217d954SCole Faust size_t size, 1649*c217d954SCole Faust void * host_ptr, 1650*c217d954SCole Faust cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; 1651*c217d954SCole Faust 1652*c217d954SCole Faust typedef cl_mem (CL_API_CALL * 1653*c217d954SCole Faust clCreateBufferWithPropertiesINTEL_fn)( 1654*c217d954SCole Faust cl_context context, 1655*c217d954SCole Faust const cl_mem_properties_intel* properties, 1656*c217d954SCole Faust cl_mem_flags flags, 1657*c217d954SCole Faust size_t size, 1658*c217d954SCole Faust void * host_ptr, 1659*c217d954SCole Faust cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; 1660*c217d954SCole Faust 1661*c217d954SCole Faust /****************************************** 1662*c217d954SCole Faust * cl_intel_mem_channel_property extension * 1663*c217d954SCole Faust *******************************************/ 1664*c217d954SCole Faust 1665*c217d954SCole Faust #define CL_MEM_CHANNEL_INTEL 0x4213 1666*c217d954SCole Faust 1667*c217d954SCole Faust /********************************* 1668*c217d954SCole Faust * cl_intel_mem_force_host_memory * 1669*c217d954SCole Faust **********************************/ 1670*c217d954SCole Faust 1671*c217d954SCole Faust #define cl_intel_mem_force_host_memory 1 1672*c217d954SCole Faust 1673*c217d954SCole Faust /* cl_mem_flags */ 1674*c217d954SCole Faust #define CL_MEM_FORCE_HOST_MEMORY_INTEL (1 << 20) 1675*c217d954SCole Faust 1676*c217d954SCole Faust /*************************************************************** 1677*c217d954SCole Faust * cl_intel_command_queue_families 1678*c217d954SCole Faust ***************************************************************/ 1679*c217d954SCole Faust #define cl_intel_command_queue_families 1 1680*c217d954SCole Faust 1681*c217d954SCole Faust typedef cl_bitfield cl_command_queue_capabilities_intel; 1682*c217d954SCole Faust 1683*c217d954SCole Faust #define CL_QUEUE_FAMILY_MAX_NAME_SIZE_INTEL 64 1684*c217d954SCole Faust 1685*c217d954SCole Faust typedef struct _cl_queue_family_properties_intel { 1686*c217d954SCole Faust cl_command_queue_properties properties; 1687*c217d954SCole Faust cl_command_queue_capabilities_intel capabilities; 1688*c217d954SCole Faust cl_uint count; 1689*c217d954SCole Faust char name[CL_QUEUE_FAMILY_MAX_NAME_SIZE_INTEL]; 1690*c217d954SCole Faust } cl_queue_family_properties_intel; 1691*c217d954SCole Faust 1692*c217d954SCole Faust /* cl_device_info */ 1693*c217d954SCole Faust #define CL_DEVICE_QUEUE_FAMILY_PROPERTIES_INTEL 0x418B 1694*c217d954SCole Faust 1695*c217d954SCole Faust /* cl_queue_properties */ 1696*c217d954SCole Faust #define CL_QUEUE_FAMILY_INTEL 0x418C 1697*c217d954SCole Faust #define CL_QUEUE_INDEX_INTEL 0x418D 1698*c217d954SCole Faust 1699*c217d954SCole Faust /* cl_command_queue_capabilities_intel */ 1700*c217d954SCole Faust #define CL_QUEUE_DEFAULT_CAPABILITIES_INTEL 0 1701*c217d954SCole Faust #define CL_QUEUE_CAPABILITY_CREATE_SINGLE_QUEUE_EVENTS_INTEL (1 << 0) 1702*c217d954SCole Faust #define CL_QUEUE_CAPABILITY_CREATE_CROSS_QUEUE_EVENTS_INTEL (1 << 1) 1703*c217d954SCole Faust #define CL_QUEUE_CAPABILITY_SINGLE_QUEUE_EVENT_WAIT_LIST_INTEL (1 << 2) 1704*c217d954SCole Faust #define CL_QUEUE_CAPABILITY_CROSS_QUEUE_EVENT_WAIT_LIST_INTEL (1 << 3) 1705*c217d954SCole Faust #define CL_QUEUE_CAPABILITY_TRANSFER_BUFFER_INTEL (1 << 8) 1706*c217d954SCole Faust #define CL_QUEUE_CAPABILITY_TRANSFER_BUFFER_RECT_INTEL (1 << 9) 1707*c217d954SCole Faust #define CL_QUEUE_CAPABILITY_MAP_BUFFER_INTEL (1 << 10) 1708*c217d954SCole Faust #define CL_QUEUE_CAPABILITY_FILL_BUFFER_INTEL (1 << 11) 1709*c217d954SCole Faust #define CL_QUEUE_CAPABILITY_TRANSFER_IMAGE_INTEL (1 << 12) 1710*c217d954SCole Faust #define CL_QUEUE_CAPABILITY_MAP_IMAGE_INTEL (1 << 13) 1711*c217d954SCole Faust #define CL_QUEUE_CAPABILITY_FILL_IMAGE_INTEL (1 << 14) 1712*c217d954SCole Faust #define CL_QUEUE_CAPABILITY_TRANSFER_BUFFER_IMAGE_INTEL (1 << 15) 1713*c217d954SCole Faust #define CL_QUEUE_CAPABILITY_TRANSFER_IMAGE_BUFFER_INTEL (1 << 16) 1714*c217d954SCole Faust #define CL_QUEUE_CAPABILITY_MARKER_INTEL (1 << 24) 1715*c217d954SCole Faust #define CL_QUEUE_CAPABILITY_BARRIER_INTEL (1 << 25) 1716*c217d954SCole Faust #define CL_QUEUE_CAPABILITY_KERNEL_INTEL (1 << 26) 1717*c217d954SCole Faust 1718*c217d954SCole Faust #ifdef __cplusplus 1719*c217d954SCole Faust } 1720*c217d954SCole Faust #endif 1721*c217d954SCole Faust 1722*c217d954SCole Faust 1723*c217d954SCole Faust #endif /* __CL_EXT_H */ 1724