1848b8605Smrg/******************************************************************************* 2b8e80941Smrg * Copyright (c) 2008-2019 The Khronos Group Inc. 3848b8605Smrg * 4848b8605Smrg * Permission is hereby granted, free of charge, to any person obtaining a 5848b8605Smrg * copy of this software and/or associated documentation files (the 6848b8605Smrg * "Materials"), to deal in the Materials without restriction, including 7848b8605Smrg * without limitation the rights to use, copy, modify, merge, publish, 8848b8605Smrg * distribute, sublicense, and/or sell copies of the Materials, and to 9848b8605Smrg * permit persons to whom the Materials are furnished to do so, subject to 10848b8605Smrg * the following conditions: 11848b8605Smrg * 12848b8605Smrg * The above copyright notice and this permission notice shall be included 13848b8605Smrg * in all copies or substantial portions of the Materials. 14848b8605Smrg * 15b8e80941Smrg * MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS 16b8e80941Smrg * KHRONOS STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS 17b8e80941Smrg * SPECIFICATIONS AND HEADER INFORMATION ARE LOCATED AT 18b8e80941Smrg * https://www.khronos.org/registry/ 19b8e80941Smrg * 20848b8605Smrg * THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 21848b8605Smrg * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 22848b8605Smrg * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 23848b8605Smrg * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 24848b8605Smrg * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 25848b8605Smrg * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 26848b8605Smrg * MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. 27848b8605Smrg ******************************************************************************/ 28848b8605Smrg 29848b8605Smrg#ifndef __OPENCL_CL_H 30848b8605Smrg#define __OPENCL_CL_H 31848b8605Smrg 32b8e80941Smrg#include <CL/cl_version.h> 33848b8605Smrg#include <CL/cl_platform.h> 34848b8605Smrg 35848b8605Smrg#ifdef __cplusplus 36848b8605Smrgextern "C" { 37848b8605Smrg#endif 38848b8605Smrg 39848b8605Smrg/******************************************************************************/ 40848b8605Smrg 41848b8605Smrgtypedef struct _cl_platform_id * cl_platform_id; 42848b8605Smrgtypedef struct _cl_device_id * cl_device_id; 43848b8605Smrgtypedef struct _cl_context * cl_context; 44848b8605Smrgtypedef struct _cl_command_queue * cl_command_queue; 45848b8605Smrgtypedef struct _cl_mem * cl_mem; 46848b8605Smrgtypedef struct _cl_program * cl_program; 47848b8605Smrgtypedef struct _cl_kernel * cl_kernel; 48848b8605Smrgtypedef struct _cl_event * cl_event; 49848b8605Smrgtypedef struct _cl_sampler * cl_sampler; 50848b8605Smrg 51b8e80941Smrgtypedef cl_uint cl_bool; /* WARNING! Unlike cl_ types in cl_platform.h, cl_bool is not guaranteed to be the same size as the bool in kernels. */ 52848b8605Smrgtypedef cl_ulong cl_bitfield; 53848b8605Smrgtypedef cl_bitfield cl_device_type; 54848b8605Smrgtypedef cl_uint cl_platform_info; 55848b8605Smrgtypedef cl_uint cl_device_info; 56848b8605Smrgtypedef cl_bitfield cl_device_fp_config; 57848b8605Smrgtypedef cl_uint cl_device_mem_cache_type; 58848b8605Smrgtypedef cl_uint cl_device_local_mem_type; 59848b8605Smrgtypedef cl_bitfield cl_device_exec_capabilities; 60b8e80941Smrg#ifdef CL_VERSION_2_0 61b8e80941Smrgtypedef cl_bitfield cl_device_svm_capabilities; 62b8e80941Smrg#endif 63848b8605Smrgtypedef cl_bitfield cl_command_queue_properties; 64b8e80941Smrg#ifdef CL_VERSION_1_2 65848b8605Smrgtypedef intptr_t cl_device_partition_property; 66848b8605Smrgtypedef cl_bitfield cl_device_affinity_domain; 67b8e80941Smrg#endif 68848b8605Smrg 69848b8605Smrgtypedef intptr_t cl_context_properties; 70848b8605Smrgtypedef cl_uint cl_context_info; 71b8e80941Smrg#ifdef CL_VERSION_2_0 72b8e80941Smrgtypedef cl_bitfield cl_queue_properties; 73b8e80941Smrg#endif 74848b8605Smrgtypedef cl_uint cl_command_queue_info; 75848b8605Smrgtypedef cl_uint cl_channel_order; 76848b8605Smrgtypedef cl_uint cl_channel_type; 77848b8605Smrgtypedef cl_bitfield cl_mem_flags; 78b8e80941Smrg#ifdef CL_VERSION_2_0 79b8e80941Smrgtypedef cl_bitfield cl_svm_mem_flags; 80b8e80941Smrg#endif 81848b8605Smrgtypedef cl_uint cl_mem_object_type; 82848b8605Smrgtypedef cl_uint cl_mem_info; 83b8e80941Smrg#ifdef CL_VERSION_1_2 84848b8605Smrgtypedef cl_bitfield cl_mem_migration_flags; 85b8e80941Smrg#endif 86848b8605Smrgtypedef cl_uint cl_image_info; 87b8e80941Smrg#ifdef CL_VERSION_1_1 88848b8605Smrgtypedef cl_uint cl_buffer_create_type; 89b8e80941Smrg#endif 90848b8605Smrgtypedef cl_uint cl_addressing_mode; 91848b8605Smrgtypedef cl_uint cl_filter_mode; 92848b8605Smrgtypedef cl_uint cl_sampler_info; 93848b8605Smrgtypedef cl_bitfield cl_map_flags; 94b8e80941Smrg#ifdef CL_VERSION_2_0 95b8e80941Smrgtypedef intptr_t cl_pipe_properties; 96b8e80941Smrgtypedef cl_uint cl_pipe_info; 97b8e80941Smrg#endif 98848b8605Smrgtypedef cl_uint cl_program_info; 99848b8605Smrgtypedef cl_uint cl_program_build_info; 100b8e80941Smrg#ifdef CL_VERSION_1_2 101848b8605Smrgtypedef cl_uint cl_program_binary_type; 102b8e80941Smrg#endif 103848b8605Smrgtypedef cl_int cl_build_status; 104848b8605Smrgtypedef cl_uint cl_kernel_info; 105b8e80941Smrg#ifdef CL_VERSION_1_2 106848b8605Smrgtypedef cl_uint cl_kernel_arg_info; 107848b8605Smrgtypedef cl_uint cl_kernel_arg_address_qualifier; 108848b8605Smrgtypedef cl_uint cl_kernel_arg_access_qualifier; 109848b8605Smrgtypedef cl_bitfield cl_kernel_arg_type_qualifier; 110b8e80941Smrg#endif 111848b8605Smrgtypedef cl_uint cl_kernel_work_group_info; 112b8e80941Smrg#ifdef CL_VERSION_2_1 113b8e80941Smrgtypedef cl_uint cl_kernel_sub_group_info; 114b8e80941Smrg#endif 115848b8605Smrgtypedef cl_uint cl_event_info; 116848b8605Smrgtypedef cl_uint cl_command_type; 117848b8605Smrgtypedef cl_uint cl_profiling_info; 118b8e80941Smrg#ifdef CL_VERSION_2_0 119b8e80941Smrgtypedef cl_bitfield cl_sampler_properties; 120b8e80941Smrgtypedef cl_uint cl_kernel_exec_info; 121b8e80941Smrg#endif 122848b8605Smrg 123848b8605Smrgtypedef struct _cl_image_format { 124848b8605Smrg cl_channel_order image_channel_order; 125848b8605Smrg cl_channel_type image_channel_data_type; 126848b8605Smrg} cl_image_format; 127848b8605Smrg 128b8e80941Smrg#ifdef CL_VERSION_1_2 129b8e80941Smrg 130848b8605Smrgtypedef struct _cl_image_desc { 131848b8605Smrg cl_mem_object_type image_type; 132848b8605Smrg size_t image_width; 133848b8605Smrg size_t image_height; 134848b8605Smrg size_t image_depth; 135848b8605Smrg size_t image_array_size; 136848b8605Smrg size_t image_row_pitch; 137848b8605Smrg size_t image_slice_pitch; 138848b8605Smrg cl_uint num_mip_levels; 139848b8605Smrg cl_uint num_samples; 140b8e80941Smrg#ifdef __GNUC__ 141b8e80941Smrg __extension__ /* Prevents warnings about anonymous union in -pedantic builds */ 142b8e80941Smrg#endif 143b8e80941Smrg#ifdef _MSC_VER 144b8e80941Smrg#pragma warning( push ) 145b8e80941Smrg#pragma warning( disable : 4201 ) /* Prevents warning about nameless struct/union in /W4 /Za builds */ 146b8e80941Smrg#endif 147b8e80941Smrg union { 148b8e80941Smrg cl_mem buffer; 149b8e80941Smrg cl_mem mem_object; 150b8e80941Smrg }; 151b8e80941Smrg#ifdef _MSC_VER 152b8e80941Smrg#pragma warning( pop ) 153b8e80941Smrg#endif 154848b8605Smrg} cl_image_desc; 155848b8605Smrg 156b8e80941Smrg#endif 157b8e80941Smrg 158b8e80941Smrg#ifdef CL_VERSION_1_1 159b8e80941Smrg 160848b8605Smrgtypedef struct _cl_buffer_region { 161848b8605Smrg size_t origin; 162848b8605Smrg size_t size; 163848b8605Smrg} cl_buffer_region; 164848b8605Smrg 165b8e80941Smrg#endif 166848b8605Smrg 167848b8605Smrg/******************************************************************************/ 168848b8605Smrg 169848b8605Smrg/* Error Codes */ 170848b8605Smrg#define CL_SUCCESS 0 171848b8605Smrg#define CL_DEVICE_NOT_FOUND -1 172848b8605Smrg#define CL_DEVICE_NOT_AVAILABLE -2 173848b8605Smrg#define CL_COMPILER_NOT_AVAILABLE -3 174848b8605Smrg#define CL_MEM_OBJECT_ALLOCATION_FAILURE -4 175848b8605Smrg#define CL_OUT_OF_RESOURCES -5 176848b8605Smrg#define CL_OUT_OF_HOST_MEMORY -6 177848b8605Smrg#define CL_PROFILING_INFO_NOT_AVAILABLE -7 178848b8605Smrg#define CL_MEM_COPY_OVERLAP -8 179848b8605Smrg#define CL_IMAGE_FORMAT_MISMATCH -9 180848b8605Smrg#define CL_IMAGE_FORMAT_NOT_SUPPORTED -10 181848b8605Smrg#define CL_BUILD_PROGRAM_FAILURE -11 182848b8605Smrg#define CL_MAP_FAILURE -12 183b8e80941Smrg#ifdef CL_VERSION_1_1 184848b8605Smrg#define CL_MISALIGNED_SUB_BUFFER_OFFSET -13 185848b8605Smrg#define CL_EXEC_STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST -14 186b8e80941Smrg#endif 187b8e80941Smrg#ifdef CL_VERSION_1_2 188848b8605Smrg#define CL_COMPILE_PROGRAM_FAILURE -15 189848b8605Smrg#define CL_LINKER_NOT_AVAILABLE -16 190848b8605Smrg#define CL_LINK_PROGRAM_FAILURE -17 191848b8605Smrg#define CL_DEVICE_PARTITION_FAILED -18 192848b8605Smrg#define CL_KERNEL_ARG_INFO_NOT_AVAILABLE -19 193b8e80941Smrg#endif 194848b8605Smrg 195848b8605Smrg#define CL_INVALID_VALUE -30 196848b8605Smrg#define CL_INVALID_DEVICE_TYPE -31 197848b8605Smrg#define CL_INVALID_PLATFORM -32 198848b8605Smrg#define CL_INVALID_DEVICE -33 199848b8605Smrg#define CL_INVALID_CONTEXT -34 200848b8605Smrg#define CL_INVALID_QUEUE_PROPERTIES -35 201848b8605Smrg#define CL_INVALID_COMMAND_QUEUE -36 202848b8605Smrg#define CL_INVALID_HOST_PTR -37 203848b8605Smrg#define CL_INVALID_MEM_OBJECT -38 204848b8605Smrg#define CL_INVALID_IMAGE_FORMAT_DESCRIPTOR -39 205848b8605Smrg#define CL_INVALID_IMAGE_SIZE -40 206848b8605Smrg#define CL_INVALID_SAMPLER -41 207848b8605Smrg#define CL_INVALID_BINARY -42 208848b8605Smrg#define CL_INVALID_BUILD_OPTIONS -43 209848b8605Smrg#define CL_INVALID_PROGRAM -44 210848b8605Smrg#define CL_INVALID_PROGRAM_EXECUTABLE -45 211848b8605Smrg#define CL_INVALID_KERNEL_NAME -46 212848b8605Smrg#define CL_INVALID_KERNEL_DEFINITION -47 213848b8605Smrg#define CL_INVALID_KERNEL -48 214848b8605Smrg#define CL_INVALID_ARG_INDEX -49 215848b8605Smrg#define CL_INVALID_ARG_VALUE -50 216848b8605Smrg#define CL_INVALID_ARG_SIZE -51 217848b8605Smrg#define CL_INVALID_KERNEL_ARGS -52 218848b8605Smrg#define CL_INVALID_WORK_DIMENSION -53 219848b8605Smrg#define CL_INVALID_WORK_GROUP_SIZE -54 220848b8605Smrg#define CL_INVALID_WORK_ITEM_SIZE -55 221848b8605Smrg#define CL_INVALID_GLOBAL_OFFSET -56 222848b8605Smrg#define CL_INVALID_EVENT_WAIT_LIST -57 223848b8605Smrg#define CL_INVALID_EVENT -58 224848b8605Smrg#define CL_INVALID_OPERATION -59 225848b8605Smrg#define CL_INVALID_GL_OBJECT -60 226848b8605Smrg#define CL_INVALID_BUFFER_SIZE -61 227848b8605Smrg#define CL_INVALID_MIP_LEVEL -62 228848b8605Smrg#define CL_INVALID_GLOBAL_WORK_SIZE -63 229b8e80941Smrg#ifdef CL_VERSION_1_1 230848b8605Smrg#define CL_INVALID_PROPERTY -64 231b8e80941Smrg#endif 232b8e80941Smrg#ifdef CL_VERSION_1_2 233848b8605Smrg#define CL_INVALID_IMAGE_DESCRIPTOR -65 234848b8605Smrg#define CL_INVALID_COMPILER_OPTIONS -66 235848b8605Smrg#define CL_INVALID_LINKER_OPTIONS -67 236848b8605Smrg#define CL_INVALID_DEVICE_PARTITION_COUNT -68 237b8e80941Smrg#endif 238b8e80941Smrg#ifdef CL_VERSION_2_0 239b8e80941Smrg#define CL_INVALID_PIPE_SIZE -69 240b8e80941Smrg#define CL_INVALID_DEVICE_QUEUE -70 241b8e80941Smrg#endif 242b8e80941Smrg#ifdef CL_VERSION_2_2 243b8e80941Smrg#define CL_INVALID_SPEC_ID -71 244b8e80941Smrg#define CL_MAX_SIZE_RESTRICTION_EXCEEDED -72 245b8e80941Smrg#endif 246848b8605Smrg 247848b8605Smrg 248848b8605Smrg/* cl_bool */ 249848b8605Smrg#define CL_FALSE 0 250848b8605Smrg#define CL_TRUE 1 251b8e80941Smrg#ifdef CL_VERSION_1_2 252848b8605Smrg#define CL_BLOCKING CL_TRUE 253848b8605Smrg#define CL_NON_BLOCKING CL_FALSE 254b8e80941Smrg#endif 255848b8605Smrg 256848b8605Smrg/* cl_platform_info */ 257848b8605Smrg#define CL_PLATFORM_PROFILE 0x0900 258848b8605Smrg#define CL_PLATFORM_VERSION 0x0901 259848b8605Smrg#define CL_PLATFORM_NAME 0x0902 260848b8605Smrg#define CL_PLATFORM_VENDOR 0x0903 261848b8605Smrg#define CL_PLATFORM_EXTENSIONS 0x0904 262b8e80941Smrg#ifdef CL_VERSION_2_1 263b8e80941Smrg#define CL_PLATFORM_HOST_TIMER_RESOLUTION 0x0905 264b8e80941Smrg#endif 265848b8605Smrg 266848b8605Smrg/* cl_device_type - bitfield */ 267848b8605Smrg#define CL_DEVICE_TYPE_DEFAULT (1 << 0) 268848b8605Smrg#define CL_DEVICE_TYPE_CPU (1 << 1) 269848b8605Smrg#define CL_DEVICE_TYPE_GPU (1 << 2) 270848b8605Smrg#define CL_DEVICE_TYPE_ACCELERATOR (1 << 3) 271b8e80941Smrg#ifdef CL_VERSION_1_2 272848b8605Smrg#define CL_DEVICE_TYPE_CUSTOM (1 << 4) 273b8e80941Smrg#endif 274848b8605Smrg#define CL_DEVICE_TYPE_ALL 0xFFFFFFFF 275848b8605Smrg 276848b8605Smrg/* cl_device_info */ 277b8e80941Smrg#define CL_DEVICE_TYPE 0x1000 278b8e80941Smrg#define CL_DEVICE_VENDOR_ID 0x1001 279b8e80941Smrg#define CL_DEVICE_MAX_COMPUTE_UNITS 0x1002 280b8e80941Smrg#define CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS 0x1003 281b8e80941Smrg#define CL_DEVICE_MAX_WORK_GROUP_SIZE 0x1004 282b8e80941Smrg#define CL_DEVICE_MAX_WORK_ITEM_SIZES 0x1005 283b8e80941Smrg#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_CHAR 0x1006 284b8e80941Smrg#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_SHORT 0x1007 285b8e80941Smrg#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_INT 0x1008 286b8e80941Smrg#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_LONG 0x1009 287b8e80941Smrg#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT 0x100A 288b8e80941Smrg#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_DOUBLE 0x100B 289b8e80941Smrg#define CL_DEVICE_MAX_CLOCK_FREQUENCY 0x100C 290b8e80941Smrg#define CL_DEVICE_ADDRESS_BITS 0x100D 291b8e80941Smrg#define CL_DEVICE_MAX_READ_IMAGE_ARGS 0x100E 292b8e80941Smrg#define CL_DEVICE_MAX_WRITE_IMAGE_ARGS 0x100F 293b8e80941Smrg#define CL_DEVICE_MAX_MEM_ALLOC_SIZE 0x1010 294b8e80941Smrg#define CL_DEVICE_IMAGE2D_MAX_WIDTH 0x1011 295b8e80941Smrg#define CL_DEVICE_IMAGE2D_MAX_HEIGHT 0x1012 296b8e80941Smrg#define CL_DEVICE_IMAGE3D_MAX_WIDTH 0x1013 297b8e80941Smrg#define CL_DEVICE_IMAGE3D_MAX_HEIGHT 0x1014 298b8e80941Smrg#define CL_DEVICE_IMAGE3D_MAX_DEPTH 0x1015 299b8e80941Smrg#define CL_DEVICE_IMAGE_SUPPORT 0x1016 300b8e80941Smrg#define CL_DEVICE_MAX_PARAMETER_SIZE 0x1017 301b8e80941Smrg#define CL_DEVICE_MAX_SAMPLERS 0x1018 302b8e80941Smrg#define CL_DEVICE_MEM_BASE_ADDR_ALIGN 0x1019 303b8e80941Smrg#define CL_DEVICE_MIN_DATA_TYPE_ALIGN_SIZE 0x101A 304b8e80941Smrg#define CL_DEVICE_SINGLE_FP_CONFIG 0x101B 305b8e80941Smrg#define CL_DEVICE_GLOBAL_MEM_CACHE_TYPE 0x101C 306b8e80941Smrg#define CL_DEVICE_GLOBAL_MEM_CACHELINE_SIZE 0x101D 307b8e80941Smrg#define CL_DEVICE_GLOBAL_MEM_CACHE_SIZE 0x101E 308b8e80941Smrg#define CL_DEVICE_GLOBAL_MEM_SIZE 0x101F 309b8e80941Smrg#define CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE 0x1020 310b8e80941Smrg#define CL_DEVICE_MAX_CONSTANT_ARGS 0x1021 311b8e80941Smrg#define CL_DEVICE_LOCAL_MEM_TYPE 0x1022 312b8e80941Smrg#define CL_DEVICE_LOCAL_MEM_SIZE 0x1023 313b8e80941Smrg#define CL_DEVICE_ERROR_CORRECTION_SUPPORT 0x1024 314b8e80941Smrg#define CL_DEVICE_PROFILING_TIMER_RESOLUTION 0x1025 315b8e80941Smrg#define CL_DEVICE_ENDIAN_LITTLE 0x1026 316b8e80941Smrg#define CL_DEVICE_AVAILABLE 0x1027 317b8e80941Smrg#define CL_DEVICE_COMPILER_AVAILABLE 0x1028 318b8e80941Smrg#define CL_DEVICE_EXECUTION_CAPABILITIES 0x1029 319b8e80941Smrg#define CL_DEVICE_QUEUE_PROPERTIES 0x102A /* deprecated */ 320b8e80941Smrg#ifdef CL_VERSION_2_0 321b8e80941Smrg#define CL_DEVICE_QUEUE_ON_HOST_PROPERTIES 0x102A 322b8e80941Smrg#endif 323b8e80941Smrg#define CL_DEVICE_NAME 0x102B 324b8e80941Smrg#define CL_DEVICE_VENDOR 0x102C 325b8e80941Smrg#define CL_DRIVER_VERSION 0x102D 326b8e80941Smrg#define CL_DEVICE_PROFILE 0x102E 327b8e80941Smrg#define CL_DEVICE_VERSION 0x102F 328b8e80941Smrg#define CL_DEVICE_EXTENSIONS 0x1030 329b8e80941Smrg#define CL_DEVICE_PLATFORM 0x1031 330b8e80941Smrg#ifdef CL_VERSION_1_2 331b8e80941Smrg#define CL_DEVICE_DOUBLE_FP_CONFIG 0x1032 332b8e80941Smrg#endif 333b8e80941Smrg/* 0x1033 reserved for CL_DEVICE_HALF_FP_CONFIG which is already defined in "cl_ext.h" */ 334b8e80941Smrg#ifdef CL_VERSION_1_1 335b8e80941Smrg#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_HALF 0x1034 336b8e80941Smrg#define CL_DEVICE_HOST_UNIFIED_MEMORY 0x1035 /* deprecated */ 337b8e80941Smrg#define CL_DEVICE_NATIVE_VECTOR_WIDTH_CHAR 0x1036 338b8e80941Smrg#define CL_DEVICE_NATIVE_VECTOR_WIDTH_SHORT 0x1037 339b8e80941Smrg#define CL_DEVICE_NATIVE_VECTOR_WIDTH_INT 0x1038 340b8e80941Smrg#define CL_DEVICE_NATIVE_VECTOR_WIDTH_LONG 0x1039 341b8e80941Smrg#define CL_DEVICE_NATIVE_VECTOR_WIDTH_FLOAT 0x103A 342b8e80941Smrg#define CL_DEVICE_NATIVE_VECTOR_WIDTH_DOUBLE 0x103B 343b8e80941Smrg#define CL_DEVICE_NATIVE_VECTOR_WIDTH_HALF 0x103C 344b8e80941Smrg#define CL_DEVICE_OPENCL_C_VERSION 0x103D 345b8e80941Smrg#endif 346b8e80941Smrg#ifdef CL_VERSION_1_2 347b8e80941Smrg#define CL_DEVICE_LINKER_AVAILABLE 0x103E 348b8e80941Smrg#define CL_DEVICE_BUILT_IN_KERNELS 0x103F 349b8e80941Smrg#define CL_DEVICE_IMAGE_MAX_BUFFER_SIZE 0x1040 350b8e80941Smrg#define CL_DEVICE_IMAGE_MAX_ARRAY_SIZE 0x1041 351b8e80941Smrg#define CL_DEVICE_PARENT_DEVICE 0x1042 352b8e80941Smrg#define CL_DEVICE_PARTITION_MAX_SUB_DEVICES 0x1043 353b8e80941Smrg#define CL_DEVICE_PARTITION_PROPERTIES 0x1044 354b8e80941Smrg#define CL_DEVICE_PARTITION_AFFINITY_DOMAIN 0x1045 355b8e80941Smrg#define CL_DEVICE_PARTITION_TYPE 0x1046 356b8e80941Smrg#define CL_DEVICE_REFERENCE_COUNT 0x1047 357b8e80941Smrg#define CL_DEVICE_PREFERRED_INTEROP_USER_SYNC 0x1048 358b8e80941Smrg#define CL_DEVICE_PRINTF_BUFFER_SIZE 0x1049 359b8e80941Smrg#define CL_DEVICE_IMAGE_PITCH_ALIGNMENT 0x104A 360b8e80941Smrg#define CL_DEVICE_IMAGE_BASE_ADDRESS_ALIGNMENT 0x104B 361b8e80941Smrg#endif 362b8e80941Smrg#ifdef CL_VERSION_2_0 363b8e80941Smrg#define CL_DEVICE_MAX_READ_WRITE_IMAGE_ARGS 0x104C 364b8e80941Smrg#define CL_DEVICE_MAX_GLOBAL_VARIABLE_SIZE 0x104D 365b8e80941Smrg#define CL_DEVICE_QUEUE_ON_DEVICE_PROPERTIES 0x104E 366b8e80941Smrg#define CL_DEVICE_QUEUE_ON_DEVICE_PREFERRED_SIZE 0x104F 367b8e80941Smrg#define CL_DEVICE_QUEUE_ON_DEVICE_MAX_SIZE 0x1050 368b8e80941Smrg#define CL_DEVICE_MAX_ON_DEVICE_QUEUES 0x1051 369b8e80941Smrg#define CL_DEVICE_MAX_ON_DEVICE_EVENTS 0x1052 370b8e80941Smrg#define CL_DEVICE_SVM_CAPABILITIES 0x1053 371b8e80941Smrg#define CL_DEVICE_GLOBAL_VARIABLE_PREFERRED_TOTAL_SIZE 0x1054 372b8e80941Smrg#define CL_DEVICE_MAX_PIPE_ARGS 0x1055 373b8e80941Smrg#define CL_DEVICE_PIPE_MAX_ACTIVE_RESERVATIONS 0x1056 374b8e80941Smrg#define CL_DEVICE_PIPE_MAX_PACKET_SIZE 0x1057 375b8e80941Smrg#define CL_DEVICE_PREFERRED_PLATFORM_ATOMIC_ALIGNMENT 0x1058 376b8e80941Smrg#define CL_DEVICE_PREFERRED_GLOBAL_ATOMIC_ALIGNMENT 0x1059 377b8e80941Smrg#define CL_DEVICE_PREFERRED_LOCAL_ATOMIC_ALIGNMENT 0x105A 378b8e80941Smrg#endif 379b8e80941Smrg#ifdef CL_VERSION_2_1 380b8e80941Smrg#define CL_DEVICE_IL_VERSION 0x105B 381b8e80941Smrg#define CL_DEVICE_MAX_NUM_SUB_GROUPS 0x105C 382b8e80941Smrg#define CL_DEVICE_SUB_GROUP_INDEPENDENT_FORWARD_PROGRESS 0x105D 383b8e80941Smrg#endif 384848b8605Smrg 385848b8605Smrg/* cl_device_fp_config - bitfield */ 386848b8605Smrg#define CL_FP_DENORM (1 << 0) 387848b8605Smrg#define CL_FP_INF_NAN (1 << 1) 388848b8605Smrg#define CL_FP_ROUND_TO_NEAREST (1 << 2) 389848b8605Smrg#define CL_FP_ROUND_TO_ZERO (1 << 3) 390848b8605Smrg#define CL_FP_ROUND_TO_INF (1 << 4) 391848b8605Smrg#define CL_FP_FMA (1 << 5) 392b8e80941Smrg#ifdef CL_VERSION_1_1 393848b8605Smrg#define CL_FP_SOFT_FLOAT (1 << 6) 394b8e80941Smrg#endif 395b8e80941Smrg#ifdef CL_VERSION_1_2 396848b8605Smrg#define CL_FP_CORRECTLY_ROUNDED_DIVIDE_SQRT (1 << 7) 397b8e80941Smrg#endif 398848b8605Smrg 399848b8605Smrg/* cl_device_mem_cache_type */ 400848b8605Smrg#define CL_NONE 0x0 401848b8605Smrg#define CL_READ_ONLY_CACHE 0x1 402848b8605Smrg#define CL_READ_WRITE_CACHE 0x2 403848b8605Smrg 404848b8605Smrg/* cl_device_local_mem_type */ 405848b8605Smrg#define CL_LOCAL 0x1 406848b8605Smrg#define CL_GLOBAL 0x2 407848b8605Smrg 408848b8605Smrg/* cl_device_exec_capabilities - bitfield */ 409848b8605Smrg#define CL_EXEC_KERNEL (1 << 0) 410848b8605Smrg#define CL_EXEC_NATIVE_KERNEL (1 << 1) 411848b8605Smrg 412848b8605Smrg/* cl_command_queue_properties - bitfield */ 413848b8605Smrg#define CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE (1 << 0) 414848b8605Smrg#define CL_QUEUE_PROFILING_ENABLE (1 << 1) 415b8e80941Smrg#ifdef CL_VERSION_2_0 416b8e80941Smrg#define CL_QUEUE_ON_DEVICE (1 << 2) 417b8e80941Smrg#define CL_QUEUE_ON_DEVICE_DEFAULT (1 << 3) 418b8e80941Smrg#endif 419848b8605Smrg 420b8e80941Smrg/* cl_context_info */ 421848b8605Smrg#define CL_CONTEXT_REFERENCE_COUNT 0x1080 422848b8605Smrg#define CL_CONTEXT_DEVICES 0x1081 423848b8605Smrg#define CL_CONTEXT_PROPERTIES 0x1082 424b8e80941Smrg#ifdef CL_VERSION_1_1 425848b8605Smrg#define CL_CONTEXT_NUM_DEVICES 0x1083 426b8e80941Smrg#endif 427848b8605Smrg 428848b8605Smrg/* cl_context_properties */ 429848b8605Smrg#define CL_CONTEXT_PLATFORM 0x1084 430b8e80941Smrg#ifdef CL_VERSION_1_2 431848b8605Smrg#define CL_CONTEXT_INTEROP_USER_SYNC 0x1085 432b8e80941Smrg#endif 433b8e80941Smrg 434b8e80941Smrg#ifdef CL_VERSION_1_2 435b8e80941Smrg 436848b8605Smrg/* cl_device_partition_property */ 437848b8605Smrg#define CL_DEVICE_PARTITION_EQUALLY 0x1086 438848b8605Smrg#define CL_DEVICE_PARTITION_BY_COUNTS 0x1087 439848b8605Smrg#define CL_DEVICE_PARTITION_BY_COUNTS_LIST_END 0x0 440848b8605Smrg#define CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN 0x1088 441b8e80941Smrg 442b8e80941Smrg#endif 443b8e80941Smrg 444b8e80941Smrg#ifdef CL_VERSION_1_2 445b8e80941Smrg 446848b8605Smrg/* cl_device_affinity_domain */ 447b8e80941Smrg#define CL_DEVICE_AFFINITY_DOMAIN_NUMA (1 << 0) 448b8e80941Smrg#define CL_DEVICE_AFFINITY_DOMAIN_L4_CACHE (1 << 1) 449b8e80941Smrg#define CL_DEVICE_AFFINITY_DOMAIN_L3_CACHE (1 << 2) 450b8e80941Smrg#define CL_DEVICE_AFFINITY_DOMAIN_L2_CACHE (1 << 3) 451b8e80941Smrg#define CL_DEVICE_AFFINITY_DOMAIN_L1_CACHE (1 << 4) 452b8e80941Smrg#define CL_DEVICE_AFFINITY_DOMAIN_NEXT_PARTITIONABLE (1 << 5) 453b8e80941Smrg 454b8e80941Smrg#endif 455b8e80941Smrg 456b8e80941Smrg#ifdef CL_VERSION_2_0 457b8e80941Smrg 458b8e80941Smrg/* cl_device_svm_capabilities */ 459b8e80941Smrg#define CL_DEVICE_SVM_COARSE_GRAIN_BUFFER (1 << 0) 460b8e80941Smrg#define CL_DEVICE_SVM_FINE_GRAIN_BUFFER (1 << 1) 461b8e80941Smrg#define CL_DEVICE_SVM_FINE_GRAIN_SYSTEM (1 << 2) 462b8e80941Smrg#define CL_DEVICE_SVM_ATOMICS (1 << 3) 463b8e80941Smrg 464b8e80941Smrg#endif 465848b8605Smrg 466848b8605Smrg/* cl_command_queue_info */ 467848b8605Smrg#define CL_QUEUE_CONTEXT 0x1090 468848b8605Smrg#define CL_QUEUE_DEVICE 0x1091 469848b8605Smrg#define CL_QUEUE_REFERENCE_COUNT 0x1092 470848b8605Smrg#define CL_QUEUE_PROPERTIES 0x1093 471b8e80941Smrg#ifdef CL_VERSION_2_0 472b8e80941Smrg#define CL_QUEUE_SIZE 0x1094 473b8e80941Smrg#endif 474b8e80941Smrg#ifdef CL_VERSION_2_1 475b8e80941Smrg#define CL_QUEUE_DEVICE_DEFAULT 0x1095 476b8e80941Smrg#endif 477848b8605Smrg 478b8e80941Smrg/* cl_mem_flags and cl_svm_mem_flags - bitfield */ 479848b8605Smrg#define CL_MEM_READ_WRITE (1 << 0) 480848b8605Smrg#define CL_MEM_WRITE_ONLY (1 << 1) 481848b8605Smrg#define CL_MEM_READ_ONLY (1 << 2) 482848b8605Smrg#define CL_MEM_USE_HOST_PTR (1 << 3) 483848b8605Smrg#define CL_MEM_ALLOC_HOST_PTR (1 << 4) 484848b8605Smrg#define CL_MEM_COPY_HOST_PTR (1 << 5) 485848b8605Smrg/* reserved (1 << 6) */ 486b8e80941Smrg#ifdef CL_VERSION_1_2 487848b8605Smrg#define CL_MEM_HOST_WRITE_ONLY (1 << 7) 488848b8605Smrg#define CL_MEM_HOST_READ_ONLY (1 << 8) 489848b8605Smrg#define CL_MEM_HOST_NO_ACCESS (1 << 9) 490b8e80941Smrg#endif 491b8e80941Smrg#ifdef CL_VERSION_2_0 492b8e80941Smrg#define CL_MEM_SVM_FINE_GRAIN_BUFFER (1 << 10) /* used by cl_svm_mem_flags only */ 493b8e80941Smrg#define CL_MEM_SVM_ATOMICS (1 << 11) /* used by cl_svm_mem_flags only */ 494b8e80941Smrg#define CL_MEM_KERNEL_READ_AND_WRITE (1 << 12) 495b8e80941Smrg#endif 496b8e80941Smrg 497b8e80941Smrg#ifdef CL_VERSION_1_2 498848b8605Smrg 499848b8605Smrg/* cl_mem_migration_flags - bitfield */ 500848b8605Smrg#define CL_MIGRATE_MEM_OBJECT_HOST (1 << 0) 501848b8605Smrg#define CL_MIGRATE_MEM_OBJECT_CONTENT_UNDEFINED (1 << 1) 502848b8605Smrg 503b8e80941Smrg#endif 504b8e80941Smrg 505848b8605Smrg/* cl_channel_order */ 506848b8605Smrg#define CL_R 0x10B0 507848b8605Smrg#define CL_A 0x10B1 508848b8605Smrg#define CL_RG 0x10B2 509848b8605Smrg#define CL_RA 0x10B3 510848b8605Smrg#define CL_RGB 0x10B4 511848b8605Smrg#define CL_RGBA 0x10B5 512848b8605Smrg#define CL_BGRA 0x10B6 513848b8605Smrg#define CL_ARGB 0x10B7 514848b8605Smrg#define CL_INTENSITY 0x10B8 515848b8605Smrg#define CL_LUMINANCE 0x10B9 516b8e80941Smrg#ifdef CL_VERSION_1_1 517848b8605Smrg#define CL_Rx 0x10BA 518848b8605Smrg#define CL_RGx 0x10BB 519848b8605Smrg#define CL_RGBx 0x10BC 520b8e80941Smrg#endif 521b8e80941Smrg#ifdef CL_VERSION_1_2 522848b8605Smrg#define CL_DEPTH 0x10BD 523848b8605Smrg#define CL_DEPTH_STENCIL 0x10BE 524b8e80941Smrg#endif 525b8e80941Smrg#ifdef CL_VERSION_2_0 526b8e80941Smrg#define CL_sRGB 0x10BF 527b8e80941Smrg#define CL_sRGBx 0x10C0 528b8e80941Smrg#define CL_sRGBA 0x10C1 529b8e80941Smrg#define CL_sBGRA 0x10C2 530b8e80941Smrg#define CL_ABGR 0x10C3 531b8e80941Smrg#endif 532848b8605Smrg 533848b8605Smrg/* cl_channel_type */ 534848b8605Smrg#define CL_SNORM_INT8 0x10D0 535848b8605Smrg#define CL_SNORM_INT16 0x10D1 536848b8605Smrg#define CL_UNORM_INT8 0x10D2 537848b8605Smrg#define CL_UNORM_INT16 0x10D3 538848b8605Smrg#define CL_UNORM_SHORT_565 0x10D4 539848b8605Smrg#define CL_UNORM_SHORT_555 0x10D5 540848b8605Smrg#define CL_UNORM_INT_101010 0x10D6 541848b8605Smrg#define CL_SIGNED_INT8 0x10D7 542848b8605Smrg#define CL_SIGNED_INT16 0x10D8 543848b8605Smrg#define CL_SIGNED_INT32 0x10D9 544848b8605Smrg#define CL_UNSIGNED_INT8 0x10DA 545848b8605Smrg#define CL_UNSIGNED_INT16 0x10DB 546848b8605Smrg#define CL_UNSIGNED_INT32 0x10DC 547848b8605Smrg#define CL_HALF_FLOAT 0x10DD 548848b8605Smrg#define CL_FLOAT 0x10DE 549b8e80941Smrg#ifdef CL_VERSION_1_2 550848b8605Smrg#define CL_UNORM_INT24 0x10DF 551b8e80941Smrg#endif 552b8e80941Smrg#ifdef CL_VERSION_2_1 553b8e80941Smrg#define CL_UNORM_INT_101010_2 0x10E0 554b8e80941Smrg#endif 555848b8605Smrg 556848b8605Smrg/* cl_mem_object_type */ 557848b8605Smrg#define CL_MEM_OBJECT_BUFFER 0x10F0 558848b8605Smrg#define CL_MEM_OBJECT_IMAGE2D 0x10F1 559848b8605Smrg#define CL_MEM_OBJECT_IMAGE3D 0x10F2 560b8e80941Smrg#ifdef CL_VERSION_1_2 561848b8605Smrg#define CL_MEM_OBJECT_IMAGE2D_ARRAY 0x10F3 562848b8605Smrg#define CL_MEM_OBJECT_IMAGE1D 0x10F4 563848b8605Smrg#define CL_MEM_OBJECT_IMAGE1D_ARRAY 0x10F5 564848b8605Smrg#define CL_MEM_OBJECT_IMAGE1D_BUFFER 0x10F6 565b8e80941Smrg#endif 566b8e80941Smrg#ifdef CL_VERSION_2_0 567b8e80941Smrg#define CL_MEM_OBJECT_PIPE 0x10F7 568b8e80941Smrg#endif 569848b8605Smrg 570848b8605Smrg/* cl_mem_info */ 571848b8605Smrg#define CL_MEM_TYPE 0x1100 572848b8605Smrg#define CL_MEM_FLAGS 0x1101 573848b8605Smrg#define CL_MEM_SIZE 0x1102 574848b8605Smrg#define CL_MEM_HOST_PTR 0x1103 575848b8605Smrg#define CL_MEM_MAP_COUNT 0x1104 576848b8605Smrg#define CL_MEM_REFERENCE_COUNT 0x1105 577848b8605Smrg#define CL_MEM_CONTEXT 0x1106 578b8e80941Smrg#ifdef CL_VERSION_1_1 579848b8605Smrg#define CL_MEM_ASSOCIATED_MEMOBJECT 0x1107 580848b8605Smrg#define CL_MEM_OFFSET 0x1108 581b8e80941Smrg#endif 582b8e80941Smrg#ifdef CL_VERSION_2_0 583b8e80941Smrg#define CL_MEM_USES_SVM_POINTER 0x1109 584b8e80941Smrg#endif 585848b8605Smrg 586848b8605Smrg/* cl_image_info */ 587848b8605Smrg#define CL_IMAGE_FORMAT 0x1110 588848b8605Smrg#define CL_IMAGE_ELEMENT_SIZE 0x1111 589848b8605Smrg#define CL_IMAGE_ROW_PITCH 0x1112 590848b8605Smrg#define CL_IMAGE_SLICE_PITCH 0x1113 591848b8605Smrg#define CL_IMAGE_WIDTH 0x1114 592848b8605Smrg#define CL_IMAGE_HEIGHT 0x1115 593848b8605Smrg#define CL_IMAGE_DEPTH 0x1116 594b8e80941Smrg#ifdef CL_VERSION_1_2 595848b8605Smrg#define CL_IMAGE_ARRAY_SIZE 0x1117 596848b8605Smrg#define CL_IMAGE_BUFFER 0x1118 597848b8605Smrg#define CL_IMAGE_NUM_MIP_LEVELS 0x1119 598848b8605Smrg#define CL_IMAGE_NUM_SAMPLES 0x111A 599b8e80941Smrg#endif 600b8e80941Smrg 601b8e80941Smrg#ifdef CL_VERSION_2_0 602b8e80941Smrg 603b8e80941Smrg/* cl_pipe_info */ 604b8e80941Smrg#define CL_PIPE_PACKET_SIZE 0x1120 605b8e80941Smrg#define CL_PIPE_MAX_PACKETS 0x1121 606b8e80941Smrg 607b8e80941Smrg#endif 608848b8605Smrg 609848b8605Smrg/* cl_addressing_mode */ 610848b8605Smrg#define CL_ADDRESS_NONE 0x1130 611848b8605Smrg#define CL_ADDRESS_CLAMP_TO_EDGE 0x1131 612848b8605Smrg#define CL_ADDRESS_CLAMP 0x1132 613848b8605Smrg#define CL_ADDRESS_REPEAT 0x1133 614b8e80941Smrg#ifdef CL_VERSION_1_1 615848b8605Smrg#define CL_ADDRESS_MIRRORED_REPEAT 0x1134 616b8e80941Smrg#endif 617848b8605Smrg 618848b8605Smrg/* cl_filter_mode */ 619848b8605Smrg#define CL_FILTER_NEAREST 0x1140 620848b8605Smrg#define CL_FILTER_LINEAR 0x1141 621848b8605Smrg 622848b8605Smrg/* cl_sampler_info */ 623848b8605Smrg#define CL_SAMPLER_REFERENCE_COUNT 0x1150 624848b8605Smrg#define CL_SAMPLER_CONTEXT 0x1151 625848b8605Smrg#define CL_SAMPLER_NORMALIZED_COORDS 0x1152 626848b8605Smrg#define CL_SAMPLER_ADDRESSING_MODE 0x1153 627848b8605Smrg#define CL_SAMPLER_FILTER_MODE 0x1154 628b8e80941Smrg#ifdef CL_VERSION_2_0 629b8e80941Smrg/* These enumerants are for the cl_khr_mipmap_image extension. 630b8e80941Smrg They have since been added to cl_ext.h with an appropriate 631b8e80941Smrg KHR suffix, but are left here for backwards compatibility. */ 632b8e80941Smrg#define CL_SAMPLER_MIP_FILTER_MODE 0x1155 633b8e80941Smrg#define CL_SAMPLER_LOD_MIN 0x1156 634b8e80941Smrg#define CL_SAMPLER_LOD_MAX 0x1157 635b8e80941Smrg#endif 636848b8605Smrg 637848b8605Smrg/* cl_map_flags - bitfield */ 638848b8605Smrg#define CL_MAP_READ (1 << 0) 639848b8605Smrg#define CL_MAP_WRITE (1 << 1) 640b8e80941Smrg#ifdef CL_VERSION_1_2 641848b8605Smrg#define CL_MAP_WRITE_INVALIDATE_REGION (1 << 2) 642b8e80941Smrg#endif 643848b8605Smrg 644848b8605Smrg/* cl_program_info */ 645848b8605Smrg#define CL_PROGRAM_REFERENCE_COUNT 0x1160 646848b8605Smrg#define CL_PROGRAM_CONTEXT 0x1161 647848b8605Smrg#define CL_PROGRAM_NUM_DEVICES 0x1162 648848b8605Smrg#define CL_PROGRAM_DEVICES 0x1163 649848b8605Smrg#define CL_PROGRAM_SOURCE 0x1164 650848b8605Smrg#define CL_PROGRAM_BINARY_SIZES 0x1165 651848b8605Smrg#define CL_PROGRAM_BINARIES 0x1166 652b8e80941Smrg#ifdef CL_VERSION_1_2 653848b8605Smrg#define CL_PROGRAM_NUM_KERNELS 0x1167 654848b8605Smrg#define CL_PROGRAM_KERNEL_NAMES 0x1168 655b8e80941Smrg#endif 656b8e80941Smrg#ifdef CL_VERSION_2_1 657b8e80941Smrg#define CL_PROGRAM_IL 0x1169 658b8e80941Smrg#endif 659b8e80941Smrg#ifdef CL_VERSION_2_2 660b8e80941Smrg#define CL_PROGRAM_SCOPE_GLOBAL_CTORS_PRESENT 0x116A 661b8e80941Smrg#define CL_PROGRAM_SCOPE_GLOBAL_DTORS_PRESENT 0x116B 662b8e80941Smrg#endif 663848b8605Smrg 664848b8605Smrg/* cl_program_build_info */ 665848b8605Smrg#define CL_PROGRAM_BUILD_STATUS 0x1181 666848b8605Smrg#define CL_PROGRAM_BUILD_OPTIONS 0x1182 667848b8605Smrg#define CL_PROGRAM_BUILD_LOG 0x1183 668b8e80941Smrg#ifdef CL_VERSION_1_2 669848b8605Smrg#define CL_PROGRAM_BINARY_TYPE 0x1184 670b8e80941Smrg#endif 671b8e80941Smrg#ifdef CL_VERSION_2_0 672b8e80941Smrg#define CL_PROGRAM_BUILD_GLOBAL_VARIABLE_TOTAL_SIZE 0x1185 673b8e80941Smrg#endif 674b8e80941Smrg 675b8e80941Smrg#ifdef CL_VERSION_1_2 676b8e80941Smrg 677848b8605Smrg/* cl_program_binary_type */ 678848b8605Smrg#define CL_PROGRAM_BINARY_TYPE_NONE 0x0 679848b8605Smrg#define CL_PROGRAM_BINARY_TYPE_COMPILED_OBJECT 0x1 680848b8605Smrg#define CL_PROGRAM_BINARY_TYPE_LIBRARY 0x2 681848b8605Smrg#define CL_PROGRAM_BINARY_TYPE_EXECUTABLE 0x4 682848b8605Smrg 683b8e80941Smrg#endif 684b8e80941Smrg 685848b8605Smrg/* cl_build_status */ 686848b8605Smrg#define CL_BUILD_SUCCESS 0 687848b8605Smrg#define CL_BUILD_NONE -1 688848b8605Smrg#define CL_BUILD_ERROR -2 689848b8605Smrg#define CL_BUILD_IN_PROGRESS -3 690848b8605Smrg 691848b8605Smrg/* cl_kernel_info */ 692848b8605Smrg#define CL_KERNEL_FUNCTION_NAME 0x1190 693848b8605Smrg#define CL_KERNEL_NUM_ARGS 0x1191 694848b8605Smrg#define CL_KERNEL_REFERENCE_COUNT 0x1192 695848b8605Smrg#define CL_KERNEL_CONTEXT 0x1193 696848b8605Smrg#define CL_KERNEL_PROGRAM 0x1194 697b8e80941Smrg#ifdef CL_VERSION_1_2 698848b8605Smrg#define CL_KERNEL_ATTRIBUTES 0x1195 699b8e80941Smrg#endif 700b8e80941Smrg#ifdef CL_VERSION_2_1 701b8e80941Smrg#define CL_KERNEL_MAX_NUM_SUB_GROUPS 0x11B9 702b8e80941Smrg#define CL_KERNEL_COMPILE_NUM_SUB_GROUPS 0x11BA 703b8e80941Smrg#endif 704b8e80941Smrg 705b8e80941Smrg#ifdef CL_VERSION_1_2 706848b8605Smrg 707848b8605Smrg/* cl_kernel_arg_info */ 708848b8605Smrg#define CL_KERNEL_ARG_ADDRESS_QUALIFIER 0x1196 709848b8605Smrg#define CL_KERNEL_ARG_ACCESS_QUALIFIER 0x1197 710848b8605Smrg#define CL_KERNEL_ARG_TYPE_NAME 0x1198 711848b8605Smrg#define CL_KERNEL_ARG_TYPE_QUALIFIER 0x1199 712848b8605Smrg#define CL_KERNEL_ARG_NAME 0x119A 713848b8605Smrg 714b8e80941Smrg#endif 715b8e80941Smrg 716b8e80941Smrg#ifdef CL_VERSION_1_2 717b8e80941Smrg 718848b8605Smrg/* cl_kernel_arg_address_qualifier */ 719848b8605Smrg#define CL_KERNEL_ARG_ADDRESS_GLOBAL 0x119B 720848b8605Smrg#define CL_KERNEL_ARG_ADDRESS_LOCAL 0x119C 721848b8605Smrg#define CL_KERNEL_ARG_ADDRESS_CONSTANT 0x119D 722848b8605Smrg#define CL_KERNEL_ARG_ADDRESS_PRIVATE 0x119E 723848b8605Smrg 724b8e80941Smrg#endif 725b8e80941Smrg 726b8e80941Smrg#ifdef CL_VERSION_1_2 727b8e80941Smrg 728848b8605Smrg/* cl_kernel_arg_access_qualifier */ 729848b8605Smrg#define CL_KERNEL_ARG_ACCESS_READ_ONLY 0x11A0 730848b8605Smrg#define CL_KERNEL_ARG_ACCESS_WRITE_ONLY 0x11A1 731848b8605Smrg#define CL_KERNEL_ARG_ACCESS_READ_WRITE 0x11A2 732848b8605Smrg#define CL_KERNEL_ARG_ACCESS_NONE 0x11A3 733b8e80941Smrg 734b8e80941Smrg#endif 735b8e80941Smrg 736b8e80941Smrg#ifdef CL_VERSION_1_2 737b8e80941Smrg 738b8e80941Smrg/* cl_kernel_arg_type_qualifier */ 739848b8605Smrg#define CL_KERNEL_ARG_TYPE_NONE 0 740848b8605Smrg#define CL_KERNEL_ARG_TYPE_CONST (1 << 0) 741848b8605Smrg#define CL_KERNEL_ARG_TYPE_RESTRICT (1 << 1) 742848b8605Smrg#define CL_KERNEL_ARG_TYPE_VOLATILE (1 << 2) 743b8e80941Smrg#ifdef CL_VERSION_2_0 744b8e80941Smrg#define CL_KERNEL_ARG_TYPE_PIPE (1 << 3) 745b8e80941Smrg#endif 746b8e80941Smrg 747b8e80941Smrg#endif 748848b8605Smrg 749848b8605Smrg/* cl_kernel_work_group_info */ 750848b8605Smrg#define CL_KERNEL_WORK_GROUP_SIZE 0x11B0 751848b8605Smrg#define CL_KERNEL_COMPILE_WORK_GROUP_SIZE 0x11B1 752848b8605Smrg#define CL_KERNEL_LOCAL_MEM_SIZE 0x11B2 753848b8605Smrg#define CL_KERNEL_PREFERRED_WORK_GROUP_SIZE_MULTIPLE 0x11B3 754848b8605Smrg#define CL_KERNEL_PRIVATE_MEM_SIZE 0x11B4 755b8e80941Smrg#ifdef CL_VERSION_1_2 756848b8605Smrg#define CL_KERNEL_GLOBAL_WORK_SIZE 0x11B5 757b8e80941Smrg#endif 758b8e80941Smrg 759b8e80941Smrg#ifdef CL_VERSION_2_1 760848b8605Smrg 761b8e80941Smrg/* cl_kernel_sub_group_info */ 762b8e80941Smrg#define CL_KERNEL_MAX_SUB_GROUP_SIZE_FOR_NDRANGE 0x2033 763b8e80941Smrg#define CL_KERNEL_SUB_GROUP_COUNT_FOR_NDRANGE 0x2034 764b8e80941Smrg#define CL_KERNEL_LOCAL_SIZE_FOR_SUB_GROUP_COUNT 0x11B8 765b8e80941Smrg 766b8e80941Smrg#endif 767b8e80941Smrg 768b8e80941Smrg#ifdef CL_VERSION_2_0 769b8e80941Smrg 770b8e80941Smrg/* cl_kernel_exec_info */ 771b8e80941Smrg#define CL_KERNEL_EXEC_INFO_SVM_PTRS 0x11B6 772b8e80941Smrg#define CL_KERNEL_EXEC_INFO_SVM_FINE_GRAIN_SYSTEM 0x11B7 773b8e80941Smrg 774b8e80941Smrg#endif 775b8e80941Smrg 776b8e80941Smrg/* cl_event_info */ 777848b8605Smrg#define CL_EVENT_COMMAND_QUEUE 0x11D0 778848b8605Smrg#define CL_EVENT_COMMAND_TYPE 0x11D1 779848b8605Smrg#define CL_EVENT_REFERENCE_COUNT 0x11D2 780848b8605Smrg#define CL_EVENT_COMMAND_EXECUTION_STATUS 0x11D3 781b8e80941Smrg#ifdef CL_VERSION_1_1 782848b8605Smrg#define CL_EVENT_CONTEXT 0x11D4 783b8e80941Smrg#endif 784848b8605Smrg 785848b8605Smrg/* cl_command_type */ 786848b8605Smrg#define CL_COMMAND_NDRANGE_KERNEL 0x11F0 787848b8605Smrg#define CL_COMMAND_TASK 0x11F1 788848b8605Smrg#define CL_COMMAND_NATIVE_KERNEL 0x11F2 789848b8605Smrg#define CL_COMMAND_READ_BUFFER 0x11F3 790848b8605Smrg#define CL_COMMAND_WRITE_BUFFER 0x11F4 791848b8605Smrg#define CL_COMMAND_COPY_BUFFER 0x11F5 792848b8605Smrg#define CL_COMMAND_READ_IMAGE 0x11F6 793848b8605Smrg#define CL_COMMAND_WRITE_IMAGE 0x11F7 794848b8605Smrg#define CL_COMMAND_COPY_IMAGE 0x11F8 795848b8605Smrg#define CL_COMMAND_COPY_IMAGE_TO_BUFFER 0x11F9 796848b8605Smrg#define CL_COMMAND_COPY_BUFFER_TO_IMAGE 0x11FA 797848b8605Smrg#define CL_COMMAND_MAP_BUFFER 0x11FB 798848b8605Smrg#define CL_COMMAND_MAP_IMAGE 0x11FC 799848b8605Smrg#define CL_COMMAND_UNMAP_MEM_OBJECT 0x11FD 800848b8605Smrg#define CL_COMMAND_MARKER 0x11FE 801848b8605Smrg#define CL_COMMAND_ACQUIRE_GL_OBJECTS 0x11FF 802848b8605Smrg#define CL_COMMAND_RELEASE_GL_OBJECTS 0x1200 803b8e80941Smrg#ifdef CL_VERSION_1_1 804848b8605Smrg#define CL_COMMAND_READ_BUFFER_RECT 0x1201 805848b8605Smrg#define CL_COMMAND_WRITE_BUFFER_RECT 0x1202 806848b8605Smrg#define CL_COMMAND_COPY_BUFFER_RECT 0x1203 807848b8605Smrg#define CL_COMMAND_USER 0x1204 808b8e80941Smrg#endif 809b8e80941Smrg#ifdef CL_VERSION_1_2 810848b8605Smrg#define CL_COMMAND_BARRIER 0x1205 811848b8605Smrg#define CL_COMMAND_MIGRATE_MEM_OBJECTS 0x1206 812848b8605Smrg#define CL_COMMAND_FILL_BUFFER 0x1207 813848b8605Smrg#define CL_COMMAND_FILL_IMAGE 0x1208 814b8e80941Smrg#endif 815b8e80941Smrg#ifdef CL_VERSION_2_0 816b8e80941Smrg#define CL_COMMAND_SVM_FREE 0x1209 817b8e80941Smrg#define CL_COMMAND_SVM_MEMCPY 0x120A 818b8e80941Smrg#define CL_COMMAND_SVM_MEMFILL 0x120B 819b8e80941Smrg#define CL_COMMAND_SVM_MAP 0x120C 820b8e80941Smrg#define CL_COMMAND_SVM_UNMAP 0x120D 821b8e80941Smrg#endif 822848b8605Smrg 823848b8605Smrg/* command execution status */ 824848b8605Smrg#define CL_COMPLETE 0x0 825848b8605Smrg#define CL_RUNNING 0x1 826848b8605Smrg#define CL_SUBMITTED 0x2 827848b8605Smrg#define CL_QUEUED 0x3 828848b8605Smrg 829b8e80941Smrg#ifdef CL_VERSION_1_1 830b8e80941Smrg 831b8e80941Smrg/* cl_buffer_create_type */ 832848b8605Smrg#define CL_BUFFER_CREATE_TYPE_REGION 0x1220 833848b8605Smrg 834b8e80941Smrg#endif 835b8e80941Smrg 836b8e80941Smrg/* cl_profiling_info */ 837848b8605Smrg#define CL_PROFILING_COMMAND_QUEUED 0x1280 838848b8605Smrg#define CL_PROFILING_COMMAND_SUBMIT 0x1281 839848b8605Smrg#define CL_PROFILING_COMMAND_START 0x1282 840848b8605Smrg#define CL_PROFILING_COMMAND_END 0x1283 841b8e80941Smrg#ifdef CL_VERSION_2_0 842b8e80941Smrg#define CL_PROFILING_COMMAND_COMPLETE 0x1284 843b8e80941Smrg#endif 844848b8605Smrg 845848b8605Smrg/********************************************************************************************************/ 846848b8605Smrg 847848b8605Smrg/* Platform API */ 848848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL 849b8e80941SmrgclGetPlatformIDs(cl_uint num_entries, 850b8e80941Smrg cl_platform_id * platforms, 851b8e80941Smrg cl_uint * num_platforms) CL_API_SUFFIX__VERSION_1_0; 852848b8605Smrg 853b8e80941Smrgextern CL_API_ENTRY cl_int CL_API_CALL 854b8e80941SmrgclGetPlatformInfo(cl_platform_id platform, 855b8e80941Smrg cl_platform_info param_name, 856b8e80941Smrg size_t param_value_size, 857b8e80941Smrg void * param_value, 858b8e80941Smrg size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; 859848b8605Smrg 860848b8605Smrg/* Device APIs */ 861848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL 862b8e80941SmrgclGetDeviceIDs(cl_platform_id platform, 863b8e80941Smrg cl_device_type device_type, 864b8e80941Smrg cl_uint num_entries, 865b8e80941Smrg cl_device_id * devices, 866b8e80941Smrg cl_uint * num_devices) CL_API_SUFFIX__VERSION_1_0; 867b8e80941Smrg 868b8e80941Smrgextern CL_API_ENTRY cl_int CL_API_CALL 869b8e80941SmrgclGetDeviceInfo(cl_device_id device, 870b8e80941Smrg cl_device_info param_name, 871b8e80941Smrg size_t param_value_size, 872b8e80941Smrg void * param_value, 873b8e80941Smrg size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; 874b8e80941Smrg 875b8e80941Smrg#ifdef CL_VERSION_1_2 876848b8605Smrg 877848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL 878b8e80941SmrgclCreateSubDevices(cl_device_id in_device, 879b8e80941Smrg const cl_device_partition_property * properties, 880b8e80941Smrg cl_uint num_devices, 881b8e80941Smrg cl_device_id * out_devices, 882b8e80941Smrg cl_uint * num_devices_ret) CL_API_SUFFIX__VERSION_1_2; 883b8e80941Smrg 884848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL 885b8e80941SmrgclRetainDevice(cl_device_id device) CL_API_SUFFIX__VERSION_1_2; 886848b8605Smrg 887848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL 888b8e80941SmrgclReleaseDevice(cl_device_id device) CL_API_SUFFIX__VERSION_1_2; 889b8e80941Smrg 890b8e80941Smrg#endif 891b8e80941Smrg 892b8e80941Smrg#ifdef CL_VERSION_2_1 893b8e80941Smrg 894b8e80941Smrgextern CL_API_ENTRY cl_int CL_API_CALL 895b8e80941SmrgclSetDefaultDeviceCommandQueue(cl_context context, 896b8e80941Smrg cl_device_id device, 897b8e80941Smrg cl_command_queue command_queue) CL_API_SUFFIX__VERSION_2_1; 898b8e80941Smrg 899848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL 900b8e80941SmrgclGetDeviceAndHostTimer(cl_device_id device, 901b8e80941Smrg cl_ulong* device_timestamp, 902b8e80941Smrg cl_ulong* host_timestamp) CL_API_SUFFIX__VERSION_2_1; 903b8e80941Smrg 904b8e80941Smrgextern CL_API_ENTRY cl_int CL_API_CALL 905b8e80941SmrgclGetHostTimer(cl_device_id device, 906b8e80941Smrg cl_ulong * host_timestamp) CL_API_SUFFIX__VERSION_2_1; 907b8e80941Smrg 908b8e80941Smrg#endif 909b8e80941Smrg 910b8e80941Smrg/* Context APIs */ 911848b8605Smrgextern CL_API_ENTRY cl_context CL_API_CALL 912b8e80941SmrgclCreateContext(const cl_context_properties * properties, 913b8e80941Smrg cl_uint num_devices, 914b8e80941Smrg const cl_device_id * devices, 915b8e80941Smrg void (CL_CALLBACK * pfn_notify)(const char * errinfo, 916b8e80941Smrg const void * private_info, 917b8e80941Smrg size_t cb, 918b8e80941Smrg void * user_data), 919b8e80941Smrg void * user_data, 920b8e80941Smrg cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; 921848b8605Smrg 922848b8605Smrgextern CL_API_ENTRY cl_context CL_API_CALL 923b8e80941SmrgclCreateContextFromType(const cl_context_properties * properties, 924b8e80941Smrg cl_device_type device_type, 925b8e80941Smrg void (CL_CALLBACK * pfn_notify)(const char * errinfo, 926b8e80941Smrg const void * private_info, 927b8e80941Smrg size_t cb, 928b8e80941Smrg void * user_data), 929b8e80941Smrg void * user_data, 930b8e80941Smrg cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; 931848b8605Smrg 932848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL 933b8e80941SmrgclRetainContext(cl_context context) CL_API_SUFFIX__VERSION_1_0; 934848b8605Smrg 935848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL 936b8e80941SmrgclReleaseContext(cl_context context) CL_API_SUFFIX__VERSION_1_0; 937848b8605Smrg 938848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL 939b8e80941SmrgclGetContextInfo(cl_context context, 940b8e80941Smrg cl_context_info param_name, 941b8e80941Smrg size_t param_value_size, 942b8e80941Smrg void * param_value, 943b8e80941Smrg size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; 944848b8605Smrg 945848b8605Smrg/* Command Queue APIs */ 946b8e80941Smrg 947b8e80941Smrg#ifdef CL_VERSION_2_0 948b8e80941Smrg 949848b8605Smrgextern CL_API_ENTRY cl_command_queue CL_API_CALL 950b8e80941SmrgclCreateCommandQueueWithProperties(cl_context context, 951b8e80941Smrg cl_device_id device, 952b8e80941Smrg const cl_queue_properties * properties, 953b8e80941Smrg cl_int * errcode_ret) CL_API_SUFFIX__VERSION_2_0; 954b8e80941Smrg 955b8e80941Smrg#endif 956848b8605Smrg 957848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL 958b8e80941SmrgclRetainCommandQueue(cl_command_queue command_queue) CL_API_SUFFIX__VERSION_1_0; 959848b8605Smrg 960848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL 961b8e80941SmrgclReleaseCommandQueue(cl_command_queue command_queue) CL_API_SUFFIX__VERSION_1_0; 962848b8605Smrg 963848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL 964b8e80941SmrgclGetCommandQueueInfo(cl_command_queue command_queue, 965b8e80941Smrg cl_command_queue_info param_name, 966b8e80941Smrg size_t param_value_size, 967b8e80941Smrg void * param_value, 968b8e80941Smrg size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; 969848b8605Smrg 970848b8605Smrg/* Memory Object APIs */ 971848b8605Smrgextern CL_API_ENTRY cl_mem CL_API_CALL 972b8e80941SmrgclCreateBuffer(cl_context context, 973b8e80941Smrg cl_mem_flags flags, 974b8e80941Smrg size_t size, 975b8e80941Smrg void * host_ptr, 976b8e80941Smrg cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; 977b8e80941Smrg 978b8e80941Smrg#ifdef CL_VERSION_1_1 979848b8605Smrg 980848b8605Smrgextern CL_API_ENTRY cl_mem CL_API_CALL 981b8e80941SmrgclCreateSubBuffer(cl_mem buffer, 982b8e80941Smrg cl_mem_flags flags, 983b8e80941Smrg cl_buffer_create_type buffer_create_type, 984b8e80941Smrg const void * buffer_create_info, 985b8e80941Smrg cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_1; 986b8e80941Smrg 987b8e80941Smrg#endif 988b8e80941Smrg 989b8e80941Smrg#ifdef CL_VERSION_1_2 990b8e80941Smrg 991b8e80941Smrgextern CL_API_ENTRY cl_mem CL_API_CALL 992b8e80941SmrgclCreateImage(cl_context context, 993b8e80941Smrg cl_mem_flags flags, 994b8e80941Smrg const cl_image_format * image_format, 995b8e80941Smrg const cl_image_desc * image_desc, 996b8e80941Smrg void * host_ptr, 997b8e80941Smrg cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2; 998b8e80941Smrg 999b8e80941Smrg#endif 1000b8e80941Smrg 1001b8e80941Smrg#ifdef CL_VERSION_2_0 1002848b8605Smrg 1003848b8605Smrgextern CL_API_ENTRY cl_mem CL_API_CALL 1004b8e80941SmrgclCreatePipe(cl_context context, 1005b8e80941Smrg cl_mem_flags flags, 1006b8e80941Smrg cl_uint pipe_packet_size, 1007b8e80941Smrg cl_uint pipe_max_packets, 1008b8e80941Smrg const cl_pipe_properties * properties, 1009b8e80941Smrg cl_int * errcode_ret) CL_API_SUFFIX__VERSION_2_0; 1010b8e80941Smrg 1011b8e80941Smrg#endif 1012b8e80941Smrg 1013848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL 1014b8e80941SmrgclRetainMemObject(cl_mem memobj) CL_API_SUFFIX__VERSION_1_0; 1015848b8605Smrg 1016848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL 1017b8e80941SmrgclReleaseMemObject(cl_mem memobj) CL_API_SUFFIX__VERSION_1_0; 1018848b8605Smrg 1019848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL 1020b8e80941SmrgclGetSupportedImageFormats(cl_context context, 1021b8e80941Smrg cl_mem_flags flags, 1022b8e80941Smrg cl_mem_object_type image_type, 1023b8e80941Smrg cl_uint num_entries, 1024b8e80941Smrg cl_image_format * image_formats, 1025b8e80941Smrg cl_uint * num_image_formats) CL_API_SUFFIX__VERSION_1_0; 1026b8e80941Smrg 1027848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL 1028b8e80941SmrgclGetMemObjectInfo(cl_mem memobj, 1029b8e80941Smrg cl_mem_info param_name, 1030b8e80941Smrg size_t param_value_size, 1031b8e80941Smrg void * param_value, 1032b8e80941Smrg size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; 1033848b8605Smrg 1034848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL 1035b8e80941SmrgclGetImageInfo(cl_mem image, 1036b8e80941Smrg cl_image_info param_name, 1037b8e80941Smrg size_t param_value_size, 1038b8e80941Smrg void * param_value, 1039b8e80941Smrg size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; 1040b8e80941Smrg 1041b8e80941Smrg#ifdef CL_VERSION_2_0 1042848b8605Smrg 1043848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL 1044b8e80941SmrgclGetPipeInfo(cl_mem pipe, 1045b8e80941Smrg cl_pipe_info param_name, 1046b8e80941Smrg size_t param_value_size, 1047b8e80941Smrg void * param_value, 1048b8e80941Smrg size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_2_0; 1049b8e80941Smrg 1050b8e80941Smrg#endif 1051b8e80941Smrg 1052b8e80941Smrg#ifdef CL_VERSION_1_1 1053b8e80941Smrg 1054b8e80941Smrgextern CL_API_ENTRY cl_int CL_API_CALL 1055b8e80941SmrgclSetMemObjectDestructorCallback(cl_mem memobj, 1056b8e80941Smrg void (CL_CALLBACK * pfn_notify)(cl_mem memobj, 1057b8e80941Smrg void * user_data), 1058b8e80941Smrg void * user_data) CL_API_SUFFIX__VERSION_1_1; 1059b8e80941Smrg 1060b8e80941Smrg#endif 1061b8e80941Smrg 1062b8e80941Smrg/* SVM Allocation APIs */ 1063b8e80941Smrg 1064b8e80941Smrg#ifdef CL_VERSION_2_0 1065b8e80941Smrg 1066b8e80941Smrgextern CL_API_ENTRY void * CL_API_CALL 1067b8e80941SmrgclSVMAlloc(cl_context context, 1068b8e80941Smrg cl_svm_mem_flags flags, 1069b8e80941Smrg size_t size, 1070b8e80941Smrg cl_uint alignment) CL_API_SUFFIX__VERSION_2_0; 1071b8e80941Smrg 1072b8e80941Smrgextern CL_API_ENTRY void CL_API_CALL 1073b8e80941SmrgclSVMFree(cl_context context, 1074b8e80941Smrg void * svm_pointer) CL_API_SUFFIX__VERSION_2_0; 1075b8e80941Smrg 1076b8e80941Smrg#endif 1077848b8605Smrg 1078848b8605Smrg/* Sampler APIs */ 1079b8e80941Smrg 1080b8e80941Smrg#ifdef CL_VERSION_2_0 1081b8e80941Smrg 1082848b8605Smrgextern CL_API_ENTRY cl_sampler CL_API_CALL 1083b8e80941SmrgclCreateSamplerWithProperties(cl_context context, 1084b8e80941Smrg const cl_sampler_properties * sampler_properties, 1085b8e80941Smrg cl_int * errcode_ret) CL_API_SUFFIX__VERSION_2_0; 1086b8e80941Smrg 1087b8e80941Smrg#endif 1088848b8605Smrg 1089848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL 1090b8e80941SmrgclRetainSampler(cl_sampler sampler) CL_API_SUFFIX__VERSION_1_0; 1091848b8605Smrg 1092848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL 1093b8e80941SmrgclReleaseSampler(cl_sampler sampler) CL_API_SUFFIX__VERSION_1_0; 1094848b8605Smrg 1095848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL 1096b8e80941SmrgclGetSamplerInfo(cl_sampler sampler, 1097b8e80941Smrg cl_sampler_info param_name, 1098b8e80941Smrg size_t param_value_size, 1099b8e80941Smrg void * param_value, 1100b8e80941Smrg size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; 1101b8e80941Smrg 1102b8e80941Smrg/* Program Object APIs */ 1103848b8605Smrgextern CL_API_ENTRY cl_program CL_API_CALL 1104b8e80941SmrgclCreateProgramWithSource(cl_context context, 1105b8e80941Smrg cl_uint count, 1106b8e80941Smrg const char ** strings, 1107b8e80941Smrg const size_t * lengths, 1108b8e80941Smrg cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; 1109848b8605Smrg 1110848b8605Smrgextern CL_API_ENTRY cl_program CL_API_CALL 1111b8e80941SmrgclCreateProgramWithBinary(cl_context context, 1112b8e80941Smrg cl_uint num_devices, 1113b8e80941Smrg const cl_device_id * device_list, 1114b8e80941Smrg const size_t * lengths, 1115b8e80941Smrg const unsigned char ** binaries, 1116b8e80941Smrg cl_int * binary_status, 1117b8e80941Smrg cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; 1118b8e80941Smrg 1119b8e80941Smrg#ifdef CL_VERSION_1_2 1120848b8605Smrg 1121848b8605Smrgextern CL_API_ENTRY cl_program CL_API_CALL 1122b8e80941SmrgclCreateProgramWithBuiltInKernels(cl_context context, 1123b8e80941Smrg cl_uint num_devices, 1124b8e80941Smrg const cl_device_id * device_list, 1125b8e80941Smrg const char * kernel_names, 1126b8e80941Smrg cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2; 1127b8e80941Smrg 1128b8e80941Smrg#endif 1129b8e80941Smrg 1130b8e80941Smrg#ifdef CL_VERSION_2_1 1131b8e80941Smrg 1132b8e80941Smrgextern CL_API_ENTRY cl_program CL_API_CALL 1133b8e80941SmrgclCreateProgramWithIL(cl_context context, 1134b8e80941Smrg const void* il, 1135b8e80941Smrg size_t length, 1136b8e80941Smrg cl_int* errcode_ret) CL_API_SUFFIX__VERSION_2_1; 1137b8e80941Smrg 1138b8e80941Smrg#endif 1139848b8605Smrg 1140848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL 1141b8e80941SmrgclRetainProgram(cl_program program) CL_API_SUFFIX__VERSION_1_0; 1142848b8605Smrg 1143848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL 1144b8e80941SmrgclReleaseProgram(cl_program program) CL_API_SUFFIX__VERSION_1_0; 1145848b8605Smrg 1146848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL 1147b8e80941SmrgclBuildProgram(cl_program program, 1148b8e80941Smrg cl_uint num_devices, 1149b8e80941Smrg const cl_device_id * device_list, 1150b8e80941Smrg const char * options, 1151b8e80941Smrg void (CL_CALLBACK * pfn_notify)(cl_program program, 1152b8e80941Smrg void * user_data), 1153b8e80941Smrg void * user_data) CL_API_SUFFIX__VERSION_1_0; 1154b8e80941Smrg 1155b8e80941Smrg#ifdef CL_VERSION_1_2 1156848b8605Smrg 1157848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL 1158b8e80941SmrgclCompileProgram(cl_program program, 1159b8e80941Smrg cl_uint num_devices, 1160b8e80941Smrg const cl_device_id * device_list, 1161b8e80941Smrg const char * options, 1162b8e80941Smrg cl_uint num_input_headers, 1163b8e80941Smrg const cl_program * input_headers, 1164b8e80941Smrg const char ** header_include_names, 1165b8e80941Smrg void (CL_CALLBACK * pfn_notify)(cl_program program, 1166b8e80941Smrg void * user_data), 1167b8e80941Smrg void * user_data) CL_API_SUFFIX__VERSION_1_2; 1168848b8605Smrg 1169848b8605Smrgextern CL_API_ENTRY cl_program CL_API_CALL 1170b8e80941SmrgclLinkProgram(cl_context context, 1171b8e80941Smrg cl_uint num_devices, 1172b8e80941Smrg const cl_device_id * device_list, 1173b8e80941Smrg const char * options, 1174b8e80941Smrg cl_uint num_input_programs, 1175b8e80941Smrg const cl_program * input_programs, 1176b8e80941Smrg void (CL_CALLBACK * pfn_notify)(cl_program program, 1177b8e80941Smrg void * user_data), 1178b8e80941Smrg void * user_data, 1179b8e80941Smrg cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2; 1180b8e80941Smrg 1181b8e80941Smrg#endif 1182b8e80941Smrg 1183b8e80941Smrg#ifdef CL_VERSION_2_2 1184b8e80941Smrg 1185b8e80941Smrgextern CL_API_ENTRY cl_int CL_API_CALL 1186b8e80941SmrgclSetProgramReleaseCallback(cl_program program, 1187b8e80941Smrg void (CL_CALLBACK * pfn_notify)(cl_program program, 1188b8e80941Smrg void * user_data), 1189b8e80941Smrg void * user_data) CL_API_SUFFIX__VERSION_2_2; 1190b8e80941Smrg 1191b8e80941Smrgextern CL_API_ENTRY cl_int CL_API_CALL 1192b8e80941SmrgclSetProgramSpecializationConstant(cl_program program, 1193b8e80941Smrg cl_uint spec_id, 1194b8e80941Smrg size_t spec_size, 1195b8e80941Smrg const void* spec_value) CL_API_SUFFIX__VERSION_2_2; 1196b8e80941Smrg 1197b8e80941Smrg#endif 1198848b8605Smrg 1199b8e80941Smrg#ifdef CL_VERSION_1_2 1200848b8605Smrg 1201848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL 1202b8e80941SmrgclUnloadPlatformCompiler(cl_platform_id platform) CL_API_SUFFIX__VERSION_1_2; 1203b8e80941Smrg 1204b8e80941Smrg#endif 1205848b8605Smrg 1206848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL 1207b8e80941SmrgclGetProgramInfo(cl_program program, 1208b8e80941Smrg cl_program_info param_name, 1209b8e80941Smrg size_t param_value_size, 1210b8e80941Smrg void * param_value, 1211b8e80941Smrg size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; 1212848b8605Smrg 1213848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL 1214b8e80941SmrgclGetProgramBuildInfo(cl_program program, 1215b8e80941Smrg cl_device_id device, 1216b8e80941Smrg cl_program_build_info param_name, 1217b8e80941Smrg size_t param_value_size, 1218b8e80941Smrg void * param_value, 1219b8e80941Smrg size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; 1220b8e80941Smrg 1221848b8605Smrg/* Kernel Object APIs */ 1222848b8605Smrgextern CL_API_ENTRY cl_kernel CL_API_CALL 1223b8e80941SmrgclCreateKernel(cl_program program, 1224b8e80941Smrg const char * kernel_name, 1225b8e80941Smrg cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; 1226848b8605Smrg 1227848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL 1228b8e80941SmrgclCreateKernelsInProgram(cl_program program, 1229b8e80941Smrg cl_uint num_kernels, 1230b8e80941Smrg cl_kernel * kernels, 1231b8e80941Smrg cl_uint * num_kernels_ret) CL_API_SUFFIX__VERSION_1_0; 1232b8e80941Smrg 1233b8e80941Smrg#ifdef CL_VERSION_2_1 1234b8e80941Smrg 1235b8e80941Smrgextern CL_API_ENTRY cl_kernel CL_API_CALL 1236b8e80941SmrgclCloneKernel(cl_kernel source_kernel, 1237b8e80941Smrg cl_int* errcode_ret) CL_API_SUFFIX__VERSION_2_1; 1238b8e80941Smrg 1239b8e80941Smrg#endif 1240848b8605Smrg 1241848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL 1242b8e80941SmrgclRetainKernel(cl_kernel kernel) CL_API_SUFFIX__VERSION_1_0; 1243848b8605Smrg 1244848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL 1245b8e80941SmrgclReleaseKernel(cl_kernel kernel) CL_API_SUFFIX__VERSION_1_0; 1246848b8605Smrg 1247848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL 1248b8e80941SmrgclSetKernelArg(cl_kernel kernel, 1249b8e80941Smrg cl_uint arg_index, 1250b8e80941Smrg size_t arg_size, 1251b8e80941Smrg const void * arg_value) CL_API_SUFFIX__VERSION_1_0; 1252b8e80941Smrg 1253b8e80941Smrg#ifdef CL_VERSION_2_0 1254848b8605Smrg 1255848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL 1256b8e80941SmrgclSetKernelArgSVMPointer(cl_kernel kernel, 1257b8e80941Smrg cl_uint arg_index, 1258b8e80941Smrg const void * arg_value) CL_API_SUFFIX__VERSION_2_0; 1259848b8605Smrg 1260848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL 1261b8e80941SmrgclSetKernelExecInfo(cl_kernel kernel, 1262b8e80941Smrg cl_kernel_exec_info param_name, 1263b8e80941Smrg size_t param_value_size, 1264b8e80941Smrg const void * param_value) CL_API_SUFFIX__VERSION_2_0; 1265b8e80941Smrg 1266b8e80941Smrg#endif 1267b8e80941Smrg 1268b8e80941Smrgextern CL_API_ENTRY cl_int CL_API_CALL 1269b8e80941SmrgclGetKernelInfo(cl_kernel kernel, 1270b8e80941Smrg cl_kernel_info param_name, 1271b8e80941Smrg size_t param_value_size, 1272b8e80941Smrg void * param_value, 1273b8e80941Smrg size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; 1274b8e80941Smrg 1275b8e80941Smrg#ifdef CL_VERSION_1_2 1276848b8605Smrg 1277848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL 1278b8e80941SmrgclGetKernelArgInfo(cl_kernel kernel, 1279b8e80941Smrg cl_uint arg_indx, 1280b8e80941Smrg cl_kernel_arg_info param_name, 1281b8e80941Smrg size_t param_value_size, 1282b8e80941Smrg void * param_value, 1283b8e80941Smrg size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_2; 1284b8e80941Smrg 1285b8e80941Smrg#endif 1286b8e80941Smrg 1287b8e80941Smrgextern CL_API_ENTRY cl_int CL_API_CALL 1288b8e80941SmrgclGetKernelWorkGroupInfo(cl_kernel kernel, 1289b8e80941Smrg cl_device_id device, 1290b8e80941Smrg cl_kernel_work_group_info param_name, 1291b8e80941Smrg size_t param_value_size, 1292b8e80941Smrg void * param_value, 1293b8e80941Smrg size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; 1294b8e80941Smrg 1295b8e80941Smrg#ifdef CL_VERSION_2_1 1296b8e80941Smrg 1297b8e80941Smrgextern CL_API_ENTRY cl_int CL_API_CALL 1298b8e80941SmrgclGetKernelSubGroupInfo(cl_kernel kernel, 1299b8e80941Smrg cl_device_id device, 1300b8e80941Smrg cl_kernel_sub_group_info param_name, 1301b8e80941Smrg size_t input_value_size, 1302b8e80941Smrg const void* input_value, 1303b8e80941Smrg size_t param_value_size, 1304b8e80941Smrg void* param_value, 1305b8e80941Smrg size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_2_1; 1306b8e80941Smrg 1307b8e80941Smrg#endif 1308848b8605Smrg 1309848b8605Smrg/* Event Object APIs */ 1310848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL 1311b8e80941SmrgclWaitForEvents(cl_uint num_events, 1312b8e80941Smrg const cl_event * event_list) CL_API_SUFFIX__VERSION_1_0; 1313848b8605Smrg 1314848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL 1315b8e80941SmrgclGetEventInfo(cl_event event, 1316b8e80941Smrg cl_event_info param_name, 1317b8e80941Smrg size_t param_value_size, 1318b8e80941Smrg void * param_value, 1319b8e80941Smrg size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; 1320b8e80941Smrg 1321b8e80941Smrg#ifdef CL_VERSION_1_1 1322b8e80941Smrg 1323848b8605Smrgextern CL_API_ENTRY cl_event CL_API_CALL 1324b8e80941SmrgclCreateUserEvent(cl_context context, 1325b8e80941Smrg cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_1; 1326b8e80941Smrg 1327b8e80941Smrg#endif 1328b8e80941Smrg 1329848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL 1330b8e80941SmrgclRetainEvent(cl_event event) CL_API_SUFFIX__VERSION_1_0; 1331848b8605Smrg 1332848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL 1333b8e80941SmrgclReleaseEvent(cl_event event) CL_API_SUFFIX__VERSION_1_0; 1334b8e80941Smrg 1335b8e80941Smrg#ifdef CL_VERSION_1_1 1336848b8605Smrg 1337848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL 1338b8e80941SmrgclSetUserEventStatus(cl_event event, 1339b8e80941Smrg cl_int execution_status) CL_API_SUFFIX__VERSION_1_1; 1340b8e80941Smrg 1341848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL 1342b8e80941SmrgclSetEventCallback(cl_event event, 1343b8e80941Smrg cl_int command_exec_callback_type, 1344b8e80941Smrg void (CL_CALLBACK * pfn_notify)(cl_event event, 1345b8e80941Smrg cl_int event_command_status, 1346b8e80941Smrg void * user_data), 1347b8e80941Smrg void * user_data) CL_API_SUFFIX__VERSION_1_1; 1348b8e80941Smrg 1349b8e80941Smrg#endif 1350848b8605Smrg 1351848b8605Smrg/* Profiling APIs */ 1352848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL 1353b8e80941SmrgclGetEventProfilingInfo(cl_event event, 1354b8e80941Smrg cl_profiling_info param_name, 1355b8e80941Smrg size_t param_value_size, 1356b8e80941Smrg void * param_value, 1357b8e80941Smrg size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; 1358b8e80941Smrg 1359848b8605Smrg/* Flush and Finish APIs */ 1360848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL 1361b8e80941SmrgclFlush(cl_command_queue command_queue) CL_API_SUFFIX__VERSION_1_0; 1362848b8605Smrg 1363848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL 1364b8e80941SmrgclFinish(cl_command_queue command_queue) CL_API_SUFFIX__VERSION_1_0; 1365848b8605Smrg 1366848b8605Smrg/* Enqueued Commands APIs */ 1367848b8605Smrgextern CL_API_ENTRY cl_int CL_API_CALL 1368b8e80941SmrgclEnqueueReadBuffer(cl_command_queue command_queue, 1369b8e80941Smrg cl_mem buffer, 1370b8e80941Smrg cl_bool blocking_read, 1371b8e80941Smrg size_t offset, 1372b8e80941Smrg size_t size, 1373b8e80941Smrg void * ptr, 1374b8e80941Smrg cl_uint num_events_in_wait_list, 1375b8e80941Smrg const cl_event * event_wait_list, 1376b8e80941Smrg cl_event * event) CL_API_SUFFIX__VERSION_1_0; 1377b8e80941Smrg 1378b8e80941Smrg#ifdef CL_VERSION_1_1 1379b8e80941Smrg 1380b8e80941Smrgextern CL_API_ENTRY cl_int CL_API_CALL 1381b8e80941SmrgclEnqueueReadBufferRect(cl_command_queue command_queue, 1382b8e80941Smrg cl_mem buffer, 1383b8e80941Smrg cl_bool blocking_read, 1384b8e80941Smrg const size_t * buffer_offset, 1385b8e80941Smrg const size_t * host_offset, 1386b8e80941Smrg const size_t * region, 1387b8e80941Smrg size_t buffer_row_pitch, 1388b8e80941Smrg size_t buffer_slice_pitch, 1389b8e80941Smrg size_t host_row_pitch, 1390b8e80941Smrg size_t host_slice_pitch, 1391b8e80941Smrg void * ptr, 1392b8e80941Smrg cl_uint num_events_in_wait_list, 1393b8e80941Smrg const cl_event * event_wait_list, 1394b8e80941Smrg cl_event * event) CL_API_SUFFIX__VERSION_1_1; 1395b8e80941Smrg 1396b8e80941Smrg#endif 1397b8e80941Smrg 1398b8e80941Smrgextern CL_API_ENTRY cl_int CL_API_CALL 1399b8e80941SmrgclEnqueueWriteBuffer(cl_command_queue command_queue, 1400b8e80941Smrg cl_mem buffer, 1401b8e80941Smrg cl_bool blocking_write, 1402b8e80941Smrg size_t offset, 1403b8e80941Smrg size_t size, 1404b8e80941Smrg const void * ptr, 1405b8e80941Smrg cl_uint num_events_in_wait_list, 1406b8e80941Smrg const cl_event * event_wait_list, 1407b8e80941Smrg cl_event * event) CL_API_SUFFIX__VERSION_1_0; 1408b8e80941Smrg 1409b8e80941Smrg#ifdef CL_VERSION_1_1 1410b8e80941Smrg 1411b8e80941Smrgextern CL_API_ENTRY cl_int CL_API_CALL 1412b8e80941SmrgclEnqueueWriteBufferRect(cl_command_queue command_queue, 1413b8e80941Smrg cl_mem buffer, 1414b8e80941Smrg cl_bool blocking_write, 1415b8e80941Smrg const size_t * buffer_offset, 1416b8e80941Smrg const size_t * host_offset, 1417b8e80941Smrg const size_t * region, 1418b8e80941Smrg size_t buffer_row_pitch, 1419b8e80941Smrg size_t buffer_slice_pitch, 1420b8e80941Smrg size_t host_row_pitch, 1421b8e80941Smrg size_t host_slice_pitch, 1422b8e80941Smrg const void * ptr, 1423b8e80941Smrg cl_uint num_events_in_wait_list, 1424b8e80941Smrg const cl_event * event_wait_list, 1425b8e80941Smrg cl_event * event) CL_API_SUFFIX__VERSION_1_1; 1426b8e80941Smrg 1427b8e80941Smrg#endif 1428b8e80941Smrg 1429b8e80941Smrg#ifdef CL_VERSION_1_2 1430b8e80941Smrg 1431b8e80941Smrgextern CL_API_ENTRY cl_int CL_API_CALL 1432b8e80941SmrgclEnqueueFillBuffer(cl_command_queue command_queue, 1433b8e80941Smrg cl_mem buffer, 1434b8e80941Smrg const void * pattern, 1435b8e80941Smrg size_t pattern_size, 1436b8e80941Smrg size_t offset, 1437b8e80941Smrg size_t size, 1438b8e80941Smrg cl_uint num_events_in_wait_list, 1439b8e80941Smrg const cl_event * event_wait_list, 1440b8e80941Smrg cl_event * event) CL_API_SUFFIX__VERSION_1_2; 1441b8e80941Smrg 1442b8e80941Smrg#endif 1443b8e80941Smrg 1444b8e80941Smrgextern CL_API_ENTRY cl_int CL_API_CALL 1445b8e80941SmrgclEnqueueCopyBuffer(cl_command_queue command_queue, 1446b8e80941Smrg cl_mem src_buffer, 1447b8e80941Smrg cl_mem dst_buffer, 1448b8e80941Smrg size_t src_offset, 1449b8e80941Smrg size_t dst_offset, 1450b8e80941Smrg size_t size, 1451b8e80941Smrg cl_uint num_events_in_wait_list, 1452b8e80941Smrg const cl_event * event_wait_list, 1453b8e80941Smrg cl_event * event) CL_API_SUFFIX__VERSION_1_0; 1454b8e80941Smrg 1455b8e80941Smrg#ifdef CL_VERSION_1_1 1456b8e80941Smrg 1457b8e80941Smrgextern CL_API_ENTRY cl_int CL_API_CALL 1458b8e80941SmrgclEnqueueCopyBufferRect(cl_command_queue command_queue, 1459b8e80941Smrg cl_mem src_buffer, 1460b8e80941Smrg cl_mem dst_buffer, 1461b8e80941Smrg const size_t * src_origin, 1462b8e80941Smrg const size_t * dst_origin, 1463b8e80941Smrg const size_t * region, 1464b8e80941Smrg size_t src_row_pitch, 1465b8e80941Smrg size_t src_slice_pitch, 1466b8e80941Smrg size_t dst_row_pitch, 1467b8e80941Smrg size_t dst_slice_pitch, 1468b8e80941Smrg cl_uint num_events_in_wait_list, 1469b8e80941Smrg const cl_event * event_wait_list, 1470b8e80941Smrg cl_event * event) CL_API_SUFFIX__VERSION_1_1; 1471b8e80941Smrg 1472b8e80941Smrg#endif 1473b8e80941Smrg 1474b8e80941Smrgextern CL_API_ENTRY cl_int CL_API_CALL 1475b8e80941SmrgclEnqueueReadImage(cl_command_queue command_queue, 1476b8e80941Smrg cl_mem image, 1477b8e80941Smrg cl_bool blocking_read, 1478b8e80941Smrg const size_t * origin, 1479b8e80941Smrg const size_t * region, 1480b8e80941Smrg size_t row_pitch, 1481b8e80941Smrg size_t slice_pitch, 1482b8e80941Smrg void * ptr, 1483b8e80941Smrg cl_uint num_events_in_wait_list, 1484b8e80941Smrg const cl_event * event_wait_list, 1485b8e80941Smrg cl_event * event) CL_API_SUFFIX__VERSION_1_0; 1486b8e80941Smrg 1487b8e80941Smrgextern CL_API_ENTRY cl_int CL_API_CALL 1488b8e80941SmrgclEnqueueWriteImage(cl_command_queue command_queue, 1489b8e80941Smrg cl_mem image, 1490b8e80941Smrg cl_bool blocking_write, 1491b8e80941Smrg const size_t * origin, 1492b8e80941Smrg const size_t * region, 1493b8e80941Smrg size_t input_row_pitch, 1494b8e80941Smrg size_t input_slice_pitch, 1495b8e80941Smrg const void * ptr, 1496b8e80941Smrg cl_uint num_events_in_wait_list, 1497b8e80941Smrg const cl_event * event_wait_list, 1498b8e80941Smrg cl_event * event) CL_API_SUFFIX__VERSION_1_0; 1499b8e80941Smrg 1500b8e80941Smrg#ifdef CL_VERSION_1_2 1501b8e80941Smrg 1502b8e80941Smrgextern CL_API_ENTRY cl_int CL_API_CALL 1503b8e80941SmrgclEnqueueFillImage(cl_command_queue command_queue, 1504b8e80941Smrg cl_mem image, 1505b8e80941Smrg const void * fill_color, 1506b8e80941Smrg const size_t * origin, 1507b8e80941Smrg const size_t * region, 1508b8e80941Smrg cl_uint num_events_in_wait_list, 1509b8e80941Smrg const cl_event * event_wait_list, 1510b8e80941Smrg cl_event * event) CL_API_SUFFIX__VERSION_1_2; 1511b8e80941Smrg 1512b8e80941Smrg#endif 1513b8e80941Smrg 1514b8e80941Smrgextern CL_API_ENTRY cl_int CL_API_CALL 1515b8e80941SmrgclEnqueueCopyImage(cl_command_queue command_queue, 1516b8e80941Smrg cl_mem src_image, 1517b8e80941Smrg cl_mem dst_image, 1518b8e80941Smrg const size_t * src_origin, 1519b8e80941Smrg const size_t * dst_origin, 1520b8e80941Smrg const size_t * region, 1521b8e80941Smrg cl_uint num_events_in_wait_list, 1522b8e80941Smrg const cl_event * event_wait_list, 1523b8e80941Smrg cl_event * event) CL_API_SUFFIX__VERSION_1_0; 1524b8e80941Smrg 1525b8e80941Smrgextern CL_API_ENTRY cl_int CL_API_CALL 1526b8e80941SmrgclEnqueueCopyImageToBuffer(cl_command_queue command_queue, 1527b8e80941Smrg cl_mem src_image, 1528b8e80941Smrg cl_mem dst_buffer, 1529b8e80941Smrg const size_t * src_origin, 1530b8e80941Smrg const size_t * region, 1531b8e80941Smrg size_t dst_offset, 1532b8e80941Smrg cl_uint num_events_in_wait_list, 1533b8e80941Smrg const cl_event * event_wait_list, 1534b8e80941Smrg cl_event * event) CL_API_SUFFIX__VERSION_1_0; 1535b8e80941Smrg 1536b8e80941Smrgextern CL_API_ENTRY cl_int CL_API_CALL 1537b8e80941SmrgclEnqueueCopyBufferToImage(cl_command_queue command_queue, 1538b8e80941Smrg cl_mem src_buffer, 1539b8e80941Smrg cl_mem dst_image, 1540b8e80941Smrg size_t src_offset, 1541b8e80941Smrg const size_t * dst_origin, 1542b8e80941Smrg const size_t * region, 1543b8e80941Smrg cl_uint num_events_in_wait_list, 1544b8e80941Smrg const cl_event * event_wait_list, 1545b8e80941Smrg cl_event * event) CL_API_SUFFIX__VERSION_1_0; 1546848b8605Smrg 1547848b8605Smrgextern CL_API_ENTRY void * CL_API_CALL 1548b8e80941SmrgclEnqueueMapBuffer(cl_command_queue command_queue, 1549b8e80941Smrg cl_mem buffer, 1550b8e80941Smrg cl_bool blocking_map, 1551b8e80941Smrg cl_map_flags map_flags, 1552b8e80941Smrg size_t offset, 1553b8e80941Smrg size_t size, 1554b8e80941Smrg cl_uint num_events_in_wait_list, 1555b8e80941Smrg const cl_event * event_wait_list, 1556b8e80941Smrg cl_event * event, 1557b8e80941Smrg cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; 1558848b8605Smrg 1559848b8605Smrgextern CL_API_ENTRY void * CL_API_CALL 1560b8e80941SmrgclEnqueueMapImage(cl_command_queue command_queue, 1561b8e80941Smrg cl_mem image, 1562b8e80941Smrg cl_bool blocking_map, 1563b8e80941Smrg cl_map_flags map_flags, 1564b8e80941Smrg const size_t * origin, 1565b8e80941Smrg const size_t * region, 1566b8e80941Smrg size_t * image_row_pitch, 1567b8e80941Smrg size_t * image_slice_pitch, 1568b8e80941Smrg cl_uint num_events_in_wait_list, 1569b8e80941Smrg const cl_event * event_wait_list, 1570b8e80941Smrg cl_event * event, 1571b8e80941Smrg cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; 1572b8e80941Smrg 1573b8e80941Smrgextern CL_API_ENTRY cl_int CL_API_CALL 1574b8e80941SmrgclEnqueueUnmapMemObject(cl_command_queue command_queue, 1575b8e80941Smrg cl_mem memobj, 1576b8e80941Smrg void * mapped_ptr, 1577b8e80941Smrg cl_uint num_events_in_wait_list, 1578b8e80941Smrg const cl_event * event_wait_list, 1579b8e80941Smrg cl_event * event) CL_API_SUFFIX__VERSION_1_0; 1580b8e80941Smrg 1581b8e80941Smrg#ifdef CL_VERSION_1_2 1582b8e80941Smrg 1583b8e80941Smrgextern CL_API_ENTRY cl_int CL_API_CALL 1584b8e80941SmrgclEnqueueMigrateMemObjects(cl_command_queue command_queue, 1585b8e80941Smrg cl_uint num_mem_objects, 1586b8e80941Smrg const cl_mem * mem_objects, 1587b8e80941Smrg cl_mem_migration_flags flags, 1588b8e80941Smrg cl_uint num_events_in_wait_list, 1589b8e80941Smrg const cl_event * event_wait_list, 1590b8e80941Smrg cl_event * event) CL_API_SUFFIX__VERSION_1_2; 1591b8e80941Smrg 1592b8e80941Smrg#endif 1593b8e80941Smrg 1594b8e80941Smrgextern CL_API_ENTRY cl_int CL_API_CALL 1595b8e80941SmrgclEnqueueNDRangeKernel(cl_command_queue command_queue, 1596b8e80941Smrg cl_kernel kernel, 1597b8e80941Smrg cl_uint work_dim, 1598b8e80941Smrg const size_t * global_work_offset, 1599b8e80941Smrg const size_t * global_work_size, 1600b8e80941Smrg const size_t * local_work_size, 1601b8e80941Smrg cl_uint num_events_in_wait_list, 1602b8e80941Smrg const cl_event * event_wait_list, 1603b8e80941Smrg cl_event * event) CL_API_SUFFIX__VERSION_1_0; 1604b8e80941Smrg 1605b8e80941Smrgextern CL_API_ENTRY cl_int CL_API_CALL 1606b8e80941SmrgclEnqueueNativeKernel(cl_command_queue command_queue, 1607b8e80941Smrg void (CL_CALLBACK * user_func)(void *), 1608b8e80941Smrg void * args, 1609b8e80941Smrg size_t cb_args, 1610b8e80941Smrg cl_uint num_mem_objects, 1611b8e80941Smrg const cl_mem * mem_list, 1612b8e80941Smrg const void ** args_mem_loc, 1613b8e80941Smrg cl_uint num_events_in_wait_list, 1614b8e80941Smrg const cl_event * event_wait_list, 1615b8e80941Smrg cl_event * event) CL_API_SUFFIX__VERSION_1_0; 1616b8e80941Smrg 1617b8e80941Smrg#ifdef CL_VERSION_1_2 1618b8e80941Smrg 1619b8e80941Smrgextern CL_API_ENTRY cl_int CL_API_CALL 1620b8e80941SmrgclEnqueueMarkerWithWaitList(cl_command_queue command_queue, 1621b8e80941Smrg cl_uint num_events_in_wait_list, 1622b8e80941Smrg const cl_event * event_wait_list, 1623b8e80941Smrg cl_event * event) CL_API_SUFFIX__VERSION_1_2; 1624b8e80941Smrg 1625b8e80941Smrgextern CL_API_ENTRY cl_int CL_API_CALL 1626b8e80941SmrgclEnqueueBarrierWithWaitList(cl_command_queue command_queue, 1627b8e80941Smrg cl_uint num_events_in_wait_list, 1628b8e80941Smrg const cl_event * event_wait_list, 1629b8e80941Smrg cl_event * event) CL_API_SUFFIX__VERSION_1_2; 1630b8e80941Smrg 1631b8e80941Smrg#endif 1632b8e80941Smrg 1633b8e80941Smrg#ifdef CL_VERSION_2_0 1634b8e80941Smrg 1635b8e80941Smrgextern CL_API_ENTRY cl_int CL_API_CALL 1636b8e80941SmrgclEnqueueSVMFree(cl_command_queue command_queue, 1637b8e80941Smrg cl_uint num_svm_pointers, 1638b8e80941Smrg void * svm_pointers[], 1639b8e80941Smrg void (CL_CALLBACK * pfn_free_func)(cl_command_queue queue, 1640b8e80941Smrg cl_uint num_svm_pointers, 1641b8e80941Smrg void * svm_pointers[], 1642b8e80941Smrg void * user_data), 1643b8e80941Smrg void * user_data, 1644b8e80941Smrg cl_uint num_events_in_wait_list, 1645b8e80941Smrg const cl_event * event_wait_list, 1646b8e80941Smrg cl_event * event) CL_API_SUFFIX__VERSION_2_0; 1647b8e80941Smrg 1648b8e80941Smrgextern CL_API_ENTRY cl_int CL_API_CALL 1649b8e80941SmrgclEnqueueSVMMemcpy(cl_command_queue command_queue, 1650b8e80941Smrg cl_bool blocking_copy, 1651b8e80941Smrg void * dst_ptr, 1652b8e80941Smrg const void * src_ptr, 1653b8e80941Smrg size_t size, 1654b8e80941Smrg cl_uint num_events_in_wait_list, 1655b8e80941Smrg const cl_event * event_wait_list, 1656b8e80941Smrg cl_event * event) CL_API_SUFFIX__VERSION_2_0; 1657b8e80941Smrg 1658b8e80941Smrgextern CL_API_ENTRY cl_int CL_API_CALL 1659b8e80941SmrgclEnqueueSVMMemFill(cl_command_queue command_queue, 1660b8e80941Smrg void * svm_ptr, 1661b8e80941Smrg const void * pattern, 1662b8e80941Smrg size_t pattern_size, 1663b8e80941Smrg size_t size, 1664b8e80941Smrg cl_uint num_events_in_wait_list, 1665b8e80941Smrg const cl_event * event_wait_list, 1666b8e80941Smrg cl_event * event) CL_API_SUFFIX__VERSION_2_0; 1667b8e80941Smrg 1668b8e80941Smrgextern CL_API_ENTRY cl_int CL_API_CALL 1669b8e80941SmrgclEnqueueSVMMap(cl_command_queue command_queue, 1670b8e80941Smrg cl_bool blocking_map, 1671b8e80941Smrg cl_map_flags flags, 1672b8e80941Smrg void * svm_ptr, 1673b8e80941Smrg size_t size, 1674b8e80941Smrg cl_uint num_events_in_wait_list, 1675b8e80941Smrg const cl_event * event_wait_list, 1676b8e80941Smrg cl_event * event) CL_API_SUFFIX__VERSION_2_0; 1677b8e80941Smrg 1678b8e80941Smrgextern CL_API_ENTRY cl_int CL_API_CALL 1679b8e80941SmrgclEnqueueSVMUnmap(cl_command_queue command_queue, 1680b8e80941Smrg void * svm_ptr, 1681b8e80941Smrg cl_uint num_events_in_wait_list, 1682b8e80941Smrg const cl_event * event_wait_list, 1683b8e80941Smrg cl_event * event) CL_API_SUFFIX__VERSION_2_0; 1684848b8605Smrg 1685b8e80941Smrg#endif 1686b8e80941Smrg 1687b8e80941Smrg#ifdef CL_VERSION_2_1 1688b8e80941Smrg 1689b8e80941Smrgextern CL_API_ENTRY cl_int CL_API_CALL 1690b8e80941SmrgclEnqueueSVMMigrateMem(cl_command_queue command_queue, 1691b8e80941Smrg cl_uint num_svm_pointers, 1692b8e80941Smrg const void ** svm_pointers, 1693b8e80941Smrg const size_t * sizes, 1694b8e80941Smrg cl_mem_migration_flags flags, 1695b8e80941Smrg cl_uint num_events_in_wait_list, 1696b8e80941Smrg const cl_event * event_wait_list, 1697b8e80941Smrg cl_event * event) CL_API_SUFFIX__VERSION_2_1; 1698b8e80941Smrg 1699b8e80941Smrg#endif 1700b8e80941Smrg 1701b8e80941Smrg#ifdef CL_VERSION_1_2 1702848b8605Smrg 1703848b8605Smrg/* Extension function access 1704848b8605Smrg * 1705848b8605Smrg * Returns the extension function address for the given function name, 1706848b8605Smrg * or NULL if a valid function can not be found. The client must 1707b8e80941Smrg * check to make sure the address is not NULL, before using or 1708848b8605Smrg * calling the returned function address. 1709848b8605Smrg */ 1710b8e80941Smrgextern CL_API_ENTRY void * CL_API_CALL 1711b8e80941SmrgclGetExtensionFunctionAddressForPlatform(cl_platform_id platform, 1712b8e80941Smrg const char * func_name) CL_API_SUFFIX__VERSION_1_2; 1713b8e80941Smrg 1714b8e80941Smrg#endif 1715b8e80941Smrg 1716b8e80941Smrg#ifdef CL_USE_DEPRECATED_OPENCL_1_0_APIS 1717b8e80941Smrg /* 1718b8e80941Smrg * WARNING: 1719b8e80941Smrg * This API introduces mutable state into the OpenCL implementation. It has been REMOVED 1720b8e80941Smrg * to better facilitate thread safety. The 1.0 API is not thread safe. It is not tested by the 1721b8e80941Smrg * OpenCL 1.1 conformance test, and consequently may not work or may not work dependably. 1722b8e80941Smrg * It is likely to be non-performant. Use of this API is not advised. Use at your own risk. 1723b8e80941Smrg * 1724b8e80941Smrg * Software developers previously relying on this API are instructed to set the command queue 1725b8e80941Smrg * properties when creating the queue, instead. 1726b8e80941Smrg */ 1727b8e80941Smrg extern CL_API_ENTRY cl_int CL_API_CALL 1728b8e80941Smrg clSetCommandQueueProperty(cl_command_queue command_queue, 1729b8e80941Smrg cl_command_queue_properties properties, 1730b8e80941Smrg cl_bool enable, 1731b8e80941Smrg cl_command_queue_properties * old_properties) CL_EXT_SUFFIX__VERSION_1_0_DEPRECATED; 1732b8e80941Smrg#endif /* CL_USE_DEPRECATED_OPENCL_1_0_APIS */ 1733848b8605Smrg 1734848b8605Smrg/* Deprecated OpenCL 1.1 APIs */ 1735848b8605Smrgextern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED cl_mem CL_API_CALL 1736b8e80941SmrgclCreateImage2D(cl_context context, 1737b8e80941Smrg cl_mem_flags flags, 1738b8e80941Smrg const cl_image_format * image_format, 1739b8e80941Smrg size_t image_width, 1740b8e80941Smrg size_t image_height, 1741b8e80941Smrg size_t image_row_pitch, 1742b8e80941Smrg void * host_ptr, 1743b8e80941Smrg cl_int * errcode_ret) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED; 1744b8e80941Smrg 1745848b8605Smrgextern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED cl_mem CL_API_CALL 1746b8e80941SmrgclCreateImage3D(cl_context context, 1747b8e80941Smrg cl_mem_flags flags, 1748b8e80941Smrg const cl_image_format * image_format, 1749b8e80941Smrg size_t image_width, 1750b8e80941Smrg size_t image_height, 1751b8e80941Smrg size_t image_depth, 1752b8e80941Smrg size_t image_row_pitch, 1753b8e80941Smrg size_t image_slice_pitch, 1754b8e80941Smrg void * host_ptr, 1755b8e80941Smrg cl_int * errcode_ret) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED; 1756b8e80941Smrg 1757848b8605Smrgextern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED cl_int CL_API_CALL 1758b8e80941SmrgclEnqueueMarker(cl_command_queue command_queue, 1759b8e80941Smrg cl_event * event) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED; 1760b8e80941Smrg 1761848b8605Smrgextern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED cl_int CL_API_CALL 1762b8e80941SmrgclEnqueueWaitForEvents(cl_command_queue command_queue, 1763b8e80941Smrg cl_uint num_events, 1764b8e80941Smrg const cl_event * event_list) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED; 1765b8e80941Smrg 1766848b8605Smrgextern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED cl_int CL_API_CALL 1767b8e80941SmrgclEnqueueBarrier(cl_command_queue command_queue) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED; 1768848b8605Smrg 1769848b8605Smrgextern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED cl_int CL_API_CALL 1770848b8605SmrgclUnloadCompiler(void) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED; 1771b8e80941Smrg 1772848b8605Smrgextern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED void * CL_API_CALL 1773b8e80941SmrgclGetExtensionFunctionAddress(const char * func_name) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED; 1774b8e80941Smrg 1775b8e80941Smrg/* Deprecated OpenCL 2.0 APIs */ 1776b8e80941Smrgextern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_2_DEPRECATED cl_command_queue CL_API_CALL 1777b8e80941SmrgclCreateCommandQueue(cl_context context, 1778b8e80941Smrg cl_device_id device, 1779b8e80941Smrg cl_command_queue_properties properties, 1780b8e80941Smrg cl_int * errcode_ret) CL_EXT_SUFFIX__VERSION_1_2_DEPRECATED; 1781b8e80941Smrg 1782b8e80941Smrgextern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_2_DEPRECATED cl_sampler CL_API_CALL 1783b8e80941SmrgclCreateSampler(cl_context context, 1784b8e80941Smrg cl_bool normalized_coords, 1785b8e80941Smrg cl_addressing_mode addressing_mode, 1786b8e80941Smrg cl_filter_mode filter_mode, 1787b8e80941Smrg cl_int * errcode_ret) CL_EXT_SUFFIX__VERSION_1_2_DEPRECATED; 1788b8e80941Smrg 1789b8e80941Smrgextern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_2_DEPRECATED cl_int CL_API_CALL 1790b8e80941SmrgclEnqueueTask(cl_command_queue command_queue, 1791b8e80941Smrg cl_kernel kernel, 1792b8e80941Smrg cl_uint num_events_in_wait_list, 1793b8e80941Smrg const cl_event * event_wait_list, 1794b8e80941Smrg cl_event * event) CL_EXT_SUFFIX__VERSION_1_2_DEPRECATED; 1795848b8605Smrg 1796848b8605Smrg#ifdef __cplusplus 1797848b8605Smrg} 1798848b8605Smrg#endif 1799848b8605Smrg 1800848b8605Smrg#endif /* __OPENCL_CL_H */ 1801