1*3cc25752SFrank Piva /******************************************************************************* 2*3cc25752SFrank Piva * Copyright (c) 2008-2023 The Khronos Group Inc. 3*3cc25752SFrank Piva * 4*3cc25752SFrank Piva * Licensed under the Apache License, Version 2.0 (the "License"); 5*3cc25752SFrank Piva * you may not use this file except in compliance with the License. 6*3cc25752SFrank Piva * You may obtain a copy of the License at 7*3cc25752SFrank Piva * 8*3cc25752SFrank Piva * http://www.apache.org/licenses/LICENSE-2.0 9*3cc25752SFrank Piva * 10*3cc25752SFrank Piva * Unless required by applicable law or agreed to in writing, software 11*3cc25752SFrank Piva * distributed under the License is distributed on an "AS IS" BASIS, 12*3cc25752SFrank Piva * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*3cc25752SFrank Piva * See the License for the specific language governing permissions and 14*3cc25752SFrank Piva * limitations under the License. 15*3cc25752SFrank Piva ******************************************************************************/ 16*3cc25752SFrank Piva 17*3cc25752SFrank Piva #ifndef OPENCL_CL_EXT_H_ 18*3cc25752SFrank Piva #define OPENCL_CL_EXT_H_ 19*3cc25752SFrank Piva 20*3cc25752SFrank Piva /* 21*3cc25752SFrank Piva ** This header is generated from the Khronos OpenCL XML API Registry. 22*3cc25752SFrank Piva */ 23*3cc25752SFrank Piva 24*3cc25752SFrank Piva #include <CL/cl.h> 25*3cc25752SFrank Piva 26*3cc25752SFrank Piva /* CL_NO_PROTOTYPES implies CL_NO_EXTENSION_PROTOTYPES: */ 27*3cc25752SFrank Piva #if defined(CL_NO_PROTOTYPES) && !defined(CL_NO_EXTENSION_PROTOTYPES) 28*3cc25752SFrank Piva #define CL_NO_EXTENSION_PROTOTYPES 29*3cc25752SFrank Piva #endif 30*3cc25752SFrank Piva 31*3cc25752SFrank Piva /* CL_NO_EXTENSION_PROTOTYPES implies 32*3cc25752SFrank Piva CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES and 33*3cc25752SFrank Piva CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES: */ 34*3cc25752SFrank Piva #if defined(CL_NO_EXTENSION_PROTOTYPES) && \ 35*3cc25752SFrank Piva !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) 36*3cc25752SFrank Piva #define CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES 37*3cc25752SFrank Piva #endif 38*3cc25752SFrank Piva #if defined(CL_NO_EXTENSION_PROTOTYPES) && \ 39*3cc25752SFrank Piva !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) 40*3cc25752SFrank Piva #define CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES 41*3cc25752SFrank Piva #endif 42*3cc25752SFrank Piva 43*3cc25752SFrank Piva #ifdef __cplusplus 44*3cc25752SFrank Piva extern "C" { 45*3cc25752SFrank Piva #endif 46*3cc25752SFrank Piva 47*3cc25752SFrank Piva /*************************************************************** 48*3cc25752SFrank Piva * cl_khr_command_buffer 49*3cc25752SFrank Piva ***************************************************************/ 50*3cc25752SFrank Piva #define cl_khr_command_buffer 1 51*3cc25752SFrank Piva #define CL_KHR_COMMAND_BUFFER_EXTENSION_NAME \ 52*3cc25752SFrank Piva "cl_khr_command_buffer" 53*3cc25752SFrank Piva 54*3cc25752SFrank Piva typedef cl_bitfield cl_device_command_buffer_capabilities_khr; 55*3cc25752SFrank Piva typedef struct _cl_command_buffer_khr* cl_command_buffer_khr; 56*3cc25752SFrank Piva typedef cl_uint cl_sync_point_khr; 57*3cc25752SFrank Piva typedef cl_uint cl_command_buffer_info_khr; 58*3cc25752SFrank Piva typedef cl_uint cl_command_buffer_state_khr; 59*3cc25752SFrank Piva typedef cl_properties cl_command_buffer_properties_khr; 60*3cc25752SFrank Piva typedef cl_bitfield cl_command_buffer_flags_khr; 61*3cc25752SFrank Piva typedef cl_properties cl_ndrange_kernel_command_properties_khr; 62*3cc25752SFrank Piva typedef struct _cl_mutable_command_khr* cl_mutable_command_khr; 63*3cc25752SFrank Piva 64*3cc25752SFrank Piva /* cl_device_info */ 65*3cc25752SFrank Piva #define CL_DEVICE_COMMAND_BUFFER_CAPABILITIES_KHR 0x12A9 66*3cc25752SFrank Piva #define CL_DEVICE_COMMAND_BUFFER_REQUIRED_QUEUE_PROPERTIES_KHR 0x12AA 67*3cc25752SFrank Piva 68*3cc25752SFrank Piva /* cl_device_command_buffer_capabilities_khr - bitfield */ 69*3cc25752SFrank Piva #define CL_COMMAND_BUFFER_CAPABILITY_KERNEL_PRINTF_KHR (1 << 0) 70*3cc25752SFrank Piva #define CL_COMMAND_BUFFER_CAPABILITY_DEVICE_SIDE_ENQUEUE_KHR (1 << 1) 71*3cc25752SFrank Piva #define CL_COMMAND_BUFFER_CAPABILITY_SIMULTANEOUS_USE_KHR (1 << 2) 72*3cc25752SFrank Piva #define CL_COMMAND_BUFFER_CAPABILITY_OUT_OF_ORDER_KHR (1 << 3) 73*3cc25752SFrank Piva 74*3cc25752SFrank Piva /* cl_command_buffer_properties_khr */ 75*3cc25752SFrank Piva #define CL_COMMAND_BUFFER_FLAGS_KHR 0x1293 76*3cc25752SFrank Piva 77*3cc25752SFrank Piva /* cl_command_buffer_flags_khr - bitfield */ 78*3cc25752SFrank Piva #define CL_COMMAND_BUFFER_SIMULTANEOUS_USE_KHR (1 << 0) 79*3cc25752SFrank Piva 80*3cc25752SFrank Piva /* Error codes */ 81*3cc25752SFrank Piva #define CL_INVALID_COMMAND_BUFFER_KHR -1138 82*3cc25752SFrank Piva #define CL_INVALID_SYNC_POINT_WAIT_LIST_KHR -1139 83*3cc25752SFrank Piva #define CL_INCOMPATIBLE_COMMAND_QUEUE_KHR -1140 84*3cc25752SFrank Piva 85*3cc25752SFrank Piva /* cl_command_buffer_info_khr */ 86*3cc25752SFrank Piva #define CL_COMMAND_BUFFER_QUEUES_KHR 0x1294 87*3cc25752SFrank Piva #define CL_COMMAND_BUFFER_NUM_QUEUES_KHR 0x1295 88*3cc25752SFrank Piva #define CL_COMMAND_BUFFER_REFERENCE_COUNT_KHR 0x1296 89*3cc25752SFrank Piva #define CL_COMMAND_BUFFER_STATE_KHR 0x1297 90*3cc25752SFrank Piva #define CL_COMMAND_BUFFER_PROPERTIES_ARRAY_KHR 0x1298 91*3cc25752SFrank Piva #define CL_COMMAND_BUFFER_CONTEXT_KHR 0x1299 92*3cc25752SFrank Piva 93*3cc25752SFrank Piva /* cl_command_buffer_state_khr */ 94*3cc25752SFrank Piva #define CL_COMMAND_BUFFER_STATE_RECORDING_KHR 0 95*3cc25752SFrank Piva #define CL_COMMAND_BUFFER_STATE_EXECUTABLE_KHR 1 96*3cc25752SFrank Piva #define CL_COMMAND_BUFFER_STATE_PENDING_KHR 2 97*3cc25752SFrank Piva 98*3cc25752SFrank Piva /* cl_command_type */ 99*3cc25752SFrank Piva #define CL_COMMAND_COMMAND_BUFFER_KHR 0x12A8 100*3cc25752SFrank Piva 101*3cc25752SFrank Piva 102*3cc25752SFrank Piva typedef cl_command_buffer_khr CL_API_CALL 103*3cc25752SFrank Piva clCreateCommandBufferKHR_t( 104*3cc25752SFrank Piva cl_uint num_queues, 105*3cc25752SFrank Piva const cl_command_queue* queues, 106*3cc25752SFrank Piva const cl_command_buffer_properties_khr* properties, 107*3cc25752SFrank Piva cl_int* errcode_ret); 108*3cc25752SFrank Piva 109*3cc25752SFrank Piva typedef clCreateCommandBufferKHR_t * 110*3cc25752SFrank Piva clCreateCommandBufferKHR_fn ; 111*3cc25752SFrank Piva 112*3cc25752SFrank Piva typedef cl_int CL_API_CALL 113*3cc25752SFrank Piva clFinalizeCommandBufferKHR_t( 114*3cc25752SFrank Piva cl_command_buffer_khr command_buffer); 115*3cc25752SFrank Piva 116*3cc25752SFrank Piva typedef clFinalizeCommandBufferKHR_t * 117*3cc25752SFrank Piva clFinalizeCommandBufferKHR_fn ; 118*3cc25752SFrank Piva 119*3cc25752SFrank Piva typedef cl_int CL_API_CALL 120*3cc25752SFrank Piva clRetainCommandBufferKHR_t( 121*3cc25752SFrank Piva cl_command_buffer_khr command_buffer); 122*3cc25752SFrank Piva 123*3cc25752SFrank Piva typedef clRetainCommandBufferKHR_t * 124*3cc25752SFrank Piva clRetainCommandBufferKHR_fn ; 125*3cc25752SFrank Piva 126*3cc25752SFrank Piva typedef cl_int CL_API_CALL 127*3cc25752SFrank Piva clReleaseCommandBufferKHR_t( 128*3cc25752SFrank Piva cl_command_buffer_khr command_buffer); 129*3cc25752SFrank Piva 130*3cc25752SFrank Piva typedef clReleaseCommandBufferKHR_t * 131*3cc25752SFrank Piva clReleaseCommandBufferKHR_fn ; 132*3cc25752SFrank Piva 133*3cc25752SFrank Piva typedef cl_int CL_API_CALL 134*3cc25752SFrank Piva clEnqueueCommandBufferKHR_t( 135*3cc25752SFrank Piva cl_uint num_queues, 136*3cc25752SFrank Piva cl_command_queue* queues, 137*3cc25752SFrank Piva cl_command_buffer_khr command_buffer, 138*3cc25752SFrank Piva cl_uint num_events_in_wait_list, 139*3cc25752SFrank Piva const cl_event* event_wait_list, 140*3cc25752SFrank Piva cl_event* event); 141*3cc25752SFrank Piva 142*3cc25752SFrank Piva typedef clEnqueueCommandBufferKHR_t * 143*3cc25752SFrank Piva clEnqueueCommandBufferKHR_fn ; 144*3cc25752SFrank Piva 145*3cc25752SFrank Piva typedef cl_int CL_API_CALL 146*3cc25752SFrank Piva clCommandBarrierWithWaitListKHR_t( 147*3cc25752SFrank Piva cl_command_buffer_khr command_buffer, 148*3cc25752SFrank Piva cl_command_queue command_queue, 149*3cc25752SFrank Piva cl_uint num_sync_points_in_wait_list, 150*3cc25752SFrank Piva const cl_sync_point_khr* sync_point_wait_list, 151*3cc25752SFrank Piva cl_sync_point_khr* sync_point, 152*3cc25752SFrank Piva cl_mutable_command_khr* mutable_handle); 153*3cc25752SFrank Piva 154*3cc25752SFrank Piva typedef clCommandBarrierWithWaitListKHR_t * 155*3cc25752SFrank Piva clCommandBarrierWithWaitListKHR_fn ; 156*3cc25752SFrank Piva 157*3cc25752SFrank Piva typedef cl_int CL_API_CALL 158*3cc25752SFrank Piva clCommandCopyBufferKHR_t( 159*3cc25752SFrank Piva cl_command_buffer_khr command_buffer, 160*3cc25752SFrank Piva cl_command_queue command_queue, 161*3cc25752SFrank Piva cl_mem src_buffer, 162*3cc25752SFrank Piva cl_mem dst_buffer, 163*3cc25752SFrank Piva size_t src_offset, 164*3cc25752SFrank Piva size_t dst_offset, 165*3cc25752SFrank Piva size_t size, 166*3cc25752SFrank Piva cl_uint num_sync_points_in_wait_list, 167*3cc25752SFrank Piva const cl_sync_point_khr* sync_point_wait_list, 168*3cc25752SFrank Piva cl_sync_point_khr* sync_point, 169*3cc25752SFrank Piva cl_mutable_command_khr* mutable_handle); 170*3cc25752SFrank Piva 171*3cc25752SFrank Piva typedef clCommandCopyBufferKHR_t * 172*3cc25752SFrank Piva clCommandCopyBufferKHR_fn ; 173*3cc25752SFrank Piva 174*3cc25752SFrank Piva typedef cl_int CL_API_CALL 175*3cc25752SFrank Piva clCommandCopyBufferRectKHR_t( 176*3cc25752SFrank Piva cl_command_buffer_khr command_buffer, 177*3cc25752SFrank Piva cl_command_queue command_queue, 178*3cc25752SFrank Piva cl_mem src_buffer, 179*3cc25752SFrank Piva cl_mem dst_buffer, 180*3cc25752SFrank Piva const size_t* src_origin, 181*3cc25752SFrank Piva const size_t* dst_origin, 182*3cc25752SFrank Piva const size_t* region, 183*3cc25752SFrank Piva size_t src_row_pitch, 184*3cc25752SFrank Piva size_t src_slice_pitch, 185*3cc25752SFrank Piva size_t dst_row_pitch, 186*3cc25752SFrank Piva size_t dst_slice_pitch, 187*3cc25752SFrank Piva cl_uint num_sync_points_in_wait_list, 188*3cc25752SFrank Piva const cl_sync_point_khr* sync_point_wait_list, 189*3cc25752SFrank Piva cl_sync_point_khr* sync_point, 190*3cc25752SFrank Piva cl_mutable_command_khr* mutable_handle); 191*3cc25752SFrank Piva 192*3cc25752SFrank Piva typedef clCommandCopyBufferRectKHR_t * 193*3cc25752SFrank Piva clCommandCopyBufferRectKHR_fn ; 194*3cc25752SFrank Piva 195*3cc25752SFrank Piva typedef cl_int CL_API_CALL 196*3cc25752SFrank Piva clCommandCopyBufferToImageKHR_t( 197*3cc25752SFrank Piva cl_command_buffer_khr command_buffer, 198*3cc25752SFrank Piva cl_command_queue command_queue, 199*3cc25752SFrank Piva cl_mem src_buffer, 200*3cc25752SFrank Piva cl_mem dst_image, 201*3cc25752SFrank Piva size_t src_offset, 202*3cc25752SFrank Piva const size_t* dst_origin, 203*3cc25752SFrank Piva const size_t* region, 204*3cc25752SFrank Piva cl_uint num_sync_points_in_wait_list, 205*3cc25752SFrank Piva const cl_sync_point_khr* sync_point_wait_list, 206*3cc25752SFrank Piva cl_sync_point_khr* sync_point, 207*3cc25752SFrank Piva cl_mutable_command_khr* mutable_handle); 208*3cc25752SFrank Piva 209*3cc25752SFrank Piva typedef clCommandCopyBufferToImageKHR_t * 210*3cc25752SFrank Piva clCommandCopyBufferToImageKHR_fn ; 211*3cc25752SFrank Piva 212*3cc25752SFrank Piva typedef cl_int CL_API_CALL 213*3cc25752SFrank Piva clCommandCopyImageKHR_t( 214*3cc25752SFrank Piva cl_command_buffer_khr command_buffer, 215*3cc25752SFrank Piva cl_command_queue command_queue, 216*3cc25752SFrank Piva cl_mem src_image, 217*3cc25752SFrank Piva cl_mem dst_image, 218*3cc25752SFrank Piva const size_t* src_origin, 219*3cc25752SFrank Piva const size_t* dst_origin, 220*3cc25752SFrank Piva const size_t* region, 221*3cc25752SFrank Piva cl_uint num_sync_points_in_wait_list, 222*3cc25752SFrank Piva const cl_sync_point_khr* sync_point_wait_list, 223*3cc25752SFrank Piva cl_sync_point_khr* sync_point, 224*3cc25752SFrank Piva cl_mutable_command_khr* mutable_handle); 225*3cc25752SFrank Piva 226*3cc25752SFrank Piva typedef clCommandCopyImageKHR_t * 227*3cc25752SFrank Piva clCommandCopyImageKHR_fn ; 228*3cc25752SFrank Piva 229*3cc25752SFrank Piva typedef cl_int CL_API_CALL 230*3cc25752SFrank Piva clCommandCopyImageToBufferKHR_t( 231*3cc25752SFrank Piva cl_command_buffer_khr command_buffer, 232*3cc25752SFrank Piva cl_command_queue command_queue, 233*3cc25752SFrank Piva cl_mem src_image, 234*3cc25752SFrank Piva cl_mem dst_buffer, 235*3cc25752SFrank Piva const size_t* src_origin, 236*3cc25752SFrank Piva const size_t* region, 237*3cc25752SFrank Piva size_t dst_offset, 238*3cc25752SFrank Piva cl_uint num_sync_points_in_wait_list, 239*3cc25752SFrank Piva const cl_sync_point_khr* sync_point_wait_list, 240*3cc25752SFrank Piva cl_sync_point_khr* sync_point, 241*3cc25752SFrank Piva cl_mutable_command_khr* mutable_handle); 242*3cc25752SFrank Piva 243*3cc25752SFrank Piva typedef clCommandCopyImageToBufferKHR_t * 244*3cc25752SFrank Piva clCommandCopyImageToBufferKHR_fn ; 245*3cc25752SFrank Piva 246*3cc25752SFrank Piva typedef cl_int CL_API_CALL 247*3cc25752SFrank Piva clCommandFillBufferKHR_t( 248*3cc25752SFrank Piva cl_command_buffer_khr command_buffer, 249*3cc25752SFrank Piva cl_command_queue command_queue, 250*3cc25752SFrank Piva cl_mem buffer, 251*3cc25752SFrank Piva const void* pattern, 252*3cc25752SFrank Piva size_t pattern_size, 253*3cc25752SFrank Piva size_t offset, 254*3cc25752SFrank Piva size_t size, 255*3cc25752SFrank Piva cl_uint num_sync_points_in_wait_list, 256*3cc25752SFrank Piva const cl_sync_point_khr* sync_point_wait_list, 257*3cc25752SFrank Piva cl_sync_point_khr* sync_point, 258*3cc25752SFrank Piva cl_mutable_command_khr* mutable_handle); 259*3cc25752SFrank Piva 260*3cc25752SFrank Piva typedef clCommandFillBufferKHR_t * 261*3cc25752SFrank Piva clCommandFillBufferKHR_fn ; 262*3cc25752SFrank Piva 263*3cc25752SFrank Piva typedef cl_int CL_API_CALL 264*3cc25752SFrank Piva clCommandFillImageKHR_t( 265*3cc25752SFrank Piva cl_command_buffer_khr command_buffer, 266*3cc25752SFrank Piva cl_command_queue command_queue, 267*3cc25752SFrank Piva cl_mem image, 268*3cc25752SFrank Piva const void* fill_color, 269*3cc25752SFrank Piva const size_t* origin, 270*3cc25752SFrank Piva const size_t* region, 271*3cc25752SFrank Piva cl_uint num_sync_points_in_wait_list, 272*3cc25752SFrank Piva const cl_sync_point_khr* sync_point_wait_list, 273*3cc25752SFrank Piva cl_sync_point_khr* sync_point, 274*3cc25752SFrank Piva cl_mutable_command_khr* mutable_handle); 275*3cc25752SFrank Piva 276*3cc25752SFrank Piva typedef clCommandFillImageKHR_t * 277*3cc25752SFrank Piva clCommandFillImageKHR_fn ; 278*3cc25752SFrank Piva 279*3cc25752SFrank Piva typedef cl_int CL_API_CALL 280*3cc25752SFrank Piva clCommandNDRangeKernelKHR_t( 281*3cc25752SFrank Piva cl_command_buffer_khr command_buffer, 282*3cc25752SFrank Piva cl_command_queue command_queue, 283*3cc25752SFrank Piva const cl_ndrange_kernel_command_properties_khr* properties, 284*3cc25752SFrank Piva cl_kernel kernel, 285*3cc25752SFrank Piva cl_uint work_dim, 286*3cc25752SFrank Piva const size_t* global_work_offset, 287*3cc25752SFrank Piva const size_t* global_work_size, 288*3cc25752SFrank Piva const size_t* local_work_size, 289*3cc25752SFrank Piva cl_uint num_sync_points_in_wait_list, 290*3cc25752SFrank Piva const cl_sync_point_khr* sync_point_wait_list, 291*3cc25752SFrank Piva cl_sync_point_khr* sync_point, 292*3cc25752SFrank Piva cl_mutable_command_khr* mutable_handle); 293*3cc25752SFrank Piva 294*3cc25752SFrank Piva typedef clCommandNDRangeKernelKHR_t * 295*3cc25752SFrank Piva clCommandNDRangeKernelKHR_fn ; 296*3cc25752SFrank Piva 297*3cc25752SFrank Piva typedef cl_int CL_API_CALL 298*3cc25752SFrank Piva clCommandSVMMemcpyKHR_t( 299*3cc25752SFrank Piva cl_command_buffer_khr command_buffer, 300*3cc25752SFrank Piva cl_command_queue command_queue, 301*3cc25752SFrank Piva void* dst_ptr, 302*3cc25752SFrank Piva const void* src_ptr, 303*3cc25752SFrank Piva size_t size, 304*3cc25752SFrank Piva cl_uint num_sync_points_in_wait_list, 305*3cc25752SFrank Piva const cl_sync_point_khr* sync_point_wait_list, 306*3cc25752SFrank Piva cl_sync_point_khr* sync_point, 307*3cc25752SFrank Piva cl_mutable_command_khr* mutable_handle); 308*3cc25752SFrank Piva 309*3cc25752SFrank Piva typedef clCommandSVMMemcpyKHR_t * 310*3cc25752SFrank Piva clCommandSVMMemcpyKHR_fn CL_API_SUFFIX__VERSION_2_0; 311*3cc25752SFrank Piva 312*3cc25752SFrank Piva typedef cl_int CL_API_CALL 313*3cc25752SFrank Piva clCommandSVMMemFillKHR_t( 314*3cc25752SFrank Piva cl_command_buffer_khr command_buffer, 315*3cc25752SFrank Piva cl_command_queue command_queue, 316*3cc25752SFrank Piva void* svm_ptr, 317*3cc25752SFrank Piva const void* pattern, 318*3cc25752SFrank Piva size_t pattern_size, 319*3cc25752SFrank Piva size_t size, 320*3cc25752SFrank Piva cl_uint num_sync_points_in_wait_list, 321*3cc25752SFrank Piva const cl_sync_point_khr* sync_point_wait_list, 322*3cc25752SFrank Piva cl_sync_point_khr* sync_point, 323*3cc25752SFrank Piva cl_mutable_command_khr* mutable_handle); 324*3cc25752SFrank Piva 325*3cc25752SFrank Piva typedef clCommandSVMMemFillKHR_t * 326*3cc25752SFrank Piva clCommandSVMMemFillKHR_fn CL_API_SUFFIX__VERSION_2_0; 327*3cc25752SFrank Piva 328*3cc25752SFrank Piva typedef cl_int CL_API_CALL 329*3cc25752SFrank Piva clGetCommandBufferInfoKHR_t( 330*3cc25752SFrank Piva cl_command_buffer_khr command_buffer, 331*3cc25752SFrank Piva cl_command_buffer_info_khr param_name, 332*3cc25752SFrank Piva size_t param_value_size, 333*3cc25752SFrank Piva void* param_value, 334*3cc25752SFrank Piva size_t* param_value_size_ret); 335*3cc25752SFrank Piva 336*3cc25752SFrank Piva typedef clGetCommandBufferInfoKHR_t * 337*3cc25752SFrank Piva clGetCommandBufferInfoKHR_fn ; 338*3cc25752SFrank Piva 339*3cc25752SFrank Piva #if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) 340*3cc25752SFrank Piva 341*3cc25752SFrank Piva extern CL_API_ENTRY cl_command_buffer_khr CL_API_CALL 342*3cc25752SFrank Piva clCreateCommandBufferKHR( 343*3cc25752SFrank Piva cl_uint num_queues, 344*3cc25752SFrank Piva const cl_command_queue* queues, 345*3cc25752SFrank Piva const cl_command_buffer_properties_khr* properties, 346*3cc25752SFrank Piva cl_int* errcode_ret) ; 347*3cc25752SFrank Piva 348*3cc25752SFrank Piva extern CL_API_ENTRY cl_int CL_API_CALL 349*3cc25752SFrank Piva clFinalizeCommandBufferKHR( 350*3cc25752SFrank Piva cl_command_buffer_khr command_buffer) ; 351*3cc25752SFrank Piva 352*3cc25752SFrank Piva extern CL_API_ENTRY cl_int CL_API_CALL 353*3cc25752SFrank Piva clRetainCommandBufferKHR( 354*3cc25752SFrank Piva cl_command_buffer_khr command_buffer) ; 355*3cc25752SFrank Piva 356*3cc25752SFrank Piva extern CL_API_ENTRY cl_int CL_API_CALL 357*3cc25752SFrank Piva clReleaseCommandBufferKHR( 358*3cc25752SFrank Piva cl_command_buffer_khr command_buffer) ; 359*3cc25752SFrank Piva 360*3cc25752SFrank Piva extern CL_API_ENTRY cl_int CL_API_CALL 361*3cc25752SFrank Piva clEnqueueCommandBufferKHR( 362*3cc25752SFrank Piva cl_uint num_queues, 363*3cc25752SFrank Piva cl_command_queue* queues, 364*3cc25752SFrank Piva cl_command_buffer_khr command_buffer, 365*3cc25752SFrank Piva cl_uint num_events_in_wait_list, 366*3cc25752SFrank Piva const cl_event* event_wait_list, 367*3cc25752SFrank Piva cl_event* event) ; 368*3cc25752SFrank Piva 369*3cc25752SFrank Piva extern CL_API_ENTRY cl_int CL_API_CALL 370*3cc25752SFrank Piva clCommandBarrierWithWaitListKHR( 371*3cc25752SFrank Piva cl_command_buffer_khr command_buffer, 372*3cc25752SFrank Piva cl_command_queue command_queue, 373*3cc25752SFrank Piva cl_uint num_sync_points_in_wait_list, 374*3cc25752SFrank Piva const cl_sync_point_khr* sync_point_wait_list, 375*3cc25752SFrank Piva cl_sync_point_khr* sync_point, 376*3cc25752SFrank Piva cl_mutable_command_khr* mutable_handle) ; 377*3cc25752SFrank Piva 378*3cc25752SFrank Piva extern CL_API_ENTRY cl_int CL_API_CALL 379*3cc25752SFrank Piva clCommandCopyBufferKHR( 380*3cc25752SFrank Piva cl_command_buffer_khr command_buffer, 381*3cc25752SFrank Piva cl_command_queue command_queue, 382*3cc25752SFrank Piva cl_mem src_buffer, 383*3cc25752SFrank Piva cl_mem dst_buffer, 384*3cc25752SFrank Piva size_t src_offset, 385*3cc25752SFrank Piva size_t dst_offset, 386*3cc25752SFrank Piva size_t size, 387*3cc25752SFrank Piva cl_uint num_sync_points_in_wait_list, 388*3cc25752SFrank Piva const cl_sync_point_khr* sync_point_wait_list, 389*3cc25752SFrank Piva cl_sync_point_khr* sync_point, 390*3cc25752SFrank Piva cl_mutable_command_khr* mutable_handle) ; 391*3cc25752SFrank Piva 392*3cc25752SFrank Piva extern CL_API_ENTRY cl_int CL_API_CALL 393*3cc25752SFrank Piva clCommandCopyBufferRectKHR( 394*3cc25752SFrank Piva cl_command_buffer_khr command_buffer, 395*3cc25752SFrank Piva cl_command_queue command_queue, 396*3cc25752SFrank Piva cl_mem src_buffer, 397*3cc25752SFrank Piva cl_mem dst_buffer, 398*3cc25752SFrank Piva const size_t* src_origin, 399*3cc25752SFrank Piva const size_t* dst_origin, 400*3cc25752SFrank Piva const size_t* region, 401*3cc25752SFrank Piva size_t src_row_pitch, 402*3cc25752SFrank Piva size_t src_slice_pitch, 403*3cc25752SFrank Piva size_t dst_row_pitch, 404*3cc25752SFrank Piva size_t dst_slice_pitch, 405*3cc25752SFrank Piva cl_uint num_sync_points_in_wait_list, 406*3cc25752SFrank Piva const cl_sync_point_khr* sync_point_wait_list, 407*3cc25752SFrank Piva cl_sync_point_khr* sync_point, 408*3cc25752SFrank Piva cl_mutable_command_khr* mutable_handle) ; 409*3cc25752SFrank Piva 410*3cc25752SFrank Piva extern CL_API_ENTRY cl_int CL_API_CALL 411*3cc25752SFrank Piva clCommandCopyBufferToImageKHR( 412*3cc25752SFrank Piva cl_command_buffer_khr command_buffer, 413*3cc25752SFrank Piva cl_command_queue command_queue, 414*3cc25752SFrank Piva cl_mem src_buffer, 415*3cc25752SFrank Piva cl_mem dst_image, 416*3cc25752SFrank Piva size_t src_offset, 417*3cc25752SFrank Piva const size_t* dst_origin, 418*3cc25752SFrank Piva const size_t* region, 419*3cc25752SFrank Piva cl_uint num_sync_points_in_wait_list, 420*3cc25752SFrank Piva const cl_sync_point_khr* sync_point_wait_list, 421*3cc25752SFrank Piva cl_sync_point_khr* sync_point, 422*3cc25752SFrank Piva cl_mutable_command_khr* mutable_handle) ; 423*3cc25752SFrank Piva 424*3cc25752SFrank Piva extern CL_API_ENTRY cl_int CL_API_CALL 425*3cc25752SFrank Piva clCommandCopyImageKHR( 426*3cc25752SFrank Piva cl_command_buffer_khr command_buffer, 427*3cc25752SFrank Piva cl_command_queue command_queue, 428*3cc25752SFrank Piva cl_mem src_image, 429*3cc25752SFrank Piva cl_mem dst_image, 430*3cc25752SFrank Piva const size_t* src_origin, 431*3cc25752SFrank Piva const size_t* dst_origin, 432*3cc25752SFrank Piva const size_t* region, 433*3cc25752SFrank Piva cl_uint num_sync_points_in_wait_list, 434*3cc25752SFrank Piva const cl_sync_point_khr* sync_point_wait_list, 435*3cc25752SFrank Piva cl_sync_point_khr* sync_point, 436*3cc25752SFrank Piva cl_mutable_command_khr* mutable_handle) ; 437*3cc25752SFrank Piva 438*3cc25752SFrank Piva extern CL_API_ENTRY cl_int CL_API_CALL 439*3cc25752SFrank Piva clCommandCopyImageToBufferKHR( 440*3cc25752SFrank Piva cl_command_buffer_khr command_buffer, 441*3cc25752SFrank Piva cl_command_queue command_queue, 442*3cc25752SFrank Piva cl_mem src_image, 443*3cc25752SFrank Piva cl_mem dst_buffer, 444*3cc25752SFrank Piva const size_t* src_origin, 445*3cc25752SFrank Piva const size_t* region, 446*3cc25752SFrank Piva size_t dst_offset, 447*3cc25752SFrank Piva cl_uint num_sync_points_in_wait_list, 448*3cc25752SFrank Piva const cl_sync_point_khr* sync_point_wait_list, 449*3cc25752SFrank Piva cl_sync_point_khr* sync_point, 450*3cc25752SFrank Piva cl_mutable_command_khr* mutable_handle) ; 451*3cc25752SFrank Piva 452*3cc25752SFrank Piva extern CL_API_ENTRY cl_int CL_API_CALL 453*3cc25752SFrank Piva clCommandFillBufferKHR( 454*3cc25752SFrank Piva cl_command_buffer_khr command_buffer, 455*3cc25752SFrank Piva cl_command_queue command_queue, 456*3cc25752SFrank Piva cl_mem buffer, 457*3cc25752SFrank Piva const void* pattern, 458*3cc25752SFrank Piva size_t pattern_size, 459*3cc25752SFrank Piva size_t offset, 460*3cc25752SFrank Piva size_t size, 461*3cc25752SFrank Piva cl_uint num_sync_points_in_wait_list, 462*3cc25752SFrank Piva const cl_sync_point_khr* sync_point_wait_list, 463*3cc25752SFrank Piva cl_sync_point_khr* sync_point, 464*3cc25752SFrank Piva cl_mutable_command_khr* mutable_handle) ; 465*3cc25752SFrank Piva 466*3cc25752SFrank Piva extern CL_API_ENTRY cl_int CL_API_CALL 467*3cc25752SFrank Piva clCommandFillImageKHR( 468*3cc25752SFrank Piva cl_command_buffer_khr command_buffer, 469*3cc25752SFrank Piva cl_command_queue command_queue, 470*3cc25752SFrank Piva cl_mem image, 471*3cc25752SFrank Piva const void* fill_color, 472*3cc25752SFrank Piva const size_t* origin, 473*3cc25752SFrank Piva const size_t* region, 474*3cc25752SFrank Piva cl_uint num_sync_points_in_wait_list, 475*3cc25752SFrank Piva const cl_sync_point_khr* sync_point_wait_list, 476*3cc25752SFrank Piva cl_sync_point_khr* sync_point, 477*3cc25752SFrank Piva cl_mutable_command_khr* mutable_handle) ; 478*3cc25752SFrank Piva 479*3cc25752SFrank Piva extern CL_API_ENTRY cl_int CL_API_CALL 480*3cc25752SFrank Piva clCommandNDRangeKernelKHR( 481*3cc25752SFrank Piva cl_command_buffer_khr command_buffer, 482*3cc25752SFrank Piva cl_command_queue command_queue, 483*3cc25752SFrank Piva const cl_ndrange_kernel_command_properties_khr* properties, 484*3cc25752SFrank Piva cl_kernel kernel, 485*3cc25752SFrank Piva cl_uint work_dim, 486*3cc25752SFrank Piva const size_t* global_work_offset, 487*3cc25752SFrank Piva const size_t* global_work_size, 488*3cc25752SFrank Piva const size_t* local_work_size, 489*3cc25752SFrank Piva cl_uint num_sync_points_in_wait_list, 490*3cc25752SFrank Piva const cl_sync_point_khr* sync_point_wait_list, 491*3cc25752SFrank Piva cl_sync_point_khr* sync_point, 492*3cc25752SFrank Piva cl_mutable_command_khr* mutable_handle) ; 493*3cc25752SFrank Piva 494*3cc25752SFrank Piva extern CL_API_ENTRY cl_int CL_API_CALL 495*3cc25752SFrank Piva clCommandSVMMemcpyKHR( 496*3cc25752SFrank Piva cl_command_buffer_khr command_buffer, 497*3cc25752SFrank Piva cl_command_queue command_queue, 498*3cc25752SFrank Piva void* dst_ptr, 499*3cc25752SFrank Piva const void* src_ptr, 500*3cc25752SFrank Piva size_t size, 501*3cc25752SFrank Piva cl_uint num_sync_points_in_wait_list, 502*3cc25752SFrank Piva const cl_sync_point_khr* sync_point_wait_list, 503*3cc25752SFrank Piva cl_sync_point_khr* sync_point, 504*3cc25752SFrank Piva cl_mutable_command_khr* mutable_handle) CL_API_SUFFIX__VERSION_2_0; 505*3cc25752SFrank Piva 506*3cc25752SFrank Piva extern CL_API_ENTRY cl_int CL_API_CALL 507*3cc25752SFrank Piva clCommandSVMMemFillKHR( 508*3cc25752SFrank Piva cl_command_buffer_khr command_buffer, 509*3cc25752SFrank Piva cl_command_queue command_queue, 510*3cc25752SFrank Piva void* svm_ptr, 511*3cc25752SFrank Piva const void* pattern, 512*3cc25752SFrank Piva size_t pattern_size, 513*3cc25752SFrank Piva size_t size, 514*3cc25752SFrank Piva cl_uint num_sync_points_in_wait_list, 515*3cc25752SFrank Piva const cl_sync_point_khr* sync_point_wait_list, 516*3cc25752SFrank Piva cl_sync_point_khr* sync_point, 517*3cc25752SFrank Piva cl_mutable_command_khr* mutable_handle) CL_API_SUFFIX__VERSION_2_0; 518*3cc25752SFrank Piva 519*3cc25752SFrank Piva extern CL_API_ENTRY cl_int CL_API_CALL 520*3cc25752SFrank Piva clGetCommandBufferInfoKHR( 521*3cc25752SFrank Piva cl_command_buffer_khr command_buffer, 522*3cc25752SFrank Piva cl_command_buffer_info_khr param_name, 523*3cc25752SFrank Piva size_t param_value_size, 524*3cc25752SFrank Piva void* param_value, 525*3cc25752SFrank Piva size_t* param_value_size_ret) ; 526*3cc25752SFrank Piva 527*3cc25752SFrank Piva #endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ 528*3cc25752SFrank Piva 529*3cc25752SFrank Piva /*************************************************************** 530*3cc25752SFrank Piva * cl_khr_command_buffer_multi_device 531*3cc25752SFrank Piva ***************************************************************/ 532*3cc25752SFrank Piva #define cl_khr_command_buffer_multi_device 1 533*3cc25752SFrank Piva #define CL_KHR_COMMAND_BUFFER_MULTI_DEVICE_EXTENSION_NAME \ 534*3cc25752SFrank Piva "cl_khr_command_buffer_multi_device" 535*3cc25752SFrank Piva 536*3cc25752SFrank Piva typedef cl_bitfield cl_platform_command_buffer_capabilities_khr; 537*3cc25752SFrank Piva 538*3cc25752SFrank Piva /* cl_platform_info */ 539*3cc25752SFrank Piva #define CL_PLATFORM_COMMAND_BUFFER_CAPABILITIES_KHR 0x0908 540*3cc25752SFrank Piva 541*3cc25752SFrank Piva /* cl_platform_command_buffer_capabilities_khr - bitfield */ 542*3cc25752SFrank Piva #define CL_COMMAND_BUFFER_PLATFORM_UNIVERSAL_SYNC_KHR (1 << 0) 543*3cc25752SFrank Piva #define CL_COMMAND_BUFFER_PLATFORM_REMAP_QUEUES_KHR (1 << 1) 544*3cc25752SFrank Piva #define CL_COMMAND_BUFFER_PLATFORM_AUTOMATIC_REMAP_KHR (1 << 2) 545*3cc25752SFrank Piva 546*3cc25752SFrank Piva /* cl_device_info */ 547*3cc25752SFrank Piva #define CL_DEVICE_COMMAND_BUFFER_NUM_SYNC_DEVICES_KHR 0x12AB 548*3cc25752SFrank Piva #define CL_DEVICE_COMMAND_BUFFER_SYNC_DEVICES_KHR 0x12AC 549*3cc25752SFrank Piva 550*3cc25752SFrank Piva /* cl_device_command_buffer_capabilities_khr - bitfield */ 551*3cc25752SFrank Piva #define CL_COMMAND_BUFFER_CAPABILITY_MULTIPLE_QUEUE_KHR (1 << 4) 552*3cc25752SFrank Piva 553*3cc25752SFrank Piva /* cl_command_buffer_flags_khr - bitfield */ 554*3cc25752SFrank Piva #define CL_COMMAND_BUFFER_DEVICE_SIDE_SYNC_KHR (1 << 2) 555*3cc25752SFrank Piva 556*3cc25752SFrank Piva 557*3cc25752SFrank Piva typedef cl_command_buffer_khr CL_API_CALL 558*3cc25752SFrank Piva clRemapCommandBufferKHR_t( 559*3cc25752SFrank Piva cl_command_buffer_khr command_buffer, 560*3cc25752SFrank Piva cl_bool automatic, 561*3cc25752SFrank Piva cl_uint num_queues, 562*3cc25752SFrank Piva const cl_command_queue* queues, 563*3cc25752SFrank Piva cl_uint num_handles, 564*3cc25752SFrank Piva const cl_mutable_command_khr* handles, 565*3cc25752SFrank Piva cl_mutable_command_khr* handles_ret, 566*3cc25752SFrank Piva cl_int* errcode_ret); 567*3cc25752SFrank Piva 568*3cc25752SFrank Piva typedef clRemapCommandBufferKHR_t * 569*3cc25752SFrank Piva clRemapCommandBufferKHR_fn ; 570*3cc25752SFrank Piva 571*3cc25752SFrank Piva #if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) 572*3cc25752SFrank Piva 573*3cc25752SFrank Piva extern CL_API_ENTRY cl_command_buffer_khr CL_API_CALL 574*3cc25752SFrank Piva clRemapCommandBufferKHR( 575*3cc25752SFrank Piva cl_command_buffer_khr command_buffer, 576*3cc25752SFrank Piva cl_bool automatic, 577*3cc25752SFrank Piva cl_uint num_queues, 578*3cc25752SFrank Piva const cl_command_queue* queues, 579*3cc25752SFrank Piva cl_uint num_handles, 580*3cc25752SFrank Piva const cl_mutable_command_khr* handles, 581*3cc25752SFrank Piva cl_mutable_command_khr* handles_ret, 582*3cc25752SFrank Piva cl_int* errcode_ret) ; 583*3cc25752SFrank Piva 584*3cc25752SFrank Piva #endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ 585*3cc25752SFrank Piva 586*3cc25752SFrank Piva /*************************************************************** 587*3cc25752SFrank Piva * cl_khr_command_buffer_mutable_dispatch 588*3cc25752SFrank Piva ***************************************************************/ 589*3cc25752SFrank Piva #define cl_khr_command_buffer_mutable_dispatch 1 590*3cc25752SFrank Piva #define CL_KHR_COMMAND_BUFFER_MUTABLE_DISPATCH_EXTENSION_NAME \ 591*3cc25752SFrank Piva "cl_khr_command_buffer_mutable_dispatch" 592*3cc25752SFrank Piva 593*3cc25752SFrank Piva typedef cl_uint cl_command_buffer_structure_type_khr; 594*3cc25752SFrank Piva typedef cl_bitfield cl_mutable_dispatch_fields_khr; 595*3cc25752SFrank Piva typedef cl_uint cl_mutable_command_info_khr; 596*3cc25752SFrank Piva typedef struct _cl_mutable_dispatch_arg_khr { 597*3cc25752SFrank Piva cl_uint arg_index; 598*3cc25752SFrank Piva size_t arg_size; 599*3cc25752SFrank Piva const void* arg_value; 600*3cc25752SFrank Piva } cl_mutable_dispatch_arg_khr; 601*3cc25752SFrank Piva typedef struct _cl_mutable_dispatch_exec_info_khr { 602*3cc25752SFrank Piva cl_uint param_name; 603*3cc25752SFrank Piva size_t param_value_size; 604*3cc25752SFrank Piva const void* param_value; 605*3cc25752SFrank Piva } cl_mutable_dispatch_exec_info_khr; 606*3cc25752SFrank Piva typedef struct _cl_mutable_dispatch_config_khr { 607*3cc25752SFrank Piva cl_command_buffer_structure_type_khr type; 608*3cc25752SFrank Piva const void* next; 609*3cc25752SFrank Piva cl_mutable_command_khr command; 610*3cc25752SFrank Piva cl_uint num_args; 611*3cc25752SFrank Piva cl_uint num_svm_args; 612*3cc25752SFrank Piva cl_uint num_exec_infos; 613*3cc25752SFrank Piva cl_uint work_dim; 614*3cc25752SFrank Piva const cl_mutable_dispatch_arg_khr* arg_list; 615*3cc25752SFrank Piva const cl_mutable_dispatch_arg_khr* arg_svm_list; 616*3cc25752SFrank Piva const cl_mutable_dispatch_exec_info_khr* exec_info_list; 617*3cc25752SFrank Piva const size_t* global_work_offset; 618*3cc25752SFrank Piva const size_t* global_work_size; 619*3cc25752SFrank Piva const size_t* local_work_size; 620*3cc25752SFrank Piva } cl_mutable_dispatch_config_khr; 621*3cc25752SFrank Piva typedef struct _cl_mutable_base_config_khr { 622*3cc25752SFrank Piva cl_command_buffer_structure_type_khr type; 623*3cc25752SFrank Piva const void* next; 624*3cc25752SFrank Piva cl_uint num_mutable_dispatch; 625*3cc25752SFrank Piva const cl_mutable_dispatch_config_khr* mutable_dispatch_list; 626*3cc25752SFrank Piva } cl_mutable_base_config_khr; 627*3cc25752SFrank Piva 628*3cc25752SFrank Piva /* cl_command_buffer_flags_khr - bitfield */ 629*3cc25752SFrank Piva #define CL_COMMAND_BUFFER_MUTABLE_KHR (1 << 1) 630*3cc25752SFrank Piva 631*3cc25752SFrank Piva /* Error codes */ 632*3cc25752SFrank Piva #define CL_INVALID_MUTABLE_COMMAND_KHR -1141 633*3cc25752SFrank Piva 634*3cc25752SFrank Piva /* cl_device_info */ 635*3cc25752SFrank Piva #define CL_DEVICE_MUTABLE_DISPATCH_CAPABILITIES_KHR 0x12B0 636*3cc25752SFrank Piva 637*3cc25752SFrank Piva /* cl_ndrange_kernel_command_properties_khr */ 638*3cc25752SFrank Piva #define CL_MUTABLE_DISPATCH_UPDATABLE_FIELDS_KHR 0x12B1 639*3cc25752SFrank Piva 640*3cc25752SFrank Piva /* cl_mutable_dispatch_fields_khr - bitfield */ 641*3cc25752SFrank Piva #define CL_MUTABLE_DISPATCH_GLOBAL_OFFSET_KHR (1 << 0) 642*3cc25752SFrank Piva #define CL_MUTABLE_DISPATCH_GLOBAL_SIZE_KHR (1 << 1) 643*3cc25752SFrank Piva #define CL_MUTABLE_DISPATCH_LOCAL_SIZE_KHR (1 << 2) 644*3cc25752SFrank Piva #define CL_MUTABLE_DISPATCH_ARGUMENTS_KHR (1 << 3) 645*3cc25752SFrank Piva #define CL_MUTABLE_DISPATCH_EXEC_INFO_KHR (1 << 4) 646*3cc25752SFrank Piva 647*3cc25752SFrank Piva /* cl_mutable_command_info_khr */ 648*3cc25752SFrank Piva #define CL_MUTABLE_COMMAND_COMMAND_QUEUE_KHR 0x12A0 649*3cc25752SFrank Piva #define CL_MUTABLE_COMMAND_COMMAND_BUFFER_KHR 0x12A1 650*3cc25752SFrank Piva #define CL_MUTABLE_COMMAND_COMMAND_TYPE_KHR 0x12AD 651*3cc25752SFrank Piva #define CL_MUTABLE_DISPATCH_PROPERTIES_ARRAY_KHR 0x12A2 652*3cc25752SFrank Piva #define CL_MUTABLE_DISPATCH_KERNEL_KHR 0x12A3 653*3cc25752SFrank Piva #define CL_MUTABLE_DISPATCH_DIMENSIONS_KHR 0x12A4 654*3cc25752SFrank Piva #define CL_MUTABLE_DISPATCH_GLOBAL_WORK_OFFSET_KHR 0x12A5 655*3cc25752SFrank Piva #define CL_MUTABLE_DISPATCH_GLOBAL_WORK_SIZE_KHR 0x12A6 656*3cc25752SFrank Piva #define CL_MUTABLE_DISPATCH_LOCAL_WORK_SIZE_KHR 0x12A7 657*3cc25752SFrank Piva 658*3cc25752SFrank Piva /* cl_command_buffer_structure_type_khr */ 659*3cc25752SFrank Piva #define CL_STRUCTURE_TYPE_MUTABLE_BASE_CONFIG_KHR 0 660*3cc25752SFrank Piva #define CL_STRUCTURE_TYPE_MUTABLE_DISPATCH_CONFIG_KHR 1 661*3cc25752SFrank Piva 662*3cc25752SFrank Piva 663*3cc25752SFrank Piva typedef cl_int CL_API_CALL 664*3cc25752SFrank Piva clUpdateMutableCommandsKHR_t( 665*3cc25752SFrank Piva cl_command_buffer_khr command_buffer, 666*3cc25752SFrank Piva const cl_mutable_base_config_khr* mutable_config); 667*3cc25752SFrank Piva 668*3cc25752SFrank Piva typedef clUpdateMutableCommandsKHR_t * 669*3cc25752SFrank Piva clUpdateMutableCommandsKHR_fn ; 670*3cc25752SFrank Piva 671*3cc25752SFrank Piva typedef cl_int CL_API_CALL 672*3cc25752SFrank Piva clGetMutableCommandInfoKHR_t( 673*3cc25752SFrank Piva cl_mutable_command_khr command, 674*3cc25752SFrank Piva cl_mutable_command_info_khr param_name, 675*3cc25752SFrank Piva size_t param_value_size, 676*3cc25752SFrank Piva void* param_value, 677*3cc25752SFrank Piva size_t* param_value_size_ret); 678*3cc25752SFrank Piva 679*3cc25752SFrank Piva typedef clGetMutableCommandInfoKHR_t * 680*3cc25752SFrank Piva clGetMutableCommandInfoKHR_fn ; 681*3cc25752SFrank Piva 682*3cc25752SFrank Piva #if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) 683*3cc25752SFrank Piva 684*3cc25752SFrank Piva extern CL_API_ENTRY cl_int CL_API_CALL 685*3cc25752SFrank Piva clUpdateMutableCommandsKHR( 686*3cc25752SFrank Piva cl_command_buffer_khr command_buffer, 687*3cc25752SFrank Piva const cl_mutable_base_config_khr* mutable_config) ; 688*3cc25752SFrank Piva 689*3cc25752SFrank Piva extern CL_API_ENTRY cl_int CL_API_CALL 690*3cc25752SFrank Piva clGetMutableCommandInfoKHR( 691*3cc25752SFrank Piva cl_mutable_command_khr command, 692*3cc25752SFrank Piva cl_mutable_command_info_khr param_name, 693*3cc25752SFrank Piva size_t param_value_size, 694*3cc25752SFrank Piva void* param_value, 695*3cc25752SFrank Piva size_t* param_value_size_ret) ; 696*3cc25752SFrank Piva 697*3cc25752SFrank Piva #endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ 698*3cc25752SFrank Piva 699*3cc25752SFrank Piva /*************************************************************** 700*3cc25752SFrank Piva * cl_khr_fp64 701*3cc25752SFrank Piva ***************************************************************/ 702*3cc25752SFrank Piva #define cl_khr_fp64 1 703*3cc25752SFrank Piva #define CL_KHR_FP64_EXTENSION_NAME \ 704*3cc25752SFrank Piva "cl_khr_fp64" 705*3cc25752SFrank Piva 706*3cc25752SFrank Piva #if !defined(CL_VERSION_1_2) 707*3cc25752SFrank Piva /* cl_device_info - defined in CL.h for OpenCL 1.2 and newer */ 708*3cc25752SFrank Piva #define CL_DEVICE_DOUBLE_FP_CONFIG 0x1032 709*3cc25752SFrank Piva 710*3cc25752SFrank Piva #endif /* !defined(CL_VERSION_1_2) */ 711*3cc25752SFrank Piva 712*3cc25752SFrank Piva /*************************************************************** 713*3cc25752SFrank Piva * cl_khr_fp16 714*3cc25752SFrank Piva ***************************************************************/ 715*3cc25752SFrank Piva #define cl_khr_fp16 1 716*3cc25752SFrank Piva #define CL_KHR_FP16_EXTENSION_NAME \ 717*3cc25752SFrank Piva "cl_khr_fp16" 718*3cc25752SFrank Piva 719*3cc25752SFrank Piva /* cl_device_info */ 720*3cc25752SFrank Piva #define CL_DEVICE_HALF_FP_CONFIG 0x1033 721*3cc25752SFrank Piva 722*3cc25752SFrank Piva /*************************************************************** 723*3cc25752SFrank Piva * cl_APPLE_SetMemObjectDestructor 724*3cc25752SFrank Piva ***************************************************************/ 725*3cc25752SFrank Piva #define cl_APPLE_SetMemObjectDestructor 1 726*3cc25752SFrank Piva #define CL_APPLE_SETMEMOBJECTDESTRUCTOR_EXTENSION_NAME \ 727*3cc25752SFrank Piva "cl_APPLE_SetMemObjectDestructor" 728*3cc25752SFrank Piva 729*3cc25752SFrank Piva 730*3cc25752SFrank Piva typedef cl_int CL_API_CALL 731*3cc25752SFrank Piva clSetMemObjectDestructorAPPLE_t( 732*3cc25752SFrank Piva cl_mem memobj, 733*3cc25752SFrank Piva void (CL_CALLBACK* pfn_notify)(cl_mem memobj, void* user_data), 734*3cc25752SFrank Piva void* user_data); 735*3cc25752SFrank Piva 736*3cc25752SFrank Piva typedef clSetMemObjectDestructorAPPLE_t * 737*3cc25752SFrank Piva clSetMemObjectDestructorAPPLE_fn CL_API_SUFFIX__VERSION_1_0; 738*3cc25752SFrank Piva 739*3cc25752SFrank Piva #if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) 740*3cc25752SFrank Piva 741*3cc25752SFrank Piva extern CL_API_ENTRY cl_int CL_API_CALL 742*3cc25752SFrank Piva clSetMemObjectDestructorAPPLE( 743*3cc25752SFrank Piva cl_mem memobj, 744*3cc25752SFrank Piva void (CL_CALLBACK* pfn_notify)(cl_mem memobj, void* user_data), 745*3cc25752SFrank Piva void* user_data) CL_API_SUFFIX__VERSION_1_0; 746*3cc25752SFrank Piva 747*3cc25752SFrank Piva #endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ 748*3cc25752SFrank Piva 749*3cc25752SFrank Piva /*************************************************************** 750*3cc25752SFrank Piva * cl_APPLE_ContextLoggingFunctions 751*3cc25752SFrank Piva ***************************************************************/ 752*3cc25752SFrank Piva #define cl_APPLE_ContextLoggingFunctions 1 753*3cc25752SFrank Piva #define CL_APPLE_CONTEXTLOGGINGFUNCTIONS_EXTENSION_NAME \ 754*3cc25752SFrank Piva "cl_APPLE_ContextLoggingFunctions" 755*3cc25752SFrank Piva 756*3cc25752SFrank Piva 757*3cc25752SFrank Piva typedef void CL_API_CALL 758*3cc25752SFrank Piva clLogMessagesToSystemLogAPPLE_t( 759*3cc25752SFrank Piva const char* errstr, 760*3cc25752SFrank Piva const void* private_info, 761*3cc25752SFrank Piva size_t cb, 762*3cc25752SFrank Piva void* user_data); 763*3cc25752SFrank Piva 764*3cc25752SFrank Piva typedef clLogMessagesToSystemLogAPPLE_t * 765*3cc25752SFrank Piva clLogMessagesToSystemLogAPPLE_fn CL_API_SUFFIX__VERSION_1_0; 766*3cc25752SFrank Piva 767*3cc25752SFrank Piva typedef void CL_API_CALL 768*3cc25752SFrank Piva clLogMessagesToStdoutAPPLE_t( 769*3cc25752SFrank Piva const char* errstr, 770*3cc25752SFrank Piva const void* private_info, 771*3cc25752SFrank Piva size_t cb, 772*3cc25752SFrank Piva void* user_data); 773*3cc25752SFrank Piva 774*3cc25752SFrank Piva typedef clLogMessagesToStdoutAPPLE_t * 775*3cc25752SFrank Piva clLogMessagesToStdoutAPPLE_fn CL_API_SUFFIX__VERSION_1_0; 776*3cc25752SFrank Piva 777*3cc25752SFrank Piva typedef void CL_API_CALL 778*3cc25752SFrank Piva clLogMessagesToStderrAPPLE_t( 779*3cc25752SFrank Piva const char* errstr, 780*3cc25752SFrank Piva const void* private_info, 781*3cc25752SFrank Piva size_t cb, 782*3cc25752SFrank Piva void* user_data); 783*3cc25752SFrank Piva 784*3cc25752SFrank Piva typedef clLogMessagesToStderrAPPLE_t * 785*3cc25752SFrank Piva clLogMessagesToStderrAPPLE_fn CL_API_SUFFIX__VERSION_1_0; 786*3cc25752SFrank Piva 787*3cc25752SFrank Piva #if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) 788*3cc25752SFrank Piva 789*3cc25752SFrank Piva extern CL_API_ENTRY void CL_API_CALL 790*3cc25752SFrank Piva clLogMessagesToSystemLogAPPLE( 791*3cc25752SFrank Piva const char* errstr, 792*3cc25752SFrank Piva const void* private_info, 793*3cc25752SFrank Piva size_t cb, 794*3cc25752SFrank Piva void* user_data) CL_API_SUFFIX__VERSION_1_0; 795*3cc25752SFrank Piva 796*3cc25752SFrank Piva extern CL_API_ENTRY void CL_API_CALL 797*3cc25752SFrank Piva clLogMessagesToStdoutAPPLE( 798*3cc25752SFrank Piva const char* errstr, 799*3cc25752SFrank Piva const void* private_info, 800*3cc25752SFrank Piva size_t cb, 801*3cc25752SFrank Piva void* user_data) CL_API_SUFFIX__VERSION_1_0; 802*3cc25752SFrank Piva 803*3cc25752SFrank Piva extern CL_API_ENTRY void CL_API_CALL 804*3cc25752SFrank Piva clLogMessagesToStderrAPPLE( 805*3cc25752SFrank Piva const char* errstr, 806*3cc25752SFrank Piva const void* private_info, 807*3cc25752SFrank Piva size_t cb, 808*3cc25752SFrank Piva void* user_data) CL_API_SUFFIX__VERSION_1_0; 809*3cc25752SFrank Piva 810*3cc25752SFrank Piva #endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ 811*3cc25752SFrank Piva 812*3cc25752SFrank Piva /*************************************************************** 813*3cc25752SFrank Piva * cl_khr_icd 814*3cc25752SFrank Piva ***************************************************************/ 815*3cc25752SFrank Piva #define cl_khr_icd 1 816*3cc25752SFrank Piva #define CL_KHR_ICD_EXTENSION_NAME \ 817*3cc25752SFrank Piva "cl_khr_icd" 818*3cc25752SFrank Piva 819*3cc25752SFrank Piva /* cl_platform_info */ 820*3cc25752SFrank Piva #define CL_PLATFORM_ICD_SUFFIX_KHR 0x0920 821*3cc25752SFrank Piva 822*3cc25752SFrank Piva /* Error codes */ 823*3cc25752SFrank Piva #define CL_PLATFORM_NOT_FOUND_KHR -1001 824*3cc25752SFrank Piva 825*3cc25752SFrank Piva 826*3cc25752SFrank Piva typedef cl_int CL_API_CALL 827*3cc25752SFrank Piva clIcdGetPlatformIDsKHR_t( 828*3cc25752SFrank Piva cl_uint num_entries, 829*3cc25752SFrank Piva cl_platform_id* platforms, 830*3cc25752SFrank Piva cl_uint* num_platforms); 831*3cc25752SFrank Piva 832*3cc25752SFrank Piva typedef clIcdGetPlatformIDsKHR_t * 833*3cc25752SFrank Piva clIcdGetPlatformIDsKHR_fn ; 834*3cc25752SFrank Piva 835*3cc25752SFrank Piva #if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) 836*3cc25752SFrank Piva 837*3cc25752SFrank Piva extern CL_API_ENTRY cl_int CL_API_CALL 838*3cc25752SFrank Piva clIcdGetPlatformIDsKHR( 839*3cc25752SFrank Piva cl_uint num_entries, 840*3cc25752SFrank Piva cl_platform_id* platforms, 841*3cc25752SFrank Piva cl_uint* num_platforms) ; 842*3cc25752SFrank Piva 843*3cc25752SFrank Piva #endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ 844*3cc25752SFrank Piva 845*3cc25752SFrank Piva /*************************************************************** 846*3cc25752SFrank Piva * cl_khr_il_program 847*3cc25752SFrank Piva ***************************************************************/ 848*3cc25752SFrank Piva #define cl_khr_il_program 1 849*3cc25752SFrank Piva #define CL_KHR_IL_PROGRAM_EXTENSION_NAME \ 850*3cc25752SFrank Piva "cl_khr_il_program" 851*3cc25752SFrank Piva 852*3cc25752SFrank Piva /* cl_device_info */ 853*3cc25752SFrank Piva #define CL_DEVICE_IL_VERSION_KHR 0x105B 854*3cc25752SFrank Piva 855*3cc25752SFrank Piva /* cl_program_info */ 856*3cc25752SFrank Piva #define CL_PROGRAM_IL_KHR 0x1169 857*3cc25752SFrank Piva 858*3cc25752SFrank Piva 859*3cc25752SFrank Piva typedef cl_program CL_API_CALL 860*3cc25752SFrank Piva clCreateProgramWithILKHR_t( 861*3cc25752SFrank Piva cl_context context, 862*3cc25752SFrank Piva const void* il, 863*3cc25752SFrank Piva size_t length, 864*3cc25752SFrank Piva cl_int* errcode_ret); 865*3cc25752SFrank Piva 866*3cc25752SFrank Piva typedef clCreateProgramWithILKHR_t * 867*3cc25752SFrank Piva clCreateProgramWithILKHR_fn CL_API_SUFFIX__VERSION_1_2; 868*3cc25752SFrank Piva 869*3cc25752SFrank Piva #if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) 870*3cc25752SFrank Piva 871*3cc25752SFrank Piva extern CL_API_ENTRY cl_program CL_API_CALL 872*3cc25752SFrank Piva clCreateProgramWithILKHR( 873*3cc25752SFrank Piva cl_context context, 874*3cc25752SFrank Piva const void* il, 875*3cc25752SFrank Piva size_t length, 876*3cc25752SFrank Piva cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; 877*3cc25752SFrank Piva 878*3cc25752SFrank Piva #endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ 879*3cc25752SFrank Piva 880*3cc25752SFrank Piva /*************************************************************** 881*3cc25752SFrank Piva * cl_khr_image2d_from_buffer 882*3cc25752SFrank Piva ***************************************************************/ 883*3cc25752SFrank Piva #define cl_khr_image2d_from_buffer 1 884*3cc25752SFrank Piva #define CL_KHR_IMAGE2D_FROM_BUFFER_EXTENSION_NAME \ 885*3cc25752SFrank Piva "cl_khr_image2d_from_buffer" 886*3cc25752SFrank Piva 887*3cc25752SFrank Piva /* cl_device_info */ 888*3cc25752SFrank Piva #define CL_DEVICE_IMAGE_PITCH_ALIGNMENT_KHR 0x104A 889*3cc25752SFrank Piva #define CL_DEVICE_IMAGE_BASE_ADDRESS_ALIGNMENT_KHR 0x104B 890*3cc25752SFrank Piva 891*3cc25752SFrank Piva /*************************************************************** 892*3cc25752SFrank Piva * cl_khr_initialize_memory 893*3cc25752SFrank Piva ***************************************************************/ 894*3cc25752SFrank Piva #define cl_khr_initialize_memory 1 895*3cc25752SFrank Piva #define CL_KHR_INITIALIZE_MEMORY_EXTENSION_NAME \ 896*3cc25752SFrank Piva "cl_khr_initialize_memory" 897*3cc25752SFrank Piva 898*3cc25752SFrank Piva typedef cl_bitfield cl_context_memory_initialize_khr; 899*3cc25752SFrank Piva 900*3cc25752SFrank Piva /* cl_context_properties */ 901*3cc25752SFrank Piva #define CL_CONTEXT_MEMORY_INITIALIZE_KHR 0x2030 902*3cc25752SFrank Piva 903*3cc25752SFrank Piva /* cl_context_memory_initialize_khr */ 904*3cc25752SFrank Piva #define CL_CONTEXT_MEMORY_INITIALIZE_LOCAL_KHR (1 << 0) 905*3cc25752SFrank Piva #define CL_CONTEXT_MEMORY_INITIALIZE_PRIVATE_KHR (1 << 1) 906*3cc25752SFrank Piva 907*3cc25752SFrank Piva /*************************************************************** 908*3cc25752SFrank Piva * cl_khr_terminate_context 909*3cc25752SFrank Piva ***************************************************************/ 910*3cc25752SFrank Piva #define cl_khr_terminate_context 1 911*3cc25752SFrank Piva #define CL_KHR_TERMINATE_CONTEXT_EXTENSION_NAME \ 912*3cc25752SFrank Piva "cl_khr_terminate_context" 913*3cc25752SFrank Piva 914*3cc25752SFrank Piva typedef cl_bitfield cl_device_terminate_capability_khr; 915*3cc25752SFrank Piva 916*3cc25752SFrank Piva /* cl_device_info */ 917*3cc25752SFrank Piva #define CL_DEVICE_TERMINATE_CAPABILITY_KHR 0x2031 918*3cc25752SFrank Piva 919*3cc25752SFrank Piva /* cl_context_properties */ 920*3cc25752SFrank Piva #define CL_CONTEXT_TERMINATE_KHR 0x2032 921*3cc25752SFrank Piva 922*3cc25752SFrank Piva /* cl_device_terminate_capability_khr */ 923*3cc25752SFrank Piva #define CL_DEVICE_TERMINATE_CAPABILITY_CONTEXT_KHR (1 << 0) 924*3cc25752SFrank Piva 925*3cc25752SFrank Piva /* Error codes */ 926*3cc25752SFrank Piva #define CL_CONTEXT_TERMINATED_KHR -1121 927*3cc25752SFrank Piva 928*3cc25752SFrank Piva 929*3cc25752SFrank Piva typedef cl_int CL_API_CALL 930*3cc25752SFrank Piva clTerminateContextKHR_t( 931*3cc25752SFrank Piva cl_context context); 932*3cc25752SFrank Piva 933*3cc25752SFrank Piva typedef clTerminateContextKHR_t * 934*3cc25752SFrank Piva clTerminateContextKHR_fn CL_API_SUFFIX__VERSION_1_2; 935*3cc25752SFrank Piva 936*3cc25752SFrank Piva #if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) 937*3cc25752SFrank Piva 938*3cc25752SFrank Piva extern CL_API_ENTRY cl_int CL_API_CALL 939*3cc25752SFrank Piva clTerminateContextKHR( 940*3cc25752SFrank Piva cl_context context) CL_API_SUFFIX__VERSION_1_2; 941*3cc25752SFrank Piva 942*3cc25752SFrank Piva #endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ 943*3cc25752SFrank Piva 944*3cc25752SFrank Piva /*************************************************************** 945*3cc25752SFrank Piva * cl_khr_spir 946*3cc25752SFrank Piva ***************************************************************/ 947*3cc25752SFrank Piva #define cl_khr_spir 1 948*3cc25752SFrank Piva #define CL_KHR_SPIR_EXTENSION_NAME \ 949*3cc25752SFrank Piva "cl_khr_spir" 950*3cc25752SFrank Piva 951*3cc25752SFrank Piva /* cl_device_info */ 952*3cc25752SFrank Piva #define CL_DEVICE_SPIR_VERSIONS 0x40E0 953*3cc25752SFrank Piva 954*3cc25752SFrank Piva /* cl_program_binary_type */ 955*3cc25752SFrank Piva #define CL_PROGRAM_BINARY_TYPE_INTERMEDIATE 0x40E1 956*3cc25752SFrank Piva 957*3cc25752SFrank Piva /*************************************************************** 958*3cc25752SFrank Piva * cl_khr_create_command_queue 959*3cc25752SFrank Piva ***************************************************************/ 960*3cc25752SFrank Piva #define cl_khr_create_command_queue 1 961*3cc25752SFrank Piva #define CL_KHR_CREATE_COMMAND_QUEUE_EXTENSION_NAME \ 962*3cc25752SFrank Piva "cl_khr_create_command_queue" 963*3cc25752SFrank Piva 964*3cc25752SFrank Piva typedef cl_properties cl_queue_properties_khr; 965*3cc25752SFrank Piva 966*3cc25752SFrank Piva 967*3cc25752SFrank Piva typedef cl_command_queue CL_API_CALL 968*3cc25752SFrank Piva clCreateCommandQueueWithPropertiesKHR_t( 969*3cc25752SFrank Piva cl_context context, 970*3cc25752SFrank Piva cl_device_id device, 971*3cc25752SFrank Piva const cl_queue_properties_khr* properties, 972*3cc25752SFrank Piva cl_int* errcode_ret); 973*3cc25752SFrank Piva 974*3cc25752SFrank Piva typedef clCreateCommandQueueWithPropertiesKHR_t * 975*3cc25752SFrank Piva clCreateCommandQueueWithPropertiesKHR_fn CL_API_SUFFIX__VERSION_1_2; 976*3cc25752SFrank Piva 977*3cc25752SFrank Piva #if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) 978*3cc25752SFrank Piva 979*3cc25752SFrank Piva extern CL_API_ENTRY cl_command_queue CL_API_CALL 980*3cc25752SFrank Piva clCreateCommandQueueWithPropertiesKHR( 981*3cc25752SFrank Piva cl_context context, 982*3cc25752SFrank Piva cl_device_id device, 983*3cc25752SFrank Piva const cl_queue_properties_khr* properties, 984*3cc25752SFrank Piva cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; 985*3cc25752SFrank Piva 986*3cc25752SFrank Piva #endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ 987*3cc25752SFrank Piva 988*3cc25752SFrank Piva /*************************************************************** 989*3cc25752SFrank Piva * cl_nv_device_attribute_query 990*3cc25752SFrank Piva ***************************************************************/ 991*3cc25752SFrank Piva #define cl_nv_device_attribute_query 1 992*3cc25752SFrank Piva #define CL_NV_DEVICE_ATTRIBUTE_QUERY_EXTENSION_NAME \ 993*3cc25752SFrank Piva "cl_nv_device_attribute_query" 994*3cc25752SFrank Piva 995*3cc25752SFrank Piva /* cl_device_info */ 996*3cc25752SFrank Piva #define CL_DEVICE_COMPUTE_CAPABILITY_MAJOR_NV 0x4000 997*3cc25752SFrank Piva #define CL_DEVICE_COMPUTE_CAPABILITY_MINOR_NV 0x4001 998*3cc25752SFrank Piva #define CL_DEVICE_REGISTERS_PER_BLOCK_NV 0x4002 999*3cc25752SFrank Piva #define CL_DEVICE_WARP_SIZE_NV 0x4003 1000*3cc25752SFrank Piva #define CL_DEVICE_GPU_OVERLAP_NV 0x4004 1001*3cc25752SFrank Piva #define CL_DEVICE_KERNEL_EXEC_TIMEOUT_NV 0x4005 1002*3cc25752SFrank Piva #define CL_DEVICE_INTEGRATED_MEMORY_NV 0x4006 1003*3cc25752SFrank Piva 1004*3cc25752SFrank Piva /*************************************************************** 1005*3cc25752SFrank Piva * cl_amd_device_attribute_query 1006*3cc25752SFrank Piva ***************************************************************/ 1007*3cc25752SFrank Piva #define cl_amd_device_attribute_query 1 1008*3cc25752SFrank Piva #define CL_AMD_DEVICE_ATTRIBUTE_QUERY_EXTENSION_NAME \ 1009*3cc25752SFrank Piva "cl_amd_device_attribute_query" 1010*3cc25752SFrank Piva 1011*3cc25752SFrank Piva /* cl_device_info */ 1012*3cc25752SFrank Piva #define CL_DEVICE_PROFILING_TIMER_OFFSET_AMD 0x4036 1013*3cc25752SFrank Piva #define CL_DEVICE_TOPOLOGY_AMD 0x4037 1014*3cc25752SFrank Piva #define CL_DEVICE_BOARD_NAME_AMD 0x4038 1015*3cc25752SFrank Piva #define CL_DEVICE_GLOBAL_FREE_MEMORY_AMD 0x4039 1016*3cc25752SFrank Piva #define CL_DEVICE_SIMD_PER_COMPUTE_UNIT_AMD 0x4040 1017*3cc25752SFrank Piva #define CL_DEVICE_SIMD_WIDTH_AMD 0x4041 1018*3cc25752SFrank Piva #define CL_DEVICE_SIMD_INSTRUCTION_WIDTH_AMD 0x4042 1019*3cc25752SFrank Piva #define CL_DEVICE_WAVEFRONT_WIDTH_AMD 0x4043 1020*3cc25752SFrank Piva #define CL_DEVICE_GLOBAL_MEM_CHANNELS_AMD 0x4044 1021*3cc25752SFrank Piva #define CL_DEVICE_GLOBAL_MEM_CHANNEL_BANKS_AMD 0x4045 1022*3cc25752SFrank Piva #define CL_DEVICE_GLOBAL_MEM_CHANNEL_BANK_WIDTH_AMD 0x4046 1023*3cc25752SFrank Piva #define CL_DEVICE_LOCAL_MEM_SIZE_PER_COMPUTE_UNIT_AMD 0x4047 1024*3cc25752SFrank Piva #define CL_DEVICE_LOCAL_MEM_BANKS_AMD 0x4048 1025*3cc25752SFrank Piva #define CL_DEVICE_THREAD_TRACE_SUPPORTED_AMD 0x4049 1026*3cc25752SFrank Piva #define CL_DEVICE_GFXIP_MAJOR_AMD 0x404A 1027*3cc25752SFrank Piva #define CL_DEVICE_GFXIP_MINOR_AMD 0x404B 1028*3cc25752SFrank Piva #define CL_DEVICE_AVAILABLE_ASYNC_QUEUES_AMD 0x404C 1029*3cc25752SFrank Piva #define CL_DEVICE_PREFERRED_WORK_GROUP_SIZE_AMD 0x4030 1030*3cc25752SFrank Piva #define CL_DEVICE_MAX_WORK_GROUP_SIZE_AMD 0x4031 1031*3cc25752SFrank Piva #define CL_DEVICE_PREFERRED_CONSTANT_BUFFER_SIZE_AMD 0x4033 1032*3cc25752SFrank Piva #define CL_DEVICE_PCIE_ID_AMD 0x4034 1033*3cc25752SFrank Piva 1034*3cc25752SFrank Piva /*************************************************************** 1035*3cc25752SFrank Piva * cl_arm_printf 1036*3cc25752SFrank Piva ***************************************************************/ 1037*3cc25752SFrank Piva #define cl_arm_printf 1 1038*3cc25752SFrank Piva #define CL_ARM_PRINTF_EXTENSION_NAME \ 1039*3cc25752SFrank Piva "cl_arm_printf" 1040*3cc25752SFrank Piva 1041*3cc25752SFrank Piva /* cl_context_properties */ 1042*3cc25752SFrank Piva #define CL_PRINTF_CALLBACK_ARM 0x40B0 1043*3cc25752SFrank Piva #define CL_PRINTF_BUFFERSIZE_ARM 0x40B1 1044*3cc25752SFrank Piva 1045*3cc25752SFrank Piva /*************************************************************** 1046*3cc25752SFrank Piva * cl_ext_device_fission 1047*3cc25752SFrank Piva ***************************************************************/ 1048*3cc25752SFrank Piva #define cl_ext_device_fission 1 1049*3cc25752SFrank Piva #define CL_EXT_DEVICE_FISSION_EXTENSION_NAME \ 1050*3cc25752SFrank Piva "cl_ext_device_fission" 1051*3cc25752SFrank Piva 1052*3cc25752SFrank Piva typedef cl_ulong cl_device_partition_property_ext; 1053*3cc25752SFrank Piva 1054*3cc25752SFrank Piva /* Error codes */ 1055*3cc25752SFrank Piva #define CL_DEVICE_PARTITION_FAILED_EXT -1057 1056*3cc25752SFrank Piva #define CL_INVALID_PARTITION_COUNT_EXT -1058 1057*3cc25752SFrank Piva #define CL_INVALID_PARTITION_NAME_EXT -1059 1058*3cc25752SFrank Piva 1059*3cc25752SFrank Piva /* cl_device_info */ 1060*3cc25752SFrank Piva #define CL_DEVICE_PARENT_DEVICE_EXT 0x4054 1061*3cc25752SFrank Piva #define CL_DEVICE_PARTITION_TYPES_EXT 0x4055 1062*3cc25752SFrank Piva #define CL_DEVICE_AFFINITY_DOMAINS_EXT 0x4056 1063*3cc25752SFrank Piva #define CL_DEVICE_REFERENCE_COUNT_EXT 0x4057 1064*3cc25752SFrank Piva #define CL_DEVICE_PARTITION_STYLE_EXT 0x4058 1065*3cc25752SFrank Piva 1066*3cc25752SFrank Piva /* cl_device_partition_property_ext */ 1067*3cc25752SFrank Piva #define CL_DEVICE_PARTITION_EQUALLY_EXT 0x4050 1068*3cc25752SFrank Piva #define CL_DEVICE_PARTITION_BY_COUNTS_EXT 0x4051 1069*3cc25752SFrank Piva #define CL_DEVICE_PARTITION_BY_NAMES_EXT 0x4052 1070*3cc25752SFrank Piva #define CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN_EXT 0x4053 1071*3cc25752SFrank Piva 1072*3cc25752SFrank Piva /* cl_device_partition_property_ext - affinity domains */ 1073*3cc25752SFrank Piva #define CL_AFFINITY_DOMAIN_L1_CACHE_EXT 0x1 1074*3cc25752SFrank Piva #define CL_AFFINITY_DOMAIN_L2_CACHE_EXT 0x2 1075*3cc25752SFrank Piva #define CL_AFFINITY_DOMAIN_L3_CACHE_EXT 0x3 1076*3cc25752SFrank Piva #define CL_AFFINITY_DOMAIN_L4_CACHE_EXT 0x4 1077*3cc25752SFrank Piva #define CL_AFFINITY_DOMAIN_NUMA_EXT 0x10 1078*3cc25752SFrank Piva #define CL_AFFINITY_DOMAIN_NEXT_FISSIONABLE_EXT 0x100 1079*3cc25752SFrank Piva 1080*3cc25752SFrank Piva /* cl_device_partition_property_ext - list terminators */ 1081*3cc25752SFrank Piva #define CL_PROPERTIES_LIST_END_EXT ((cl_device_partition_property_ext)0) 1082*3cc25752SFrank Piva #define CL_PARTITION_BY_COUNTS_LIST_END_EXT ((cl_device_partition_property_ext)0) 1083*3cc25752SFrank Piva #define CL_PARTITION_BY_NAMES_LIST_END_EXT ((cl_device_partition_property_ext)0 - 1) 1084*3cc25752SFrank Piva 1085*3cc25752SFrank Piva 1086*3cc25752SFrank Piva typedef cl_int CL_API_CALL 1087*3cc25752SFrank Piva clReleaseDeviceEXT_t( 1088*3cc25752SFrank Piva cl_device_id device); 1089*3cc25752SFrank Piva 1090*3cc25752SFrank Piva typedef clReleaseDeviceEXT_t * 1091*3cc25752SFrank Piva clReleaseDeviceEXT_fn CL_API_SUFFIX__VERSION_1_1; 1092*3cc25752SFrank Piva 1093*3cc25752SFrank Piva typedef cl_int CL_API_CALL 1094*3cc25752SFrank Piva clRetainDeviceEXT_t( 1095*3cc25752SFrank Piva cl_device_id device); 1096*3cc25752SFrank Piva 1097*3cc25752SFrank Piva typedef clRetainDeviceEXT_t * 1098*3cc25752SFrank Piva clRetainDeviceEXT_fn CL_API_SUFFIX__VERSION_1_1; 1099*3cc25752SFrank Piva 1100*3cc25752SFrank Piva typedef cl_int CL_API_CALL 1101*3cc25752SFrank Piva clCreateSubDevicesEXT_t( 1102*3cc25752SFrank Piva cl_device_id in_device, 1103*3cc25752SFrank Piva const cl_device_partition_property_ext* properties, 1104*3cc25752SFrank Piva cl_uint num_entries, 1105*3cc25752SFrank Piva cl_device_id* out_devices, 1106*3cc25752SFrank Piva cl_uint* num_devices); 1107*3cc25752SFrank Piva 1108*3cc25752SFrank Piva typedef clCreateSubDevicesEXT_t * 1109*3cc25752SFrank Piva clCreateSubDevicesEXT_fn CL_API_SUFFIX__VERSION_1_1; 1110*3cc25752SFrank Piva 1111*3cc25752SFrank Piva #if !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) 1112*3cc25752SFrank Piva 1113*3cc25752SFrank Piva extern CL_API_ENTRY cl_int CL_API_CALL 1114*3cc25752SFrank Piva clReleaseDeviceEXT( 1115*3cc25752SFrank Piva cl_device_id device) CL_API_SUFFIX__VERSION_1_1; 1116*3cc25752SFrank Piva 1117*3cc25752SFrank Piva extern CL_API_ENTRY cl_int CL_API_CALL 1118*3cc25752SFrank Piva clRetainDeviceEXT( 1119*3cc25752SFrank Piva cl_device_id device) CL_API_SUFFIX__VERSION_1_1; 1120*3cc25752SFrank Piva 1121*3cc25752SFrank Piva extern CL_API_ENTRY cl_int CL_API_CALL 1122*3cc25752SFrank Piva clCreateSubDevicesEXT( 1123*3cc25752SFrank Piva cl_device_id in_device, 1124*3cc25752SFrank Piva const cl_device_partition_property_ext* properties, 1125*3cc25752SFrank Piva cl_uint num_entries, 1126*3cc25752SFrank Piva cl_device_id* out_devices, 1127*3cc25752SFrank Piva cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_1; 1128*3cc25752SFrank Piva 1129*3cc25752SFrank Piva #endif /* !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ 1130*3cc25752SFrank Piva 1131*3cc25752SFrank Piva /*************************************************************** 1132*3cc25752SFrank Piva * cl_ext_migrate_memobject 1133*3cc25752SFrank Piva ***************************************************************/ 1134*3cc25752SFrank Piva #define cl_ext_migrate_memobject 1 1135*3cc25752SFrank Piva #define CL_EXT_MIGRATE_MEMOBJECT_EXTENSION_NAME \ 1136*3cc25752SFrank Piva "cl_ext_migrate_memobject" 1137*3cc25752SFrank Piva 1138*3cc25752SFrank Piva typedef cl_bitfield cl_mem_migration_flags_ext; 1139*3cc25752SFrank Piva 1140*3cc25752SFrank Piva /* cl_mem_migration_flags_ext */ 1141*3cc25752SFrank Piva #define CL_MIGRATE_MEM_OBJECT_HOST_EXT (1 << 0) 1142*3cc25752SFrank Piva 1143*3cc25752SFrank Piva /* cl_command_type */ 1144*3cc25752SFrank Piva #define CL_COMMAND_MIGRATE_MEM_OBJECT_EXT 0x4040 1145*3cc25752SFrank Piva 1146*3cc25752SFrank Piva 1147*3cc25752SFrank Piva typedef cl_int CL_API_CALL 1148*3cc25752SFrank Piva clEnqueueMigrateMemObjectEXT_t( 1149*3cc25752SFrank Piva cl_command_queue command_queue, 1150*3cc25752SFrank Piva cl_uint num_mem_objects, 1151*3cc25752SFrank Piva const cl_mem* mem_objects, 1152*3cc25752SFrank Piva cl_mem_migration_flags_ext flags, 1153*3cc25752SFrank Piva cl_uint num_events_in_wait_list, 1154*3cc25752SFrank Piva const cl_event* event_wait_list, 1155*3cc25752SFrank Piva cl_event* event); 1156*3cc25752SFrank Piva 1157*3cc25752SFrank Piva typedef clEnqueueMigrateMemObjectEXT_t * 1158*3cc25752SFrank Piva clEnqueueMigrateMemObjectEXT_fn ; 1159*3cc25752SFrank Piva 1160*3cc25752SFrank Piva #if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) 1161*3cc25752SFrank Piva 1162*3cc25752SFrank Piva extern CL_API_ENTRY cl_int CL_API_CALL 1163*3cc25752SFrank Piva clEnqueueMigrateMemObjectEXT( 1164*3cc25752SFrank Piva cl_command_queue command_queue, 1165*3cc25752SFrank Piva cl_uint num_mem_objects, 1166*3cc25752SFrank Piva const cl_mem* mem_objects, 1167*3cc25752SFrank Piva cl_mem_migration_flags_ext flags, 1168*3cc25752SFrank Piva cl_uint num_events_in_wait_list, 1169*3cc25752SFrank Piva const cl_event* event_wait_list, 1170*3cc25752SFrank Piva cl_event* event) ; 1171*3cc25752SFrank Piva 1172*3cc25752SFrank Piva #endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ 1173*3cc25752SFrank Piva 1174*3cc25752SFrank Piva /*************************************************************** 1175*3cc25752SFrank Piva * cl_ext_cxx_for_opencl 1176*3cc25752SFrank Piva ***************************************************************/ 1177*3cc25752SFrank Piva #define cl_ext_cxx_for_opencl 1 1178*3cc25752SFrank Piva #define CL_EXT_CXX_FOR_OPENCL_EXTENSION_NAME \ 1179*3cc25752SFrank Piva "cl_ext_cxx_for_opencl" 1180*3cc25752SFrank Piva 1181*3cc25752SFrank Piva /* cl_device_info */ 1182*3cc25752SFrank Piva #define CL_DEVICE_CXX_FOR_OPENCL_NUMERIC_VERSION_EXT 0x4230 1183*3cc25752SFrank Piva 1184*3cc25752SFrank Piva /*************************************************************** 1185*3cc25752SFrank Piva * cl_qcom_ext_host_ptr 1186*3cc25752SFrank Piva ***************************************************************/ 1187*3cc25752SFrank Piva #define cl_qcom_ext_host_ptr 1 1188*3cc25752SFrank Piva #define CL_QCOM_EXT_HOST_PTR_EXTENSION_NAME \ 1189*3cc25752SFrank Piva "cl_qcom_ext_host_ptr" 1190*3cc25752SFrank Piva 1191*3cc25752SFrank Piva typedef cl_uint cl_image_pitch_info_qcom; 1192*3cc25752SFrank Piva typedef struct _cl_mem_ext_host_ptr { 1193*3cc25752SFrank Piva cl_uint allocation_type; 1194*3cc25752SFrank Piva cl_uint host_cache_policy; 1195*3cc25752SFrank Piva } cl_mem_ext_host_ptr; 1196*3cc25752SFrank Piva 1197*3cc25752SFrank Piva /* cl_mem_flags */ 1198*3cc25752SFrank Piva #define CL_MEM_EXT_HOST_PTR_QCOM (1 << 29) 1199*3cc25752SFrank Piva 1200*3cc25752SFrank Piva /* cl_device_info */ 1201*3cc25752SFrank Piva #define CL_DEVICE_EXT_MEM_PADDING_IN_BYTES_QCOM 0x40A0 1202*3cc25752SFrank Piva #define CL_DEVICE_PAGE_SIZE_QCOM 0x40A1 1203*3cc25752SFrank Piva 1204*3cc25752SFrank Piva /* cl_image_pitch_info_qcom */ 1205*3cc25752SFrank Piva #define CL_IMAGE_ROW_ALIGNMENT_QCOM 0x40A2 1206*3cc25752SFrank Piva #define CL_IMAGE_SLICE_ALIGNMENT_QCOM 0x40A3 1207*3cc25752SFrank Piva 1208*3cc25752SFrank Piva /* cl_uint host_cache_policy */ 1209*3cc25752SFrank Piva #define CL_MEM_HOST_UNCACHED_QCOM 0x40A4 1210*3cc25752SFrank Piva #define CL_MEM_HOST_WRITEBACK_QCOM 0x40A5 1211*3cc25752SFrank Piva #define CL_MEM_HOST_WRITETHROUGH_QCOM 0x40A6 1212*3cc25752SFrank Piva #define CL_MEM_HOST_WRITE_COMBINING_QCOM 0x40A7 1213*3cc25752SFrank Piva 1214*3cc25752SFrank Piva 1215*3cc25752SFrank Piva typedef cl_int CL_API_CALL 1216*3cc25752SFrank Piva clGetDeviceImageInfoQCOM_t( 1217*3cc25752SFrank Piva cl_device_id device, 1218*3cc25752SFrank Piva size_t image_width, 1219*3cc25752SFrank Piva size_t image_height, 1220*3cc25752SFrank Piva const cl_image_format* image_format, 1221*3cc25752SFrank Piva cl_image_pitch_info_qcom param_name, 1222*3cc25752SFrank Piva size_t param_value_size, 1223*3cc25752SFrank Piva void* param_value, 1224*3cc25752SFrank Piva size_t* param_value_size_ret); 1225*3cc25752SFrank Piva 1226*3cc25752SFrank Piva typedef clGetDeviceImageInfoQCOM_t * 1227*3cc25752SFrank Piva clGetDeviceImageInfoQCOM_fn ; 1228*3cc25752SFrank Piva 1229*3cc25752SFrank Piva #if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) 1230*3cc25752SFrank Piva 1231*3cc25752SFrank Piva extern CL_API_ENTRY cl_int CL_API_CALL 1232*3cc25752SFrank Piva clGetDeviceImageInfoQCOM( 1233*3cc25752SFrank Piva cl_device_id device, 1234*3cc25752SFrank Piva size_t image_width, 1235*3cc25752SFrank Piva size_t image_height, 1236*3cc25752SFrank Piva const cl_image_format* image_format, 1237*3cc25752SFrank Piva cl_image_pitch_info_qcom param_name, 1238*3cc25752SFrank Piva size_t param_value_size, 1239*3cc25752SFrank Piva void* param_value, 1240*3cc25752SFrank Piva size_t* param_value_size_ret) ; 1241*3cc25752SFrank Piva 1242*3cc25752SFrank Piva #endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ 1243*3cc25752SFrank Piva 1244*3cc25752SFrank Piva /*************************************************************** 1245*3cc25752SFrank Piva * cl_qcom_ext_host_ptr_iocoherent 1246*3cc25752SFrank Piva ***************************************************************/ 1247*3cc25752SFrank Piva #define cl_qcom_ext_host_ptr_iocoherent 1 1248*3cc25752SFrank Piva #define CL_QCOM_EXT_HOST_PTR_IOCOHERENT_EXTENSION_NAME \ 1249*3cc25752SFrank Piva "cl_qcom_ext_host_ptr_iocoherent" 1250*3cc25752SFrank Piva 1251*3cc25752SFrank Piva /* cl_uint host_cache_policy */ 1252*3cc25752SFrank Piva #define CL_MEM_HOST_IOCOHERENT_QCOM 0x40A9 1253*3cc25752SFrank Piva 1254*3cc25752SFrank Piva /*************************************************************** 1255*3cc25752SFrank Piva * cl_qcom_ion_host_ptr 1256*3cc25752SFrank Piva ***************************************************************/ 1257*3cc25752SFrank Piva #define cl_qcom_ion_host_ptr 1 1258*3cc25752SFrank Piva #define CL_QCOM_ION_HOST_PTR_EXTENSION_NAME \ 1259*3cc25752SFrank Piva "cl_qcom_ion_host_ptr" 1260*3cc25752SFrank Piva 1261*3cc25752SFrank Piva /* type cl_mem_ext_host_ptr */ 1262*3cc25752SFrank Piva typedef struct _cl_mem_ion_host_ptr { 1263*3cc25752SFrank Piva cl_mem_ext_host_ptr ext_host_ptr; 1264*3cc25752SFrank Piva int ion_filedesc; 1265*3cc25752SFrank Piva void* ion_hostptr; 1266*3cc25752SFrank Piva } cl_mem_ion_host_ptr; 1267*3cc25752SFrank Piva 1268*3cc25752SFrank Piva /* cl_uint allocation_type */ 1269*3cc25752SFrank Piva #define CL_MEM_ION_HOST_PTR_QCOM 0x40A8 1270*3cc25752SFrank Piva 1271*3cc25752SFrank Piva /*************************************************************** 1272*3cc25752SFrank Piva * cl_qcom_android_native_buffer_host_ptr 1273*3cc25752SFrank Piva ***************************************************************/ 1274*3cc25752SFrank Piva #define cl_qcom_android_native_buffer_host_ptr 1 1275*3cc25752SFrank Piva #define CL_QCOM_ANDROID_NATIVE_BUFFER_HOST_PTR_EXTENSION_NAME \ 1276*3cc25752SFrank Piva "cl_qcom_android_native_buffer_host_ptr" 1277*3cc25752SFrank Piva 1278*3cc25752SFrank Piva /* type cl_mem_ext_host_ptr */ 1279*3cc25752SFrank Piva typedef struct _cl_mem_android_native_buffer_host_ptr { 1280*3cc25752SFrank Piva cl_mem_ext_host_ptr ext_host_ptr; 1281*3cc25752SFrank Piva void* anb_ptr; 1282*3cc25752SFrank Piva } cl_mem_android_native_buffer_host_ptr; 1283*3cc25752SFrank Piva 1284*3cc25752SFrank Piva /* cl_uint allocation_type */ 1285*3cc25752SFrank Piva #define CL_MEM_ANDROID_NATIVE_BUFFER_HOST_PTR_QCOM 0x40C6 1286*3cc25752SFrank Piva 1287*3cc25752SFrank Piva /*************************************************************** 1288*3cc25752SFrank Piva * cl_img_yuv_image 1289*3cc25752SFrank Piva ***************************************************************/ 1290*3cc25752SFrank Piva #define cl_img_yuv_image 1 1291*3cc25752SFrank Piva #define CL_IMG_YUV_IMAGE_EXTENSION_NAME \ 1292*3cc25752SFrank Piva "cl_img_yuv_image" 1293*3cc25752SFrank Piva 1294*3cc25752SFrank Piva /* cl_channel_order */ 1295*3cc25752SFrank Piva #define CL_NV21_IMG 0x40D0 1296*3cc25752SFrank Piva #define CL_YV12_IMG 0x40D1 1297*3cc25752SFrank Piva 1298*3cc25752SFrank Piva /*************************************************************** 1299*3cc25752SFrank Piva * cl_img_cached_allocations 1300*3cc25752SFrank Piva ***************************************************************/ 1301*3cc25752SFrank Piva #define cl_img_cached_allocations 1 1302*3cc25752SFrank Piva #define CL_IMG_CACHED_ALLOCATIONS_EXTENSION_NAME \ 1303*3cc25752SFrank Piva "cl_img_cached_allocations" 1304*3cc25752SFrank Piva 1305*3cc25752SFrank Piva /* cl_mem_flags */ 1306*3cc25752SFrank Piva #define CL_MEM_USE_UNCACHED_CPU_MEMORY_IMG (1 << 26) 1307*3cc25752SFrank Piva #define CL_MEM_USE_CACHED_CPU_MEMORY_IMG (1 << 27) 1308*3cc25752SFrank Piva 1309*3cc25752SFrank Piva /*************************************************************** 1310*3cc25752SFrank Piva * cl_img_use_gralloc_ptr 1311*3cc25752SFrank Piva ***************************************************************/ 1312*3cc25752SFrank Piva #define cl_img_use_gralloc_ptr 1 1313*3cc25752SFrank Piva #define CL_IMG_USE_GRALLOC_PTR_EXTENSION_NAME \ 1314*3cc25752SFrank Piva "cl_img_use_gralloc_ptr" 1315*3cc25752SFrank Piva 1316*3cc25752SFrank Piva /* Error codes */ 1317*3cc25752SFrank Piva #define CL_GRALLOC_RESOURCE_NOT_ACQUIRED_IMG 0x40D4 1318*3cc25752SFrank Piva #define CL_INVALID_GRALLOC_OBJECT_IMG 0x40D5 1319*3cc25752SFrank Piva 1320*3cc25752SFrank Piva /* cl_mem_flags */ 1321*3cc25752SFrank Piva #define CL_MEM_USE_GRALLOC_PTR_IMG (1 << 28) 1322*3cc25752SFrank Piva 1323*3cc25752SFrank Piva /* cl_command_type */ 1324*3cc25752SFrank Piva #define CL_COMMAND_ACQUIRE_GRALLOC_OBJECTS_IMG 0x40D2 1325*3cc25752SFrank Piva #define CL_COMMAND_RELEASE_GRALLOC_OBJECTS_IMG 0x40D3 1326*3cc25752SFrank Piva 1327*3cc25752SFrank Piva 1328*3cc25752SFrank Piva typedef cl_int CL_API_CALL 1329*3cc25752SFrank Piva clEnqueueAcquireGrallocObjectsIMG_t( 1330*3cc25752SFrank Piva cl_command_queue command_queue, 1331*3cc25752SFrank Piva cl_uint num_objects, 1332*3cc25752SFrank Piva const cl_mem* mem_objects, 1333*3cc25752SFrank Piva cl_uint num_events_in_wait_list, 1334*3cc25752SFrank Piva const cl_event* event_wait_list, 1335*3cc25752SFrank Piva cl_event* event); 1336*3cc25752SFrank Piva 1337*3cc25752SFrank Piva typedef clEnqueueAcquireGrallocObjectsIMG_t * 1338*3cc25752SFrank Piva clEnqueueAcquireGrallocObjectsIMG_fn CL_API_SUFFIX__VERSION_1_2; 1339*3cc25752SFrank Piva 1340*3cc25752SFrank Piva typedef cl_int CL_API_CALL 1341*3cc25752SFrank Piva clEnqueueReleaseGrallocObjectsIMG_t( 1342*3cc25752SFrank Piva cl_command_queue command_queue, 1343*3cc25752SFrank Piva cl_uint num_objects, 1344*3cc25752SFrank Piva const cl_mem* mem_objects, 1345*3cc25752SFrank Piva cl_uint num_events_in_wait_list, 1346*3cc25752SFrank Piva const cl_event* event_wait_list, 1347*3cc25752SFrank Piva cl_event* event); 1348*3cc25752SFrank Piva 1349*3cc25752SFrank Piva typedef clEnqueueReleaseGrallocObjectsIMG_t * 1350*3cc25752SFrank Piva clEnqueueReleaseGrallocObjectsIMG_fn CL_API_SUFFIX__VERSION_1_2; 1351*3cc25752SFrank Piva 1352*3cc25752SFrank Piva #if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) 1353*3cc25752SFrank Piva 1354*3cc25752SFrank Piva extern CL_API_ENTRY cl_int CL_API_CALL 1355*3cc25752SFrank Piva clEnqueueAcquireGrallocObjectsIMG( 1356*3cc25752SFrank Piva cl_command_queue command_queue, 1357*3cc25752SFrank Piva cl_uint num_objects, 1358*3cc25752SFrank Piva const cl_mem* mem_objects, 1359*3cc25752SFrank Piva cl_uint num_events_in_wait_list, 1360*3cc25752SFrank Piva const cl_event* event_wait_list, 1361*3cc25752SFrank Piva cl_event* event) CL_API_SUFFIX__VERSION_1_2; 1362*3cc25752SFrank Piva 1363*3cc25752SFrank Piva extern CL_API_ENTRY cl_int CL_API_CALL 1364*3cc25752SFrank Piva clEnqueueReleaseGrallocObjectsIMG( 1365*3cc25752SFrank Piva cl_command_queue command_queue, 1366*3cc25752SFrank Piva cl_uint num_objects, 1367*3cc25752SFrank Piva const cl_mem* mem_objects, 1368*3cc25752SFrank Piva cl_uint num_events_in_wait_list, 1369*3cc25752SFrank Piva const cl_event* event_wait_list, 1370*3cc25752SFrank Piva cl_event* event) CL_API_SUFFIX__VERSION_1_2; 1371*3cc25752SFrank Piva 1372*3cc25752SFrank Piva #endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ 1373*3cc25752SFrank Piva 1374*3cc25752SFrank Piva /*************************************************************** 1375*3cc25752SFrank Piva * cl_img_generate_mipmap 1376*3cc25752SFrank Piva ***************************************************************/ 1377*3cc25752SFrank Piva #define cl_img_generate_mipmap 1 1378*3cc25752SFrank Piva #define CL_IMG_GENERATE_MIPMAP_EXTENSION_NAME \ 1379*3cc25752SFrank Piva "cl_img_generate_mipmap" 1380*3cc25752SFrank Piva 1381*3cc25752SFrank Piva typedef cl_uint cl_mipmap_filter_mode_img; 1382*3cc25752SFrank Piva 1383*3cc25752SFrank Piva /* cl_mipmap_filter_mode_img */ 1384*3cc25752SFrank Piva #define CL_MIPMAP_FILTER_ANY_IMG 0x0 1385*3cc25752SFrank Piva #define CL_MIPMAP_FILTER_BOX_IMG 0x1 1386*3cc25752SFrank Piva 1387*3cc25752SFrank Piva /* cl_command_type */ 1388*3cc25752SFrank Piva #define CL_COMMAND_GENERATE_MIPMAP_IMG 0x40D6 1389*3cc25752SFrank Piva 1390*3cc25752SFrank Piva 1391*3cc25752SFrank Piva typedef cl_int CL_API_CALL 1392*3cc25752SFrank Piva clEnqueueGenerateMipmapIMG_t( 1393*3cc25752SFrank Piva cl_command_queue command_queue, 1394*3cc25752SFrank Piva cl_mem src_image, 1395*3cc25752SFrank Piva cl_mem dst_image, 1396*3cc25752SFrank Piva cl_mipmap_filter_mode_img mipmap_filter_mode, 1397*3cc25752SFrank Piva const size_t* array_region, 1398*3cc25752SFrank Piva const size_t* mip_region, 1399*3cc25752SFrank Piva cl_uint num_events_in_wait_list, 1400*3cc25752SFrank Piva const cl_event* event_wait_list, 1401*3cc25752SFrank Piva cl_event* event); 1402*3cc25752SFrank Piva 1403*3cc25752SFrank Piva typedef clEnqueueGenerateMipmapIMG_t * 1404*3cc25752SFrank Piva clEnqueueGenerateMipmapIMG_fn CL_API_SUFFIX__VERSION_1_2; 1405*3cc25752SFrank Piva 1406*3cc25752SFrank Piva #if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) 1407*3cc25752SFrank Piva 1408*3cc25752SFrank Piva extern CL_API_ENTRY cl_int CL_API_CALL 1409*3cc25752SFrank Piva clEnqueueGenerateMipmapIMG( 1410*3cc25752SFrank Piva cl_command_queue command_queue, 1411*3cc25752SFrank Piva cl_mem src_image, 1412*3cc25752SFrank Piva cl_mem dst_image, 1413*3cc25752SFrank Piva cl_mipmap_filter_mode_img mipmap_filter_mode, 1414*3cc25752SFrank Piva const size_t* array_region, 1415*3cc25752SFrank Piva const size_t* mip_region, 1416*3cc25752SFrank Piva cl_uint num_events_in_wait_list, 1417*3cc25752SFrank Piva const cl_event* event_wait_list, 1418*3cc25752SFrank Piva cl_event* event) CL_API_SUFFIX__VERSION_1_2; 1419*3cc25752SFrank Piva 1420*3cc25752SFrank Piva #endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ 1421*3cc25752SFrank Piva 1422*3cc25752SFrank Piva /*************************************************************** 1423*3cc25752SFrank Piva * cl_img_mem_properties 1424*3cc25752SFrank Piva ***************************************************************/ 1425*3cc25752SFrank Piva #define cl_img_mem_properties 1 1426*3cc25752SFrank Piva #define CL_IMG_MEM_PROPERTIES_EXTENSION_NAME \ 1427*3cc25752SFrank Piva "cl_img_mem_properties" 1428*3cc25752SFrank Piva 1429*3cc25752SFrank Piva /* cl_mem_properties */ 1430*3cc25752SFrank Piva #define CL_MEM_ALLOC_FLAGS_IMG 0x40D7 1431*3cc25752SFrank Piva 1432*3cc25752SFrank Piva /* cl_mem_alloc_flags_img */ 1433*3cc25752SFrank Piva #define CL_MEM_ALLOC_RELAX_REQUIREMENTS_IMG (1 << 0) 1434*3cc25752SFrank Piva 1435*3cc25752SFrank Piva /*************************************************************** 1436*3cc25752SFrank Piva * cl_khr_subgroups 1437*3cc25752SFrank Piva ***************************************************************/ 1438*3cc25752SFrank Piva #define cl_khr_subgroups 1 1439*3cc25752SFrank Piva #define CL_KHR_SUBGROUPS_EXTENSION_NAME \ 1440*3cc25752SFrank Piva "cl_khr_subgroups" 1441*3cc25752SFrank Piva 1442*3cc25752SFrank Piva #if !defined(CL_VERSION_2_1) 1443*3cc25752SFrank Piva /* defined in CL.h for OpenCL 2.1 and newer */ 1444*3cc25752SFrank Piva typedef cl_uint cl_kernel_sub_group_info; 1445*3cc25752SFrank Piva 1446*3cc25752SFrank Piva #endif /* !defined(CL_VERSION_2_1) */ 1447*3cc25752SFrank Piva 1448*3cc25752SFrank Piva /* cl_kernel_sub_group_info */ 1449*3cc25752SFrank Piva #define CL_KERNEL_MAX_SUB_GROUP_SIZE_FOR_NDRANGE_KHR 0x2033 1450*3cc25752SFrank Piva #define CL_KERNEL_SUB_GROUP_COUNT_FOR_NDRANGE_KHR 0x2034 1451*3cc25752SFrank Piva 1452*3cc25752SFrank Piva 1453*3cc25752SFrank Piva typedef cl_int CL_API_CALL 1454*3cc25752SFrank Piva clGetKernelSubGroupInfoKHR_t( 1455*3cc25752SFrank Piva cl_kernel in_kernel, 1456*3cc25752SFrank Piva cl_device_id in_device, 1457*3cc25752SFrank Piva cl_kernel_sub_group_info param_name, 1458*3cc25752SFrank Piva size_t input_value_size, 1459*3cc25752SFrank Piva const void* input_value, 1460*3cc25752SFrank Piva size_t param_value_size, 1461*3cc25752SFrank Piva void* param_value, 1462*3cc25752SFrank Piva size_t* param_value_size_ret); 1463*3cc25752SFrank Piva 1464*3cc25752SFrank Piva typedef clGetKernelSubGroupInfoKHR_t * 1465*3cc25752SFrank Piva clGetKernelSubGroupInfoKHR_fn CL_API_SUFFIX__VERSION_2_0_DEPRECATED; 1466*3cc25752SFrank Piva 1467*3cc25752SFrank Piva #if !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) 1468*3cc25752SFrank Piva 1469*3cc25752SFrank Piva extern CL_API_ENTRY cl_int CL_API_CALL 1470*3cc25752SFrank Piva clGetKernelSubGroupInfoKHR( 1471*3cc25752SFrank Piva cl_kernel in_kernel, 1472*3cc25752SFrank Piva cl_device_id in_device, 1473*3cc25752SFrank Piva cl_kernel_sub_group_info param_name, 1474*3cc25752SFrank Piva size_t input_value_size, 1475*3cc25752SFrank Piva const void* input_value, 1476*3cc25752SFrank Piva size_t param_value_size, 1477*3cc25752SFrank Piva void* param_value, 1478*3cc25752SFrank Piva size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_2_0_DEPRECATED; 1479*3cc25752SFrank Piva 1480*3cc25752SFrank Piva #endif /* !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ 1481*3cc25752SFrank Piva 1482*3cc25752SFrank Piva /*************************************************************** 1483*3cc25752SFrank Piva * cl_khr_mipmap_image 1484*3cc25752SFrank Piva ***************************************************************/ 1485*3cc25752SFrank Piva #define cl_khr_mipmap_image 1 1486*3cc25752SFrank Piva #define CL_KHR_MIPMAP_IMAGE_EXTENSION_NAME \ 1487*3cc25752SFrank Piva "cl_khr_mipmap_image" 1488*3cc25752SFrank Piva 1489*3cc25752SFrank Piva /* cl_sampler_properties */ 1490*3cc25752SFrank Piva #define CL_SAMPLER_MIP_FILTER_MODE_KHR 0x1155 1491*3cc25752SFrank Piva #define CL_SAMPLER_LOD_MIN_KHR 0x1156 1492*3cc25752SFrank Piva #define CL_SAMPLER_LOD_MAX_KHR 0x1157 1493*3cc25752SFrank Piva 1494*3cc25752SFrank Piva /*************************************************************** 1495*3cc25752SFrank Piva * cl_khr_priority_hints 1496*3cc25752SFrank Piva ***************************************************************/ 1497*3cc25752SFrank Piva #define cl_khr_priority_hints 1 1498*3cc25752SFrank Piva #define CL_KHR_PRIORITY_HINTS_EXTENSION_NAME \ 1499*3cc25752SFrank Piva "cl_khr_priority_hints" 1500*3cc25752SFrank Piva 1501*3cc25752SFrank Piva /* To be used by clGetEventInfo */ 1502*3cc25752SFrank Piva typedef cl_uint cl_queue_priority_khr; 1503*3cc25752SFrank Piva 1504*3cc25752SFrank Piva /* cl_queue_properties */ 1505*3cc25752SFrank Piva #define CL_QUEUE_PRIORITY_KHR 0x1096 1506*3cc25752SFrank Piva 1507*3cc25752SFrank Piva /* cl_queue_priority_khr */ 1508*3cc25752SFrank Piva #define CL_QUEUE_PRIORITY_HIGH_KHR (1 << 0) 1509*3cc25752SFrank Piva #define CL_QUEUE_PRIORITY_MED_KHR (1 << 1) 1510*3cc25752SFrank Piva #define CL_QUEUE_PRIORITY_LOW_KHR (1 << 2) 1511*3cc25752SFrank Piva 1512*3cc25752SFrank Piva /*************************************************************** 1513*3cc25752SFrank Piva * cl_khr_throttle_hints 1514*3cc25752SFrank Piva ***************************************************************/ 1515*3cc25752SFrank Piva #define cl_khr_throttle_hints 1 1516*3cc25752SFrank Piva #define CL_KHR_THROTTLE_HINTS_EXTENSION_NAME \ 1517*3cc25752SFrank Piva "cl_khr_throttle_hints" 1518*3cc25752SFrank Piva 1519*3cc25752SFrank Piva /* To be used by clGetEventInfo */ 1520*3cc25752SFrank Piva typedef cl_uint cl_queue_throttle_khr; 1521*3cc25752SFrank Piva 1522*3cc25752SFrank Piva /* cl_queue_properties */ 1523*3cc25752SFrank Piva #define CL_QUEUE_THROTTLE_KHR 0x1097 1524*3cc25752SFrank Piva 1525*3cc25752SFrank Piva /* cl_queue_throttle_khr */ 1526*3cc25752SFrank Piva #define CL_QUEUE_THROTTLE_HIGH_KHR (1 << 0) 1527*3cc25752SFrank Piva #define CL_QUEUE_THROTTLE_MED_KHR (1 << 1) 1528*3cc25752SFrank Piva #define CL_QUEUE_THROTTLE_LOW_KHR (1 << 2) 1529*3cc25752SFrank Piva 1530*3cc25752SFrank Piva /*************************************************************** 1531*3cc25752SFrank Piva * cl_khr_subgroup_named_barrier 1532*3cc25752SFrank Piva ***************************************************************/ 1533*3cc25752SFrank Piva #define cl_khr_subgroup_named_barrier 1 1534*3cc25752SFrank Piva #define CL_KHR_SUBGROUP_NAMED_BARRIER_EXTENSION_NAME \ 1535*3cc25752SFrank Piva "cl_khr_subgroup_named_barrier" 1536*3cc25752SFrank Piva 1537*3cc25752SFrank Piva /* cl_device_info */ 1538*3cc25752SFrank Piva #define CL_DEVICE_MAX_NAMED_BARRIER_COUNT_KHR 0x2035 1539*3cc25752SFrank Piva 1540*3cc25752SFrank Piva /*************************************************************** 1541*3cc25752SFrank Piva * cl_khr_extended_versioning 1542*3cc25752SFrank Piva ***************************************************************/ 1543*3cc25752SFrank Piva #define cl_khr_extended_versioning 1 1544*3cc25752SFrank Piva #define CL_KHR_EXTENDED_VERSIONING_EXTENSION_NAME \ 1545*3cc25752SFrank Piva "cl_khr_extended_versioning" 1546*3cc25752SFrank Piva 1547*3cc25752SFrank Piva #define CL_VERSION_MAJOR_BITS_KHR 10 1548*3cc25752SFrank Piva #define CL_VERSION_MINOR_BITS_KHR 10 1549*3cc25752SFrank Piva #define CL_VERSION_PATCH_BITS_KHR 12 1550*3cc25752SFrank Piva 1551*3cc25752SFrank Piva #define CL_VERSION_MAJOR_MASK_KHR ((1 << CL_VERSION_MAJOR_BITS_KHR) - 1) 1552*3cc25752SFrank Piva #define CL_VERSION_MINOR_MASK_KHR ((1 << CL_VERSION_MINOR_BITS_KHR) - 1) 1553*3cc25752SFrank Piva #define CL_VERSION_PATCH_MASK_KHR ((1 << CL_VERSION_PATCH_BITS_KHR) - 1) 1554*3cc25752SFrank Piva 1555*3cc25752SFrank Piva #define CL_VERSION_MAJOR_KHR(version) ((version) >> (CL_VERSION_MINOR_BITS_KHR + CL_VERSION_PATCH_BITS_KHR)) 1556*3cc25752SFrank Piva #define CL_VERSION_MINOR_KHR(version) (((version) >> CL_VERSION_PATCH_BITS_KHR) & CL_VERSION_MINOR_MASK_KHR) 1557*3cc25752SFrank Piva #define CL_VERSION_PATCH_KHR(version) ((version) & CL_VERSION_PATCH_MASK_KHR) 1558*3cc25752SFrank Piva 1559*3cc25752SFrank Piva #define CL_MAKE_VERSION_KHR(major, minor, patch) \ 1560*3cc25752SFrank Piva ((((major) & CL_VERSION_MAJOR_MASK_KHR) << (CL_VERSION_MINOR_BITS_KHR + CL_VERSION_PATCH_BITS_KHR)) | \ 1561*3cc25752SFrank Piva (((minor) & CL_VERSION_MINOR_MASK_KHR) << CL_VERSION_PATCH_BITS_KHR) | \ 1562*3cc25752SFrank Piva ((patch) & CL_VERSION_PATCH_MASK_KHR)) 1563*3cc25752SFrank Piva 1564*3cc25752SFrank Piva #define CL_NAME_VERSION_MAX_NAME_SIZE_KHR 64 1565*3cc25752SFrank Piva 1566*3cc25752SFrank Piva typedef cl_uint cl_version_khr; 1567*3cc25752SFrank Piva typedef struct _cl_name_version_khr { 1568*3cc25752SFrank Piva cl_version_khr version; 1569*3cc25752SFrank Piva char name[CL_NAME_VERSION_MAX_NAME_SIZE_KHR]; 1570*3cc25752SFrank Piva } cl_name_version_khr; 1571*3cc25752SFrank Piva 1572*3cc25752SFrank Piva /* cl_platform_info */ 1573*3cc25752SFrank Piva #define CL_PLATFORM_NUMERIC_VERSION_KHR 0x0906 1574*3cc25752SFrank Piva #define CL_PLATFORM_EXTENSIONS_WITH_VERSION_KHR 0x0907 1575*3cc25752SFrank Piva 1576*3cc25752SFrank Piva /* cl_device_info */ 1577*3cc25752SFrank Piva #define CL_DEVICE_NUMERIC_VERSION_KHR 0x105E 1578*3cc25752SFrank Piva #define CL_DEVICE_OPENCL_C_NUMERIC_VERSION_KHR 0x105F 1579*3cc25752SFrank Piva #define CL_DEVICE_EXTENSIONS_WITH_VERSION_KHR 0x1060 1580*3cc25752SFrank Piva #define CL_DEVICE_ILS_WITH_VERSION_KHR 0x1061 1581*3cc25752SFrank Piva #define CL_DEVICE_BUILT_IN_KERNELS_WITH_VERSION_KHR 0x1062 1582*3cc25752SFrank Piva 1583*3cc25752SFrank Piva /*************************************************************** 1584*3cc25752SFrank Piva * cl_khr_device_uuid 1585*3cc25752SFrank Piva ***************************************************************/ 1586*3cc25752SFrank Piva #define cl_khr_device_uuid 1 1587*3cc25752SFrank Piva #define CL_KHR_DEVICE_UUID_EXTENSION_NAME \ 1588*3cc25752SFrank Piva "cl_khr_device_uuid" 1589*3cc25752SFrank Piva 1590*3cc25752SFrank Piva /* Size Constants */ 1591*3cc25752SFrank Piva #define CL_UUID_SIZE_KHR 16 1592*3cc25752SFrank Piva #define CL_LUID_SIZE_KHR 8 1593*3cc25752SFrank Piva 1594*3cc25752SFrank Piva /* cl_device_info */ 1595*3cc25752SFrank Piva #define CL_DEVICE_UUID_KHR 0x106A 1596*3cc25752SFrank Piva #define CL_DRIVER_UUID_KHR 0x106B 1597*3cc25752SFrank Piva #define CL_DEVICE_LUID_VALID_KHR 0x106C 1598*3cc25752SFrank Piva #define CL_DEVICE_LUID_KHR 0x106D 1599*3cc25752SFrank Piva #define CL_DEVICE_NODE_MASK_KHR 0x106E 1600*3cc25752SFrank Piva 1601*3cc25752SFrank Piva /*************************************************************** 1602*3cc25752SFrank Piva * cl_khr_pci_bus_info 1603*3cc25752SFrank Piva ***************************************************************/ 1604*3cc25752SFrank Piva #define cl_khr_pci_bus_info 1 1605*3cc25752SFrank Piva #define CL_KHR_PCI_BUS_INFO_EXTENSION_NAME \ 1606*3cc25752SFrank Piva "cl_khr_pci_bus_info" 1607*3cc25752SFrank Piva 1608*3cc25752SFrank Piva typedef struct _cl_device_pci_bus_info_khr { 1609*3cc25752SFrank Piva cl_uint pci_domain; 1610*3cc25752SFrank Piva cl_uint pci_bus; 1611*3cc25752SFrank Piva cl_uint pci_device; 1612*3cc25752SFrank Piva cl_uint pci_function; 1613*3cc25752SFrank Piva } cl_device_pci_bus_info_khr; 1614*3cc25752SFrank Piva 1615*3cc25752SFrank Piva /* cl_device_info */ 1616*3cc25752SFrank Piva #define CL_DEVICE_PCI_BUS_INFO_KHR 0x410F 1617*3cc25752SFrank Piva 1618*3cc25752SFrank Piva /*************************************************************** 1619*3cc25752SFrank Piva * cl_khr_suggested_local_work_size 1620*3cc25752SFrank Piva ***************************************************************/ 1621*3cc25752SFrank Piva #define cl_khr_suggested_local_work_size 1 1622*3cc25752SFrank Piva #define CL_KHR_SUGGESTED_LOCAL_WORK_SIZE_EXTENSION_NAME \ 1623*3cc25752SFrank Piva "cl_khr_suggested_local_work_size" 1624*3cc25752SFrank Piva 1625*3cc25752SFrank Piva 1626*3cc25752SFrank Piva typedef cl_int CL_API_CALL 1627*3cc25752SFrank Piva clGetKernelSuggestedLocalWorkSizeKHR_t( 1628*3cc25752SFrank Piva cl_command_queue command_queue, 1629*3cc25752SFrank Piva cl_kernel kernel, 1630*3cc25752SFrank Piva cl_uint work_dim, 1631*3cc25752SFrank Piva const size_t* global_work_offset, 1632*3cc25752SFrank Piva const size_t* global_work_size, 1633*3cc25752SFrank Piva size_t* suggested_local_work_size); 1634*3cc25752SFrank Piva 1635*3cc25752SFrank Piva typedef clGetKernelSuggestedLocalWorkSizeKHR_t * 1636*3cc25752SFrank Piva clGetKernelSuggestedLocalWorkSizeKHR_fn CL_API_SUFFIX__VERSION_3_0; 1637*3cc25752SFrank Piva 1638*3cc25752SFrank Piva #if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) 1639*3cc25752SFrank Piva 1640*3cc25752SFrank Piva extern CL_API_ENTRY cl_int CL_API_CALL 1641*3cc25752SFrank Piva clGetKernelSuggestedLocalWorkSizeKHR( 1642*3cc25752SFrank Piva cl_command_queue command_queue, 1643*3cc25752SFrank Piva cl_kernel kernel, 1644*3cc25752SFrank Piva cl_uint work_dim, 1645*3cc25752SFrank Piva const size_t* global_work_offset, 1646*3cc25752SFrank Piva const size_t* global_work_size, 1647*3cc25752SFrank Piva size_t* suggested_local_work_size) CL_API_SUFFIX__VERSION_3_0; 1648*3cc25752SFrank Piva 1649*3cc25752SFrank Piva #endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ 1650*3cc25752SFrank Piva 1651*3cc25752SFrank Piva /*************************************************************** 1652*3cc25752SFrank Piva * cl_khr_integer_dot_product 1653*3cc25752SFrank Piva ***************************************************************/ 1654*3cc25752SFrank Piva #define cl_khr_integer_dot_product 1 1655*3cc25752SFrank Piva #define CL_KHR_INTEGER_DOT_PRODUCT_EXTENSION_NAME \ 1656*3cc25752SFrank Piva "cl_khr_integer_dot_product" 1657*3cc25752SFrank Piva 1658*3cc25752SFrank Piva typedef cl_bitfield cl_device_integer_dot_product_capabilities_khr; 1659*3cc25752SFrank Piva typedef struct _cl_device_integer_dot_product_acceleration_properties_khr { 1660*3cc25752SFrank Piva cl_bool signed_accelerated; 1661*3cc25752SFrank Piva cl_bool unsigned_accelerated; 1662*3cc25752SFrank Piva cl_bool mixed_signedness_accelerated; 1663*3cc25752SFrank Piva cl_bool accumulating_saturating_signed_accelerated; 1664*3cc25752SFrank Piva cl_bool accumulating_saturating_unsigned_accelerated; 1665*3cc25752SFrank Piva cl_bool accumulating_saturating_mixed_signedness_accelerated; 1666*3cc25752SFrank Piva } cl_device_integer_dot_product_acceleration_properties_khr; 1667*3cc25752SFrank Piva 1668*3cc25752SFrank Piva /* cl_device_integer_dot_product_capabilities_khr */ 1669*3cc25752SFrank Piva #define CL_DEVICE_INTEGER_DOT_PRODUCT_INPUT_4x8BIT_PACKED_KHR (1 << 0) 1670*3cc25752SFrank Piva #define CL_DEVICE_INTEGER_DOT_PRODUCT_INPUT_4x8BIT_KHR (1 << 1) 1671*3cc25752SFrank Piva 1672*3cc25752SFrank Piva /* cl_device_info */ 1673*3cc25752SFrank Piva #define CL_DEVICE_INTEGER_DOT_PRODUCT_CAPABILITIES_KHR 0x1073 1674*3cc25752SFrank Piva #define CL_DEVICE_INTEGER_DOT_PRODUCT_ACCELERATION_PROPERTIES_8BIT_KHR 0x1074 1675*3cc25752SFrank Piva #define CL_DEVICE_INTEGER_DOT_PRODUCT_ACCELERATION_PROPERTIES_4x8BIT_PACKED_KHR 0x1075 1676*3cc25752SFrank Piva 1677*3cc25752SFrank Piva /*************************************************************** 1678*3cc25752SFrank Piva * cl_khr_external_memory 1679*3cc25752SFrank Piva ***************************************************************/ 1680*3cc25752SFrank Piva #define cl_khr_external_memory 1 1681*3cc25752SFrank Piva #define CL_KHR_EXTERNAL_MEMORY_EXTENSION_NAME \ 1682*3cc25752SFrank Piva "cl_khr_external_memory" 1683*3cc25752SFrank Piva 1684*3cc25752SFrank Piva typedef cl_uint cl_external_memory_handle_type_khr; 1685*3cc25752SFrank Piva 1686*3cc25752SFrank Piva /* cl_platform_info */ 1687*3cc25752SFrank Piva #define CL_PLATFORM_EXTERNAL_MEMORY_IMPORT_HANDLE_TYPES_KHR 0x2044 1688*3cc25752SFrank Piva 1689*3cc25752SFrank Piva /* cl_device_info */ 1690*3cc25752SFrank Piva #define CL_DEVICE_EXTERNAL_MEMORY_IMPORT_HANDLE_TYPES_KHR 0x204F 1691*3cc25752SFrank Piva #define CL_DEVICE_EXTERNAL_MEMORY_IMPORT_ASSUME_LINEAR_IMAGES_HANDLE_TYPES_KHR 0x2052 1692*3cc25752SFrank Piva 1693*3cc25752SFrank Piva /* cl_mem_properties */ 1694*3cc25752SFrank Piva #define CL_MEM_DEVICE_HANDLE_LIST_KHR 0x2051 1695*3cc25752SFrank Piva #define CL_MEM_DEVICE_HANDLE_LIST_END_KHR 0 1696*3cc25752SFrank Piva 1697*3cc25752SFrank Piva /* cl_command_type */ 1698*3cc25752SFrank Piva #define CL_COMMAND_ACQUIRE_EXTERNAL_MEM_OBJECTS_KHR 0x2047 1699*3cc25752SFrank Piva #define CL_COMMAND_RELEASE_EXTERNAL_MEM_OBJECTS_KHR 0x2048 1700*3cc25752SFrank Piva 1701*3cc25752SFrank Piva 1702*3cc25752SFrank Piva typedef cl_int CL_API_CALL 1703*3cc25752SFrank Piva clEnqueueAcquireExternalMemObjectsKHR_t( 1704*3cc25752SFrank Piva cl_command_queue command_queue, 1705*3cc25752SFrank Piva cl_uint num_mem_objects, 1706*3cc25752SFrank Piva const cl_mem* mem_objects, 1707*3cc25752SFrank Piva cl_uint num_events_in_wait_list, 1708*3cc25752SFrank Piva const cl_event* event_wait_list, 1709*3cc25752SFrank Piva cl_event* event); 1710*3cc25752SFrank Piva 1711*3cc25752SFrank Piva typedef clEnqueueAcquireExternalMemObjectsKHR_t * 1712*3cc25752SFrank Piva clEnqueueAcquireExternalMemObjectsKHR_fn CL_API_SUFFIX__VERSION_3_0; 1713*3cc25752SFrank Piva 1714*3cc25752SFrank Piva typedef cl_int CL_API_CALL 1715*3cc25752SFrank Piva clEnqueueReleaseExternalMemObjectsKHR_t( 1716*3cc25752SFrank Piva cl_command_queue command_queue, 1717*3cc25752SFrank Piva cl_uint num_mem_objects, 1718*3cc25752SFrank Piva const cl_mem* mem_objects, 1719*3cc25752SFrank Piva cl_uint num_events_in_wait_list, 1720*3cc25752SFrank Piva const cl_event* event_wait_list, 1721*3cc25752SFrank Piva cl_event* event); 1722*3cc25752SFrank Piva 1723*3cc25752SFrank Piva typedef clEnqueueReleaseExternalMemObjectsKHR_t * 1724*3cc25752SFrank Piva clEnqueueReleaseExternalMemObjectsKHR_fn CL_API_SUFFIX__VERSION_3_0; 1725*3cc25752SFrank Piva 1726*3cc25752SFrank Piva #if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) 1727*3cc25752SFrank Piva 1728*3cc25752SFrank Piva extern CL_API_ENTRY cl_int CL_API_CALL 1729*3cc25752SFrank Piva clEnqueueAcquireExternalMemObjectsKHR( 1730*3cc25752SFrank Piva cl_command_queue command_queue, 1731*3cc25752SFrank Piva cl_uint num_mem_objects, 1732*3cc25752SFrank Piva const cl_mem* mem_objects, 1733*3cc25752SFrank Piva cl_uint num_events_in_wait_list, 1734*3cc25752SFrank Piva const cl_event* event_wait_list, 1735*3cc25752SFrank Piva cl_event* event) CL_API_SUFFIX__VERSION_3_0; 1736*3cc25752SFrank Piva 1737*3cc25752SFrank Piva extern CL_API_ENTRY cl_int CL_API_CALL 1738*3cc25752SFrank Piva clEnqueueReleaseExternalMemObjectsKHR( 1739*3cc25752SFrank Piva cl_command_queue command_queue, 1740*3cc25752SFrank Piva cl_uint num_mem_objects, 1741*3cc25752SFrank Piva const cl_mem* mem_objects, 1742*3cc25752SFrank Piva cl_uint num_events_in_wait_list, 1743*3cc25752SFrank Piva const cl_event* event_wait_list, 1744*3cc25752SFrank Piva cl_event* event) CL_API_SUFFIX__VERSION_3_0; 1745*3cc25752SFrank Piva 1746*3cc25752SFrank Piva #endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ 1747*3cc25752SFrank Piva 1748*3cc25752SFrank Piva /*************************************************************** 1749*3cc25752SFrank Piva * cl_khr_external_memory_dma_buf 1750*3cc25752SFrank Piva ***************************************************************/ 1751*3cc25752SFrank Piva #define cl_khr_external_memory_dma_buf 1 1752*3cc25752SFrank Piva #define CL_KHR_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME \ 1753*3cc25752SFrank Piva "cl_khr_external_memory_dma_buf" 1754*3cc25752SFrank Piva 1755*3cc25752SFrank Piva /* cl_external_memory_handle_type_khr */ 1756*3cc25752SFrank Piva #define CL_EXTERNAL_MEMORY_HANDLE_DMA_BUF_KHR 0x2067 1757*3cc25752SFrank Piva 1758*3cc25752SFrank Piva /*************************************************************** 1759*3cc25752SFrank Piva * cl_khr_external_memory_dx 1760*3cc25752SFrank Piva ***************************************************************/ 1761*3cc25752SFrank Piva #define cl_khr_external_memory_dx 1 1762*3cc25752SFrank Piva #define CL_KHR_EXTERNAL_MEMORY_DX_EXTENSION_NAME \ 1763*3cc25752SFrank Piva "cl_khr_external_memory_dx" 1764*3cc25752SFrank Piva 1765*3cc25752SFrank Piva /* cl_external_memory_handle_type_khr */ 1766*3cc25752SFrank Piva #define CL_EXTERNAL_MEMORY_HANDLE_D3D11_TEXTURE_KHR 0x2063 1767*3cc25752SFrank Piva #define CL_EXTERNAL_MEMORY_HANDLE_D3D11_TEXTURE_KMT_KHR 0x2064 1768*3cc25752SFrank Piva #define CL_EXTERNAL_MEMORY_HANDLE_D3D12_HEAP_KHR 0x2065 1769*3cc25752SFrank Piva #define CL_EXTERNAL_MEMORY_HANDLE_D3D12_RESOURCE_KHR 0x2066 1770*3cc25752SFrank Piva 1771*3cc25752SFrank Piva /*************************************************************** 1772*3cc25752SFrank Piva * cl_khr_external_memory_opaque_fd 1773*3cc25752SFrank Piva ***************************************************************/ 1774*3cc25752SFrank Piva #define cl_khr_external_memory_opaque_fd 1 1775*3cc25752SFrank Piva #define CL_KHR_EXTERNAL_MEMORY_OPAQUE_FD_EXTENSION_NAME \ 1776*3cc25752SFrank Piva "cl_khr_external_memory_opaque_fd" 1777*3cc25752SFrank Piva 1778*3cc25752SFrank Piva /* cl_external_memory_handle_type_khr */ 1779*3cc25752SFrank Piva #define CL_EXTERNAL_MEMORY_HANDLE_OPAQUE_FD_KHR 0x2060 1780*3cc25752SFrank Piva 1781*3cc25752SFrank Piva /*************************************************************** 1782*3cc25752SFrank Piva * cl_khr_external_memory_win32 1783*3cc25752SFrank Piva ***************************************************************/ 1784*3cc25752SFrank Piva #define cl_khr_external_memory_win32 1 1785*3cc25752SFrank Piva #define CL_KHR_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME \ 1786*3cc25752SFrank Piva "cl_khr_external_memory_win32" 1787*3cc25752SFrank Piva 1788*3cc25752SFrank Piva /* cl_external_memory_handle_type_khr */ 1789*3cc25752SFrank Piva #define CL_EXTERNAL_MEMORY_HANDLE_OPAQUE_WIN32_KHR 0x2061 1790*3cc25752SFrank Piva #define CL_EXTERNAL_MEMORY_HANDLE_OPAQUE_WIN32_KMT_KHR 0x2062 1791*3cc25752SFrank Piva 1792*3cc25752SFrank Piva /*************************************************************** 1793*3cc25752SFrank Piva * cl_khr_external_semaphore 1794*3cc25752SFrank Piva ***************************************************************/ 1795*3cc25752SFrank Piva #define cl_khr_external_semaphore 1 1796*3cc25752SFrank Piva #define CL_KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME \ 1797*3cc25752SFrank Piva "cl_khr_external_semaphore" 1798*3cc25752SFrank Piva 1799*3cc25752SFrank Piva typedef struct _cl_semaphore_khr * cl_semaphore_khr; 1800*3cc25752SFrank Piva typedef cl_uint cl_external_semaphore_handle_type_khr; 1801*3cc25752SFrank Piva 1802*3cc25752SFrank Piva /* cl_platform_info */ 1803*3cc25752SFrank Piva #define CL_PLATFORM_SEMAPHORE_IMPORT_HANDLE_TYPES_KHR 0x2037 1804*3cc25752SFrank Piva #define CL_PLATFORM_SEMAPHORE_EXPORT_HANDLE_TYPES_KHR 0x2038 1805*3cc25752SFrank Piva 1806*3cc25752SFrank Piva /* cl_device_info */ 1807*3cc25752SFrank Piva #define CL_DEVICE_SEMAPHORE_IMPORT_HANDLE_TYPES_KHR 0x204D 1808*3cc25752SFrank Piva #define CL_DEVICE_SEMAPHORE_EXPORT_HANDLE_TYPES_KHR 0x204E 1809*3cc25752SFrank Piva 1810*3cc25752SFrank Piva /* cl_semaphore_properties_khr */ 1811*3cc25752SFrank Piva #define CL_SEMAPHORE_EXPORT_HANDLE_TYPES_KHR 0x203F 1812*3cc25752SFrank Piva #define CL_SEMAPHORE_EXPORT_HANDLE_TYPES_LIST_END_KHR 0 1813*3cc25752SFrank Piva 1814*3cc25752SFrank Piva /* cl_semaphore_info_khr */ 1815*3cc25752SFrank Piva #define CL_SEMAPHORE_EXPORTABLE_KHR 0x2054 1816*3cc25752SFrank Piva 1817*3cc25752SFrank Piva 1818*3cc25752SFrank Piva typedef cl_int CL_API_CALL 1819*3cc25752SFrank Piva clGetSemaphoreHandleForTypeKHR_t( 1820*3cc25752SFrank Piva cl_semaphore_khr sema_object, 1821*3cc25752SFrank Piva cl_device_id device, 1822*3cc25752SFrank Piva cl_external_semaphore_handle_type_khr handle_type, 1823*3cc25752SFrank Piva size_t handle_size, 1824*3cc25752SFrank Piva void* handle_ptr, 1825*3cc25752SFrank Piva size_t* handle_size_ret); 1826*3cc25752SFrank Piva 1827*3cc25752SFrank Piva typedef clGetSemaphoreHandleForTypeKHR_t * 1828*3cc25752SFrank Piva clGetSemaphoreHandleForTypeKHR_fn CL_API_SUFFIX__VERSION_1_2; 1829*3cc25752SFrank Piva 1830*3cc25752SFrank Piva #if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) 1831*3cc25752SFrank Piva 1832*3cc25752SFrank Piva extern CL_API_ENTRY cl_int CL_API_CALL 1833*3cc25752SFrank Piva clGetSemaphoreHandleForTypeKHR( 1834*3cc25752SFrank Piva cl_semaphore_khr sema_object, 1835*3cc25752SFrank Piva cl_device_id device, 1836*3cc25752SFrank Piva cl_external_semaphore_handle_type_khr handle_type, 1837*3cc25752SFrank Piva size_t handle_size, 1838*3cc25752SFrank Piva void* handle_ptr, 1839*3cc25752SFrank Piva size_t* handle_size_ret) CL_API_SUFFIX__VERSION_1_2; 1840*3cc25752SFrank Piva 1841*3cc25752SFrank Piva #endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ 1842*3cc25752SFrank Piva 1843*3cc25752SFrank Piva /*************************************************************** 1844*3cc25752SFrank Piva * cl_khr_external_semaphore_dx_fence 1845*3cc25752SFrank Piva ***************************************************************/ 1846*3cc25752SFrank Piva #define cl_khr_external_semaphore_dx_fence 1 1847*3cc25752SFrank Piva #define CL_KHR_EXTERNAL_SEMAPHORE_DX_FENCE_EXTENSION_NAME \ 1848*3cc25752SFrank Piva "cl_khr_external_semaphore_dx_fence" 1849*3cc25752SFrank Piva 1850*3cc25752SFrank Piva /* cl_external_semaphore_handle_type_khr */ 1851*3cc25752SFrank Piva #define CL_SEMAPHORE_HANDLE_D3D12_FENCE_KHR 0x2059 1852*3cc25752SFrank Piva 1853*3cc25752SFrank Piva /*************************************************************** 1854*3cc25752SFrank Piva * cl_khr_external_semaphore_opaque_fd 1855*3cc25752SFrank Piva ***************************************************************/ 1856*3cc25752SFrank Piva #define cl_khr_external_semaphore_opaque_fd 1 1857*3cc25752SFrank Piva #define CL_KHR_EXTERNAL_SEMAPHORE_OPAQUE_FD_EXTENSION_NAME \ 1858*3cc25752SFrank Piva "cl_khr_external_semaphore_opaque_fd" 1859*3cc25752SFrank Piva 1860*3cc25752SFrank Piva /* cl_external_semaphore_handle_type_khr */ 1861*3cc25752SFrank Piva #define CL_SEMAPHORE_HANDLE_OPAQUE_FD_KHR 0x2055 1862*3cc25752SFrank Piva 1863*3cc25752SFrank Piva /*************************************************************** 1864*3cc25752SFrank Piva * cl_khr_external_semaphore_sync_fd 1865*3cc25752SFrank Piva ***************************************************************/ 1866*3cc25752SFrank Piva #define cl_khr_external_semaphore_sync_fd 1 1867*3cc25752SFrank Piva #define CL_KHR_EXTERNAL_SEMAPHORE_SYNC_FD_EXTENSION_NAME \ 1868*3cc25752SFrank Piva "cl_khr_external_semaphore_sync_fd" 1869*3cc25752SFrank Piva 1870*3cc25752SFrank Piva typedef cl_properties cl_semaphore_reimport_properties_khr; 1871*3cc25752SFrank Piva 1872*3cc25752SFrank Piva /* cl_external_semaphore_handle_type_khr */ 1873*3cc25752SFrank Piva #define CL_SEMAPHORE_HANDLE_SYNC_FD_KHR 0x2058 1874*3cc25752SFrank Piva 1875*3cc25752SFrank Piva 1876*3cc25752SFrank Piva typedef cl_int CL_API_CALL 1877*3cc25752SFrank Piva clReImportSemaphoreSyncFdKHR_t( 1878*3cc25752SFrank Piva cl_semaphore_khr sema_object, 1879*3cc25752SFrank Piva cl_semaphore_reimport_properties_khr* reimport_props, 1880*3cc25752SFrank Piva int fd); 1881*3cc25752SFrank Piva 1882*3cc25752SFrank Piva typedef clReImportSemaphoreSyncFdKHR_t * 1883*3cc25752SFrank Piva clReImportSemaphoreSyncFdKHR_fn CL_API_SUFFIX__VERSION_3_0; 1884*3cc25752SFrank Piva 1885*3cc25752SFrank Piva #if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) 1886*3cc25752SFrank Piva 1887*3cc25752SFrank Piva extern CL_API_ENTRY cl_int CL_API_CALL 1888*3cc25752SFrank Piva clReImportSemaphoreSyncFdKHR( 1889*3cc25752SFrank Piva cl_semaphore_khr sema_object, 1890*3cc25752SFrank Piva cl_semaphore_reimport_properties_khr* reimport_props, 1891*3cc25752SFrank Piva int fd) CL_API_SUFFIX__VERSION_3_0; 1892*3cc25752SFrank Piva 1893*3cc25752SFrank Piva #endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ 1894*3cc25752SFrank Piva 1895*3cc25752SFrank Piva /*************************************************************** 1896*3cc25752SFrank Piva * cl_khr_external_semaphore_win32 1897*3cc25752SFrank Piva ***************************************************************/ 1898*3cc25752SFrank Piva #define cl_khr_external_semaphore_win32 1 1899*3cc25752SFrank Piva #define CL_KHR_EXTERNAL_SEMAPHORE_WIN32_EXTENSION_NAME \ 1900*3cc25752SFrank Piva "cl_khr_external_semaphore_win32" 1901*3cc25752SFrank Piva 1902*3cc25752SFrank Piva /* cl_external_semaphore_handle_type_khr */ 1903*3cc25752SFrank Piva #define CL_SEMAPHORE_HANDLE_OPAQUE_WIN32_KHR 0x2056 1904*3cc25752SFrank Piva #define CL_SEMAPHORE_HANDLE_OPAQUE_WIN32_KMT_KHR 0x2057 1905*3cc25752SFrank Piva 1906*3cc25752SFrank Piva /*************************************************************** 1907*3cc25752SFrank Piva * cl_khr_semaphore 1908*3cc25752SFrank Piva ***************************************************************/ 1909*3cc25752SFrank Piva #define cl_khr_semaphore 1 1910*3cc25752SFrank Piva #define CL_KHR_SEMAPHORE_EXTENSION_NAME \ 1911*3cc25752SFrank Piva "cl_khr_semaphore" 1912*3cc25752SFrank Piva 1913*3cc25752SFrank Piva /* type cl_semaphore_khr */ 1914*3cc25752SFrank Piva typedef cl_properties cl_semaphore_properties_khr; 1915*3cc25752SFrank Piva typedef cl_uint cl_semaphore_info_khr; 1916*3cc25752SFrank Piva typedef cl_uint cl_semaphore_type_khr; 1917*3cc25752SFrank Piva typedef cl_ulong cl_semaphore_payload_khr; 1918*3cc25752SFrank Piva 1919*3cc25752SFrank Piva /* cl_semaphore_type */ 1920*3cc25752SFrank Piva #define CL_SEMAPHORE_TYPE_BINARY_KHR 1 1921*3cc25752SFrank Piva 1922*3cc25752SFrank Piva /* cl_platform_info */ 1923*3cc25752SFrank Piva #define CL_PLATFORM_SEMAPHORE_TYPES_KHR 0x2036 1924*3cc25752SFrank Piva 1925*3cc25752SFrank Piva /* cl_device_info */ 1926*3cc25752SFrank Piva #define CL_DEVICE_SEMAPHORE_TYPES_KHR 0x204C 1927*3cc25752SFrank Piva 1928*3cc25752SFrank Piva /* cl_semaphore_info_khr */ 1929*3cc25752SFrank Piva #define CL_SEMAPHORE_CONTEXT_KHR 0x2039 1930*3cc25752SFrank Piva #define CL_SEMAPHORE_REFERENCE_COUNT_KHR 0x203A 1931*3cc25752SFrank Piva #define CL_SEMAPHORE_PROPERTIES_KHR 0x203B 1932*3cc25752SFrank Piva #define CL_SEMAPHORE_PAYLOAD_KHR 0x203C 1933*3cc25752SFrank Piva 1934*3cc25752SFrank Piva /* cl_semaphore_info_khr or cl_semaphore_properties_khr */ 1935*3cc25752SFrank Piva #define CL_SEMAPHORE_TYPE_KHR 0x203D 1936*3cc25752SFrank Piva #define CL_SEMAPHORE_DEVICE_HANDLE_LIST_KHR 0x2053 1937*3cc25752SFrank Piva #define CL_SEMAPHORE_DEVICE_HANDLE_LIST_END_KHR 0 1938*3cc25752SFrank Piva 1939*3cc25752SFrank Piva /* cl_command_type */ 1940*3cc25752SFrank Piva #define CL_COMMAND_SEMAPHORE_WAIT_KHR 0x2042 1941*3cc25752SFrank Piva #define CL_COMMAND_SEMAPHORE_SIGNAL_KHR 0x2043 1942*3cc25752SFrank Piva 1943*3cc25752SFrank Piva /* Error codes */ 1944*3cc25752SFrank Piva #define CL_INVALID_SEMAPHORE_KHR -1142 1945*3cc25752SFrank Piva 1946*3cc25752SFrank Piva 1947*3cc25752SFrank Piva typedef cl_semaphore_khr CL_API_CALL 1948*3cc25752SFrank Piva clCreateSemaphoreWithPropertiesKHR_t( 1949*3cc25752SFrank Piva cl_context context, 1950*3cc25752SFrank Piva const cl_semaphore_properties_khr* sema_props, 1951*3cc25752SFrank Piva cl_int* errcode_ret); 1952*3cc25752SFrank Piva 1953*3cc25752SFrank Piva typedef clCreateSemaphoreWithPropertiesKHR_t * 1954*3cc25752SFrank Piva clCreateSemaphoreWithPropertiesKHR_fn CL_API_SUFFIX__VERSION_1_2; 1955*3cc25752SFrank Piva 1956*3cc25752SFrank Piva typedef cl_int CL_API_CALL 1957*3cc25752SFrank Piva clEnqueueWaitSemaphoresKHR_t( 1958*3cc25752SFrank Piva cl_command_queue command_queue, 1959*3cc25752SFrank Piva cl_uint num_sema_objects, 1960*3cc25752SFrank Piva const cl_semaphore_khr* sema_objects, 1961*3cc25752SFrank Piva const cl_semaphore_payload_khr* sema_payload_list, 1962*3cc25752SFrank Piva cl_uint num_events_in_wait_list, 1963*3cc25752SFrank Piva const cl_event* event_wait_list, 1964*3cc25752SFrank Piva cl_event* event); 1965*3cc25752SFrank Piva 1966*3cc25752SFrank Piva typedef clEnqueueWaitSemaphoresKHR_t * 1967*3cc25752SFrank Piva clEnqueueWaitSemaphoresKHR_fn CL_API_SUFFIX__VERSION_1_2; 1968*3cc25752SFrank Piva 1969*3cc25752SFrank Piva typedef cl_int CL_API_CALL 1970*3cc25752SFrank Piva clEnqueueSignalSemaphoresKHR_t( 1971*3cc25752SFrank Piva cl_command_queue command_queue, 1972*3cc25752SFrank Piva cl_uint num_sema_objects, 1973*3cc25752SFrank Piva const cl_semaphore_khr* sema_objects, 1974*3cc25752SFrank Piva const cl_semaphore_payload_khr* sema_payload_list, 1975*3cc25752SFrank Piva cl_uint num_events_in_wait_list, 1976*3cc25752SFrank Piva const cl_event* event_wait_list, 1977*3cc25752SFrank Piva cl_event* event); 1978*3cc25752SFrank Piva 1979*3cc25752SFrank Piva typedef clEnqueueSignalSemaphoresKHR_t * 1980*3cc25752SFrank Piva clEnqueueSignalSemaphoresKHR_fn CL_API_SUFFIX__VERSION_1_2; 1981*3cc25752SFrank Piva 1982*3cc25752SFrank Piva typedef cl_int CL_API_CALL 1983*3cc25752SFrank Piva clGetSemaphoreInfoKHR_t( 1984*3cc25752SFrank Piva cl_semaphore_khr sema_object, 1985*3cc25752SFrank Piva cl_semaphore_info_khr param_name, 1986*3cc25752SFrank Piva size_t param_value_size, 1987*3cc25752SFrank Piva void* param_value, 1988*3cc25752SFrank Piva size_t* param_value_size_ret); 1989*3cc25752SFrank Piva 1990*3cc25752SFrank Piva typedef clGetSemaphoreInfoKHR_t * 1991*3cc25752SFrank Piva clGetSemaphoreInfoKHR_fn CL_API_SUFFIX__VERSION_1_2; 1992*3cc25752SFrank Piva 1993*3cc25752SFrank Piva typedef cl_int CL_API_CALL 1994*3cc25752SFrank Piva clReleaseSemaphoreKHR_t( 1995*3cc25752SFrank Piva cl_semaphore_khr sema_object); 1996*3cc25752SFrank Piva 1997*3cc25752SFrank Piva typedef clReleaseSemaphoreKHR_t * 1998*3cc25752SFrank Piva clReleaseSemaphoreKHR_fn CL_API_SUFFIX__VERSION_1_2; 1999*3cc25752SFrank Piva 2000*3cc25752SFrank Piva typedef cl_int CL_API_CALL 2001*3cc25752SFrank Piva clRetainSemaphoreKHR_t( 2002*3cc25752SFrank Piva cl_semaphore_khr sema_object); 2003*3cc25752SFrank Piva 2004*3cc25752SFrank Piva typedef clRetainSemaphoreKHR_t * 2005*3cc25752SFrank Piva clRetainSemaphoreKHR_fn CL_API_SUFFIX__VERSION_1_2; 2006*3cc25752SFrank Piva 2007*3cc25752SFrank Piva #if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) 2008*3cc25752SFrank Piva 2009*3cc25752SFrank Piva extern CL_API_ENTRY cl_semaphore_khr CL_API_CALL 2010*3cc25752SFrank Piva clCreateSemaphoreWithPropertiesKHR( 2011*3cc25752SFrank Piva cl_context context, 2012*3cc25752SFrank Piva const cl_semaphore_properties_khr* sema_props, 2013*3cc25752SFrank Piva cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; 2014*3cc25752SFrank Piva 2015*3cc25752SFrank Piva extern CL_API_ENTRY cl_int CL_API_CALL 2016*3cc25752SFrank Piva clEnqueueWaitSemaphoresKHR( 2017*3cc25752SFrank Piva cl_command_queue command_queue, 2018*3cc25752SFrank Piva cl_uint num_sema_objects, 2019*3cc25752SFrank Piva const cl_semaphore_khr* sema_objects, 2020*3cc25752SFrank Piva const cl_semaphore_payload_khr* sema_payload_list, 2021*3cc25752SFrank Piva cl_uint num_events_in_wait_list, 2022*3cc25752SFrank Piva const cl_event* event_wait_list, 2023*3cc25752SFrank Piva cl_event* event) CL_API_SUFFIX__VERSION_1_2; 2024*3cc25752SFrank Piva 2025*3cc25752SFrank Piva extern CL_API_ENTRY cl_int CL_API_CALL 2026*3cc25752SFrank Piva clEnqueueSignalSemaphoresKHR( 2027*3cc25752SFrank Piva cl_command_queue command_queue, 2028*3cc25752SFrank Piva cl_uint num_sema_objects, 2029*3cc25752SFrank Piva const cl_semaphore_khr* sema_objects, 2030*3cc25752SFrank Piva const cl_semaphore_payload_khr* sema_payload_list, 2031*3cc25752SFrank Piva cl_uint num_events_in_wait_list, 2032*3cc25752SFrank Piva const cl_event* event_wait_list, 2033*3cc25752SFrank Piva cl_event* event) CL_API_SUFFIX__VERSION_1_2; 2034*3cc25752SFrank Piva 2035*3cc25752SFrank Piva extern CL_API_ENTRY cl_int CL_API_CALL 2036*3cc25752SFrank Piva clGetSemaphoreInfoKHR( 2037*3cc25752SFrank Piva cl_semaphore_khr sema_object, 2038*3cc25752SFrank Piva cl_semaphore_info_khr param_name, 2039*3cc25752SFrank Piva size_t param_value_size, 2040*3cc25752SFrank Piva void* param_value, 2041*3cc25752SFrank Piva size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_2; 2042*3cc25752SFrank Piva 2043*3cc25752SFrank Piva extern CL_API_ENTRY cl_int CL_API_CALL 2044*3cc25752SFrank Piva clReleaseSemaphoreKHR( 2045*3cc25752SFrank Piva cl_semaphore_khr sema_object) CL_API_SUFFIX__VERSION_1_2; 2046*3cc25752SFrank Piva 2047*3cc25752SFrank Piva extern CL_API_ENTRY cl_int CL_API_CALL 2048*3cc25752SFrank Piva clRetainSemaphoreKHR( 2049*3cc25752SFrank Piva cl_semaphore_khr sema_object) CL_API_SUFFIX__VERSION_1_2; 2050*3cc25752SFrank Piva 2051*3cc25752SFrank Piva #endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ 2052*3cc25752SFrank Piva 2053*3cc25752SFrank Piva /*************************************************************** 2054*3cc25752SFrank Piva * cl_arm_import_memory 2055*3cc25752SFrank Piva ***************************************************************/ 2056*3cc25752SFrank Piva #define cl_arm_import_memory 1 2057*3cc25752SFrank Piva #define CL_ARM_IMPORT_MEMORY_EXTENSION_NAME \ 2058*3cc25752SFrank Piva "cl_arm_import_memory" 2059*3cc25752SFrank Piva 2060*3cc25752SFrank Piva typedef intptr_t cl_import_properties_arm; 2061*3cc25752SFrank Piva 2062*3cc25752SFrank Piva /* cl_import_properties_arm */ 2063*3cc25752SFrank Piva #define CL_IMPORT_TYPE_ARM 0x40B2 2064*3cc25752SFrank Piva #define CL_IMPORT_TYPE_HOST_ARM 0x40B3 2065*3cc25752SFrank Piva #define CL_IMPORT_TYPE_DMA_BUF_ARM 0x40B4 2066*3cc25752SFrank Piva #define CL_IMPORT_TYPE_PROTECTED_ARM 0x40B5 2067*3cc25752SFrank Piva #define CL_IMPORT_TYPE_ANDROID_HARDWARE_BUFFER_ARM 0x41E2 2068*3cc25752SFrank Piva #define CL_IMPORT_DMA_BUF_DATA_CONSISTENCY_WITH_HOST_ARM 0x41E3 2069*3cc25752SFrank Piva #define CL_IMPORT_MEMORY_WHOLE_ALLOCATION_ARM SIZE_MAX 2070*3cc25752SFrank Piva #define CL_IMPORT_ANDROID_HARDWARE_BUFFER_PLANE_INDEX_ARM 0x41EF 2071*3cc25752SFrank Piva #define CL_IMPORT_ANDROID_HARDWARE_BUFFER_LAYER_INDEX_ARM 0x41F0 2072*3cc25752SFrank Piva 2073*3cc25752SFrank Piva 2074*3cc25752SFrank Piva typedef cl_mem CL_API_CALL 2075*3cc25752SFrank Piva clImportMemoryARM_t( 2076*3cc25752SFrank Piva cl_context context, 2077*3cc25752SFrank Piva cl_mem_flags flags, 2078*3cc25752SFrank Piva const cl_import_properties_arm* properties, 2079*3cc25752SFrank Piva void* memory, 2080*3cc25752SFrank Piva size_t size, 2081*3cc25752SFrank Piva cl_int* errcode_ret); 2082*3cc25752SFrank Piva 2083*3cc25752SFrank Piva typedef clImportMemoryARM_t * 2084*3cc25752SFrank Piva clImportMemoryARM_fn CL_API_SUFFIX__VERSION_1_0; 2085*3cc25752SFrank Piva 2086*3cc25752SFrank Piva #if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) 2087*3cc25752SFrank Piva 2088*3cc25752SFrank Piva extern CL_API_ENTRY cl_mem CL_API_CALL 2089*3cc25752SFrank Piva clImportMemoryARM( 2090*3cc25752SFrank Piva cl_context context, 2091*3cc25752SFrank Piva cl_mem_flags flags, 2092*3cc25752SFrank Piva const cl_import_properties_arm* properties, 2093*3cc25752SFrank Piva void* memory, 2094*3cc25752SFrank Piva size_t size, 2095*3cc25752SFrank Piva cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; 2096*3cc25752SFrank Piva 2097*3cc25752SFrank Piva #endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ 2098*3cc25752SFrank Piva 2099*3cc25752SFrank Piva /*************************************************************** 2100*3cc25752SFrank Piva * cl_arm_shared_virtual_memory 2101*3cc25752SFrank Piva ***************************************************************/ 2102*3cc25752SFrank Piva #define cl_arm_shared_virtual_memory 1 2103*3cc25752SFrank Piva #define CL_ARM_SHARED_VIRTUAL_MEMORY_EXTENSION_NAME \ 2104*3cc25752SFrank Piva "cl_arm_shared_virtual_memory" 2105*3cc25752SFrank Piva 2106*3cc25752SFrank Piva typedef cl_bitfield cl_svm_mem_flags_arm; 2107*3cc25752SFrank Piva typedef cl_uint cl_kernel_exec_info_arm; 2108*3cc25752SFrank Piva typedef cl_bitfield cl_device_svm_capabilities_arm; 2109*3cc25752SFrank Piva 2110*3cc25752SFrank Piva /* cl_device_info */ 2111*3cc25752SFrank Piva #define CL_DEVICE_SVM_CAPABILITIES_ARM 0x40B6 2112*3cc25752SFrank Piva 2113*3cc25752SFrank Piva /* cl_mem_info */ 2114*3cc25752SFrank Piva #define CL_MEM_USES_SVM_POINTER_ARM 0x40B7 2115*3cc25752SFrank Piva 2116*3cc25752SFrank Piva /* cl_kernel_exec_info_arm */ 2117*3cc25752SFrank Piva #define CL_KERNEL_EXEC_INFO_SVM_PTRS_ARM 0x40B8 2118*3cc25752SFrank Piva #define CL_KERNEL_EXEC_INFO_SVM_FINE_GRAIN_SYSTEM_ARM 0x40B9 2119*3cc25752SFrank Piva 2120*3cc25752SFrank Piva /* cl_command_type */ 2121*3cc25752SFrank Piva #define CL_COMMAND_SVM_FREE_ARM 0x40BA 2122*3cc25752SFrank Piva #define CL_COMMAND_SVM_MEMCPY_ARM 0x40BB 2123*3cc25752SFrank Piva #define CL_COMMAND_SVM_MEMFILL_ARM 0x40BC 2124*3cc25752SFrank Piva #define CL_COMMAND_SVM_MAP_ARM 0x40BD 2125*3cc25752SFrank Piva #define CL_COMMAND_SVM_UNMAP_ARM 0x40BE 2126*3cc25752SFrank Piva 2127*3cc25752SFrank Piva /* cl_device_svm_capabilities_arm */ 2128*3cc25752SFrank Piva #define CL_DEVICE_SVM_COARSE_GRAIN_BUFFER_ARM (1 << 0) 2129*3cc25752SFrank Piva #define CL_DEVICE_SVM_FINE_GRAIN_BUFFER_ARM (1 << 1) 2130*3cc25752SFrank Piva #define CL_DEVICE_SVM_FINE_GRAIN_SYSTEM_ARM (1 << 2) 2131*3cc25752SFrank Piva #define CL_DEVICE_SVM_ATOMICS_ARM (1 << 3) 2132*3cc25752SFrank Piva 2133*3cc25752SFrank Piva /* cl_svm_mem_flags_arm */ 2134*3cc25752SFrank Piva #define CL_MEM_SVM_FINE_GRAIN_BUFFER_ARM (1 << 10) 2135*3cc25752SFrank Piva #define CL_MEM_SVM_ATOMICS_ARM (1 << 11) 2136*3cc25752SFrank Piva 2137*3cc25752SFrank Piva 2138*3cc25752SFrank Piva typedef void* CL_API_CALL 2139*3cc25752SFrank Piva clSVMAllocARM_t( 2140*3cc25752SFrank Piva cl_context context, 2141*3cc25752SFrank Piva cl_svm_mem_flags_arm flags, 2142*3cc25752SFrank Piva size_t size, 2143*3cc25752SFrank Piva cl_uint alignment); 2144*3cc25752SFrank Piva 2145*3cc25752SFrank Piva typedef clSVMAllocARM_t * 2146*3cc25752SFrank Piva clSVMAllocARM_fn CL_API_SUFFIX__VERSION_1_2; 2147*3cc25752SFrank Piva 2148*3cc25752SFrank Piva typedef void CL_API_CALL 2149*3cc25752SFrank Piva clSVMFreeARM_t( 2150*3cc25752SFrank Piva cl_context context, 2151*3cc25752SFrank Piva void* svm_pointer); 2152*3cc25752SFrank Piva 2153*3cc25752SFrank Piva typedef clSVMFreeARM_t * 2154*3cc25752SFrank Piva clSVMFreeARM_fn CL_API_SUFFIX__VERSION_1_2; 2155*3cc25752SFrank Piva 2156*3cc25752SFrank Piva typedef cl_int CL_API_CALL 2157*3cc25752SFrank Piva clEnqueueSVMFreeARM_t( 2158*3cc25752SFrank Piva cl_command_queue command_queue, 2159*3cc25752SFrank Piva cl_uint num_svm_pointers, 2160*3cc25752SFrank Piva void* svm_pointers[], 2161*3cc25752SFrank Piva void (CL_CALLBACK* pfn_free_func)(cl_command_queue queue, cl_uint num_svm_pointers, void * svm_pointers[], void *user_data), 2162*3cc25752SFrank Piva void* user_data, 2163*3cc25752SFrank Piva cl_uint num_events_in_wait_list, 2164*3cc25752SFrank Piva const cl_event* event_wait_list, 2165*3cc25752SFrank Piva cl_event* event); 2166*3cc25752SFrank Piva 2167*3cc25752SFrank Piva typedef clEnqueueSVMFreeARM_t * 2168*3cc25752SFrank Piva clEnqueueSVMFreeARM_fn CL_API_SUFFIX__VERSION_1_2; 2169*3cc25752SFrank Piva 2170*3cc25752SFrank Piva typedef cl_int CL_API_CALL 2171*3cc25752SFrank Piva clEnqueueSVMMemcpyARM_t( 2172*3cc25752SFrank Piva cl_command_queue command_queue, 2173*3cc25752SFrank Piva cl_bool blocking_copy, 2174*3cc25752SFrank Piva void* dst_ptr, 2175*3cc25752SFrank Piva const void* src_ptr, 2176*3cc25752SFrank Piva size_t size, 2177*3cc25752SFrank Piva cl_uint num_events_in_wait_list, 2178*3cc25752SFrank Piva const cl_event* event_wait_list, 2179*3cc25752SFrank Piva cl_event* event); 2180*3cc25752SFrank Piva 2181*3cc25752SFrank Piva typedef clEnqueueSVMMemcpyARM_t * 2182*3cc25752SFrank Piva clEnqueueSVMMemcpyARM_fn CL_API_SUFFIX__VERSION_1_2; 2183*3cc25752SFrank Piva 2184*3cc25752SFrank Piva typedef cl_int CL_API_CALL 2185*3cc25752SFrank Piva clEnqueueSVMMemFillARM_t( 2186*3cc25752SFrank Piva cl_command_queue command_queue, 2187*3cc25752SFrank Piva void* svm_ptr, 2188*3cc25752SFrank Piva const void* pattern, 2189*3cc25752SFrank Piva size_t pattern_size, 2190*3cc25752SFrank Piva size_t size, 2191*3cc25752SFrank Piva cl_uint num_events_in_wait_list, 2192*3cc25752SFrank Piva const cl_event* event_wait_list, 2193*3cc25752SFrank Piva cl_event* event); 2194*3cc25752SFrank Piva 2195*3cc25752SFrank Piva typedef clEnqueueSVMMemFillARM_t * 2196*3cc25752SFrank Piva clEnqueueSVMMemFillARM_fn CL_API_SUFFIX__VERSION_1_2; 2197*3cc25752SFrank Piva 2198*3cc25752SFrank Piva typedef cl_int CL_API_CALL 2199*3cc25752SFrank Piva clEnqueueSVMMapARM_t( 2200*3cc25752SFrank Piva cl_command_queue command_queue, 2201*3cc25752SFrank Piva cl_bool blocking_map, 2202*3cc25752SFrank Piva cl_map_flags flags, 2203*3cc25752SFrank Piva void* svm_ptr, 2204*3cc25752SFrank Piva size_t size, 2205*3cc25752SFrank Piva cl_uint num_events_in_wait_list, 2206*3cc25752SFrank Piva const cl_event* event_wait_list, 2207*3cc25752SFrank Piva cl_event* event); 2208*3cc25752SFrank Piva 2209*3cc25752SFrank Piva typedef clEnqueueSVMMapARM_t * 2210*3cc25752SFrank Piva clEnqueueSVMMapARM_fn CL_API_SUFFIX__VERSION_1_2; 2211*3cc25752SFrank Piva 2212*3cc25752SFrank Piva typedef cl_int CL_API_CALL 2213*3cc25752SFrank Piva clEnqueueSVMUnmapARM_t( 2214*3cc25752SFrank Piva cl_command_queue command_queue, 2215*3cc25752SFrank Piva void* svm_ptr, 2216*3cc25752SFrank Piva cl_uint num_events_in_wait_list, 2217*3cc25752SFrank Piva const cl_event* event_wait_list, 2218*3cc25752SFrank Piva cl_event* event); 2219*3cc25752SFrank Piva 2220*3cc25752SFrank Piva typedef clEnqueueSVMUnmapARM_t * 2221*3cc25752SFrank Piva clEnqueueSVMUnmapARM_fn CL_API_SUFFIX__VERSION_1_2; 2222*3cc25752SFrank Piva 2223*3cc25752SFrank Piva typedef cl_int CL_API_CALL 2224*3cc25752SFrank Piva clSetKernelArgSVMPointerARM_t( 2225*3cc25752SFrank Piva cl_kernel kernel, 2226*3cc25752SFrank Piva cl_uint arg_index, 2227*3cc25752SFrank Piva const void* arg_value); 2228*3cc25752SFrank Piva 2229*3cc25752SFrank Piva typedef clSetKernelArgSVMPointerARM_t * 2230*3cc25752SFrank Piva clSetKernelArgSVMPointerARM_fn CL_API_SUFFIX__VERSION_1_2; 2231*3cc25752SFrank Piva 2232*3cc25752SFrank Piva typedef cl_int CL_API_CALL 2233*3cc25752SFrank Piva clSetKernelExecInfoARM_t( 2234*3cc25752SFrank Piva cl_kernel kernel, 2235*3cc25752SFrank Piva cl_kernel_exec_info_arm param_name, 2236*3cc25752SFrank Piva size_t param_value_size, 2237*3cc25752SFrank Piva const void* param_value); 2238*3cc25752SFrank Piva 2239*3cc25752SFrank Piva typedef clSetKernelExecInfoARM_t * 2240*3cc25752SFrank Piva clSetKernelExecInfoARM_fn CL_API_SUFFIX__VERSION_1_2; 2241*3cc25752SFrank Piva 2242*3cc25752SFrank Piva #if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) 2243*3cc25752SFrank Piva 2244*3cc25752SFrank Piva extern CL_API_ENTRY void* CL_API_CALL 2245*3cc25752SFrank Piva clSVMAllocARM( 2246*3cc25752SFrank Piva cl_context context, 2247*3cc25752SFrank Piva cl_svm_mem_flags_arm flags, 2248*3cc25752SFrank Piva size_t size, 2249*3cc25752SFrank Piva cl_uint alignment) CL_API_SUFFIX__VERSION_1_2; 2250*3cc25752SFrank Piva 2251*3cc25752SFrank Piva extern CL_API_ENTRY void CL_API_CALL 2252*3cc25752SFrank Piva clSVMFreeARM( 2253*3cc25752SFrank Piva cl_context context, 2254*3cc25752SFrank Piva void* svm_pointer) CL_API_SUFFIX__VERSION_1_2; 2255*3cc25752SFrank Piva 2256*3cc25752SFrank Piva extern CL_API_ENTRY cl_int CL_API_CALL 2257*3cc25752SFrank Piva clEnqueueSVMFreeARM( 2258*3cc25752SFrank Piva cl_command_queue command_queue, 2259*3cc25752SFrank Piva cl_uint num_svm_pointers, 2260*3cc25752SFrank Piva void* svm_pointers[], 2261*3cc25752SFrank Piva void (CL_CALLBACK* pfn_free_func)(cl_command_queue queue, cl_uint num_svm_pointers, void * svm_pointers[], void *user_data), 2262*3cc25752SFrank Piva void* user_data, 2263*3cc25752SFrank Piva cl_uint num_events_in_wait_list, 2264*3cc25752SFrank Piva const cl_event* event_wait_list, 2265*3cc25752SFrank Piva cl_event* event) CL_API_SUFFIX__VERSION_1_2; 2266*3cc25752SFrank Piva 2267*3cc25752SFrank Piva extern CL_API_ENTRY cl_int CL_API_CALL 2268*3cc25752SFrank Piva clEnqueueSVMMemcpyARM( 2269*3cc25752SFrank Piva cl_command_queue command_queue, 2270*3cc25752SFrank Piva cl_bool blocking_copy, 2271*3cc25752SFrank Piva void* dst_ptr, 2272*3cc25752SFrank Piva const void* src_ptr, 2273*3cc25752SFrank Piva size_t size, 2274*3cc25752SFrank Piva cl_uint num_events_in_wait_list, 2275*3cc25752SFrank Piva const cl_event* event_wait_list, 2276*3cc25752SFrank Piva cl_event* event) CL_API_SUFFIX__VERSION_1_2; 2277*3cc25752SFrank Piva 2278*3cc25752SFrank Piva extern CL_API_ENTRY cl_int CL_API_CALL 2279*3cc25752SFrank Piva clEnqueueSVMMemFillARM( 2280*3cc25752SFrank Piva cl_command_queue command_queue, 2281*3cc25752SFrank Piva void* svm_ptr, 2282*3cc25752SFrank Piva const void* pattern, 2283*3cc25752SFrank Piva size_t pattern_size, 2284*3cc25752SFrank Piva size_t size, 2285*3cc25752SFrank Piva cl_uint num_events_in_wait_list, 2286*3cc25752SFrank Piva const cl_event* event_wait_list, 2287*3cc25752SFrank Piva cl_event* event) CL_API_SUFFIX__VERSION_1_2; 2288*3cc25752SFrank Piva 2289*3cc25752SFrank Piva extern CL_API_ENTRY cl_int CL_API_CALL 2290*3cc25752SFrank Piva clEnqueueSVMMapARM( 2291*3cc25752SFrank Piva cl_command_queue command_queue, 2292*3cc25752SFrank Piva cl_bool blocking_map, 2293*3cc25752SFrank Piva cl_map_flags flags, 2294*3cc25752SFrank Piva void* svm_ptr, 2295*3cc25752SFrank Piva size_t size, 2296*3cc25752SFrank Piva cl_uint num_events_in_wait_list, 2297*3cc25752SFrank Piva const cl_event* event_wait_list, 2298*3cc25752SFrank Piva cl_event* event) CL_API_SUFFIX__VERSION_1_2; 2299*3cc25752SFrank Piva 2300*3cc25752SFrank Piva extern CL_API_ENTRY cl_int CL_API_CALL 2301*3cc25752SFrank Piva clEnqueueSVMUnmapARM( 2302*3cc25752SFrank Piva cl_command_queue command_queue, 2303*3cc25752SFrank Piva void* svm_ptr, 2304*3cc25752SFrank Piva cl_uint num_events_in_wait_list, 2305*3cc25752SFrank Piva const cl_event* event_wait_list, 2306*3cc25752SFrank Piva cl_event* event) CL_API_SUFFIX__VERSION_1_2; 2307*3cc25752SFrank Piva 2308*3cc25752SFrank Piva extern CL_API_ENTRY cl_int CL_API_CALL 2309*3cc25752SFrank Piva clSetKernelArgSVMPointerARM( 2310*3cc25752SFrank Piva cl_kernel kernel, 2311*3cc25752SFrank Piva cl_uint arg_index, 2312*3cc25752SFrank Piva const void* arg_value) CL_API_SUFFIX__VERSION_1_2; 2313*3cc25752SFrank Piva 2314*3cc25752SFrank Piva extern CL_API_ENTRY cl_int CL_API_CALL 2315*3cc25752SFrank Piva clSetKernelExecInfoARM( 2316*3cc25752SFrank Piva cl_kernel kernel, 2317*3cc25752SFrank Piva cl_kernel_exec_info_arm param_name, 2318*3cc25752SFrank Piva size_t param_value_size, 2319*3cc25752SFrank Piva const void* param_value) CL_API_SUFFIX__VERSION_1_2; 2320*3cc25752SFrank Piva 2321*3cc25752SFrank Piva #endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ 2322*3cc25752SFrank Piva 2323*3cc25752SFrank Piva /*************************************************************** 2324*3cc25752SFrank Piva * cl_arm_get_core_id 2325*3cc25752SFrank Piva ***************************************************************/ 2326*3cc25752SFrank Piva #if defined(CL_VERSION_1_2) 2327*3cc25752SFrank Piva 2328*3cc25752SFrank Piva #define cl_arm_get_core_id 1 2329*3cc25752SFrank Piva #define CL_ARM_GET_CORE_ID_EXTENSION_NAME \ 2330*3cc25752SFrank Piva "cl_arm_get_core_id" 2331*3cc25752SFrank Piva 2332*3cc25752SFrank Piva /* cl_device_info */ 2333*3cc25752SFrank Piva #define CL_DEVICE_COMPUTE_UNITS_BITFIELD_ARM 0x40BF 2334*3cc25752SFrank Piva 2335*3cc25752SFrank Piva #endif /* defined(CL_VERSION_1_2) */ 2336*3cc25752SFrank Piva 2337*3cc25752SFrank Piva /*************************************************************** 2338*3cc25752SFrank Piva * cl_arm_job_slot_selection 2339*3cc25752SFrank Piva ***************************************************************/ 2340*3cc25752SFrank Piva #define cl_arm_job_slot_selection 1 2341*3cc25752SFrank Piva #define CL_ARM_JOB_SLOT_SELECTION_EXTENSION_NAME \ 2342*3cc25752SFrank Piva "cl_arm_job_slot_selection" 2343*3cc25752SFrank Piva 2344*3cc25752SFrank Piva /* cl_device_info */ 2345*3cc25752SFrank Piva #define CL_DEVICE_JOB_SLOTS_ARM 0x41E0 2346*3cc25752SFrank Piva 2347*3cc25752SFrank Piva /* cl_queue_properties */ 2348*3cc25752SFrank Piva #define CL_QUEUE_JOB_SLOT_ARM 0x41E1 2349*3cc25752SFrank Piva 2350*3cc25752SFrank Piva /*************************************************************** 2351*3cc25752SFrank Piva * cl_arm_scheduling_controls 2352*3cc25752SFrank Piva ***************************************************************/ 2353*3cc25752SFrank Piva #define cl_arm_scheduling_controls 1 2354*3cc25752SFrank Piva #define CL_ARM_SCHEDULING_CONTROLS_EXTENSION_NAME \ 2355*3cc25752SFrank Piva "cl_arm_scheduling_controls" 2356*3cc25752SFrank Piva 2357*3cc25752SFrank Piva /* Types */ 2358*3cc25752SFrank Piva typedef cl_bitfield cl_device_scheduling_controls_capabilities_arm; 2359*3cc25752SFrank Piva 2360*3cc25752SFrank Piva /* cl_device_scheduling_controls_capabilities_arm */ 2361*3cc25752SFrank Piva #define CL_DEVICE_SCHEDULING_KERNEL_BATCHING_ARM (1 << 0) 2362*3cc25752SFrank Piva #define CL_DEVICE_SCHEDULING_WORKGROUP_BATCH_SIZE_ARM (1 << 1) 2363*3cc25752SFrank Piva #define CL_DEVICE_SCHEDULING_WORKGROUP_BATCH_SIZE_MODIFIER_ARM (1 << 2) 2364*3cc25752SFrank Piva #define CL_DEVICE_SCHEDULING_DEFERRED_FLUSH_ARM (1 << 3) 2365*3cc25752SFrank Piva #define CL_DEVICE_SCHEDULING_REGISTER_ALLOCATION_ARM (1 << 4) 2366*3cc25752SFrank Piva #define CL_DEVICE_SCHEDULING_WARP_THROTTLING_ARM (1 << 5) 2367*3cc25752SFrank Piva #define CL_DEVICE_SCHEDULING_COMPUTE_UNIT_BATCH_QUEUE_SIZE_ARM (1 << 6) 2368*3cc25752SFrank Piva #define CL_DEVICE_SCHEDULING_COMPUTE_UNIT_LIMIT_ARM (1 << 7) 2369*3cc25752SFrank Piva 2370*3cc25752SFrank Piva /* cl_device_info */ 2371*3cc25752SFrank Piva #define CL_DEVICE_SCHEDULING_CONTROLS_CAPABILITIES_ARM 0x41E4 2372*3cc25752SFrank Piva #define CL_DEVICE_SUPPORTED_REGISTER_ALLOCATIONS_ARM 0x41EB 2373*3cc25752SFrank Piva #define CL_DEVICE_MAX_WARP_COUNT_ARM 0x41EA 2374*3cc25752SFrank Piva 2375*3cc25752SFrank Piva /* cl_kernel_exec_info */ 2376*3cc25752SFrank Piva #define CL_KERNEL_EXEC_INFO_WORKGROUP_BATCH_SIZE_ARM 0x41E5 2377*3cc25752SFrank Piva #define CL_KERNEL_EXEC_INFO_WORKGROUP_BATCH_SIZE_MODIFIER_ARM 0x41E6 2378*3cc25752SFrank Piva #define CL_KERNEL_EXEC_INFO_WARP_COUNT_LIMIT_ARM 0x41E8 2379*3cc25752SFrank Piva #define CL_KERNEL_EXEC_INFO_COMPUTE_UNIT_MAX_QUEUED_BATCHES_ARM 0x41F1 2380*3cc25752SFrank Piva 2381*3cc25752SFrank Piva /* cl_kernel_info */ 2382*3cc25752SFrank Piva #define CL_KERNEL_MAX_WARP_COUNT_ARM 0x41E9 2383*3cc25752SFrank Piva 2384*3cc25752SFrank Piva /* cl_queue_properties */ 2385*3cc25752SFrank Piva #define CL_QUEUE_KERNEL_BATCHING_ARM 0x41E7 2386*3cc25752SFrank Piva #define CL_QUEUE_DEFERRED_FLUSH_ARM 0x41EC 2387*3cc25752SFrank Piva #define CL_QUEUE_COMPUTE_UNIT_LIMIT_ARM 0x41F3 2388*3cc25752SFrank Piva 2389*3cc25752SFrank Piva /*************************************************************** 2390*3cc25752SFrank Piva * cl_arm_controlled_kernel_termination 2391*3cc25752SFrank Piva ***************************************************************/ 2392*3cc25752SFrank Piva #define cl_arm_controlled_kernel_termination 1 2393*3cc25752SFrank Piva #define CL_ARM_CONTROLLED_KERNEL_TERMINATION_EXTENSION_NAME \ 2394*3cc25752SFrank Piva "cl_arm_controlled_kernel_termination" 2395*3cc25752SFrank Piva 2396*3cc25752SFrank Piva /* Types */ 2397*3cc25752SFrank Piva typedef cl_bitfield cl_device_controlled_termination_capabilities_arm; 2398*3cc25752SFrank Piva 2399*3cc25752SFrank Piva /* Error codes */ 2400*3cc25752SFrank Piva #define CL_COMMAND_TERMINATED_ITSELF_WITH_FAILURE_ARM -1108 2401*3cc25752SFrank Piva 2402*3cc25752SFrank Piva /* cl_device_controlled_termination_capabilities_arm */ 2403*3cc25752SFrank Piva #define CL_DEVICE_CONTROLLED_TERMINATION_SUCCESS_ARM (1 << 0) 2404*3cc25752SFrank Piva #define CL_DEVICE_CONTROLLED_TERMINATION_FAILURE_ARM (1 << 1) 2405*3cc25752SFrank Piva #define CL_DEVICE_CONTROLLED_TERMINATION_QUERY_ARM (1 << 2) 2406*3cc25752SFrank Piva 2407*3cc25752SFrank Piva /* cl_device_info */ 2408*3cc25752SFrank Piva #define CL_DEVICE_CONTROLLED_TERMINATION_CAPABILITIES_ARM 0x41EE 2409*3cc25752SFrank Piva 2410*3cc25752SFrank Piva /* cl_event_info */ 2411*3cc25752SFrank Piva #define CL_EVENT_COMMAND_TERMINATION_REASON_ARM 0x41ED 2412*3cc25752SFrank Piva 2413*3cc25752SFrank Piva /* cl_command_termination_reason_arm */ 2414*3cc25752SFrank Piva #define CL_COMMAND_TERMINATION_COMPLETION_ARM 0 2415*3cc25752SFrank Piva #define CL_COMMAND_TERMINATION_CONTROLLED_SUCCESS_ARM 1 2416*3cc25752SFrank Piva #define CL_COMMAND_TERMINATION_CONTROLLED_FAILURE_ARM 2 2417*3cc25752SFrank Piva #define CL_COMMAND_TERMINATION_ERROR_ARM 3 2418*3cc25752SFrank Piva 2419*3cc25752SFrank Piva /*************************************************************** 2420*3cc25752SFrank Piva * cl_arm_protected_memory_allocation 2421*3cc25752SFrank Piva ***************************************************************/ 2422*3cc25752SFrank Piva #define cl_arm_protected_memory_allocation 1 2423*3cc25752SFrank Piva #define CL_ARM_PROTECTED_MEMORY_ALLOCATION_EXTENSION_NAME \ 2424*3cc25752SFrank Piva "cl_arm_protected_memory_allocation" 2425*3cc25752SFrank Piva 2426*3cc25752SFrank Piva #define CL_MEM_PROTECTED_ALLOC_ARM ((cl_bitfield)1 << 36) 2427*3cc25752SFrank Piva 2428*3cc25752SFrank Piva /*************************************************************** 2429*3cc25752SFrank Piva * cl_intel_exec_by_local_thread 2430*3cc25752SFrank Piva ***************************************************************/ 2431*3cc25752SFrank Piva #define cl_intel_exec_by_local_thread 1 2432*3cc25752SFrank Piva #define CL_INTEL_EXEC_BY_LOCAL_THREAD_EXTENSION_NAME \ 2433*3cc25752SFrank Piva "cl_intel_exec_by_local_thread" 2434*3cc25752SFrank Piva 2435*3cc25752SFrank Piva /* cl_command_queue_properties - bitfield */ 2436*3cc25752SFrank Piva #define CL_QUEUE_THREAD_LOCAL_EXEC_ENABLE_INTEL ((cl_bitfield)1 << 31) 2437*3cc25752SFrank Piva 2438*3cc25752SFrank Piva /*************************************************************** 2439*3cc25752SFrank Piva * cl_intel_device_attribute_query 2440*3cc25752SFrank Piva ***************************************************************/ 2441*3cc25752SFrank Piva #define cl_intel_device_attribute_query 1 2442*3cc25752SFrank Piva #define CL_INTEL_DEVICE_ATTRIBUTE_QUERY_EXTENSION_NAME \ 2443*3cc25752SFrank Piva "cl_intel_device_attribute_query" 2444*3cc25752SFrank Piva 2445*3cc25752SFrank Piva typedef cl_bitfield cl_device_feature_capabilities_intel; 2446*3cc25752SFrank Piva 2447*3cc25752SFrank Piva /* cl_device_feature_capabilities_intel */ 2448*3cc25752SFrank Piva #define CL_DEVICE_FEATURE_FLAG_DP4A_INTEL (1 << 0) 2449*3cc25752SFrank Piva #define CL_DEVICE_FEATURE_FLAG_DPAS_INTEL (1 << 1) 2450*3cc25752SFrank Piva 2451*3cc25752SFrank Piva /* cl_device_info */ 2452*3cc25752SFrank Piva #define CL_DEVICE_IP_VERSION_INTEL 0x4250 2453*3cc25752SFrank Piva #define CL_DEVICE_ID_INTEL 0x4251 2454*3cc25752SFrank Piva #define CL_DEVICE_NUM_SLICES_INTEL 0x4252 2455*3cc25752SFrank Piva #define CL_DEVICE_NUM_SUB_SLICES_PER_SLICE_INTEL 0x4253 2456*3cc25752SFrank Piva #define CL_DEVICE_NUM_EUS_PER_SUB_SLICE_INTEL 0x4254 2457*3cc25752SFrank Piva #define CL_DEVICE_NUM_THREADS_PER_EU_INTEL 0x4255 2458*3cc25752SFrank Piva #define CL_DEVICE_FEATURE_CAPABILITIES_INTEL 0x4256 2459*3cc25752SFrank Piva 2460*3cc25752SFrank Piva /*************************************************************** 2461*3cc25752SFrank Piva * cl_intel_device_partition_by_names 2462*3cc25752SFrank Piva ***************************************************************/ 2463*3cc25752SFrank Piva #define cl_intel_device_partition_by_names 1 2464*3cc25752SFrank Piva #define CL_INTEL_DEVICE_PARTITION_BY_NAMES_EXTENSION_NAME \ 2465*3cc25752SFrank Piva "cl_intel_device_partition_by_names" 2466*3cc25752SFrank Piva 2467*3cc25752SFrank Piva #define CL_DEVICE_PARTITION_BY_NAMES_INTEL 0x4052 2468*3cc25752SFrank Piva #define CL_PARTITION_BY_NAMES_LIST_END_INTEL -1 2469*3cc25752SFrank Piva 2470*3cc25752SFrank Piva /*************************************************************** 2471*3cc25752SFrank Piva * cl_intel_accelerator 2472*3cc25752SFrank Piva ***************************************************************/ 2473*3cc25752SFrank Piva #define cl_intel_accelerator 1 2474*3cc25752SFrank Piva #define CL_INTEL_ACCELERATOR_EXTENSION_NAME \ 2475*3cc25752SFrank Piva "cl_intel_accelerator" 2476*3cc25752SFrank Piva 2477*3cc25752SFrank Piva typedef struct _cl_accelerator_intel* cl_accelerator_intel; 2478*3cc25752SFrank Piva typedef cl_uint cl_accelerator_type_intel; 2479*3cc25752SFrank Piva typedef cl_uint cl_accelerator_info_intel; 2480*3cc25752SFrank Piva 2481*3cc25752SFrank Piva /* cl_accelerator_info_intel */ 2482*3cc25752SFrank Piva #define CL_ACCELERATOR_DESCRIPTOR_INTEL 0x4090 2483*3cc25752SFrank Piva #define CL_ACCELERATOR_REFERENCE_COUNT_INTEL 0x4091 2484*3cc25752SFrank Piva #define CL_ACCELERATOR_CONTEXT_INTEL 0x4092 2485*3cc25752SFrank Piva #define CL_ACCELERATOR_TYPE_INTEL 0x4093 2486*3cc25752SFrank Piva 2487*3cc25752SFrank Piva /* Error codes */ 2488*3cc25752SFrank Piva #define CL_INVALID_ACCELERATOR_INTEL -1094 2489*3cc25752SFrank Piva #define CL_INVALID_ACCELERATOR_TYPE_INTEL -1095 2490*3cc25752SFrank Piva #define CL_INVALID_ACCELERATOR_DESCRIPTOR_INTEL -1096 2491*3cc25752SFrank Piva #define CL_ACCELERATOR_TYPE_NOT_SUPPORTED_INTEL -1097 2492*3cc25752SFrank Piva 2493*3cc25752SFrank Piva 2494*3cc25752SFrank Piva typedef cl_accelerator_intel CL_API_CALL 2495*3cc25752SFrank Piva clCreateAcceleratorINTEL_t( 2496*3cc25752SFrank Piva cl_context context, 2497*3cc25752SFrank Piva cl_accelerator_type_intel accelerator_type, 2498*3cc25752SFrank Piva size_t descriptor_size, 2499*3cc25752SFrank Piva const void* descriptor, 2500*3cc25752SFrank Piva cl_int* errcode_ret); 2501*3cc25752SFrank Piva 2502*3cc25752SFrank Piva typedef clCreateAcceleratorINTEL_t * 2503*3cc25752SFrank Piva clCreateAcceleratorINTEL_fn CL_API_SUFFIX__VERSION_1_2; 2504*3cc25752SFrank Piva 2505*3cc25752SFrank Piva typedef cl_int CL_API_CALL 2506*3cc25752SFrank Piva clGetAcceleratorInfoINTEL_t( 2507*3cc25752SFrank Piva cl_accelerator_intel accelerator, 2508*3cc25752SFrank Piva cl_accelerator_info_intel param_name, 2509*3cc25752SFrank Piva size_t param_value_size, 2510*3cc25752SFrank Piva void* param_value, 2511*3cc25752SFrank Piva size_t* param_value_size_ret); 2512*3cc25752SFrank Piva 2513*3cc25752SFrank Piva typedef clGetAcceleratorInfoINTEL_t * 2514*3cc25752SFrank Piva clGetAcceleratorInfoINTEL_fn CL_API_SUFFIX__VERSION_1_2; 2515*3cc25752SFrank Piva 2516*3cc25752SFrank Piva typedef cl_int CL_API_CALL 2517*3cc25752SFrank Piva clRetainAcceleratorINTEL_t( 2518*3cc25752SFrank Piva cl_accelerator_intel accelerator); 2519*3cc25752SFrank Piva 2520*3cc25752SFrank Piva typedef clRetainAcceleratorINTEL_t * 2521*3cc25752SFrank Piva clRetainAcceleratorINTEL_fn CL_API_SUFFIX__VERSION_1_2; 2522*3cc25752SFrank Piva 2523*3cc25752SFrank Piva typedef cl_int CL_API_CALL 2524*3cc25752SFrank Piva clReleaseAcceleratorINTEL_t( 2525*3cc25752SFrank Piva cl_accelerator_intel accelerator); 2526*3cc25752SFrank Piva 2527*3cc25752SFrank Piva typedef clReleaseAcceleratorINTEL_t * 2528*3cc25752SFrank Piva clReleaseAcceleratorINTEL_fn CL_API_SUFFIX__VERSION_1_2; 2529*3cc25752SFrank Piva 2530*3cc25752SFrank Piva #if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) 2531*3cc25752SFrank Piva 2532*3cc25752SFrank Piva extern CL_API_ENTRY cl_accelerator_intel CL_API_CALL 2533*3cc25752SFrank Piva clCreateAcceleratorINTEL( 2534*3cc25752SFrank Piva cl_context context, 2535*3cc25752SFrank Piva cl_accelerator_type_intel accelerator_type, 2536*3cc25752SFrank Piva size_t descriptor_size, 2537*3cc25752SFrank Piva const void* descriptor, 2538*3cc25752SFrank Piva cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; 2539*3cc25752SFrank Piva 2540*3cc25752SFrank Piva extern CL_API_ENTRY cl_int CL_API_CALL 2541*3cc25752SFrank Piva clGetAcceleratorInfoINTEL( 2542*3cc25752SFrank Piva cl_accelerator_intel accelerator, 2543*3cc25752SFrank Piva cl_accelerator_info_intel param_name, 2544*3cc25752SFrank Piva size_t param_value_size, 2545*3cc25752SFrank Piva void* param_value, 2546*3cc25752SFrank Piva size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_2; 2547*3cc25752SFrank Piva 2548*3cc25752SFrank Piva extern CL_API_ENTRY cl_int CL_API_CALL 2549*3cc25752SFrank Piva clRetainAcceleratorINTEL( 2550*3cc25752SFrank Piva cl_accelerator_intel accelerator) CL_API_SUFFIX__VERSION_1_2; 2551*3cc25752SFrank Piva 2552*3cc25752SFrank Piva extern CL_API_ENTRY cl_int CL_API_CALL 2553*3cc25752SFrank Piva clReleaseAcceleratorINTEL( 2554*3cc25752SFrank Piva cl_accelerator_intel accelerator) CL_API_SUFFIX__VERSION_1_2; 2555*3cc25752SFrank Piva 2556*3cc25752SFrank Piva #endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ 2557*3cc25752SFrank Piva 2558*3cc25752SFrank Piva /*************************************************************** 2559*3cc25752SFrank Piva * cl_intel_motion_estimation 2560*3cc25752SFrank Piva ***************************************************************/ 2561*3cc25752SFrank Piva #define cl_intel_motion_estimation 1 2562*3cc25752SFrank Piva #define CL_INTEL_MOTION_ESTIMATION_EXTENSION_NAME \ 2563*3cc25752SFrank Piva "cl_intel_motion_estimation" 2564*3cc25752SFrank Piva 2565*3cc25752SFrank Piva typedef struct _cl_motion_estimation_desc_intel { 2566*3cc25752SFrank Piva cl_uint mb_block_type; 2567*3cc25752SFrank Piva cl_uint subpixel_mode; 2568*3cc25752SFrank Piva cl_uint sad_adjust_mode; 2569*3cc25752SFrank Piva cl_uint search_path_type; 2570*3cc25752SFrank Piva } cl_motion_estimation_desc_intel; 2571*3cc25752SFrank Piva 2572*3cc25752SFrank Piva /* cl_accelerator_type_intel */ 2573*3cc25752SFrank Piva #define CL_ACCELERATOR_TYPE_MOTION_ESTIMATION_INTEL 0x0 2574*3cc25752SFrank Piva 2575*3cc25752SFrank Piva /* cl_uint mb_block_type */ 2576*3cc25752SFrank Piva #define CL_ME_MB_TYPE_16x16_INTEL 0x0 2577*3cc25752SFrank Piva #define CL_ME_MB_TYPE_8x8_INTEL 0x1 2578*3cc25752SFrank Piva #define CL_ME_MB_TYPE_4x4_INTEL 0x2 2579*3cc25752SFrank Piva 2580*3cc25752SFrank Piva /* cl_uint subpixel_mode */ 2581*3cc25752SFrank Piva #define CL_ME_SUBPIXEL_MODE_INTEGER_INTEL 0x0 2582*3cc25752SFrank Piva #define CL_ME_SUBPIXEL_MODE_HPEL_INTEL 0x1 2583*3cc25752SFrank Piva #define CL_ME_SUBPIXEL_MODE_QPEL_INTEL 0x2 2584*3cc25752SFrank Piva 2585*3cc25752SFrank Piva /* cl_uint sad_adjust_mode */ 2586*3cc25752SFrank Piva #define CL_ME_SAD_ADJUST_MODE_NONE_INTEL 0x0 2587*3cc25752SFrank Piva #define CL_ME_SAD_ADJUST_MODE_HAAR_INTEL 0x1 2588*3cc25752SFrank Piva 2589*3cc25752SFrank Piva /* cl_uint search_path_type */ 2590*3cc25752SFrank Piva #define CL_ME_SEARCH_PATH_RADIUS_2_2_INTEL 0x0 2591*3cc25752SFrank Piva #define CL_ME_SEARCH_PATH_RADIUS_4_4_INTEL 0x1 2592*3cc25752SFrank Piva #define CL_ME_SEARCH_PATH_RADIUS_16_12_INTEL 0x5 2593*3cc25752SFrank Piva 2594*3cc25752SFrank Piva /*************************************************************** 2595*3cc25752SFrank Piva * cl_intel_advanced_motion_estimation 2596*3cc25752SFrank Piva ***************************************************************/ 2597*3cc25752SFrank Piva #define cl_intel_advanced_motion_estimation 1 2598*3cc25752SFrank Piva #define CL_INTEL_ADVANCED_MOTION_ESTIMATION_EXTENSION_NAME \ 2599*3cc25752SFrank Piva "cl_intel_advanced_motion_estimation" 2600*3cc25752SFrank Piva 2601*3cc25752SFrank Piva /* cl_device_info */ 2602*3cc25752SFrank Piva #define CL_DEVICE_ME_VERSION_INTEL 0x407E 2603*3cc25752SFrank Piva 2604*3cc25752SFrank Piva #define CL_ME_VERSION_LEGACY_INTEL 0x0 2605*3cc25752SFrank Piva #define CL_ME_VERSION_ADVANCED_VER_1_INTEL 0x1 2606*3cc25752SFrank Piva #define CL_ME_VERSION_ADVANCED_VER_2_INTEL 0x2 2607*3cc25752SFrank Piva 2608*3cc25752SFrank Piva #define CL_ME_CHROMA_INTRA_PREDICT_ENABLED_INTEL 0x1 2609*3cc25752SFrank Piva #define CL_ME_LUMA_INTRA_PREDICT_ENABLED_INTEL 0x2 2610*3cc25752SFrank Piva 2611*3cc25752SFrank Piva #define CL_ME_SKIP_BLOCK_TYPE_16x16_INTEL 0x0 2612*3cc25752SFrank Piva #define CL_ME_SKIP_BLOCK_TYPE_8x8_INTEL 0x4 2613*3cc25752SFrank Piva 2614*3cc25752SFrank Piva #define CL_ME_COST_PENALTY_NONE_INTEL 0x0 2615*3cc25752SFrank Piva #define CL_ME_COST_PENALTY_LOW_INTEL 0x1 2616*3cc25752SFrank Piva #define CL_ME_COST_PENALTY_NORMAL_INTEL 0x2 2617*3cc25752SFrank Piva #define CL_ME_COST_PENALTY_HIGH_INTEL 0x3 2618*3cc25752SFrank Piva 2619*3cc25752SFrank Piva #define CL_ME_COST_PRECISION_QPEL_INTEL 0x0 2620*3cc25752SFrank Piva #define CL_ME_COST_PRECISION_HPEL_INTEL 0x1 2621*3cc25752SFrank Piva #define CL_ME_COST_PRECISION_PEL_INTEL 0x2 2622*3cc25752SFrank Piva #define CL_ME_COST_PRECISION_DPEL_INTEL 0x3 2623*3cc25752SFrank Piva 2624*3cc25752SFrank Piva #define CL_ME_LUMA_PREDICTOR_MODE_VERTICAL_INTEL 0x0 2625*3cc25752SFrank Piva #define CL_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_INTEL 0x1 2626*3cc25752SFrank Piva #define CL_ME_LUMA_PREDICTOR_MODE_DC_INTEL 0x2 2627*3cc25752SFrank Piva #define CL_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_LEFT_INTEL 0x3 2628*3cc25752SFrank Piva #define CL_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_RIGHT_INTEL 0x4 2629*3cc25752SFrank Piva #define CL_ME_LUMA_PREDICTOR_MODE_PLANE_INTEL 0x4 2630*3cc25752SFrank Piva #define CL_ME_LUMA_PREDICTOR_MODE_VERTICAL_RIGHT_INTEL 0x5 2631*3cc25752SFrank Piva #define CL_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_DOWN_INTEL 0x6 2632*3cc25752SFrank Piva #define CL_ME_LUMA_PREDICTOR_MODE_VERTICAL_LEFT_INTEL 0x7 2633*3cc25752SFrank Piva #define CL_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_UP_INTEL 0x8 2634*3cc25752SFrank Piva 2635*3cc25752SFrank Piva #define CL_ME_CHROMA_PREDICTOR_MODE_DC_INTEL 0x0 2636*3cc25752SFrank Piva #define CL_ME_CHROMA_PREDICTOR_MODE_HORIZONTAL_INTEL 0x1 2637*3cc25752SFrank Piva #define CL_ME_CHROMA_PREDICTOR_MODE_VERTICAL_INTEL 0x2 2638*3cc25752SFrank Piva #define CL_ME_CHROMA_PREDICTOR_MODE_PLANE_INTEL 0x3 2639*3cc25752SFrank Piva 2640*3cc25752SFrank Piva #define CL_ME_FORWARD_INPUT_MODE_INTEL 0x1 2641*3cc25752SFrank Piva #define CL_ME_BACKWARD_INPUT_MODE_INTEL 0x2 2642*3cc25752SFrank Piva #define CL_ME_BIDIRECTION_INPUT_MODE_INTEL 0x3 2643*3cc25752SFrank Piva 2644*3cc25752SFrank Piva #define CL_ME_BIDIR_WEIGHT_QUARTER_INTEL 16 2645*3cc25752SFrank Piva #define CL_ME_BIDIR_WEIGHT_THIRD_INTEL 21 2646*3cc25752SFrank Piva #define CL_ME_BIDIR_WEIGHT_HALF_INTEL 32 2647*3cc25752SFrank Piva #define CL_ME_BIDIR_WEIGHT_TWO_THIRD_INTEL 43 2648*3cc25752SFrank Piva #define CL_ME_BIDIR_WEIGHT_THREE_QUARTER_INTEL 48 2649*3cc25752SFrank Piva 2650*3cc25752SFrank Piva /*************************************************************** 2651*3cc25752SFrank Piva * cl_intel_simultaneous_sharing 2652*3cc25752SFrank Piva ***************************************************************/ 2653*3cc25752SFrank Piva #define cl_intel_simultaneous_sharing 1 2654*3cc25752SFrank Piva #define CL_INTEL_SIMULTANEOUS_SHARING_EXTENSION_NAME \ 2655*3cc25752SFrank Piva "cl_intel_simultaneous_sharing" 2656*3cc25752SFrank Piva 2657*3cc25752SFrank Piva /* cl_device_info */ 2658*3cc25752SFrank Piva #define CL_DEVICE_SIMULTANEOUS_INTEROPS_INTEL 0x4104 2659*3cc25752SFrank Piva #define CL_DEVICE_NUM_SIMULTANEOUS_INTEROPS_INTEL 0x4105 2660*3cc25752SFrank Piva 2661*3cc25752SFrank Piva /*************************************************************** 2662*3cc25752SFrank Piva * cl_intel_egl_image_yuv 2663*3cc25752SFrank Piva ***************************************************************/ 2664*3cc25752SFrank Piva #define cl_intel_egl_image_yuv 1 2665*3cc25752SFrank Piva #define CL_INTEL_EGL_IMAGE_YUV_EXTENSION_NAME \ 2666*3cc25752SFrank Piva "cl_intel_egl_image_yuv" 2667*3cc25752SFrank Piva 2668*3cc25752SFrank Piva /* cl_egl_image_properties_khr */ 2669*3cc25752SFrank Piva #define CL_EGL_YUV_PLANE_INTEL 0x4107 2670*3cc25752SFrank Piva 2671*3cc25752SFrank Piva /*************************************************************** 2672*3cc25752SFrank Piva * cl_intel_packed_yuv 2673*3cc25752SFrank Piva ***************************************************************/ 2674*3cc25752SFrank Piva #define cl_intel_packed_yuv 1 2675*3cc25752SFrank Piva #define CL_INTEL_PACKED_YUV_EXTENSION_NAME \ 2676*3cc25752SFrank Piva "cl_intel_packed_yuv" 2677*3cc25752SFrank Piva 2678*3cc25752SFrank Piva /* cl_channel_order */ 2679*3cc25752SFrank Piva #define CL_YUYV_INTEL 0x4076 2680*3cc25752SFrank Piva #define CL_UYVY_INTEL 0x4077 2681*3cc25752SFrank Piva #define CL_YVYU_INTEL 0x4078 2682*3cc25752SFrank Piva #define CL_VYUY_INTEL 0x4079 2683*3cc25752SFrank Piva 2684*3cc25752SFrank Piva /*************************************************************** 2685*3cc25752SFrank Piva * cl_intel_required_subgroup_size 2686*3cc25752SFrank Piva ***************************************************************/ 2687*3cc25752SFrank Piva #define cl_intel_required_subgroup_size 1 2688*3cc25752SFrank Piva #define CL_INTEL_REQUIRED_SUBGROUP_SIZE_EXTENSION_NAME \ 2689*3cc25752SFrank Piva "cl_intel_required_subgroup_size" 2690*3cc25752SFrank Piva 2691*3cc25752SFrank Piva /* cl_device_info */ 2692*3cc25752SFrank Piva #define CL_DEVICE_SUB_GROUP_SIZES_INTEL 0x4108 2693*3cc25752SFrank Piva 2694*3cc25752SFrank Piva /* cl_kernel_work_group_info */ 2695*3cc25752SFrank Piva #define CL_KERNEL_SPILL_MEM_SIZE_INTEL 0x4109 2696*3cc25752SFrank Piva 2697*3cc25752SFrank Piva /* cl_kernel_sub_group_info */ 2698*3cc25752SFrank Piva #define CL_KERNEL_COMPILE_SUB_GROUP_SIZE_INTEL 0x410A 2699*3cc25752SFrank Piva 2700*3cc25752SFrank Piva /*************************************************************** 2701*3cc25752SFrank Piva * cl_intel_driver_diagnostics 2702*3cc25752SFrank Piva ***************************************************************/ 2703*3cc25752SFrank Piva #define cl_intel_driver_diagnostics 1 2704*3cc25752SFrank Piva #define CL_INTEL_DRIVER_DIAGNOSTICS_EXTENSION_NAME \ 2705*3cc25752SFrank Piva "cl_intel_driver_diagnostics" 2706*3cc25752SFrank Piva 2707*3cc25752SFrank Piva typedef cl_uint cl_diagnostics_verbose_level; 2708*3cc25752SFrank Piva 2709*3cc25752SFrank Piva /* cl_context_properties */ 2710*3cc25752SFrank Piva #define CL_CONTEXT_SHOW_DIAGNOSTICS_INTEL 0x4106 2711*3cc25752SFrank Piva #define CL_CONTEXT_DIAGNOSTICS_LEVEL_ALL_INTEL 0xff 2712*3cc25752SFrank Piva #define CL_CONTEXT_DIAGNOSTICS_LEVEL_GOOD_INTEL (1 << 0) 2713*3cc25752SFrank Piva #define CL_CONTEXT_DIAGNOSTICS_LEVEL_BAD_INTEL (1 << 1) 2714*3cc25752SFrank Piva #define CL_CONTEXT_DIAGNOSTICS_LEVEL_NEUTRAL_INTEL (1 << 2) 2715*3cc25752SFrank Piva 2716*3cc25752SFrank Piva /*************************************************************** 2717*3cc25752SFrank Piva * cl_intel_planar_yuv 2718*3cc25752SFrank Piva ***************************************************************/ 2719*3cc25752SFrank Piva #define cl_intel_planar_yuv 1 2720*3cc25752SFrank Piva #define CL_INTEL_PLANAR_YUV_EXTENSION_NAME \ 2721*3cc25752SFrank Piva "cl_intel_planar_yuv" 2722*3cc25752SFrank Piva 2723*3cc25752SFrank Piva /* cl_channel_order */ 2724*3cc25752SFrank Piva #define CL_NV12_INTEL 0x410E 2725*3cc25752SFrank Piva 2726*3cc25752SFrank Piva /* cl_mem_flags */ 2727*3cc25752SFrank Piva #define CL_MEM_NO_ACCESS_INTEL (1 << 24) 2728*3cc25752SFrank Piva #define CL_MEM_ACCESS_FLAGS_UNRESTRICTED_INTEL (1 << 25) 2729*3cc25752SFrank Piva 2730*3cc25752SFrank Piva /* cl_device_info */ 2731*3cc25752SFrank Piva #define CL_DEVICE_PLANAR_YUV_MAX_WIDTH_INTEL 0x417E 2732*3cc25752SFrank Piva #define CL_DEVICE_PLANAR_YUV_MAX_HEIGHT_INTEL 0x417F 2733*3cc25752SFrank Piva 2734*3cc25752SFrank Piva /*************************************************************** 2735*3cc25752SFrank Piva * cl_intel_device_side_avc_motion_estimation 2736*3cc25752SFrank Piva ***************************************************************/ 2737*3cc25752SFrank Piva #define cl_intel_device_side_avc_motion_estimation 1 2738*3cc25752SFrank Piva #define CL_INTEL_DEVICE_SIDE_AVC_MOTION_ESTIMATION_EXTENSION_NAME \ 2739*3cc25752SFrank Piva "cl_intel_device_side_avc_motion_estimation" 2740*3cc25752SFrank Piva 2741*3cc25752SFrank Piva /* cl_device_info */ 2742*3cc25752SFrank Piva #define CL_DEVICE_AVC_ME_VERSION_INTEL 0x410B 2743*3cc25752SFrank Piva #define CL_DEVICE_AVC_ME_SUPPORTS_TEXTURE_SAMPLER_USE_INTEL 0x410C 2744*3cc25752SFrank Piva #define CL_DEVICE_AVC_ME_SUPPORTS_PREEMPTION_INTEL 0x410D 2745*3cc25752SFrank Piva 2746*3cc25752SFrank Piva /* returned by CL_DEVICE_AVC_ME_VERSION_INTEL */ 2747*3cc25752SFrank Piva #define CL_AVC_ME_VERSION_0_INTEL 0x0 2748*3cc25752SFrank Piva #define CL_AVC_ME_VERSION_1_INTEL 0x1 2749*3cc25752SFrank Piva 2750*3cc25752SFrank Piva /* Inter macro-block major shape values */ 2751*3cc25752SFrank Piva #define CL_AVC_ME_MAJOR_16x16_INTEL 0x0 2752*3cc25752SFrank Piva #define CL_AVC_ME_MAJOR_16x8_INTEL 0x1 2753*3cc25752SFrank Piva #define CL_AVC_ME_MAJOR_8x16_INTEL 0x2 2754*3cc25752SFrank Piva #define CL_AVC_ME_MAJOR_8x8_INTEL 0x3 2755*3cc25752SFrank Piva 2756*3cc25752SFrank Piva /* Inter macro-block minor shape values */ 2757*3cc25752SFrank Piva #define CL_AVC_ME_MINOR_8x8_INTEL 0x0 2758*3cc25752SFrank Piva #define CL_AVC_ME_MINOR_8x4_INTEL 0x1 2759*3cc25752SFrank Piva #define CL_AVC_ME_MINOR_4x8_INTEL 0x2 2760*3cc25752SFrank Piva #define CL_AVC_ME_MINOR_4x4_INTEL 0x3 2761*3cc25752SFrank Piva 2762*3cc25752SFrank Piva /* Inter macro-block major direction values */ 2763*3cc25752SFrank Piva #define CL_AVC_ME_MAJOR_FORWARD_INTEL 0x0 2764*3cc25752SFrank Piva #define CL_AVC_ME_MAJOR_BACKWARD_INTEL 0x1 2765*3cc25752SFrank Piva #define CL_AVC_ME_MAJOR_BIDIRECTIONAL_INTEL 0x2 2766*3cc25752SFrank Piva 2767*3cc25752SFrank Piva /* Inter (IME) partition mask values */ 2768*3cc25752SFrank Piva #define CL_AVC_ME_PARTITION_MASK_ALL_INTEL 0x0 2769*3cc25752SFrank Piva #define CL_AVC_ME_PARTITION_MASK_16x16_INTEL 0x7E 2770*3cc25752SFrank Piva #define CL_AVC_ME_PARTITION_MASK_16x8_INTEL 0x7D 2771*3cc25752SFrank Piva #define CL_AVC_ME_PARTITION_MASK_8x16_INTEL 0x7B 2772*3cc25752SFrank Piva #define CL_AVC_ME_PARTITION_MASK_8x8_INTEL 0x77 2773*3cc25752SFrank Piva #define CL_AVC_ME_PARTITION_MASK_8x4_INTEL 0x6F 2774*3cc25752SFrank Piva #define CL_AVC_ME_PARTITION_MASK_4x8_INTEL 0x5F 2775*3cc25752SFrank Piva #define CL_AVC_ME_PARTITION_MASK_4x4_INTEL 0x3F 2776*3cc25752SFrank Piva 2777*3cc25752SFrank Piva /* Search window configuration */ 2778*3cc25752SFrank Piva #define CL_AVC_ME_SEARCH_WINDOW_EXHAUSTIVE_INTEL 0x0 2779*3cc25752SFrank Piva #define CL_AVC_ME_SEARCH_WINDOW_SMALL_INTEL 0x1 2780*3cc25752SFrank Piva #define CL_AVC_ME_SEARCH_WINDOW_TINY_INTEL 0x2 2781*3cc25752SFrank Piva #define CL_AVC_ME_SEARCH_WINDOW_EXTRA_TINY_INTEL 0x3 2782*3cc25752SFrank Piva #define CL_AVC_ME_SEARCH_WINDOW_DIAMOND_INTEL 0x4 2783*3cc25752SFrank Piva #define CL_AVC_ME_SEARCH_WINDOW_LARGE_DIAMOND_INTEL 0x5 2784*3cc25752SFrank Piva #define CL_AVC_ME_SEARCH_WINDOW_RESERVED0_INTEL 0x6 2785*3cc25752SFrank Piva #define CL_AVC_ME_SEARCH_WINDOW_RESERVED1_INTEL 0x7 2786*3cc25752SFrank Piva #define CL_AVC_ME_SEARCH_WINDOW_CUSTOM_INTEL 0x8 2787*3cc25752SFrank Piva #define CL_AVC_ME_SEARCH_WINDOW_16x12_RADIUS_INTEL 0x9 2788*3cc25752SFrank Piva #define CL_AVC_ME_SEARCH_WINDOW_4x4_RADIUS_INTEL 0x2 2789*3cc25752SFrank Piva #define CL_AVC_ME_SEARCH_WINDOW_2x2_RADIUS_INTEL 0xa 2790*3cc25752SFrank Piva 2791*3cc25752SFrank Piva /* SAD adjustment mode */ 2792*3cc25752SFrank Piva #define CL_AVC_ME_SAD_ADJUST_MODE_NONE_INTEL 0x0 2793*3cc25752SFrank Piva #define CL_AVC_ME_SAD_ADJUST_MODE_HAAR_INTEL 0x2 2794*3cc25752SFrank Piva 2795*3cc25752SFrank Piva /* Pixel resolution */ 2796*3cc25752SFrank Piva #define CL_AVC_ME_SUBPIXEL_MODE_INTEGER_INTEL 0x0 2797*3cc25752SFrank Piva #define CL_AVC_ME_SUBPIXEL_MODE_HPEL_INTEL 0x1 2798*3cc25752SFrank Piva #define CL_AVC_ME_SUBPIXEL_MODE_QPEL_INTEL 0x3 2799*3cc25752SFrank Piva 2800*3cc25752SFrank Piva /* Cost precision values */ 2801*3cc25752SFrank Piva #define CL_AVC_ME_COST_PRECISION_QPEL_INTEL 0x0 2802*3cc25752SFrank Piva #define CL_AVC_ME_COST_PRECISION_HPEL_INTEL 0x1 2803*3cc25752SFrank Piva #define CL_AVC_ME_COST_PRECISION_PEL_INTEL 0x2 2804*3cc25752SFrank Piva #define CL_AVC_ME_COST_PRECISION_DPEL_INTEL 0x3 2805*3cc25752SFrank Piva 2806*3cc25752SFrank Piva /* Inter bidirectional weights */ 2807*3cc25752SFrank Piva #define CL_AVC_ME_BIDIR_WEIGHT_QUARTER_INTEL 0x10 2808*3cc25752SFrank Piva #define CL_AVC_ME_BIDIR_WEIGHT_THIRD_INTEL 0x15 2809*3cc25752SFrank Piva #define CL_AVC_ME_BIDIR_WEIGHT_HALF_INTEL 0x20 2810*3cc25752SFrank Piva #define CL_AVC_ME_BIDIR_WEIGHT_TWO_THIRD_INTEL 0x2B 2811*3cc25752SFrank Piva #define CL_AVC_ME_BIDIR_WEIGHT_THREE_QUARTER_INTEL 0x30 2812*3cc25752SFrank Piva 2813*3cc25752SFrank Piva /* Inter border reached values */ 2814*3cc25752SFrank Piva #define CL_AVC_ME_BORDER_REACHED_LEFT_INTEL 0x0 2815*3cc25752SFrank Piva #define CL_AVC_ME_BORDER_REACHED_RIGHT_INTEL 0x2 2816*3cc25752SFrank Piva #define CL_AVC_ME_BORDER_REACHED_TOP_INTEL 0x4 2817*3cc25752SFrank Piva #define CL_AVC_ME_BORDER_REACHED_BOTTOM_INTEL 0x8 2818*3cc25752SFrank Piva 2819*3cc25752SFrank Piva /* Inter skip block partition type */ 2820*3cc25752SFrank Piva #define CL_AVC_ME_SKIP_BLOCK_PARTITION_16x16_INTEL 0x0 2821*3cc25752SFrank Piva #define CL_AVC_ME_SKIP_BLOCK_PARTITION_8x8_INTEL 0x4000 2822*3cc25752SFrank Piva 2823*3cc25752SFrank Piva /* Inter skip motion vector mask */ 2824*3cc25752SFrank Piva #define CL_AVC_ME_SKIP_BLOCK_16x16_FORWARD_ENABLE_INTEL (0x1 << 24) 2825*3cc25752SFrank Piva #define CL_AVC_ME_SKIP_BLOCK_16x16_BACKWARD_ENABLE_INTEL (0x2 << 24) 2826*3cc25752SFrank Piva #define CL_AVC_ME_SKIP_BLOCK_16x16_DUAL_ENABLE_INTEL (0x3 << 24) 2827*3cc25752SFrank Piva #define CL_AVC_ME_SKIP_BLOCK_8x8_FORWARD_ENABLE_INTEL (0x55 << 24) 2828*3cc25752SFrank Piva #define CL_AVC_ME_SKIP_BLOCK_8x8_BACKWARD_ENABLE_INTEL (0xAA << 24) 2829*3cc25752SFrank Piva #define CL_AVC_ME_SKIP_BLOCK_8x8_DUAL_ENABLE_INTEL (0xFF << 24) 2830*3cc25752SFrank Piva #define CL_AVC_ME_SKIP_BLOCK_8x8_0_FORWARD_ENABLE_INTEL (0x1 << 24) 2831*3cc25752SFrank Piva #define CL_AVC_ME_SKIP_BLOCK_8x8_0_BACKWARD_ENABLE_INTEL (0x2 << 24) 2832*3cc25752SFrank Piva #define CL_AVC_ME_SKIP_BLOCK_8x8_1_FORWARD_ENABLE_INTEL (0x1 << 26) 2833*3cc25752SFrank Piva #define CL_AVC_ME_SKIP_BLOCK_8x8_1_BACKWARD_ENABLE_INTEL (0x2 << 26) 2834*3cc25752SFrank Piva #define CL_AVC_ME_SKIP_BLOCK_8x8_2_FORWARD_ENABLE_INTEL (0x1 << 28) 2835*3cc25752SFrank Piva #define CL_AVC_ME_SKIP_BLOCK_8x8_2_BACKWARD_ENABLE_INTEL (0x2 << 28) 2836*3cc25752SFrank Piva #define CL_AVC_ME_SKIP_BLOCK_8x8_3_FORWARD_ENABLE_INTEL (0x1 << 30) 2837*3cc25752SFrank Piva #define CL_AVC_ME_SKIP_BLOCK_8x8_3_BACKWARD_ENABLE_INTEL (0x2 << 30) 2838*3cc25752SFrank Piva 2839*3cc25752SFrank Piva /* Block based skip type values */ 2840*3cc25752SFrank Piva #define CL_AVC_ME_BLOCK_BASED_SKIP_4x4_INTEL 0x00 2841*3cc25752SFrank Piva #define CL_AVC_ME_BLOCK_BASED_SKIP_8x8_INTEL 0x80 2842*3cc25752SFrank Piva 2843*3cc25752SFrank Piva /* cl_intel_device_side_avc_motion_estimation.?? */ 2844*3cc25752SFrank Piva #define CL_AVC_ME_INTRA_16x16_INTEL 0x0 2845*3cc25752SFrank Piva #define CL_AVC_ME_INTRA_8x8_INTEL 0x1 2846*3cc25752SFrank Piva #define CL_AVC_ME_INTRA_4x4_INTEL 0x2 2847*3cc25752SFrank Piva 2848*3cc25752SFrank Piva /* Luma intra partition mask values */ 2849*3cc25752SFrank Piva #define CL_AVC_ME_INTRA_LUMA_PARTITION_MASK_16x16_INTEL 0x6 2850*3cc25752SFrank Piva #define CL_AVC_ME_INTRA_LUMA_PARTITION_MASK_8x8_INTEL 0x5 2851*3cc25752SFrank Piva #define CL_AVC_ME_INTRA_LUMA_PARTITION_MASK_4x4_INTEL 0x3 2852*3cc25752SFrank Piva 2853*3cc25752SFrank Piva /* Intra neighbor availability mask values */ 2854*3cc25752SFrank Piva #define CL_AVC_ME_INTRA_NEIGHBOR_LEFT_MASK_ENABLE_INTEL 0x60 2855*3cc25752SFrank Piva #define CL_AVC_ME_INTRA_NEIGHBOR_UPPER_MASK_ENABLE_INTEL 0x10 2856*3cc25752SFrank Piva #define CL_AVC_ME_INTRA_NEIGHBOR_UPPER_RIGHT_MASK_ENABLE_INTEL 0x8 2857*3cc25752SFrank Piva #define CL_AVC_ME_INTRA_NEIGHBOR_UPPER_LEFT_MASK_ENABLE_INTEL 0x4 2858*3cc25752SFrank Piva 2859*3cc25752SFrank Piva /* Luma intra modes */ 2860*3cc25752SFrank Piva #define CL_AVC_ME_LUMA_PREDICTOR_MODE_VERTICAL_INTEL 0x0 2861*3cc25752SFrank Piva #define CL_AVC_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_INTEL 0x1 2862*3cc25752SFrank Piva #define CL_AVC_ME_LUMA_PREDICTOR_MODE_DC_INTEL 0x2 2863*3cc25752SFrank Piva #define CL_AVC_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_LEFT_INTEL 0x3 2864*3cc25752SFrank Piva #define CL_AVC_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_RIGHT_INTEL 0x4 2865*3cc25752SFrank Piva #define CL_AVC_ME_LUMA_PREDICTOR_MODE_PLANE_INTEL 0x4 2866*3cc25752SFrank Piva #define CL_AVC_ME_LUMA_PREDICTOR_MODE_VERTICAL_RIGHT_INTEL 0x5 2867*3cc25752SFrank Piva #define CL_AVC_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_DOWN_INTEL 0x6 2868*3cc25752SFrank Piva #define CL_AVC_ME_LUMA_PREDICTOR_MODE_VERTICAL_LEFT_INTEL 0x7 2869*3cc25752SFrank Piva #define CL_AVC_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_UP_INTEL 0x8 2870*3cc25752SFrank Piva 2871*3cc25752SFrank Piva /* Chroma intra modes */ 2872*3cc25752SFrank Piva #define CL_AVC_ME_CHROMA_PREDICTOR_MODE_DC_INTEL 0x0 2873*3cc25752SFrank Piva #define CL_AVC_ME_CHROMA_PREDICTOR_MODE_HORIZONTAL_INTEL 0x1 2874*3cc25752SFrank Piva #define CL_AVC_ME_CHROMA_PREDICTOR_MODE_VERTICAL_INTEL 0x2 2875*3cc25752SFrank Piva #define CL_AVC_ME_CHROMA_PREDICTOR_MODE_PLANE_INTEL 0x3 2876*3cc25752SFrank Piva 2877*3cc25752SFrank Piva /* Reference image select values */ 2878*3cc25752SFrank Piva #define CL_AVC_ME_FRAME_FORWARD_INTEL 0x1 2879*3cc25752SFrank Piva #define CL_AVC_ME_FRAME_BACKWARD_INTEL 0x2 2880*3cc25752SFrank Piva #define CL_AVC_ME_FRAME_DUAL_INTEL 0x3 2881*3cc25752SFrank Piva 2882*3cc25752SFrank Piva /* Slice type values */ 2883*3cc25752SFrank Piva #define CL_AVC_ME_SLICE_TYPE_PRED_INTEL 0x0 2884*3cc25752SFrank Piva #define CL_AVC_ME_SLICE_TYPE_BPRED_INTEL 0x1 2885*3cc25752SFrank Piva #define CL_AVC_ME_SLICE_TYPE_INTRA_INTEL 0x2 2886*3cc25752SFrank Piva 2887*3cc25752SFrank Piva /* Interlaced image field polarity values */ 2888*3cc25752SFrank Piva #define CL_AVC_ME_INTERLACED_SCAN_TOP_FIELD_INTEL 0x0 2889*3cc25752SFrank Piva #define CL_AVC_ME_INTERLACED_SCAN_BOTTOM_FIELD_INTEL 0x1 2890*3cc25752SFrank Piva 2891*3cc25752SFrank Piva /*************************************************************** 2892*3cc25752SFrank Piva * cl_intel_unified_shared_memory 2893*3cc25752SFrank Piva ***************************************************************/ 2894*3cc25752SFrank Piva #define cl_intel_unified_shared_memory 1 2895*3cc25752SFrank Piva #define CL_INTEL_UNIFIED_SHARED_MEMORY_EXTENSION_NAME \ 2896*3cc25752SFrank Piva "cl_intel_unified_shared_memory" 2897*3cc25752SFrank Piva 2898*3cc25752SFrank Piva typedef cl_bitfield cl_device_unified_shared_memory_capabilities_intel; 2899*3cc25752SFrank Piva typedef cl_properties cl_mem_properties_intel; 2900*3cc25752SFrank Piva typedef cl_bitfield cl_mem_alloc_flags_intel; 2901*3cc25752SFrank Piva typedef cl_uint cl_mem_info_intel; 2902*3cc25752SFrank Piva typedef cl_uint cl_unified_shared_memory_type_intel; 2903*3cc25752SFrank Piva typedef cl_uint cl_mem_advice_intel; 2904*3cc25752SFrank Piva 2905*3cc25752SFrank Piva /* cl_device_info */ 2906*3cc25752SFrank Piva #define CL_DEVICE_HOST_MEM_CAPABILITIES_INTEL 0x4190 2907*3cc25752SFrank Piva #define CL_DEVICE_DEVICE_MEM_CAPABILITIES_INTEL 0x4191 2908*3cc25752SFrank Piva #define CL_DEVICE_SINGLE_DEVICE_SHARED_MEM_CAPABILITIES_INTEL 0x4192 2909*3cc25752SFrank Piva #define CL_DEVICE_CROSS_DEVICE_SHARED_MEM_CAPABILITIES_INTEL 0x4193 2910*3cc25752SFrank Piva #define CL_DEVICE_SHARED_SYSTEM_MEM_CAPABILITIES_INTEL 0x4194 2911*3cc25752SFrank Piva 2912*3cc25752SFrank Piva /* cl_unified_shared_memory_capabilities_intel - bitfield */ 2913*3cc25752SFrank Piva #define CL_UNIFIED_SHARED_MEMORY_ACCESS_INTEL (1 << 0) 2914*3cc25752SFrank Piva #define CL_UNIFIED_SHARED_MEMORY_ATOMIC_ACCESS_INTEL (1 << 1) 2915*3cc25752SFrank Piva #define CL_UNIFIED_SHARED_MEMORY_CONCURRENT_ACCESS_INTEL (1 << 2) 2916*3cc25752SFrank Piva #define CL_UNIFIED_SHARED_MEMORY_CONCURRENT_ATOMIC_ACCESS_INTEL (1 << 3) 2917*3cc25752SFrank Piva 2918*3cc25752SFrank Piva /* cl_mem_properties_intel */ 2919*3cc25752SFrank Piva #define CL_MEM_ALLOC_FLAGS_INTEL 0x4195 2920*3cc25752SFrank Piva 2921*3cc25752SFrank Piva /* cl_mem_alloc_flags_intel - bitfield */ 2922*3cc25752SFrank Piva #define CL_MEM_ALLOC_WRITE_COMBINED_INTEL (1 << 0) 2923*3cc25752SFrank Piva #define CL_MEM_ALLOC_INITIAL_PLACEMENT_DEVICE_INTEL (1 << 1) 2924*3cc25752SFrank Piva #define CL_MEM_ALLOC_INITIAL_PLACEMENT_HOST_INTEL (1 << 2) 2925*3cc25752SFrank Piva 2926*3cc25752SFrank Piva /* cl_mem_alloc_info_intel */ 2927*3cc25752SFrank Piva #define CL_MEM_ALLOC_TYPE_INTEL 0x419A 2928*3cc25752SFrank Piva #define CL_MEM_ALLOC_BASE_PTR_INTEL 0x419B 2929*3cc25752SFrank Piva #define CL_MEM_ALLOC_SIZE_INTEL 0x419C 2930*3cc25752SFrank Piva #define CL_MEM_ALLOC_DEVICE_INTEL 0x419D 2931*3cc25752SFrank Piva 2932*3cc25752SFrank Piva /* cl_unified_shared_memory_type_intel */ 2933*3cc25752SFrank Piva #define CL_MEM_TYPE_UNKNOWN_INTEL 0x4196 2934*3cc25752SFrank Piva #define CL_MEM_TYPE_HOST_INTEL 0x4197 2935*3cc25752SFrank Piva #define CL_MEM_TYPE_DEVICE_INTEL 0x4198 2936*3cc25752SFrank Piva #define CL_MEM_TYPE_SHARED_INTEL 0x4199 2937*3cc25752SFrank Piva 2938*3cc25752SFrank Piva /* cl_kernel_exec_info */ 2939*3cc25752SFrank Piva #define CL_KERNEL_EXEC_INFO_INDIRECT_HOST_ACCESS_INTEL 0x4200 2940*3cc25752SFrank Piva #define CL_KERNEL_EXEC_INFO_INDIRECT_DEVICE_ACCESS_INTEL 0x4201 2941*3cc25752SFrank Piva #define CL_KERNEL_EXEC_INFO_INDIRECT_SHARED_ACCESS_INTEL 0x4202 2942*3cc25752SFrank Piva #define CL_KERNEL_EXEC_INFO_USM_PTRS_INTEL 0x4203 2943*3cc25752SFrank Piva 2944*3cc25752SFrank Piva /* cl_command_type */ 2945*3cc25752SFrank Piva #define CL_COMMAND_MEMFILL_INTEL 0x4204 2946*3cc25752SFrank Piva #define CL_COMMAND_MEMCPY_INTEL 0x4205 2947*3cc25752SFrank Piva #define CL_COMMAND_MIGRATEMEM_INTEL 0x4206 2948*3cc25752SFrank Piva #define CL_COMMAND_MEMADVISE_INTEL 0x4207 2949*3cc25752SFrank Piva 2950*3cc25752SFrank Piva 2951*3cc25752SFrank Piva typedef void* CL_API_CALL 2952*3cc25752SFrank Piva clHostMemAllocINTEL_t( 2953*3cc25752SFrank Piva cl_context context, 2954*3cc25752SFrank Piva const cl_mem_properties_intel* properties, 2955*3cc25752SFrank Piva size_t size, 2956*3cc25752SFrank Piva cl_uint alignment, 2957*3cc25752SFrank Piva cl_int* errcode_ret); 2958*3cc25752SFrank Piva 2959*3cc25752SFrank Piva typedef clHostMemAllocINTEL_t * 2960*3cc25752SFrank Piva clHostMemAllocINTEL_fn ; 2961*3cc25752SFrank Piva 2962*3cc25752SFrank Piva typedef void* CL_API_CALL 2963*3cc25752SFrank Piva clDeviceMemAllocINTEL_t( 2964*3cc25752SFrank Piva cl_context context, 2965*3cc25752SFrank Piva cl_device_id device, 2966*3cc25752SFrank Piva const cl_mem_properties_intel* properties, 2967*3cc25752SFrank Piva size_t size, 2968*3cc25752SFrank Piva cl_uint alignment, 2969*3cc25752SFrank Piva cl_int* errcode_ret); 2970*3cc25752SFrank Piva 2971*3cc25752SFrank Piva typedef clDeviceMemAllocINTEL_t * 2972*3cc25752SFrank Piva clDeviceMemAllocINTEL_fn ; 2973*3cc25752SFrank Piva 2974*3cc25752SFrank Piva typedef void* CL_API_CALL 2975*3cc25752SFrank Piva clSharedMemAllocINTEL_t( 2976*3cc25752SFrank Piva cl_context context, 2977*3cc25752SFrank Piva cl_device_id device, 2978*3cc25752SFrank Piva const cl_mem_properties_intel* properties, 2979*3cc25752SFrank Piva size_t size, 2980*3cc25752SFrank Piva cl_uint alignment, 2981*3cc25752SFrank Piva cl_int* errcode_ret); 2982*3cc25752SFrank Piva 2983*3cc25752SFrank Piva typedef clSharedMemAllocINTEL_t * 2984*3cc25752SFrank Piva clSharedMemAllocINTEL_fn ; 2985*3cc25752SFrank Piva 2986*3cc25752SFrank Piva typedef cl_int CL_API_CALL 2987*3cc25752SFrank Piva clMemFreeINTEL_t( 2988*3cc25752SFrank Piva cl_context context, 2989*3cc25752SFrank Piva void* ptr); 2990*3cc25752SFrank Piva 2991*3cc25752SFrank Piva typedef clMemFreeINTEL_t * 2992*3cc25752SFrank Piva clMemFreeINTEL_fn ; 2993*3cc25752SFrank Piva 2994*3cc25752SFrank Piva typedef cl_int CL_API_CALL 2995*3cc25752SFrank Piva clMemBlockingFreeINTEL_t( 2996*3cc25752SFrank Piva cl_context context, 2997*3cc25752SFrank Piva void* ptr); 2998*3cc25752SFrank Piva 2999*3cc25752SFrank Piva typedef clMemBlockingFreeINTEL_t * 3000*3cc25752SFrank Piva clMemBlockingFreeINTEL_fn ; 3001*3cc25752SFrank Piva 3002*3cc25752SFrank Piva typedef cl_int CL_API_CALL 3003*3cc25752SFrank Piva clGetMemAllocInfoINTEL_t( 3004*3cc25752SFrank Piva cl_context context, 3005*3cc25752SFrank Piva const void* ptr, 3006*3cc25752SFrank Piva cl_mem_info_intel param_name, 3007*3cc25752SFrank Piva size_t param_value_size, 3008*3cc25752SFrank Piva void* param_value, 3009*3cc25752SFrank Piva size_t* param_value_size_ret); 3010*3cc25752SFrank Piva 3011*3cc25752SFrank Piva typedef clGetMemAllocInfoINTEL_t * 3012*3cc25752SFrank Piva clGetMemAllocInfoINTEL_fn ; 3013*3cc25752SFrank Piva 3014*3cc25752SFrank Piva typedef cl_int CL_API_CALL 3015*3cc25752SFrank Piva clSetKernelArgMemPointerINTEL_t( 3016*3cc25752SFrank Piva cl_kernel kernel, 3017*3cc25752SFrank Piva cl_uint arg_index, 3018*3cc25752SFrank Piva const void* arg_value); 3019*3cc25752SFrank Piva 3020*3cc25752SFrank Piva typedef clSetKernelArgMemPointerINTEL_t * 3021*3cc25752SFrank Piva clSetKernelArgMemPointerINTEL_fn ; 3022*3cc25752SFrank Piva 3023*3cc25752SFrank Piva typedef cl_int CL_API_CALL 3024*3cc25752SFrank Piva clEnqueueMemFillINTEL_t( 3025*3cc25752SFrank Piva cl_command_queue command_queue, 3026*3cc25752SFrank Piva void* dst_ptr, 3027*3cc25752SFrank Piva const void* pattern, 3028*3cc25752SFrank Piva size_t pattern_size, 3029*3cc25752SFrank Piva size_t size, 3030*3cc25752SFrank Piva cl_uint num_events_in_wait_list, 3031*3cc25752SFrank Piva const cl_event* event_wait_list, 3032*3cc25752SFrank Piva cl_event* event); 3033*3cc25752SFrank Piva 3034*3cc25752SFrank Piva typedef clEnqueueMemFillINTEL_t * 3035*3cc25752SFrank Piva clEnqueueMemFillINTEL_fn ; 3036*3cc25752SFrank Piva 3037*3cc25752SFrank Piva typedef cl_int CL_API_CALL 3038*3cc25752SFrank Piva clEnqueueMemcpyINTEL_t( 3039*3cc25752SFrank Piva cl_command_queue command_queue, 3040*3cc25752SFrank Piva cl_bool blocking, 3041*3cc25752SFrank Piva void* dst_ptr, 3042*3cc25752SFrank Piva const void* src_ptr, 3043*3cc25752SFrank Piva size_t size, 3044*3cc25752SFrank Piva cl_uint num_events_in_wait_list, 3045*3cc25752SFrank Piva const cl_event* event_wait_list, 3046*3cc25752SFrank Piva cl_event* event); 3047*3cc25752SFrank Piva 3048*3cc25752SFrank Piva typedef clEnqueueMemcpyINTEL_t * 3049*3cc25752SFrank Piva clEnqueueMemcpyINTEL_fn ; 3050*3cc25752SFrank Piva 3051*3cc25752SFrank Piva typedef cl_int CL_API_CALL 3052*3cc25752SFrank Piva clEnqueueMemAdviseINTEL_t( 3053*3cc25752SFrank Piva cl_command_queue command_queue, 3054*3cc25752SFrank Piva const void* ptr, 3055*3cc25752SFrank Piva size_t size, 3056*3cc25752SFrank Piva cl_mem_advice_intel advice, 3057*3cc25752SFrank Piva cl_uint num_events_in_wait_list, 3058*3cc25752SFrank Piva const cl_event* event_wait_list, 3059*3cc25752SFrank Piva cl_event* event); 3060*3cc25752SFrank Piva 3061*3cc25752SFrank Piva typedef clEnqueueMemAdviseINTEL_t * 3062*3cc25752SFrank Piva clEnqueueMemAdviseINTEL_fn ; 3063*3cc25752SFrank Piva 3064*3cc25752SFrank Piva #if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) 3065*3cc25752SFrank Piva 3066*3cc25752SFrank Piva extern CL_API_ENTRY void* CL_API_CALL 3067*3cc25752SFrank Piva clHostMemAllocINTEL( 3068*3cc25752SFrank Piva cl_context context, 3069*3cc25752SFrank Piva const cl_mem_properties_intel* properties, 3070*3cc25752SFrank Piva size_t size, 3071*3cc25752SFrank Piva cl_uint alignment, 3072*3cc25752SFrank Piva cl_int* errcode_ret) ; 3073*3cc25752SFrank Piva 3074*3cc25752SFrank Piva extern CL_API_ENTRY void* CL_API_CALL 3075*3cc25752SFrank Piva clDeviceMemAllocINTEL( 3076*3cc25752SFrank Piva cl_context context, 3077*3cc25752SFrank Piva cl_device_id device, 3078*3cc25752SFrank Piva const cl_mem_properties_intel* properties, 3079*3cc25752SFrank Piva size_t size, 3080*3cc25752SFrank Piva cl_uint alignment, 3081*3cc25752SFrank Piva cl_int* errcode_ret) ; 3082*3cc25752SFrank Piva 3083*3cc25752SFrank Piva extern CL_API_ENTRY void* CL_API_CALL 3084*3cc25752SFrank Piva clSharedMemAllocINTEL( 3085*3cc25752SFrank Piva cl_context context, 3086*3cc25752SFrank Piva cl_device_id device, 3087*3cc25752SFrank Piva const cl_mem_properties_intel* properties, 3088*3cc25752SFrank Piva size_t size, 3089*3cc25752SFrank Piva cl_uint alignment, 3090*3cc25752SFrank Piva cl_int* errcode_ret) ; 3091*3cc25752SFrank Piva 3092*3cc25752SFrank Piva extern CL_API_ENTRY cl_int CL_API_CALL 3093*3cc25752SFrank Piva clMemFreeINTEL( 3094*3cc25752SFrank Piva cl_context context, 3095*3cc25752SFrank Piva void* ptr) ; 3096*3cc25752SFrank Piva 3097*3cc25752SFrank Piva extern CL_API_ENTRY cl_int CL_API_CALL 3098*3cc25752SFrank Piva clMemBlockingFreeINTEL( 3099*3cc25752SFrank Piva cl_context context, 3100*3cc25752SFrank Piva void* ptr) ; 3101*3cc25752SFrank Piva 3102*3cc25752SFrank Piva extern CL_API_ENTRY cl_int CL_API_CALL 3103*3cc25752SFrank Piva clGetMemAllocInfoINTEL( 3104*3cc25752SFrank Piva cl_context context, 3105*3cc25752SFrank Piva const void* ptr, 3106*3cc25752SFrank Piva cl_mem_info_intel param_name, 3107*3cc25752SFrank Piva size_t param_value_size, 3108*3cc25752SFrank Piva void* param_value, 3109*3cc25752SFrank Piva size_t* param_value_size_ret) ; 3110*3cc25752SFrank Piva 3111*3cc25752SFrank Piva extern CL_API_ENTRY cl_int CL_API_CALL 3112*3cc25752SFrank Piva clSetKernelArgMemPointerINTEL( 3113*3cc25752SFrank Piva cl_kernel kernel, 3114*3cc25752SFrank Piva cl_uint arg_index, 3115*3cc25752SFrank Piva const void* arg_value) ; 3116*3cc25752SFrank Piva 3117*3cc25752SFrank Piva extern CL_API_ENTRY cl_int CL_API_CALL 3118*3cc25752SFrank Piva clEnqueueMemFillINTEL( 3119*3cc25752SFrank Piva cl_command_queue command_queue, 3120*3cc25752SFrank Piva void* dst_ptr, 3121*3cc25752SFrank Piva const void* pattern, 3122*3cc25752SFrank Piva size_t pattern_size, 3123*3cc25752SFrank Piva size_t size, 3124*3cc25752SFrank Piva cl_uint num_events_in_wait_list, 3125*3cc25752SFrank Piva const cl_event* event_wait_list, 3126*3cc25752SFrank Piva cl_event* event) ; 3127*3cc25752SFrank Piva 3128*3cc25752SFrank Piva extern CL_API_ENTRY cl_int CL_API_CALL 3129*3cc25752SFrank Piva clEnqueueMemcpyINTEL( 3130*3cc25752SFrank Piva cl_command_queue command_queue, 3131*3cc25752SFrank Piva cl_bool blocking, 3132*3cc25752SFrank Piva void* dst_ptr, 3133*3cc25752SFrank Piva const void* src_ptr, 3134*3cc25752SFrank Piva size_t size, 3135*3cc25752SFrank Piva cl_uint num_events_in_wait_list, 3136*3cc25752SFrank Piva const cl_event* event_wait_list, 3137*3cc25752SFrank Piva cl_event* event) ; 3138*3cc25752SFrank Piva 3139*3cc25752SFrank Piva extern CL_API_ENTRY cl_int CL_API_CALL 3140*3cc25752SFrank Piva clEnqueueMemAdviseINTEL( 3141*3cc25752SFrank Piva cl_command_queue command_queue, 3142*3cc25752SFrank Piva const void* ptr, 3143*3cc25752SFrank Piva size_t size, 3144*3cc25752SFrank Piva cl_mem_advice_intel advice, 3145*3cc25752SFrank Piva cl_uint num_events_in_wait_list, 3146*3cc25752SFrank Piva const cl_event* event_wait_list, 3147*3cc25752SFrank Piva cl_event* event) ; 3148*3cc25752SFrank Piva 3149*3cc25752SFrank Piva #endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ 3150*3cc25752SFrank Piva 3151*3cc25752SFrank Piva #if defined(CL_VERSION_1_2) 3152*3cc25752SFrank Piva /* Requires OpenCL 1.2 for cl_mem_migration_flags: */ 3153*3cc25752SFrank Piva 3154*3cc25752SFrank Piva typedef cl_int CL_API_CALL 3155*3cc25752SFrank Piva clEnqueueMigrateMemINTEL_t( 3156*3cc25752SFrank Piva cl_command_queue command_queue, 3157*3cc25752SFrank Piva const void* ptr, 3158*3cc25752SFrank Piva size_t size, 3159*3cc25752SFrank Piva cl_mem_migration_flags flags, 3160*3cc25752SFrank Piva cl_uint num_events_in_wait_list, 3161*3cc25752SFrank Piva const cl_event* event_wait_list, 3162*3cc25752SFrank Piva cl_event* event); 3163*3cc25752SFrank Piva 3164*3cc25752SFrank Piva typedef clEnqueueMigrateMemINTEL_t * 3165*3cc25752SFrank Piva clEnqueueMigrateMemINTEL_fn ; 3166*3cc25752SFrank Piva 3167*3cc25752SFrank Piva #if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) 3168*3cc25752SFrank Piva 3169*3cc25752SFrank Piva extern CL_API_ENTRY cl_int CL_API_CALL 3170*3cc25752SFrank Piva clEnqueueMigrateMemINTEL( 3171*3cc25752SFrank Piva cl_command_queue command_queue, 3172*3cc25752SFrank Piva const void* ptr, 3173*3cc25752SFrank Piva size_t size, 3174*3cc25752SFrank Piva cl_mem_migration_flags flags, 3175*3cc25752SFrank Piva cl_uint num_events_in_wait_list, 3176*3cc25752SFrank Piva const cl_event* event_wait_list, 3177*3cc25752SFrank Piva cl_event* event) ; 3178*3cc25752SFrank Piva 3179*3cc25752SFrank Piva #endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ 3180*3cc25752SFrank Piva 3181*3cc25752SFrank Piva #endif /* defined(CL_VERSION_1_2) */ 3182*3cc25752SFrank Piva 3183*3cc25752SFrank Piva /* deprecated, use clEnqueueMemFillINTEL instead */ 3184*3cc25752SFrank Piva 3185*3cc25752SFrank Piva typedef cl_int CL_API_CALL 3186*3cc25752SFrank Piva clEnqueueMemsetINTEL_t( 3187*3cc25752SFrank Piva cl_command_queue command_queue, 3188*3cc25752SFrank Piva void* dst_ptr, 3189*3cc25752SFrank Piva cl_int value, 3190*3cc25752SFrank Piva size_t size, 3191*3cc25752SFrank Piva cl_uint num_events_in_wait_list, 3192*3cc25752SFrank Piva const cl_event* event_wait_list, 3193*3cc25752SFrank Piva cl_event* event); 3194*3cc25752SFrank Piva 3195*3cc25752SFrank Piva typedef clEnqueueMemsetINTEL_t * 3196*3cc25752SFrank Piva clEnqueueMemsetINTEL_fn ; 3197*3cc25752SFrank Piva 3198*3cc25752SFrank Piva #if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) 3199*3cc25752SFrank Piva 3200*3cc25752SFrank Piva extern CL_API_ENTRY cl_int CL_API_CALL 3201*3cc25752SFrank Piva clEnqueueMemsetINTEL( 3202*3cc25752SFrank Piva cl_command_queue command_queue, 3203*3cc25752SFrank Piva void* dst_ptr, 3204*3cc25752SFrank Piva cl_int value, 3205*3cc25752SFrank Piva size_t size, 3206*3cc25752SFrank Piva cl_uint num_events_in_wait_list, 3207*3cc25752SFrank Piva const cl_event* event_wait_list, 3208*3cc25752SFrank Piva cl_event* event) ; 3209*3cc25752SFrank Piva 3210*3cc25752SFrank Piva #endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ 3211*3cc25752SFrank Piva 3212*3cc25752SFrank Piva /*************************************************************** 3213*3cc25752SFrank Piva * cl_intel_mem_alloc_buffer_location 3214*3cc25752SFrank Piva ***************************************************************/ 3215*3cc25752SFrank Piva #define cl_intel_mem_alloc_buffer_location 1 3216*3cc25752SFrank Piva #define CL_INTEL_MEM_ALLOC_BUFFER_LOCATION_EXTENSION_NAME \ 3217*3cc25752SFrank Piva "cl_intel_mem_alloc_buffer_location" 3218*3cc25752SFrank Piva 3219*3cc25752SFrank Piva /* cl_mem_properties_intel */ 3220*3cc25752SFrank Piva #define CL_MEM_ALLOC_BUFFER_LOCATION_INTEL 0x419E 3221*3cc25752SFrank Piva 3222*3cc25752SFrank Piva /* cl_mem_alloc_info_intel */ 3223*3cc25752SFrank Piva /* enum CL_MEM_ALLOC_BUFFER_LOCATION_INTEL */ 3224*3cc25752SFrank Piva 3225*3cc25752SFrank Piva /*************************************************************** 3226*3cc25752SFrank Piva * cl_intel_create_buffer_with_properties 3227*3cc25752SFrank Piva ***************************************************************/ 3228*3cc25752SFrank Piva #define cl_intel_create_buffer_with_properties 1 3229*3cc25752SFrank Piva #define CL_INTEL_CREATE_BUFFER_WITH_PROPERTIES_EXTENSION_NAME \ 3230*3cc25752SFrank Piva "cl_intel_create_buffer_with_properties" 3231*3cc25752SFrank Piva 3232*3cc25752SFrank Piva /* type cl_mem_properties_intel */ 3233*3cc25752SFrank Piva 3234*3cc25752SFrank Piva 3235*3cc25752SFrank Piva typedef cl_mem CL_API_CALL 3236*3cc25752SFrank Piva clCreateBufferWithPropertiesINTEL_t( 3237*3cc25752SFrank Piva cl_context context, 3238*3cc25752SFrank Piva const cl_mem_properties_intel* properties, 3239*3cc25752SFrank Piva cl_mem_flags flags, 3240*3cc25752SFrank Piva size_t size, 3241*3cc25752SFrank Piva void* host_ptr, 3242*3cc25752SFrank Piva cl_int* errcode_ret); 3243*3cc25752SFrank Piva 3244*3cc25752SFrank Piva typedef clCreateBufferWithPropertiesINTEL_t * 3245*3cc25752SFrank Piva clCreateBufferWithPropertiesINTEL_fn CL_API_SUFFIX__VERSION_1_0; 3246*3cc25752SFrank Piva 3247*3cc25752SFrank Piva #if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) 3248*3cc25752SFrank Piva 3249*3cc25752SFrank Piva extern CL_API_ENTRY cl_mem CL_API_CALL 3250*3cc25752SFrank Piva clCreateBufferWithPropertiesINTEL( 3251*3cc25752SFrank Piva cl_context context, 3252*3cc25752SFrank Piva const cl_mem_properties_intel* properties, 3253*3cc25752SFrank Piva cl_mem_flags flags, 3254*3cc25752SFrank Piva size_t size, 3255*3cc25752SFrank Piva void* host_ptr, 3256*3cc25752SFrank Piva cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; 3257*3cc25752SFrank Piva 3258*3cc25752SFrank Piva #endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ 3259*3cc25752SFrank Piva 3260*3cc25752SFrank Piva /*************************************************************** 3261*3cc25752SFrank Piva * cl_intel_program_scope_host_pipe 3262*3cc25752SFrank Piva ***************************************************************/ 3263*3cc25752SFrank Piva #define cl_intel_program_scope_host_pipe 1 3264*3cc25752SFrank Piva #define CL_INTEL_PROGRAM_SCOPE_HOST_PIPE_EXTENSION_NAME \ 3265*3cc25752SFrank Piva "cl_intel_program_scope_host_pipe" 3266*3cc25752SFrank Piva 3267*3cc25752SFrank Piva /* clGetEventInfo response when param_name is CL_EVENT_COMMAND_TYPE */ 3268*3cc25752SFrank Piva #define CL_COMMAND_READ_HOST_PIPE_INTEL 0x4214 3269*3cc25752SFrank Piva #define CL_COMMAND_WRITE_HOST_PIPE_INTEL 0x4215 3270*3cc25752SFrank Piva 3271*3cc25752SFrank Piva /* clGetProgramInfo param_name */ 3272*3cc25752SFrank Piva #define CL_PROGRAM_NUM_HOST_PIPES_INTEL 0x4216 3273*3cc25752SFrank Piva #define CL_PROGRAM_HOST_PIPE_NAMES_INTEL 0x4217 3274*3cc25752SFrank Piva 3275*3cc25752SFrank Piva 3276*3cc25752SFrank Piva typedef cl_int CL_API_CALL 3277*3cc25752SFrank Piva clEnqueueReadHostPipeINTEL_t( 3278*3cc25752SFrank Piva cl_command_queue command_queue, 3279*3cc25752SFrank Piva cl_program program, 3280*3cc25752SFrank Piva const char* pipe_symbol, 3281*3cc25752SFrank Piva cl_bool blocking_read, 3282*3cc25752SFrank Piva void* ptr, 3283*3cc25752SFrank Piva size_t size, 3284*3cc25752SFrank Piva cl_uint num_events_in_wait_list, 3285*3cc25752SFrank Piva const cl_event* event_wait_list, 3286*3cc25752SFrank Piva cl_event* event); 3287*3cc25752SFrank Piva 3288*3cc25752SFrank Piva typedef clEnqueueReadHostPipeINTEL_t * 3289*3cc25752SFrank Piva clEnqueueReadHostPipeINTEL_fn CL_API_SUFFIX__VERSION_1_0; 3290*3cc25752SFrank Piva 3291*3cc25752SFrank Piva typedef cl_int CL_API_CALL 3292*3cc25752SFrank Piva clEnqueueWriteHostPipeINTEL_t( 3293*3cc25752SFrank Piva cl_command_queue command_queue, 3294*3cc25752SFrank Piva cl_program program, 3295*3cc25752SFrank Piva const char* pipe_symbol, 3296*3cc25752SFrank Piva cl_bool blocking_write, 3297*3cc25752SFrank Piva const void* ptr, 3298*3cc25752SFrank Piva size_t size, 3299*3cc25752SFrank Piva cl_uint num_events_in_wait_list, 3300*3cc25752SFrank Piva const cl_event* event_wait_list, 3301*3cc25752SFrank Piva cl_event* event); 3302*3cc25752SFrank Piva 3303*3cc25752SFrank Piva typedef clEnqueueWriteHostPipeINTEL_t * 3304*3cc25752SFrank Piva clEnqueueWriteHostPipeINTEL_fn CL_API_SUFFIX__VERSION_1_0; 3305*3cc25752SFrank Piva 3306*3cc25752SFrank Piva #if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) 3307*3cc25752SFrank Piva 3308*3cc25752SFrank Piva extern CL_API_ENTRY cl_int CL_API_CALL 3309*3cc25752SFrank Piva clEnqueueReadHostPipeINTEL( 3310*3cc25752SFrank Piva cl_command_queue command_queue, 3311*3cc25752SFrank Piva cl_program program, 3312*3cc25752SFrank Piva const char* pipe_symbol, 3313*3cc25752SFrank Piva cl_bool blocking_read, 3314*3cc25752SFrank Piva void* ptr, 3315*3cc25752SFrank Piva size_t size, 3316*3cc25752SFrank Piva cl_uint num_events_in_wait_list, 3317*3cc25752SFrank Piva const cl_event* event_wait_list, 3318*3cc25752SFrank Piva cl_event* event) CL_API_SUFFIX__VERSION_1_0; 3319*3cc25752SFrank Piva 3320*3cc25752SFrank Piva extern CL_API_ENTRY cl_int CL_API_CALL 3321*3cc25752SFrank Piva clEnqueueWriteHostPipeINTEL( 3322*3cc25752SFrank Piva cl_command_queue command_queue, 3323*3cc25752SFrank Piva cl_program program, 3324*3cc25752SFrank Piva const char* pipe_symbol, 3325*3cc25752SFrank Piva cl_bool blocking_write, 3326*3cc25752SFrank Piva const void* ptr, 3327*3cc25752SFrank Piva size_t size, 3328*3cc25752SFrank Piva cl_uint num_events_in_wait_list, 3329*3cc25752SFrank Piva const cl_event* event_wait_list, 3330*3cc25752SFrank Piva cl_event* event) CL_API_SUFFIX__VERSION_1_0; 3331*3cc25752SFrank Piva 3332*3cc25752SFrank Piva #endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ 3333*3cc25752SFrank Piva 3334*3cc25752SFrank Piva /*************************************************************** 3335*3cc25752SFrank Piva * cl_intel_mem_channel_property 3336*3cc25752SFrank Piva ***************************************************************/ 3337*3cc25752SFrank Piva #define cl_intel_mem_channel_property 1 3338*3cc25752SFrank Piva #define CL_INTEL_MEM_CHANNEL_PROPERTY_EXTENSION_NAME \ 3339*3cc25752SFrank Piva "cl_intel_mem_channel_property" 3340*3cc25752SFrank Piva 3341*3cc25752SFrank Piva /* cl_mem_properties_intel */ 3342*3cc25752SFrank Piva #define CL_MEM_CHANNEL_INTEL 0x4213 3343*3cc25752SFrank Piva 3344*3cc25752SFrank Piva /*************************************************************** 3345*3cc25752SFrank Piva * cl_intel_mem_force_host_memory 3346*3cc25752SFrank Piva ***************************************************************/ 3347*3cc25752SFrank Piva #define cl_intel_mem_force_host_memory 1 3348*3cc25752SFrank Piva #define CL_INTEL_MEM_FORCE_HOST_MEMORY_EXTENSION_NAME \ 3349*3cc25752SFrank Piva "cl_intel_mem_force_host_memory" 3350*3cc25752SFrank Piva 3351*3cc25752SFrank Piva /* cl_mem_flags */ 3352*3cc25752SFrank Piva #define CL_MEM_FORCE_HOST_MEMORY_INTEL (1 << 20) 3353*3cc25752SFrank Piva 3354*3cc25752SFrank Piva /*************************************************************** 3355*3cc25752SFrank Piva * cl_intel_command_queue_families 3356*3cc25752SFrank Piva ***************************************************************/ 3357*3cc25752SFrank Piva #define cl_intel_command_queue_families 1 3358*3cc25752SFrank Piva #define CL_INTEL_COMMAND_QUEUE_FAMILIES_EXTENSION_NAME \ 3359*3cc25752SFrank Piva "cl_intel_command_queue_families" 3360*3cc25752SFrank Piva 3361*3cc25752SFrank Piva typedef cl_bitfield cl_command_queue_capabilities_intel; 3362*3cc25752SFrank Piva 3363*3cc25752SFrank Piva #define CL_QUEUE_FAMILY_MAX_NAME_SIZE_INTEL 64 3364*3cc25752SFrank Piva 3365*3cc25752SFrank Piva typedef struct _cl_queue_family_properties_intel { 3366*3cc25752SFrank Piva cl_command_queue_properties properties; 3367*3cc25752SFrank Piva cl_command_queue_capabilities_intel capabilities; 3368*3cc25752SFrank Piva cl_uint count; 3369*3cc25752SFrank Piva char name[CL_QUEUE_FAMILY_MAX_NAME_SIZE_INTEL]; 3370*3cc25752SFrank Piva } cl_queue_family_properties_intel; 3371*3cc25752SFrank Piva 3372*3cc25752SFrank Piva /* cl_device_info */ 3373*3cc25752SFrank Piva #define CL_DEVICE_QUEUE_FAMILY_PROPERTIES_INTEL 0x418B 3374*3cc25752SFrank Piva 3375*3cc25752SFrank Piva /* cl_queue_properties */ 3376*3cc25752SFrank Piva #define CL_QUEUE_FAMILY_INTEL 0x418C 3377*3cc25752SFrank Piva #define CL_QUEUE_INDEX_INTEL 0x418D 3378*3cc25752SFrank Piva 3379*3cc25752SFrank Piva /* cl_command_queue_capabilities_intel */ 3380*3cc25752SFrank Piva #define CL_QUEUE_DEFAULT_CAPABILITIES_INTEL 0 3381*3cc25752SFrank Piva #define CL_QUEUE_CAPABILITY_CREATE_SINGLE_QUEUE_EVENTS_INTEL (1 << 0) 3382*3cc25752SFrank Piva #define CL_QUEUE_CAPABILITY_CREATE_CROSS_QUEUE_EVENTS_INTEL (1 << 1) 3383*3cc25752SFrank Piva #define CL_QUEUE_CAPABILITY_SINGLE_QUEUE_EVENT_WAIT_LIST_INTEL (1 << 2) 3384*3cc25752SFrank Piva #define CL_QUEUE_CAPABILITY_CROSS_QUEUE_EVENT_WAIT_LIST_INTEL (1 << 3) 3385*3cc25752SFrank Piva #define CL_QUEUE_CAPABILITY_TRANSFER_BUFFER_INTEL (1 << 8) 3386*3cc25752SFrank Piva #define CL_QUEUE_CAPABILITY_TRANSFER_BUFFER_RECT_INTEL (1 << 9) 3387*3cc25752SFrank Piva #define CL_QUEUE_CAPABILITY_MAP_BUFFER_INTEL (1 << 10) 3388*3cc25752SFrank Piva #define CL_QUEUE_CAPABILITY_FILL_BUFFER_INTEL (1 << 11) 3389*3cc25752SFrank Piva #define CL_QUEUE_CAPABILITY_TRANSFER_IMAGE_INTEL (1 << 12) 3390*3cc25752SFrank Piva #define CL_QUEUE_CAPABILITY_MAP_IMAGE_INTEL (1 << 13) 3391*3cc25752SFrank Piva #define CL_QUEUE_CAPABILITY_FILL_IMAGE_INTEL (1 << 14) 3392*3cc25752SFrank Piva #define CL_QUEUE_CAPABILITY_TRANSFER_BUFFER_IMAGE_INTEL (1 << 15) 3393*3cc25752SFrank Piva #define CL_QUEUE_CAPABILITY_TRANSFER_IMAGE_BUFFER_INTEL (1 << 16) 3394*3cc25752SFrank Piva #define CL_QUEUE_CAPABILITY_MARKER_INTEL (1 << 24) 3395*3cc25752SFrank Piva #define CL_QUEUE_CAPABILITY_BARRIER_INTEL (1 << 25) 3396*3cc25752SFrank Piva #define CL_QUEUE_CAPABILITY_KERNEL_INTEL (1 << 26) 3397*3cc25752SFrank Piva 3398*3cc25752SFrank Piva /*************************************************************** 3399*3cc25752SFrank Piva * cl_intel_queue_no_sync_operations 3400*3cc25752SFrank Piva ***************************************************************/ 3401*3cc25752SFrank Piva #define cl_intel_queue_no_sync_operations 1 3402*3cc25752SFrank Piva #define CL_INTEL_QUEUE_NO_SYNC_OPERATIONS_EXTENSION_NAME \ 3403*3cc25752SFrank Piva "cl_intel_queue_no_sync_operations" 3404*3cc25752SFrank Piva 3405*3cc25752SFrank Piva /* cl_command_queue_properties */ 3406*3cc25752SFrank Piva #define CL_QUEUE_NO_SYNC_OPERATIONS_INTEL (1 << 29) 3407*3cc25752SFrank Piva 3408*3cc25752SFrank Piva /*************************************************************** 3409*3cc25752SFrank Piva * cl_intel_sharing_format_query 3410*3cc25752SFrank Piva ***************************************************************/ 3411*3cc25752SFrank Piva #define cl_intel_sharing_format_query 1 3412*3cc25752SFrank Piva #define CL_INTEL_SHARING_FORMAT_QUERY_EXTENSION_NAME \ 3413*3cc25752SFrank Piva "cl_intel_sharing_format_query" 3414*3cc25752SFrank Piva 3415*3cc25752SFrank Piva /*************************************************************** 3416*3cc25752SFrank Piva * cl_ext_image_requirements_info 3417*3cc25752SFrank Piva ***************************************************************/ 3418*3cc25752SFrank Piva #if defined(CL_VERSION_3_0) 3419*3cc25752SFrank Piva 3420*3cc25752SFrank Piva #define cl_ext_image_requirements_info 1 3421*3cc25752SFrank Piva #define CL_EXT_IMAGE_REQUIREMENTS_INFO_EXTENSION_NAME \ 3422*3cc25752SFrank Piva "cl_ext_image_requirements_info" 3423*3cc25752SFrank Piva 3424*3cc25752SFrank Piva /* Types */ 3425*3cc25752SFrank Piva typedef cl_uint cl_image_requirements_info_ext; 3426*3cc25752SFrank Piva 3427*3cc25752SFrank Piva /* cl_image_requirements_info_ext */ 3428*3cc25752SFrank Piva #define CL_IMAGE_REQUIREMENTS_BASE_ADDRESS_ALIGNMENT_EXT 0x1292 3429*3cc25752SFrank Piva #define CL_IMAGE_REQUIREMENTS_ROW_PITCH_ALIGNMENT_EXT 0x1290 3430*3cc25752SFrank Piva #define CL_IMAGE_REQUIREMENTS_SIZE_EXT 0x12B2 3431*3cc25752SFrank Piva #define CL_IMAGE_REQUIREMENTS_MAX_WIDTH_EXT 0x12B3 3432*3cc25752SFrank Piva #define CL_IMAGE_REQUIREMENTS_MAX_HEIGHT_EXT 0x12B4 3433*3cc25752SFrank Piva #define CL_IMAGE_REQUIREMENTS_MAX_DEPTH_EXT 0x12B5 3434*3cc25752SFrank Piva #define CL_IMAGE_REQUIREMENTS_MAX_ARRAY_SIZE_EXT 0x12B6 3435*3cc25752SFrank Piva 3436*3cc25752SFrank Piva /* Enqueued Commands APIs */ 3437*3cc25752SFrank Piva 3438*3cc25752SFrank Piva typedef cl_int CL_API_CALL 3439*3cc25752SFrank Piva clGetImageRequirementsInfoEXT_t( 3440*3cc25752SFrank Piva cl_context context, 3441*3cc25752SFrank Piva const cl_mem_properties* properties, 3442*3cc25752SFrank Piva cl_mem_flags flags, 3443*3cc25752SFrank Piva const cl_image_format* image_format, 3444*3cc25752SFrank Piva const cl_image_desc* image_desc, 3445*3cc25752SFrank Piva cl_image_requirements_info_ext param_name, 3446*3cc25752SFrank Piva size_t param_value_size, 3447*3cc25752SFrank Piva void* param_value, 3448*3cc25752SFrank Piva size_t* param_value_size_ret); 3449*3cc25752SFrank Piva 3450*3cc25752SFrank Piva typedef clGetImageRequirementsInfoEXT_t * 3451*3cc25752SFrank Piva clGetImageRequirementsInfoEXT_fn CL_API_SUFFIX__VERSION_3_0; 3452*3cc25752SFrank Piva 3453*3cc25752SFrank Piva #if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) 3454*3cc25752SFrank Piva 3455*3cc25752SFrank Piva extern CL_API_ENTRY cl_int CL_API_CALL 3456*3cc25752SFrank Piva clGetImageRequirementsInfoEXT( 3457*3cc25752SFrank Piva cl_context context, 3458*3cc25752SFrank Piva const cl_mem_properties* properties, 3459*3cc25752SFrank Piva cl_mem_flags flags, 3460*3cc25752SFrank Piva const cl_image_format* image_format, 3461*3cc25752SFrank Piva const cl_image_desc* image_desc, 3462*3cc25752SFrank Piva cl_image_requirements_info_ext param_name, 3463*3cc25752SFrank Piva size_t param_value_size, 3464*3cc25752SFrank Piva void* param_value, 3465*3cc25752SFrank Piva size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_3_0; 3466*3cc25752SFrank Piva 3467*3cc25752SFrank Piva #endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ 3468*3cc25752SFrank Piva 3469*3cc25752SFrank Piva #endif /* defined(CL_VERSION_3_0) */ 3470*3cc25752SFrank Piva 3471*3cc25752SFrank Piva /*************************************************************** 3472*3cc25752SFrank Piva * cl_ext_image_from_buffer 3473*3cc25752SFrank Piva ***************************************************************/ 3474*3cc25752SFrank Piva #if defined(CL_VERSION_3_0) 3475*3cc25752SFrank Piva 3476*3cc25752SFrank Piva #define cl_ext_image_from_buffer 1 3477*3cc25752SFrank Piva #define CL_EXT_IMAGE_FROM_BUFFER_EXTENSION_NAME \ 3478*3cc25752SFrank Piva "cl_ext_image_from_buffer" 3479*3cc25752SFrank Piva 3480*3cc25752SFrank Piva /* cl_image_requirements_info_ext */ 3481*3cc25752SFrank Piva #define CL_IMAGE_REQUIREMENTS_SLICE_PITCH_ALIGNMENT_EXT 0x1291 3482*3cc25752SFrank Piva 3483*3cc25752SFrank Piva #endif /* defined(CL_VERSION_3_0) */ 3484*3cc25752SFrank Piva 3485*3cc25752SFrank Piva /*************************************************************** 3486*3cc25752SFrank Piva * cl_loader_info 3487*3cc25752SFrank Piva ***************************************************************/ 3488*3cc25752SFrank Piva #define cl_loader_info 1 3489*3cc25752SFrank Piva #define CL_LOADER_INFO_EXTENSION_NAME \ 3490*3cc25752SFrank Piva "cl_loader_info" 3491*3cc25752SFrank Piva 3492*3cc25752SFrank Piva typedef cl_uint cl_icdl_info; 3493*3cc25752SFrank Piva 3494*3cc25752SFrank Piva /* cl_icdl_info */ 3495*3cc25752SFrank Piva #define CL_ICDL_OCL_VERSION 1 3496*3cc25752SFrank Piva #define CL_ICDL_VERSION 2 3497*3cc25752SFrank Piva #define CL_ICDL_NAME 3 3498*3cc25752SFrank Piva #define CL_ICDL_VENDOR 4 3499*3cc25752SFrank Piva 3500*3cc25752SFrank Piva 3501*3cc25752SFrank Piva typedef cl_int CL_API_CALL 3502*3cc25752SFrank Piva clGetICDLoaderInfoOCLICD_t( 3503*3cc25752SFrank Piva cl_icdl_info param_name, 3504*3cc25752SFrank Piva size_t param_value_size, 3505*3cc25752SFrank Piva void* param_value, 3506*3cc25752SFrank Piva size_t* param_value_size_ret); 3507*3cc25752SFrank Piva 3508*3cc25752SFrank Piva typedef clGetICDLoaderInfoOCLICD_t * 3509*3cc25752SFrank Piva clGetICDLoaderInfoOCLICD_fn ; 3510*3cc25752SFrank Piva 3511*3cc25752SFrank Piva #if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) 3512*3cc25752SFrank Piva 3513*3cc25752SFrank Piva extern CL_API_ENTRY cl_int CL_API_CALL 3514*3cc25752SFrank Piva clGetICDLoaderInfoOCLICD( 3515*3cc25752SFrank Piva cl_icdl_info param_name, 3516*3cc25752SFrank Piva size_t param_value_size, 3517*3cc25752SFrank Piva void* param_value, 3518*3cc25752SFrank Piva size_t* param_value_size_ret) ; 3519*3cc25752SFrank Piva 3520*3cc25752SFrank Piva #endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ 3521*3cc25752SFrank Piva 3522*3cc25752SFrank Piva /*************************************************************** 3523*3cc25752SFrank Piva * cl_khr_depth_images 3524*3cc25752SFrank Piva ***************************************************************/ 3525*3cc25752SFrank Piva #define cl_khr_depth_images 1 3526*3cc25752SFrank Piva #define CL_KHR_DEPTH_IMAGES_EXTENSION_NAME \ 3527*3cc25752SFrank Piva "cl_khr_depth_images" 3528*3cc25752SFrank Piva 3529*3cc25752SFrank Piva #if !defined(CL_VERSION_2_0) 3530*3cc25752SFrank Piva /* cl_channel_order - defined in CL.h for OpenCL 2.0 and newer */ 3531*3cc25752SFrank Piva #define CL_DEPTH 0x10BD 3532*3cc25752SFrank Piva 3533*3cc25752SFrank Piva #endif /* !defined(CL_VERSION_2_0) */ 3534*3cc25752SFrank Piva 3535*3cc25752SFrank Piva /*************************************************************** 3536*3cc25752SFrank Piva * cl_ext_float_atomics 3537*3cc25752SFrank Piva ***************************************************************/ 3538*3cc25752SFrank Piva #define cl_ext_float_atomics 1 3539*3cc25752SFrank Piva #define CL_EXT_FLOAT_ATOMICS_EXTENSION_NAME \ 3540*3cc25752SFrank Piva "cl_ext_float_atomics" 3541*3cc25752SFrank Piva 3542*3cc25752SFrank Piva typedef cl_bitfield cl_device_fp_atomic_capabilities_ext; 3543*3cc25752SFrank Piva 3544*3cc25752SFrank Piva /* cl_device_fp_atomic_capabilities_ext */ 3545*3cc25752SFrank Piva #define CL_DEVICE_GLOBAL_FP_ATOMIC_LOAD_STORE_EXT (1 << 0) 3546*3cc25752SFrank Piva #define CL_DEVICE_GLOBAL_FP_ATOMIC_ADD_EXT (1 << 1) 3547*3cc25752SFrank Piva #define CL_DEVICE_GLOBAL_FP_ATOMIC_MIN_MAX_EXT (1 << 2) 3548*3cc25752SFrank Piva #define CL_DEVICE_LOCAL_FP_ATOMIC_LOAD_STORE_EXT (1 << 16) 3549*3cc25752SFrank Piva #define CL_DEVICE_LOCAL_FP_ATOMIC_ADD_EXT (1 << 17) 3550*3cc25752SFrank Piva #define CL_DEVICE_LOCAL_FP_ATOMIC_MIN_MAX_EXT (1 << 18) 3551*3cc25752SFrank Piva 3552*3cc25752SFrank Piva /* cl_device_info */ 3553*3cc25752SFrank Piva #define CL_DEVICE_SINGLE_FP_ATOMIC_CAPABILITIES_EXT 0x4231 3554*3cc25752SFrank Piva #define CL_DEVICE_DOUBLE_FP_ATOMIC_CAPABILITIES_EXT 0x4232 3555*3cc25752SFrank Piva #define CL_DEVICE_HALF_FP_ATOMIC_CAPABILITIES_EXT 0x4233 3556*3cc25752SFrank Piva 3557*3cc25752SFrank Piva /*************************************************************** 3558*3cc25752SFrank Piva * cl_intel_create_mem_object_properties 3559*3cc25752SFrank Piva ***************************************************************/ 3560*3cc25752SFrank Piva #define cl_intel_create_mem_object_properties 1 3561*3cc25752SFrank Piva #define CL_INTEL_CREATE_MEM_OBJECT_PROPERTIES_EXTENSION_NAME \ 3562*3cc25752SFrank Piva "cl_intel_create_mem_object_properties" 3563*3cc25752SFrank Piva 3564*3cc25752SFrank Piva /* cl_mem_properties */ 3565*3cc25752SFrank Piva #define CL_MEM_LOCALLY_UNCACHED_RESOURCE_INTEL 0x4218 3566*3cc25752SFrank Piva #define CL_MEM_DEVICE_ID_INTEL 0x4219 3567*3cc25752SFrank Piva 3568*3cc25752SFrank Piva /*************************************************************** 3569*3cc25752SFrank Piva * cl_pocl_content_size 3570*3cc25752SFrank Piva ***************************************************************/ 3571*3cc25752SFrank Piva #define cl_pocl_content_size 1 3572*3cc25752SFrank Piva #define CL_POCL_CONTENT_SIZE_EXTENSION_NAME \ 3573*3cc25752SFrank Piva "cl_pocl_content_size" 3574*3cc25752SFrank Piva 3575*3cc25752SFrank Piva 3576*3cc25752SFrank Piva typedef cl_int CL_API_CALL 3577*3cc25752SFrank Piva clSetContentSizeBufferPoCL_t( 3578*3cc25752SFrank Piva cl_mem buffer, 3579*3cc25752SFrank Piva cl_mem content_size_buffer); 3580*3cc25752SFrank Piva 3581*3cc25752SFrank Piva typedef clSetContentSizeBufferPoCL_t * 3582*3cc25752SFrank Piva clSetContentSizeBufferPoCL_fn CL_API_SUFFIX__VERSION_1_0; 3583*3cc25752SFrank Piva 3584*3cc25752SFrank Piva #if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) 3585*3cc25752SFrank Piva 3586*3cc25752SFrank Piva extern CL_API_ENTRY cl_int CL_API_CALL 3587*3cc25752SFrank Piva clSetContentSizeBufferPoCL( 3588*3cc25752SFrank Piva cl_mem buffer, 3589*3cc25752SFrank Piva cl_mem content_size_buffer) CL_API_SUFFIX__VERSION_1_0; 3590*3cc25752SFrank Piva 3591*3cc25752SFrank Piva #endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ 3592*3cc25752SFrank Piva 3593*3cc25752SFrank Piva /*************************************************************** 3594*3cc25752SFrank Piva * cl_ext_image_raw10_raw12 3595*3cc25752SFrank Piva ***************************************************************/ 3596*3cc25752SFrank Piva #define cl_ext_image_raw10_raw12 1 3597*3cc25752SFrank Piva #define CL_EXT_IMAGE_RAW10_RAW12_EXTENSION_NAME \ 3598*3cc25752SFrank Piva "cl_ext_image_raw10_raw12" 3599*3cc25752SFrank Piva 3600*3cc25752SFrank Piva /* cl_channel_type */ 3601*3cc25752SFrank Piva #define CL_UNSIGNED_INT_RAW10_EXT 0x10E3 3602*3cc25752SFrank Piva #define CL_UNSIGNED_INT_RAW12_EXT 0x10E4 3603*3cc25752SFrank Piva 3604*3cc25752SFrank Piva #ifdef __cplusplus 3605*3cc25752SFrank Piva } 3606*3cc25752SFrank Piva #endif 3607*3cc25752SFrank Piva 3608*3cc25752SFrank Piva #endif /* OPENCL_CL_EXT_H_ */ 3609