From 93468d5d9f3e6ecb8b4d5c29ae62c4b65ae3cd16 Mon Sep 17 00:00:00 2001 From: Blaise Tine Date: Sat, 23 Nov 2019 00:28:43 -0500 Subject: [PATCH] update --- benchmarks/opencl/include/CL/cl.h | 1804 +++ benchmarks/opencl/include/CL/cl.hpp | 12459 ++++++++++++++++ benchmarks/opencl/include/CL/cl2.hpp | 10119 +++++++++++++ benchmarks/opencl/include/CL/cl_d3d10.h | 131 + benchmarks/opencl/include/CL/cl_d3d11.h | 131 + .../opencl/include/CL/cl_dx9_media_sharing.h | 132 + .../include/CL/cl_dx9_media_sharing_intel.h | 182 + benchmarks/opencl/include/CL/cl_egl.h | 132 + benchmarks/opencl/include/CL/cl_ext.h | 762 + benchmarks/opencl/include/CL/cl_ext_intel.h | 423 + benchmarks/opencl/include/CL/cl_gl.h | 171 + benchmarks/opencl/include/CL/cl_gl_ext.h | 52 + benchmarks/opencl/include/CL/cl_platform.h | 1384 ++ .../CL/cl_va_api_media_sharing_intel.h | 172 + benchmarks/opencl/include/CL/cl_version.h | 86 + benchmarks/opencl/include/CL/opencl.h | 47 + benchmarks/opencl/lib/libOpenCL.a | Bin 0 -> 8097038 bytes benchmarks/opencl/saxpy/Makefile | 11 +- benchmarks/opencl/saxpy/main.cc | 9 +- benchmarks/opencl/sgemm/Makefile | 11 +- benchmarks/opencl/vecadd/Makefile | 11 +- 21 files changed, 28205 insertions(+), 24 deletions(-) create mode 100644 benchmarks/opencl/include/CL/cl.h create mode 100644 benchmarks/opencl/include/CL/cl.hpp create mode 100644 benchmarks/opencl/include/CL/cl2.hpp create mode 100644 benchmarks/opencl/include/CL/cl_d3d10.h create mode 100644 benchmarks/opencl/include/CL/cl_d3d11.h create mode 100644 benchmarks/opencl/include/CL/cl_dx9_media_sharing.h create mode 100644 benchmarks/opencl/include/CL/cl_dx9_media_sharing_intel.h create mode 100644 benchmarks/opencl/include/CL/cl_egl.h create mode 100644 benchmarks/opencl/include/CL/cl_ext.h create mode 100644 benchmarks/opencl/include/CL/cl_ext_intel.h create mode 100644 benchmarks/opencl/include/CL/cl_gl.h create mode 100644 benchmarks/opencl/include/CL/cl_gl_ext.h create mode 100644 benchmarks/opencl/include/CL/cl_platform.h create mode 100644 benchmarks/opencl/include/CL/cl_va_api_media_sharing_intel.h create mode 100644 benchmarks/opencl/include/CL/cl_version.h create mode 100644 benchmarks/opencl/include/CL/opencl.h create mode 100644 benchmarks/opencl/lib/libOpenCL.a diff --git a/benchmarks/opencl/include/CL/cl.h b/benchmarks/opencl/include/CL/cl.h new file mode 100644 index 00000000..32ae73fc --- /dev/null +++ b/benchmarks/opencl/include/CL/cl.h @@ -0,0 +1,1804 @@ +/******************************************************************************* + * Copyright (c) 2008-2019 The Khronos Group Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and/or associated documentation files (the + * "Materials"), to deal in the Materials without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Materials, and to + * permit persons to whom the Materials are furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Materials. + * + * MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS + * KHRONOS STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS + * SPECIFICATIONS AND HEADER INFORMATION ARE LOCATED AT + * https://www.khronos.org/registry/ + * + * THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. + ******************************************************************************/ + +#ifndef __OPENCL_CL_H +#define __OPENCL_CL_H + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/******************************************************************************/ + +typedef struct _cl_platform_id * cl_platform_id; +typedef struct _cl_device_id * cl_device_id; +typedef struct _cl_context * cl_context; +typedef struct _cl_command_queue * cl_command_queue; +typedef struct _cl_mem * cl_mem; +typedef struct _cl_program * cl_program; +typedef struct _cl_kernel * cl_kernel; +typedef struct _cl_event * cl_event; +typedef struct _cl_sampler * cl_sampler; + +typedef 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. */ +typedef cl_ulong cl_bitfield; +typedef cl_bitfield cl_device_type; +typedef cl_uint cl_platform_info; +typedef cl_uint cl_device_info; +typedef cl_bitfield cl_device_fp_config; +typedef cl_uint cl_device_mem_cache_type; +typedef cl_uint cl_device_local_mem_type; +typedef cl_bitfield cl_device_exec_capabilities; +#ifdef CL_VERSION_2_0 +typedef cl_bitfield cl_device_svm_capabilities; +#endif +typedef cl_bitfield cl_command_queue_properties; +#ifdef CL_VERSION_1_2 +typedef intptr_t cl_device_partition_property; +typedef cl_bitfield cl_device_affinity_domain; +#endif + +typedef intptr_t cl_context_properties; +typedef cl_uint cl_context_info; +#ifdef CL_VERSION_2_0 +typedef cl_bitfield cl_queue_properties; +#endif +typedef cl_uint cl_command_queue_info; +typedef cl_uint cl_channel_order; +typedef cl_uint cl_channel_type; +typedef cl_bitfield cl_mem_flags; +#ifdef CL_VERSION_2_0 +typedef cl_bitfield cl_svm_mem_flags; +#endif +typedef cl_uint cl_mem_object_type; +typedef cl_uint cl_mem_info; +#ifdef CL_VERSION_1_2 +typedef cl_bitfield cl_mem_migration_flags; +#endif +typedef cl_uint cl_image_info; +#ifdef CL_VERSION_1_1 +typedef cl_uint cl_buffer_create_type; +#endif +typedef cl_uint cl_addressing_mode; +typedef cl_uint cl_filter_mode; +typedef cl_uint cl_sampler_info; +typedef cl_bitfield cl_map_flags; +#ifdef CL_VERSION_2_0 +typedef intptr_t cl_pipe_properties; +typedef cl_uint cl_pipe_info; +#endif +typedef cl_uint cl_program_info; +typedef cl_uint cl_program_build_info; +#ifdef CL_VERSION_1_2 +typedef cl_uint cl_program_binary_type; +#endif +typedef cl_int cl_build_status; +typedef cl_uint cl_kernel_info; +#ifdef CL_VERSION_1_2 +typedef cl_uint cl_kernel_arg_info; +typedef cl_uint cl_kernel_arg_address_qualifier; +typedef cl_uint cl_kernel_arg_access_qualifier; +typedef cl_bitfield cl_kernel_arg_type_qualifier; +#endif +typedef cl_uint cl_kernel_work_group_info; +#ifdef CL_VERSION_2_1 +typedef cl_uint cl_kernel_sub_group_info; +#endif +typedef cl_uint cl_event_info; +typedef cl_uint cl_command_type; +typedef cl_uint cl_profiling_info; +#ifdef CL_VERSION_2_0 +typedef cl_bitfield cl_sampler_properties; +typedef cl_uint cl_kernel_exec_info; +#endif + +typedef struct _cl_image_format { + cl_channel_order image_channel_order; + cl_channel_type image_channel_data_type; +} cl_image_format; + +#ifdef CL_VERSION_1_2 + +typedef struct _cl_image_desc { + cl_mem_object_type image_type; + size_t image_width; + size_t image_height; + size_t image_depth; + size_t image_array_size; + size_t image_row_pitch; + size_t image_slice_pitch; + cl_uint num_mip_levels; + cl_uint num_samples; +#ifdef CL_VERSION_2_0 +#ifdef __GNUC__ + __extension__ /* Prevents warnings about anonymous union in -pedantic builds */ +#endif +#ifdef _MSC_VER +#pragma warning( push ) +#pragma warning( disable : 4201 ) /* Prevents warning about nameless struct/union in /W4 /Za builds */ +#endif + union { +#endif + cl_mem buffer; +#ifdef CL_VERSION_2_0 + cl_mem mem_object; + }; +#ifdef _MSC_VER +#pragma warning( pop ) +#endif +#endif +} cl_image_desc; + +#endif + +#ifdef CL_VERSION_1_1 + +typedef struct _cl_buffer_region { + size_t origin; + size_t size; +} cl_buffer_region; + +#endif + +/******************************************************************************/ + +/* Error Codes */ +#define CL_SUCCESS 0 +#define CL_DEVICE_NOT_FOUND -1 +#define CL_DEVICE_NOT_AVAILABLE -2 +#define CL_COMPILER_NOT_AVAILABLE -3 +#define CL_MEM_OBJECT_ALLOCATION_FAILURE -4 +#define CL_OUT_OF_RESOURCES -5 +#define CL_OUT_OF_HOST_MEMORY -6 +#define CL_PROFILING_INFO_NOT_AVAILABLE -7 +#define CL_MEM_COPY_OVERLAP -8 +#define CL_IMAGE_FORMAT_MISMATCH -9 +#define CL_IMAGE_FORMAT_NOT_SUPPORTED -10 +#define CL_BUILD_PROGRAM_FAILURE -11 +#define CL_MAP_FAILURE -12 +#ifdef CL_VERSION_1_1 +#define CL_MISALIGNED_SUB_BUFFER_OFFSET -13 +#define CL_EXEC_STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST -14 +#endif +#ifdef CL_VERSION_1_2 +#define CL_COMPILE_PROGRAM_FAILURE -15 +#define CL_LINKER_NOT_AVAILABLE -16 +#define CL_LINK_PROGRAM_FAILURE -17 +#define CL_DEVICE_PARTITION_FAILED -18 +#define CL_KERNEL_ARG_INFO_NOT_AVAILABLE -19 +#endif + +#define CL_INVALID_VALUE -30 +#define CL_INVALID_DEVICE_TYPE -31 +#define CL_INVALID_PLATFORM -32 +#define CL_INVALID_DEVICE -33 +#define CL_INVALID_CONTEXT -34 +#define CL_INVALID_QUEUE_PROPERTIES -35 +#define CL_INVALID_COMMAND_QUEUE -36 +#define CL_INVALID_HOST_PTR -37 +#define CL_INVALID_MEM_OBJECT -38 +#define CL_INVALID_IMAGE_FORMAT_DESCRIPTOR -39 +#define CL_INVALID_IMAGE_SIZE -40 +#define CL_INVALID_SAMPLER -41 +#define CL_INVALID_BINARY -42 +#define CL_INVALID_BUILD_OPTIONS -43 +#define CL_INVALID_PROGRAM -44 +#define CL_INVALID_PROGRAM_EXECUTABLE -45 +#define CL_INVALID_KERNEL_NAME -46 +#define CL_INVALID_KERNEL_DEFINITION -47 +#define CL_INVALID_KERNEL -48 +#define CL_INVALID_ARG_INDEX -49 +#define CL_INVALID_ARG_VALUE -50 +#define CL_INVALID_ARG_SIZE -51 +#define CL_INVALID_KERNEL_ARGS -52 +#define CL_INVALID_WORK_DIMENSION -53 +#define CL_INVALID_WORK_GROUP_SIZE -54 +#define CL_INVALID_WORK_ITEM_SIZE -55 +#define CL_INVALID_GLOBAL_OFFSET -56 +#define CL_INVALID_EVENT_WAIT_LIST -57 +#define CL_INVALID_EVENT -58 +#define CL_INVALID_OPERATION -59 +#define CL_INVALID_GL_OBJECT -60 +#define CL_INVALID_BUFFER_SIZE -61 +#define CL_INVALID_MIP_LEVEL -62 +#define CL_INVALID_GLOBAL_WORK_SIZE -63 +#ifdef CL_VERSION_1_1 +#define CL_INVALID_PROPERTY -64 +#endif +#ifdef CL_VERSION_1_2 +#define CL_INVALID_IMAGE_DESCRIPTOR -65 +#define CL_INVALID_COMPILER_OPTIONS -66 +#define CL_INVALID_LINKER_OPTIONS -67 +#define CL_INVALID_DEVICE_PARTITION_COUNT -68 +#endif +#ifdef CL_VERSION_2_0 +#define CL_INVALID_PIPE_SIZE -69 +#define CL_INVALID_DEVICE_QUEUE -70 +#endif +#ifdef CL_VERSION_2_2 +#define CL_INVALID_SPEC_ID -71 +#define CL_MAX_SIZE_RESTRICTION_EXCEEDED -72 +#endif + + +/* cl_bool */ +#define CL_FALSE 0 +#define CL_TRUE 1 +#ifdef CL_VERSION_1_2 +#define CL_BLOCKING CL_TRUE +#define CL_NON_BLOCKING CL_FALSE +#endif + +/* cl_platform_info */ +#define CL_PLATFORM_PROFILE 0x0900 +#define CL_PLATFORM_VERSION 0x0901 +#define CL_PLATFORM_NAME 0x0902 +#define CL_PLATFORM_VENDOR 0x0903 +#define CL_PLATFORM_EXTENSIONS 0x0904 +#ifdef CL_VERSION_2_1 +#define CL_PLATFORM_HOST_TIMER_RESOLUTION 0x0905 +#endif + +/* cl_device_type - bitfield */ +#define CL_DEVICE_TYPE_DEFAULT (1 << 0) +#define CL_DEVICE_TYPE_CPU (1 << 1) +#define CL_DEVICE_TYPE_GPU (1 << 2) +#define CL_DEVICE_TYPE_ACCELERATOR (1 << 3) +#ifdef CL_VERSION_1_2 +#define CL_DEVICE_TYPE_CUSTOM (1 << 4) +#endif +#define CL_DEVICE_TYPE_ALL 0xFFFFFFFF + +/* cl_device_info */ +#define CL_DEVICE_TYPE 0x1000 +#define CL_DEVICE_VENDOR_ID 0x1001 +#define CL_DEVICE_MAX_COMPUTE_UNITS 0x1002 +#define CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS 0x1003 +#define CL_DEVICE_MAX_WORK_GROUP_SIZE 0x1004 +#define CL_DEVICE_MAX_WORK_ITEM_SIZES 0x1005 +#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_CHAR 0x1006 +#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_SHORT 0x1007 +#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_INT 0x1008 +#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_LONG 0x1009 +#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT 0x100A +#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_DOUBLE 0x100B +#define CL_DEVICE_MAX_CLOCK_FREQUENCY 0x100C +#define CL_DEVICE_ADDRESS_BITS 0x100D +#define CL_DEVICE_MAX_READ_IMAGE_ARGS 0x100E +#define CL_DEVICE_MAX_WRITE_IMAGE_ARGS 0x100F +#define CL_DEVICE_MAX_MEM_ALLOC_SIZE 0x1010 +#define CL_DEVICE_IMAGE2D_MAX_WIDTH 0x1011 +#define CL_DEVICE_IMAGE2D_MAX_HEIGHT 0x1012 +#define CL_DEVICE_IMAGE3D_MAX_WIDTH 0x1013 +#define CL_DEVICE_IMAGE3D_MAX_HEIGHT 0x1014 +#define CL_DEVICE_IMAGE3D_MAX_DEPTH 0x1015 +#define CL_DEVICE_IMAGE_SUPPORT 0x1016 +#define CL_DEVICE_MAX_PARAMETER_SIZE 0x1017 +#define CL_DEVICE_MAX_SAMPLERS 0x1018 +#define CL_DEVICE_MEM_BASE_ADDR_ALIGN 0x1019 +#define CL_DEVICE_MIN_DATA_TYPE_ALIGN_SIZE 0x101A +#define CL_DEVICE_SINGLE_FP_CONFIG 0x101B +#define CL_DEVICE_GLOBAL_MEM_CACHE_TYPE 0x101C +#define CL_DEVICE_GLOBAL_MEM_CACHELINE_SIZE 0x101D +#define CL_DEVICE_GLOBAL_MEM_CACHE_SIZE 0x101E +#define CL_DEVICE_GLOBAL_MEM_SIZE 0x101F +#define CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE 0x1020 +#define CL_DEVICE_MAX_CONSTANT_ARGS 0x1021 +#define CL_DEVICE_LOCAL_MEM_TYPE 0x1022 +#define CL_DEVICE_LOCAL_MEM_SIZE 0x1023 +#define CL_DEVICE_ERROR_CORRECTION_SUPPORT 0x1024 +#define CL_DEVICE_PROFILING_TIMER_RESOLUTION 0x1025 +#define CL_DEVICE_ENDIAN_LITTLE 0x1026 +#define CL_DEVICE_AVAILABLE 0x1027 +#define CL_DEVICE_COMPILER_AVAILABLE 0x1028 +#define CL_DEVICE_EXECUTION_CAPABILITIES 0x1029 +#define CL_DEVICE_QUEUE_PROPERTIES 0x102A /* deprecated */ +#ifdef CL_VERSION_2_0 +#define CL_DEVICE_QUEUE_ON_HOST_PROPERTIES 0x102A +#endif +#define CL_DEVICE_NAME 0x102B +#define CL_DEVICE_VENDOR 0x102C +#define CL_DRIVER_VERSION 0x102D +#define CL_DEVICE_PROFILE 0x102E +#define CL_DEVICE_VERSION 0x102F +#define CL_DEVICE_EXTENSIONS 0x1030 +#define CL_DEVICE_PLATFORM 0x1031 +#ifdef CL_VERSION_1_2 +#define CL_DEVICE_DOUBLE_FP_CONFIG 0x1032 +#endif +/* 0x1033 reserved for CL_DEVICE_HALF_FP_CONFIG which is already defined in "cl_ext.h" */ +#ifdef CL_VERSION_1_1 +#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_HALF 0x1034 +#define CL_DEVICE_HOST_UNIFIED_MEMORY 0x1035 /* deprecated */ +#define CL_DEVICE_NATIVE_VECTOR_WIDTH_CHAR 0x1036 +#define CL_DEVICE_NATIVE_VECTOR_WIDTH_SHORT 0x1037 +#define CL_DEVICE_NATIVE_VECTOR_WIDTH_INT 0x1038 +#define CL_DEVICE_NATIVE_VECTOR_WIDTH_LONG 0x1039 +#define CL_DEVICE_NATIVE_VECTOR_WIDTH_FLOAT 0x103A +#define CL_DEVICE_NATIVE_VECTOR_WIDTH_DOUBLE 0x103B +#define CL_DEVICE_NATIVE_VECTOR_WIDTH_HALF 0x103C +#define CL_DEVICE_OPENCL_C_VERSION 0x103D +#endif +#ifdef CL_VERSION_1_2 +#define CL_DEVICE_LINKER_AVAILABLE 0x103E +#define CL_DEVICE_BUILT_IN_KERNELS 0x103F +#define CL_DEVICE_IMAGE_MAX_BUFFER_SIZE 0x1040 +#define CL_DEVICE_IMAGE_MAX_ARRAY_SIZE 0x1041 +#define CL_DEVICE_PARENT_DEVICE 0x1042 +#define CL_DEVICE_PARTITION_MAX_SUB_DEVICES 0x1043 +#define CL_DEVICE_PARTITION_PROPERTIES 0x1044 +#define CL_DEVICE_PARTITION_AFFINITY_DOMAIN 0x1045 +#define CL_DEVICE_PARTITION_TYPE 0x1046 +#define CL_DEVICE_REFERENCE_COUNT 0x1047 +#define CL_DEVICE_PREFERRED_INTEROP_USER_SYNC 0x1048 +#define CL_DEVICE_PRINTF_BUFFER_SIZE 0x1049 +#endif +#ifdef CL_VERSION_2_0 +#define CL_DEVICE_IMAGE_PITCH_ALIGNMENT 0x104A +#define CL_DEVICE_IMAGE_BASE_ADDRESS_ALIGNMENT 0x104B +#define CL_DEVICE_MAX_READ_WRITE_IMAGE_ARGS 0x104C +#define CL_DEVICE_MAX_GLOBAL_VARIABLE_SIZE 0x104D +#define CL_DEVICE_QUEUE_ON_DEVICE_PROPERTIES 0x104E +#define CL_DEVICE_QUEUE_ON_DEVICE_PREFERRED_SIZE 0x104F +#define CL_DEVICE_QUEUE_ON_DEVICE_MAX_SIZE 0x1050 +#define CL_DEVICE_MAX_ON_DEVICE_QUEUES 0x1051 +#define CL_DEVICE_MAX_ON_DEVICE_EVENTS 0x1052 +#define CL_DEVICE_SVM_CAPABILITIES 0x1053 +#define CL_DEVICE_GLOBAL_VARIABLE_PREFERRED_TOTAL_SIZE 0x1054 +#define CL_DEVICE_MAX_PIPE_ARGS 0x1055 +#define CL_DEVICE_PIPE_MAX_ACTIVE_RESERVATIONS 0x1056 +#define CL_DEVICE_PIPE_MAX_PACKET_SIZE 0x1057 +#define CL_DEVICE_PREFERRED_PLATFORM_ATOMIC_ALIGNMENT 0x1058 +#define CL_DEVICE_PREFERRED_GLOBAL_ATOMIC_ALIGNMENT 0x1059 +#define CL_DEVICE_PREFERRED_LOCAL_ATOMIC_ALIGNMENT 0x105A +#endif +#ifdef CL_VERSION_2_1 +#define CL_DEVICE_IL_VERSION 0x105B +#define CL_DEVICE_MAX_NUM_SUB_GROUPS 0x105C +#define CL_DEVICE_SUB_GROUP_INDEPENDENT_FORWARD_PROGRESS 0x105D +#endif + +/* cl_device_fp_config - bitfield */ +#define CL_FP_DENORM (1 << 0) +#define CL_FP_INF_NAN (1 << 1) +#define CL_FP_ROUND_TO_NEAREST (1 << 2) +#define CL_FP_ROUND_TO_ZERO (1 << 3) +#define CL_FP_ROUND_TO_INF (1 << 4) +#define CL_FP_FMA (1 << 5) +#ifdef CL_VERSION_1_1 +#define CL_FP_SOFT_FLOAT (1 << 6) +#endif +#ifdef CL_VERSION_1_2 +#define CL_FP_CORRECTLY_ROUNDED_DIVIDE_SQRT (1 << 7) +#endif + +/* cl_device_mem_cache_type */ +#define CL_NONE 0x0 +#define CL_READ_ONLY_CACHE 0x1 +#define CL_READ_WRITE_CACHE 0x2 + +/* cl_device_local_mem_type */ +#define CL_LOCAL 0x1 +#define CL_GLOBAL 0x2 + +/* cl_device_exec_capabilities - bitfield */ +#define CL_EXEC_KERNEL (1 << 0) +#define CL_EXEC_NATIVE_KERNEL (1 << 1) + +/* cl_command_queue_properties - bitfield */ +#define CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE (1 << 0) +#define CL_QUEUE_PROFILING_ENABLE (1 << 1) +#ifdef CL_VERSION_2_0 +#define CL_QUEUE_ON_DEVICE (1 << 2) +#define CL_QUEUE_ON_DEVICE_DEFAULT (1 << 3) +#endif + +/* cl_context_info */ +#define CL_CONTEXT_REFERENCE_COUNT 0x1080 +#define CL_CONTEXT_DEVICES 0x1081 +#define CL_CONTEXT_PROPERTIES 0x1082 +#ifdef CL_VERSION_1_1 +#define CL_CONTEXT_NUM_DEVICES 0x1083 +#endif + +/* cl_context_properties */ +#define CL_CONTEXT_PLATFORM 0x1084 +#ifdef CL_VERSION_1_2 +#define CL_CONTEXT_INTEROP_USER_SYNC 0x1085 +#endif + +#ifdef CL_VERSION_1_2 + +/* cl_device_partition_property */ +#define CL_DEVICE_PARTITION_EQUALLY 0x1086 +#define CL_DEVICE_PARTITION_BY_COUNTS 0x1087 +#define CL_DEVICE_PARTITION_BY_COUNTS_LIST_END 0x0 +#define CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN 0x1088 + +#endif + +#ifdef CL_VERSION_1_2 + +/* cl_device_affinity_domain */ +#define CL_DEVICE_AFFINITY_DOMAIN_NUMA (1 << 0) +#define CL_DEVICE_AFFINITY_DOMAIN_L4_CACHE (1 << 1) +#define CL_DEVICE_AFFINITY_DOMAIN_L3_CACHE (1 << 2) +#define CL_DEVICE_AFFINITY_DOMAIN_L2_CACHE (1 << 3) +#define CL_DEVICE_AFFINITY_DOMAIN_L1_CACHE (1 << 4) +#define CL_DEVICE_AFFINITY_DOMAIN_NEXT_PARTITIONABLE (1 << 5) + +#endif + +#ifdef CL_VERSION_2_0 + +/* cl_device_svm_capabilities */ +#define CL_DEVICE_SVM_COARSE_GRAIN_BUFFER (1 << 0) +#define CL_DEVICE_SVM_FINE_GRAIN_BUFFER (1 << 1) +#define CL_DEVICE_SVM_FINE_GRAIN_SYSTEM (1 << 2) +#define CL_DEVICE_SVM_ATOMICS (1 << 3) + +#endif + +/* cl_command_queue_info */ +#define CL_QUEUE_CONTEXT 0x1090 +#define CL_QUEUE_DEVICE 0x1091 +#define CL_QUEUE_REFERENCE_COUNT 0x1092 +#define CL_QUEUE_PROPERTIES 0x1093 +#ifdef CL_VERSION_2_0 +#define CL_QUEUE_SIZE 0x1094 +#endif +#ifdef CL_VERSION_2_1 +#define CL_QUEUE_DEVICE_DEFAULT 0x1095 +#endif + +/* cl_mem_flags and cl_svm_mem_flags - bitfield */ +#define CL_MEM_READ_WRITE (1 << 0) +#define CL_MEM_WRITE_ONLY (1 << 1) +#define CL_MEM_READ_ONLY (1 << 2) +#define CL_MEM_USE_HOST_PTR (1 << 3) +#define CL_MEM_ALLOC_HOST_PTR (1 << 4) +#define CL_MEM_COPY_HOST_PTR (1 << 5) +/* reserved (1 << 6) */ +#ifdef CL_VERSION_1_2 +#define CL_MEM_HOST_WRITE_ONLY (1 << 7) +#define CL_MEM_HOST_READ_ONLY (1 << 8) +#define CL_MEM_HOST_NO_ACCESS (1 << 9) +#endif +#ifdef CL_VERSION_2_0 +#define CL_MEM_SVM_FINE_GRAIN_BUFFER (1 << 10) /* used by cl_svm_mem_flags only */ +#define CL_MEM_SVM_ATOMICS (1 << 11) /* used by cl_svm_mem_flags only */ +#define CL_MEM_KERNEL_READ_AND_WRITE (1 << 12) +#endif + +#ifdef CL_VERSION_1_2 + +/* cl_mem_migration_flags - bitfield */ +#define CL_MIGRATE_MEM_OBJECT_HOST (1 << 0) +#define CL_MIGRATE_MEM_OBJECT_CONTENT_UNDEFINED (1 << 1) + +#endif + +/* cl_channel_order */ +#define CL_R 0x10B0 +#define CL_A 0x10B1 +#define CL_RG 0x10B2 +#define CL_RA 0x10B3 +#define CL_RGB 0x10B4 +#define CL_RGBA 0x10B5 +#define CL_BGRA 0x10B6 +#define CL_ARGB 0x10B7 +#define CL_INTENSITY 0x10B8 +#define CL_LUMINANCE 0x10B9 +#ifdef CL_VERSION_1_1 +#define CL_Rx 0x10BA +#define CL_RGx 0x10BB +#define CL_RGBx 0x10BC +#endif +#ifdef CL_VERSION_1_2 +#define CL_DEPTH 0x10BD +#define CL_DEPTH_STENCIL 0x10BE +#endif +#ifdef CL_VERSION_2_0 +#define CL_sRGB 0x10BF +#define CL_sRGBx 0x10C0 +#define CL_sRGBA 0x10C1 +#define CL_sBGRA 0x10C2 +#define CL_ABGR 0x10C3 +#endif + +/* cl_channel_type */ +#define CL_SNORM_INT8 0x10D0 +#define CL_SNORM_INT16 0x10D1 +#define CL_UNORM_INT8 0x10D2 +#define CL_UNORM_INT16 0x10D3 +#define CL_UNORM_SHORT_565 0x10D4 +#define CL_UNORM_SHORT_555 0x10D5 +#define CL_UNORM_INT_101010 0x10D6 +#define CL_SIGNED_INT8 0x10D7 +#define CL_SIGNED_INT16 0x10D8 +#define CL_SIGNED_INT32 0x10D9 +#define CL_UNSIGNED_INT8 0x10DA +#define CL_UNSIGNED_INT16 0x10DB +#define CL_UNSIGNED_INT32 0x10DC +#define CL_HALF_FLOAT 0x10DD +#define CL_FLOAT 0x10DE +#ifdef CL_VERSION_1_2 +#define CL_UNORM_INT24 0x10DF +#endif +#ifdef CL_VERSION_2_1 +#define CL_UNORM_INT_101010_2 0x10E0 +#endif + +/* cl_mem_object_type */ +#define CL_MEM_OBJECT_BUFFER 0x10F0 +#define CL_MEM_OBJECT_IMAGE2D 0x10F1 +#define CL_MEM_OBJECT_IMAGE3D 0x10F2 +#ifdef CL_VERSION_1_2 +#define CL_MEM_OBJECT_IMAGE2D_ARRAY 0x10F3 +#define CL_MEM_OBJECT_IMAGE1D 0x10F4 +#define CL_MEM_OBJECT_IMAGE1D_ARRAY 0x10F5 +#define CL_MEM_OBJECT_IMAGE1D_BUFFER 0x10F6 +#endif +#ifdef CL_VERSION_2_0 +#define CL_MEM_OBJECT_PIPE 0x10F7 +#endif + +/* cl_mem_info */ +#define CL_MEM_TYPE 0x1100 +#define CL_MEM_FLAGS 0x1101 +#define CL_MEM_SIZE 0x1102 +#define CL_MEM_HOST_PTR 0x1103 +#define CL_MEM_MAP_COUNT 0x1104 +#define CL_MEM_REFERENCE_COUNT 0x1105 +#define CL_MEM_CONTEXT 0x1106 +#ifdef CL_VERSION_1_1 +#define CL_MEM_ASSOCIATED_MEMOBJECT 0x1107 +#define CL_MEM_OFFSET 0x1108 +#endif +#ifdef CL_VERSION_2_0 +#define CL_MEM_USES_SVM_POINTER 0x1109 +#endif + +/* cl_image_info */ +#define CL_IMAGE_FORMAT 0x1110 +#define CL_IMAGE_ELEMENT_SIZE 0x1111 +#define CL_IMAGE_ROW_PITCH 0x1112 +#define CL_IMAGE_SLICE_PITCH 0x1113 +#define CL_IMAGE_WIDTH 0x1114 +#define CL_IMAGE_HEIGHT 0x1115 +#define CL_IMAGE_DEPTH 0x1116 +#ifdef CL_VERSION_1_2 +#define CL_IMAGE_ARRAY_SIZE 0x1117 +#define CL_IMAGE_BUFFER 0x1118 +#define CL_IMAGE_NUM_MIP_LEVELS 0x1119 +#define CL_IMAGE_NUM_SAMPLES 0x111A +#endif + +#ifdef CL_VERSION_2_0 + +/* cl_pipe_info */ +#define CL_PIPE_PACKET_SIZE 0x1120 +#define CL_PIPE_MAX_PACKETS 0x1121 + +#endif + +/* cl_addressing_mode */ +#define CL_ADDRESS_NONE 0x1130 +#define CL_ADDRESS_CLAMP_TO_EDGE 0x1131 +#define CL_ADDRESS_CLAMP 0x1132 +#define CL_ADDRESS_REPEAT 0x1133 +#ifdef CL_VERSION_1_1 +#define CL_ADDRESS_MIRRORED_REPEAT 0x1134 +#endif + +/* cl_filter_mode */ +#define CL_FILTER_NEAREST 0x1140 +#define CL_FILTER_LINEAR 0x1141 + +/* cl_sampler_info */ +#define CL_SAMPLER_REFERENCE_COUNT 0x1150 +#define CL_SAMPLER_CONTEXT 0x1151 +#define CL_SAMPLER_NORMALIZED_COORDS 0x1152 +#define CL_SAMPLER_ADDRESSING_MODE 0x1153 +#define CL_SAMPLER_FILTER_MODE 0x1154 +#ifdef CL_VERSION_2_0 +/* These enumerants are for the cl_khr_mipmap_image extension. + They have since been added to cl_ext.h with an appropriate + KHR suffix, but are left here for backwards compatibility. */ +#define CL_SAMPLER_MIP_FILTER_MODE 0x1155 +#define CL_SAMPLER_LOD_MIN 0x1156 +#define CL_SAMPLER_LOD_MAX 0x1157 +#endif + +/* cl_map_flags - bitfield */ +#define CL_MAP_READ (1 << 0) +#define CL_MAP_WRITE (1 << 1) +#ifdef CL_VERSION_1_2 +#define CL_MAP_WRITE_INVALIDATE_REGION (1 << 2) +#endif + +/* cl_program_info */ +#define CL_PROGRAM_REFERENCE_COUNT 0x1160 +#define CL_PROGRAM_CONTEXT 0x1161 +#define CL_PROGRAM_NUM_DEVICES 0x1162 +#define CL_PROGRAM_DEVICES 0x1163 +#define CL_PROGRAM_SOURCE 0x1164 +#define CL_PROGRAM_BINARY_SIZES 0x1165 +#define CL_PROGRAM_BINARIES 0x1166 +#ifdef CL_VERSION_1_2 +#define CL_PROGRAM_NUM_KERNELS 0x1167 +#define CL_PROGRAM_KERNEL_NAMES 0x1168 +#endif +#ifdef CL_VERSION_2_1 +#define CL_PROGRAM_IL 0x1169 +#endif +#ifdef CL_VERSION_2_2 +#define CL_PROGRAM_SCOPE_GLOBAL_CTORS_PRESENT 0x116A +#define CL_PROGRAM_SCOPE_GLOBAL_DTORS_PRESENT 0x116B +#endif + +/* cl_program_build_info */ +#define CL_PROGRAM_BUILD_STATUS 0x1181 +#define CL_PROGRAM_BUILD_OPTIONS 0x1182 +#define CL_PROGRAM_BUILD_LOG 0x1183 +#ifdef CL_VERSION_1_2 +#define CL_PROGRAM_BINARY_TYPE 0x1184 +#endif +#ifdef CL_VERSION_2_0 +#define CL_PROGRAM_BUILD_GLOBAL_VARIABLE_TOTAL_SIZE 0x1185 +#endif + +#ifdef CL_VERSION_1_2 + +/* cl_program_binary_type */ +#define CL_PROGRAM_BINARY_TYPE_NONE 0x0 +#define CL_PROGRAM_BINARY_TYPE_COMPILED_OBJECT 0x1 +#define CL_PROGRAM_BINARY_TYPE_LIBRARY 0x2 +#define CL_PROGRAM_BINARY_TYPE_EXECUTABLE 0x4 + +#endif + +/* cl_build_status */ +#define CL_BUILD_SUCCESS 0 +#define CL_BUILD_NONE -1 +#define CL_BUILD_ERROR -2 +#define CL_BUILD_IN_PROGRESS -3 + +/* cl_kernel_info */ +#define CL_KERNEL_FUNCTION_NAME 0x1190 +#define CL_KERNEL_NUM_ARGS 0x1191 +#define CL_KERNEL_REFERENCE_COUNT 0x1192 +#define CL_KERNEL_CONTEXT 0x1193 +#define CL_KERNEL_PROGRAM 0x1194 +#ifdef CL_VERSION_1_2 +#define CL_KERNEL_ATTRIBUTES 0x1195 +#endif +#ifdef CL_VERSION_2_1 +#define CL_KERNEL_MAX_NUM_SUB_GROUPS 0x11B9 +#define CL_KERNEL_COMPILE_NUM_SUB_GROUPS 0x11BA +#endif + +#ifdef CL_VERSION_1_2 + +/* cl_kernel_arg_info */ +#define CL_KERNEL_ARG_ADDRESS_QUALIFIER 0x1196 +#define CL_KERNEL_ARG_ACCESS_QUALIFIER 0x1197 +#define CL_KERNEL_ARG_TYPE_NAME 0x1198 +#define CL_KERNEL_ARG_TYPE_QUALIFIER 0x1199 +#define CL_KERNEL_ARG_NAME 0x119A + +#endif + +#ifdef CL_VERSION_1_2 + +/* cl_kernel_arg_address_qualifier */ +#define CL_KERNEL_ARG_ADDRESS_GLOBAL 0x119B +#define CL_KERNEL_ARG_ADDRESS_LOCAL 0x119C +#define CL_KERNEL_ARG_ADDRESS_CONSTANT 0x119D +#define CL_KERNEL_ARG_ADDRESS_PRIVATE 0x119E + +#endif + +#ifdef CL_VERSION_1_2 + +/* cl_kernel_arg_access_qualifier */ +#define CL_KERNEL_ARG_ACCESS_READ_ONLY 0x11A0 +#define CL_KERNEL_ARG_ACCESS_WRITE_ONLY 0x11A1 +#define CL_KERNEL_ARG_ACCESS_READ_WRITE 0x11A2 +#define CL_KERNEL_ARG_ACCESS_NONE 0x11A3 + +#endif + +#ifdef CL_VERSION_1_2 + +/* cl_kernel_arg_type_qualifier */ +#define CL_KERNEL_ARG_TYPE_NONE 0 +#define CL_KERNEL_ARG_TYPE_CONST (1 << 0) +#define CL_KERNEL_ARG_TYPE_RESTRICT (1 << 1) +#define CL_KERNEL_ARG_TYPE_VOLATILE (1 << 2) +#ifdef CL_VERSION_2_0 +#define CL_KERNEL_ARG_TYPE_PIPE (1 << 3) +#endif + +#endif + +/* cl_kernel_work_group_info */ +#define CL_KERNEL_WORK_GROUP_SIZE 0x11B0 +#define CL_KERNEL_COMPILE_WORK_GROUP_SIZE 0x11B1 +#define CL_KERNEL_LOCAL_MEM_SIZE 0x11B2 +#define CL_KERNEL_PREFERRED_WORK_GROUP_SIZE_MULTIPLE 0x11B3 +#define CL_KERNEL_PRIVATE_MEM_SIZE 0x11B4 +#ifdef CL_VERSION_1_2 +#define CL_KERNEL_GLOBAL_WORK_SIZE 0x11B5 +#endif + +#ifdef CL_VERSION_2_1 + +/* cl_kernel_sub_group_info */ +#define CL_KERNEL_MAX_SUB_GROUP_SIZE_FOR_NDRANGE 0x2033 +#define CL_KERNEL_SUB_GROUP_COUNT_FOR_NDRANGE 0x2034 +#define CL_KERNEL_LOCAL_SIZE_FOR_SUB_GROUP_COUNT 0x11B8 + +#endif + +#ifdef CL_VERSION_2_0 + +/* cl_kernel_exec_info */ +#define CL_KERNEL_EXEC_INFO_SVM_PTRS 0x11B6 +#define CL_KERNEL_EXEC_INFO_SVM_FINE_GRAIN_SYSTEM 0x11B7 + +#endif + +/* cl_event_info */ +#define CL_EVENT_COMMAND_QUEUE 0x11D0 +#define CL_EVENT_COMMAND_TYPE 0x11D1 +#define CL_EVENT_REFERENCE_COUNT 0x11D2 +#define CL_EVENT_COMMAND_EXECUTION_STATUS 0x11D3 +#ifdef CL_VERSION_1_1 +#define CL_EVENT_CONTEXT 0x11D4 +#endif + +/* cl_command_type */ +#define CL_COMMAND_NDRANGE_KERNEL 0x11F0 +#define CL_COMMAND_TASK 0x11F1 +#define CL_COMMAND_NATIVE_KERNEL 0x11F2 +#define CL_COMMAND_READ_BUFFER 0x11F3 +#define CL_COMMAND_WRITE_BUFFER 0x11F4 +#define CL_COMMAND_COPY_BUFFER 0x11F5 +#define CL_COMMAND_READ_IMAGE 0x11F6 +#define CL_COMMAND_WRITE_IMAGE 0x11F7 +#define CL_COMMAND_COPY_IMAGE 0x11F8 +#define CL_COMMAND_COPY_IMAGE_TO_BUFFER 0x11F9 +#define CL_COMMAND_COPY_BUFFER_TO_IMAGE 0x11FA +#define CL_COMMAND_MAP_BUFFER 0x11FB +#define CL_COMMAND_MAP_IMAGE 0x11FC +#define CL_COMMAND_UNMAP_MEM_OBJECT 0x11FD +#define CL_COMMAND_MARKER 0x11FE +#define CL_COMMAND_ACQUIRE_GL_OBJECTS 0x11FF +#define CL_COMMAND_RELEASE_GL_OBJECTS 0x1200 +#ifdef CL_VERSION_1_1 +#define CL_COMMAND_READ_BUFFER_RECT 0x1201 +#define CL_COMMAND_WRITE_BUFFER_RECT 0x1202 +#define CL_COMMAND_COPY_BUFFER_RECT 0x1203 +#define CL_COMMAND_USER 0x1204 +#endif +#ifdef CL_VERSION_1_2 +#define CL_COMMAND_BARRIER 0x1205 +#define CL_COMMAND_MIGRATE_MEM_OBJECTS 0x1206 +#define CL_COMMAND_FILL_BUFFER 0x1207 +#define CL_COMMAND_FILL_IMAGE 0x1208 +#endif +#ifdef CL_VERSION_2_0 +#define CL_COMMAND_SVM_FREE 0x1209 +#define CL_COMMAND_SVM_MEMCPY 0x120A +#define CL_COMMAND_SVM_MEMFILL 0x120B +#define CL_COMMAND_SVM_MAP 0x120C +#define CL_COMMAND_SVM_UNMAP 0x120D +#endif + +/* command execution status */ +#define CL_COMPLETE 0x0 +#define CL_RUNNING 0x1 +#define CL_SUBMITTED 0x2 +#define CL_QUEUED 0x3 + +#ifdef CL_VERSION_1_1 + +/* cl_buffer_create_type */ +#define CL_BUFFER_CREATE_TYPE_REGION 0x1220 + +#endif + +/* cl_profiling_info */ +#define CL_PROFILING_COMMAND_QUEUED 0x1280 +#define CL_PROFILING_COMMAND_SUBMIT 0x1281 +#define CL_PROFILING_COMMAND_START 0x1282 +#define CL_PROFILING_COMMAND_END 0x1283 +#ifdef CL_VERSION_2_0 +#define CL_PROFILING_COMMAND_COMPLETE 0x1284 +#endif + +/********************************************************************************************************/ + +/* Platform API */ +extern CL_API_ENTRY cl_int CL_API_CALL +clGetPlatformIDs(cl_uint num_entries, + cl_platform_id * platforms, + cl_uint * num_platforms) CL_API_SUFFIX__VERSION_1_0; + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetPlatformInfo(cl_platform_id platform, + cl_platform_info param_name, + size_t param_value_size, + void * param_value, + size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; + +/* Device APIs */ +extern CL_API_ENTRY cl_int CL_API_CALL +clGetDeviceIDs(cl_platform_id platform, + cl_device_type device_type, + cl_uint num_entries, + cl_device_id * devices, + cl_uint * num_devices) CL_API_SUFFIX__VERSION_1_0; + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetDeviceInfo(cl_device_id device, + cl_device_info param_name, + size_t param_value_size, + void * param_value, + size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; + +#ifdef CL_VERSION_1_2 + +extern CL_API_ENTRY cl_int CL_API_CALL +clCreateSubDevices(cl_device_id in_device, + const cl_device_partition_property * properties, + cl_uint num_devices, + cl_device_id * out_devices, + cl_uint * num_devices_ret) CL_API_SUFFIX__VERSION_1_2; + +extern CL_API_ENTRY cl_int CL_API_CALL +clRetainDevice(cl_device_id device) CL_API_SUFFIX__VERSION_1_2; + +extern CL_API_ENTRY cl_int CL_API_CALL +clReleaseDevice(cl_device_id device) CL_API_SUFFIX__VERSION_1_2; + +#endif + +#ifdef CL_VERSION_2_1 + +extern CL_API_ENTRY cl_int CL_API_CALL +clSetDefaultDeviceCommandQueue(cl_context context, + cl_device_id device, + cl_command_queue command_queue) CL_API_SUFFIX__VERSION_2_1; + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetDeviceAndHostTimer(cl_device_id device, + cl_ulong* device_timestamp, + cl_ulong* host_timestamp) CL_API_SUFFIX__VERSION_2_1; + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetHostTimer(cl_device_id device, + cl_ulong * host_timestamp) CL_API_SUFFIX__VERSION_2_1; + +#endif + +/* Context APIs */ +extern CL_API_ENTRY cl_context CL_API_CALL +clCreateContext(const cl_context_properties * properties, + cl_uint num_devices, + const cl_device_id * devices, + void (CL_CALLBACK * pfn_notify)(const char * errinfo, + const void * private_info, + size_t cb, + void * user_data), + void * user_data, + cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; + +extern CL_API_ENTRY cl_context CL_API_CALL +clCreateContextFromType(const cl_context_properties * properties, + cl_device_type device_type, + void (CL_CALLBACK * pfn_notify)(const char * errinfo, + const void * private_info, + size_t cb, + void * user_data), + void * user_data, + cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; + +extern CL_API_ENTRY cl_int CL_API_CALL +clRetainContext(cl_context context) CL_API_SUFFIX__VERSION_1_0; + +extern CL_API_ENTRY cl_int CL_API_CALL +clReleaseContext(cl_context context) CL_API_SUFFIX__VERSION_1_0; + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetContextInfo(cl_context context, + cl_context_info param_name, + size_t param_value_size, + void * param_value, + size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; + +/* Command Queue APIs */ + +#ifdef CL_VERSION_2_0 + +extern CL_API_ENTRY cl_command_queue CL_API_CALL +clCreateCommandQueueWithProperties(cl_context context, + cl_device_id device, + const cl_queue_properties * properties, + cl_int * errcode_ret) CL_API_SUFFIX__VERSION_2_0; + +#endif + +extern CL_API_ENTRY cl_int CL_API_CALL +clRetainCommandQueue(cl_command_queue command_queue) CL_API_SUFFIX__VERSION_1_0; + +extern CL_API_ENTRY cl_int CL_API_CALL +clReleaseCommandQueue(cl_command_queue command_queue) CL_API_SUFFIX__VERSION_1_0; + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetCommandQueueInfo(cl_command_queue command_queue, + cl_command_queue_info param_name, + size_t param_value_size, + void * param_value, + size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; + +/* Memory Object APIs */ +extern CL_API_ENTRY cl_mem CL_API_CALL +clCreateBuffer(cl_context context, + cl_mem_flags flags, + size_t size, + void * host_ptr, + cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; + +#ifdef CL_VERSION_1_1 + +extern CL_API_ENTRY cl_mem CL_API_CALL +clCreateSubBuffer(cl_mem buffer, + cl_mem_flags flags, + cl_buffer_create_type buffer_create_type, + const void * buffer_create_info, + cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_1; + +#endif + +#ifdef CL_VERSION_1_2 + +extern CL_API_ENTRY cl_mem CL_API_CALL +clCreateImage(cl_context context, + cl_mem_flags flags, + const cl_image_format * image_format, + const cl_image_desc * image_desc, + void * host_ptr, + cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2; + +#endif + +#ifdef CL_VERSION_2_0 + +extern CL_API_ENTRY cl_mem CL_API_CALL +clCreatePipe(cl_context context, + cl_mem_flags flags, + cl_uint pipe_packet_size, + cl_uint pipe_max_packets, + const cl_pipe_properties * properties, + cl_int * errcode_ret) CL_API_SUFFIX__VERSION_2_0; + +#endif + +extern CL_API_ENTRY cl_int CL_API_CALL +clRetainMemObject(cl_mem memobj) CL_API_SUFFIX__VERSION_1_0; + +extern CL_API_ENTRY cl_int CL_API_CALL +clReleaseMemObject(cl_mem memobj) CL_API_SUFFIX__VERSION_1_0; + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetSupportedImageFormats(cl_context context, + cl_mem_flags flags, + cl_mem_object_type image_type, + cl_uint num_entries, + cl_image_format * image_formats, + cl_uint * num_image_formats) CL_API_SUFFIX__VERSION_1_0; + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetMemObjectInfo(cl_mem memobj, + cl_mem_info param_name, + size_t param_value_size, + void * param_value, + size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetImageInfo(cl_mem image, + cl_image_info param_name, + size_t param_value_size, + void * param_value, + size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; + +#ifdef CL_VERSION_2_0 + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetPipeInfo(cl_mem pipe, + cl_pipe_info param_name, + size_t param_value_size, + void * param_value, + size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_2_0; + +#endif + +#ifdef CL_VERSION_1_1 + +extern CL_API_ENTRY cl_int CL_API_CALL +clSetMemObjectDestructorCallback(cl_mem memobj, + void (CL_CALLBACK * pfn_notify)(cl_mem memobj, + void * user_data), + void * user_data) CL_API_SUFFIX__VERSION_1_1; + +#endif + +/* SVM Allocation APIs */ + +#ifdef CL_VERSION_2_0 + +extern CL_API_ENTRY void * CL_API_CALL +clSVMAlloc(cl_context context, + cl_svm_mem_flags flags, + size_t size, + cl_uint alignment) CL_API_SUFFIX__VERSION_2_0; + +extern CL_API_ENTRY void CL_API_CALL +clSVMFree(cl_context context, + void * svm_pointer) CL_API_SUFFIX__VERSION_2_0; + +#endif + +/* Sampler APIs */ + +#ifdef CL_VERSION_2_0 + +extern CL_API_ENTRY cl_sampler CL_API_CALL +clCreateSamplerWithProperties(cl_context context, + const cl_sampler_properties * sampler_properties, + cl_int * errcode_ret) CL_API_SUFFIX__VERSION_2_0; + +#endif + +extern CL_API_ENTRY cl_int CL_API_CALL +clRetainSampler(cl_sampler sampler) CL_API_SUFFIX__VERSION_1_0; + +extern CL_API_ENTRY cl_int CL_API_CALL +clReleaseSampler(cl_sampler sampler) CL_API_SUFFIX__VERSION_1_0; + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetSamplerInfo(cl_sampler sampler, + cl_sampler_info param_name, + size_t param_value_size, + void * param_value, + size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; + +/* Program Object APIs */ +extern CL_API_ENTRY cl_program CL_API_CALL +clCreateProgramWithSource(cl_context context, + cl_uint count, + const char ** strings, + const size_t * lengths, + cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; + +extern CL_API_ENTRY cl_program CL_API_CALL +clCreateProgramWithBinary(cl_context context, + cl_uint num_devices, + const cl_device_id * device_list, + const size_t * lengths, + const unsigned char ** binaries, + cl_int * binary_status, + cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; + +#ifdef CL_VERSION_1_2 + +extern CL_API_ENTRY cl_program CL_API_CALL +clCreateProgramWithBuiltInKernels(cl_context context, + cl_uint num_devices, + const cl_device_id * device_list, + const char * kernel_names, + cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2; + +#endif + +#ifdef CL_VERSION_2_1 + +extern CL_API_ENTRY cl_program CL_API_CALL +clCreateProgramWithIL(cl_context context, + const void* il, + size_t length, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_2_1; + +#endif + +extern CL_API_ENTRY cl_int CL_API_CALL +clRetainProgram(cl_program program) CL_API_SUFFIX__VERSION_1_0; + +extern CL_API_ENTRY cl_int CL_API_CALL +clReleaseProgram(cl_program program) CL_API_SUFFIX__VERSION_1_0; + +extern CL_API_ENTRY cl_int CL_API_CALL +clBuildProgram(cl_program program, + cl_uint num_devices, + const cl_device_id * device_list, + const char * options, + void (CL_CALLBACK * pfn_notify)(cl_program program, + void * user_data), + void * user_data) CL_API_SUFFIX__VERSION_1_0; + +#ifdef CL_VERSION_1_2 + +extern CL_API_ENTRY cl_int CL_API_CALL +clCompileProgram(cl_program program, + cl_uint num_devices, + const cl_device_id * device_list, + const char * options, + cl_uint num_input_headers, + const cl_program * input_headers, + const char ** header_include_names, + void (CL_CALLBACK * pfn_notify)(cl_program program, + void * user_data), + void * user_data) CL_API_SUFFIX__VERSION_1_2; + +extern CL_API_ENTRY cl_program CL_API_CALL +clLinkProgram(cl_context context, + cl_uint num_devices, + const cl_device_id * device_list, + const char * options, + cl_uint num_input_programs, + const cl_program * input_programs, + void (CL_CALLBACK * pfn_notify)(cl_program program, + void * user_data), + void * user_data, + cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2; + +#endif + +#ifdef CL_VERSION_2_2 + +extern CL_API_ENTRY cl_int CL_API_CALL +clSetProgramReleaseCallback(cl_program program, + void (CL_CALLBACK * pfn_notify)(cl_program program, + void * user_data), + void * user_data) CL_API_SUFFIX__VERSION_2_2; + +extern CL_API_ENTRY cl_int CL_API_CALL +clSetProgramSpecializationConstant(cl_program program, + cl_uint spec_id, + size_t spec_size, + const void* spec_value) CL_API_SUFFIX__VERSION_2_2; + +#endif + +#ifdef CL_VERSION_1_2 + +extern CL_API_ENTRY cl_int CL_API_CALL +clUnloadPlatformCompiler(cl_platform_id platform) CL_API_SUFFIX__VERSION_1_2; + +#endif + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetProgramInfo(cl_program program, + cl_program_info param_name, + size_t param_value_size, + void * param_value, + size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetProgramBuildInfo(cl_program program, + cl_device_id device, + cl_program_build_info param_name, + size_t param_value_size, + void * param_value, + size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; + +/* Kernel Object APIs */ +extern CL_API_ENTRY cl_kernel CL_API_CALL +clCreateKernel(cl_program program, + const char * kernel_name, + cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; + +extern CL_API_ENTRY cl_int CL_API_CALL +clCreateKernelsInProgram(cl_program program, + cl_uint num_kernels, + cl_kernel * kernels, + cl_uint * num_kernels_ret) CL_API_SUFFIX__VERSION_1_0; + +#ifdef CL_VERSION_2_1 + +extern CL_API_ENTRY cl_kernel CL_API_CALL +clCloneKernel(cl_kernel source_kernel, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_2_1; + +#endif + +extern CL_API_ENTRY cl_int CL_API_CALL +clRetainKernel(cl_kernel kernel) CL_API_SUFFIX__VERSION_1_0; + +extern CL_API_ENTRY cl_int CL_API_CALL +clReleaseKernel(cl_kernel kernel) CL_API_SUFFIX__VERSION_1_0; + +extern CL_API_ENTRY cl_int CL_API_CALL +clSetKernelArg(cl_kernel kernel, + cl_uint arg_index, + size_t arg_size, + const void * arg_value) CL_API_SUFFIX__VERSION_1_0; + +#ifdef CL_VERSION_2_0 + +extern CL_API_ENTRY cl_int CL_API_CALL +clSetKernelArgSVMPointer(cl_kernel kernel, + cl_uint arg_index, + const void * arg_value) CL_API_SUFFIX__VERSION_2_0; + +extern CL_API_ENTRY cl_int CL_API_CALL +clSetKernelExecInfo(cl_kernel kernel, + cl_kernel_exec_info param_name, + size_t param_value_size, + const void * param_value) CL_API_SUFFIX__VERSION_2_0; + +#endif + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetKernelInfo(cl_kernel kernel, + cl_kernel_info param_name, + size_t param_value_size, + void * param_value, + size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; + +#ifdef CL_VERSION_1_2 + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetKernelArgInfo(cl_kernel kernel, + cl_uint arg_indx, + cl_kernel_arg_info param_name, + size_t param_value_size, + void * param_value, + size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_2; + +#endif + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetKernelWorkGroupInfo(cl_kernel kernel, + cl_device_id device, + cl_kernel_work_group_info param_name, + size_t param_value_size, + void * param_value, + size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; + +#ifdef CL_VERSION_2_1 + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetKernelSubGroupInfo(cl_kernel kernel, + cl_device_id device, + cl_kernel_sub_group_info param_name, + size_t input_value_size, + const void* input_value, + size_t param_value_size, + void* param_value, + size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_2_1; + +#endif + +/* Event Object APIs */ +extern CL_API_ENTRY cl_int CL_API_CALL +clWaitForEvents(cl_uint num_events, + const cl_event * event_list) CL_API_SUFFIX__VERSION_1_0; + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetEventInfo(cl_event event, + cl_event_info param_name, + size_t param_value_size, + void * param_value, + size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; + +#ifdef CL_VERSION_1_1 + +extern CL_API_ENTRY cl_event CL_API_CALL +clCreateUserEvent(cl_context context, + cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_1; + +#endif + +extern CL_API_ENTRY cl_int CL_API_CALL +clRetainEvent(cl_event event) CL_API_SUFFIX__VERSION_1_0; + +extern CL_API_ENTRY cl_int CL_API_CALL +clReleaseEvent(cl_event event) CL_API_SUFFIX__VERSION_1_0; + +#ifdef CL_VERSION_1_1 + +extern CL_API_ENTRY cl_int CL_API_CALL +clSetUserEventStatus(cl_event event, + cl_int execution_status) CL_API_SUFFIX__VERSION_1_1; + +extern CL_API_ENTRY cl_int CL_API_CALL +clSetEventCallback(cl_event event, + cl_int command_exec_callback_type, + void (CL_CALLBACK * pfn_notify)(cl_event event, + cl_int event_command_status, + void * user_data), + void * user_data) CL_API_SUFFIX__VERSION_1_1; + +#endif + +/* Profiling APIs */ +extern CL_API_ENTRY cl_int CL_API_CALL +clGetEventProfilingInfo(cl_event event, + cl_profiling_info param_name, + size_t param_value_size, + void * param_value, + size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; + +/* Flush and Finish APIs */ +extern CL_API_ENTRY cl_int CL_API_CALL +clFlush(cl_command_queue command_queue) CL_API_SUFFIX__VERSION_1_0; + +extern CL_API_ENTRY cl_int CL_API_CALL +clFinish(cl_command_queue command_queue) CL_API_SUFFIX__VERSION_1_0; + +/* Enqueued Commands APIs */ +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueReadBuffer(cl_command_queue command_queue, + cl_mem buffer, + cl_bool blocking_read, + size_t offset, + size_t size, + void * ptr, + cl_uint num_events_in_wait_list, + const cl_event * event_wait_list, + cl_event * event) CL_API_SUFFIX__VERSION_1_0; + +#ifdef CL_VERSION_1_1 + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueReadBufferRect(cl_command_queue command_queue, + cl_mem buffer, + cl_bool blocking_read, + const size_t * buffer_offset, + const size_t * host_offset, + const size_t * region, + size_t buffer_row_pitch, + size_t buffer_slice_pitch, + size_t host_row_pitch, + size_t host_slice_pitch, + void * ptr, + cl_uint num_events_in_wait_list, + const cl_event * event_wait_list, + cl_event * event) CL_API_SUFFIX__VERSION_1_1; + +#endif + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueWriteBuffer(cl_command_queue command_queue, + cl_mem buffer, + cl_bool blocking_write, + size_t offset, + size_t size, + const void * ptr, + cl_uint num_events_in_wait_list, + const cl_event * event_wait_list, + cl_event * event) CL_API_SUFFIX__VERSION_1_0; + +#ifdef CL_VERSION_1_1 + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueWriteBufferRect(cl_command_queue command_queue, + cl_mem buffer, + cl_bool blocking_write, + const size_t * buffer_offset, + const size_t * host_offset, + const size_t * region, + size_t buffer_row_pitch, + size_t buffer_slice_pitch, + size_t host_row_pitch, + size_t host_slice_pitch, + const void * ptr, + cl_uint num_events_in_wait_list, + const cl_event * event_wait_list, + cl_event * event) CL_API_SUFFIX__VERSION_1_1; + +#endif + +#ifdef CL_VERSION_1_2 + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueFillBuffer(cl_command_queue command_queue, + cl_mem buffer, + const void * pattern, + size_t pattern_size, + size_t offset, + size_t size, + cl_uint num_events_in_wait_list, + const cl_event * event_wait_list, + cl_event * event) CL_API_SUFFIX__VERSION_1_2; + +#endif + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueCopyBuffer(cl_command_queue command_queue, + cl_mem src_buffer, + cl_mem dst_buffer, + size_t src_offset, + size_t dst_offset, + size_t size, + cl_uint num_events_in_wait_list, + const cl_event * event_wait_list, + cl_event * event) CL_API_SUFFIX__VERSION_1_0; + +#ifdef CL_VERSION_1_1 + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueCopyBufferRect(cl_command_queue command_queue, + cl_mem src_buffer, + cl_mem dst_buffer, + const size_t * src_origin, + const size_t * dst_origin, + const size_t * region, + size_t src_row_pitch, + size_t src_slice_pitch, + size_t dst_row_pitch, + size_t dst_slice_pitch, + cl_uint num_events_in_wait_list, + const cl_event * event_wait_list, + cl_event * event) CL_API_SUFFIX__VERSION_1_1; + +#endif + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueReadImage(cl_command_queue command_queue, + cl_mem image, + cl_bool blocking_read, + const size_t * origin, + const size_t * region, + size_t row_pitch, + size_t slice_pitch, + void * ptr, + cl_uint num_events_in_wait_list, + const cl_event * event_wait_list, + cl_event * event) CL_API_SUFFIX__VERSION_1_0; + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueWriteImage(cl_command_queue command_queue, + cl_mem image, + cl_bool blocking_write, + const size_t * origin, + const size_t * region, + size_t input_row_pitch, + size_t input_slice_pitch, + const void * ptr, + cl_uint num_events_in_wait_list, + const cl_event * event_wait_list, + cl_event * event) CL_API_SUFFIX__VERSION_1_0; + +#ifdef CL_VERSION_1_2 + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueFillImage(cl_command_queue command_queue, + cl_mem image, + const void * fill_color, + const size_t * origin, + const size_t * region, + cl_uint num_events_in_wait_list, + const cl_event * event_wait_list, + cl_event * event) CL_API_SUFFIX__VERSION_1_2; + +#endif + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueCopyImage(cl_command_queue command_queue, + cl_mem src_image, + cl_mem dst_image, + const size_t * src_origin, + const size_t * dst_origin, + const size_t * region, + cl_uint num_events_in_wait_list, + const cl_event * event_wait_list, + cl_event * event) CL_API_SUFFIX__VERSION_1_0; + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueCopyImageToBuffer(cl_command_queue command_queue, + cl_mem src_image, + cl_mem dst_buffer, + const size_t * src_origin, + const size_t * region, + size_t dst_offset, + cl_uint num_events_in_wait_list, + const cl_event * event_wait_list, + cl_event * event) CL_API_SUFFIX__VERSION_1_0; + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueCopyBufferToImage(cl_command_queue command_queue, + cl_mem src_buffer, + cl_mem dst_image, + size_t src_offset, + const size_t * dst_origin, + const size_t * region, + cl_uint num_events_in_wait_list, + const cl_event * event_wait_list, + cl_event * event) CL_API_SUFFIX__VERSION_1_0; + +extern CL_API_ENTRY void * CL_API_CALL +clEnqueueMapBuffer(cl_command_queue command_queue, + cl_mem buffer, + cl_bool blocking_map, + cl_map_flags map_flags, + size_t offset, + size_t size, + cl_uint num_events_in_wait_list, + const cl_event * event_wait_list, + cl_event * event, + cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; + +extern CL_API_ENTRY void * CL_API_CALL +clEnqueueMapImage(cl_command_queue command_queue, + cl_mem image, + cl_bool blocking_map, + cl_map_flags map_flags, + const size_t * origin, + const size_t * region, + size_t * image_row_pitch, + size_t * image_slice_pitch, + cl_uint num_events_in_wait_list, + const cl_event * event_wait_list, + cl_event * event, + cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueUnmapMemObject(cl_command_queue command_queue, + cl_mem memobj, + void * mapped_ptr, + cl_uint num_events_in_wait_list, + const cl_event * event_wait_list, + cl_event * event) CL_API_SUFFIX__VERSION_1_0; + +#ifdef CL_VERSION_1_2 + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueMigrateMemObjects(cl_command_queue command_queue, + cl_uint num_mem_objects, + const cl_mem * mem_objects, + cl_mem_migration_flags flags, + cl_uint num_events_in_wait_list, + const cl_event * event_wait_list, + cl_event * event) CL_API_SUFFIX__VERSION_1_2; + +#endif + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueNDRangeKernel(cl_command_queue command_queue, + cl_kernel kernel, + cl_uint work_dim, + const size_t * global_work_offset, + const size_t * global_work_size, + const size_t * local_work_size, + cl_uint num_events_in_wait_list, + const cl_event * event_wait_list, + cl_event * event) CL_API_SUFFIX__VERSION_1_0; + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueNativeKernel(cl_command_queue command_queue, + void (CL_CALLBACK * user_func)(void *), + void * args, + size_t cb_args, + cl_uint num_mem_objects, + const cl_mem * mem_list, + const void ** args_mem_loc, + cl_uint num_events_in_wait_list, + const cl_event * event_wait_list, + cl_event * event) CL_API_SUFFIX__VERSION_1_0; + +#ifdef CL_VERSION_1_2 + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueMarkerWithWaitList(cl_command_queue command_queue, + cl_uint num_events_in_wait_list, + const cl_event * event_wait_list, + cl_event * event) CL_API_SUFFIX__VERSION_1_2; + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueBarrierWithWaitList(cl_command_queue command_queue, + cl_uint num_events_in_wait_list, + const cl_event * event_wait_list, + cl_event * event) CL_API_SUFFIX__VERSION_1_2; + +#endif + +#ifdef CL_VERSION_2_0 + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueSVMFree(cl_command_queue command_queue, + cl_uint num_svm_pointers, + void * svm_pointers[], + void (CL_CALLBACK * pfn_free_func)(cl_command_queue queue, + cl_uint num_svm_pointers, + void * svm_pointers[], + void * user_data), + void * user_data, + cl_uint num_events_in_wait_list, + const cl_event * event_wait_list, + cl_event * event) CL_API_SUFFIX__VERSION_2_0; + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueSVMMemcpy(cl_command_queue command_queue, + cl_bool blocking_copy, + void * dst_ptr, + const void * src_ptr, + size_t size, + cl_uint num_events_in_wait_list, + const cl_event * event_wait_list, + cl_event * event) CL_API_SUFFIX__VERSION_2_0; + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueSVMMemFill(cl_command_queue command_queue, + void * svm_ptr, + const void * pattern, + size_t pattern_size, + size_t size, + cl_uint num_events_in_wait_list, + const cl_event * event_wait_list, + cl_event * event) CL_API_SUFFIX__VERSION_2_0; + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueSVMMap(cl_command_queue command_queue, + cl_bool blocking_map, + cl_map_flags flags, + void * svm_ptr, + size_t size, + cl_uint num_events_in_wait_list, + const cl_event * event_wait_list, + cl_event * event) CL_API_SUFFIX__VERSION_2_0; + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueSVMUnmap(cl_command_queue command_queue, + void * svm_ptr, + cl_uint num_events_in_wait_list, + const cl_event * event_wait_list, + cl_event * event) CL_API_SUFFIX__VERSION_2_0; + +#endif + +#ifdef CL_VERSION_2_1 + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueSVMMigrateMem(cl_command_queue command_queue, + cl_uint num_svm_pointers, + const void ** svm_pointers, + const size_t * sizes, + cl_mem_migration_flags flags, + cl_uint num_events_in_wait_list, + const cl_event * event_wait_list, + cl_event * event) CL_API_SUFFIX__VERSION_2_1; + +#endif + +#ifdef CL_VERSION_1_2 + +/* Extension function access + * + * Returns the extension function address for the given function name, + * or NULL if a valid function can not be found. The client must + * check to make sure the address is not NULL, before using or + * calling the returned function address. + */ +extern CL_API_ENTRY void * CL_API_CALL +clGetExtensionFunctionAddressForPlatform(cl_platform_id platform, + const char * func_name) CL_API_SUFFIX__VERSION_1_2; + +#endif + +#ifdef CL_USE_DEPRECATED_OPENCL_1_0_APIS + /* + * WARNING: + * This API introduces mutable state into the OpenCL implementation. It has been REMOVED + * to better facilitate thread safety. The 1.0 API is not thread safe. It is not tested by the + * OpenCL 1.1 conformance test, and consequently may not work or may not work dependably. + * It is likely to be non-performant. Use of this API is not advised. Use at your own risk. + * + * Software developers previously relying on this API are instructed to set the command queue + * properties when creating the queue, instead. + */ + extern CL_API_ENTRY cl_int CL_API_CALL + clSetCommandQueueProperty(cl_command_queue command_queue, + cl_command_queue_properties properties, + cl_bool enable, + cl_command_queue_properties * old_properties) CL_EXT_SUFFIX__VERSION_1_0_DEPRECATED; +#endif /* CL_USE_DEPRECATED_OPENCL_1_0_APIS */ + +/* Deprecated OpenCL 1.1 APIs */ +extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED cl_mem CL_API_CALL +clCreateImage2D(cl_context context, + cl_mem_flags flags, + const cl_image_format * image_format, + size_t image_width, + size_t image_height, + size_t image_row_pitch, + void * host_ptr, + cl_int * errcode_ret) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED; + +extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED cl_mem CL_API_CALL +clCreateImage3D(cl_context context, + cl_mem_flags flags, + const cl_image_format * image_format, + size_t image_width, + size_t image_height, + size_t image_depth, + size_t image_row_pitch, + size_t image_slice_pitch, + void * host_ptr, + cl_int * errcode_ret) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED; + +extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED cl_int CL_API_CALL +clEnqueueMarker(cl_command_queue command_queue, + cl_event * event) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED; + +extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED cl_int CL_API_CALL +clEnqueueWaitForEvents(cl_command_queue command_queue, + cl_uint num_events, + const cl_event * event_list) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED; + +extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED cl_int CL_API_CALL +clEnqueueBarrier(cl_command_queue command_queue) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED; + +extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED cl_int CL_API_CALL +clUnloadCompiler(void) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED; + +extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED void * CL_API_CALL +clGetExtensionFunctionAddress(const char * func_name) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED; + +/* Deprecated OpenCL 2.0 APIs */ +extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_2_DEPRECATED cl_command_queue CL_API_CALL +clCreateCommandQueue(cl_context context, + cl_device_id device, + cl_command_queue_properties properties, + cl_int * errcode_ret) CL_EXT_SUFFIX__VERSION_1_2_DEPRECATED; + +extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_2_DEPRECATED cl_sampler CL_API_CALL +clCreateSampler(cl_context context, + cl_bool normalized_coords, + cl_addressing_mode addressing_mode, + cl_filter_mode filter_mode, + cl_int * errcode_ret) CL_EXT_SUFFIX__VERSION_1_2_DEPRECATED; + +extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_2_DEPRECATED cl_int CL_API_CALL +clEnqueueTask(cl_command_queue command_queue, + cl_kernel kernel, + cl_uint num_events_in_wait_list, + const cl_event * event_wait_list, + cl_event * event) CL_EXT_SUFFIX__VERSION_1_2_DEPRECATED; + +#ifdef __cplusplus +} +#endif + +#endif /* __OPENCL_CL_H */ diff --git a/benchmarks/opencl/include/CL/cl.hpp b/benchmarks/opencl/include/CL/cl.hpp new file mode 100644 index 00000000..9edb0e47 --- /dev/null +++ b/benchmarks/opencl/include/CL/cl.hpp @@ -0,0 +1,12459 @@ +/******************************************************************************* + * Copyright (c) 2008-2013 The Khronos Group Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and/or associated documentation files (the + * "Materials"), to deal in the Materials without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Materials, and to + * permit persons to whom the Materials are furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Materials. + * + * THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. + ******************************************************************************/ + +/*! \file + * + * \brief C++ bindings for OpenCL 1.0 (rev 48), OpenCL 1.1 (rev 33) and + * OpenCL 1.2 (rev 15) + * \author Benedict R. Gaster, Laurent Morichetti and Lee Howes + * + * Additions and fixes from: + * Brian Cole, March 3rd 2010 and April 2012 + * Matt Gruenke, April 2012. + * Bruce Merry, February 2013. + * Tom Deakin and Simon McIntosh-Smith, July 2013 + * + * \version 1.2.6 + * \date August 2013 + * + * Optional extension support + * + * cl + * cl_ext_device_fission + * #define USE_CL_DEVICE_FISSION + */ + +/*! \mainpage + * \section intro Introduction + * For many large applications C++ is the language of choice and so it seems + * reasonable to define C++ bindings for OpenCL. + * + * + * The interface is contained with a single C++ header file \em cl.hpp and all + * definitions are contained within the namespace \em cl. There is no additional + * requirement to include \em cl.h and to use either the C++ or original C + * bindings it is enough to simply include \em cl.hpp. + * + * The bindings themselves are lightweight and correspond closely to the + * underlying C API. Using the C++ bindings introduces no additional execution + * overhead. + * + * For detail documentation on the bindings see: + * + * The OpenCL C++ Wrapper API 1.2 (revision 09) + * http://www.khronos.org/registry/cl/specs/opencl-cplusplus-1.2.pdf + * + * \section example Example + * + * The following example shows a general use case for the C++ + * bindings, including support for the optional exception feature and + * also the supplied vector and string classes, see following sections for + * decriptions of these features. + * + * \code + * #define __CL_ENABLE_EXCEPTIONS + * + * #if defined(__APPLE__) || defined(__MACOSX) + * #include + * #else + * #include + * #endif + * #include + * #include + * #include + * + * const char * helloStr = "__kernel void " + * "hello(void) " + * "{ " + * " " + * "} "; + * + * int + * main(void) + * { + * cl_int err = CL_SUCCESS; + * try { + * + * std::vector platforms; + * cl::Platform::get(&platforms); + * if (platforms.size() == 0) { + * std::cout << "Platform size 0\n"; + * return -1; + * } + * + * cl_context_properties properties[] = + * { CL_CONTEXT_PLATFORM, (cl_context_properties)(platforms[0])(), 0}; + * cl::Context context(CL_DEVICE_TYPE_CPU, properties); + * + * std::vector devices = context.getInfo(); + * + * cl::Program::Sources source(1, + * std::make_pair(helloStr,strlen(helloStr))); + * cl::Program program_ = cl::Program(context, source); + * program_.build(devices); + * + * cl::Kernel kernel(program_, "hello", &err); + * + * cl::Event event; + * cl::CommandQueue queue(context, devices[0], 0, &err); + * queue.enqueueNDRangeKernel( + * kernel, + * cl::NullRange, + * cl::NDRange(4,4), + * cl::NullRange, + * NULL, + * &event); + * + * event.wait(); + * } + * catch (cl::Error err) { + * std::cerr + * << "ERROR: " + * << err.what() + * << "(" + * << err.err() + * << ")" + * << std::endl; + * } + * + * return EXIT_SUCCESS; + * } + * + * \endcode + * + */ +#ifndef CL_HPP_ +#define CL_HPP_ + +#ifdef _WIN32 + +#include +#include +#include +#include + +#if defined(__CL_ENABLE_EXCEPTIONS) +#include +#endif // #if defined(__CL_ENABLE_EXCEPTIONS) + +#pragma push_macro("max") +#undef max +#if defined(USE_DX_INTEROP) +#include +#include +#endif +#endif // _WIN32 + +// +#if defined(USE_CL_DEVICE_FISSION) +#include +#endif + +#if defined(__APPLE__) || defined(__MACOSX) +#include +#include +#include +#elif defined(__ANDROID__) +#include +#include +#else +#include +#include +#endif // !__APPLE__ + +// To avoid accidentally taking ownership of core OpenCL types +// such as cl_kernel constructors are made explicit +// under OpenCL 1.2 +#if defined(CL_VERSION_1_2) && !defined(CL_USE_DEPRECATED_OPENCL_1_1_APIS) +#define __CL_EXPLICIT_CONSTRUCTORS explicit +#else // #if defined(CL_USE_DEPRECATED_OPENCL_1_1_APIS) +#define __CL_EXPLICIT_CONSTRUCTORS +#endif // #if defined(CL_USE_DEPRECATED_OPENCL_1_1_APIS) + +// Define deprecated prefixes and suffixes to ensure compilation +// in case they are not pre-defined +#if !defined(CL_EXT_PREFIX__VERSION_1_1_DEPRECATED) +#define CL_EXT_PREFIX__VERSION_1_1_DEPRECATED +#endif // #if !defined(CL_EXT_PREFIX__VERSION_1_1_DEPRECATED) +#if !defined(CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED) +#define CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED +#endif // #if !defined(CL_EXT_PREFIX__VERSION_1_1_DEPRECATED) + +#if !defined(CL_CALLBACK) +#define CL_CALLBACK +#endif //CL_CALLBACK + +#include +#include + +#if !defined(__NO_STD_VECTOR) +#include +#endif + +#if !defined(__NO_STD_STRING) +#include +#endif + +#if defined(linux) || defined(__APPLE__) || defined(__MACOSX) || defined(__ANDROID__) || defined(__FreeBSD_kernel__) || defined(__GNU__) +#include + +#endif // linux + +#include + + +/*! \namespace cl + * + * \brief The OpenCL C++ bindings are defined within this namespace. + * + */ +namespace cl { + +class Memory; + +/** + * Deprecated APIs for 1.2 + */ +#if defined(CL_USE_DEPRECATED_OPENCL_1_1_APIS) || (defined(CL_VERSION_1_1) && !defined(CL_VERSION_1_2)) +#define __INIT_CL_EXT_FCN_PTR(name) \ + if(!pfn_##name) { \ + pfn_##name = (PFN_##name) \ + clGetExtensionFunctionAddress(#name); \ + if(!pfn_##name) { \ + } \ + } +#endif // #if defined(CL_VERSION_1_1) + +#if defined(CL_VERSION_1_2) +#define __INIT_CL_EXT_FCN_PTR_PLATFORM(platform, name) \ + if(!pfn_##name) { \ + pfn_##name = (PFN_##name) \ + clGetExtensionFunctionAddressForPlatform(platform, #name); \ + if(!pfn_##name) { \ + } \ + } +#endif // #if defined(CL_VERSION_1_1) + +class Program; +class Device; +class Context; +class CommandQueue; +class Memory; +class Buffer; + +#if defined(__CL_ENABLE_EXCEPTIONS) +/*! \brief Exception class + * + * This may be thrown by API functions when __CL_ENABLE_EXCEPTIONS is defined. + */ +class Error : public std::exception +{ +private: + cl_int err_; + const char * errStr_; +public: + /*! \brief Create a new CL error exception for a given error code + * and corresponding message. + * + * \param err error code value. + * + * \param errStr a descriptive string that must remain in scope until + * handling of the exception has concluded. If set, it + * will be returned by what(). + */ + Error(cl_int err, const char * errStr = NULL) : err_(err), errStr_(errStr) + {} + + ~Error() throw() {} + + /*! \brief Get error string associated with exception + * + * \return A memory pointer to the error message string. + */ + virtual const char * what() const throw () + { + if (errStr_ == NULL) { + return "empty"; + } + else { + return errStr_; + } + } + + /*! \brief Get error code associated with exception + * + * \return The error code. + */ + cl_int err(void) const { return err_; } +}; + +#define __ERR_STR(x) #x +#else +#define __ERR_STR(x) NULL +#endif // __CL_ENABLE_EXCEPTIONS + + +namespace detail +{ +#if defined(__CL_ENABLE_EXCEPTIONS) +static inline cl_int errHandler ( + cl_int err, + const char * errStr = NULL) +{ + if (err != CL_SUCCESS) { + throw Error(err, errStr); + } + return err; +} +#else +static inline cl_int errHandler (cl_int err, const char * errStr = NULL) +{ + (void) errStr; // suppress unused variable warning + return err; +} +#endif // __CL_ENABLE_EXCEPTIONS +} + + + +//! \cond DOXYGEN_DETAIL +#if !defined(__CL_USER_OVERRIDE_ERROR_STRINGS) +#define __GET_DEVICE_INFO_ERR __ERR_STR(clGetDeviceInfo) +#define __GET_PLATFORM_INFO_ERR __ERR_STR(clGetPlatformInfo) +#define __GET_DEVICE_IDS_ERR __ERR_STR(clGetDeviceIDs) +#define __GET_PLATFORM_IDS_ERR __ERR_STR(clGetPlatformIDs) +#define __GET_CONTEXT_INFO_ERR __ERR_STR(clGetContextInfo) +#define __GET_EVENT_INFO_ERR __ERR_STR(clGetEventInfo) +#define __GET_EVENT_PROFILE_INFO_ERR __ERR_STR(clGetEventProfileInfo) +#define __GET_MEM_OBJECT_INFO_ERR __ERR_STR(clGetMemObjectInfo) +#define __GET_IMAGE_INFO_ERR __ERR_STR(clGetImageInfo) +#define __GET_SAMPLER_INFO_ERR __ERR_STR(clGetSamplerInfo) +#define __GET_KERNEL_INFO_ERR __ERR_STR(clGetKernelInfo) +#if defined(CL_VERSION_1_2) +#define __GET_KERNEL_ARG_INFO_ERR __ERR_STR(clGetKernelArgInfo) +#endif // #if defined(CL_VERSION_1_2) +#define __GET_KERNEL_WORK_GROUP_INFO_ERR __ERR_STR(clGetKernelWorkGroupInfo) +#define __GET_PROGRAM_INFO_ERR __ERR_STR(clGetProgramInfo) +#define __GET_PROGRAM_BUILD_INFO_ERR __ERR_STR(clGetProgramBuildInfo) +#define __GET_COMMAND_QUEUE_INFO_ERR __ERR_STR(clGetCommandQueueInfo) + +#define __CREATE_CONTEXT_ERR __ERR_STR(clCreateContext) +#define __CREATE_CONTEXT_FROM_TYPE_ERR __ERR_STR(clCreateContextFromType) +#define __GET_SUPPORTED_IMAGE_FORMATS_ERR __ERR_STR(clGetSupportedImageFormats) + +#define __CREATE_BUFFER_ERR __ERR_STR(clCreateBuffer) +#define __COPY_ERR __ERR_STR(cl::copy) +#define __CREATE_SUBBUFFER_ERR __ERR_STR(clCreateSubBuffer) +#define __CREATE_GL_BUFFER_ERR __ERR_STR(clCreateFromGLBuffer) +#define __CREATE_GL_RENDER_BUFFER_ERR __ERR_STR(clCreateFromGLBuffer) +#define __GET_GL_OBJECT_INFO_ERR __ERR_STR(clGetGLObjectInfo) +#if defined(CL_VERSION_1_2) +#define __CREATE_IMAGE_ERR __ERR_STR(clCreateImage) +#define __CREATE_GL_TEXTURE_ERR __ERR_STR(clCreateFromGLTexture) +#define __IMAGE_DIMENSION_ERR __ERR_STR(Incorrect image dimensions) +#endif // #if defined(CL_VERSION_1_2) +#define __CREATE_SAMPLER_ERR __ERR_STR(clCreateSampler) +#define __SET_MEM_OBJECT_DESTRUCTOR_CALLBACK_ERR __ERR_STR(clSetMemObjectDestructorCallback) + +#define __CREATE_USER_EVENT_ERR __ERR_STR(clCreateUserEvent) +#define __SET_USER_EVENT_STATUS_ERR __ERR_STR(clSetUserEventStatus) +#define __SET_EVENT_CALLBACK_ERR __ERR_STR(clSetEventCallback) +#define __WAIT_FOR_EVENTS_ERR __ERR_STR(clWaitForEvents) + +#define __CREATE_KERNEL_ERR __ERR_STR(clCreateKernel) +#define __SET_KERNEL_ARGS_ERR __ERR_STR(clSetKernelArg) +#define __CREATE_PROGRAM_WITH_SOURCE_ERR __ERR_STR(clCreateProgramWithSource) +#define __CREATE_PROGRAM_WITH_BINARY_ERR __ERR_STR(clCreateProgramWithBinary) +#if defined(CL_VERSION_1_2) +#define __CREATE_PROGRAM_WITH_BUILT_IN_KERNELS_ERR __ERR_STR(clCreateProgramWithBuiltInKernels) +#endif // #if defined(CL_VERSION_1_2) +#define __BUILD_PROGRAM_ERR __ERR_STR(clBuildProgram) +#if defined(CL_VERSION_1_2) +#define __COMPILE_PROGRAM_ERR __ERR_STR(clCompileProgram) + +#endif // #if defined(CL_VERSION_1_2) +#define __CREATE_KERNELS_IN_PROGRAM_ERR __ERR_STR(clCreateKernelsInProgram) + +#define __CREATE_COMMAND_QUEUE_ERR __ERR_STR(clCreateCommandQueue) +#define __SET_COMMAND_QUEUE_PROPERTY_ERR __ERR_STR(clSetCommandQueueProperty) +#define __ENQUEUE_READ_BUFFER_ERR __ERR_STR(clEnqueueReadBuffer) +#define __ENQUEUE_READ_BUFFER_RECT_ERR __ERR_STR(clEnqueueReadBufferRect) +#define __ENQUEUE_WRITE_BUFFER_ERR __ERR_STR(clEnqueueWriteBuffer) +#define __ENQUEUE_WRITE_BUFFER_RECT_ERR __ERR_STR(clEnqueueWriteBufferRect) +#define __ENQUEUE_COPY_BUFFER_ERR __ERR_STR(clEnqueueCopyBuffer) +#define __ENQUEUE_COPY_BUFFER_RECT_ERR __ERR_STR(clEnqueueCopyBufferRect) +#define __ENQUEUE_FILL_BUFFER_ERR __ERR_STR(clEnqueueFillBuffer) +#define __ENQUEUE_READ_IMAGE_ERR __ERR_STR(clEnqueueReadImage) +#define __ENQUEUE_WRITE_IMAGE_ERR __ERR_STR(clEnqueueWriteImage) +#define __ENQUEUE_COPY_IMAGE_ERR __ERR_STR(clEnqueueCopyImage) +#define __ENQUEUE_FILL_IMAGE_ERR __ERR_STR(clEnqueueFillImage) +#define __ENQUEUE_COPY_IMAGE_TO_BUFFER_ERR __ERR_STR(clEnqueueCopyImageToBuffer) +#define __ENQUEUE_COPY_BUFFER_TO_IMAGE_ERR __ERR_STR(clEnqueueCopyBufferToImage) +#define __ENQUEUE_MAP_BUFFER_ERR __ERR_STR(clEnqueueMapBuffer) +#define __ENQUEUE_MAP_IMAGE_ERR __ERR_STR(clEnqueueMapImage) +#define __ENQUEUE_UNMAP_MEM_OBJECT_ERR __ERR_STR(clEnqueueUnMapMemObject) +#define __ENQUEUE_NDRANGE_KERNEL_ERR __ERR_STR(clEnqueueNDRangeKernel) +#define __ENQUEUE_TASK_ERR __ERR_STR(clEnqueueTask) +#define __ENQUEUE_NATIVE_KERNEL __ERR_STR(clEnqueueNativeKernel) +#if defined(CL_VERSION_1_2) +#define __ENQUEUE_MIGRATE_MEM_OBJECTS_ERR __ERR_STR(clEnqueueMigrateMemObjects) +#endif // #if defined(CL_VERSION_1_2) + +#define __ENQUEUE_ACQUIRE_GL_ERR __ERR_STR(clEnqueueAcquireGLObjects) +#define __ENQUEUE_RELEASE_GL_ERR __ERR_STR(clEnqueueReleaseGLObjects) + + +#define __RETAIN_ERR __ERR_STR(Retain Object) +#define __RELEASE_ERR __ERR_STR(Release Object) +#define __FLUSH_ERR __ERR_STR(clFlush) +#define __FINISH_ERR __ERR_STR(clFinish) +#define __VECTOR_CAPACITY_ERR __ERR_STR(Vector capacity error) + +/** + * CL 1.2 version that uses device fission. + */ +#if defined(CL_VERSION_1_2) +#define __CREATE_SUB_DEVICES __ERR_STR(clCreateSubDevices) +#else +#define __CREATE_SUB_DEVICES __ERR_STR(clCreateSubDevicesEXT) +#endif // #if defined(CL_VERSION_1_2) + +/** + * Deprecated APIs for 1.2 + */ +#if defined(CL_USE_DEPRECATED_OPENCL_1_1_APIS) || (defined(CL_VERSION_1_1) && !defined(CL_VERSION_1_2)) +#define __ENQUEUE_MARKER_ERR __ERR_STR(clEnqueueMarker) +#define __ENQUEUE_WAIT_FOR_EVENTS_ERR __ERR_STR(clEnqueueWaitForEvents) +#define __ENQUEUE_BARRIER_ERR __ERR_STR(clEnqueueBarrier) +#define __UNLOAD_COMPILER_ERR __ERR_STR(clUnloadCompiler) +#define __CREATE_GL_TEXTURE_2D_ERR __ERR_STR(clCreateFromGLTexture2D) +#define __CREATE_GL_TEXTURE_3D_ERR __ERR_STR(clCreateFromGLTexture3D) +#define __CREATE_IMAGE2D_ERR __ERR_STR(clCreateImage2D) +#define __CREATE_IMAGE3D_ERR __ERR_STR(clCreateImage3D) +#endif // #if defined(CL_VERSION_1_1) + +#endif // __CL_USER_OVERRIDE_ERROR_STRINGS +//! \endcond + +/** + * CL 1.2 marker and barrier commands + */ +#if defined(CL_VERSION_1_2) +#define __ENQUEUE_MARKER_WAIT_LIST_ERR __ERR_STR(clEnqueueMarkerWithWaitList) +#define __ENQUEUE_BARRIER_WAIT_LIST_ERR __ERR_STR(clEnqueueBarrierWithWaitList) +#endif // #if defined(CL_VERSION_1_2) + +#if !defined(__USE_DEV_STRING) && !defined(__NO_STD_STRING) +typedef std::string STRING_CLASS; +#elif !defined(__USE_DEV_STRING) + +/*! \class string + * \brief Simple string class, that provides a limited subset of std::string + * functionality but avoids many of the issues that come with that class. + + * \note Deprecated. Please use std::string as default or + * re-define the string class to match the std::string + * interface by defining STRING_CLASS + */ +class CL_EXT_PREFIX__VERSION_1_1_DEPRECATED string CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED +{ +private: + ::size_t size_; + char * str_; +public: + //! \brief Constructs an empty string, allocating no memory. + string(void) : size_(0), str_(NULL) + { + } + + /*! \brief Constructs a string populated from an arbitrary value of + * specified size. + * + * An extra '\0' is added, in case none was contained in str. + * + * \param str the initial value of the string instance. Note that '\0' + * characters receive no special treatment. If NULL, + * the string is left empty, with a size of 0. + * + * \param size the number of characters to copy from str. + */ + string(const char * str, ::size_t size) : + size_(size), + str_(NULL) + { + if( size > 0 ) { + str_ = new char[size_+1]; + if (str_ != NULL) { + memcpy(str_, str, size_ * sizeof(char)); + str_[size_] = '\0'; + } + else { + size_ = 0; + } + } + } + + /*! \brief Constructs a string populated from a null-terminated value. + * + * \param str the null-terminated initial value of the string instance. + * If NULL, the string is left empty, with a size of 0. + */ + string(const char * str) : + size_(0), + str_(NULL) + { + if( str ) { + size_= ::strlen(str); + } + if( size_ > 0 ) { + str_ = new char[size_ + 1]; + if (str_ != NULL) { + memcpy(str_, str, (size_ + 1) * sizeof(char)); + } + } + } + + void resize( ::size_t n ) + { + if( size_ == n ) { + return; + } + if (n == 0) { + if( str_ ) { + delete [] str_; + } + str_ = NULL; + size_ = 0; + } + else { + char *newString = new char[n + 1]; + int copySize = n; + if( size_ < n ) { + copySize = size_; + } + size_ = n; + + if(str_) { + memcpy(newString, str_, (copySize + 1) * sizeof(char)); + } + if( copySize < size_ ) { + memset(newString + copySize, 0, size_ - copySize); + } + newString[size_] = '\0'; + + delete [] str_; + str_ = newString; + } + } + + const char& operator[] ( ::size_t pos ) const + { + return str_[pos]; + } + + char& operator[] ( ::size_t pos ) + { + return str_[pos]; + } + + /*! \brief Copies the value of another string to this one. + * + * \param rhs the string to copy. + * + * \returns a reference to the modified instance. + */ + string& operator=(const string& rhs) + { + if (this == &rhs) { + return *this; + } + + if( str_ != NULL ) { + delete [] str_; + str_ = NULL; + size_ = 0; + } + + if (rhs.size_ == 0 || rhs.str_ == NULL) { + str_ = NULL; + size_ = 0; + } + else { + str_ = new char[rhs.size_ + 1]; + size_ = rhs.size_; + + if (str_ != NULL) { + memcpy(str_, rhs.str_, (size_ + 1) * sizeof(char)); + } + else { + size_ = 0; + } + } + + return *this; + } + + /*! \brief Constructs a string by copying the value of another instance. + * + * \param rhs the string to copy. + */ + string(const string& rhs) : + size_(0), + str_(NULL) + { + *this = rhs; + } + + //! \brief Destructor - frees memory used to hold the current value. + ~string() + { + delete[] str_; + str_ = NULL; + } + + //! \brief Queries the length of the string, excluding any added '\0's. + ::size_t size(void) const { return size_; } + + //! \brief Queries the length of the string, excluding any added '\0's. + ::size_t length(void) const { return size(); } + + /*! \brief Returns a pointer to the private copy held by this instance, + * or "" if empty/unset. + */ + const char * c_str(void) const { return (str_) ? str_ : "";} +}; +typedef cl::string STRING_CLASS; +#endif // #elif !defined(__USE_DEV_STRING) + +#if !defined(__USE_DEV_VECTOR) && !defined(__NO_STD_VECTOR) +#define VECTOR_CLASS std::vector +#elif !defined(__USE_DEV_VECTOR) +#define VECTOR_CLASS cl::vector + +#if !defined(__MAX_DEFAULT_VECTOR_SIZE) +#define __MAX_DEFAULT_VECTOR_SIZE 10 +#endif + +/*! \class vector + * \brief Fixed sized vector implementation that mirroring + * + * \note Deprecated. Please use std::vector as default or + * re-define the vector class to match the std::vector + * interface by defining VECTOR_CLASS + + * \note Not recommended for use with custom objects as + * current implementation will construct N elements + * + * std::vector functionality. + * \brief Fixed sized vector compatible with std::vector. + * + * \note + * This differs from std::vector<> not just in memory allocation, + * but also in terms of when members are constructed, destroyed, + * and assigned instead of being copy constructed. + * + * \param T type of element contained in the vector. + * + * \param N maximum size of the vector. + */ +template +class CL_EXT_PREFIX__VERSION_1_1_DEPRECATED vector CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED +{ +private: + T data_[N]; + unsigned int size_; + +public: + //! \brief Constructs an empty vector with no memory allocated. + vector() : + size_(static_cast(0)) + {} + + //! \brief Deallocates the vector's memory and destroys all of its elements. + ~vector() + { + clear(); + } + + //! \brief Returns the number of elements currently contained. + unsigned int size(void) const + { + return size_; + } + + /*! \brief Empties the vector of all elements. + * \note + * This does not deallocate memory but will invoke destructors + * on contained elements. + */ + void clear() + { + while(!empty()) { + pop_back(); + } + } + + /*! \brief Appends an element after the last valid element. + * Calling this on a vector that has reached capacity will throw an + * exception if exceptions are enabled. + */ + void push_back (const T& x) + { + if (size() < N) { + new (&data_[size_]) T(x); + size_++; + } else { + detail::errHandler(CL_MEM_OBJECT_ALLOCATION_FAILURE, __VECTOR_CAPACITY_ERR); + } + } + + /*! \brief Removes the last valid element from the vector. + * Calling this on an empty vector will throw an exception + * if exceptions are enabled. + */ + void pop_back(void) + { + if (size_ != 0) { + --size_; + data_[size_].~T(); + } else { + detail::errHandler(CL_MEM_OBJECT_ALLOCATION_FAILURE, __VECTOR_CAPACITY_ERR); + } + } + + /*! \brief Constructs with a value copied from another. + * + * \param vec the vector to copy. + */ + vector(const vector& vec) : + size_(vec.size_) + { + if (size_ != 0) { + assign(vec.begin(), vec.end()); + } + } + + /*! \brief Constructs with a specified number of initial elements. + * + * \param size number of initial elements. + * + * \param val value of initial elements. + */ + vector(unsigned int size, const T& val = T()) : + size_(0) + { + for (unsigned int i = 0; i < size; i++) { + push_back(val); + } + } + + /*! \brief Overwrites the current content with that copied from another + * instance. + * + * \param rhs vector to copy. + * + * \returns a reference to this. + */ + vector& operator=(const vector& rhs) + { + if (this == &rhs) { + return *this; + } + + if (rhs.size_ != 0) { + assign(rhs.begin(), rhs.end()); + } else { + clear(); + } + + return *this; + } + + /*! \brief Tests equality against another instance. + * + * \param vec the vector against which to compare. + */ + bool operator==(vector &vec) + { + if (size() != vec.size()) { + return false; + } + + for( unsigned int i = 0; i < size(); ++i ) { + if( operator[](i) != vec[i] ) { + return false; + } + } + return true; + } + + //! \brief Conversion operator to T*. + operator T* () { return data_; } + + //! \brief Conversion operator to const T*. + operator const T* () const { return data_; } + + //! \brief Tests whether this instance has any elements. + bool empty (void) const + { + return size_==0; + } + + //! \brief Returns the maximum number of elements this instance can hold. + unsigned int max_size (void) const + { + return N; + } + + //! \brief Returns the maximum number of elements this instance can hold. + unsigned int capacity () const + { + return N; + } + + /*! \brief Returns a reference to a given element. + * + * \param index which element to access. * + * \note + * The caller is responsible for ensuring index is >= 0 and < size(). + */ + T& operator[](int index) + { + return data_[index]; + } + + /*! \brief Returns a const reference to a given element. + * + * \param index which element to access. + * + * \note + * The caller is responsible for ensuring index is >= 0 and < size(). + */ + const T& operator[](int index) const + { + return data_[index]; + } + + /*! \brief Assigns elements of the vector based on a source iterator range. + * + * \param start Beginning iterator of source range + * \param end Enditerator of source range + * + * \note + * Will throw an exception if exceptions are enabled and size exceeded. + */ + template + void assign(I start, I end) + { + clear(); + while(start != end) { + push_back(*start); + start++; + } + } + + /*! \class iterator + * \brief Const iterator class for vectors + */ + class iterator + { + private: + const vector *vec_; + int index_; + + /** + * Internal iterator constructor to capture reference + * to the vector it iterates over rather than taking + * the vector by copy. + */ + iterator (const vector &vec, int index) : + vec_(&vec) + { + if( !vec.empty() ) { + index_ = index; + } else { + index_ = -1; + } + } + + public: + iterator(void) : + index_(-1), + vec_(NULL) + { + } + + iterator(const iterator& rhs) : + vec_(rhs.vec_), + index_(rhs.index_) + { + } + + ~iterator(void) {} + + static iterator begin(const cl::vector &vec) + { + iterator i(vec, 0); + + return i; + } + + static iterator end(const cl::vector &vec) + { + iterator i(vec, vec.size()); + + return i; + } + + bool operator==(iterator i) + { + return ((vec_ == i.vec_) && + (index_ == i.index_)); + } + + bool operator!=(iterator i) + { + return (!(*this==i)); + } + + iterator& operator++() + { + ++index_; + return *this; + } + + iterator operator++(int) + { + iterator retVal(*this); + ++index_; + return retVal; + } + + iterator& operator--() + { + --index_; + return *this; + } + + iterator operator--(int) + { + iterator retVal(*this); + --index_; + return retVal; + } + + const T& operator *() const + { + return (*vec_)[index_]; + } + }; + + iterator begin(void) + { + return iterator::begin(*this); + } + + iterator begin(void) const + { + return iterator::begin(*this); + } + + iterator end(void) + { + return iterator::end(*this); + } + + iterator end(void) const + { + return iterator::end(*this); + } + + T& front(void) + { + return data_[0]; + } + + T& back(void) + { + return data_[size_]; + } + + const T& front(void) const + { + return data_[0]; + } + + const T& back(void) const + { + return data_[size_-1]; + } +}; +#endif // #if !defined(__USE_DEV_VECTOR) && !defined(__NO_STD_VECTOR) + + + + + +namespace detail { +#define __DEFAULT_NOT_INITIALIZED 1 +#define __DEFAULT_BEING_INITIALIZED 2 +#define __DEFAULT_INITIALIZED 4 + + /* + * Compare and exchange primitives are needed for handling of defaults + */ + inline int compare_exchange(volatile int * dest, int exchange, int comparand) + { +#ifdef _WIN32 + return (int)(InterlockedCompareExchange( + (volatile long*)dest, + (long)exchange, + (long)comparand)); +#elif defined(__APPLE__) || defined(__MACOSX) + return OSAtomicOr32Orig((uint32_t)exchange, (volatile uint32_t*)dest); +#else // !_WIN32 || defined(__APPLE__) || defined(__MACOSX) + return (__sync_val_compare_and_swap( + dest, + comparand, + exchange)); +#endif // !_WIN32 + } + + inline void fence() { +#ifdef _MSC_VER + _mm_mfence(); +#else + __sync_synchronize(); +#endif + } +} // namespace details + + +/*! \brief class used to interface between C++ and + * OpenCL C calls that require arrays of size_t values, whose + * size is known statically. + */ +template +class size_t +{ +private: + ::size_t data_[N]; + +public: + //! \brief Initialize size_t to all 0s + size_t() + { + for( int i = 0; i < N; ++i ) { + data_[i] = 0; + } + } + + ::size_t& operator[](int index) + { + return data_[index]; + } + + const ::size_t& operator[](int index) const + { + return data_[index]; + } + + //! \brief Conversion operator to T*. + operator ::size_t* () { return data_; } + + //! \brief Conversion operator to const T*. + operator const ::size_t* () const { return data_; } +}; + +namespace detail { + +// Generic getInfoHelper. The final parameter is used to guide overload +// resolution: the actual parameter passed is an int, which makes this +// a worse conversion sequence than a specialization that declares the +// parameter as an int. +template +inline cl_int getInfoHelper(Functor f, cl_uint name, T* param, long) +{ + return f(name, sizeof(T), param, NULL); +} + +// Specialized getInfoHelper for VECTOR_CLASS params +template +inline cl_int getInfoHelper(Func f, cl_uint name, VECTOR_CLASS* param, long) +{ + ::size_t required; + cl_int err = f(name, 0, NULL, &required); + if (err != CL_SUCCESS) { + return err; + } + + T* value = (T*) alloca(required); + err = f(name, required, value, NULL); + if (err != CL_SUCCESS) { + return err; + } + + param->assign(&value[0], &value[required/sizeof(T)]); + return CL_SUCCESS; +} + +/* Specialization for reference-counted types. This depends on the + * existence of Wrapper::cl_type, and none of the other types having the + * cl_type member. Note that simplify specifying the parameter as Wrapper + * does not work, because when using a derived type (e.g. Context) the generic + * template will provide a better match. + */ +template +inline cl_int getInfoHelper(Func f, cl_uint name, VECTOR_CLASS* param, int, typename T::cl_type = 0) +{ + ::size_t required; + cl_int err = f(name, 0, NULL, &required); + if (err != CL_SUCCESS) { + return err; + } + + typename T::cl_type * value = (typename T::cl_type *) alloca(required); + err = f(name, required, value, NULL); + if (err != CL_SUCCESS) { + return err; + } + + ::size_t elements = required / sizeof(typename T::cl_type); + param->assign(&value[0], &value[elements]); + for (::size_t i = 0; i < elements; i++) + { + if (value[i] != NULL) + { + err = (*param)[i].retain(); + if (err != CL_SUCCESS) { + return err; + } + } + } + return CL_SUCCESS; +} + +// Specialized for getInfo +template +inline cl_int getInfoHelper(Func f, cl_uint name, VECTOR_CLASS* param, int) +{ + cl_int err = f(name, param->size() * sizeof(char *), &(*param)[0], NULL); + + if (err != CL_SUCCESS) { + return err; + } + + return CL_SUCCESS; +} + +// Specialized GetInfoHelper for STRING_CLASS params +template +inline cl_int getInfoHelper(Func f, cl_uint name, STRING_CLASS* param, long) +{ + ::size_t required; + cl_int err = f(name, 0, NULL, &required); + if (err != CL_SUCCESS) { + return err; + } + + char* value = (char*) alloca(required); + err = f(name, required, value, NULL); + if (err != CL_SUCCESS) { + return err; + } + + *param = value; + return CL_SUCCESS; +} + +// Specialized GetInfoHelper for cl::size_t params +template +inline cl_int getInfoHelper(Func f, cl_uint name, size_t* param, long) +{ + ::size_t required; + cl_int err = f(name, 0, NULL, &required); + if (err != CL_SUCCESS) { + return err; + } + + ::size_t* value = (::size_t*) alloca(required); + err = f(name, required, value, NULL); + if (err != CL_SUCCESS) { + return err; + } + + for(int i = 0; i < N; ++i) { + (*param)[i] = value[i]; + } + + return CL_SUCCESS; +} + +template struct ReferenceHandler; + +/* Specialization for reference-counted types. This depends on the + * existence of Wrapper::cl_type, and none of the other types having the + * cl_type member. Note that simplify specifying the parameter as Wrapper + * does not work, because when using a derived type (e.g. Context) the generic + * template will provide a better match. + */ +template +inline cl_int getInfoHelper(Func f, cl_uint name, T* param, int, typename T::cl_type = 0) +{ + typename T::cl_type value; + cl_int err = f(name, sizeof(value), &value, NULL); + if (err != CL_SUCCESS) { + return err; + } + *param = value; + if (value != NULL) + { + err = param->retain(); + if (err != CL_SUCCESS) { + return err; + } + } + return CL_SUCCESS; +} + +#define __PARAM_NAME_INFO_1_0(F) \ + F(cl_platform_info, CL_PLATFORM_PROFILE, STRING_CLASS) \ + F(cl_platform_info, CL_PLATFORM_VERSION, STRING_CLASS) \ + F(cl_platform_info, CL_PLATFORM_NAME, STRING_CLASS) \ + F(cl_platform_info, CL_PLATFORM_VENDOR, STRING_CLASS) \ + F(cl_platform_info, CL_PLATFORM_EXTENSIONS, STRING_CLASS) \ + \ + F(cl_device_info, CL_DEVICE_TYPE, cl_device_type) \ + F(cl_device_info, CL_DEVICE_VENDOR_ID, cl_uint) \ + F(cl_device_info, CL_DEVICE_MAX_COMPUTE_UNITS, cl_uint) \ + F(cl_device_info, CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS, cl_uint) \ + F(cl_device_info, CL_DEVICE_MAX_WORK_GROUP_SIZE, ::size_t) \ + F(cl_device_info, CL_DEVICE_MAX_WORK_ITEM_SIZES, VECTOR_CLASS< ::size_t>) \ + F(cl_device_info, CL_DEVICE_PREFERRED_VECTOR_WIDTH_CHAR, cl_uint) \ + F(cl_device_info, CL_DEVICE_PREFERRED_VECTOR_WIDTH_SHORT, cl_uint) \ + F(cl_device_info, CL_DEVICE_PREFERRED_VECTOR_WIDTH_INT, cl_uint) \ + F(cl_device_info, CL_DEVICE_PREFERRED_VECTOR_WIDTH_LONG, cl_uint) \ + F(cl_device_info, CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT, cl_uint) \ + F(cl_device_info, CL_DEVICE_PREFERRED_VECTOR_WIDTH_DOUBLE, cl_uint) \ + F(cl_device_info, CL_DEVICE_MAX_CLOCK_FREQUENCY, cl_uint) \ + F(cl_device_info, CL_DEVICE_ADDRESS_BITS, cl_uint) \ + F(cl_device_info, CL_DEVICE_MAX_READ_IMAGE_ARGS, cl_uint) \ + F(cl_device_info, CL_DEVICE_MAX_WRITE_IMAGE_ARGS, cl_uint) \ + F(cl_device_info, CL_DEVICE_MAX_MEM_ALLOC_SIZE, cl_ulong) \ + F(cl_device_info, CL_DEVICE_IMAGE2D_MAX_WIDTH, ::size_t) \ + F(cl_device_info, CL_DEVICE_IMAGE2D_MAX_HEIGHT, ::size_t) \ + F(cl_device_info, CL_DEVICE_IMAGE3D_MAX_WIDTH, ::size_t) \ + F(cl_device_info, CL_DEVICE_IMAGE3D_MAX_HEIGHT, ::size_t) \ + F(cl_device_info, CL_DEVICE_IMAGE3D_MAX_DEPTH, ::size_t) \ + F(cl_device_info, CL_DEVICE_IMAGE_SUPPORT, cl_bool) \ + F(cl_device_info, CL_DEVICE_MAX_PARAMETER_SIZE, ::size_t) \ + F(cl_device_info, CL_DEVICE_MAX_SAMPLERS, cl_uint) \ + F(cl_device_info, CL_DEVICE_MEM_BASE_ADDR_ALIGN, cl_uint) \ + F(cl_device_info, CL_DEVICE_MIN_DATA_TYPE_ALIGN_SIZE, cl_uint) \ + F(cl_device_info, CL_DEVICE_SINGLE_FP_CONFIG, cl_device_fp_config) \ + F(cl_device_info, CL_DEVICE_GLOBAL_MEM_CACHE_TYPE, cl_device_mem_cache_type) \ + F(cl_device_info, CL_DEVICE_GLOBAL_MEM_CACHELINE_SIZE, cl_uint)\ + F(cl_device_info, CL_DEVICE_GLOBAL_MEM_CACHE_SIZE, cl_ulong) \ + F(cl_device_info, CL_DEVICE_GLOBAL_MEM_SIZE, cl_ulong) \ + F(cl_device_info, CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE, cl_ulong) \ + F(cl_device_info, CL_DEVICE_MAX_CONSTANT_ARGS, cl_uint) \ + F(cl_device_info, CL_DEVICE_LOCAL_MEM_TYPE, cl_device_local_mem_type) \ + F(cl_device_info, CL_DEVICE_LOCAL_MEM_SIZE, cl_ulong) \ + F(cl_device_info, CL_DEVICE_ERROR_CORRECTION_SUPPORT, cl_bool) \ + F(cl_device_info, CL_DEVICE_PROFILING_TIMER_RESOLUTION, ::size_t) \ + F(cl_device_info, CL_DEVICE_ENDIAN_LITTLE, cl_bool) \ + F(cl_device_info, CL_DEVICE_AVAILABLE, cl_bool) \ + F(cl_device_info, CL_DEVICE_COMPILER_AVAILABLE, cl_bool) \ + F(cl_device_info, CL_DEVICE_EXECUTION_CAPABILITIES, cl_device_exec_capabilities) \ + F(cl_device_info, CL_DEVICE_QUEUE_PROPERTIES, cl_command_queue_properties) \ + F(cl_device_info, CL_DEVICE_PLATFORM, cl_platform_id) \ + F(cl_device_info, CL_DEVICE_NAME, STRING_CLASS) \ + F(cl_device_info, CL_DEVICE_VENDOR, STRING_CLASS) \ + F(cl_device_info, CL_DRIVER_VERSION, STRING_CLASS) \ + F(cl_device_info, CL_DEVICE_PROFILE, STRING_CLASS) \ + F(cl_device_info, CL_DEVICE_VERSION, STRING_CLASS) \ + F(cl_device_info, CL_DEVICE_EXTENSIONS, STRING_CLASS) \ + \ + F(cl_context_info, CL_CONTEXT_REFERENCE_COUNT, cl_uint) \ + F(cl_context_info, CL_CONTEXT_DEVICES, VECTOR_CLASS) \ + F(cl_context_info, CL_CONTEXT_PROPERTIES, VECTOR_CLASS) \ + \ + F(cl_event_info, CL_EVENT_COMMAND_QUEUE, cl::CommandQueue) \ + F(cl_event_info, CL_EVENT_COMMAND_TYPE, cl_command_type) \ + F(cl_event_info, CL_EVENT_REFERENCE_COUNT, cl_uint) \ + F(cl_event_info, CL_EVENT_COMMAND_EXECUTION_STATUS, cl_uint) \ + \ + F(cl_profiling_info, CL_PROFILING_COMMAND_QUEUED, cl_ulong) \ + F(cl_profiling_info, CL_PROFILING_COMMAND_SUBMIT, cl_ulong) \ + F(cl_profiling_info, CL_PROFILING_COMMAND_START, cl_ulong) \ + F(cl_profiling_info, CL_PROFILING_COMMAND_END, cl_ulong) \ + \ + F(cl_mem_info, CL_MEM_TYPE, cl_mem_object_type) \ + F(cl_mem_info, CL_MEM_FLAGS, cl_mem_flags) \ + F(cl_mem_info, CL_MEM_SIZE, ::size_t) \ + F(cl_mem_info, CL_MEM_HOST_PTR, void*) \ + F(cl_mem_info, CL_MEM_MAP_COUNT, cl_uint) \ + F(cl_mem_info, CL_MEM_REFERENCE_COUNT, cl_uint) \ + F(cl_mem_info, CL_MEM_CONTEXT, cl::Context) \ + \ + F(cl_image_info, CL_IMAGE_FORMAT, cl_image_format) \ + F(cl_image_info, CL_IMAGE_ELEMENT_SIZE, ::size_t) \ + F(cl_image_info, CL_IMAGE_ROW_PITCH, ::size_t) \ + F(cl_image_info, CL_IMAGE_SLICE_PITCH, ::size_t) \ + F(cl_image_info, CL_IMAGE_WIDTH, ::size_t) \ + F(cl_image_info, CL_IMAGE_HEIGHT, ::size_t) \ + F(cl_image_info, CL_IMAGE_DEPTH, ::size_t) \ + \ + F(cl_sampler_info, CL_SAMPLER_REFERENCE_COUNT, cl_uint) \ + F(cl_sampler_info, CL_SAMPLER_CONTEXT, cl::Context) \ + F(cl_sampler_info, CL_SAMPLER_NORMALIZED_COORDS, cl_addressing_mode) \ + F(cl_sampler_info, CL_SAMPLER_ADDRESSING_MODE, cl_filter_mode) \ + F(cl_sampler_info, CL_SAMPLER_FILTER_MODE, cl_bool) \ + \ + F(cl_program_info, CL_PROGRAM_REFERENCE_COUNT, cl_uint) \ + F(cl_program_info, CL_PROGRAM_CONTEXT, cl::Context) \ + F(cl_program_info, CL_PROGRAM_NUM_DEVICES, cl_uint) \ + F(cl_program_info, CL_PROGRAM_DEVICES, VECTOR_CLASS) \ + F(cl_program_info, CL_PROGRAM_SOURCE, STRING_CLASS) \ + F(cl_program_info, CL_PROGRAM_BINARY_SIZES, VECTOR_CLASS< ::size_t>) \ + F(cl_program_info, CL_PROGRAM_BINARIES, VECTOR_CLASS) \ + \ + F(cl_program_build_info, CL_PROGRAM_BUILD_STATUS, cl_build_status) \ + F(cl_program_build_info, CL_PROGRAM_BUILD_OPTIONS, STRING_CLASS) \ + F(cl_program_build_info, CL_PROGRAM_BUILD_LOG, STRING_CLASS) \ + \ + F(cl_kernel_info, CL_KERNEL_FUNCTION_NAME, STRING_CLASS) \ + F(cl_kernel_info, CL_KERNEL_NUM_ARGS, cl_uint) \ + F(cl_kernel_info, CL_KERNEL_REFERENCE_COUNT, cl_uint) \ + F(cl_kernel_info, CL_KERNEL_CONTEXT, cl::Context) \ + F(cl_kernel_info, CL_KERNEL_PROGRAM, cl::Program) \ + \ + F(cl_kernel_work_group_info, CL_KERNEL_WORK_GROUP_SIZE, ::size_t) \ + F(cl_kernel_work_group_info, CL_KERNEL_COMPILE_WORK_GROUP_SIZE, cl::size_t<3>) \ + F(cl_kernel_work_group_info, CL_KERNEL_LOCAL_MEM_SIZE, cl_ulong) \ + \ + F(cl_command_queue_info, CL_QUEUE_CONTEXT, cl::Context) \ + F(cl_command_queue_info, CL_QUEUE_DEVICE, cl::Device) \ + F(cl_command_queue_info, CL_QUEUE_REFERENCE_COUNT, cl_uint) \ + F(cl_command_queue_info, CL_QUEUE_PROPERTIES, cl_command_queue_properties) + +#if defined(CL_VERSION_1_1) +#define __PARAM_NAME_INFO_1_1(F) \ + F(cl_context_info, CL_CONTEXT_NUM_DEVICES, cl_uint)\ + F(cl_device_info, CL_DEVICE_PREFERRED_VECTOR_WIDTH_HALF, cl_uint) \ + F(cl_device_info, CL_DEVICE_NATIVE_VECTOR_WIDTH_CHAR, cl_uint) \ + F(cl_device_info, CL_DEVICE_NATIVE_VECTOR_WIDTH_SHORT, cl_uint) \ + F(cl_device_info, CL_DEVICE_NATIVE_VECTOR_WIDTH_INT, cl_uint) \ + F(cl_device_info, CL_DEVICE_NATIVE_VECTOR_WIDTH_LONG, cl_uint) \ + F(cl_device_info, CL_DEVICE_NATIVE_VECTOR_WIDTH_FLOAT, cl_uint) \ + F(cl_device_info, CL_DEVICE_NATIVE_VECTOR_WIDTH_DOUBLE, cl_uint) \ + F(cl_device_info, CL_DEVICE_NATIVE_VECTOR_WIDTH_HALF, cl_uint) \ + F(cl_device_info, CL_DEVICE_DOUBLE_FP_CONFIG, cl_device_fp_config) \ + F(cl_device_info, CL_DEVICE_HALF_FP_CONFIG, cl_device_fp_config) \ + F(cl_device_info, CL_DEVICE_HOST_UNIFIED_MEMORY, cl_bool) \ + F(cl_device_info, CL_DEVICE_OPENCL_C_VERSION, STRING_CLASS) \ + \ + F(cl_mem_info, CL_MEM_ASSOCIATED_MEMOBJECT, cl::Memory) \ + F(cl_mem_info, CL_MEM_OFFSET, ::size_t) \ + \ + F(cl_kernel_work_group_info, CL_KERNEL_PREFERRED_WORK_GROUP_SIZE_MULTIPLE, ::size_t) \ + F(cl_kernel_work_group_info, CL_KERNEL_PRIVATE_MEM_SIZE, cl_ulong) \ + \ + F(cl_event_info, CL_EVENT_CONTEXT, cl::Context) +#endif // CL_VERSION_1_1 + + +#if defined(CL_VERSION_1_2) +#define __PARAM_NAME_INFO_1_2(F) \ + F(cl_image_info, CL_IMAGE_BUFFER, cl::Buffer) \ + \ + F(cl_program_info, CL_PROGRAM_NUM_KERNELS, ::size_t) \ + F(cl_program_info, CL_PROGRAM_KERNEL_NAMES, STRING_CLASS) \ + \ + F(cl_program_build_info, CL_PROGRAM_BINARY_TYPE, cl_program_binary_type) \ + \ + F(cl_kernel_info, CL_KERNEL_ATTRIBUTES, STRING_CLASS) \ + \ + F(cl_kernel_arg_info, CL_KERNEL_ARG_ADDRESS_QUALIFIER, cl_kernel_arg_address_qualifier) \ + F(cl_kernel_arg_info, CL_KERNEL_ARG_ACCESS_QUALIFIER, cl_kernel_arg_access_qualifier) \ + F(cl_kernel_arg_info, CL_KERNEL_ARG_TYPE_NAME, STRING_CLASS) \ + F(cl_kernel_arg_info, CL_KERNEL_ARG_NAME, STRING_CLASS) \ + \ + F(cl_device_info, CL_DEVICE_PARENT_DEVICE, cl_device_id) \ + F(cl_device_info, CL_DEVICE_PARTITION_PROPERTIES, VECTOR_CLASS) \ + F(cl_device_info, CL_DEVICE_PARTITION_TYPE, VECTOR_CLASS) \ + F(cl_device_info, CL_DEVICE_REFERENCE_COUNT, cl_uint) \ + F(cl_device_info, CL_DEVICE_PREFERRED_INTEROP_USER_SYNC, ::size_t) \ + F(cl_device_info, CL_DEVICE_PARTITION_AFFINITY_DOMAIN, cl_device_affinity_domain) \ + F(cl_device_info, CL_DEVICE_BUILT_IN_KERNELS, STRING_CLASS) +#endif // #if defined(CL_VERSION_1_2) + +#if defined(USE_CL_DEVICE_FISSION) +#define __PARAM_NAME_DEVICE_FISSION(F) \ + F(cl_device_info, CL_DEVICE_PARENT_DEVICE_EXT, cl_device_id) \ + F(cl_device_info, CL_DEVICE_PARTITION_TYPES_EXT, VECTOR_CLASS) \ + F(cl_device_info, CL_DEVICE_AFFINITY_DOMAINS_EXT, VECTOR_CLASS) \ + F(cl_device_info, CL_DEVICE_REFERENCE_COUNT_EXT , cl_uint) \ + F(cl_device_info, CL_DEVICE_PARTITION_STYLE_EXT, VECTOR_CLASS) +#endif // USE_CL_DEVICE_FISSION + +template +struct param_traits {}; + +#define __CL_DECLARE_PARAM_TRAITS(token, param_name, T) \ +struct token; \ +template<> \ +struct param_traits \ +{ \ + enum { value = param_name }; \ + typedef T param_type; \ +}; + +__PARAM_NAME_INFO_1_0(__CL_DECLARE_PARAM_TRAITS) +#if defined(CL_VERSION_1_1) +__PARAM_NAME_INFO_1_1(__CL_DECLARE_PARAM_TRAITS) +#endif // CL_VERSION_1_1 +#if defined(CL_VERSION_1_2) +__PARAM_NAME_INFO_1_2(__CL_DECLARE_PARAM_TRAITS) +#endif // CL_VERSION_1_1 + +#if defined(USE_CL_DEVICE_FISSION) +__PARAM_NAME_DEVICE_FISSION(__CL_DECLARE_PARAM_TRAITS); +#endif // USE_CL_DEVICE_FISSION + +#ifdef CL_PLATFORM_ICD_SUFFIX_KHR +__CL_DECLARE_PARAM_TRAITS(cl_platform_info, CL_PLATFORM_ICD_SUFFIX_KHR, STRING_CLASS) +#endif + +#ifdef CL_DEVICE_PROFILING_TIMER_OFFSET_AMD +__CL_DECLARE_PARAM_TRAITS(cl_device_info, CL_DEVICE_PROFILING_TIMER_OFFSET_AMD, cl_ulong) +#endif + +#ifdef CL_DEVICE_GLOBAL_FREE_MEMORY_AMD +__CL_DECLARE_PARAM_TRAITS(cl_device_info, CL_DEVICE_GLOBAL_FREE_MEMORY_AMD, VECTOR_CLASS< ::size_t>) +#endif +#ifdef CL_DEVICE_SIMD_PER_COMPUTE_UNIT_AMD +__CL_DECLARE_PARAM_TRAITS(cl_device_info, CL_DEVICE_SIMD_PER_COMPUTE_UNIT_AMD, cl_uint) +#endif +#ifdef CL_DEVICE_SIMD_WIDTH_AMD +__CL_DECLARE_PARAM_TRAITS(cl_device_info, CL_DEVICE_SIMD_WIDTH_AMD, cl_uint) +#endif +#ifdef CL_DEVICE_SIMD_INSTRUCTION_WIDTH_AMD +__CL_DECLARE_PARAM_TRAITS(cl_device_info, CL_DEVICE_SIMD_INSTRUCTION_WIDTH_AMD, cl_uint) +#endif +#ifdef CL_DEVICE_WAVEFRONT_WIDTH_AMD +__CL_DECLARE_PARAM_TRAITS(cl_device_info, CL_DEVICE_WAVEFRONT_WIDTH_AMD, cl_uint) +#endif +#ifdef CL_DEVICE_GLOBAL_MEM_CHANNELS_AMD +__CL_DECLARE_PARAM_TRAITS(cl_device_info, CL_DEVICE_GLOBAL_MEM_CHANNELS_AMD, cl_uint) +#endif +#ifdef CL_DEVICE_GLOBAL_MEM_CHANNEL_BANKS_AMD +__CL_DECLARE_PARAM_TRAITS(cl_device_info, CL_DEVICE_GLOBAL_MEM_CHANNEL_BANKS_AMD, cl_uint) +#endif +#ifdef CL_DEVICE_GLOBAL_MEM_CHANNEL_BANK_WIDTH_AMD +__CL_DECLARE_PARAM_TRAITS(cl_device_info, CL_DEVICE_GLOBAL_MEM_CHANNEL_BANK_WIDTH_AMD, cl_uint) +#endif +#ifdef CL_DEVICE_LOCAL_MEM_SIZE_PER_COMPUTE_UNIT_AMD +__CL_DECLARE_PARAM_TRAITS(cl_device_info, CL_DEVICE_LOCAL_MEM_SIZE_PER_COMPUTE_UNIT_AMD, cl_uint) +#endif +#ifdef CL_DEVICE_LOCAL_MEM_BANKS_AMD +__CL_DECLARE_PARAM_TRAITS(cl_device_info, CL_DEVICE_LOCAL_MEM_BANKS_AMD, cl_uint) +#endif + +#ifdef CL_DEVICE_COMPUTE_CAPABILITY_MAJOR_NV +__CL_DECLARE_PARAM_TRAITS(cl_device_info, CL_DEVICE_COMPUTE_CAPABILITY_MAJOR_NV, cl_uint) +#endif +#ifdef CL_DEVICE_COMPUTE_CAPABILITY_MINOR_NV +__CL_DECLARE_PARAM_TRAITS(cl_device_info, CL_DEVICE_COMPUTE_CAPABILITY_MINOR_NV, cl_uint) +#endif +#ifdef CL_DEVICE_REGISTERS_PER_BLOCK_NV +__CL_DECLARE_PARAM_TRAITS(cl_device_info, CL_DEVICE_REGISTERS_PER_BLOCK_NV, cl_uint) +#endif +#ifdef CL_DEVICE_WARP_SIZE_NV +__CL_DECLARE_PARAM_TRAITS(cl_device_info, CL_DEVICE_WARP_SIZE_NV, cl_uint) +#endif +#ifdef CL_DEVICE_GPU_OVERLAP_NV +__CL_DECLARE_PARAM_TRAITS(cl_device_info, CL_DEVICE_GPU_OVERLAP_NV, cl_bool) +#endif +#ifdef CL_DEVICE_KERNEL_EXEC_TIMEOUT_NV +__CL_DECLARE_PARAM_TRAITS(cl_device_info, CL_DEVICE_KERNEL_EXEC_TIMEOUT_NV, cl_bool) +#endif +#ifdef CL_DEVICE_INTEGRATED_MEMORY_NV +__CL_DECLARE_PARAM_TRAITS(cl_device_info, CL_DEVICE_INTEGRATED_MEMORY_NV, cl_bool) +#endif + +// Convenience functions + +template +inline cl_int +getInfo(Func f, cl_uint name, T* param) +{ + return getInfoHelper(f, name, param, 0); +} + +template +struct GetInfoFunctor0 +{ + Func f_; const Arg0& arg0_; + cl_int operator ()( + cl_uint param, ::size_t size, void* value, ::size_t* size_ret) + { return f_(arg0_, param, size, value, size_ret); } +}; + +template +struct GetInfoFunctor1 +{ + Func f_; const Arg0& arg0_; const Arg1& arg1_; + cl_int operator ()( + cl_uint param, ::size_t size, void* value, ::size_t* size_ret) + { return f_(arg0_, arg1_, param, size, value, size_ret); } +}; + +template +inline cl_int +getInfo(Func f, const Arg0& arg0, cl_uint name, T* param) +{ + GetInfoFunctor0 f0 = { f, arg0 }; + return getInfoHelper(f0, name, param, 0); +} + +template +inline cl_int +getInfo(Func f, const Arg0& arg0, const Arg1& arg1, cl_uint name, T* param) +{ + GetInfoFunctor1 f0 = { f, arg0, arg1 }; + return getInfoHelper(f0, name, param, 0); +} + +template +struct ReferenceHandler +{ }; + +#if defined(CL_VERSION_1_2) +/** + * OpenCL 1.2 devices do have retain/release. + */ +template <> +struct ReferenceHandler +{ + /** + * Retain the device. + * \param device A valid device created using createSubDevices + * \return + * CL_SUCCESS if the function executed successfully. + * CL_INVALID_DEVICE if device was not a valid subdevice + * CL_OUT_OF_RESOURCES + * CL_OUT_OF_HOST_MEMORY + */ + static cl_int retain(cl_device_id device) + { return ::clRetainDevice(device); } + /** + * Retain the device. + * \param device A valid device created using createSubDevices + * \return + * CL_SUCCESS if the function executed successfully. + * CL_INVALID_DEVICE if device was not a valid subdevice + * CL_OUT_OF_RESOURCES + * CL_OUT_OF_HOST_MEMORY + */ + static cl_int release(cl_device_id device) + { return ::clReleaseDevice(device); } +}; +#else // #if defined(CL_VERSION_1_2) +/** + * OpenCL 1.1 devices do not have retain/release. + */ +template <> +struct ReferenceHandler +{ + // cl_device_id does not have retain(). + static cl_int retain(cl_device_id) + { return CL_SUCCESS; } + // cl_device_id does not have release(). + static cl_int release(cl_device_id) + { return CL_SUCCESS; } +}; +#endif // #if defined(CL_VERSION_1_2) + +template <> +struct ReferenceHandler +{ + // cl_platform_id does not have retain(). + static cl_int retain(cl_platform_id) + { return CL_SUCCESS; } + // cl_platform_id does not have release(). + static cl_int release(cl_platform_id) + { return CL_SUCCESS; } +}; + +template <> +struct ReferenceHandler +{ + static cl_int retain(cl_context context) + { return ::clRetainContext(context); } + static cl_int release(cl_context context) + { return ::clReleaseContext(context); } +}; + +template <> +struct ReferenceHandler +{ + static cl_int retain(cl_command_queue queue) + { return ::clRetainCommandQueue(queue); } + static cl_int release(cl_command_queue queue) + { return ::clReleaseCommandQueue(queue); } +}; + +template <> +struct ReferenceHandler +{ + static cl_int retain(cl_mem memory) + { return ::clRetainMemObject(memory); } + static cl_int release(cl_mem memory) + { return ::clReleaseMemObject(memory); } +}; + +template <> +struct ReferenceHandler +{ + static cl_int retain(cl_sampler sampler) + { return ::clRetainSampler(sampler); } + static cl_int release(cl_sampler sampler) + { return ::clReleaseSampler(sampler); } +}; + +template <> +struct ReferenceHandler +{ + static cl_int retain(cl_program program) + { return ::clRetainProgram(program); } + static cl_int release(cl_program program) + { return ::clReleaseProgram(program); } +}; + +template <> +struct ReferenceHandler +{ + static cl_int retain(cl_kernel kernel) + { return ::clRetainKernel(kernel); } + static cl_int release(cl_kernel kernel) + { return ::clReleaseKernel(kernel); } +}; + +template <> +struct ReferenceHandler +{ + static cl_int retain(cl_event event) + { return ::clRetainEvent(event); } + static cl_int release(cl_event event) + { return ::clReleaseEvent(event); } +}; + + +// Extracts version number with major in the upper 16 bits, minor in the lower 16 +static cl_uint getVersion(const char *versionInfo) +{ + int highVersion = 0; + int lowVersion = 0; + int index = 7; + while(versionInfo[index] != '.' ) { + highVersion *= 10; + highVersion += versionInfo[index]-'0'; + ++index; + } + ++index; + while(versionInfo[index] != ' ' ) { + lowVersion *= 10; + lowVersion += versionInfo[index]-'0'; + ++index; + } + return (highVersion << 16) | lowVersion; +} + +static cl_uint getPlatformVersion(cl_platform_id platform) +{ + ::size_t size = 0; + clGetPlatformInfo(platform, CL_PLATFORM_VERSION, 0, NULL, &size); + char *versionInfo = (char *) alloca(size); + clGetPlatformInfo(platform, CL_PLATFORM_VERSION, size, &versionInfo[0], &size); + return getVersion(versionInfo); +} + +static cl_uint getDevicePlatformVersion(cl_device_id device) +{ + cl_platform_id platform; + clGetDeviceInfo(device, CL_DEVICE_PLATFORM, sizeof(platform), &platform, NULL); + return getPlatformVersion(platform); +} + +#if defined(CL_VERSION_1_2) && defined(CL_USE_DEPRECATED_OPENCL_1_1_APIS) +static cl_uint getContextPlatformVersion(cl_context context) +{ + // The platform cannot be queried directly, so we first have to grab a + // device and obtain its context + ::size_t size = 0; + clGetContextInfo(context, CL_CONTEXT_DEVICES, 0, NULL, &size); + if (size == 0) + return 0; + cl_device_id *devices = (cl_device_id *) alloca(size); + clGetContextInfo(context, CL_CONTEXT_DEVICES, size, devices, NULL); + return getDevicePlatformVersion(devices[0]); +} +#endif // #if defined(CL_VERSION_1_2) && defined(CL_USE_DEPRECATED_OPENCL_1_1_APIS) + +template +class Wrapper +{ +public: + typedef T cl_type; + +protected: + cl_type object_; + +public: + Wrapper() : object_(NULL) { } + + Wrapper(const cl_type &obj) : object_(obj) { } + + ~Wrapper() + { + if (object_ != NULL) { release(); } + } + + Wrapper(const Wrapper& rhs) + { + object_ = rhs.object_; + if (object_ != NULL) { detail::errHandler(retain(), __RETAIN_ERR); } + } + + Wrapper& operator = (const Wrapper& rhs) + { + if (object_ != NULL) { detail::errHandler(release(), __RELEASE_ERR); } + object_ = rhs.object_; + if (object_ != NULL) { detail::errHandler(retain(), __RETAIN_ERR); } + return *this; + } + + Wrapper& operator = (const cl_type &rhs) + { + if (object_ != NULL) { detail::errHandler(release(), __RELEASE_ERR); } + object_ = rhs; + return *this; + } + + cl_type operator ()() const { return object_; } + + cl_type& operator ()() { return object_; } + +protected: + template + friend inline cl_int getInfoHelper(Func, cl_uint, U*, int, typename U::cl_type); + + cl_int retain() const + { + return ReferenceHandler::retain(object_); + } + + cl_int release() const + { + return ReferenceHandler::release(object_); + } +}; + +template <> +class Wrapper +{ +public: + typedef cl_device_id cl_type; + +protected: + cl_type object_; + bool referenceCountable_; + + static bool isReferenceCountable(cl_device_id device) + { + bool retVal = false; + if (device != NULL) { + int version = getDevicePlatformVersion(device); + if(version > ((1 << 16) + 1)) { + retVal = true; + } + } + return retVal; + } + +public: + Wrapper() : object_(NULL), referenceCountable_(false) + { + } + + Wrapper(const cl_type &obj) : object_(obj), referenceCountable_(false) + { + referenceCountable_ = isReferenceCountable(obj); + } + + ~Wrapper() + { + if (object_ != NULL) { release(); } + } + + Wrapper(const Wrapper& rhs) + { + object_ = rhs.object_; + referenceCountable_ = isReferenceCountable(object_); + if (object_ != NULL) { detail::errHandler(retain(), __RETAIN_ERR); } + } + + Wrapper& operator = (const Wrapper& rhs) + { + if (object_ != NULL) { detail::errHandler(release(), __RELEASE_ERR); } + object_ = rhs.object_; + referenceCountable_ = rhs.referenceCountable_; + if (object_ != NULL) { detail::errHandler(retain(), __RETAIN_ERR); } + return *this; + } + + Wrapper& operator = (const cl_type &rhs) + { + if (object_ != NULL) { detail::errHandler(release(), __RELEASE_ERR); } + object_ = rhs; + referenceCountable_ = isReferenceCountable(object_); + return *this; + } + + cl_type operator ()() const { return object_; } + + cl_type& operator ()() { return object_; } + +protected: + template + friend inline cl_int getInfoHelper(Func, cl_uint, U*, int, typename U::cl_type); + + template + friend inline cl_int getInfoHelper(Func, cl_uint, VECTOR_CLASS*, int, typename U::cl_type); + + cl_int retain() const + { + if( referenceCountable_ ) { + return ReferenceHandler::retain(object_); + } + else { + return CL_SUCCESS; + } + } + + cl_int release() const + { + if( referenceCountable_ ) { + return ReferenceHandler::release(object_); + } + else { + return CL_SUCCESS; + } + } +}; + +} // namespace detail +//! \endcond + +/*! \stuct ImageFormat + * \brief Adds constructors and member functions for cl_image_format. + * + * \see cl_image_format + */ +struct ImageFormat : public cl_image_format +{ + //! \brief Default constructor - performs no initialization. + ImageFormat(){} + + //! \brief Initializing constructor. + ImageFormat(cl_channel_order order, cl_channel_type type) + { + image_channel_order = order; + image_channel_data_type = type; + } + + //! \brief Assignment operator. + ImageFormat& operator = (const ImageFormat& rhs) + { + if (this != &rhs) { + this->image_channel_data_type = rhs.image_channel_data_type; + this->image_channel_order = rhs.image_channel_order; + } + return *this; + } +}; + +/*! \brief Class interface for cl_device_id. + * + * \note Copies of these objects are inexpensive, since they don't 'own' + * any underlying resources or data structures. + * + * \see cl_device_id + */ +class Device : public detail::Wrapper +{ +public: + //! \brief Default constructor - initializes to NULL. + Device() : detail::Wrapper() { } + + /*! \brief Copy constructor. + * + * This simply copies the device ID value, which is an inexpensive operation. + */ + Device(const Device& device) : detail::Wrapper(device) { } + + /*! \brief Constructor from cl_device_id. + * + * This simply copies the device ID value, which is an inexpensive operation. + */ + Device(const cl_device_id &device) : detail::Wrapper(device) { } + + /*! \brief Returns the first device on the default context. + * + * \see Context::getDefault() + */ + static Device getDefault(cl_int * err = NULL); + + /*! \brief Assignment operator from Device. + * + * This simply copies the device ID value, which is an inexpensive operation. + */ + Device& operator = (const Device& rhs) + { + if (this != &rhs) { + detail::Wrapper::operator=(rhs); + } + return *this; + } + + /*! \brief Assignment operator from cl_device_id. + * + * This simply copies the device ID value, which is an inexpensive operation. + */ + Device& operator = (const cl_device_id& rhs) + { + detail::Wrapper::operator=(rhs); + return *this; + } + + //! \brief Wrapper for clGetDeviceInfo(). + template + cl_int getInfo(cl_device_info name, T* param) const + { + return detail::errHandler( + detail::getInfo(&::clGetDeviceInfo, object_, name, param), + __GET_DEVICE_INFO_ERR); + } + + //! \brief Wrapper for clGetDeviceInfo() that returns by value. + template typename + detail::param_traits::param_type + getInfo(cl_int* err = NULL) const + { + typename detail::param_traits< + detail::cl_device_info, name>::param_type param; + cl_int result = getInfo(name, ¶m); + if (err != NULL) { + *err = result; + } + return param; + } + + /** + * CL 1.2 version + */ +#if defined(CL_VERSION_1_2) + //! \brief Wrapper for clCreateSubDevicesEXT(). + cl_int createSubDevices( + const cl_device_partition_property * properties, + VECTOR_CLASS* devices) + { + cl_uint n = 0; + cl_int err = clCreateSubDevices(object_, properties, 0, NULL, &n); + if (err != CL_SUCCESS) { + return detail::errHandler(err, __CREATE_SUB_DEVICES); + } + + cl_device_id* ids = (cl_device_id*) alloca(n * sizeof(cl_device_id)); + err = clCreateSubDevices(object_, properties, n, ids, NULL); + if (err != CL_SUCCESS) { + return detail::errHandler(err, __CREATE_SUB_DEVICES); + } + + devices->assign(&ids[0], &ids[n]); + return CL_SUCCESS; + } +#endif // #if defined(CL_VERSION_1_2) + +/** + * CL 1.1 version that uses device fission. + */ +#if defined(CL_VERSION_1_1) +#if defined(USE_CL_DEVICE_FISSION) + cl_int createSubDevices( + const cl_device_partition_property_ext * properties, + VECTOR_CLASS* devices) + { + typedef CL_API_ENTRY cl_int + ( CL_API_CALL * PFN_clCreateSubDevicesEXT)( + cl_device_id /*in_device*/, + const cl_device_partition_property_ext * /* properties */, + cl_uint /*num_entries*/, + cl_device_id * /*out_devices*/, + cl_uint * /*num_devices*/ ) CL_EXT_SUFFIX__VERSION_1_1; + + static PFN_clCreateSubDevicesEXT pfn_clCreateSubDevicesEXT = NULL; + __INIT_CL_EXT_FCN_PTR(clCreateSubDevicesEXT); + + cl_uint n = 0; + cl_int err = pfn_clCreateSubDevicesEXT(object_, properties, 0, NULL, &n); + if (err != CL_SUCCESS) { + return detail::errHandler(err, __CREATE_SUB_DEVICES); + } + + cl_device_id* ids = (cl_device_id*) alloca(n * sizeof(cl_device_id)); + err = pfn_clCreateSubDevicesEXT(object_, properties, n, ids, NULL); + if (err != CL_SUCCESS) { + return detail::errHandler(err, __CREATE_SUB_DEVICES); + } + + devices->assign(&ids[0], &ids[n]); + return CL_SUCCESS; + } +#endif // #if defined(USE_CL_DEVICE_FISSION) +#endif // #if defined(CL_VERSION_1_1) +}; + +/*! \brief Class interface for cl_platform_id. + * + * \note Copies of these objects are inexpensive, since they don't 'own' + * any underlying resources or data structures. + * + * \see cl_platform_id + */ +class Platform : public detail::Wrapper +{ +public: + //! \brief Default constructor - initializes to NULL. + Platform() : detail::Wrapper() { } + + /*! \brief Copy constructor. + * + * This simply copies the platform ID value, which is an inexpensive operation. + */ + Platform(const Platform& platform) : detail::Wrapper(platform) { } + + /*! \brief Constructor from cl_platform_id. + * + * This simply copies the platform ID value, which is an inexpensive operation. + */ + Platform(const cl_platform_id &platform) : detail::Wrapper(platform) { } + + /*! \brief Assignment operator from Platform. + * + * This simply copies the platform ID value, which is an inexpensive operation. + */ + Platform& operator = (const Platform& rhs) + { + if (this != &rhs) { + detail::Wrapper::operator=(rhs); + } + return *this; + } + + /*! \brief Assignment operator from cl_platform_id. + * + * This simply copies the platform ID value, which is an inexpensive operation. + */ + Platform& operator = (const cl_platform_id& rhs) + { + detail::Wrapper::operator=(rhs); + return *this; + } + + //! \brief Wrapper for clGetPlatformInfo(). + cl_int getInfo(cl_platform_info name, STRING_CLASS* param) const + { + return detail::errHandler( + detail::getInfo(&::clGetPlatformInfo, object_, name, param), + __GET_PLATFORM_INFO_ERR); + } + + //! \brief Wrapper for clGetPlatformInfo() that returns by value. + template typename + detail::param_traits::param_type + getInfo(cl_int* err = NULL) const + { + typename detail::param_traits< + detail::cl_platform_info, name>::param_type param; + cl_int result = getInfo(name, ¶m); + if (err != NULL) { + *err = result; + } + return param; + } + + /*! \brief Gets a list of devices for this platform. + * + * Wraps clGetDeviceIDs(). + */ + cl_int getDevices( + cl_device_type type, + VECTOR_CLASS* devices) const + { + cl_uint n = 0; + if( devices == NULL ) { + return detail::errHandler(CL_INVALID_ARG_VALUE, __GET_DEVICE_IDS_ERR); + } + cl_int err = ::clGetDeviceIDs(object_, type, 0, NULL, &n); + if (err != CL_SUCCESS) { + return detail::errHandler(err, __GET_DEVICE_IDS_ERR); + } + + cl_device_id* ids = (cl_device_id*) alloca(n * sizeof(cl_device_id)); + err = ::clGetDeviceIDs(object_, type, n, ids, NULL); + if (err != CL_SUCCESS) { + return detail::errHandler(err, __GET_DEVICE_IDS_ERR); + } + + devices->assign(&ids[0], &ids[n]); + return CL_SUCCESS; + } + +#if defined(USE_DX_INTEROP) + /*! \brief Get the list of available D3D10 devices. + * + * \param d3d_device_source. + * + * \param d3d_object. + * + * \param d3d_device_set. + * + * \param devices returns a vector of OpenCL D3D10 devices found. The cl::Device + * values returned in devices can be used to identify a specific OpenCL + * device. If \a devices argument is NULL, this argument is ignored. + * + * \return One of the following values: + * - CL_SUCCESS if the function is executed successfully. + * + * The application can query specific capabilities of the OpenCL device(s) + * returned by cl::getDevices. This can be used by the application to + * determine which device(s) to use. + * + * \note In the case that exceptions are enabled and a return value + * other than CL_SUCCESS is generated, then cl::Error exception is + * generated. + */ + cl_int getDevices( + cl_d3d10_device_source_khr d3d_device_source, + void * d3d_object, + cl_d3d10_device_set_khr d3d_device_set, + VECTOR_CLASS* devices) const + { + typedef CL_API_ENTRY cl_int (CL_API_CALL *PFN_clGetDeviceIDsFromD3D10KHR)( + cl_platform_id platform, + cl_d3d10_device_source_khr d3d_device_source, + void * d3d_object, + cl_d3d10_device_set_khr d3d_device_set, + cl_uint num_entries, + cl_device_id * devices, + cl_uint* num_devices); + + if( devices == NULL ) { + return detail::errHandler(CL_INVALID_ARG_VALUE, __GET_DEVICE_IDS_ERR); + } + + static PFN_clGetDeviceIDsFromD3D10KHR pfn_clGetDeviceIDsFromD3D10KHR = NULL; + __INIT_CL_EXT_FCN_PTR_PLATFORM(object_, clGetDeviceIDsFromD3D10KHR); + + cl_uint n = 0; + cl_int err = pfn_clGetDeviceIDsFromD3D10KHR( + object_, + d3d_device_source, + d3d_object, + d3d_device_set, + 0, + NULL, + &n); + if (err != CL_SUCCESS) { + return detail::errHandler(err, __GET_DEVICE_IDS_ERR); + } + + cl_device_id* ids = (cl_device_id*) alloca(n * sizeof(cl_device_id)); + err = pfn_clGetDeviceIDsFromD3D10KHR( + object_, + d3d_device_source, + d3d_object, + d3d_device_set, + n, + ids, + NULL); + if (err != CL_SUCCESS) { + return detail::errHandler(err, __GET_DEVICE_IDS_ERR); + } + + devices->assign(&ids[0], &ids[n]); + return CL_SUCCESS; + } +#endif + + /*! \brief Gets a list of available platforms. + * + * Wraps clGetPlatformIDs(). + */ + static cl_int get( + VECTOR_CLASS* platforms) + { + cl_uint n = 0; + + if( platforms == NULL ) { + return detail::errHandler(CL_INVALID_ARG_VALUE, __GET_PLATFORM_IDS_ERR); + } + + cl_int err = ::clGetPlatformIDs(0, NULL, &n); + if (err != CL_SUCCESS) { + return detail::errHandler(err, __GET_PLATFORM_IDS_ERR); + } + + cl_platform_id* ids = (cl_platform_id*) alloca( + n * sizeof(cl_platform_id)); + err = ::clGetPlatformIDs(n, ids, NULL); + if (err != CL_SUCCESS) { + return detail::errHandler(err, __GET_PLATFORM_IDS_ERR); + } + + platforms->assign(&ids[0], &ids[n]); + return CL_SUCCESS; + } + + /*! \brief Gets the first available platform. + * + * Wraps clGetPlatformIDs(), returning the first result. + */ + static cl_int get( + Platform * platform) + { + cl_uint n = 0; + + if( platform == NULL ) { + return detail::errHandler(CL_INVALID_ARG_VALUE, __GET_PLATFORM_IDS_ERR); + } + + cl_int err = ::clGetPlatformIDs(0, NULL, &n); + if (err != CL_SUCCESS) { + return detail::errHandler(err, __GET_PLATFORM_IDS_ERR); + } + + cl_platform_id* ids = (cl_platform_id*) alloca( + n * sizeof(cl_platform_id)); + err = ::clGetPlatformIDs(n, ids, NULL); + if (err != CL_SUCCESS) { + return detail::errHandler(err, __GET_PLATFORM_IDS_ERR); + } + + *platform = ids[0]; + return CL_SUCCESS; + } + + /*! \brief Gets the first available platform, returning it by value. + * + * Wraps clGetPlatformIDs(), returning the first result. + */ + static Platform get( + cl_int * errResult = NULL) + { + Platform platform; + cl_uint n = 0; + cl_int err = ::clGetPlatformIDs(0, NULL, &n); + if (err != CL_SUCCESS) { + detail::errHandler(err, __GET_PLATFORM_IDS_ERR); + if (errResult != NULL) { + *errResult = err; + } + } + + cl_platform_id* ids = (cl_platform_id*) alloca( + n * sizeof(cl_platform_id)); + err = ::clGetPlatformIDs(n, ids, NULL); + + if (err != CL_SUCCESS) { + detail::errHandler(err, __GET_PLATFORM_IDS_ERR); + } + + if (errResult != NULL) { + *errResult = err; + } + + return ids[0]; + } + + static Platform getDefault( + cl_int *errResult = NULL ) + { + return get(errResult); + } + + +#if defined(CL_VERSION_1_2) + //! \brief Wrapper for clUnloadCompiler(). + cl_int + unloadCompiler() + { + return ::clUnloadPlatformCompiler(object_); + } +#endif // #if defined(CL_VERSION_1_2) +}; // class Platform + +/** + * Deprecated APIs for 1.2 + */ +#if defined(CL_USE_DEPRECATED_OPENCL_1_1_APIS) || (defined(CL_VERSION_1_1) && !defined(CL_VERSION_1_2)) +/** + * Unload the OpenCL compiler. + * \note Deprecated for OpenCL 1.2. Use Platform::unloadCompiler instead. + */ +inline CL_EXT_PREFIX__VERSION_1_1_DEPRECATED cl_int +UnloadCompiler() CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED; +inline cl_int +UnloadCompiler() +{ + return ::clUnloadCompiler(); +} +#endif // #if defined(CL_VERSION_1_1) + +/*! \brief Class interface for cl_context. + * + * \note Copies of these objects are shallow, meaning that the copy will refer + * to the same underlying cl_context as the original. For details, see + * clRetainContext() and clReleaseContext(). + * + * \see cl_context + */ +class Context + : public detail::Wrapper +{ +private: + static volatile int default_initialized_; + static Context default_; + static volatile cl_int default_error_; +public: + /*! \brief Destructor. + * + * This calls clReleaseContext() on the value held by this instance. + */ + ~Context() { } + + /*! \brief Constructs a context including a list of specified devices. + * + * Wraps clCreateContext(). + */ + Context( + const VECTOR_CLASS& devices, + cl_context_properties* properties = NULL, + void (CL_CALLBACK * notifyFptr)( + const char *, + const void *, + ::size_t, + void *) = NULL, + void* data = NULL, + cl_int* err = NULL) + { + cl_int error; + + ::size_t numDevices = devices.size(); + cl_device_id* deviceIDs = (cl_device_id*) alloca(numDevices * sizeof(cl_device_id)); + for( ::size_t deviceIndex = 0; deviceIndex < numDevices; ++deviceIndex ) { + deviceIDs[deviceIndex] = (devices[deviceIndex])(); + } + + object_ = ::clCreateContext( + properties, (cl_uint) numDevices, + deviceIDs, + notifyFptr, data, &error); + + detail::errHandler(error, __CREATE_CONTEXT_ERR); + if (err != NULL) { + *err = error; + } + } + + Context( + const Device& device, + cl_context_properties* properties = NULL, + void (CL_CALLBACK * notifyFptr)( + const char *, + const void *, + ::size_t, + void *) = NULL, + void* data = NULL, + cl_int* err = NULL) + { + cl_int error; + + cl_device_id deviceID = device(); + + object_ = ::clCreateContext( + properties, 1, + &deviceID, + notifyFptr, data, &error); + + detail::errHandler(error, __CREATE_CONTEXT_ERR); + if (err != NULL) { + *err = error; + } + } + + /*! \brief Constructs a context including all or a subset of devices of a specified type. + * + * Wraps clCreateContextFromType(). + */ + Context( + cl_device_type type, + cl_context_properties* properties = NULL, + void (CL_CALLBACK * notifyFptr)( + const char *, + const void *, + ::size_t, + void *) = NULL, + void* data = NULL, + cl_int* err = NULL) + { + cl_int error; + +#if !defined(__APPLE__) || !defined(__MACOS) + cl_context_properties prop[4] = {CL_CONTEXT_PLATFORM, 0, 0, 0 }; + + if (properties == NULL) { + // Get a valid platform ID as we cannot send in a blank one + VECTOR_CLASS platforms; + error = Platform::get(&platforms); + if (error != CL_SUCCESS) { + detail::errHandler(error, __CREATE_CONTEXT_FROM_TYPE_ERR); + if (err != NULL) { + *err = error; + } + return; + } + + // Check the platforms we found for a device of our specified type + cl_context_properties platform_id = 0; + for (unsigned int i = 0; i < platforms.size(); i++) { + + VECTOR_CLASS devices; + +#if defined(__CL_ENABLE_EXCEPTIONS) + try { +#endif + + error = platforms[i].getDevices(type, &devices); + +#if defined(__CL_ENABLE_EXCEPTIONS) + } catch (Error) {} + // Catch if exceptions are enabled as we don't want to exit if first platform has no devices of type + // We do error checking next anyway, and can throw there if needed +#endif + + // Only squash CL_SUCCESS and CL_DEVICE_NOT_FOUND + if (error != CL_SUCCESS && error != CL_DEVICE_NOT_FOUND) { + detail::errHandler(error, __CREATE_CONTEXT_FROM_TYPE_ERR); + if (err != NULL) { + *err = error; + } + } + + if (devices.size() > 0) { + platform_id = (cl_context_properties)platforms[i](); + break; + } + } + + if (platform_id == 0) { + detail::errHandler(CL_DEVICE_NOT_FOUND, __CREATE_CONTEXT_FROM_TYPE_ERR); + if (err != NULL) { + *err = CL_DEVICE_NOT_FOUND; + } + return; + } + + prop[1] = platform_id; + properties = &prop[0]; + } +#endif + object_ = ::clCreateContextFromType( + properties, type, notifyFptr, data, &error); + + detail::errHandler(error, __CREATE_CONTEXT_FROM_TYPE_ERR); + if (err != NULL) { + *err = error; + } + } + + /*! \brief Returns a singleton context including all devices of CL_DEVICE_TYPE_DEFAULT. + * + * \note All calls to this function return the same cl_context as the first. + */ + static Context getDefault(cl_int * err = NULL) + { + int state = detail::compare_exchange( + &default_initialized_, + __DEFAULT_BEING_INITIALIZED, __DEFAULT_NOT_INITIALIZED); + + if (state & __DEFAULT_INITIALIZED) { + if (err != NULL) { + *err = default_error_; + } + return default_; + } + + if (state & __DEFAULT_BEING_INITIALIZED) { + // Assume writes will propagate eventually... + while(default_initialized_ != __DEFAULT_INITIALIZED) { + detail::fence(); + } + + if (err != NULL) { + *err = default_error_; + } + return default_; + } + + cl_int error; + default_ = Context( + CL_DEVICE_TYPE_DEFAULT, + NULL, + NULL, + NULL, + &error); + + detail::fence(); + + default_error_ = error; + // Assume writes will propagate eventually... + default_initialized_ = __DEFAULT_INITIALIZED; + + detail::fence(); + + if (err != NULL) { + *err = default_error_; + } + return default_; + + } + + //! \brief Default constructor - initializes to NULL. + Context() : detail::Wrapper() { } + + /*! \brief Copy constructor. + * + * This calls clRetainContext() on the parameter's cl_context. + */ + Context(const Context& context) : detail::Wrapper(context) { } + + /*! \brief Constructor from cl_context - takes ownership. + * + * This effectively transfers ownership of a refcount on the cl_context + * into the new Context object. + */ + __CL_EXPLICIT_CONSTRUCTORS Context(const cl_context& context) : detail::Wrapper(context) { } + + /*! \brief Assignment operator from Context. + * + * This calls clRetainContext() on the parameter and clReleaseContext() on + * the previous value held by this instance. + */ + Context& operator = (const Context& rhs) + { + if (this != &rhs) { + detail::Wrapper::operator=(rhs); + } + return *this; + } + + /*! \brief Assignment operator from cl_context - takes ownership. + * + * This effectively transfers ownership of a refcount on the rhs and calls + * clReleaseContext() on the value previously held by this instance. + */ + Context& operator = (const cl_context& rhs) + { + detail::Wrapper::operator=(rhs); + return *this; + } + + //! \brief Wrapper for clGetContextInfo(). + template + cl_int getInfo(cl_context_info name, T* param) const + { + return detail::errHandler( + detail::getInfo(&::clGetContextInfo, object_, name, param), + __GET_CONTEXT_INFO_ERR); + } + + //! \brief Wrapper for clGetContextInfo() that returns by value. + template typename + detail::param_traits::param_type + getInfo(cl_int* err = NULL) const + { + typename detail::param_traits< + detail::cl_context_info, name>::param_type param; + cl_int result = getInfo(name, ¶m); + if (err != NULL) { + *err = result; + } + return param; + } + + /*! \brief Gets a list of supported image formats. + * + * Wraps clGetSupportedImageFormats(). + */ + cl_int getSupportedImageFormats( + cl_mem_flags flags, + cl_mem_object_type type, + VECTOR_CLASS* formats) const + { + cl_uint numEntries; + cl_int err = ::clGetSupportedImageFormats( + object_, + flags, + type, + 0, + NULL, + &numEntries); + if (err != CL_SUCCESS) { + return detail::errHandler(err, __GET_SUPPORTED_IMAGE_FORMATS_ERR); + } + + ImageFormat* value = (ImageFormat*) + alloca(numEntries * sizeof(ImageFormat)); + err = ::clGetSupportedImageFormats( + object_, + flags, + type, + numEntries, + (cl_image_format*) value, + NULL); + if (err != CL_SUCCESS) { + return detail::errHandler(err, __GET_SUPPORTED_IMAGE_FORMATS_ERR); + } + + formats->assign(&value[0], &value[numEntries]); + return CL_SUCCESS; + } +}; + +inline Device Device::getDefault(cl_int * err) +{ + cl_int error; + Device device; + + Context context = Context::getDefault(&error); + detail::errHandler(error, __CREATE_COMMAND_QUEUE_ERR); + + if (error != CL_SUCCESS) { + if (err != NULL) { + *err = error; + } + } + else { + device = context.getInfo()[0]; + if (err != NULL) { + *err = CL_SUCCESS; + } + } + + return device; +} + + +#ifdef _WIN32 +__declspec(selectany) volatile int Context::default_initialized_ = __DEFAULT_NOT_INITIALIZED; +__declspec(selectany) Context Context::default_; +__declspec(selectany) volatile cl_int Context::default_error_ = CL_SUCCESS; +#else +__attribute__((weak)) volatile int Context::default_initialized_ = __DEFAULT_NOT_INITIALIZED; +__attribute__((weak)) Context Context::default_; +__attribute__((weak)) volatile cl_int Context::default_error_ = CL_SUCCESS; +#endif + +/*! \brief Class interface for cl_event. + * + * \note Copies of these objects are shallow, meaning that the copy will refer + * to the same underlying cl_event as the original. For details, see + * clRetainEvent() and clReleaseEvent(). + * + * \see cl_event + */ +class Event : public detail::Wrapper +{ +public: + /*! \brief Destructor. + * + * This calls clReleaseEvent() on the value held by this instance. + */ + ~Event() { } + + //! \brief Default constructor - initializes to NULL. + Event() : detail::Wrapper() { } + + /*! \brief Copy constructor. + * + * This calls clRetainEvent() on the parameter's cl_event. + */ + Event(const Event& event) : detail::Wrapper(event) { } + + /*! \brief Constructor from cl_event - takes ownership. + * + * This effectively transfers ownership of a refcount on the cl_event + * into the new Event object. + */ + Event(const cl_event& event) : detail::Wrapper(event) { } + + /*! \brief Assignment operator from cl_event - takes ownership. + * + * This effectively transfers ownership of a refcount on the rhs and calls + * clReleaseEvent() on the value previously held by this instance. + */ + Event& operator = (const Event& rhs) + { + if (this != &rhs) { + detail::Wrapper::operator=(rhs); + } + return *this; + } + + /*! \brief Assignment operator from cl_event. + * + * This calls clRetainEvent() on the parameter and clReleaseEvent() on + * the previous value held by this instance. + */ + Event& operator = (const cl_event& rhs) + { + detail::Wrapper::operator=(rhs); + return *this; + } + + //! \brief Wrapper for clGetEventInfo(). + template + cl_int getInfo(cl_event_info name, T* param) const + { + return detail::errHandler( + detail::getInfo(&::clGetEventInfo, object_, name, param), + __GET_EVENT_INFO_ERR); + } + + //! \brief Wrapper for clGetEventInfo() that returns by value. + template typename + detail::param_traits::param_type + getInfo(cl_int* err = NULL) const + { + typename detail::param_traits< + detail::cl_event_info, name>::param_type param; + cl_int result = getInfo(name, ¶m); + if (err != NULL) { + *err = result; + } + return param; + } + + //! \brief Wrapper for clGetEventProfilingInfo(). + template + cl_int getProfilingInfo(cl_profiling_info name, T* param) const + { + return detail::errHandler(detail::getInfo( + &::clGetEventProfilingInfo, object_, name, param), + __GET_EVENT_PROFILE_INFO_ERR); + } + + //! \brief Wrapper for clGetEventProfilingInfo() that returns by value. + template typename + detail::param_traits::param_type + getProfilingInfo(cl_int* err = NULL) const + { + typename detail::param_traits< + detail::cl_profiling_info, name>::param_type param; + cl_int result = getProfilingInfo(name, ¶m); + if (err != NULL) { + *err = result; + } + return param; + } + + /*! \brief Blocks the calling thread until this event completes. + * + * Wraps clWaitForEvents(). + */ + cl_int wait() const + { + return detail::errHandler( + ::clWaitForEvents(1, &object_), + __WAIT_FOR_EVENTS_ERR); + } + +#if defined(CL_VERSION_1_1) + /*! \brief Registers a user callback function for a specific command execution status. + * + * Wraps clSetEventCallback(). + */ + cl_int setCallback( + cl_int type, + void (CL_CALLBACK * pfn_notify)(cl_event, cl_int, void *), + void * user_data = NULL) + { + return detail::errHandler( + ::clSetEventCallback( + object_, + type, + pfn_notify, + user_data), + __SET_EVENT_CALLBACK_ERR); + } +#endif + + /*! \brief Blocks the calling thread until every event specified is complete. + * + * Wraps clWaitForEvents(). + */ + static cl_int + waitForEvents(const VECTOR_CLASS& events) + { + return detail::errHandler( + ::clWaitForEvents( + (cl_uint) events.size(), (cl_event*)&events.front()), + __WAIT_FOR_EVENTS_ERR); + } +}; + +#if defined(CL_VERSION_1_1) +/*! \brief Class interface for user events (a subset of cl_event's). + * + * See Event for details about copy semantics, etc. + */ +class UserEvent : public Event +{ +public: + /*! \brief Constructs a user event on a given context. + * + * Wraps clCreateUserEvent(). + */ + UserEvent( + const Context& context, + cl_int * err = NULL) + { + cl_int error; + object_ = ::clCreateUserEvent( + context(), + &error); + + detail::errHandler(error, __CREATE_USER_EVENT_ERR); + if (err != NULL) { + *err = error; + } + } + + //! \brief Default constructor - initializes to NULL. + UserEvent() : Event() { } + + //! \brief Copy constructor - performs shallow copy. + UserEvent(const UserEvent& event) : Event(event) { } + + //! \brief Assignment Operator - performs shallow copy. + UserEvent& operator = (const UserEvent& rhs) + { + if (this != &rhs) { + Event::operator=(rhs); + } + return *this; + } + + /*! \brief Sets the execution status of a user event object. + * + * Wraps clSetUserEventStatus(). + */ + cl_int setStatus(cl_int status) + { + return detail::errHandler( + ::clSetUserEventStatus(object_,status), + __SET_USER_EVENT_STATUS_ERR); + } +}; +#endif + +/*! \brief Blocks the calling thread until every event specified is complete. + * + * Wraps clWaitForEvents(). + */ +inline static cl_int +WaitForEvents(const VECTOR_CLASS& events) +{ + return detail::errHandler( + ::clWaitForEvents( + (cl_uint) events.size(), (cl_event*)&events.front()), + __WAIT_FOR_EVENTS_ERR); +} + +/*! \brief Class interface for cl_mem. + * + * \note Copies of these objects are shallow, meaning that the copy will refer + * to the same underlying cl_mem as the original. For details, see + * clRetainMemObject() and clReleaseMemObject(). + * + * \see cl_mem + */ +class Memory : public detail::Wrapper +{ +public: + + /*! \brief Destructor. + * + * This calls clReleaseMemObject() on the value held by this instance. + */ + ~Memory() {} + + //! \brief Default constructor - initializes to NULL. + Memory() : detail::Wrapper() { } + + /*! \brief Copy constructor - performs shallow copy. + * + * This calls clRetainMemObject() on the parameter's cl_mem. + */ + Memory(const Memory& memory) : detail::Wrapper(memory) { } + + /*! \brief Constructor from cl_mem - takes ownership. + * + * This effectively transfers ownership of a refcount on the cl_mem + * into the new Memory object. + */ + __CL_EXPLICIT_CONSTRUCTORS Memory(const cl_mem& memory) : detail::Wrapper(memory) { } + + /*! \brief Assignment operator from Memory. + * + * This calls clRetainMemObject() on the parameter and clReleaseMemObject() + * on the previous value held by this instance. + */ + Memory& operator = (const Memory& rhs) + { + if (this != &rhs) { + detail::Wrapper::operator=(rhs); + } + return *this; + } + + /*! \brief Assignment operator from cl_mem - takes ownership. + * + * This effectively transfers ownership of a refcount on the rhs and calls + * clReleaseMemObject() on the value previously held by this instance. + */ + Memory& operator = (const cl_mem& rhs) + { + detail::Wrapper::operator=(rhs); + return *this; + } + + //! \brief Wrapper for clGetMemObjectInfo(). + template + cl_int getInfo(cl_mem_info name, T* param) const + { + return detail::errHandler( + detail::getInfo(&::clGetMemObjectInfo, object_, name, param), + __GET_MEM_OBJECT_INFO_ERR); + } + + //! \brief Wrapper for clGetMemObjectInfo() that returns by value. + template typename + detail::param_traits::param_type + getInfo(cl_int* err = NULL) const + { + typename detail::param_traits< + detail::cl_mem_info, name>::param_type param; + cl_int result = getInfo(name, ¶m); + if (err != NULL) { + *err = result; + } + return param; + } + +#if defined(CL_VERSION_1_1) + /*! \brief Registers a callback function to be called when the memory object + * is no longer needed. + * + * Wraps clSetMemObjectDestructorCallback(). + * + * Repeated calls to this function, for a given cl_mem value, will append + * to the list of functions called (in reverse order) when memory object's + * resources are freed and the memory object is deleted. + * + * \note + * The registered callbacks are associated with the underlying cl_mem + * value - not the Memory class instance. + */ + cl_int setDestructorCallback( + void (CL_CALLBACK * pfn_notify)(cl_mem, void *), + void * user_data = NULL) + { + return detail::errHandler( + ::clSetMemObjectDestructorCallback( + object_, + pfn_notify, + user_data), + __SET_MEM_OBJECT_DESTRUCTOR_CALLBACK_ERR); + } +#endif + +}; + +// Pre-declare copy functions +class Buffer; +template< typename IteratorType > +cl_int copy( IteratorType startIterator, IteratorType endIterator, cl::Buffer &buffer ); +template< typename IteratorType > +cl_int copy( const cl::Buffer &buffer, IteratorType startIterator, IteratorType endIterator ); +template< typename IteratorType > +cl_int copy( const CommandQueue &queue, IteratorType startIterator, IteratorType endIterator, cl::Buffer &buffer ); +template< typename IteratorType > +cl_int copy( const CommandQueue &queue, const cl::Buffer &buffer, IteratorType startIterator, IteratorType endIterator ); + + +/*! \brief Class interface for Buffer Memory Objects. + * + * See Memory for details about copy semantics, etc. + * + * \see Memory + */ +class Buffer : public Memory +{ +public: + + /*! \brief Constructs a Buffer in a specified context. + * + * Wraps clCreateBuffer(). + * + * \param host_ptr Storage to be used if the CL_MEM_USE_HOST_PTR flag was + * specified. Note alignment & exclusivity requirements. + */ + Buffer( + const Context& context, + cl_mem_flags flags, + ::size_t size, + void* host_ptr = NULL, + cl_int* err = NULL) + { + cl_int error; + object_ = ::clCreateBuffer(context(), flags, size, host_ptr, &error); + + detail::errHandler(error, __CREATE_BUFFER_ERR); + if (err != NULL) { + *err = error; + } + } + + /*! \brief Constructs a Buffer in the default context. + * + * Wraps clCreateBuffer(). + * + * \param host_ptr Storage to be used if the CL_MEM_USE_HOST_PTR flag was + * specified. Note alignment & exclusivity requirements. + * + * \see Context::getDefault() + */ + Buffer( + cl_mem_flags flags, + ::size_t size, + void* host_ptr = NULL, + cl_int* err = NULL) + { + cl_int error; + + Context context = Context::getDefault(err); + + object_ = ::clCreateBuffer(context(), flags, size, host_ptr, &error); + + detail::errHandler(error, __CREATE_BUFFER_ERR); + if (err != NULL) { + *err = error; + } + } + + /*! + * \brief Construct a Buffer from a host container via iterators. + * IteratorType must be random access. + * If useHostPtr is specified iterators must represent contiguous data. + */ + template< typename IteratorType > + Buffer( + IteratorType startIterator, + IteratorType endIterator, + bool readOnly, + bool useHostPtr = false, + cl_int* err = NULL) + { + typedef typename std::iterator_traits::value_type DataType; + cl_int error; + + cl_mem_flags flags = 0; + if( readOnly ) { + flags |= CL_MEM_READ_ONLY; + } + else { + flags |= CL_MEM_READ_WRITE; + } + if( useHostPtr ) { + flags |= CL_MEM_USE_HOST_PTR; + } + + ::size_t size = sizeof(DataType)*(endIterator - startIterator); + + Context context = Context::getDefault(err); + + if( useHostPtr ) { + object_ = ::clCreateBuffer(context(), flags, size, static_cast(&*startIterator), &error); + } else { + object_ = ::clCreateBuffer(context(), flags, size, 0, &error); + } + + detail::errHandler(error, __CREATE_BUFFER_ERR); + if (err != NULL) { + *err = error; + } + + if( !useHostPtr ) { + error = cl::copy(startIterator, endIterator, *this); + detail::errHandler(error, __CREATE_BUFFER_ERR); + if (err != NULL) { + *err = error; + } + } + } + + /*! + * \brief Construct a Buffer from a host container via iterators using a specified context. + * IteratorType must be random access. + * If useHostPtr is specified iterators must represent contiguous data. + */ + template< typename IteratorType > + Buffer(const Context &context, IteratorType startIterator, IteratorType endIterator, + bool readOnly, bool useHostPtr = false, cl_int* err = NULL); + + //! \brief Default constructor - initializes to NULL. + Buffer() : Memory() { } + + /*! \brief Copy constructor - performs shallow copy. + * + * See Memory for further details. + */ + Buffer(const Buffer& buffer) : Memory(buffer) { } + + /*! \brief Constructor from cl_mem - takes ownership. + * + * See Memory for further details. + */ + __CL_EXPLICIT_CONSTRUCTORS Buffer(const cl_mem& buffer) : Memory(buffer) { } + + /*! \brief Assignment from Buffer - performs shallow copy. + * + * See Memory for further details. + */ + Buffer& operator = (const Buffer& rhs) + { + if (this != &rhs) { + Memory::operator=(rhs); + } + return *this; + } + + /*! \brief Assignment from cl_mem - performs shallow copy. + * + * See Memory for further details. + */ + Buffer& operator = (const cl_mem& rhs) + { + Memory::operator=(rhs); + return *this; + } + +#if defined(CL_VERSION_1_1) + /*! \brief Creates a new buffer object from this. + * + * Wraps clCreateSubBuffer(). + */ + Buffer createSubBuffer( + cl_mem_flags flags, + cl_buffer_create_type buffer_create_type, + const void * buffer_create_info, + cl_int * err = NULL) + { + Buffer result; + cl_int error; + result.object_ = ::clCreateSubBuffer( + object_, + flags, + buffer_create_type, + buffer_create_info, + &error); + + detail::errHandler(error, __CREATE_SUBBUFFER_ERR); + if (err != NULL) { + *err = error; + } + + return result; + } +#endif +}; + +#if defined (USE_DX_INTEROP) +/*! \brief Class interface for creating OpenCL buffers from ID3D10Buffer's. + * + * This is provided to facilitate interoperability with Direct3D. + * + * See Memory for details about copy semantics, etc. + * + * \see Memory + */ +class BufferD3D10 : public Buffer +{ +public: + typedef CL_API_ENTRY cl_mem (CL_API_CALL *PFN_clCreateFromD3D10BufferKHR)( + cl_context context, cl_mem_flags flags, ID3D10Buffer* buffer, + cl_int* errcode_ret); + + /*! \brief Constructs a BufferD3D10, in a specified context, from a + * given ID3D10Buffer. + * + * Wraps clCreateFromD3D10BufferKHR(). + */ + BufferD3D10( + const Context& context, + cl_mem_flags flags, + ID3D10Buffer* bufobj, + cl_int * err = NULL) + { + static PFN_clCreateFromD3D10BufferKHR pfn_clCreateFromD3D10BufferKHR = NULL; + +#if defined(CL_VERSION_1_2) + vector props = context.getInfo(); + cl_platform platform = -1; + for( int i = 0; i < props.size(); ++i ) { + if( props[i] == CL_CONTEXT_PLATFORM ) { + platform = props[i+1]; + } + } + __INIT_CL_EXT_FCN_PTR_PLATFORM(platform, clCreateFromD3D10BufferKHR); +#endif +#if defined(CL_VERSION_1_1) + __INIT_CL_EXT_FCN_PTR(clCreateFromD3D10BufferKHR); +#endif + + cl_int error; + object_ = pfn_clCreateFromD3D10BufferKHR( + context(), + flags, + bufobj, + &error); + + detail::errHandler(error, __CREATE_GL_BUFFER_ERR); + if (err != NULL) { + *err = error; + } + } + + //! \brief Default constructor - initializes to NULL. + BufferD3D10() : Buffer() { } + + /*! \brief Copy constructor - performs shallow copy. + * + * See Memory for further details. + */ + BufferD3D10(const BufferD3D10& buffer) : Buffer(buffer) { } + + /*! \brief Constructor from cl_mem - takes ownership. + * + * See Memory for further details. + */ + __CL_EXPLICIT_CONSTRUCTORS BufferD3D10(const cl_mem& buffer) : Buffer(buffer) { } + + /*! \brief Assignment from BufferD3D10 - performs shallow copy. + * + * See Memory for further details. + */ + BufferD3D10& operator = (const BufferD3D10& rhs) + { + if (this != &rhs) { + Buffer::operator=(rhs); + } + return *this; + } + + /*! \brief Assignment from cl_mem - performs shallow copy. + * + * See Memory for further details. + */ + BufferD3D10& operator = (const cl_mem& rhs) + { + Buffer::operator=(rhs); + return *this; + } +}; +#endif + +/*! \brief Class interface for GL Buffer Memory Objects. + * + * This is provided to facilitate interoperability with OpenGL. + * + * See Memory for details about copy semantics, etc. + * + * \see Memory + */ +class BufferGL : public Buffer +{ +public: + /*! \brief Constructs a BufferGL in a specified context, from a given + * GL buffer. + * + * Wraps clCreateFromGLBuffer(). + */ + BufferGL( + const Context& context, + cl_mem_flags flags, + GLuint bufobj, + cl_int * err = NULL) + { + cl_int error; + object_ = ::clCreateFromGLBuffer( + context(), + flags, + bufobj, + &error); + + detail::errHandler(error, __CREATE_GL_BUFFER_ERR); + if (err != NULL) { + *err = error; + } + } + + //! \brief Default constructor - initializes to NULL. + BufferGL() : Buffer() { } + + /*! \brief Copy constructor - performs shallow copy. + * + * See Memory for further details. + */ + BufferGL(const BufferGL& buffer) : Buffer(buffer) { } + + /*! \brief Constructor from cl_mem - takes ownership. + * + * See Memory for further details. + */ + __CL_EXPLICIT_CONSTRUCTORS BufferGL(const cl_mem& buffer) : Buffer(buffer) { } + + /*! \brief Assignment from BufferGL - performs shallow copy. + * + * See Memory for further details. + */ + BufferGL& operator = (const BufferGL& rhs) + { + if (this != &rhs) { + Buffer::operator=(rhs); + } + return *this; + } + + /*! \brief Assignment from cl_mem - performs shallow copy. + * + * See Memory for further details. + */ + BufferGL& operator = (const cl_mem& rhs) + { + Buffer::operator=(rhs); + return *this; + } + + //! \brief Wrapper for clGetGLObjectInfo(). + cl_int getObjectInfo( + cl_gl_object_type *type, + GLuint * gl_object_name) + { + return detail::errHandler( + ::clGetGLObjectInfo(object_,type,gl_object_name), + __GET_GL_OBJECT_INFO_ERR); + } +}; + +/*! \brief Class interface for GL Render Buffer Memory Objects. + * + * This is provided to facilitate interoperability with OpenGL. + * + * See Memory for details about copy semantics, etc. + * + * \see Memory + */ +class BufferRenderGL : public Buffer +{ +public: + /*! \brief Constructs a BufferRenderGL in a specified context, from a given + * GL Renderbuffer. + * + * Wraps clCreateFromGLRenderbuffer(). + */ + BufferRenderGL( + const Context& context, + cl_mem_flags flags, + GLuint bufobj, + cl_int * err = NULL) + { + cl_int error; + object_ = ::clCreateFromGLRenderbuffer( + context(), + flags, + bufobj, + &error); + + detail::errHandler(error, __CREATE_GL_RENDER_BUFFER_ERR); + if (err != NULL) { + *err = error; + } + } + + //! \brief Default constructor - initializes to NULL. + BufferRenderGL() : Buffer() { } + + /*! \brief Copy constructor - performs shallow copy. + * + * See Memory for further details. + */ + BufferRenderGL(const BufferGL& buffer) : Buffer(buffer) { } + + /*! \brief Constructor from cl_mem - takes ownership. + * + * See Memory for further details. + */ + __CL_EXPLICIT_CONSTRUCTORS BufferRenderGL(const cl_mem& buffer) : Buffer(buffer) { } + + /*! \brief Assignment from BufferGL - performs shallow copy. + * + * See Memory for further details. + */ + BufferRenderGL& operator = (const BufferRenderGL& rhs) + { + if (this != &rhs) { + Buffer::operator=(rhs); + } + return *this; + } + + /*! \brief Assignment from cl_mem - performs shallow copy. + * + * See Memory for further details. + */ + BufferRenderGL& operator = (const cl_mem& rhs) + { + Buffer::operator=(rhs); + return *this; + } + + //! \brief Wrapper for clGetGLObjectInfo(). + cl_int getObjectInfo( + cl_gl_object_type *type, + GLuint * gl_object_name) + { + return detail::errHandler( + ::clGetGLObjectInfo(object_,type,gl_object_name), + __GET_GL_OBJECT_INFO_ERR); + } +}; + +/*! \brief C++ base class for Image Memory objects. + * + * See Memory for details about copy semantics, etc. + * + * \see Memory + */ +class Image : public Memory +{ +protected: + //! \brief Default constructor - initializes to NULL. + Image() : Memory() { } + + /*! \brief Copy constructor - performs shallow copy. + * + * See Memory for further details. + */ + Image(const Image& image) : Memory(image) { } + + /*! \brief Constructor from cl_mem - takes ownership. + * + * See Memory for further details. + */ + __CL_EXPLICIT_CONSTRUCTORS Image(const cl_mem& image) : Memory(image) { } + + /*! \brief Assignment from Image - performs shallow copy. + * + * See Memory for further details. + */ + Image& operator = (const Image& rhs) + { + if (this != &rhs) { + Memory::operator=(rhs); + } + return *this; + } + + /*! \brief Assignment from cl_mem - performs shallow copy. + * + * See Memory for further details. + */ + Image& operator = (const cl_mem& rhs) + { + Memory::operator=(rhs); + return *this; + } + +public: + //! \brief Wrapper for clGetImageInfo(). + template + cl_int getImageInfo(cl_image_info name, T* param) const + { + return detail::errHandler( + detail::getInfo(&::clGetImageInfo, object_, name, param), + __GET_IMAGE_INFO_ERR); + } + + //! \brief Wrapper for clGetImageInfo() that returns by value. + template typename + detail::param_traits::param_type + getImageInfo(cl_int* err = NULL) const + { + typename detail::param_traits< + detail::cl_image_info, name>::param_type param; + cl_int result = getImageInfo(name, ¶m); + if (err != NULL) { + *err = result; + } + return param; + } +}; + +#if defined(CL_VERSION_1_2) +/*! \brief Class interface for 1D Image Memory objects. + * + * See Memory for details about copy semantics, etc. + * + * \see Memory + */ +class Image1D : public Image +{ +public: + /*! \brief Constructs a 1D Image in a specified context. + * + * Wraps clCreateImage(). + */ + Image1D( + const Context& context, + cl_mem_flags flags, + ImageFormat format, + ::size_t width, + void* host_ptr = NULL, + cl_int* err = NULL) + { + cl_int error; + cl_image_desc desc = + { + CL_MEM_OBJECT_IMAGE1D, + width, + 0, 0, 0, 0, 0, 0, 0, 0 + }; + object_ = ::clCreateImage( + context(), + flags, + &format, + &desc, + host_ptr, + &error); + + detail::errHandler(error, __CREATE_IMAGE_ERR); + if (err != NULL) { + *err = error; + } + } + + //! \brief Default constructor - initializes to NULL. + Image1D() { } + + /*! \brief Copy constructor - performs shallow copy. + * + * See Memory for further details. + */ + Image1D(const Image1D& image1D) : Image(image1D) { } + + /*! \brief Constructor from cl_mem - takes ownership. + * + * See Memory for further details. + */ + __CL_EXPLICIT_CONSTRUCTORS Image1D(const cl_mem& image1D) : Image(image1D) { } + + /*! \brief Assignment from Image1D - performs shallow copy. + * + * See Memory for further details. + */ + Image1D& operator = (const Image1D& rhs) + { + if (this != &rhs) { + Image::operator=(rhs); + } + return *this; + } + + /*! \brief Assignment from cl_mem - performs shallow copy. + * + * See Memory for further details. + */ + Image1D& operator = (const cl_mem& rhs) + { + Image::operator=(rhs); + return *this; + } +}; + +/*! \class Image1DBuffer + * \brief Image interface for 1D buffer images. + */ +class Image1DBuffer : public Image +{ +public: + Image1DBuffer( + const Context& context, + cl_mem_flags flags, + ImageFormat format, + ::size_t width, + const Buffer &buffer, + cl_int* err = NULL) + { + cl_int error; + cl_image_desc desc = + { + CL_MEM_OBJECT_IMAGE1D_BUFFER, + width, + 0, 0, 0, 0, 0, 0, 0, + buffer() + }; + object_ = ::clCreateImage( + context(), + flags, + &format, + &desc, + NULL, + &error); + + detail::errHandler(error, __CREATE_IMAGE_ERR); + if (err != NULL) { + *err = error; + } + } + + Image1DBuffer() { } + + Image1DBuffer(const Image1DBuffer& image1D) : Image(image1D) { } + + __CL_EXPLICIT_CONSTRUCTORS Image1DBuffer(const cl_mem& image1D) : Image(image1D) { } + + Image1DBuffer& operator = (const Image1DBuffer& rhs) + { + if (this != &rhs) { + Image::operator=(rhs); + } + return *this; + } + + Image1DBuffer& operator = (const cl_mem& rhs) + { + Image::operator=(rhs); + return *this; + } +}; + +/*! \class Image1DArray + * \brief Image interface for arrays of 1D images. + */ +class Image1DArray : public Image +{ +public: + Image1DArray( + const Context& context, + cl_mem_flags flags, + ImageFormat format, + ::size_t arraySize, + ::size_t width, + ::size_t rowPitch, + void* host_ptr = NULL, + cl_int* err = NULL) + { + cl_int error; + cl_image_desc desc = + { + CL_MEM_OBJECT_IMAGE1D_ARRAY, + width, + 0, 0, // height, depth (unused) + arraySize, + rowPitch, + 0, 0, 0, 0 + }; + object_ = ::clCreateImage( + context(), + flags, + &format, + &desc, + host_ptr, + &error); + + detail::errHandler(error, __CREATE_IMAGE_ERR); + if (err != NULL) { + *err = error; + } + } + + Image1DArray() { } + + Image1DArray(const Image1DArray& imageArray) : Image(imageArray) { } + + __CL_EXPLICIT_CONSTRUCTORS Image1DArray(const cl_mem& imageArray) : Image(imageArray) { } + + Image1DArray& operator = (const Image1DArray& rhs) + { + if (this != &rhs) { + Image::operator=(rhs); + } + return *this; + } + + Image1DArray& operator = (const cl_mem& rhs) + { + Image::operator=(rhs); + return *this; + } +}; +#endif // #if defined(CL_VERSION_1_2) + + +/*! \brief Class interface for 2D Image Memory objects. + * + * See Memory for details about copy semantics, etc. + * + * \see Memory + */ +class Image2D : public Image +{ +public: + /*! \brief Constructs a 1D Image in a specified context. + * + * Wraps clCreateImage(). + */ + Image2D( + const Context& context, + cl_mem_flags flags, + ImageFormat format, + ::size_t width, + ::size_t height, + ::size_t row_pitch = 0, + void* host_ptr = NULL, + cl_int* err = NULL) + { + cl_int error; + bool useCreateImage; + +#if defined(CL_VERSION_1_2) && defined(CL_USE_DEPRECATED_OPENCL_1_1_APIS) + // Run-time decision based on the actual platform + { + cl_uint version = detail::getContextPlatformVersion(context()); + useCreateImage = (version >= 0x10002); // OpenCL 1.2 or above + } +#elif defined(CL_VERSION_1_2) + useCreateImage = true; +#else + useCreateImage = false; +#endif + +#if defined(CL_VERSION_1_2) + if (useCreateImage) + { + cl_image_desc desc = + { + CL_MEM_OBJECT_IMAGE2D, + width, + height, + 0, 0, // depth, array size (unused) + row_pitch, + 0, 0, 0, 0 + }; + object_ = ::clCreateImage( + context(), + flags, + &format, + &desc, + host_ptr, + &error); + + detail::errHandler(error, __CREATE_IMAGE_ERR); + if (err != NULL) { + *err = error; + } + } +#endif // #if defined(CL_VERSION_1_2) +#if !defined(CL_VERSION_1_2) || defined(CL_USE_DEPRECATED_OPENCL_1_1_APIS) + if (!useCreateImage) + { + object_ = ::clCreateImage2D( + context(), flags,&format, width, height, row_pitch, host_ptr, &error); + + detail::errHandler(error, __CREATE_IMAGE2D_ERR); + if (err != NULL) { + *err = error; + } + } +#endif // #if !defined(CL_VERSION_1_2) || defined(CL_USE_DEPRECATED_OPENCL_1_1_APIS) + } + + //! \brief Default constructor - initializes to NULL. + Image2D() { } + + /*! \brief Copy constructor - performs shallow copy. + * + * See Memory for further details. + */ + Image2D(const Image2D& image2D) : Image(image2D) { } + + /*! \brief Constructor from cl_mem - takes ownership. + * + * See Memory for further details. + */ + __CL_EXPLICIT_CONSTRUCTORS Image2D(const cl_mem& image2D) : Image(image2D) { } + + /*! \brief Assignment from Image2D - performs shallow copy. + * + * See Memory for further details. + */ + Image2D& operator = (const Image2D& rhs) + { + if (this != &rhs) { + Image::operator=(rhs); + } + return *this; + } + + /*! \brief Assignment from cl_mem - performs shallow copy. + * + * See Memory for further details. + */ + Image2D& operator = (const cl_mem& rhs) + { + Image::operator=(rhs); + return *this; + } +}; + + +#if !defined(CL_VERSION_1_2) +/*! \brief Class interface for GL 2D Image Memory objects. + * + * This is provided to facilitate interoperability with OpenGL. + * + * See Memory for details about copy semantics, etc. + * + * \see Memory + * \note Deprecated for OpenCL 1.2. Please use ImageGL instead. + */ +class CL_EXT_PREFIX__VERSION_1_1_DEPRECATED Image2DGL CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED : public Image2D +{ +public: + /*! \brief Constructs an Image2DGL in a specified context, from a given + * GL Texture. + * + * Wraps clCreateFromGLTexture2D(). + */ + Image2DGL( + const Context& context, + cl_mem_flags flags, + GLenum target, + GLint miplevel, + GLuint texobj, + cl_int * err = NULL) + { + cl_int error; + object_ = ::clCreateFromGLTexture2D( + context(), + flags, + target, + miplevel, + texobj, + &error); + + detail::errHandler(error, __CREATE_GL_TEXTURE_2D_ERR); + if (err != NULL) { + *err = error; + } + + } + + //! \brief Default constructor - initializes to NULL. + Image2DGL() : Image2D() { } + + /*! \brief Copy constructor - performs shallow copy. + * + * See Memory for further details. + */ + Image2DGL(const Image2DGL& image) : Image2D(image) { } + + /*! \brief Constructor from cl_mem - takes ownership. + * + * See Memory for further details. + */ + __CL_EXPLICIT_CONSTRUCTORS Image2DGL(const cl_mem& image) : Image2D(image) { } + + /*! \brief Assignment from Image2DGL - performs shallow copy. + * + * See Memory for further details. + */ + Image2DGL& operator = (const Image2DGL& rhs) + { + if (this != &rhs) { + Image2D::operator=(rhs); + } + return *this; + } + + /*! \brief Assignment from cl_mem - performs shallow copy. + * + * See Memory for further details. + */ + Image2DGL& operator = (const cl_mem& rhs) + { + Image2D::operator=(rhs); + return *this; + } +}; +#endif // #if !defined(CL_VERSION_1_2) + +#if defined(CL_VERSION_1_2) +/*! \class Image2DArray + * \brief Image interface for arrays of 2D images. + */ +class Image2DArray : public Image +{ +public: + Image2DArray( + const Context& context, + cl_mem_flags flags, + ImageFormat format, + ::size_t arraySize, + ::size_t width, + ::size_t height, + ::size_t rowPitch, + ::size_t slicePitch, + void* host_ptr = NULL, + cl_int* err = NULL) + { + cl_int error; + cl_image_desc desc = + { + CL_MEM_OBJECT_IMAGE2D_ARRAY, + width, + height, + 0, // depth (unused) + arraySize, + rowPitch, + slicePitch, + 0, 0, 0 + }; + object_ = ::clCreateImage( + context(), + flags, + &format, + &desc, + host_ptr, + &error); + + detail::errHandler(error, __CREATE_IMAGE_ERR); + if (err != NULL) { + *err = error; + } + } + + Image2DArray() { } + + Image2DArray(const Image2DArray& imageArray) : Image(imageArray) { } + + __CL_EXPLICIT_CONSTRUCTORS Image2DArray(const cl_mem& imageArray) : Image(imageArray) { } + + Image2DArray& operator = (const Image2DArray& rhs) + { + if (this != &rhs) { + Image::operator=(rhs); + } + return *this; + } + + Image2DArray& operator = (const cl_mem& rhs) + { + Image::operator=(rhs); + return *this; + } +}; +#endif // #if defined(CL_VERSION_1_2) + +/*! \brief Class interface for 3D Image Memory objects. + * + * See Memory for details about copy semantics, etc. + * + * \see Memory + */ +class Image3D : public Image +{ +public: + /*! \brief Constructs a 3D Image in a specified context. + * + * Wraps clCreateImage(). + */ + Image3D( + const Context& context, + cl_mem_flags flags, + ImageFormat format, + ::size_t width, + ::size_t height, + ::size_t depth, + ::size_t row_pitch = 0, + ::size_t slice_pitch = 0, + void* host_ptr = NULL, + cl_int* err = NULL) + { + cl_int error; + bool useCreateImage; + +#if defined(CL_VERSION_1_2) && defined(CL_USE_DEPRECATED_OPENCL_1_1_APIS) + // Run-time decision based on the actual platform + { + cl_uint version = detail::getContextPlatformVersion(context()); + useCreateImage = (version >= 0x10002); // OpenCL 1.2 or above + } +#elif defined(CL_VERSION_1_2) + useCreateImage = true; +#else + useCreateImage = false; +#endif + +#if defined(CL_VERSION_1_2) + if (useCreateImage) + { + cl_image_desc desc = + { + CL_MEM_OBJECT_IMAGE3D, + width, + height, + depth, + 0, // array size (unused) + row_pitch, + slice_pitch, + 0, 0, 0 + }; + object_ = ::clCreateImage( + context(), + flags, + &format, + &desc, + host_ptr, + &error); + + detail::errHandler(error, __CREATE_IMAGE_ERR); + if (err != NULL) { + *err = error; + } + } +#endif // #if defined(CL_VERSION_1_2) +#if !defined(CL_VERSION_1_2) || defined(CL_USE_DEPRECATED_OPENCL_1_1_APIS) + if (!useCreateImage) + { + object_ = ::clCreateImage3D( + context(), flags, &format, width, height, depth, row_pitch, + slice_pitch, host_ptr, &error); + + detail::errHandler(error, __CREATE_IMAGE3D_ERR); + if (err != NULL) { + *err = error; + } + } +#endif // #if !defined(CL_VERSION_1_2) || defined(CL_USE_DEPRECATED_OPENCL_1_1_APIS) + } + + //! \brief Default constructor - initializes to NULL. + Image3D() { } + + /*! \brief Copy constructor - performs shallow copy. + * + * See Memory for further details. + */ + Image3D(const Image3D& image3D) : Image(image3D) { } + + /*! \brief Constructor from cl_mem - takes ownership. + * + * See Memory for further details. + */ + __CL_EXPLICIT_CONSTRUCTORS Image3D(const cl_mem& image3D) : Image(image3D) { } + + /*! \brief Assignment from Image3D - performs shallow copy. + * + * See Memory for further details. + */ + Image3D& operator = (const Image3D& rhs) + { + if (this != &rhs) { + Image::operator=(rhs); + } + return *this; + } + + /*! \brief Assignment from cl_mem - performs shallow copy. + * + * See Memory for further details. + */ + Image3D& operator = (const cl_mem& rhs) + { + Image::operator=(rhs); + return *this; + } +}; + +#if !defined(CL_VERSION_1_2) +/*! \brief Class interface for GL 3D Image Memory objects. + * + * This is provided to facilitate interoperability with OpenGL. + * + * See Memory for details about copy semantics, etc. + * + * \see Memory + */ +class Image3DGL : public Image3D +{ +public: + /*! \brief Constructs an Image3DGL in a specified context, from a given + * GL Texture. + * + * Wraps clCreateFromGLTexture3D(). + */ + Image3DGL( + const Context& context, + cl_mem_flags flags, + GLenum target, + GLint miplevel, + GLuint texobj, + cl_int * err = NULL) + { + cl_int error; + object_ = ::clCreateFromGLTexture3D( + context(), + flags, + target, + miplevel, + texobj, + &error); + + detail::errHandler(error, __CREATE_GL_TEXTURE_3D_ERR); + if (err != NULL) { + *err = error; + } + } + + //! \brief Default constructor - initializes to NULL. + Image3DGL() : Image3D() { } + + /*! \brief Copy constructor - performs shallow copy. + * + * See Memory for further details. + */ + Image3DGL(const Image3DGL& image) : Image3D(image) { } + + /*! \brief Constructor from cl_mem - takes ownership. + * + * See Memory for further details. + */ + __CL_EXPLICIT_CONSTRUCTORS Image3DGL(const cl_mem& image) : Image3D(image) { } + + /*! \brief Assignment from Image3DGL - performs shallow copy. + * + * See Memory for further details. + */ + Image3DGL& operator = (const Image3DGL& rhs) + { + if (this != &rhs) { + Image3D::operator=(rhs); + } + return *this; + } + + /*! \brief Assignment from cl_mem - performs shallow copy. + * + * See Memory for further details. + */ + Image3DGL& operator = (const cl_mem& rhs) + { + Image3D::operator=(rhs); + return *this; + } +}; +#endif // #if !defined(CL_VERSION_1_2) + +#if defined(CL_VERSION_1_2) +/*! \class ImageGL + * \brief general image interface for GL interop. + * We abstract the 2D and 3D GL images into a single instance here + * that wraps all GL sourced images on the grounds that setup information + * was performed by OpenCL anyway. + */ +class ImageGL : public Image +{ +public: + ImageGL( + const Context& context, + cl_mem_flags flags, + GLenum target, + GLint miplevel, + GLuint texobj, + cl_int * err = NULL) + { + cl_int error; + object_ = ::clCreateFromGLTexture( + context(), + flags, + target, + miplevel, + texobj, + &error); + + detail::errHandler(error, __CREATE_GL_TEXTURE_ERR); + if (err != NULL) { + *err = error; + } + } + + ImageGL() : Image() { } + + ImageGL(const ImageGL& image) : Image(image) { } + + __CL_EXPLICIT_CONSTRUCTORS ImageGL(const cl_mem& image) : Image(image) { } + + ImageGL& operator = (const ImageGL& rhs) + { + if (this != &rhs) { + Image::operator=(rhs); + } + return *this; + } + + ImageGL& operator = (const cl_mem& rhs) + { + Image::operator=(rhs); + return *this; + } +}; +#endif // #if defined(CL_VERSION_1_2) + +/*! \brief Class interface for cl_sampler. + * + * \note Copies of these objects are shallow, meaning that the copy will refer + * to the same underlying cl_sampler as the original. For details, see + * clRetainSampler() and clReleaseSampler(). + * + * \see cl_sampler + */ +class Sampler : public detail::Wrapper +{ +public: + /*! \brief Destructor. + * + * This calls clReleaseSampler() on the value held by this instance. + */ + ~Sampler() { } + + //! \brief Default constructor - initializes to NULL. + Sampler() { } + + /*! \brief Constructs a Sampler in a specified context. + * + * Wraps clCreateSampler(). + */ + Sampler( + const Context& context, + cl_bool normalized_coords, + cl_addressing_mode addressing_mode, + cl_filter_mode filter_mode, + cl_int* err = NULL) + { + cl_int error; + object_ = ::clCreateSampler( + context(), + normalized_coords, + addressing_mode, + filter_mode, + &error); + + detail::errHandler(error, __CREATE_SAMPLER_ERR); + if (err != NULL) { + *err = error; + } + } + + /*! \brief Copy constructor - performs shallow copy. + * + * This calls clRetainSampler() on the parameter's cl_sampler. + */ + Sampler(const Sampler& sampler) : detail::Wrapper(sampler) { } + + /*! \brief Constructor from cl_sampler - takes ownership. + * + * This effectively transfers ownership of a refcount on the cl_sampler + * into the new Sampler object. + */ + Sampler(const cl_sampler& sampler) : detail::Wrapper(sampler) { } + + /*! \brief Assignment operator from Sampler. + * + * This calls clRetainSampler() on the parameter and clReleaseSampler() + * on the previous value held by this instance. + */ + Sampler& operator = (const Sampler& rhs) + { + if (this != &rhs) { + detail::Wrapper::operator=(rhs); + } + return *this; + } + + /*! \brief Assignment operator from cl_sampler - takes ownership. + * + * This effectively transfers ownership of a refcount on the rhs and calls + * clReleaseSampler() on the value previously held by this instance. + */ + Sampler& operator = (const cl_sampler& rhs) + { + detail::Wrapper::operator=(rhs); + return *this; + } + + //! \brief Wrapper for clGetSamplerInfo(). + template + cl_int getInfo(cl_sampler_info name, T* param) const + { + return detail::errHandler( + detail::getInfo(&::clGetSamplerInfo, object_, name, param), + __GET_SAMPLER_INFO_ERR); + } + + //! \brief Wrapper for clGetSamplerInfo() that returns by value. + template typename + detail::param_traits::param_type + getInfo(cl_int* err = NULL) const + { + typename detail::param_traits< + detail::cl_sampler_info, name>::param_type param; + cl_int result = getInfo(name, ¶m); + if (err != NULL) { + *err = result; + } + return param; + } +}; + +class Program; +class CommandQueue; +class Kernel; + +//! \brief Class interface for specifying NDRange values. +class NDRange +{ +private: + size_t<3> sizes_; + cl_uint dimensions_; + +public: + //! \brief Default constructor - resulting range has zero dimensions. + NDRange() + : dimensions_(0) + { } + + //! \brief Constructs one-dimensional range. + NDRange(::size_t size0) + : dimensions_(1) + { + sizes_[0] = size0; + } + + //! \brief Constructs two-dimensional range. + NDRange(::size_t size0, ::size_t size1) + : dimensions_(2) + { + sizes_[0] = size0; + sizes_[1] = size1; + } + + //! \brief Constructs three-dimensional range. + NDRange(::size_t size0, ::size_t size1, ::size_t size2) + : dimensions_(3) + { + sizes_[0] = size0; + sizes_[1] = size1; + sizes_[2] = size2; + } + + /*! \brief Conversion operator to const ::size_t *. + * + * \returns a pointer to the size of the first dimension. + */ + operator const ::size_t*() const { + return (const ::size_t*) sizes_; + } + + //! \brief Queries the number of dimensions in the range. + ::size_t dimensions() const { return dimensions_; } +}; + +//! \brief A zero-dimensional range. +static const NDRange NullRange; + +//! \brief Local address wrapper for use with Kernel::setArg +struct LocalSpaceArg +{ + ::size_t size_; +}; + +namespace detail { + +template +struct KernelArgumentHandler +{ + static ::size_t size(const T&) { return sizeof(T); } + static T* ptr(T& value) { return &value; } +}; + +template <> +struct KernelArgumentHandler +{ + static ::size_t size(const LocalSpaceArg& value) { return value.size_; } + static void* ptr(LocalSpaceArg&) { return NULL; } +}; + +} +//! \endcond + +/*! __local + * \brief Helper function for generating LocalSpaceArg objects. + * Deprecated. Replaced with Local. + */ +inline CL_EXT_PREFIX__VERSION_1_1_DEPRECATED LocalSpaceArg +__local(::size_t size) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED; +inline LocalSpaceArg +__local(::size_t size) +{ + LocalSpaceArg ret = { size }; + return ret; +} + +/*! Local + * \brief Helper function for generating LocalSpaceArg objects. + */ +inline LocalSpaceArg +Local(::size_t size) +{ + LocalSpaceArg ret = { size }; + return ret; +} + +//class KernelFunctor; + +/*! \brief Class interface for cl_kernel. + * + * \note Copies of these objects are shallow, meaning that the copy will refer + * to the same underlying cl_kernel as the original. For details, see + * clRetainKernel() and clReleaseKernel(). + * + * \see cl_kernel + */ +class Kernel : public detail::Wrapper +{ +public: + inline Kernel(const Program& program, const char* name, cl_int* err = NULL); + + /*! \brief Destructor. + * + * This calls clReleaseKernel() on the value held by this instance. + */ + ~Kernel() { } + + //! \brief Default constructor - initializes to NULL. + Kernel() { } + + /*! \brief Copy constructor - performs shallow copy. + * + * This calls clRetainKernel() on the parameter's cl_kernel. + */ + Kernel(const Kernel& kernel) : detail::Wrapper(kernel) { } + + /*! \brief Constructor from cl_kernel - takes ownership. + * + * This effectively transfers ownership of a refcount on the cl_kernel + * into the new Kernel object. + */ + __CL_EXPLICIT_CONSTRUCTORS Kernel(const cl_kernel& kernel) : detail::Wrapper(kernel) { } + + /*! \brief Assignment operator from Kernel. + * + * This calls clRetainKernel() on the parameter and clReleaseKernel() + * on the previous value held by this instance. + */ + Kernel& operator = (const Kernel& rhs) + { + if (this != &rhs) { + detail::Wrapper::operator=(rhs); + } + return *this; + } + + /*! \brief Assignment operator from cl_kernel - takes ownership. + * + * This effectively transfers ownership of a refcount on the rhs and calls + * clReleaseKernel() on the value previously held by this instance. + */ + Kernel& operator = (const cl_kernel& rhs) + { + detail::Wrapper::operator=(rhs); + return *this; + } + + template + cl_int getInfo(cl_kernel_info name, T* param) const + { + return detail::errHandler( + detail::getInfo(&::clGetKernelInfo, object_, name, param), + __GET_KERNEL_INFO_ERR); + } + + template typename + detail::param_traits::param_type + getInfo(cl_int* err = NULL) const + { + typename detail::param_traits< + detail::cl_kernel_info, name>::param_type param; + cl_int result = getInfo(name, ¶m); + if (err != NULL) { + *err = result; + } + return param; + } + +#if defined(CL_VERSION_1_2) + template + cl_int getArgInfo(cl_uint argIndex, cl_kernel_arg_info name, T* param) const + { + return detail::errHandler( + detail::getInfo(&::clGetKernelArgInfo, object_, argIndex, name, param), + __GET_KERNEL_ARG_INFO_ERR); + } + + template typename + detail::param_traits::param_type + getArgInfo(cl_uint argIndex, cl_int* err = NULL) const + { + typename detail::param_traits< + detail::cl_kernel_arg_info, name>::param_type param; + cl_int result = getArgInfo(argIndex, name, ¶m); + if (err != NULL) { + *err = result; + } + return param; + } +#endif // #if defined(CL_VERSION_1_2) + + template + cl_int getWorkGroupInfo( + const Device& device, cl_kernel_work_group_info name, T* param) const + { + return detail::errHandler( + detail::getInfo( + &::clGetKernelWorkGroupInfo, object_, device(), name, param), + __GET_KERNEL_WORK_GROUP_INFO_ERR); + } + + template typename + detail::param_traits::param_type + getWorkGroupInfo(const Device& device, cl_int* err = NULL) const + { + typename detail::param_traits< + detail::cl_kernel_work_group_info, name>::param_type param; + cl_int result = getWorkGroupInfo(device, name, ¶m); + if (err != NULL) { + *err = result; + } + return param; + } + + template + cl_int setArg(cl_uint index, T value) + { + return detail::errHandler( + ::clSetKernelArg( + object_, + index, + detail::KernelArgumentHandler::size(value), + detail::KernelArgumentHandler::ptr(value)), + __SET_KERNEL_ARGS_ERR); + } + + cl_int setArg(cl_uint index, ::size_t size, void* argPtr) + { + return detail::errHandler( + ::clSetKernelArg(object_, index, size, argPtr), + __SET_KERNEL_ARGS_ERR); + } +}; + +/*! \class Program + * \brief Program interface that implements cl_program. + */ +class Program : public detail::Wrapper +{ +public: + typedef VECTOR_CLASS > Binaries; + typedef VECTOR_CLASS > Sources; + + Program( + const STRING_CLASS& source, + bool build = false, + cl_int* err = NULL) + { + cl_int error; + + const char * strings = source.c_str(); + const ::size_t length = source.size(); + + Context context = Context::getDefault(err); + + object_ = ::clCreateProgramWithSource( + context(), (cl_uint)1, &strings, &length, &error); + + detail::errHandler(error, __CREATE_PROGRAM_WITH_SOURCE_ERR); + + if (error == CL_SUCCESS && build) { + + error = ::clBuildProgram( + object_, + 0, + NULL, + "", + NULL, + NULL); + + detail::errHandler(error, __BUILD_PROGRAM_ERR); + } + + if (err != NULL) { + *err = error; + } + } + + Program( + const Context& context, + const STRING_CLASS& source, + bool build = false, + cl_int* err = NULL) + { + cl_int error; + + const char * strings = source.c_str(); + const ::size_t length = source.size(); + + object_ = ::clCreateProgramWithSource( + context(), (cl_uint)1, &strings, &length, &error); + + detail::errHandler(error, __CREATE_PROGRAM_WITH_SOURCE_ERR); + + if (error == CL_SUCCESS && build) { + + error = ::clBuildProgram( + object_, + 0, + NULL, + "", + NULL, + NULL); + + detail::errHandler(error, __BUILD_PROGRAM_ERR); + } + + if (err != NULL) { + *err = error; + } + } + + Program( + const Context& context, + const Sources& sources, + cl_int* err = NULL) + { + cl_int error; + + const ::size_t n = (::size_t)sources.size(); + ::size_t* lengths = (::size_t*) alloca(n * sizeof(::size_t)); + const char** strings = (const char**) alloca(n * sizeof(const char*)); + + for (::size_t i = 0; i < n; ++i) { + strings[i] = sources[(int)i].first; + lengths[i] = sources[(int)i].second; + } + + object_ = ::clCreateProgramWithSource( + context(), (cl_uint)n, strings, lengths, &error); + + detail::errHandler(error, __CREATE_PROGRAM_WITH_SOURCE_ERR); + if (err != NULL) { + *err = error; + } + } + + /** + * Construct a program object from a list of devices and a per-device list of binaries. + * \param context A valid OpenCL context in which to construct the program. + * \param devices A vector of OpenCL device objects for which the program will be created. + * \param binaries A vector of pairs of a pointer to a binary object and its length. + * \param binaryStatus An optional vector that on completion will be resized to + * match the size of binaries and filled with values to specify if each binary + * was successfully loaded. + * Set to CL_SUCCESS if the binary was successfully loaded. + * Set to CL_INVALID_VALUE if the length is 0 or the binary pointer is NULL. + * Set to CL_INVALID_BINARY if the binary provided is not valid for the matching device. + * \param err if non-NULL will be set to CL_SUCCESS on successful operation or one of the following errors: + * CL_INVALID_CONTEXT if context is not a valid context. + * CL_INVALID_VALUE if the length of devices is zero; or if the length of binaries does not match the length of devices; + * or if any entry in binaries is NULL or has length 0. + * CL_INVALID_DEVICE if OpenCL devices listed in devices are not in the list of devices associated with context. + * CL_INVALID_BINARY if an invalid program binary was encountered for any device. binaryStatus will return specific status for each device. + * CL_OUT_OF_HOST_MEMORY if there is a failure to allocate resources required by the OpenCL implementation on the host. + */ + Program( + const Context& context, + const VECTOR_CLASS& devices, + const Binaries& binaries, + VECTOR_CLASS* binaryStatus = NULL, + cl_int* err = NULL) + { + cl_int error; + + const ::size_t numDevices = devices.size(); + + // Catch size mismatch early and return + if(binaries.size() != numDevices) { + error = CL_INVALID_VALUE; + detail::errHandler(error, __CREATE_PROGRAM_WITH_BINARY_ERR); + if (err != NULL) { + *err = error; + } + return; + } + + ::size_t* lengths = (::size_t*) alloca(numDevices * sizeof(::size_t)); + const unsigned char** images = (const unsigned char**) alloca(numDevices * sizeof(const unsigned char**)); + + for (::size_t i = 0; i < numDevices; ++i) { + images[i] = (const unsigned char*)binaries[i].first; + lengths[i] = binaries[(int)i].second; + } + + cl_device_id* deviceIDs = (cl_device_id*) alloca(numDevices * sizeof(cl_device_id)); + for( ::size_t deviceIndex = 0; deviceIndex < numDevices; ++deviceIndex ) { + deviceIDs[deviceIndex] = (devices[deviceIndex])(); + } + + if(binaryStatus) { + binaryStatus->resize(numDevices); + } + + object_ = ::clCreateProgramWithBinary( + context(), (cl_uint) devices.size(), + deviceIDs, + lengths, images, binaryStatus != NULL + ? &binaryStatus->front() + : NULL, &error); + + detail::errHandler(error, __CREATE_PROGRAM_WITH_BINARY_ERR); + if (err != NULL) { + *err = error; + } + } + + +#if defined(CL_VERSION_1_2) + /** + * Create program using builtin kernels. + * \param kernelNames Semi-colon separated list of builtin kernel names + */ + Program( + const Context& context, + const VECTOR_CLASS& devices, + const STRING_CLASS& kernelNames, + cl_int* err = NULL) + { + cl_int error; + + + ::size_t numDevices = devices.size(); + cl_device_id* deviceIDs = (cl_device_id*) alloca(numDevices * sizeof(cl_device_id)); + for( ::size_t deviceIndex = 0; deviceIndex < numDevices; ++deviceIndex ) { + deviceIDs[deviceIndex] = (devices[deviceIndex])(); + } + + object_ = ::clCreateProgramWithBuiltInKernels( + context(), + (cl_uint) devices.size(), + deviceIDs, + kernelNames.c_str(), + &error); + + detail::errHandler(error, __CREATE_PROGRAM_WITH_BUILT_IN_KERNELS_ERR); + if (err != NULL) { + *err = error; + } + } +#endif // #if defined(CL_VERSION_1_2) + + Program() { } + + Program(const Program& program) : detail::Wrapper(program) { } + + __CL_EXPLICIT_CONSTRUCTORS Program(const cl_program& program) : detail::Wrapper(program) { } + + Program& operator = (const Program& rhs) + { + if (this != &rhs) { + detail::Wrapper::operator=(rhs); + } + return *this; + } + + Program& operator = (const cl_program& rhs) + { + detail::Wrapper::operator=(rhs); + return *this; + } + + cl_int build( + const VECTOR_CLASS& devices, + const char* options = NULL, + void (CL_CALLBACK * notifyFptr)(cl_program, void *) = NULL, + void* data = NULL) const + { + ::size_t numDevices = devices.size(); + cl_device_id* deviceIDs = (cl_device_id*) alloca(numDevices * sizeof(cl_device_id)); + for( ::size_t deviceIndex = 0; deviceIndex < numDevices; ++deviceIndex ) { + deviceIDs[deviceIndex] = (devices[deviceIndex])(); + } + + return detail::errHandler( + ::clBuildProgram( + object_, + (cl_uint) + devices.size(), + deviceIDs, + options, + notifyFptr, + data), + __BUILD_PROGRAM_ERR); + } + + cl_int build( + const char* options = NULL, + void (CL_CALLBACK * notifyFptr)(cl_program, void *) = NULL, + void* data = NULL) const + { + return detail::errHandler( + ::clBuildProgram( + object_, + 0, + NULL, + options, + notifyFptr, + data), + __BUILD_PROGRAM_ERR); + } + +#if defined(CL_VERSION_1_2) + cl_int compile( + const char* options = NULL, + void (CL_CALLBACK * notifyFptr)(cl_program, void *) = NULL, + void* data = NULL) const + { + return detail::errHandler( + ::clCompileProgram( + object_, + 0, + NULL, + options, + 0, + NULL, + NULL, + notifyFptr, + data), + __COMPILE_PROGRAM_ERR); + } +#endif + + template + cl_int getInfo(cl_program_info name, T* param) const + { + return detail::errHandler( + detail::getInfo(&::clGetProgramInfo, object_, name, param), + __GET_PROGRAM_INFO_ERR); + } + + template typename + detail::param_traits::param_type + getInfo(cl_int* err = NULL) const + { + typename detail::param_traits< + detail::cl_program_info, name>::param_type param; + cl_int result = getInfo(name, ¶m); + if (err != NULL) { + *err = result; + } + return param; + } + + template + cl_int getBuildInfo( + const Device& device, cl_program_build_info name, T* param) const + { + return detail::errHandler( + detail::getInfo( + &::clGetProgramBuildInfo, object_, device(), name, param), + __GET_PROGRAM_BUILD_INFO_ERR); + } + + template typename + detail::param_traits::param_type + getBuildInfo(const Device& device, cl_int* err = NULL) const + { + typename detail::param_traits< + detail::cl_program_build_info, name>::param_type param; + cl_int result = getBuildInfo(device, name, ¶m); + if (err != NULL) { + *err = result; + } + return param; + } + + cl_int createKernels(VECTOR_CLASS* kernels) + { + cl_uint numKernels; + cl_int err = ::clCreateKernelsInProgram(object_, 0, NULL, &numKernels); + if (err != CL_SUCCESS) { + return detail::errHandler(err, __CREATE_KERNELS_IN_PROGRAM_ERR); + } + + Kernel* value = (Kernel*) alloca(numKernels * sizeof(Kernel)); + err = ::clCreateKernelsInProgram( + object_, numKernels, (cl_kernel*) value, NULL); + if (err != CL_SUCCESS) { + return detail::errHandler(err, __CREATE_KERNELS_IN_PROGRAM_ERR); + } + + kernels->assign(&value[0], &value[numKernels]); + return CL_SUCCESS; + } +}; + +#if defined(CL_VERSION_1_2) +inline Program linkProgram( + Program input1, + Program input2, + const char* options = NULL, + void (CL_CALLBACK * notifyFptr)(cl_program, void *) = NULL, + void* data = NULL, + cl_int* err = NULL) +{ + cl_int err_local = CL_SUCCESS; + + cl_program programs[2] = { input1(), input2() }; + + Context ctx = input1.getInfo(); + + cl_program prog = ::clLinkProgram( + ctx(), + 0, + NULL, + options, + 2, + programs, + notifyFptr, + data, + &err_local); + + detail::errHandler(err_local,__COMPILE_PROGRAM_ERR); + if (err != NULL) { + *err = err_local; + } + + return Program(prog); +} + +inline Program linkProgram( + VECTOR_CLASS inputPrograms, + const char* options = NULL, + void (CL_CALLBACK * notifyFptr)(cl_program, void *) = NULL, + void* data = NULL, + cl_int* err = NULL) +{ + cl_int err_local = CL_SUCCESS; + + cl_program * programs = (cl_program*) alloca(inputPrograms.size() * sizeof(cl_program)); + + if (programs != NULL) { + for (unsigned int i = 0; i < inputPrograms.size(); i++) { + programs[i] = inputPrograms[i](); + } + } + + cl_program prog = ::clLinkProgram( + Context::getDefault()(), + 0, + NULL, + options, + (cl_uint)inputPrograms.size(), + programs, + notifyFptr, + data, + &err_local); + + detail::errHandler(err_local,__COMPILE_PROGRAM_ERR); + if (err != NULL) { + *err = err_local; + } + + return Program(prog); +} +#endif + +template<> +inline VECTOR_CLASS cl::Program::getInfo(cl_int* err) const +{ + VECTOR_CLASS< ::size_t> sizes = getInfo(); + VECTOR_CLASS binaries; + for (VECTOR_CLASS< ::size_t>::iterator s = sizes.begin(); s != sizes.end(); ++s) + { + char *ptr = NULL; + if (*s != 0) + ptr = new char[*s]; + binaries.push_back(ptr); + } + + cl_int result = getInfo(CL_PROGRAM_BINARIES, &binaries); + if (err != NULL) { + *err = result; + } + return binaries; +} + +inline Kernel::Kernel(const Program& program, const char* name, cl_int* err) +{ + cl_int error; + + object_ = ::clCreateKernel(program(), name, &error); + detail::errHandler(error, __CREATE_KERNEL_ERR); + + if (err != NULL) { + *err = error; + } + +} + +/*! \class CommandQueue + * \brief CommandQueue interface for cl_command_queue. + */ +class CommandQueue : public detail::Wrapper +{ +private: + static volatile int default_initialized_; + static CommandQueue default_; + static volatile cl_int default_error_; +public: + CommandQueue( + cl_command_queue_properties properties, + cl_int* err = NULL) + { + cl_int error; + + Context context = Context::getDefault(&error); + detail::errHandler(error, __CREATE_COMMAND_QUEUE_ERR); + + if (error != CL_SUCCESS) { + if (err != NULL) { + *err = error; + } + } + else { + Device device = context.getInfo()[0]; + + object_ = ::clCreateCommandQueue( + context(), device(), properties, &error); + + detail::errHandler(error, __CREATE_COMMAND_QUEUE_ERR); + if (err != NULL) { + *err = error; + } + } + } + /*! + * \brief Constructs a CommandQueue for an implementation defined device in the given context + */ + explicit CommandQueue( + const Context& context, + cl_command_queue_properties properties = 0, + cl_int* err = NULL) + { + cl_int error; + VECTOR_CLASS devices; + error = context.getInfo(CL_CONTEXT_DEVICES, &devices); + + detail::errHandler(error, __CREATE_COMMAND_QUEUE_ERR); + + if (error != CL_SUCCESS) + { + if (err != NULL) { + *err = error; + } + return; + } + + object_ = ::clCreateCommandQueue(context(), devices[0](), properties, &error); + + detail::errHandler(error, __CREATE_COMMAND_QUEUE_ERR); + + if (err != NULL) { + *err = error; + } + + } + + CommandQueue( + const Context& context, + const Device& device, + cl_command_queue_properties properties = 0, + cl_int* err = NULL) + { + cl_int error; + object_ = ::clCreateCommandQueue( + context(), device(), properties, &error); + + detail::errHandler(error, __CREATE_COMMAND_QUEUE_ERR); + if (err != NULL) { + *err = error; + } + } + + static CommandQueue getDefault(cl_int * err = NULL) + { + int state = detail::compare_exchange( + &default_initialized_, + __DEFAULT_BEING_INITIALIZED, __DEFAULT_NOT_INITIALIZED); + + if (state & __DEFAULT_INITIALIZED) { + if (err != NULL) { + *err = default_error_; + } + return default_; + } + + if (state & __DEFAULT_BEING_INITIALIZED) { + // Assume writes will propagate eventually... + while(default_initialized_ != __DEFAULT_INITIALIZED) { + detail::fence(); + } + + if (err != NULL) { + *err = default_error_; + } + return default_; + } + + cl_int error; + + Context context = Context::getDefault(&error); + detail::errHandler(error, __CREATE_COMMAND_QUEUE_ERR); + + if (error != CL_SUCCESS) { + if (err != NULL) { + *err = error; + } + } + else { + Device device = context.getInfo()[0]; + + default_ = CommandQueue(context, device, 0, &error); + + detail::errHandler(error, __CREATE_COMMAND_QUEUE_ERR); + if (err != NULL) { + *err = error; + } + } + + detail::fence(); + + default_error_ = error; + // Assume writes will propagate eventually... + default_initialized_ = __DEFAULT_INITIALIZED; + + detail::fence(); + + if (err != NULL) { + *err = default_error_; + } + return default_; + + } + + CommandQueue() { } + + CommandQueue(const CommandQueue& commandQueue) : detail::Wrapper(commandQueue) { } + + CommandQueue(const cl_command_queue& commandQueue) : detail::Wrapper(commandQueue) { } + + CommandQueue& operator = (const CommandQueue& rhs) + { + if (this != &rhs) { + detail::Wrapper::operator=(rhs); + } + return *this; + } + + CommandQueue& operator = (const cl_command_queue& rhs) + { + detail::Wrapper::operator=(rhs); + return *this; + } + + template + cl_int getInfo(cl_command_queue_info name, T* param) const + { + return detail::errHandler( + detail::getInfo( + &::clGetCommandQueueInfo, object_, name, param), + __GET_COMMAND_QUEUE_INFO_ERR); + } + + template typename + detail::param_traits::param_type + getInfo(cl_int* err = NULL) const + { + typename detail::param_traits< + detail::cl_command_queue_info, name>::param_type param; + cl_int result = getInfo(name, ¶m); + if (err != NULL) { + *err = result; + } + return param; + } + + cl_int enqueueReadBuffer( + const Buffer& buffer, + cl_bool blocking, + ::size_t offset, + ::size_t size, + void* ptr, + const VECTOR_CLASS* events = NULL, + Event* event = NULL) const + { + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueReadBuffer( + object_, buffer(), blocking, offset, size, + ptr, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_READ_BUFFER_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } + + cl_int enqueueWriteBuffer( + const Buffer& buffer, + cl_bool blocking, + ::size_t offset, + ::size_t size, + const void* ptr, + const VECTOR_CLASS* events = NULL, + Event* event = NULL) const + { + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueWriteBuffer( + object_, buffer(), blocking, offset, size, + ptr, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_WRITE_BUFFER_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } + + cl_int enqueueCopyBuffer( + const Buffer& src, + const Buffer& dst, + ::size_t src_offset, + ::size_t dst_offset, + ::size_t size, + const VECTOR_CLASS* events = NULL, + Event* event = NULL) const + { + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueCopyBuffer( + object_, src(), dst(), src_offset, dst_offset, size, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_COPY_BUFFER_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } + + cl_int enqueueReadBufferRect( + const Buffer& buffer, + cl_bool blocking, + const size_t<3>& buffer_offset, + const size_t<3>& host_offset, + const size_t<3>& region, + ::size_t buffer_row_pitch, + ::size_t buffer_slice_pitch, + ::size_t host_row_pitch, + ::size_t host_slice_pitch, + void *ptr, + const VECTOR_CLASS* events = NULL, + Event* event = NULL) const + { + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueReadBufferRect( + object_, + buffer(), + blocking, + (const ::size_t *)buffer_offset, + (const ::size_t *)host_offset, + (const ::size_t *)region, + buffer_row_pitch, + buffer_slice_pitch, + host_row_pitch, + host_slice_pitch, + ptr, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_READ_BUFFER_RECT_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } + + cl_int enqueueWriteBufferRect( + const Buffer& buffer, + cl_bool blocking, + const size_t<3>& buffer_offset, + const size_t<3>& host_offset, + const size_t<3>& region, + ::size_t buffer_row_pitch, + ::size_t buffer_slice_pitch, + ::size_t host_row_pitch, + ::size_t host_slice_pitch, + void *ptr, + const VECTOR_CLASS* events = NULL, + Event* event = NULL) const + { + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueWriteBufferRect( + object_, + buffer(), + blocking, + (const ::size_t *)buffer_offset, + (const ::size_t *)host_offset, + (const ::size_t *)region, + buffer_row_pitch, + buffer_slice_pitch, + host_row_pitch, + host_slice_pitch, + ptr, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_WRITE_BUFFER_RECT_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } + + cl_int enqueueCopyBufferRect( + const Buffer& src, + const Buffer& dst, + const size_t<3>& src_origin, + const size_t<3>& dst_origin, + const size_t<3>& region, + ::size_t src_row_pitch, + ::size_t src_slice_pitch, + ::size_t dst_row_pitch, + ::size_t dst_slice_pitch, + const VECTOR_CLASS* events = NULL, + Event* event = NULL) const + { + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueCopyBufferRect( + object_, + src(), + dst(), + (const ::size_t *)src_origin, + (const ::size_t *)dst_origin, + (const ::size_t *)region, + src_row_pitch, + src_slice_pitch, + dst_row_pitch, + dst_slice_pitch, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_COPY_BUFFER_RECT_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } + +#if defined(CL_VERSION_1_2) + /** + * Enqueue a command to fill a buffer object with a pattern + * of a given size. The pattern is specified a as vector. + * \tparam PatternType The datatype of the pattern field. + * The pattern type must be an accepted OpenCL data type. + */ + template + cl_int enqueueFillBuffer( + const Buffer& buffer, + PatternType pattern, + ::size_t offset, + ::size_t size, + const VECTOR_CLASS* events = NULL, + Event* event = NULL) const + { + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueFillBuffer( + object_, + buffer(), + static_cast(&pattern), + sizeof(PatternType), + offset, + size, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_FILL_BUFFER_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } +#endif // #if defined(CL_VERSION_1_2) + + cl_int enqueueReadImage( + const Image& image, + cl_bool blocking, + const size_t<3>& origin, + const size_t<3>& region, + ::size_t row_pitch, + ::size_t slice_pitch, + void* ptr, + const VECTOR_CLASS* events = NULL, + Event* event = NULL) const + { + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueReadImage( + object_, image(), blocking, (const ::size_t *) origin, + (const ::size_t *) region, row_pitch, slice_pitch, ptr, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_READ_IMAGE_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } + + cl_int enqueueWriteImage( + const Image& image, + cl_bool blocking, + const size_t<3>& origin, + const size_t<3>& region, + ::size_t row_pitch, + ::size_t slice_pitch, + void* ptr, + const VECTOR_CLASS* events = NULL, + Event* event = NULL) const + { + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueWriteImage( + object_, image(), blocking, (const ::size_t *) origin, + (const ::size_t *) region, row_pitch, slice_pitch, ptr, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_WRITE_IMAGE_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } + + cl_int enqueueCopyImage( + const Image& src, + const Image& dst, + const size_t<3>& src_origin, + const size_t<3>& dst_origin, + const size_t<3>& region, + const VECTOR_CLASS* events = NULL, + Event* event = NULL) const + { + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueCopyImage( + object_, src(), dst(), (const ::size_t *) src_origin, + (const ::size_t *)dst_origin, (const ::size_t *) region, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_COPY_IMAGE_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } + +#if defined(CL_VERSION_1_2) + /** + * Enqueue a command to fill an image object with a specified color. + * \param fillColor is the color to use to fill the image. + * This is a four component RGBA floating-point color value if + * the image channel data type is not an unnormalized signed or + * unsigned data type. + */ + cl_int enqueueFillImage( + const Image& image, + cl_float4 fillColor, + const size_t<3>& origin, + const size_t<3>& region, + const VECTOR_CLASS* events = NULL, + Event* event = NULL) const + { + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueFillImage( + object_, + image(), + static_cast(&fillColor), + (const ::size_t *) origin, + (const ::size_t *) region, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_FILL_IMAGE_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } + + /** + * Enqueue a command to fill an image object with a specified color. + * \param fillColor is the color to use to fill the image. + * This is a four component RGBA signed integer color value if + * the image channel data type is an unnormalized signed integer + * type. + */ + cl_int enqueueFillImage( + const Image& image, + cl_int4 fillColor, + const size_t<3>& origin, + const size_t<3>& region, + const VECTOR_CLASS* events = NULL, + Event* event = NULL) const + { + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueFillImage( + object_, + image(), + static_cast(&fillColor), + (const ::size_t *) origin, + (const ::size_t *) region, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_FILL_IMAGE_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } + + /** + * Enqueue a command to fill an image object with a specified color. + * \param fillColor is the color to use to fill the image. + * This is a four component RGBA unsigned integer color value if + * the image channel data type is an unnormalized unsigned integer + * type. + */ + cl_int enqueueFillImage( + const Image& image, + cl_uint4 fillColor, + const size_t<3>& origin, + const size_t<3>& region, + const VECTOR_CLASS* events = NULL, + Event* event = NULL) const + { + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueFillImage( + object_, + image(), + static_cast(&fillColor), + (const ::size_t *) origin, + (const ::size_t *) region, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_FILL_IMAGE_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } +#endif // #if defined(CL_VERSION_1_2) + + cl_int enqueueCopyImageToBuffer( + const Image& src, + const Buffer& dst, + const size_t<3>& src_origin, + const size_t<3>& region, + ::size_t dst_offset, + const VECTOR_CLASS* events = NULL, + Event* event = NULL) const + { + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueCopyImageToBuffer( + object_, src(), dst(), (const ::size_t *) src_origin, + (const ::size_t *) region, dst_offset, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_COPY_IMAGE_TO_BUFFER_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } + + cl_int enqueueCopyBufferToImage( + const Buffer& src, + const Image& dst, + ::size_t src_offset, + const size_t<3>& dst_origin, + const size_t<3>& region, + const VECTOR_CLASS* events = NULL, + Event* event = NULL) const + { + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueCopyBufferToImage( + object_, src(), dst(), src_offset, + (const ::size_t *) dst_origin, (const ::size_t *) region, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_COPY_BUFFER_TO_IMAGE_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } + + void* enqueueMapBuffer( + const Buffer& buffer, + cl_bool blocking, + cl_map_flags flags, + ::size_t offset, + ::size_t size, + const VECTOR_CLASS* events = NULL, + Event* event = NULL, + cl_int* err = NULL) const + { + cl_int error; + void * result = ::clEnqueueMapBuffer( + object_, buffer(), blocking, flags, offset, size, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (cl_event*) event, + &error); + + detail::errHandler(error, __ENQUEUE_MAP_BUFFER_ERR); + if (err != NULL) { + *err = error; + } + return result; + } + + void* enqueueMapImage( + const Image& buffer, + cl_bool blocking, + cl_map_flags flags, + const size_t<3>& origin, + const size_t<3>& region, + ::size_t * row_pitch, + ::size_t * slice_pitch, + const VECTOR_CLASS* events = NULL, + Event* event = NULL, + cl_int* err = NULL) const + { + cl_int error; + void * result = ::clEnqueueMapImage( + object_, buffer(), blocking, flags, + (const ::size_t *) origin, (const ::size_t *) region, + row_pitch, slice_pitch, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (cl_event*) event, + &error); + + detail::errHandler(error, __ENQUEUE_MAP_IMAGE_ERR); + if (err != NULL) { + *err = error; + } + return result; + } + + cl_int enqueueUnmapMemObject( + const Memory& memory, + void* mapped_ptr, + const VECTOR_CLASS* events = NULL, + Event* event = NULL) const + { + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueUnmapMemObject( + object_, memory(), mapped_ptr, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_UNMAP_MEM_OBJECT_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } + +#if defined(CL_VERSION_1_2) + /** + * Enqueues a marker command which waits for either a list of events to complete, + * or all previously enqueued commands to complete. + * + * Enqueues a marker command which waits for either a list of events to complete, + * or if the list is empty it waits for all commands previously enqueued in command_queue + * to complete before it completes. This command returns an event which can be waited on, + * i.e. this event can be waited on to insure that all events either in the event_wait_list + * or all previously enqueued commands, queued before this command to command_queue, + * have completed. + */ + cl_int enqueueMarkerWithWaitList( + const VECTOR_CLASS *events = 0, + Event *event = 0) + { + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueMarkerWithWaitList( + object_, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_MARKER_WAIT_LIST_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } + + /** + * A synchronization point that enqueues a barrier operation. + * + * Enqueues a barrier command which waits for either a list of events to complete, + * or if the list is empty it waits for all commands previously enqueued in command_queue + * to complete before it completes. This command blocks command execution, that is, any + * following commands enqueued after it do not execute until it completes. This command + * returns an event which can be waited on, i.e. this event can be waited on to insure that + * all events either in the event_wait_list or all previously enqueued commands, queued + * before this command to command_queue, have completed. + */ + cl_int enqueueBarrierWithWaitList( + const VECTOR_CLASS *events = 0, + Event *event = 0) + { + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueBarrierWithWaitList( + object_, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_BARRIER_WAIT_LIST_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } + + /** + * Enqueues a command to indicate with which device a set of memory objects + * should be associated. + */ + cl_int enqueueMigrateMemObjects( + const VECTOR_CLASS &memObjects, + cl_mem_migration_flags flags, + const VECTOR_CLASS* events = NULL, + Event* event = NULL + ) + { + cl_event tmp; + + cl_mem* localMemObjects = static_cast(alloca(memObjects.size() * sizeof(cl_mem))); + for( int i = 0; i < (int)memObjects.size(); ++i ) { + localMemObjects[i] = memObjects[i](); + } + + + cl_int err = detail::errHandler( + ::clEnqueueMigrateMemObjects( + object_, + (cl_uint)memObjects.size(), + static_cast(localMemObjects), + flags, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_UNMAP_MEM_OBJECT_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } +#endif // #if defined(CL_VERSION_1_2) + + cl_int enqueueNDRangeKernel( + const Kernel& kernel, + const NDRange& offset, + const NDRange& global, + const NDRange& local = NullRange, + const VECTOR_CLASS* events = NULL, + Event* event = NULL) const + { + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueNDRangeKernel( + object_, kernel(), (cl_uint) global.dimensions(), + offset.dimensions() != 0 ? (const ::size_t*) offset : NULL, + (const ::size_t*) global, + local.dimensions() != 0 ? (const ::size_t*) local : NULL, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_NDRANGE_KERNEL_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } + + cl_int enqueueTask( + const Kernel& kernel, + const VECTOR_CLASS* events = NULL, + Event* event = NULL) const + { + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueTask( + object_, kernel(), + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_TASK_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } + + cl_int enqueueNativeKernel( + void (CL_CALLBACK *userFptr)(void *), + std::pair args, + const VECTOR_CLASS* mem_objects = NULL, + const VECTOR_CLASS* mem_locs = NULL, + const VECTOR_CLASS* events = NULL, + Event* event = NULL) const + { + cl_mem * mems = (mem_objects != NULL && mem_objects->size() > 0) + ? (cl_mem*) alloca(mem_objects->size() * sizeof(cl_mem)) + : NULL; + + if (mems != NULL) { + for (unsigned int i = 0; i < mem_objects->size(); i++) { + mems[i] = ((*mem_objects)[i])(); + } + } + + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueNativeKernel( + object_, userFptr, args.first, args.second, + (mem_objects != NULL) ? (cl_uint) mem_objects->size() : 0, + mems, + (mem_locs != NULL) ? (const void **) &mem_locs->front() : NULL, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_NATIVE_KERNEL); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } + +/** + * Deprecated APIs for 1.2 + */ +#if defined(CL_USE_DEPRECATED_OPENCL_1_1_APIS) || (defined(CL_VERSION_1_1) && !defined(CL_VERSION_1_2)) + CL_EXT_PREFIX__VERSION_1_1_DEPRECATED + cl_int enqueueMarker(Event* event = NULL) const CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED + { + return detail::errHandler( + ::clEnqueueMarker(object_, (cl_event*) event), + __ENQUEUE_MARKER_ERR); + } + + CL_EXT_PREFIX__VERSION_1_1_DEPRECATED + cl_int enqueueWaitForEvents(const VECTOR_CLASS& events) const CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED + { + return detail::errHandler( + ::clEnqueueWaitForEvents( + object_, + (cl_uint) events.size(), + (const cl_event*) &events.front()), + __ENQUEUE_WAIT_FOR_EVENTS_ERR); + } +#endif // #if defined(CL_VERSION_1_1) + + cl_int enqueueAcquireGLObjects( + const VECTOR_CLASS* mem_objects = NULL, + const VECTOR_CLASS* events = NULL, + Event* event = NULL) const + { + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueAcquireGLObjects( + object_, + (mem_objects != NULL) ? (cl_uint) mem_objects->size() : 0, + (mem_objects != NULL) ? (const cl_mem *) &mem_objects->front(): NULL, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_ACQUIRE_GL_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } + + cl_int enqueueReleaseGLObjects( + const VECTOR_CLASS* mem_objects = NULL, + const VECTOR_CLASS* events = NULL, + Event* event = NULL) const + { + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueReleaseGLObjects( + object_, + (mem_objects != NULL) ? (cl_uint) mem_objects->size() : 0, + (mem_objects != NULL) ? (const cl_mem *) &mem_objects->front(): NULL, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_RELEASE_GL_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } + +#if defined (USE_DX_INTEROP) +typedef CL_API_ENTRY cl_int (CL_API_CALL *PFN_clEnqueueAcquireD3D10ObjectsKHR)( + cl_command_queue command_queue, cl_uint num_objects, + const cl_mem* mem_objects, cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, cl_event* event); +typedef CL_API_ENTRY cl_int (CL_API_CALL *PFN_clEnqueueReleaseD3D10ObjectsKHR)( + cl_command_queue command_queue, cl_uint num_objects, + const cl_mem* mem_objects, cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, cl_event* event); + + cl_int enqueueAcquireD3D10Objects( + const VECTOR_CLASS* mem_objects = NULL, + const VECTOR_CLASS* events = NULL, + Event* event = NULL) const + { + static PFN_clEnqueueAcquireD3D10ObjectsKHR pfn_clEnqueueAcquireD3D10ObjectsKHR = NULL; +#if defined(CL_VERSION_1_2) + cl_context context = getInfo(); + cl::Device device(getInfo()); + cl_platform_id platform = device.getInfo(); + __INIT_CL_EXT_FCN_PTR_PLATFORM(platform, clEnqueueAcquireD3D10ObjectsKHR); +#endif +#if defined(CL_VERSION_1_1) + __INIT_CL_EXT_FCN_PTR(clEnqueueAcquireD3D10ObjectsKHR); +#endif + + cl_event tmp; + cl_int err = detail::errHandler( + pfn_clEnqueueAcquireD3D10ObjectsKHR( + object_, + (mem_objects != NULL) ? (cl_uint) mem_objects->size() : 0, + (mem_objects != NULL) ? (const cl_mem *) &mem_objects->front(): NULL, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_ACQUIRE_GL_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } + + cl_int enqueueReleaseD3D10Objects( + const VECTOR_CLASS* mem_objects = NULL, + const VECTOR_CLASS* events = NULL, + Event* event = NULL) const + { + static PFN_clEnqueueReleaseD3D10ObjectsKHR pfn_clEnqueueReleaseD3D10ObjectsKHR = NULL; +#if defined(CL_VERSION_1_2) + cl_context context = getInfo(); + cl::Device device(getInfo()); + cl_platform_id platform = device.getInfo(); + __INIT_CL_EXT_FCN_PTR_PLATFORM(platform, clEnqueueReleaseD3D10ObjectsKHR); +#endif // #if defined(CL_VERSION_1_2) +#if defined(CL_VERSION_1_1) + __INIT_CL_EXT_FCN_PTR(clEnqueueReleaseD3D10ObjectsKHR); +#endif // #if defined(CL_VERSION_1_1) + + cl_event tmp; + cl_int err = detail::errHandler( + pfn_clEnqueueReleaseD3D10ObjectsKHR( + object_, + (mem_objects != NULL) ? (cl_uint) mem_objects->size() : 0, + (mem_objects != NULL) ? (const cl_mem *) &mem_objects->front(): NULL, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_RELEASE_GL_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } +#endif + +/** + * Deprecated APIs for 1.2 + */ +#if defined(CL_USE_DEPRECATED_OPENCL_1_1_APIS) || (defined(CL_VERSION_1_1) && !defined(CL_VERSION_1_2)) + CL_EXT_PREFIX__VERSION_1_1_DEPRECATED + cl_int enqueueBarrier() const CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED + { + return detail::errHandler( + ::clEnqueueBarrier(object_), + __ENQUEUE_BARRIER_ERR); + } +#endif // #if defined(CL_VERSION_1_1) + + cl_int flush() const + { + return detail::errHandler(::clFlush(object_), __FLUSH_ERR); + } + + cl_int finish() const + { + return detail::errHandler(::clFinish(object_), __FINISH_ERR); + } +}; + +#ifdef _WIN32 +__declspec(selectany) volatile int CommandQueue::default_initialized_ = __DEFAULT_NOT_INITIALIZED; +__declspec(selectany) CommandQueue CommandQueue::default_; +__declspec(selectany) volatile cl_int CommandQueue::default_error_ = CL_SUCCESS; +#else +__attribute__((weak)) volatile int CommandQueue::default_initialized_ = __DEFAULT_NOT_INITIALIZED; +__attribute__((weak)) CommandQueue CommandQueue::default_; +__attribute__((weak)) volatile cl_int CommandQueue::default_error_ = CL_SUCCESS; +#endif + +template< typename IteratorType > +Buffer::Buffer( + const Context &context, + IteratorType startIterator, + IteratorType endIterator, + bool readOnly, + bool useHostPtr, + cl_int* err) +{ + typedef typename std::iterator_traits::value_type DataType; + cl_int error; + + cl_mem_flags flags = 0; + if( readOnly ) { + flags |= CL_MEM_READ_ONLY; + } + else { + flags |= CL_MEM_READ_WRITE; + } + if( useHostPtr ) { + flags |= CL_MEM_USE_HOST_PTR; + } + + ::size_t size = sizeof(DataType)*(endIterator - startIterator); + + if( useHostPtr ) { + object_ = ::clCreateBuffer(context(), flags, size, static_cast(&*startIterator), &error); + } else { + object_ = ::clCreateBuffer(context(), flags, size, 0, &error); + } + + detail::errHandler(error, __CREATE_BUFFER_ERR); + if (err != NULL) { + *err = error; + } + + if( !useHostPtr ) { + CommandQueue queue(context, 0, &error); + detail::errHandler(error, __CREATE_BUFFER_ERR); + if (err != NULL) { + *err = error; + } + + error = cl::copy(queue, startIterator, endIterator, *this); + detail::errHandler(error, __CREATE_BUFFER_ERR); + if (err != NULL) { + *err = error; + } + } +} + +inline cl_int enqueueReadBuffer( + const Buffer& buffer, + cl_bool blocking, + ::size_t offset, + ::size_t size, + void* ptr, + const VECTOR_CLASS* events = NULL, + Event* event = NULL) +{ + cl_int error; + CommandQueue queue = CommandQueue::getDefault(&error); + + if (error != CL_SUCCESS) { + return error; + } + + return queue.enqueueReadBuffer(buffer, blocking, offset, size, ptr, events, event); +} + +inline cl_int enqueueWriteBuffer( + const Buffer& buffer, + cl_bool blocking, + ::size_t offset, + ::size_t size, + const void* ptr, + const VECTOR_CLASS* events = NULL, + Event* event = NULL) +{ + cl_int error; + CommandQueue queue = CommandQueue::getDefault(&error); + + if (error != CL_SUCCESS) { + return error; + } + + return queue.enqueueWriteBuffer(buffer, blocking, offset, size, ptr, events, event); +} + +inline void* enqueueMapBuffer( + const Buffer& buffer, + cl_bool blocking, + cl_map_flags flags, + ::size_t offset, + ::size_t size, + const VECTOR_CLASS* events = NULL, + Event* event = NULL, + cl_int* err = NULL) +{ + cl_int error; + CommandQueue queue = CommandQueue::getDefault(&error); + detail::errHandler(error, __ENQUEUE_MAP_BUFFER_ERR); + if (err != NULL) { + *err = error; + } + + void * result = ::clEnqueueMapBuffer( + queue(), buffer(), blocking, flags, offset, size, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (cl_event*) event, + &error); + + detail::errHandler(error, __ENQUEUE_MAP_BUFFER_ERR); + if (err != NULL) { + *err = error; + } + return result; +} + +inline cl_int enqueueUnmapMemObject( + const Memory& memory, + void* mapped_ptr, + const VECTOR_CLASS* events = NULL, + Event* event = NULL) +{ + cl_int error; + CommandQueue queue = CommandQueue::getDefault(&error); + detail::errHandler(error, __ENQUEUE_MAP_BUFFER_ERR); + if (error != CL_SUCCESS) { + return error; + } + + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueUnmapMemObject( + queue(), memory(), mapped_ptr, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_UNMAP_MEM_OBJECT_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; +} + +inline cl_int enqueueCopyBuffer( + const Buffer& src, + const Buffer& dst, + ::size_t src_offset, + ::size_t dst_offset, + ::size_t size, + const VECTOR_CLASS* events = NULL, + Event* event = NULL) +{ + cl_int error; + CommandQueue queue = CommandQueue::getDefault(&error); + + if (error != CL_SUCCESS) { + return error; + } + + return queue.enqueueCopyBuffer(src, dst, src_offset, dst_offset, size, events, event); +} + +/** + * Blocking copy operation between iterators and a buffer. + * Host to Device. + * Uses default command queue. + */ +template< typename IteratorType > +inline cl_int copy( IteratorType startIterator, IteratorType endIterator, cl::Buffer &buffer ) +{ + cl_int error; + CommandQueue queue = CommandQueue::getDefault(&error); + if (error != CL_SUCCESS) + return error; + + return cl::copy(queue, startIterator, endIterator, buffer); +} + +/** + * Blocking copy operation between iterators and a buffer. + * Device to Host. + * Uses default command queue. + */ +template< typename IteratorType > +inline cl_int copy( const cl::Buffer &buffer, IteratorType startIterator, IteratorType endIterator ) +{ + cl_int error; + CommandQueue queue = CommandQueue::getDefault(&error); + if (error != CL_SUCCESS) + return error; + + return cl::copy(queue, buffer, startIterator, endIterator); +} + +/** + * Blocking copy operation between iterators and a buffer. + * Host to Device. + * Uses specified queue. + */ +template< typename IteratorType > +inline cl_int copy( const CommandQueue &queue, IteratorType startIterator, IteratorType endIterator, cl::Buffer &buffer ) +{ + typedef typename std::iterator_traits::value_type DataType; + cl_int error; + + ::size_t length = endIterator-startIterator; + ::size_t byteLength = length*sizeof(DataType); + + DataType *pointer = + static_cast(queue.enqueueMapBuffer(buffer, CL_TRUE, CL_MAP_WRITE, 0, byteLength, 0, 0, &error)); + // if exceptions enabled, enqueueMapBuffer will throw + if( error != CL_SUCCESS ) { + return error; + } +#if defined(_MSC_VER) + std::copy( + startIterator, + endIterator, + stdext::checked_array_iterator( + pointer, length)); +#else + std::copy(startIterator, endIterator, pointer); +#endif + Event endEvent; + error = queue.enqueueUnmapMemObject(buffer, pointer, 0, &endEvent); + // if exceptions enabled, enqueueUnmapMemObject will throw + if( error != CL_SUCCESS ) { + return error; + } + endEvent.wait(); + return CL_SUCCESS; +} + +/** + * Blocking copy operation between iterators and a buffer. + * Device to Host. + * Uses specified queue. + */ +template< typename IteratorType > +inline cl_int copy( const CommandQueue &queue, const cl::Buffer &buffer, IteratorType startIterator, IteratorType endIterator ) +{ + typedef typename std::iterator_traits::value_type DataType; + cl_int error; + + ::size_t length = endIterator-startIterator; + ::size_t byteLength = length*sizeof(DataType); + + DataType *pointer = + static_cast(queue.enqueueMapBuffer(buffer, CL_TRUE, CL_MAP_READ, 0, byteLength, 0, 0, &error)); + // if exceptions enabled, enqueueMapBuffer will throw + if( error != CL_SUCCESS ) { + return error; + } + std::copy(pointer, pointer + length, startIterator); + Event endEvent; + error = queue.enqueueUnmapMemObject(buffer, pointer, 0, &endEvent); + // if exceptions enabled, enqueueUnmapMemObject will throw + if( error != CL_SUCCESS ) { + return error; + } + endEvent.wait(); + return CL_SUCCESS; +} + +#if defined(CL_VERSION_1_1) +inline cl_int enqueueReadBufferRect( + const Buffer& buffer, + cl_bool blocking, + const size_t<3>& buffer_offset, + const size_t<3>& host_offset, + const size_t<3>& region, + ::size_t buffer_row_pitch, + ::size_t buffer_slice_pitch, + ::size_t host_row_pitch, + ::size_t host_slice_pitch, + void *ptr, + const VECTOR_CLASS* events = NULL, + Event* event = NULL) +{ + cl_int error; + CommandQueue queue = CommandQueue::getDefault(&error); + + if (error != CL_SUCCESS) { + return error; + } + + return queue.enqueueReadBufferRect( + buffer, + blocking, + buffer_offset, + host_offset, + region, + buffer_row_pitch, + buffer_slice_pitch, + host_row_pitch, + host_slice_pitch, + ptr, + events, + event); +} + +inline cl_int enqueueWriteBufferRect( + const Buffer& buffer, + cl_bool blocking, + const size_t<3>& buffer_offset, + const size_t<3>& host_offset, + const size_t<3>& region, + ::size_t buffer_row_pitch, + ::size_t buffer_slice_pitch, + ::size_t host_row_pitch, + ::size_t host_slice_pitch, + void *ptr, + const VECTOR_CLASS* events = NULL, + Event* event = NULL) +{ + cl_int error; + CommandQueue queue = CommandQueue::getDefault(&error); + + if (error != CL_SUCCESS) { + return error; + } + + return queue.enqueueWriteBufferRect( + buffer, + blocking, + buffer_offset, + host_offset, + region, + buffer_row_pitch, + buffer_slice_pitch, + host_row_pitch, + host_slice_pitch, + ptr, + events, + event); +} + +inline cl_int enqueueCopyBufferRect( + const Buffer& src, + const Buffer& dst, + const size_t<3>& src_origin, + const size_t<3>& dst_origin, + const size_t<3>& region, + ::size_t src_row_pitch, + ::size_t src_slice_pitch, + ::size_t dst_row_pitch, + ::size_t dst_slice_pitch, + const VECTOR_CLASS* events = NULL, + Event* event = NULL) +{ + cl_int error; + CommandQueue queue = CommandQueue::getDefault(&error); + + if (error != CL_SUCCESS) { + return error; + } + + return queue.enqueueCopyBufferRect( + src, + dst, + src_origin, + dst_origin, + region, + src_row_pitch, + src_slice_pitch, + dst_row_pitch, + dst_slice_pitch, + events, + event); +} +#endif + +inline cl_int enqueueReadImage( + const Image& image, + cl_bool blocking, + const size_t<3>& origin, + const size_t<3>& region, + ::size_t row_pitch, + ::size_t slice_pitch, + void* ptr, + const VECTOR_CLASS* events = NULL, + Event* event = NULL) +{ + cl_int error; + CommandQueue queue = CommandQueue::getDefault(&error); + + if (error != CL_SUCCESS) { + return error; + } + + return queue.enqueueReadImage( + image, + blocking, + origin, + region, + row_pitch, + slice_pitch, + ptr, + events, + event); +} + +inline cl_int enqueueWriteImage( + const Image& image, + cl_bool blocking, + const size_t<3>& origin, + const size_t<3>& region, + ::size_t row_pitch, + ::size_t slice_pitch, + void* ptr, + const VECTOR_CLASS* events = NULL, + Event* event = NULL) +{ + cl_int error; + CommandQueue queue = CommandQueue::getDefault(&error); + + if (error != CL_SUCCESS) { + return error; + } + + return queue.enqueueWriteImage( + image, + blocking, + origin, + region, + row_pitch, + slice_pitch, + ptr, + events, + event); +} + +inline cl_int enqueueCopyImage( + const Image& src, + const Image& dst, + const size_t<3>& src_origin, + const size_t<3>& dst_origin, + const size_t<3>& region, + const VECTOR_CLASS* events = NULL, + Event* event = NULL) +{ + cl_int error; + CommandQueue queue = CommandQueue::getDefault(&error); + + if (error != CL_SUCCESS) { + return error; + } + + return queue.enqueueCopyImage( + src, + dst, + src_origin, + dst_origin, + region, + events, + event); +} + +inline cl_int enqueueCopyImageToBuffer( + const Image& src, + const Buffer& dst, + const size_t<3>& src_origin, + const size_t<3>& region, + ::size_t dst_offset, + const VECTOR_CLASS* events = NULL, + Event* event = NULL) +{ + cl_int error; + CommandQueue queue = CommandQueue::getDefault(&error); + + if (error != CL_SUCCESS) { + return error; + } + + return queue.enqueueCopyImageToBuffer( + src, + dst, + src_origin, + region, + dst_offset, + events, + event); +} + +inline cl_int enqueueCopyBufferToImage( + const Buffer& src, + const Image& dst, + ::size_t src_offset, + const size_t<3>& dst_origin, + const size_t<3>& region, + const VECTOR_CLASS* events = NULL, + Event* event = NULL) +{ + cl_int error; + CommandQueue queue = CommandQueue::getDefault(&error); + + if (error != CL_SUCCESS) { + return error; + } + + return queue.enqueueCopyBufferToImage( + src, + dst, + src_offset, + dst_origin, + region, + events, + event); +} + + +inline cl_int flush(void) +{ + cl_int error; + CommandQueue queue = CommandQueue::getDefault(&error); + + if (error != CL_SUCCESS) { + return error; + } + + return queue.flush(); +} + +inline cl_int finish(void) +{ + cl_int error; + CommandQueue queue = CommandQueue::getDefault(&error); + + if (error != CL_SUCCESS) { + return error; + } + + + return queue.finish(); +} + +// Kernel Functor support +// New interface as of September 2011 +// Requires the C++11 std::tr1::function (note do not support TR1) +// Visual Studio 2010 and GCC 4.2 + +struct EnqueueArgs +{ + CommandQueue queue_; + const NDRange offset_; + const NDRange global_; + const NDRange local_; + VECTOR_CLASS events_; + + EnqueueArgs(NDRange global) : + queue_(CommandQueue::getDefault()), + offset_(NullRange), + global_(global), + local_(NullRange) + { + + } + + EnqueueArgs(NDRange global, NDRange local) : + queue_(CommandQueue::getDefault()), + offset_(NullRange), + global_(global), + local_(local) + { + + } + + EnqueueArgs(NDRange offset, NDRange global, NDRange local) : + queue_(CommandQueue::getDefault()), + offset_(offset), + global_(global), + local_(local) + { + + } + + EnqueueArgs(Event e, NDRange global) : + queue_(CommandQueue::getDefault()), + offset_(NullRange), + global_(global), + local_(NullRange) + { + events_.push_back(e); + } + + EnqueueArgs(Event e, NDRange global, NDRange local) : + queue_(CommandQueue::getDefault()), + offset_(NullRange), + global_(global), + local_(local) + { + events_.push_back(e); + } + + EnqueueArgs(Event e, NDRange offset, NDRange global, NDRange local) : + queue_(CommandQueue::getDefault()), + offset_(offset), + global_(global), + local_(local) + { + events_.push_back(e); + } + + EnqueueArgs(const VECTOR_CLASS &events, NDRange global) : + queue_(CommandQueue::getDefault()), + offset_(NullRange), + global_(global), + local_(NullRange), + events_(events) + { + + } + + EnqueueArgs(const VECTOR_CLASS &events, NDRange global, NDRange local) : + queue_(CommandQueue::getDefault()), + offset_(NullRange), + global_(global), + local_(local), + events_(events) + { + + } + + EnqueueArgs(const VECTOR_CLASS &events, NDRange offset, NDRange global, NDRange local) : + queue_(CommandQueue::getDefault()), + offset_(offset), + global_(global), + local_(local), + events_(events) + { + + } + + EnqueueArgs(CommandQueue &queue, NDRange global) : + queue_(queue), + offset_(NullRange), + global_(global), + local_(NullRange) + { + + } + + EnqueueArgs(CommandQueue &queue, NDRange global, NDRange local) : + queue_(queue), + offset_(NullRange), + global_(global), + local_(local) + { + + } + + EnqueueArgs(CommandQueue &queue, NDRange offset, NDRange global, NDRange local) : + queue_(queue), + offset_(offset), + global_(global), + local_(local) + { + + } + + EnqueueArgs(CommandQueue &queue, Event e, NDRange global) : + queue_(queue), + offset_(NullRange), + global_(global), + local_(NullRange) + { + events_.push_back(e); + } + + EnqueueArgs(CommandQueue &queue, Event e, NDRange global, NDRange local) : + queue_(queue), + offset_(NullRange), + global_(global), + local_(local) + { + events_.push_back(e); + } + + EnqueueArgs(CommandQueue &queue, Event e, NDRange offset, NDRange global, NDRange local) : + queue_(queue), + offset_(offset), + global_(global), + local_(local) + { + events_.push_back(e); + } + + EnqueueArgs(CommandQueue &queue, const VECTOR_CLASS &events, NDRange global) : + queue_(queue), + offset_(NullRange), + global_(global), + local_(NullRange), + events_(events) + { + + } + + EnqueueArgs(CommandQueue &queue, const VECTOR_CLASS &events, NDRange global, NDRange local) : + queue_(queue), + offset_(NullRange), + global_(global), + local_(local), + events_(events) + { + + } + + EnqueueArgs(CommandQueue &queue, const VECTOR_CLASS &events, NDRange offset, NDRange global, NDRange local) : + queue_(queue), + offset_(offset), + global_(global), + local_(local), + events_(events) + { + + } +}; + +namespace detail { + +class NullType {}; + +template +struct SetArg +{ + static void set (Kernel kernel, T0 arg) + { + kernel.setArg(index, arg); + } +}; + +template +struct SetArg +{ + static void set (Kernel, NullType) + { + } +}; + +template < + typename T0, typename T1, typename T2, typename T3, + typename T4, typename T5, typename T6, typename T7, + typename T8, typename T9, typename T10, typename T11, + typename T12, typename T13, typename T14, typename T15, + typename T16, typename T17, typename T18, typename T19, + typename T20, typename T21, typename T22, typename T23, + typename T24, typename T25, typename T26, typename T27, + typename T28, typename T29, typename T30, typename T31 +> +class KernelFunctorGlobal +{ +private: + Kernel kernel_; + +public: + KernelFunctorGlobal( + Kernel kernel) : + kernel_(kernel) + {} + + KernelFunctorGlobal( + const Program& program, + const STRING_CLASS name, + cl_int * err = NULL) : + kernel_(program, name.c_str(), err) + {} + + Event operator() ( + const EnqueueArgs& args, + T0 t0, + T1 t1 = NullType(), + T2 t2 = NullType(), + T3 t3 = NullType(), + T4 t4 = NullType(), + T5 t5 = NullType(), + T6 t6 = NullType(), + T7 t7 = NullType(), + T8 t8 = NullType(), + T9 t9 = NullType(), + T10 t10 = NullType(), + T11 t11 = NullType(), + T12 t12 = NullType(), + T13 t13 = NullType(), + T14 t14 = NullType(), + T15 t15 = NullType(), + T16 t16 = NullType(), + T17 t17 = NullType(), + T18 t18 = NullType(), + T19 t19 = NullType(), + T20 t20 = NullType(), + T21 t21 = NullType(), + T22 t22 = NullType(), + T23 t23 = NullType(), + T24 t24 = NullType(), + T25 t25 = NullType(), + T26 t26 = NullType(), + T27 t27 = NullType(), + T28 t28 = NullType(), + T29 t29 = NullType(), + T30 t30 = NullType(), + T31 t31 = NullType() + ) + { + Event event; + SetArg<0, T0>::set(kernel_, t0); + SetArg<1, T1>::set(kernel_, t1); + SetArg<2, T2>::set(kernel_, t2); + SetArg<3, T3>::set(kernel_, t3); + SetArg<4, T4>::set(kernel_, t4); + SetArg<5, T5>::set(kernel_, t5); + SetArg<6, T6>::set(kernel_, t6); + SetArg<7, T7>::set(kernel_, t7); + SetArg<8, T8>::set(kernel_, t8); + SetArg<9, T9>::set(kernel_, t9); + SetArg<10, T10>::set(kernel_, t10); + SetArg<11, T11>::set(kernel_, t11); + SetArg<12, T12>::set(kernel_, t12); + SetArg<13, T13>::set(kernel_, t13); + SetArg<14, T14>::set(kernel_, t14); + SetArg<15, T15>::set(kernel_, t15); + SetArg<16, T16>::set(kernel_, t16); + SetArg<17, T17>::set(kernel_, t17); + SetArg<18, T18>::set(kernel_, t18); + SetArg<19, T19>::set(kernel_, t19); + SetArg<20, T20>::set(kernel_, t20); + SetArg<21, T21>::set(kernel_, t21); + SetArg<22, T22>::set(kernel_, t22); + SetArg<23, T23>::set(kernel_, t23); + SetArg<24, T24>::set(kernel_, t24); + SetArg<25, T25>::set(kernel_, t25); + SetArg<26, T26>::set(kernel_, t26); + SetArg<27, T27>::set(kernel_, t27); + SetArg<28, T28>::set(kernel_, t28); + SetArg<29, T29>::set(kernel_, t29); + SetArg<30, T30>::set(kernel_, t30); + SetArg<31, T31>::set(kernel_, t31); + + args.queue_.enqueueNDRangeKernel( + kernel_, + args.offset_, + args.global_, + args.local_, + &args.events_, + &event); + + return event; + } + +}; + +//------------------------------------------------------------------------------------------------------ + + +template< + typename T0, + typename T1, + typename T2, + typename T3, + typename T4, + typename T5, + typename T6, + typename T7, + typename T8, + typename T9, + typename T10, + typename T11, + typename T12, + typename T13, + typename T14, + typename T15, + typename T16, + typename T17, + typename T18, + typename T19, + typename T20, + typename T21, + typename T22, + typename T23, + typename T24, + typename T25, + typename T26, + typename T27, + typename T28, + typename T29, + typename T30, + typename T31> +struct functionImplementation_ +{ + typedef detail::KernelFunctorGlobal< + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + T20, + T21, + T22, + T23, + T24, + T25, + T26, + T27, + T28, + T29, + T30, + T31> FunctorType; + + FunctorType functor_; + + functionImplementation_(const FunctorType &functor) : + functor_(functor) + { + + #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 32)) + // Fail variadic expansion for dev11 + static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it."); + #endif + + } + + //! \brief Return type of the functor + typedef Event result_type; + + //! \brief Function signature of kernel functor with no event dependency. + typedef Event type_( + const EnqueueArgs&, + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + T20, + T21, + T22, + T23, + T24, + T25, + T26, + T27, + T28, + T29, + T30, + T31); + + Event operator()( + const EnqueueArgs& enqueueArgs, + T0 arg0, + T1 arg1, + T2 arg2, + T3 arg3, + T4 arg4, + T5 arg5, + T6 arg6, + T7 arg7, + T8 arg8, + T9 arg9, + T10 arg10, + T11 arg11, + T12 arg12, + T13 arg13, + T14 arg14, + T15 arg15, + T16 arg16, + T17 arg17, + T18 arg18, + T19 arg19, + T20 arg20, + T21 arg21, + T22 arg22, + T23 arg23, + T24 arg24, + T25 arg25, + T26 arg26, + T27 arg27, + T28 arg28, + T29 arg29, + T30 arg30, + T31 arg31) + { + return functor_( + enqueueArgs, + arg0, + arg1, + arg2, + arg3, + arg4, + arg5, + arg6, + arg7, + arg8, + arg9, + arg10, + arg11, + arg12, + arg13, + arg14, + arg15, + arg16, + arg17, + arg18, + arg19, + arg20, + arg21, + arg22, + arg23, + arg24, + arg25, + arg26, + arg27, + arg28, + arg29, + arg30, + arg31); + } + + +}; + +template< + typename T0, + typename T1, + typename T2, + typename T3, + typename T4, + typename T5, + typename T6, + typename T7, + typename T8, + typename T9, + typename T10, + typename T11, + typename T12, + typename T13, + typename T14, + typename T15, + typename T16, + typename T17, + typename T18, + typename T19, + typename T20, + typename T21, + typename T22, + typename T23, + typename T24, + typename T25, + typename T26, + typename T27, + typename T28, + typename T29, + typename T30> +struct functionImplementation_ +< T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + T20, + T21, + T22, + T23, + T24, + T25, + T26, + T27, + T28, + T29, + T30, + NullType> +{ + typedef detail::KernelFunctorGlobal< + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + T20, + T21, + T22, + T23, + T24, + T25, + T26, + T27, + T28, + T29, + T30, + NullType> FunctorType; + + FunctorType functor_; + + functionImplementation_(const FunctorType &functor) : + functor_(functor) + { + + #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 31)) + // Fail variadic expansion for dev11 + static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it."); + #endif + + } + + //! \brief Return type of the functor + typedef Event result_type; + + //! \brief Function signature of kernel functor with no event dependency. + typedef Event type_( + const EnqueueArgs&, + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + T20, + T21, + T22, + T23, + T24, + T25, + T26, + T27, + T28, + T29, + T30); + + Event operator()( + const EnqueueArgs& enqueueArgs, + T0 arg0, + T1 arg1, + T2 arg2, + T3 arg3, + T4 arg4, + T5 arg5, + T6 arg6, + T7 arg7, + T8 arg8, + T9 arg9, + T10 arg10, + T11 arg11, + T12 arg12, + T13 arg13, + T14 arg14, + T15 arg15, + T16 arg16, + T17 arg17, + T18 arg18, + T19 arg19, + T20 arg20, + T21 arg21, + T22 arg22, + T23 arg23, + T24 arg24, + T25 arg25, + T26 arg26, + T27 arg27, + T28 arg28, + T29 arg29, + T30 arg30) + { + return functor_( + enqueueArgs, + arg0, + arg1, + arg2, + arg3, + arg4, + arg5, + arg6, + arg7, + arg8, + arg9, + arg10, + arg11, + arg12, + arg13, + arg14, + arg15, + arg16, + arg17, + arg18, + arg19, + arg20, + arg21, + arg22, + arg23, + arg24, + arg25, + arg26, + arg27, + arg28, + arg29, + arg30); + } + + +}; + +template< + typename T0, + typename T1, + typename T2, + typename T3, + typename T4, + typename T5, + typename T6, + typename T7, + typename T8, + typename T9, + typename T10, + typename T11, + typename T12, + typename T13, + typename T14, + typename T15, + typename T16, + typename T17, + typename T18, + typename T19, + typename T20, + typename T21, + typename T22, + typename T23, + typename T24, + typename T25, + typename T26, + typename T27, + typename T28, + typename T29> +struct functionImplementation_ +< T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + T20, + T21, + T22, + T23, + T24, + T25, + T26, + T27, + T28, + T29, + NullType, + NullType> +{ + typedef detail::KernelFunctorGlobal< + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + T20, + T21, + T22, + T23, + T24, + T25, + T26, + T27, + T28, + T29, + NullType, + NullType> FunctorType; + + FunctorType functor_; + + functionImplementation_(const FunctorType &functor) : + functor_(functor) + { + + #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 30)) + // Fail variadic expansion for dev11 + static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it."); + #endif + + } + + //! \brief Return type of the functor + typedef Event result_type; + + //! \brief Function signature of kernel functor with no event dependency. + typedef Event type_( + const EnqueueArgs&, + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + T20, + T21, + T22, + T23, + T24, + T25, + T26, + T27, + T28, + T29); + + Event operator()( + const EnqueueArgs& enqueueArgs, + T0 arg0, + T1 arg1, + T2 arg2, + T3 arg3, + T4 arg4, + T5 arg5, + T6 arg6, + T7 arg7, + T8 arg8, + T9 arg9, + T10 arg10, + T11 arg11, + T12 arg12, + T13 arg13, + T14 arg14, + T15 arg15, + T16 arg16, + T17 arg17, + T18 arg18, + T19 arg19, + T20 arg20, + T21 arg21, + T22 arg22, + T23 arg23, + T24 arg24, + T25 arg25, + T26 arg26, + T27 arg27, + T28 arg28, + T29 arg29) + { + return functor_( + enqueueArgs, + arg0, + arg1, + arg2, + arg3, + arg4, + arg5, + arg6, + arg7, + arg8, + arg9, + arg10, + arg11, + arg12, + arg13, + arg14, + arg15, + arg16, + arg17, + arg18, + arg19, + arg20, + arg21, + arg22, + arg23, + arg24, + arg25, + arg26, + arg27, + arg28, + arg29); + } + + +}; + +template< + typename T0, + typename T1, + typename T2, + typename T3, + typename T4, + typename T5, + typename T6, + typename T7, + typename T8, + typename T9, + typename T10, + typename T11, + typename T12, + typename T13, + typename T14, + typename T15, + typename T16, + typename T17, + typename T18, + typename T19, + typename T20, + typename T21, + typename T22, + typename T23, + typename T24, + typename T25, + typename T26, + typename T27, + typename T28> +struct functionImplementation_ +< T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + T20, + T21, + T22, + T23, + T24, + T25, + T26, + T27, + T28, + NullType, + NullType, + NullType> +{ + typedef detail::KernelFunctorGlobal< + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + T20, + T21, + T22, + T23, + T24, + T25, + T26, + T27, + T28, + NullType, + NullType, + NullType> FunctorType; + + FunctorType functor_; + + functionImplementation_(const FunctorType &functor) : + functor_(functor) + { + + #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 29)) + // Fail variadic expansion for dev11 + static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it."); + #endif + + } + + //! \brief Return type of the functor + typedef Event result_type; + + //! \brief Function signature of kernel functor with no event dependency. + typedef Event type_( + const EnqueueArgs&, + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + T20, + T21, + T22, + T23, + T24, + T25, + T26, + T27, + T28); + + Event operator()( + const EnqueueArgs& enqueueArgs, + T0 arg0, + T1 arg1, + T2 arg2, + T3 arg3, + T4 arg4, + T5 arg5, + T6 arg6, + T7 arg7, + T8 arg8, + T9 arg9, + T10 arg10, + T11 arg11, + T12 arg12, + T13 arg13, + T14 arg14, + T15 arg15, + T16 arg16, + T17 arg17, + T18 arg18, + T19 arg19, + T20 arg20, + T21 arg21, + T22 arg22, + T23 arg23, + T24 arg24, + T25 arg25, + T26 arg26, + T27 arg27, + T28 arg28) + { + return functor_( + enqueueArgs, + arg0, + arg1, + arg2, + arg3, + arg4, + arg5, + arg6, + arg7, + arg8, + arg9, + arg10, + arg11, + arg12, + arg13, + arg14, + arg15, + arg16, + arg17, + arg18, + arg19, + arg20, + arg21, + arg22, + arg23, + arg24, + arg25, + arg26, + arg27, + arg28); + } + + +}; + +template< + typename T0, + typename T1, + typename T2, + typename T3, + typename T4, + typename T5, + typename T6, + typename T7, + typename T8, + typename T9, + typename T10, + typename T11, + typename T12, + typename T13, + typename T14, + typename T15, + typename T16, + typename T17, + typename T18, + typename T19, + typename T20, + typename T21, + typename T22, + typename T23, + typename T24, + typename T25, + typename T26, + typename T27> +struct functionImplementation_ +< T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + T20, + T21, + T22, + T23, + T24, + T25, + T26, + T27, + NullType, + NullType, + NullType, + NullType> +{ + typedef detail::KernelFunctorGlobal< + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + T20, + T21, + T22, + T23, + T24, + T25, + T26, + T27, + NullType, + NullType, + NullType, + NullType> FunctorType; + + FunctorType functor_; + + functionImplementation_(const FunctorType &functor) : + functor_(functor) + { + + #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 28)) + // Fail variadic expansion for dev11 + static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it."); + #endif + + } + + //! \brief Return type of the functor + typedef Event result_type; + + //! \brief Function signature of kernel functor with no event dependency. + typedef Event type_( + const EnqueueArgs&, + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + T20, + T21, + T22, + T23, + T24, + T25, + T26, + T27); + + Event operator()( + const EnqueueArgs& enqueueArgs, + T0 arg0, + T1 arg1, + T2 arg2, + T3 arg3, + T4 arg4, + T5 arg5, + T6 arg6, + T7 arg7, + T8 arg8, + T9 arg9, + T10 arg10, + T11 arg11, + T12 arg12, + T13 arg13, + T14 arg14, + T15 arg15, + T16 arg16, + T17 arg17, + T18 arg18, + T19 arg19, + T20 arg20, + T21 arg21, + T22 arg22, + T23 arg23, + T24 arg24, + T25 arg25, + T26 arg26, + T27 arg27) + { + return functor_( + enqueueArgs, + arg0, + arg1, + arg2, + arg3, + arg4, + arg5, + arg6, + arg7, + arg8, + arg9, + arg10, + arg11, + arg12, + arg13, + arg14, + arg15, + arg16, + arg17, + arg18, + arg19, + arg20, + arg21, + arg22, + arg23, + arg24, + arg25, + arg26, + arg27); + } + + +}; + +template< + typename T0, + typename T1, + typename T2, + typename T3, + typename T4, + typename T5, + typename T6, + typename T7, + typename T8, + typename T9, + typename T10, + typename T11, + typename T12, + typename T13, + typename T14, + typename T15, + typename T16, + typename T17, + typename T18, + typename T19, + typename T20, + typename T21, + typename T22, + typename T23, + typename T24, + typename T25, + typename T26> +struct functionImplementation_ +< T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + T20, + T21, + T22, + T23, + T24, + T25, + T26, + NullType, + NullType, + NullType, + NullType, + NullType> +{ + typedef detail::KernelFunctorGlobal< + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + T20, + T21, + T22, + T23, + T24, + T25, + T26, + NullType, + NullType, + NullType, + NullType, + NullType> FunctorType; + + FunctorType functor_; + + functionImplementation_(const FunctorType &functor) : + functor_(functor) + { + + #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 27)) + // Fail variadic expansion for dev11 + static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it."); + #endif + + } + + //! \brief Return type of the functor + typedef Event result_type; + + //! \brief Function signature of kernel functor with no event dependency. + typedef Event type_( + const EnqueueArgs&, + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + T20, + T21, + T22, + T23, + T24, + T25, + T26); + + Event operator()( + const EnqueueArgs& enqueueArgs, + T0 arg0, + T1 arg1, + T2 arg2, + T3 arg3, + T4 arg4, + T5 arg5, + T6 arg6, + T7 arg7, + T8 arg8, + T9 arg9, + T10 arg10, + T11 arg11, + T12 arg12, + T13 arg13, + T14 arg14, + T15 arg15, + T16 arg16, + T17 arg17, + T18 arg18, + T19 arg19, + T20 arg20, + T21 arg21, + T22 arg22, + T23 arg23, + T24 arg24, + T25 arg25, + T26 arg26) + { + return functor_( + enqueueArgs, + arg0, + arg1, + arg2, + arg3, + arg4, + arg5, + arg6, + arg7, + arg8, + arg9, + arg10, + arg11, + arg12, + arg13, + arg14, + arg15, + arg16, + arg17, + arg18, + arg19, + arg20, + arg21, + arg22, + arg23, + arg24, + arg25, + arg26); + } + + +}; + +template< + typename T0, + typename T1, + typename T2, + typename T3, + typename T4, + typename T5, + typename T6, + typename T7, + typename T8, + typename T9, + typename T10, + typename T11, + typename T12, + typename T13, + typename T14, + typename T15, + typename T16, + typename T17, + typename T18, + typename T19, + typename T20, + typename T21, + typename T22, + typename T23, + typename T24, + typename T25> +struct functionImplementation_ +< T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + T20, + T21, + T22, + T23, + T24, + T25, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> +{ + typedef detail::KernelFunctorGlobal< + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + T20, + T21, + T22, + T23, + T24, + T25, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> FunctorType; + + FunctorType functor_; + + functionImplementation_(const FunctorType &functor) : + functor_(functor) + { + + #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 26)) + // Fail variadic expansion for dev11 + static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it."); + #endif + + } + + //! \brief Return type of the functor + typedef Event result_type; + + //! \brief Function signature of kernel functor with no event dependency. + typedef Event type_( + const EnqueueArgs&, + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + T20, + T21, + T22, + T23, + T24, + T25); + + Event operator()( + const EnqueueArgs& enqueueArgs, + T0 arg0, + T1 arg1, + T2 arg2, + T3 arg3, + T4 arg4, + T5 arg5, + T6 arg6, + T7 arg7, + T8 arg8, + T9 arg9, + T10 arg10, + T11 arg11, + T12 arg12, + T13 arg13, + T14 arg14, + T15 arg15, + T16 arg16, + T17 arg17, + T18 arg18, + T19 arg19, + T20 arg20, + T21 arg21, + T22 arg22, + T23 arg23, + T24 arg24, + T25 arg25) + { + return functor_( + enqueueArgs, + arg0, + arg1, + arg2, + arg3, + arg4, + arg5, + arg6, + arg7, + arg8, + arg9, + arg10, + arg11, + arg12, + arg13, + arg14, + arg15, + arg16, + arg17, + arg18, + arg19, + arg20, + arg21, + arg22, + arg23, + arg24, + arg25); + } + + +}; + +template< + typename T0, + typename T1, + typename T2, + typename T3, + typename T4, + typename T5, + typename T6, + typename T7, + typename T8, + typename T9, + typename T10, + typename T11, + typename T12, + typename T13, + typename T14, + typename T15, + typename T16, + typename T17, + typename T18, + typename T19, + typename T20, + typename T21, + typename T22, + typename T23, + typename T24> +struct functionImplementation_ +< T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + T20, + T21, + T22, + T23, + T24, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> +{ + typedef detail::KernelFunctorGlobal< + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + T20, + T21, + T22, + T23, + T24, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> FunctorType; + + FunctorType functor_; + + functionImplementation_(const FunctorType &functor) : + functor_(functor) + { + + #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 25)) + // Fail variadic expansion for dev11 + static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it."); + #endif + + } + + //! \brief Return type of the functor + typedef Event result_type; + + //! \brief Function signature of kernel functor with no event dependency. + typedef Event type_( + const EnqueueArgs&, + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + T20, + T21, + T22, + T23, + T24); + + Event operator()( + const EnqueueArgs& enqueueArgs, + T0 arg0, + T1 arg1, + T2 arg2, + T3 arg3, + T4 arg4, + T5 arg5, + T6 arg6, + T7 arg7, + T8 arg8, + T9 arg9, + T10 arg10, + T11 arg11, + T12 arg12, + T13 arg13, + T14 arg14, + T15 arg15, + T16 arg16, + T17 arg17, + T18 arg18, + T19 arg19, + T20 arg20, + T21 arg21, + T22 arg22, + T23 arg23, + T24 arg24) + { + return functor_( + enqueueArgs, + arg0, + arg1, + arg2, + arg3, + arg4, + arg5, + arg6, + arg7, + arg8, + arg9, + arg10, + arg11, + arg12, + arg13, + arg14, + arg15, + arg16, + arg17, + arg18, + arg19, + arg20, + arg21, + arg22, + arg23, + arg24); + } + + +}; + +template< + typename T0, + typename T1, + typename T2, + typename T3, + typename T4, + typename T5, + typename T6, + typename T7, + typename T8, + typename T9, + typename T10, + typename T11, + typename T12, + typename T13, + typename T14, + typename T15, + typename T16, + typename T17, + typename T18, + typename T19, + typename T20, + typename T21, + typename T22, + typename T23> +struct functionImplementation_ +< T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + T20, + T21, + T22, + T23, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> +{ + typedef detail::KernelFunctorGlobal< + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + T20, + T21, + T22, + T23, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> FunctorType; + + FunctorType functor_; + + functionImplementation_(const FunctorType &functor) : + functor_(functor) + { + + #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 24)) + // Fail variadic expansion for dev11 + static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it."); + #endif + + } + + //! \brief Return type of the functor + typedef Event result_type; + + //! \brief Function signature of kernel functor with no event dependency. + typedef Event type_( + const EnqueueArgs&, + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + T20, + T21, + T22, + T23); + + Event operator()( + const EnqueueArgs& enqueueArgs, + T0 arg0, + T1 arg1, + T2 arg2, + T3 arg3, + T4 arg4, + T5 arg5, + T6 arg6, + T7 arg7, + T8 arg8, + T9 arg9, + T10 arg10, + T11 arg11, + T12 arg12, + T13 arg13, + T14 arg14, + T15 arg15, + T16 arg16, + T17 arg17, + T18 arg18, + T19 arg19, + T20 arg20, + T21 arg21, + T22 arg22, + T23 arg23) + { + return functor_( + enqueueArgs, + arg0, + arg1, + arg2, + arg3, + arg4, + arg5, + arg6, + arg7, + arg8, + arg9, + arg10, + arg11, + arg12, + arg13, + arg14, + arg15, + arg16, + arg17, + arg18, + arg19, + arg20, + arg21, + arg22, + arg23); + } + + +}; + +template< + typename T0, + typename T1, + typename T2, + typename T3, + typename T4, + typename T5, + typename T6, + typename T7, + typename T8, + typename T9, + typename T10, + typename T11, + typename T12, + typename T13, + typename T14, + typename T15, + typename T16, + typename T17, + typename T18, + typename T19, + typename T20, + typename T21, + typename T22> +struct functionImplementation_ +< T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + T20, + T21, + T22, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> +{ + typedef detail::KernelFunctorGlobal< + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + T20, + T21, + T22, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> FunctorType; + + FunctorType functor_; + + functionImplementation_(const FunctorType &functor) : + functor_(functor) + { + + #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 23)) + // Fail variadic expansion for dev11 + static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it."); + #endif + + } + + //! \brief Return type of the functor + typedef Event result_type; + + //! \brief Function signature of kernel functor with no event dependency. + typedef Event type_( + const EnqueueArgs&, + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + T20, + T21, + T22); + + Event operator()( + const EnqueueArgs& enqueueArgs, + T0 arg0, + T1 arg1, + T2 arg2, + T3 arg3, + T4 arg4, + T5 arg5, + T6 arg6, + T7 arg7, + T8 arg8, + T9 arg9, + T10 arg10, + T11 arg11, + T12 arg12, + T13 arg13, + T14 arg14, + T15 arg15, + T16 arg16, + T17 arg17, + T18 arg18, + T19 arg19, + T20 arg20, + T21 arg21, + T22 arg22) + { + return functor_( + enqueueArgs, + arg0, + arg1, + arg2, + arg3, + arg4, + arg5, + arg6, + arg7, + arg8, + arg9, + arg10, + arg11, + arg12, + arg13, + arg14, + arg15, + arg16, + arg17, + arg18, + arg19, + arg20, + arg21, + arg22); + } + + +}; + +template< + typename T0, + typename T1, + typename T2, + typename T3, + typename T4, + typename T5, + typename T6, + typename T7, + typename T8, + typename T9, + typename T10, + typename T11, + typename T12, + typename T13, + typename T14, + typename T15, + typename T16, + typename T17, + typename T18, + typename T19, + typename T20, + typename T21> +struct functionImplementation_ +< T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + T20, + T21, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> +{ + typedef detail::KernelFunctorGlobal< + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + T20, + T21, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> FunctorType; + + FunctorType functor_; + + functionImplementation_(const FunctorType &functor) : + functor_(functor) + { + + #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 22)) + // Fail variadic expansion for dev11 + static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it."); + #endif + + } + + //! \brief Return type of the functor + typedef Event result_type; + + //! \brief Function signature of kernel functor with no event dependency. + typedef Event type_( + const EnqueueArgs&, + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + T20, + T21); + + Event operator()( + const EnqueueArgs& enqueueArgs, + T0 arg0, + T1 arg1, + T2 arg2, + T3 arg3, + T4 arg4, + T5 arg5, + T6 arg6, + T7 arg7, + T8 arg8, + T9 arg9, + T10 arg10, + T11 arg11, + T12 arg12, + T13 arg13, + T14 arg14, + T15 arg15, + T16 arg16, + T17 arg17, + T18 arg18, + T19 arg19, + T20 arg20, + T21 arg21) + { + return functor_( + enqueueArgs, + arg0, + arg1, + arg2, + arg3, + arg4, + arg5, + arg6, + arg7, + arg8, + arg9, + arg10, + arg11, + arg12, + arg13, + arg14, + arg15, + arg16, + arg17, + arg18, + arg19, + arg20, + arg21); + } + + +}; + +template< + typename T0, + typename T1, + typename T2, + typename T3, + typename T4, + typename T5, + typename T6, + typename T7, + typename T8, + typename T9, + typename T10, + typename T11, + typename T12, + typename T13, + typename T14, + typename T15, + typename T16, + typename T17, + typename T18, + typename T19, + typename T20> +struct functionImplementation_ +< T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + T20, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> +{ + typedef detail::KernelFunctorGlobal< + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + T20, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> FunctorType; + + FunctorType functor_; + + functionImplementation_(const FunctorType &functor) : + functor_(functor) + { + + #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 21)) + // Fail variadic expansion for dev11 + static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it."); + #endif + + } + + //! \brief Return type of the functor + typedef Event result_type; + + //! \brief Function signature of kernel functor with no event dependency. + typedef Event type_( + const EnqueueArgs&, + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + T20); + + Event operator()( + const EnqueueArgs& enqueueArgs, + T0 arg0, + T1 arg1, + T2 arg2, + T3 arg3, + T4 arg4, + T5 arg5, + T6 arg6, + T7 arg7, + T8 arg8, + T9 arg9, + T10 arg10, + T11 arg11, + T12 arg12, + T13 arg13, + T14 arg14, + T15 arg15, + T16 arg16, + T17 arg17, + T18 arg18, + T19 arg19, + T20 arg20) + { + return functor_( + enqueueArgs, + arg0, + arg1, + arg2, + arg3, + arg4, + arg5, + arg6, + arg7, + arg8, + arg9, + arg10, + arg11, + arg12, + arg13, + arg14, + arg15, + arg16, + arg17, + arg18, + arg19, + arg20); + } + + +}; + +template< + typename T0, + typename T1, + typename T2, + typename T3, + typename T4, + typename T5, + typename T6, + typename T7, + typename T8, + typename T9, + typename T10, + typename T11, + typename T12, + typename T13, + typename T14, + typename T15, + typename T16, + typename T17, + typename T18, + typename T19> +struct functionImplementation_ +< T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> +{ + typedef detail::KernelFunctorGlobal< + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> FunctorType; + + FunctorType functor_; + + functionImplementation_(const FunctorType &functor) : + functor_(functor) + { + + #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 20)) + // Fail variadic expansion for dev11 + static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it."); + #endif + + } + + //! \brief Return type of the functor + typedef Event result_type; + + //! \brief Function signature of kernel functor with no event dependency. + typedef Event type_( + const EnqueueArgs&, + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19); + + Event operator()( + const EnqueueArgs& enqueueArgs, + T0 arg0, + T1 arg1, + T2 arg2, + T3 arg3, + T4 arg4, + T5 arg5, + T6 arg6, + T7 arg7, + T8 arg8, + T9 arg9, + T10 arg10, + T11 arg11, + T12 arg12, + T13 arg13, + T14 arg14, + T15 arg15, + T16 arg16, + T17 arg17, + T18 arg18, + T19 arg19) + { + return functor_( + enqueueArgs, + arg0, + arg1, + arg2, + arg3, + arg4, + arg5, + arg6, + arg7, + arg8, + arg9, + arg10, + arg11, + arg12, + arg13, + arg14, + arg15, + arg16, + arg17, + arg18, + arg19); + } + + +}; + +template< + typename T0, + typename T1, + typename T2, + typename T3, + typename T4, + typename T5, + typename T6, + typename T7, + typename T8, + typename T9, + typename T10, + typename T11, + typename T12, + typename T13, + typename T14, + typename T15, + typename T16, + typename T17, + typename T18> +struct functionImplementation_ +< T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> +{ + typedef detail::KernelFunctorGlobal< + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> FunctorType; + + FunctorType functor_; + + functionImplementation_(const FunctorType &functor) : + functor_(functor) + { + + #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 19)) + // Fail variadic expansion for dev11 + static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it."); + #endif + + } + + //! \brief Return type of the functor + typedef Event result_type; + + //! \brief Function signature of kernel functor with no event dependency. + typedef Event type_( + const EnqueueArgs&, + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18); + + Event operator()( + const EnqueueArgs& enqueueArgs, + T0 arg0, + T1 arg1, + T2 arg2, + T3 arg3, + T4 arg4, + T5 arg5, + T6 arg6, + T7 arg7, + T8 arg8, + T9 arg9, + T10 arg10, + T11 arg11, + T12 arg12, + T13 arg13, + T14 arg14, + T15 arg15, + T16 arg16, + T17 arg17, + T18 arg18) + { + return functor_( + enqueueArgs, + arg0, + arg1, + arg2, + arg3, + arg4, + arg5, + arg6, + arg7, + arg8, + arg9, + arg10, + arg11, + arg12, + arg13, + arg14, + arg15, + arg16, + arg17, + arg18); + } + + +}; + +template< + typename T0, + typename T1, + typename T2, + typename T3, + typename T4, + typename T5, + typename T6, + typename T7, + typename T8, + typename T9, + typename T10, + typename T11, + typename T12, + typename T13, + typename T14, + typename T15, + typename T16, + typename T17> +struct functionImplementation_ +< T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> +{ + typedef detail::KernelFunctorGlobal< + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> FunctorType; + + FunctorType functor_; + + functionImplementation_(const FunctorType &functor) : + functor_(functor) + { + + #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 18)) + // Fail variadic expansion for dev11 + static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it."); + #endif + + } + + //! \brief Return type of the functor + typedef Event result_type; + + //! \brief Function signature of kernel functor with no event dependency. + typedef Event type_( + const EnqueueArgs&, + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17); + + Event operator()( + const EnqueueArgs& enqueueArgs, + T0 arg0, + T1 arg1, + T2 arg2, + T3 arg3, + T4 arg4, + T5 arg5, + T6 arg6, + T7 arg7, + T8 arg8, + T9 arg9, + T10 arg10, + T11 arg11, + T12 arg12, + T13 arg13, + T14 arg14, + T15 arg15, + T16 arg16, + T17 arg17) + { + return functor_( + enqueueArgs, + arg0, + arg1, + arg2, + arg3, + arg4, + arg5, + arg6, + arg7, + arg8, + arg9, + arg10, + arg11, + arg12, + arg13, + arg14, + arg15, + arg16, + arg17); + } + + +}; + +template< + typename T0, + typename T1, + typename T2, + typename T3, + typename T4, + typename T5, + typename T6, + typename T7, + typename T8, + typename T9, + typename T10, + typename T11, + typename T12, + typename T13, + typename T14, + typename T15, + typename T16> +struct functionImplementation_ +< T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> +{ + typedef detail::KernelFunctorGlobal< + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> FunctorType; + + FunctorType functor_; + + functionImplementation_(const FunctorType &functor) : + functor_(functor) + { + + #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 17)) + // Fail variadic expansion for dev11 + static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it."); + #endif + + } + + //! \brief Return type of the functor + typedef Event result_type; + + //! \brief Function signature of kernel functor with no event dependency. + typedef Event type_( + const EnqueueArgs&, + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16); + + Event operator()( + const EnqueueArgs& enqueueArgs, + T0 arg0, + T1 arg1, + T2 arg2, + T3 arg3, + T4 arg4, + T5 arg5, + T6 arg6, + T7 arg7, + T8 arg8, + T9 arg9, + T10 arg10, + T11 arg11, + T12 arg12, + T13 arg13, + T14 arg14, + T15 arg15, + T16 arg16) + { + return functor_( + enqueueArgs, + arg0, + arg1, + arg2, + arg3, + arg4, + arg5, + arg6, + arg7, + arg8, + arg9, + arg10, + arg11, + arg12, + arg13, + arg14, + arg15, + arg16); + } + + +}; + +template< + typename T0, + typename T1, + typename T2, + typename T3, + typename T4, + typename T5, + typename T6, + typename T7, + typename T8, + typename T9, + typename T10, + typename T11, + typename T12, + typename T13, + typename T14, + typename T15> +struct functionImplementation_ +< T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> +{ + typedef detail::KernelFunctorGlobal< + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> FunctorType; + + FunctorType functor_; + + functionImplementation_(const FunctorType &functor) : + functor_(functor) + { + + #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 16)) + // Fail variadic expansion for dev11 + static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it."); + #endif + + } + + //! \brief Return type of the functor + typedef Event result_type; + + //! \brief Function signature of kernel functor with no event dependency. + typedef Event type_( + const EnqueueArgs&, + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15); + + Event operator()( + const EnqueueArgs& enqueueArgs, + T0 arg0, + T1 arg1, + T2 arg2, + T3 arg3, + T4 arg4, + T5 arg5, + T6 arg6, + T7 arg7, + T8 arg8, + T9 arg9, + T10 arg10, + T11 arg11, + T12 arg12, + T13 arg13, + T14 arg14, + T15 arg15) + { + return functor_( + enqueueArgs, + arg0, + arg1, + arg2, + arg3, + arg4, + arg5, + arg6, + arg7, + arg8, + arg9, + arg10, + arg11, + arg12, + arg13, + arg14, + arg15); + } + + +}; + +template< + typename T0, + typename T1, + typename T2, + typename T3, + typename T4, + typename T5, + typename T6, + typename T7, + typename T8, + typename T9, + typename T10, + typename T11, + typename T12, + typename T13, + typename T14> +struct functionImplementation_ +< T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> +{ + typedef detail::KernelFunctorGlobal< + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> FunctorType; + + FunctorType functor_; + + functionImplementation_(const FunctorType &functor) : + functor_(functor) + { + + #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 15)) + // Fail variadic expansion for dev11 + static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it."); + #endif + + } + + //! \brief Return type of the functor + typedef Event result_type; + + //! \brief Function signature of kernel functor with no event dependency. + typedef Event type_( + const EnqueueArgs&, + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14); + + Event operator()( + const EnqueueArgs& enqueueArgs, + T0 arg0, + T1 arg1, + T2 arg2, + T3 arg3, + T4 arg4, + T5 arg5, + T6 arg6, + T7 arg7, + T8 arg8, + T9 arg9, + T10 arg10, + T11 arg11, + T12 arg12, + T13 arg13, + T14 arg14) + { + return functor_( + enqueueArgs, + arg0, + arg1, + arg2, + arg3, + arg4, + arg5, + arg6, + arg7, + arg8, + arg9, + arg10, + arg11, + arg12, + arg13, + arg14); + } + + +}; + +template< + typename T0, + typename T1, + typename T2, + typename T3, + typename T4, + typename T5, + typename T6, + typename T7, + typename T8, + typename T9, + typename T10, + typename T11, + typename T12, + typename T13> +struct functionImplementation_ +< T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> +{ + typedef detail::KernelFunctorGlobal< + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> FunctorType; + + FunctorType functor_; + + functionImplementation_(const FunctorType &functor) : + functor_(functor) + { + + #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 14)) + // Fail variadic expansion for dev11 + static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it."); + #endif + + } + + //! \brief Return type of the functor + typedef Event result_type; + + //! \brief Function signature of kernel functor with no event dependency. + typedef Event type_( + const EnqueueArgs&, + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13); + + Event operator()( + const EnqueueArgs& enqueueArgs, + T0 arg0, + T1 arg1, + T2 arg2, + T3 arg3, + T4 arg4, + T5 arg5, + T6 arg6, + T7 arg7, + T8 arg8, + T9 arg9, + T10 arg10, + T11 arg11, + T12 arg12, + T13 arg13) + { + return functor_( + enqueueArgs, + arg0, + arg1, + arg2, + arg3, + arg4, + arg5, + arg6, + arg7, + arg8, + arg9, + arg10, + arg11, + arg12, + arg13); + } + + +}; + +template< + typename T0, + typename T1, + typename T2, + typename T3, + typename T4, + typename T5, + typename T6, + typename T7, + typename T8, + typename T9, + typename T10, + typename T11, + typename T12> +struct functionImplementation_ +< T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> +{ + typedef detail::KernelFunctorGlobal< + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> FunctorType; + + FunctorType functor_; + + functionImplementation_(const FunctorType &functor) : + functor_(functor) + { + + #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 13)) + // Fail variadic expansion for dev11 + static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it."); + #endif + + } + + //! \brief Return type of the functor + typedef Event result_type; + + //! \brief Function signature of kernel functor with no event dependency. + typedef Event type_( + const EnqueueArgs&, + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12); + + Event operator()( + const EnqueueArgs& enqueueArgs, + T0 arg0, + T1 arg1, + T2 arg2, + T3 arg3, + T4 arg4, + T5 arg5, + T6 arg6, + T7 arg7, + T8 arg8, + T9 arg9, + T10 arg10, + T11 arg11, + T12 arg12) + { + return functor_( + enqueueArgs, + arg0, + arg1, + arg2, + arg3, + arg4, + arg5, + arg6, + arg7, + arg8, + arg9, + arg10, + arg11, + arg12); + } + + +}; + +template< + typename T0, + typename T1, + typename T2, + typename T3, + typename T4, + typename T5, + typename T6, + typename T7, + typename T8, + typename T9, + typename T10, + typename T11> +struct functionImplementation_ +< T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> +{ + typedef detail::KernelFunctorGlobal< + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> FunctorType; + + FunctorType functor_; + + functionImplementation_(const FunctorType &functor) : + functor_(functor) + { + + #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 12)) + // Fail variadic expansion for dev11 + static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it."); + #endif + + } + + //! \brief Return type of the functor + typedef Event result_type; + + //! \brief Function signature of kernel functor with no event dependency. + typedef Event type_( + const EnqueueArgs&, + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11); + + Event operator()( + const EnqueueArgs& enqueueArgs, + T0 arg0, + T1 arg1, + T2 arg2, + T3 arg3, + T4 arg4, + T5 arg5, + T6 arg6, + T7 arg7, + T8 arg8, + T9 arg9, + T10 arg10, + T11 arg11) + { + return functor_( + enqueueArgs, + arg0, + arg1, + arg2, + arg3, + arg4, + arg5, + arg6, + arg7, + arg8, + arg9, + arg10, + arg11); + } + + +}; + +template< + typename T0, + typename T1, + typename T2, + typename T3, + typename T4, + typename T5, + typename T6, + typename T7, + typename T8, + typename T9, + typename T10> +struct functionImplementation_ +< T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> +{ + typedef detail::KernelFunctorGlobal< + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> FunctorType; + + FunctorType functor_; + + functionImplementation_(const FunctorType &functor) : + functor_(functor) + { + + #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 11)) + // Fail variadic expansion for dev11 + static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it."); + #endif + + } + + //! \brief Return type of the functor + typedef Event result_type; + + //! \brief Function signature of kernel functor with no event dependency. + typedef Event type_( + const EnqueueArgs&, + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10); + + Event operator()( + const EnqueueArgs& enqueueArgs, + T0 arg0, + T1 arg1, + T2 arg2, + T3 arg3, + T4 arg4, + T5 arg5, + T6 arg6, + T7 arg7, + T8 arg8, + T9 arg9, + T10 arg10) + { + return functor_( + enqueueArgs, + arg0, + arg1, + arg2, + arg3, + arg4, + arg5, + arg6, + arg7, + arg8, + arg9, + arg10); + } + + +}; + +template< + typename T0, + typename T1, + typename T2, + typename T3, + typename T4, + typename T5, + typename T6, + typename T7, + typename T8, + typename T9> +struct functionImplementation_ +< T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> +{ + typedef detail::KernelFunctorGlobal< + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> FunctorType; + + FunctorType functor_; + + functionImplementation_(const FunctorType &functor) : + functor_(functor) + { + + #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 10)) + // Fail variadic expansion for dev11 + static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it."); + #endif + + } + + //! \brief Return type of the functor + typedef Event result_type; + + //! \brief Function signature of kernel functor with no event dependency. + typedef Event type_( + const EnqueueArgs&, + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9); + + Event operator()( + const EnqueueArgs& enqueueArgs, + T0 arg0, + T1 arg1, + T2 arg2, + T3 arg3, + T4 arg4, + T5 arg5, + T6 arg6, + T7 arg7, + T8 arg8, + T9 arg9) + { + return functor_( + enqueueArgs, + arg0, + arg1, + arg2, + arg3, + arg4, + arg5, + arg6, + arg7, + arg8, + arg9); + } + + +}; + +template< + typename T0, + typename T1, + typename T2, + typename T3, + typename T4, + typename T5, + typename T6, + typename T7, + typename T8> +struct functionImplementation_ +< T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> +{ + typedef detail::KernelFunctorGlobal< + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> FunctorType; + + FunctorType functor_; + + functionImplementation_(const FunctorType &functor) : + functor_(functor) + { + + #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 9)) + // Fail variadic expansion for dev11 + static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it."); + #endif + + } + + //! \brief Return type of the functor + typedef Event result_type; + + //! \brief Function signature of kernel functor with no event dependency. + typedef Event type_( + const EnqueueArgs&, + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8); + + Event operator()( + const EnqueueArgs& enqueueArgs, + T0 arg0, + T1 arg1, + T2 arg2, + T3 arg3, + T4 arg4, + T5 arg5, + T6 arg6, + T7 arg7, + T8 arg8) + { + return functor_( + enqueueArgs, + arg0, + arg1, + arg2, + arg3, + arg4, + arg5, + arg6, + arg7, + arg8); + } + + +}; + +template< + typename T0, + typename T1, + typename T2, + typename T3, + typename T4, + typename T5, + typename T6, + typename T7> +struct functionImplementation_ +< T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> +{ + typedef detail::KernelFunctorGlobal< + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> FunctorType; + + FunctorType functor_; + + functionImplementation_(const FunctorType &functor) : + functor_(functor) + { + + #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 8)) + // Fail variadic expansion for dev11 + static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it."); + #endif + + } + + //! \brief Return type of the functor + typedef Event result_type; + + //! \brief Function signature of kernel functor with no event dependency. + typedef Event type_( + const EnqueueArgs&, + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7); + + Event operator()( + const EnqueueArgs& enqueueArgs, + T0 arg0, + T1 arg1, + T2 arg2, + T3 arg3, + T4 arg4, + T5 arg5, + T6 arg6, + T7 arg7) + { + return functor_( + enqueueArgs, + arg0, + arg1, + arg2, + arg3, + arg4, + arg5, + arg6, + arg7); + } + + +}; + +template< + typename T0, + typename T1, + typename T2, + typename T3, + typename T4, + typename T5, + typename T6> +struct functionImplementation_ +< T0, + T1, + T2, + T3, + T4, + T5, + T6, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> +{ + typedef detail::KernelFunctorGlobal< + T0, + T1, + T2, + T3, + T4, + T5, + T6, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> FunctorType; + + FunctorType functor_; + + functionImplementation_(const FunctorType &functor) : + functor_(functor) + { + + #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 7)) + // Fail variadic expansion for dev11 + static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it."); + #endif + + } + + //! \brief Return type of the functor + typedef Event result_type; + + //! \brief Function signature of kernel functor with no event dependency. + typedef Event type_( + const EnqueueArgs&, + T0, + T1, + T2, + T3, + T4, + T5, + T6); + + Event operator()( + const EnqueueArgs& enqueueArgs, + T0 arg0, + T1 arg1, + T2 arg2, + T3 arg3, + T4 arg4, + T5 arg5, + T6 arg6) + { + return functor_( + enqueueArgs, + arg0, + arg1, + arg2, + arg3, + arg4, + arg5, + arg6); + } + + +}; + +template< + typename T0, + typename T1, + typename T2, + typename T3, + typename T4, + typename T5> +struct functionImplementation_ +< T0, + T1, + T2, + T3, + T4, + T5, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> +{ + typedef detail::KernelFunctorGlobal< + T0, + T1, + T2, + T3, + T4, + T5, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> FunctorType; + + FunctorType functor_; + + functionImplementation_(const FunctorType &functor) : + functor_(functor) + { + + #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 6)) + // Fail variadic expansion for dev11 + static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it."); + #endif + + } + + //! \brief Return type of the functor + typedef Event result_type; + + //! \brief Function signature of kernel functor with no event dependency. + typedef Event type_( + const EnqueueArgs&, + T0, + T1, + T2, + T3, + T4, + T5); + + Event operator()( + const EnqueueArgs& enqueueArgs, + T0 arg0, + T1 arg1, + T2 arg2, + T3 arg3, + T4 arg4, + T5 arg5) + { + return functor_( + enqueueArgs, + arg0, + arg1, + arg2, + arg3, + arg4, + arg5); + } + + +}; + +template< + typename T0, + typename T1, + typename T2, + typename T3, + typename T4> +struct functionImplementation_ +< T0, + T1, + T2, + T3, + T4, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> +{ + typedef detail::KernelFunctorGlobal< + T0, + T1, + T2, + T3, + T4, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> FunctorType; + + FunctorType functor_; + + functionImplementation_(const FunctorType &functor) : + functor_(functor) + { + + #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 5)) + // Fail variadic expansion for dev11 + static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it."); + #endif + + } + + //! \brief Return type of the functor + typedef Event result_type; + + //! \brief Function signature of kernel functor with no event dependency. + typedef Event type_( + const EnqueueArgs&, + T0, + T1, + T2, + T3, + T4); + + Event operator()( + const EnqueueArgs& enqueueArgs, + T0 arg0, + T1 arg1, + T2 arg2, + T3 arg3, + T4 arg4) + { + return functor_( + enqueueArgs, + arg0, + arg1, + arg2, + arg3, + arg4); + } + + +}; + +template< + typename T0, + typename T1, + typename T2, + typename T3> +struct functionImplementation_ +< T0, + T1, + T2, + T3, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> +{ + typedef detail::KernelFunctorGlobal< + T0, + T1, + T2, + T3, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> FunctorType; + + FunctorType functor_; + + functionImplementation_(const FunctorType &functor) : + functor_(functor) + { + + #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 4)) + // Fail variadic expansion for dev11 + static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it."); + #endif + + } + + //! \brief Return type of the functor + typedef Event result_type; + + //! \brief Function signature of kernel functor with no event dependency. + typedef Event type_( + const EnqueueArgs&, + T0, + T1, + T2, + T3); + + Event operator()( + const EnqueueArgs& enqueueArgs, + T0 arg0, + T1 arg1, + T2 arg2, + T3 arg3) + { + return functor_( + enqueueArgs, + arg0, + arg1, + arg2, + arg3); + } + + +}; + +template< + typename T0, + typename T1, + typename T2> +struct functionImplementation_ +< T0, + T1, + T2, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> +{ + typedef detail::KernelFunctorGlobal< + T0, + T1, + T2, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> FunctorType; + + FunctorType functor_; + + functionImplementation_(const FunctorType &functor) : + functor_(functor) + { + + #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 3)) + // Fail variadic expansion for dev11 + static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it."); + #endif + + } + + //! \brief Return type of the functor + typedef Event result_type; + + //! \brief Function signature of kernel functor with no event dependency. + typedef Event type_( + const EnqueueArgs&, + T0, + T1, + T2); + + Event operator()( + const EnqueueArgs& enqueueArgs, + T0 arg0, + T1 arg1, + T2 arg2) + { + return functor_( + enqueueArgs, + arg0, + arg1, + arg2); + } + + +}; + +template< + typename T0, + typename T1> +struct functionImplementation_ +< T0, + T1, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> +{ + typedef detail::KernelFunctorGlobal< + T0, + T1, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> FunctorType; + + FunctorType functor_; + + functionImplementation_(const FunctorType &functor) : + functor_(functor) + { + + #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 2)) + // Fail variadic expansion for dev11 + static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it."); + #endif + + } + + //! \brief Return type of the functor + typedef Event result_type; + + //! \brief Function signature of kernel functor with no event dependency. + typedef Event type_( + const EnqueueArgs&, + T0, + T1); + + Event operator()( + const EnqueueArgs& enqueueArgs, + T0 arg0, + T1 arg1) + { + return functor_( + enqueueArgs, + arg0, + arg1); + } + + +}; + +template< + typename T0> +struct functionImplementation_ +< T0, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> +{ + typedef detail::KernelFunctorGlobal< + T0, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> FunctorType; + + FunctorType functor_; + + functionImplementation_(const FunctorType &functor) : + functor_(functor) + { + + #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 1)) + // Fail variadic expansion for dev11 + static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it."); + #endif + + } + + //! \brief Return type of the functor + typedef Event result_type; + + //! \brief Function signature of kernel functor with no event dependency. + typedef Event type_( + const EnqueueArgs&, + T0); + + Event operator()( + const EnqueueArgs& enqueueArgs, + T0 arg0) + { + return functor_( + enqueueArgs, + arg0); + } + + +}; + + + + + +} // namespace detail + +//---------------------------------------------------------------------------------------------- + +template < + typename T0, typename T1 = detail::NullType, typename T2 = detail::NullType, + typename T3 = detail::NullType, typename T4 = detail::NullType, + typename T5 = detail::NullType, typename T6 = detail::NullType, + typename T7 = detail::NullType, typename T8 = detail::NullType, + typename T9 = detail::NullType, typename T10 = detail::NullType, + typename T11 = detail::NullType, typename T12 = detail::NullType, + typename T13 = detail::NullType, typename T14 = detail::NullType, + typename T15 = detail::NullType, typename T16 = detail::NullType, + typename T17 = detail::NullType, typename T18 = detail::NullType, + typename T19 = detail::NullType, typename T20 = detail::NullType, + typename T21 = detail::NullType, typename T22 = detail::NullType, + typename T23 = detail::NullType, typename T24 = detail::NullType, + typename T25 = detail::NullType, typename T26 = detail::NullType, + typename T27 = detail::NullType, typename T28 = detail::NullType, + typename T29 = detail::NullType, typename T30 = detail::NullType, + typename T31 = detail::NullType +> +struct make_kernel : + public detail::functionImplementation_< + T0, T1, T2, T3, + T4, T5, T6, T7, + T8, T9, T10, T11, + T12, T13, T14, T15, + T16, T17, T18, T19, + T20, T21, T22, T23, + T24, T25, T26, T27, + T28, T29, T30, T31 + > +{ +public: + typedef detail::KernelFunctorGlobal< + T0, T1, T2, T3, + T4, T5, T6, T7, + T8, T9, T10, T11, + T12, T13, T14, T15, + T16, T17, T18, T19, + T20, T21, T22, T23, + T24, T25, T26, T27, + T28, T29, T30, T31 + > FunctorType; + + make_kernel( + const Program& program, + const STRING_CLASS name, + cl_int * err = NULL) : + detail::functionImplementation_< + T0, T1, T2, T3, + T4, T5, T6, T7, + T8, T9, T10, T11, + T12, T13, T14, T15, + T16, T17, T18, T19, + T20, T21, T22, T23, + T24, T25, T26, T27, + T28, T29, T30, T31 + >( + FunctorType(program, name, err)) + {} + + make_kernel( + const Kernel kernel) : + detail::functionImplementation_< + T0, T1, T2, T3, + T4, T5, T6, T7, + T8, T9, T10, T11, + T12, T13, T14, T15, + T16, T17, T18, T19, + T20, T21, T22, T23, + T24, T25, T26, T27, + T28, T29, T30, T31 + >( + FunctorType(kernel)) + {} +}; + + +//---------------------------------------------------------------------------------------------------------------------- + +#undef __ERR_STR +#if !defined(__CL_USER_OVERRIDE_ERROR_STRINGS) +#undef __GET_DEVICE_INFO_ERR +#undef __GET_PLATFORM_INFO_ERR +#undef __GET_DEVICE_IDS_ERR +#undef __GET_CONTEXT_INFO_ERR +#undef __GET_EVENT_INFO_ERR +#undef __GET_EVENT_PROFILE_INFO_ERR +#undef __GET_MEM_OBJECT_INFO_ERR +#undef __GET_IMAGE_INFO_ERR +#undef __GET_SAMPLER_INFO_ERR +#undef __GET_KERNEL_INFO_ERR +#undef __GET_KERNEL_ARG_INFO_ERR +#undef __GET_KERNEL_WORK_GROUP_INFO_ERR +#undef __GET_PROGRAM_INFO_ERR +#undef __GET_PROGRAM_BUILD_INFO_ERR +#undef __GET_COMMAND_QUEUE_INFO_ERR + +#undef __CREATE_CONTEXT_ERR +#undef __CREATE_CONTEXT_FROM_TYPE_ERR +#undef __GET_SUPPORTED_IMAGE_FORMATS_ERR + +#undef __CREATE_BUFFER_ERR +#undef __CREATE_SUBBUFFER_ERR +#undef __CREATE_IMAGE2D_ERR +#undef __CREATE_IMAGE3D_ERR +#undef __CREATE_SAMPLER_ERR +#undef __SET_MEM_OBJECT_DESTRUCTOR_CALLBACK_ERR + +#undef __CREATE_USER_EVENT_ERR +#undef __SET_USER_EVENT_STATUS_ERR +#undef __SET_EVENT_CALLBACK_ERR +#undef __SET_PRINTF_CALLBACK_ERR + +#undef __WAIT_FOR_EVENTS_ERR + +#undef __CREATE_KERNEL_ERR +#undef __SET_KERNEL_ARGS_ERR +#undef __CREATE_PROGRAM_WITH_SOURCE_ERR +#undef __CREATE_PROGRAM_WITH_BINARY_ERR +#undef __CREATE_PROGRAM_WITH_BUILT_IN_KERNELS_ERR +#undef __BUILD_PROGRAM_ERR +#undef __CREATE_KERNELS_IN_PROGRAM_ERR + +#undef __CREATE_COMMAND_QUEUE_ERR +#undef __SET_COMMAND_QUEUE_PROPERTY_ERR +#undef __ENQUEUE_READ_BUFFER_ERR +#undef __ENQUEUE_WRITE_BUFFER_ERR +#undef __ENQUEUE_READ_BUFFER_RECT_ERR +#undef __ENQUEUE_WRITE_BUFFER_RECT_ERR +#undef __ENQUEUE_COPY_BUFFER_ERR +#undef __ENQUEUE_COPY_BUFFER_RECT_ERR +#undef __ENQUEUE_READ_IMAGE_ERR +#undef __ENQUEUE_WRITE_IMAGE_ERR +#undef __ENQUEUE_COPY_IMAGE_ERR +#undef __ENQUEUE_COPY_IMAGE_TO_BUFFER_ERR +#undef __ENQUEUE_COPY_BUFFER_TO_IMAGE_ERR +#undef __ENQUEUE_MAP_BUFFER_ERR +#undef __ENQUEUE_MAP_IMAGE_ERR +#undef __ENQUEUE_UNMAP_MEM_OBJECT_ERR +#undef __ENQUEUE_NDRANGE_KERNEL_ERR +#undef __ENQUEUE_TASK_ERR +#undef __ENQUEUE_NATIVE_KERNEL + +#undef __CL_EXPLICIT_CONSTRUCTORS + +#undef __UNLOAD_COMPILER_ERR +#endif //__CL_USER_OVERRIDE_ERROR_STRINGS + +#undef __CL_FUNCTION_TYPE + +// Extensions +/** + * Deprecated APIs for 1.2 + */ +#if defined(CL_VERSION_1_1) +#undef __INIT_CL_EXT_FCN_PTR +#endif // #if defined(CL_VERSION_1_1) +#undef __CREATE_SUB_DEVICES + +#if defined(USE_CL_DEVICE_FISSION) +#undef __PARAM_NAME_DEVICE_FISSION +#endif // USE_CL_DEVICE_FISSION + +#undef __DEFAULT_NOT_INITIALIZED +#undef __DEFAULT_BEING_INITIALIZED +#undef __DEFAULT_INITIALIZED + +} // namespace cl + +#ifdef _WIN32 +#pragma pop_macro("max") +#endif // _WIN32 + +#endif // CL_HPP_ diff --git a/benchmarks/opencl/include/CL/cl2.hpp b/benchmarks/opencl/include/CL/cl2.hpp new file mode 100644 index 00000000..da5ee88c --- /dev/null +++ b/benchmarks/opencl/include/CL/cl2.hpp @@ -0,0 +1,10119 @@ +/******************************************************************************* + * Copyright (c) 2008-2016 The Khronos Group Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and/or associated documentation files (the + * "Materials"), to deal in the Materials without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Materials, and to + * permit persons to whom the Materials are furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Materials. + * + * MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS + * KHRONOS STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS + * SPECIFICATIONS AND HEADER INFORMATION ARE LOCATED AT + * https://www.khronos.org/registry/ + * + * THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. + ******************************************************************************/ + +/*! \file + * + * \brief C++ bindings for OpenCL 1.0 (rev 48), OpenCL 1.1 (rev 33), + * OpenCL 1.2 (rev 15), OpenCL 2.0 (rev 29) and OpenCL 2.1 (rev 17). + * \author Lee Howes and Bruce Merry + * + * Derived from the OpenCL 1.x C++ bindings written by + * Benedict R. Gaster, Laurent Morichetti and Lee Howes + * With additions and fixes from: + * Brian Cole, March 3rd 2010 and April 2012 + * Matt Gruenke, April 2012. + * Bruce Merry, February 2013. + * Tom Deakin and Simon McIntosh-Smith, July 2013 + * James Price, 2015- + * \version 2.1.0 + * \date 2018-12-07 + * + * Optional extension support + * + * cl_ext_device_fission + * #define CL_HPP_USE_CL_DEVICE_FISSION + * cl_khr_d3d10_sharing + * #define CL_HPP_USE_DX_INTEROP + * cl_khr_sub_groups + * #define CL_HPP_USE_CL_SUB_GROUPS_KHR + * cl_khr_image2d_from_buffer + * #define CL_HPP_USE_CL_IMAGE2D_FROM_BUFFER_KHR + * + * Doxygen documentation for this header is available here: + * + * http://khronosgroup.github.io/OpenCL-CLHPP/ + * + * The latest version of this header can be found on the GitHub releases page: + * + * https://github.com/KhronosGroup/OpenCL-CLHPP/releases + * + * Bugs and patches can be submitted to the GitHub repository: + * + * https://github.com/KhronosGroup/OpenCL-CLHPP + */ + +/*! \mainpage + * \section intro Introduction + * For many large applications C++ is the language of choice and so it seems + * reasonable to define C++ bindings for OpenCL. + * + * The interface is contained with a single C++ header file \em cl2.hpp and all + * definitions are contained within the namespace \em cl. There is no additional + * requirement to include \em cl.h and to use either the C++ or original C + * bindings; it is enough to simply include \em cl2.hpp. + * + * The bindings themselves are lightweight and correspond closely to the + * underlying C API. Using the C++ bindings introduces no additional execution + * overhead. + * + * There are numerous compatibility, portability and memory management + * fixes in the new header as well as additional OpenCL 2.0 features. + * As a result the header is not directly backward compatible and for this + * reason we release it as cl2.hpp rather than a new version of cl.hpp. + * + * + * \section compatibility Compatibility + * Due to the evolution of the underlying OpenCL API the 2.0 C++ bindings + * include an updated approach to defining supported feature versions + * and the range of valid underlying OpenCL runtime versions supported. + * + * The combination of preprocessor macros CL_HPP_TARGET_OPENCL_VERSION and + * CL_HPP_MINIMUM_OPENCL_VERSION control this range. These are three digit + * decimal values representing OpenCL runime versions. The default for + * the target is 200, representing OpenCL 2.0 and the minimum is also + * defined as 200. These settings would use 2.0 API calls only. + * If backward compatibility with a 1.2 runtime is required, the minimum + * version may be set to 120. + * + * Note that this is a compile-time setting, and so affects linking against + * a particular SDK version rather than the versioning of the loaded runtime. + * + * The earlier versions of the header included basic vector and string + * classes based loosely on STL versions. These were difficult to + * maintain and very rarely used. For the 2.0 header we now assume + * the presence of the standard library unless requested otherwise. + * We use std::array, std::vector, std::shared_ptr and std::string + * throughout to safely manage memory and reduce the chance of a + * recurrance of earlier memory management bugs. + * + * These classes are used through typedefs in the cl namespace: + * cl::array, cl::vector, cl::pointer and cl::string. + * In addition cl::allocate_pointer forwards to std::allocate_shared + * by default. + * In all cases these standard library classes can be replaced with + * custom interface-compatible versions using the CL_HPP_NO_STD_ARRAY, + * CL_HPP_NO_STD_VECTOR, CL_HPP_NO_STD_UNIQUE_PTR and + * CL_HPP_NO_STD_STRING macros. + * + * The OpenCL 1.x versions of the C++ bindings included a size_t wrapper + * class to interface with kernel enqueue. This caused unpleasant interactions + * with the standard size_t declaration and led to namespacing bugs. + * In the 2.0 version we have replaced this with a std::array-based interface. + * However, the old behaviour can be regained for backward compatibility + * using the CL_HPP_ENABLE_SIZE_T_COMPATIBILITY macro. + * + * Finally, the program construction interface used a clumsy vector-of-pairs + * design in the earlier versions. We have replaced that with a cleaner + * vector-of-vectors and vector-of-strings design. However, for backward + * compatibility old behaviour can be regained with the + * CL_HPP_ENABLE_PROGRAM_CONSTRUCTION_FROM_ARRAY_COMPATIBILITY macro. + * + * In OpenCL 2.0 OpenCL C is not entirely backward compatibility with + * earlier versions. As a result a flag must be passed to the OpenCL C + * compiled to request OpenCL 2.0 compilation of kernels with 1.2 as + * the default in the absence of the flag. + * In some cases the C++ bindings automatically compile code for ease. + * For those cases the compilation defaults to OpenCL C 2.0. + * If this is not wanted, the CL_HPP_CL_1_2_DEFAULT_BUILD macro may + * be specified to assume 1.2 compilation. + * If more fine-grained decisions on a per-kernel bases are required + * then explicit build operations that take the flag should be used. + * + * + * \section parameterization Parameters + * This header may be parameterized by a set of preprocessor macros. + * + * - CL_HPP_TARGET_OPENCL_VERSION + * + * Defines the target OpenCL runtime version to build the header + * against. Defaults to 200, representing OpenCL 2.0. + * + * - CL_HPP_NO_STD_STRING + * + * Do not use the standard library string class. cl::string is not + * defined and may be defined by the user before cl2.hpp is + * included. + * + * - CL_HPP_NO_STD_VECTOR + * + * Do not use the standard library vector class. cl::vector is not + * defined and may be defined by the user before cl2.hpp is + * included. + * + * - CL_HPP_NO_STD_ARRAY + * + * Do not use the standard library array class. cl::array is not + * defined and may be defined by the user before cl2.hpp is + * included. + * + * - CL_HPP_NO_STD_UNIQUE_PTR + * + * Do not use the standard library unique_ptr class. cl::pointer and + * the cl::allocate_pointer functions are not defined and may be + * defined by the user before cl2.hpp is included. + * + * - CL_HPP_ENABLE_DEVICE_FISSION + * + * Enables device fission for OpenCL 1.2 platforms. + * + * - CL_HPP_ENABLE_EXCEPTIONS + * + * Enable exceptions for use in the C++ bindings header. This is the + * preferred error handling mechanism but is not required. + * + * - CL_HPP_ENABLE_SIZE_T_COMPATIBILITY + * + * Backward compatibility option to support cl.hpp-style size_t + * class. Replaces the updated std::array derived version and + * removal of size_t from the namespace. Note that in this case the + * new size_t class is placed in the cl::compatibility namespace and + * thus requires an additional using declaration for direct backward + * compatibility. + * + * - CL_HPP_ENABLE_PROGRAM_CONSTRUCTION_FROM_ARRAY_COMPATIBILITY + * + * Enable older vector of pairs interface for construction of + * programs. + * + * - CL_HPP_CL_1_2_DEFAULT_BUILD + * + * Default to OpenCL C 1.2 compilation rather than OpenCL C 2.0 + * applies to use of cl::Program construction and other program + * build variants. + * + * - CL_HPP_USE_CL_SUB_GROUPS_KHR + * + * Enable the cl_khr_subgroups extension. + * + * - CL_HPP_USE_IL_KHR + * + * Enable the cl_khr_il_program extension. + * + * + * \section example Example + * + * The following example shows a general use case for the C++ + * bindings, including support for the optional exception feature and + * also the supplied vector and string classes, see following sections for + * decriptions of these features. + * + * \code + #define CL_HPP_ENABLE_EXCEPTIONS + #define CL_HPP_TARGET_OPENCL_VERSION 200 + + #include + #include + #include + #include + #include + + const int numElements = 32; + + int main(void) + { + // Filter for a 2.0 platform and set it as the default + std::vector platforms; + cl::Platform::get(&platforms); + cl::Platform plat; + for (auto &p : platforms) { + std::string platver = p.getInfo(); + if (platver.find("OpenCL 2.") != std::string::npos) { + plat = p; + } + } + if (plat() == 0) { + std::cout << "No OpenCL 2.0 platform found."; + return -1; + } + + cl::Platform newP = cl::Platform::setDefault(plat); + if (newP != plat) { + std::cout << "Error setting default platform."; + return -1; + } + + // Use C++11 raw string literals for kernel source code + std::string kernel1{R"CLC( + global int globalA; + kernel void updateGlobal() + { + globalA = 75; + } + )CLC"}; + std::string kernel2{R"CLC( + typedef struct { global int *bar; } Foo; + kernel void vectorAdd(global const Foo* aNum, global const int *inputA, global const int *inputB, + global int *output, int val, write_only pipe int outPipe, queue_t childQueue) + { + output[get_global_id(0)] = inputA[get_global_id(0)] + inputB[get_global_id(0)] + val + *(aNum->bar); + write_pipe(outPipe, &val); + queue_t default_queue = get_default_queue(); + ndrange_t ndrange = ndrange_1D(get_global_size(0)/2, get_global_size(0)/2); + + // Have a child kernel write into third quarter of output + enqueue_kernel(default_queue, CLK_ENQUEUE_FLAGS_WAIT_KERNEL, ndrange, + ^{ + output[get_global_size(0)*2 + get_global_id(0)] = + inputA[get_global_size(0)*2 + get_global_id(0)] + inputB[get_global_size(0)*2 + get_global_id(0)] + globalA; + }); + + // Have a child kernel write into last quarter of output + enqueue_kernel(childQueue, CLK_ENQUEUE_FLAGS_WAIT_KERNEL, ndrange, + ^{ + output[get_global_size(0)*3 + get_global_id(0)] = + inputA[get_global_size(0)*3 + get_global_id(0)] + inputB[get_global_size(0)*3 + get_global_id(0)] + globalA + 2; + }); + } + )CLC"}; + + // New simpler string interface style + std::vector programStrings {kernel1, kernel2}; + + cl::Program vectorAddProgram(programStrings); + try { + vectorAddProgram.build("-cl-std=CL2.0"); + } + catch (...) { + // Print build info for all devices + cl_int buildErr = CL_SUCCESS; + auto buildInfo = vectorAddProgram.getBuildInfo(&buildErr); + for (auto &pair : buildInfo) { + std::cerr << pair.second << std::endl << std::endl; + } + + return 1; + } + + typedef struct { int *bar; } Foo; + + // Get and run kernel that initializes the program-scope global + // A test for kernels that take no arguments + auto program2Kernel = + cl::KernelFunctor<>(vectorAddProgram, "updateGlobal"); + program2Kernel( + cl::EnqueueArgs( + cl::NDRange(1))); + + ////////////////// + // SVM allocations + + auto anSVMInt = cl::allocate_svm>(); + *anSVMInt = 5; + cl::SVMAllocator>> svmAllocReadOnly; + auto fooPointer = cl::allocate_pointer(svmAllocReadOnly); + fooPointer->bar = anSVMInt.get(); + cl::SVMAllocator> svmAlloc; + std::vector>> inputA(numElements, 1, svmAlloc); + cl::coarse_svm_vector inputB(numElements, 2, svmAlloc); + + // + ////////////// + + // Traditional cl_mem allocations + std::vector output(numElements, 0xdeadbeef); + cl::Buffer outputBuffer(begin(output), end(output), false); + cl::Pipe aPipe(sizeof(cl_int), numElements / 2); + + // Default command queue, also passed in as a parameter + cl::DeviceCommandQueue defaultDeviceQueue = cl::DeviceCommandQueue::makeDefault( + cl::Context::getDefault(), cl::Device::getDefault()); + + auto vectorAddKernel = + cl::KernelFunctor< + decltype(fooPointer)&, + int*, + cl::coarse_svm_vector&, + cl::Buffer, + int, + cl::Pipe&, + cl::DeviceCommandQueue + >(vectorAddProgram, "vectorAdd"); + + // Ensure that the additional SVM pointer is available to the kernel + // This one was not passed as a parameter + vectorAddKernel.setSVMPointers(anSVMInt); + + // Hand control of coarse allocations to runtime + cl::enqueueUnmapSVM(anSVMInt); + cl::enqueueUnmapSVM(fooPointer); + cl::unmapSVM(inputB); + cl::unmapSVM(output2); + + cl_int error; + vectorAddKernel( + cl::EnqueueArgs( + cl::NDRange(numElements/2), + cl::NDRange(numElements/2)), + fooPointer, + inputA.data(), + inputB, + outputBuffer, + 3, + aPipe, + defaultDeviceQueue, + error + ); + + cl::copy(outputBuffer, begin(output), end(output)); + // Grab the SVM output vector using a map + cl::mapSVM(output2); + + cl::Device d = cl::Device::getDefault(); + + std::cout << "Output:\n"; + for (int i = 1; i < numElements; ++i) { + std::cout << "\t" << output[i] << "\n"; + } + std::cout << "\n\n"; + + return 0; + } + * + * \endcode + * + */ +#ifndef CL_HPP_ +#define CL_HPP_ + +/* Handle deprecated preprocessor definitions. In each case, we only check for + * the old name if the new name is not defined, so that user code can define + * both and hence work with either version of the bindings. + */ +#if !defined(CL_HPP_USE_DX_INTEROP) && defined(USE_DX_INTEROP) +# pragma message("cl2.hpp: USE_DX_INTEROP is deprecated. Define CL_HPP_USE_DX_INTEROP instead") +# define CL_HPP_USE_DX_INTEROP +#endif +#if !defined(CL_HPP_USE_CL_DEVICE_FISSION) && defined(USE_CL_DEVICE_FISSION) +# pragma message("cl2.hpp: USE_CL_DEVICE_FISSION is deprecated. Define CL_HPP_USE_CL_DEVICE_FISSION instead") +# define CL_HPP_USE_CL_DEVICE_FISSION +#endif +#if !defined(CL_HPP_ENABLE_EXCEPTIONS) && defined(__CL_ENABLE_EXCEPTIONS) +# pragma message("cl2.hpp: __CL_ENABLE_EXCEPTIONS is deprecated. Define CL_HPP_ENABLE_EXCEPTIONS instead") +# define CL_HPP_ENABLE_EXCEPTIONS +#endif +#if !defined(CL_HPP_NO_STD_VECTOR) && defined(__NO_STD_VECTOR) +# pragma message("cl2.hpp: __NO_STD_VECTOR is deprecated. Define CL_HPP_NO_STD_VECTOR instead") +# define CL_HPP_NO_STD_VECTOR +#endif +#if !defined(CL_HPP_NO_STD_STRING) && defined(__NO_STD_STRING) +# pragma message("cl2.hpp: __NO_STD_STRING is deprecated. Define CL_HPP_NO_STD_STRING instead") +# define CL_HPP_NO_STD_STRING +#endif +#if defined(VECTOR_CLASS) +# pragma message("cl2.hpp: VECTOR_CLASS is deprecated. Alias cl::vector instead") +#endif +#if defined(STRING_CLASS) +# pragma message("cl2.hpp: STRING_CLASS is deprecated. Alias cl::string instead.") +#endif +#if !defined(CL_HPP_USER_OVERRIDE_ERROR_STRINGS) && defined(__CL_USER_OVERRIDE_ERROR_STRINGS) +# pragma message("cl2.hpp: __CL_USER_OVERRIDE_ERROR_STRINGS is deprecated. Define CL_HPP_USER_OVERRIDE_ERROR_STRINGS instead") +# define CL_HPP_USER_OVERRIDE_ERROR_STRINGS +#endif + +/* Warn about features that are no longer supported + */ +#if defined(__USE_DEV_VECTOR) +# pragma message("cl2.hpp: __USE_DEV_VECTOR is no longer supported. Expect compilation errors") +#endif +#if defined(__USE_DEV_STRING) +# pragma message("cl2.hpp: __USE_DEV_STRING is no longer supported. Expect compilation errors") +#endif + +/* Detect which version to target */ +#if !defined(CL_HPP_TARGET_OPENCL_VERSION) +# pragma message("cl2.hpp: CL_HPP_TARGET_OPENCL_VERSION is not defined. It will default to 210 (OpenCL 2.1)") +# define CL_HPP_TARGET_OPENCL_VERSION 210 +#endif +#if CL_HPP_TARGET_OPENCL_VERSION != 100 && CL_HPP_TARGET_OPENCL_VERSION != 110 && CL_HPP_TARGET_OPENCL_VERSION != 120 && CL_HPP_TARGET_OPENCL_VERSION != 200 && CL_HPP_TARGET_OPENCL_VERSION != 210 +# pragma message("cl2.hpp: CL_HPP_TARGET_OPENCL_VERSION is not a valid value (100, 110, 120, 200 or 210). It will be set to 210") +# undef CL_HPP_TARGET_OPENCL_VERSION +# define CL_HPP_TARGET_OPENCL_VERSION 210 +#endif + +/* Forward target OpenCL version to C headers if necessary */ +#if defined(CL_TARGET_OPENCL_VERSION) +/* Warn if prior definition of CL_TARGET_OPENCL_VERSION is lower than + * requested C++ bindings version */ +#if CL_TARGET_OPENCL_VERSION < CL_HPP_TARGET_OPENCL_VERSION +# pragma message("CL_TARGET_OPENCL_VERSION is already defined as is lower than CL_HPP_TARGET_OPENCL_VERSION") +#endif +#else +# define CL_TARGET_OPENCL_VERSION CL_HPP_TARGET_OPENCL_VERSION +#endif + +#if !defined(CL_HPP_MINIMUM_OPENCL_VERSION) +# define CL_HPP_MINIMUM_OPENCL_VERSION 200 +#endif +#if CL_HPP_MINIMUM_OPENCL_VERSION != 100 && CL_HPP_MINIMUM_OPENCL_VERSION != 110 && CL_HPP_MINIMUM_OPENCL_VERSION != 120 && CL_HPP_MINIMUM_OPENCL_VERSION != 200 && CL_HPP_MINIMUM_OPENCL_VERSION != 210 +# pragma message("cl2.hpp: CL_HPP_MINIMUM_OPENCL_VERSION is not a valid value (100, 110, 120, 200 or 210). It will be set to 100") +# undef CL_HPP_MINIMUM_OPENCL_VERSION +# define CL_HPP_MINIMUM_OPENCL_VERSION 100 +#endif +#if CL_HPP_MINIMUM_OPENCL_VERSION > CL_HPP_TARGET_OPENCL_VERSION +# error "CL_HPP_MINIMUM_OPENCL_VERSION must not be greater than CL_HPP_TARGET_OPENCL_VERSION" +#endif + +#if CL_HPP_MINIMUM_OPENCL_VERSION <= 100 && !defined(CL_USE_DEPRECATED_OPENCL_1_0_APIS) +# define CL_USE_DEPRECATED_OPENCL_1_0_APIS +#endif +#if CL_HPP_MINIMUM_OPENCL_VERSION <= 110 && !defined(CL_USE_DEPRECATED_OPENCL_1_1_APIS) +# define CL_USE_DEPRECATED_OPENCL_1_1_APIS +#endif +#if CL_HPP_MINIMUM_OPENCL_VERSION <= 120 && !defined(CL_USE_DEPRECATED_OPENCL_1_2_APIS) +# define CL_USE_DEPRECATED_OPENCL_1_2_APIS +#endif +#if CL_HPP_MINIMUM_OPENCL_VERSION <= 200 && !defined(CL_USE_DEPRECATED_OPENCL_2_0_APIS) +# define CL_USE_DEPRECATED_OPENCL_2_0_APIS +#endif +#if CL_HPP_MINIMUM_OPENCL_VERSION <= 210 && !defined(CL_USE_DEPRECATED_OPENCL_2_1_APIS) +# define CL_USE_DEPRECATED_OPENCL_2_1_APIS +#endif + +#ifdef _WIN32 + +#include + +#if defined(CL_HPP_USE_DX_INTEROP) +#include +#include +#endif +#endif // _WIN32 + +#if defined(_MSC_VER) +#include +#endif // _MSC_VER + + // Check for a valid C++ version + +// Need to do both tests here because for some reason __cplusplus is not +// updated in visual studio +#if (!defined(_MSC_VER) && __cplusplus < 201103L) || (defined(_MSC_VER) && _MSC_VER < 1700) +#error Visual studio 2013 or another C++11-supporting compiler required +#endif + +// +#if defined(CL_HPP_USE_CL_DEVICE_FISSION) || defined(CL_HPP_USE_CL_SUB_GROUPS_KHR) +#include +#endif + +#if defined(__APPLE__) || defined(__MACOSX) +#include +#else +#include +#endif // !__APPLE__ + +#if (__cplusplus >= 201103L) +#define CL_HPP_NOEXCEPT_ noexcept +#else +#define CL_HPP_NOEXCEPT_ +#endif + +#if defined(_MSC_VER) +# define CL_HPP_DEFINE_STATIC_MEMBER_ __declspec(selectany) +#else +# define CL_HPP_DEFINE_STATIC_MEMBER_ +#endif // !_MSC_VER + +// Define deprecated prefixes and suffixes to ensure compilation +// in case they are not pre-defined +#if !defined(CL_EXT_PREFIX__VERSION_1_1_DEPRECATED) +#define CL_EXT_PREFIX__VERSION_1_1_DEPRECATED +#endif // #if !defined(CL_EXT_PREFIX__VERSION_1_1_DEPRECATED) +#if !defined(CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED) +#define CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED +#endif // #if !defined(CL_EXT_PREFIX__VERSION_1_1_DEPRECATED) + +#if !defined(CL_EXT_PREFIX__VERSION_1_2_DEPRECATED) +#define CL_EXT_PREFIX__VERSION_1_2_DEPRECATED +#endif // #if !defined(CL_EXT_PREFIX__VERSION_1_2_DEPRECATED) +#if !defined(CL_EXT_SUFFIX__VERSION_1_2_DEPRECATED) +#define CL_EXT_SUFFIX__VERSION_1_2_DEPRECATED +#endif // #if !defined(CL_EXT_PREFIX__VERSION_1_2_DEPRECATED) + +#if !defined(CL_CALLBACK) +#define CL_CALLBACK +#endif //CL_CALLBACK + +#include +#include +#include +#include +#include +#include + + +// Define a size_type to represent a correctly resolved size_t +#if defined(CL_HPP_ENABLE_SIZE_T_COMPATIBILITY) +namespace cl { + using size_type = ::size_t; +} // namespace cl +#else // #if defined(CL_HPP_ENABLE_SIZE_T_COMPATIBILITY) +namespace cl { + using size_type = size_t; +} // namespace cl +#endif // #if defined(CL_HPP_ENABLE_SIZE_T_COMPATIBILITY) + + +#if defined(CL_HPP_ENABLE_EXCEPTIONS) +#include +#endif // #if defined(CL_HPP_ENABLE_EXCEPTIONS) + +#if !defined(CL_HPP_NO_STD_VECTOR) +#include +namespace cl { + template < class T, class Alloc = std::allocator > + using vector = std::vector; +} // namespace cl +#endif // #if !defined(CL_HPP_NO_STD_VECTOR) + +#if !defined(CL_HPP_NO_STD_STRING) +#include +namespace cl { + using string = std::string; +} // namespace cl +#endif // #if !defined(CL_HPP_NO_STD_STRING) + +#if CL_HPP_TARGET_OPENCL_VERSION >= 200 + +#if !defined(CL_HPP_NO_STD_UNIQUE_PTR) +#include +namespace cl { + // Replace unique_ptr and allocate_pointer for internal use + // to allow user to replace them + template + using pointer = std::unique_ptr; +} // namespace cl +#endif +#endif // #if CL_HPP_TARGET_OPENCL_VERSION >= 200 +#if !defined(CL_HPP_NO_STD_ARRAY) +#include +namespace cl { + template < class T, size_type N > + using array = std::array; +} // namespace cl +#endif // #if !defined(CL_HPP_NO_STD_ARRAY) + +// Define size_type appropriately to allow backward-compatibility +// use of the old size_t interface class +#if defined(CL_HPP_ENABLE_SIZE_T_COMPATIBILITY) +namespace cl { + namespace compatibility { + /*! \brief class used to interface between C++ and + * OpenCL C calls that require arrays of size_t values, whose + * size is known statically. + */ + template + class size_t + { + private: + size_type data_[N]; + + public: + //! \brief Initialize size_t to all 0s + size_t() + { + for (int i = 0; i < N; ++i) { + data_[i] = 0; + } + } + + size_t(const array &rhs) + { + for (int i = 0; i < N; ++i) { + data_[i] = rhs[i]; + } + } + + size_type& operator[](int index) + { + return data_[index]; + } + + const size_type& operator[](int index) const + { + return data_[index]; + } + + //! \brief Conversion operator to T*. + operator size_type* () { return data_; } + + //! \brief Conversion operator to const T*. + operator const size_type* () const { return data_; } + + operator array() const + { + array ret; + + for (int i = 0; i < N; ++i) { + ret[i] = data_[i]; + } + return ret; + } + }; + } // namespace compatibility + + template + using size_t = compatibility::size_t; +} // namespace cl +#endif // #if defined(CL_HPP_ENABLE_SIZE_T_COMPATIBILITY) + +// Helper alias to avoid confusing the macros +namespace cl { + namespace detail { + using size_t_array = array; + } // namespace detail +} // namespace cl + + +/*! \namespace cl + * + * \brief The OpenCL C++ bindings are defined within this namespace. + * + */ +namespace cl { + class Memory; + +#define CL_HPP_INIT_CL_EXT_FCN_PTR_(name) \ + if (!pfn_##name) { \ + pfn_##name = (PFN_##name) \ + clGetExtensionFunctionAddress(#name); \ + if (!pfn_##name) { \ + } \ + } + +#define CL_HPP_INIT_CL_EXT_FCN_PTR_PLATFORM_(platform, name) \ + if (!pfn_##name) { \ + pfn_##name = (PFN_##name) \ + clGetExtensionFunctionAddressForPlatform(platform, #name); \ + if (!pfn_##name) { \ + } \ + } + + class Program; + class Device; + class Context; + class CommandQueue; + class DeviceCommandQueue; + class Memory; + class Buffer; + class Pipe; + +#if defined(CL_HPP_ENABLE_EXCEPTIONS) + /*! \brief Exception class + * + * This may be thrown by API functions when CL_HPP_ENABLE_EXCEPTIONS is defined. + */ + class Error : public std::exception + { + private: + cl_int err_; + const char * errStr_; + public: + /*! \brief Create a new CL error exception for a given error code + * and corresponding message. + * + * \param err error code value. + * + * \param errStr a descriptive string that must remain in scope until + * handling of the exception has concluded. If set, it + * will be returned by what(). + */ + Error(cl_int err, const char * errStr = NULL) : err_(err), errStr_(errStr) + {} + + ~Error() throw() {} + + /*! \brief Get error string associated with exception + * + * \return A memory pointer to the error message string. + */ + virtual const char * what() const throw () + { + if (errStr_ == NULL) { + return "empty"; + } + else { + return errStr_; + } + } + + /*! \brief Get error code associated with exception + * + * \return The error code. + */ + cl_int err(void) const { return err_; } + }; +#define CL_HPP_ERR_STR_(x) #x +#else +#define CL_HPP_ERR_STR_(x) NULL +#endif // CL_HPP_ENABLE_EXCEPTIONS + + +namespace detail +{ +#if defined(CL_HPP_ENABLE_EXCEPTIONS) +static inline cl_int errHandler ( + cl_int err, + const char * errStr = NULL) +{ + if (err != CL_SUCCESS) { + throw Error(err, errStr); + } + return err; +} +#else +static inline cl_int errHandler (cl_int err, const char * errStr = NULL) +{ + (void) errStr; // suppress unused variable warning + return err; +} +#endif // CL_HPP_ENABLE_EXCEPTIONS +} + + + +//! \cond DOXYGEN_DETAIL +#if !defined(CL_HPP_USER_OVERRIDE_ERROR_STRINGS) +#define __GET_DEVICE_INFO_ERR CL_HPP_ERR_STR_(clGetDeviceInfo) +#define __GET_PLATFORM_INFO_ERR CL_HPP_ERR_STR_(clGetPlatformInfo) +#define __GET_DEVICE_IDS_ERR CL_HPP_ERR_STR_(clGetDeviceIDs) +#define __GET_PLATFORM_IDS_ERR CL_HPP_ERR_STR_(clGetPlatformIDs) +#define __GET_CONTEXT_INFO_ERR CL_HPP_ERR_STR_(clGetContextInfo) +#define __GET_EVENT_INFO_ERR CL_HPP_ERR_STR_(clGetEventInfo) +#define __GET_EVENT_PROFILE_INFO_ERR CL_HPP_ERR_STR_(clGetEventProfileInfo) +#define __GET_MEM_OBJECT_INFO_ERR CL_HPP_ERR_STR_(clGetMemObjectInfo) +#define __GET_IMAGE_INFO_ERR CL_HPP_ERR_STR_(clGetImageInfo) +#define __GET_SAMPLER_INFO_ERR CL_HPP_ERR_STR_(clGetSamplerInfo) +#define __GET_KERNEL_INFO_ERR CL_HPP_ERR_STR_(clGetKernelInfo) +#if CL_HPP_TARGET_OPENCL_VERSION >= 120 +#define __GET_KERNEL_ARG_INFO_ERR CL_HPP_ERR_STR_(clGetKernelArgInfo) +#endif // CL_HPP_TARGET_OPENCL_VERSION >= 120 +#if CL_HPP_TARGET_OPENCL_VERSION >= 200 +#define __GET_KERNEL_SUB_GROUP_INFO_ERR CL_HPP_ERR_STR_(clGetKernelSubGroupInfo) +#endif // CL_HPP_TARGET_OPENCL_VERSION >= 200 +#define __GET_KERNEL_WORK_GROUP_INFO_ERR CL_HPP_ERR_STR_(clGetKernelWorkGroupInfo) +#define __GET_PROGRAM_INFO_ERR CL_HPP_ERR_STR_(clGetProgramInfo) +#define __GET_PROGRAM_BUILD_INFO_ERR CL_HPP_ERR_STR_(clGetProgramBuildInfo) +#define __GET_COMMAND_QUEUE_INFO_ERR CL_HPP_ERR_STR_(clGetCommandQueueInfo) + +#define __CREATE_CONTEXT_ERR CL_HPP_ERR_STR_(clCreateContext) +#define __CREATE_CONTEXT_FROM_TYPE_ERR CL_HPP_ERR_STR_(clCreateContextFromType) +#define __GET_SUPPORTED_IMAGE_FORMATS_ERR CL_HPP_ERR_STR_(clGetSupportedImageFormats) + +#define __CREATE_BUFFER_ERR CL_HPP_ERR_STR_(clCreateBuffer) +#define __COPY_ERR CL_HPP_ERR_STR_(cl::copy) +#define __CREATE_SUBBUFFER_ERR CL_HPP_ERR_STR_(clCreateSubBuffer) +#define __CREATE_GL_BUFFER_ERR CL_HPP_ERR_STR_(clCreateFromGLBuffer) +#define __CREATE_GL_RENDER_BUFFER_ERR CL_HPP_ERR_STR_(clCreateFromGLBuffer) +#define __GET_GL_OBJECT_INFO_ERR CL_HPP_ERR_STR_(clGetGLObjectInfo) +#if CL_HPP_TARGET_OPENCL_VERSION >= 120 +#define __CREATE_IMAGE_ERR CL_HPP_ERR_STR_(clCreateImage) +#define __CREATE_GL_TEXTURE_ERR CL_HPP_ERR_STR_(clCreateFromGLTexture) +#define __IMAGE_DIMENSION_ERR CL_HPP_ERR_STR_(Incorrect image dimensions) +#endif // CL_HPP_TARGET_OPENCL_VERSION >= 120 +#define __SET_MEM_OBJECT_DESTRUCTOR_CALLBACK_ERR CL_HPP_ERR_STR_(clSetMemObjectDestructorCallback) + +#define __CREATE_USER_EVENT_ERR CL_HPP_ERR_STR_(clCreateUserEvent) +#define __SET_USER_EVENT_STATUS_ERR CL_HPP_ERR_STR_(clSetUserEventStatus) +#define __SET_EVENT_CALLBACK_ERR CL_HPP_ERR_STR_(clSetEventCallback) +#define __WAIT_FOR_EVENTS_ERR CL_HPP_ERR_STR_(clWaitForEvents) + +#define __CREATE_KERNEL_ERR CL_HPP_ERR_STR_(clCreateKernel) +#define __SET_KERNEL_ARGS_ERR CL_HPP_ERR_STR_(clSetKernelArg) +#define __CREATE_PROGRAM_WITH_SOURCE_ERR CL_HPP_ERR_STR_(clCreateProgramWithSource) +#if CL_HPP_TARGET_OPENCL_VERSION >= 200 +#define __CREATE_PROGRAM_WITH_IL_ERR CL_HPP_ERR_STR_(clCreateProgramWithIL) +#endif // #if CL_HPP_TARGET_OPENCL_VERSION >= 200 +#define __CREATE_PROGRAM_WITH_BINARY_ERR CL_HPP_ERR_STR_(clCreateProgramWithBinary) +#if CL_HPP_TARGET_OPENCL_VERSION >= 210 +#define __CREATE_PROGRAM_WITH_IL_ERR CL_HPP_ERR_STR_(clCreateProgramWithIL) +#endif // CL_HPP_TARGET_OPENCL_VERSION >= 210 +#if CL_HPP_TARGET_OPENCL_VERSION >= 120 +#define __CREATE_PROGRAM_WITH_BUILT_IN_KERNELS_ERR CL_HPP_ERR_STR_(clCreateProgramWithBuiltInKernels) +#endif // CL_HPP_TARGET_OPENCL_VERSION >= 120 +#define __BUILD_PROGRAM_ERR CL_HPP_ERR_STR_(clBuildProgram) +#if CL_HPP_TARGET_OPENCL_VERSION >= 120 +#define __COMPILE_PROGRAM_ERR CL_HPP_ERR_STR_(clCompileProgram) +#define __LINK_PROGRAM_ERR CL_HPP_ERR_STR_(clLinkProgram) +#endif // CL_HPP_TARGET_OPENCL_VERSION >= 120 +#define __CREATE_KERNELS_IN_PROGRAM_ERR CL_HPP_ERR_STR_(clCreateKernelsInProgram) + +#if CL_HPP_TARGET_OPENCL_VERSION >= 200 +#define __CREATE_COMMAND_QUEUE_WITH_PROPERTIES_ERR CL_HPP_ERR_STR_(clCreateCommandQueueWithProperties) +#define __CREATE_SAMPLER_WITH_PROPERTIES_ERR CL_HPP_ERR_STR_(clCreateSamplerWithProperties) +#endif // CL_HPP_TARGET_OPENCL_VERSION >= 200 +#define __SET_COMMAND_QUEUE_PROPERTY_ERR CL_HPP_ERR_STR_(clSetCommandQueueProperty) +#define __ENQUEUE_READ_BUFFER_ERR CL_HPP_ERR_STR_(clEnqueueReadBuffer) +#define __ENQUEUE_READ_BUFFER_RECT_ERR CL_HPP_ERR_STR_(clEnqueueReadBufferRect) +#define __ENQUEUE_WRITE_BUFFER_ERR CL_HPP_ERR_STR_(clEnqueueWriteBuffer) +#define __ENQUEUE_WRITE_BUFFER_RECT_ERR CL_HPP_ERR_STR_(clEnqueueWriteBufferRect) +#define __ENQEUE_COPY_BUFFER_ERR CL_HPP_ERR_STR_(clEnqueueCopyBuffer) +#define __ENQEUE_COPY_BUFFER_RECT_ERR CL_HPP_ERR_STR_(clEnqueueCopyBufferRect) +#define __ENQUEUE_FILL_BUFFER_ERR CL_HPP_ERR_STR_(clEnqueueFillBuffer) +#define __ENQUEUE_READ_IMAGE_ERR CL_HPP_ERR_STR_(clEnqueueReadImage) +#define __ENQUEUE_WRITE_IMAGE_ERR CL_HPP_ERR_STR_(clEnqueueWriteImage) +#define __ENQUEUE_COPY_IMAGE_ERR CL_HPP_ERR_STR_(clEnqueueCopyImage) +#define __ENQUEUE_FILL_IMAGE_ERR CL_HPP_ERR_STR_(clEnqueueFillImage) +#define __ENQUEUE_COPY_IMAGE_TO_BUFFER_ERR CL_HPP_ERR_STR_(clEnqueueCopyImageToBuffer) +#define __ENQUEUE_COPY_BUFFER_TO_IMAGE_ERR CL_HPP_ERR_STR_(clEnqueueCopyBufferToImage) +#define __ENQUEUE_MAP_BUFFER_ERR CL_HPP_ERR_STR_(clEnqueueMapBuffer) +#define __ENQUEUE_MAP_IMAGE_ERR CL_HPP_ERR_STR_(clEnqueueMapImage) +#define __ENQUEUE_UNMAP_MEM_OBJECT_ERR CL_HPP_ERR_STR_(clEnqueueUnMapMemObject) +#define __ENQUEUE_NDRANGE_KERNEL_ERR CL_HPP_ERR_STR_(clEnqueueNDRangeKernel) +#define __ENQUEUE_NATIVE_KERNEL CL_HPP_ERR_STR_(clEnqueueNativeKernel) +#if CL_HPP_TARGET_OPENCL_VERSION >= 120 +#define __ENQUEUE_MIGRATE_MEM_OBJECTS_ERR CL_HPP_ERR_STR_(clEnqueueMigrateMemObjects) +#endif // CL_HPP_TARGET_OPENCL_VERSION >= 120 +#if CL_HPP_TARGET_OPENCL_VERSION >= 210 +#define __ENQUEUE_MIGRATE_SVM_ERR CL_HPP_ERR_STR_(clEnqueueSVMMigrateMem) +#define __SET_DEFAULT_DEVICE_COMMAND_QUEUE_ERR CL_HPP_ERR_STR_(clSetDefaultDeviceCommandQueue) +#endif // CL_HPP_TARGET_OPENCL_VERSION >= 210 + + +#define __ENQUEUE_ACQUIRE_GL_ERR CL_HPP_ERR_STR_(clEnqueueAcquireGLObjects) +#define __ENQUEUE_RELEASE_GL_ERR CL_HPP_ERR_STR_(clEnqueueReleaseGLObjects) + +#define __CREATE_PIPE_ERR CL_HPP_ERR_STR_(clCreatePipe) +#define __GET_PIPE_INFO_ERR CL_HPP_ERR_STR_(clGetPipeInfo) + + +#define __RETAIN_ERR CL_HPP_ERR_STR_(Retain Object) +#define __RELEASE_ERR CL_HPP_ERR_STR_(Release Object) +#define __FLUSH_ERR CL_HPP_ERR_STR_(clFlush) +#define __FINISH_ERR CL_HPP_ERR_STR_(clFinish) +#define __VECTOR_CAPACITY_ERR CL_HPP_ERR_STR_(Vector capacity error) + +#if CL_HPP_TARGET_OPENCL_VERSION >= 210 +#define __GET_HOST_TIMER_ERR CL_HPP_ERR_STR_(clGetHostTimer) +#define __GET_DEVICE_AND_HOST_TIMER_ERR CL_HPP_ERR_STR_(clGetDeviceAndHostTimer) +#endif + + +/** + * CL 1.2 version that uses device fission. + */ +#if CL_HPP_TARGET_OPENCL_VERSION >= 120 +#define __CREATE_SUB_DEVICES_ERR CL_HPP_ERR_STR_(clCreateSubDevices) +#else +#define __CREATE_SUB_DEVICES_ERR CL_HPP_ERR_STR_(clCreateSubDevicesEXT) +#endif // CL_HPP_TARGET_OPENCL_VERSION >= 120 + +/** + * Deprecated APIs for 1.2 + */ +#if defined(CL_USE_DEPRECATED_OPENCL_1_1_APIS) +#define __ENQUEUE_MARKER_ERR CL_HPP_ERR_STR_(clEnqueueMarker) +#define __ENQUEUE_WAIT_FOR_EVENTS_ERR CL_HPP_ERR_STR_(clEnqueueWaitForEvents) +#define __ENQUEUE_BARRIER_ERR CL_HPP_ERR_STR_(clEnqueueBarrier) +#define __UNLOAD_COMPILER_ERR CL_HPP_ERR_STR_(clUnloadCompiler) +#define __CREATE_GL_TEXTURE_2D_ERR CL_HPP_ERR_STR_(clCreateFromGLTexture2D) +#define __CREATE_GL_TEXTURE_3D_ERR CL_HPP_ERR_STR_(clCreateFromGLTexture3D) +#define __CREATE_IMAGE2D_ERR CL_HPP_ERR_STR_(clCreateImage2D) +#define __CREATE_IMAGE3D_ERR CL_HPP_ERR_STR_(clCreateImage3D) +#endif // #if defined(CL_USE_DEPRECATED_OPENCL_1_1_APIS) + +/** + * Deprecated APIs for 2.0 + */ +#if defined(CL_USE_DEPRECATED_OPENCL_1_2_APIS) +#define __CREATE_COMMAND_QUEUE_ERR CL_HPP_ERR_STR_(clCreateCommandQueue) +#define __ENQUEUE_TASK_ERR CL_HPP_ERR_STR_(clEnqueueTask) +#define __CREATE_SAMPLER_ERR CL_HPP_ERR_STR_(clCreateSampler) +#endif // #if defined(CL_USE_DEPRECATED_OPENCL_1_1_APIS) + +/** + * CL 1.2 marker and barrier commands + */ +#if CL_HPP_TARGET_OPENCL_VERSION >= 120 +#define __ENQUEUE_MARKER_WAIT_LIST_ERR CL_HPP_ERR_STR_(clEnqueueMarkerWithWaitList) +#define __ENQUEUE_BARRIER_WAIT_LIST_ERR CL_HPP_ERR_STR_(clEnqueueBarrierWithWaitList) +#endif // CL_HPP_TARGET_OPENCL_VERSION >= 120 + +#if CL_HPP_TARGET_OPENCL_VERSION >= 210 +#define __CLONE_KERNEL_ERR CL_HPP_ERR_STR_(clCloneKernel) +#endif // CL_HPP_TARGET_OPENCL_VERSION >= 210 + +#endif // CL_HPP_USER_OVERRIDE_ERROR_STRINGS +//! \endcond + + +namespace detail { + +// Generic getInfoHelper. The final parameter is used to guide overload +// resolution: the actual parameter passed is an int, which makes this +// a worse conversion sequence than a specialization that declares the +// parameter as an int. +template +inline cl_int getInfoHelper(Functor f, cl_uint name, T* param, long) +{ + return f(name, sizeof(T), param, NULL); +} + +// Specialized for getInfo +// Assumes that the output vector was correctly resized on the way in +template +inline cl_int getInfoHelper(Func f, cl_uint name, vector>* param, int) +{ + if (name != CL_PROGRAM_BINARIES) { + return CL_INVALID_VALUE; + } + if (param) { + // Create array of pointers, calculate total size and pass pointer array in + size_type numBinaries = param->size(); + vector binariesPointers(numBinaries); + + for (size_type i = 0; i < numBinaries; ++i) + { + binariesPointers[i] = (*param)[i].data(); + } + + cl_int err = f(name, numBinaries * sizeof(unsigned char*), binariesPointers.data(), NULL); + + if (err != CL_SUCCESS) { + return err; + } + } + + + return CL_SUCCESS; +} + +// Specialized getInfoHelper for vector params +template +inline cl_int getInfoHelper(Func f, cl_uint name, vector* param, long) +{ + size_type required; + cl_int err = f(name, 0, NULL, &required); + if (err != CL_SUCCESS) { + return err; + } + const size_type elements = required / sizeof(T); + + // Temporary to avoid changing param on an error + vector localData(elements); + err = f(name, required, localData.data(), NULL); + if (err != CL_SUCCESS) { + return err; + } + if (param) { + *param = std::move(localData); + } + + return CL_SUCCESS; +} + +/* Specialization for reference-counted types. This depends on the + * existence of Wrapper::cl_type, and none of the other types having the + * cl_type member. Note that simplify specifying the parameter as Wrapper + * does not work, because when using a derived type (e.g. Context) the generic + * template will provide a better match. + */ +template +inline cl_int getInfoHelper( + Func f, cl_uint name, vector* param, int, typename T::cl_type = 0) +{ + size_type required; + cl_int err = f(name, 0, NULL, &required); + if (err != CL_SUCCESS) { + return err; + } + + const size_type elements = required / sizeof(typename T::cl_type); + + vector value(elements); + err = f(name, required, value.data(), NULL); + if (err != CL_SUCCESS) { + return err; + } + + if (param) { + // Assign to convert CL type to T for each element + param->resize(elements); + + // Assign to param, constructing with retain behaviour + // to correctly capture each underlying CL object + for (size_type i = 0; i < elements; i++) { + (*param)[i] = T(value[i], true); + } + } + return CL_SUCCESS; +} + +// Specialized GetInfoHelper for string params +template +inline cl_int getInfoHelper(Func f, cl_uint name, string* param, long) +{ + size_type required; + cl_int err = f(name, 0, NULL, &required); + if (err != CL_SUCCESS) { + return err; + } + + // std::string has a constant data member + // a char vector does not + if (required > 0) { + vector value(required); + err = f(name, required, value.data(), NULL); + if (err != CL_SUCCESS) { + return err; + } + if (param) { + param->assign(begin(value), prev(end(value))); + } + } + else if (param) { + param->assign(""); + } + return CL_SUCCESS; +} + +// Specialized GetInfoHelper for clsize_t params +template +inline cl_int getInfoHelper(Func f, cl_uint name, array* param, long) +{ + size_type required; + cl_int err = f(name, 0, NULL, &required); + if (err != CL_SUCCESS) { + return err; + } + + size_type elements = required / sizeof(size_type); + vector value(elements, 0); + + err = f(name, required, value.data(), NULL); + if (err != CL_SUCCESS) { + return err; + } + + // Bound the copy with N to prevent overruns + // if passed N > than the amount copied + if (elements > N) { + elements = N; + } + for (size_type i = 0; i < elements; ++i) { + (*param)[i] = value[i]; + } + + return CL_SUCCESS; +} + +template struct ReferenceHandler; + +/* Specialization for reference-counted types. This depends on the + * existence of Wrapper::cl_type, and none of the other types having the + * cl_type member. Note that simplify specifying the parameter as Wrapper + * does not work, because when using a derived type (e.g. Context) the generic + * template will provide a better match. + */ +template +inline cl_int getInfoHelper(Func f, cl_uint name, T* param, int, typename T::cl_type = 0) +{ + typename T::cl_type value; + cl_int err = f(name, sizeof(value), &value, NULL); + if (err != CL_SUCCESS) { + return err; + } + *param = value; + if (value != NULL) + { + err = param->retain(); + if (err != CL_SUCCESS) { + return err; + } + } + return CL_SUCCESS; +} + +#define CL_HPP_PARAM_NAME_INFO_1_0_(F) \ + F(cl_platform_info, CL_PLATFORM_PROFILE, string) \ + F(cl_platform_info, CL_PLATFORM_VERSION, string) \ + F(cl_platform_info, CL_PLATFORM_NAME, string) \ + F(cl_platform_info, CL_PLATFORM_VENDOR, string) \ + F(cl_platform_info, CL_PLATFORM_EXTENSIONS, string) \ + \ + F(cl_device_info, CL_DEVICE_TYPE, cl_device_type) \ + F(cl_device_info, CL_DEVICE_VENDOR_ID, cl_uint) \ + F(cl_device_info, CL_DEVICE_MAX_COMPUTE_UNITS, cl_uint) \ + F(cl_device_info, CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS, cl_uint) \ + F(cl_device_info, CL_DEVICE_MAX_WORK_GROUP_SIZE, size_type) \ + F(cl_device_info, CL_DEVICE_MAX_WORK_ITEM_SIZES, cl::vector) \ + F(cl_device_info, CL_DEVICE_PREFERRED_VECTOR_WIDTH_CHAR, cl_uint) \ + F(cl_device_info, CL_DEVICE_PREFERRED_VECTOR_WIDTH_SHORT, cl_uint) \ + F(cl_device_info, CL_DEVICE_PREFERRED_VECTOR_WIDTH_INT, cl_uint) \ + F(cl_device_info, CL_DEVICE_PREFERRED_VECTOR_WIDTH_LONG, cl_uint) \ + F(cl_device_info, CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT, cl_uint) \ + F(cl_device_info, CL_DEVICE_PREFERRED_VECTOR_WIDTH_DOUBLE, cl_uint) \ + F(cl_device_info, CL_DEVICE_MAX_CLOCK_FREQUENCY, cl_uint) \ + F(cl_device_info, CL_DEVICE_ADDRESS_BITS, cl_uint) \ + F(cl_device_info, CL_DEVICE_MAX_READ_IMAGE_ARGS, cl_uint) \ + F(cl_device_info, CL_DEVICE_MAX_WRITE_IMAGE_ARGS, cl_uint) \ + F(cl_device_info, CL_DEVICE_MAX_MEM_ALLOC_SIZE, cl_ulong) \ + F(cl_device_info, CL_DEVICE_IMAGE2D_MAX_WIDTH, size_type) \ + F(cl_device_info, CL_DEVICE_IMAGE2D_MAX_HEIGHT, size_type) \ + F(cl_device_info, CL_DEVICE_IMAGE3D_MAX_WIDTH, size_type) \ + F(cl_device_info, CL_DEVICE_IMAGE3D_MAX_HEIGHT, size_type) \ + F(cl_device_info, CL_DEVICE_IMAGE3D_MAX_DEPTH, size_type) \ + F(cl_device_info, CL_DEVICE_IMAGE_SUPPORT, cl_bool) \ + F(cl_device_info, CL_DEVICE_MAX_PARAMETER_SIZE, size_type) \ + F(cl_device_info, CL_DEVICE_MAX_SAMPLERS, cl_uint) \ + F(cl_device_info, CL_DEVICE_MEM_BASE_ADDR_ALIGN, cl_uint) \ + F(cl_device_info, CL_DEVICE_MIN_DATA_TYPE_ALIGN_SIZE, cl_uint) \ + F(cl_device_info, CL_DEVICE_SINGLE_FP_CONFIG, cl_device_fp_config) \ + F(cl_device_info, CL_DEVICE_DOUBLE_FP_CONFIG, cl_device_fp_config) \ + F(cl_device_info, CL_DEVICE_HALF_FP_CONFIG, cl_device_fp_config) \ + F(cl_device_info, CL_DEVICE_GLOBAL_MEM_CACHE_TYPE, cl_device_mem_cache_type) \ + F(cl_device_info, CL_DEVICE_GLOBAL_MEM_CACHELINE_SIZE, cl_uint)\ + F(cl_device_info, CL_DEVICE_GLOBAL_MEM_CACHE_SIZE, cl_ulong) \ + F(cl_device_info, CL_DEVICE_GLOBAL_MEM_SIZE, cl_ulong) \ + F(cl_device_info, CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE, cl_ulong) \ + F(cl_device_info, CL_DEVICE_MAX_CONSTANT_ARGS, cl_uint) \ + F(cl_device_info, CL_DEVICE_LOCAL_MEM_TYPE, cl_device_local_mem_type) \ + F(cl_device_info, CL_DEVICE_LOCAL_MEM_SIZE, cl_ulong) \ + F(cl_device_info, CL_DEVICE_ERROR_CORRECTION_SUPPORT, cl_bool) \ + F(cl_device_info, CL_DEVICE_PROFILING_TIMER_RESOLUTION, size_type) \ + F(cl_device_info, CL_DEVICE_ENDIAN_LITTLE, cl_bool) \ + F(cl_device_info, CL_DEVICE_AVAILABLE, cl_bool) \ + F(cl_device_info, CL_DEVICE_COMPILER_AVAILABLE, cl_bool) \ + F(cl_device_info, CL_DEVICE_EXECUTION_CAPABILITIES, cl_device_exec_capabilities) \ + F(cl_device_info, CL_DEVICE_PLATFORM, cl_platform_id) \ + F(cl_device_info, CL_DEVICE_NAME, string) \ + F(cl_device_info, CL_DEVICE_VENDOR, string) \ + F(cl_device_info, CL_DRIVER_VERSION, string) \ + F(cl_device_info, CL_DEVICE_PROFILE, string) \ + F(cl_device_info, CL_DEVICE_VERSION, string) \ + F(cl_device_info, CL_DEVICE_EXTENSIONS, string) \ + \ + F(cl_context_info, CL_CONTEXT_REFERENCE_COUNT, cl_uint) \ + F(cl_context_info, CL_CONTEXT_DEVICES, cl::vector) \ + F(cl_context_info, CL_CONTEXT_PROPERTIES, cl::vector) \ + \ + F(cl_event_info, CL_EVENT_COMMAND_QUEUE, cl::CommandQueue) \ + F(cl_event_info, CL_EVENT_COMMAND_TYPE, cl_command_type) \ + F(cl_event_info, CL_EVENT_REFERENCE_COUNT, cl_uint) \ + F(cl_event_info, CL_EVENT_COMMAND_EXECUTION_STATUS, cl_int) \ + \ + F(cl_profiling_info, CL_PROFILING_COMMAND_QUEUED, cl_ulong) \ + F(cl_profiling_info, CL_PROFILING_COMMAND_SUBMIT, cl_ulong) \ + F(cl_profiling_info, CL_PROFILING_COMMAND_START, cl_ulong) \ + F(cl_profiling_info, CL_PROFILING_COMMAND_END, cl_ulong) \ + \ + F(cl_mem_info, CL_MEM_TYPE, cl_mem_object_type) \ + F(cl_mem_info, CL_MEM_FLAGS, cl_mem_flags) \ + F(cl_mem_info, CL_MEM_SIZE, size_type) \ + F(cl_mem_info, CL_MEM_HOST_PTR, void*) \ + F(cl_mem_info, CL_MEM_MAP_COUNT, cl_uint) \ + F(cl_mem_info, CL_MEM_REFERENCE_COUNT, cl_uint) \ + F(cl_mem_info, CL_MEM_CONTEXT, cl::Context) \ + \ + F(cl_image_info, CL_IMAGE_FORMAT, cl_image_format) \ + F(cl_image_info, CL_IMAGE_ELEMENT_SIZE, size_type) \ + F(cl_image_info, CL_IMAGE_ROW_PITCH, size_type) \ + F(cl_image_info, CL_IMAGE_SLICE_PITCH, size_type) \ + F(cl_image_info, CL_IMAGE_WIDTH, size_type) \ + F(cl_image_info, CL_IMAGE_HEIGHT, size_type) \ + F(cl_image_info, CL_IMAGE_DEPTH, size_type) \ + \ + F(cl_sampler_info, CL_SAMPLER_REFERENCE_COUNT, cl_uint) \ + F(cl_sampler_info, CL_SAMPLER_CONTEXT, cl::Context) \ + F(cl_sampler_info, CL_SAMPLER_NORMALIZED_COORDS, cl_bool) \ + F(cl_sampler_info, CL_SAMPLER_ADDRESSING_MODE, cl_addressing_mode) \ + F(cl_sampler_info, CL_SAMPLER_FILTER_MODE, cl_filter_mode) \ + \ + F(cl_program_info, CL_PROGRAM_REFERENCE_COUNT, cl_uint) \ + F(cl_program_info, CL_PROGRAM_CONTEXT, cl::Context) \ + F(cl_program_info, CL_PROGRAM_NUM_DEVICES, cl_uint) \ + F(cl_program_info, CL_PROGRAM_DEVICES, cl::vector) \ + F(cl_program_info, CL_PROGRAM_SOURCE, string) \ + F(cl_program_info, CL_PROGRAM_BINARY_SIZES, cl::vector) \ + F(cl_program_info, CL_PROGRAM_BINARIES, cl::vector>) \ + \ + F(cl_program_build_info, CL_PROGRAM_BUILD_STATUS, cl_build_status) \ + F(cl_program_build_info, CL_PROGRAM_BUILD_OPTIONS, string) \ + F(cl_program_build_info, CL_PROGRAM_BUILD_LOG, string) \ + \ + F(cl_kernel_info, CL_KERNEL_FUNCTION_NAME, string) \ + F(cl_kernel_info, CL_KERNEL_NUM_ARGS, cl_uint) \ + F(cl_kernel_info, CL_KERNEL_REFERENCE_COUNT, cl_uint) \ + F(cl_kernel_info, CL_KERNEL_CONTEXT, cl::Context) \ + F(cl_kernel_info, CL_KERNEL_PROGRAM, cl::Program) \ + \ + F(cl_kernel_work_group_info, CL_KERNEL_WORK_GROUP_SIZE, size_type) \ + F(cl_kernel_work_group_info, CL_KERNEL_COMPILE_WORK_GROUP_SIZE, cl::detail::size_t_array) \ + F(cl_kernel_work_group_info, CL_KERNEL_LOCAL_MEM_SIZE, cl_ulong) \ + \ + F(cl_command_queue_info, CL_QUEUE_CONTEXT, cl::Context) \ + F(cl_command_queue_info, CL_QUEUE_DEVICE, cl::Device) \ + F(cl_command_queue_info, CL_QUEUE_REFERENCE_COUNT, cl_uint) \ + F(cl_command_queue_info, CL_QUEUE_PROPERTIES, cl_command_queue_properties) + + +#define CL_HPP_PARAM_NAME_INFO_1_1_(F) \ + F(cl_context_info, CL_CONTEXT_NUM_DEVICES, cl_uint)\ + F(cl_device_info, CL_DEVICE_PREFERRED_VECTOR_WIDTH_HALF, cl_uint) \ + F(cl_device_info, CL_DEVICE_NATIVE_VECTOR_WIDTH_CHAR, cl_uint) \ + F(cl_device_info, CL_DEVICE_NATIVE_VECTOR_WIDTH_SHORT, cl_uint) \ + F(cl_device_info, CL_DEVICE_NATIVE_VECTOR_WIDTH_INT, cl_uint) \ + F(cl_device_info, CL_DEVICE_NATIVE_VECTOR_WIDTH_LONG, cl_uint) \ + F(cl_device_info, CL_DEVICE_NATIVE_VECTOR_WIDTH_FLOAT, cl_uint) \ + F(cl_device_info, CL_DEVICE_NATIVE_VECTOR_WIDTH_DOUBLE, cl_uint) \ + F(cl_device_info, CL_DEVICE_NATIVE_VECTOR_WIDTH_HALF, cl_uint) \ + F(cl_device_info, CL_DEVICE_OPENCL_C_VERSION, string) \ + \ + F(cl_mem_info, CL_MEM_ASSOCIATED_MEMOBJECT, cl::Memory) \ + F(cl_mem_info, CL_MEM_OFFSET, size_type) \ + \ + F(cl_kernel_work_group_info, CL_KERNEL_PREFERRED_WORK_GROUP_SIZE_MULTIPLE, size_type) \ + F(cl_kernel_work_group_info, CL_KERNEL_PRIVATE_MEM_SIZE, cl_ulong) \ + \ + F(cl_event_info, CL_EVENT_CONTEXT, cl::Context) + +#define CL_HPP_PARAM_NAME_INFO_1_2_(F) \ + F(cl_program_info, CL_PROGRAM_NUM_KERNELS, size_type) \ + F(cl_program_info, CL_PROGRAM_KERNEL_NAMES, string) \ + \ + F(cl_program_build_info, CL_PROGRAM_BINARY_TYPE, cl_program_binary_type) \ + \ + F(cl_kernel_info, CL_KERNEL_ATTRIBUTES, string) \ + \ + F(cl_kernel_arg_info, CL_KERNEL_ARG_ADDRESS_QUALIFIER, cl_kernel_arg_address_qualifier) \ + F(cl_kernel_arg_info, CL_KERNEL_ARG_ACCESS_QUALIFIER, cl_kernel_arg_access_qualifier) \ + F(cl_kernel_arg_info, CL_KERNEL_ARG_TYPE_NAME, string) \ + F(cl_kernel_arg_info, CL_KERNEL_ARG_NAME, string) \ + F(cl_kernel_arg_info, CL_KERNEL_ARG_TYPE_QUALIFIER, cl_kernel_arg_type_qualifier) \ + \ + F(cl_device_info, CL_DEVICE_PARENT_DEVICE, cl::Device) \ + F(cl_device_info, CL_DEVICE_PARTITION_PROPERTIES, cl::vector) \ + F(cl_device_info, CL_DEVICE_PARTITION_TYPE, cl::vector) \ + F(cl_device_info, CL_DEVICE_REFERENCE_COUNT, cl_uint) \ + F(cl_device_info, CL_DEVICE_PREFERRED_INTEROP_USER_SYNC, size_type) \ + F(cl_device_info, CL_DEVICE_PARTITION_AFFINITY_DOMAIN, cl_device_affinity_domain) \ + F(cl_device_info, CL_DEVICE_BUILT_IN_KERNELS, string) \ + \ + F(cl_image_info, CL_IMAGE_ARRAY_SIZE, size_type) \ + F(cl_image_info, CL_IMAGE_NUM_MIP_LEVELS, cl_uint) \ + F(cl_image_info, CL_IMAGE_NUM_SAMPLES, cl_uint) + +#define CL_HPP_PARAM_NAME_INFO_2_0_(F) \ + F(cl_device_info, CL_DEVICE_QUEUE_ON_HOST_PROPERTIES, cl_command_queue_properties) \ + F(cl_device_info, CL_DEVICE_QUEUE_ON_DEVICE_PROPERTIES, cl_command_queue_properties) \ + F(cl_device_info, CL_DEVICE_QUEUE_ON_DEVICE_PREFERRED_SIZE, cl_uint) \ + F(cl_device_info, CL_DEVICE_QUEUE_ON_DEVICE_MAX_SIZE, cl_uint) \ + F(cl_device_info, CL_DEVICE_MAX_ON_DEVICE_QUEUES, cl_uint) \ + F(cl_device_info, CL_DEVICE_MAX_ON_DEVICE_EVENTS, cl_uint) \ + F(cl_device_info, CL_DEVICE_MAX_PIPE_ARGS, cl_uint) \ + F(cl_device_info, CL_DEVICE_PIPE_MAX_ACTIVE_RESERVATIONS, cl_uint) \ + F(cl_device_info, CL_DEVICE_PIPE_MAX_PACKET_SIZE, cl_uint) \ + F(cl_device_info, CL_DEVICE_SVM_CAPABILITIES, cl_device_svm_capabilities) \ + F(cl_device_info, CL_DEVICE_PREFERRED_PLATFORM_ATOMIC_ALIGNMENT, cl_uint) \ + F(cl_device_info, CL_DEVICE_PREFERRED_GLOBAL_ATOMIC_ALIGNMENT, cl_uint) \ + F(cl_device_info, CL_DEVICE_PREFERRED_LOCAL_ATOMIC_ALIGNMENT, cl_uint) \ + F(cl_command_queue_info, CL_QUEUE_SIZE, cl_uint) \ + F(cl_mem_info, CL_MEM_USES_SVM_POINTER, cl_bool) \ + F(cl_program_build_info, CL_PROGRAM_BUILD_GLOBAL_VARIABLE_TOTAL_SIZE, size_type) \ + F(cl_pipe_info, CL_PIPE_PACKET_SIZE, cl_uint) \ + F(cl_pipe_info, CL_PIPE_MAX_PACKETS, cl_uint) + +#define CL_HPP_PARAM_NAME_INFO_SUBGROUP_KHR_(F) \ + F(cl_kernel_sub_group_info, CL_KERNEL_MAX_SUB_GROUP_SIZE_FOR_NDRANGE_KHR, size_type) \ + F(cl_kernel_sub_group_info, CL_KERNEL_SUB_GROUP_COUNT_FOR_NDRANGE_KHR, size_type) + +#define CL_HPP_PARAM_NAME_INFO_IL_KHR_(F) \ + F(cl_device_info, CL_DEVICE_IL_VERSION_KHR, string) \ + F(cl_program_info, CL_PROGRAM_IL_KHR, cl::vector) + +#define CL_HPP_PARAM_NAME_INFO_2_1_(F) \ + F(cl_platform_info, CL_PLATFORM_HOST_TIMER_RESOLUTION, size_type) \ + F(cl_program_info, CL_PROGRAM_IL, cl::vector) \ + F(cl_kernel_info, CL_KERNEL_MAX_NUM_SUB_GROUPS, size_type) \ + F(cl_kernel_info, CL_KERNEL_COMPILE_NUM_SUB_GROUPS, size_type) \ + F(cl_device_info, CL_DEVICE_MAX_NUM_SUB_GROUPS, cl_uint) \ + F(cl_device_info, CL_DEVICE_IL_VERSION, string) \ + F(cl_device_info, CL_DEVICE_SUB_GROUP_INDEPENDENT_FORWARD_PROGRESS, cl_bool) \ + F(cl_command_queue_info, CL_QUEUE_DEVICE_DEFAULT, cl::DeviceCommandQueue) \ + F(cl_kernel_sub_group_info, CL_KERNEL_MAX_SUB_GROUP_SIZE_FOR_NDRANGE, size_type) \ + F(cl_kernel_sub_group_info, CL_KERNEL_SUB_GROUP_COUNT_FOR_NDRANGE, size_type) \ + F(cl_kernel_sub_group_info, CL_KERNEL_LOCAL_SIZE_FOR_SUB_GROUP_COUNT, cl::detail::size_t_array) + +#define CL_HPP_PARAM_NAME_DEVICE_FISSION_(F) \ + F(cl_device_info, CL_DEVICE_PARENT_DEVICE_EXT, cl_device_id) \ + F(cl_device_info, CL_DEVICE_PARTITION_TYPES_EXT, cl::vector) \ + F(cl_device_info, CL_DEVICE_AFFINITY_DOMAINS_EXT, cl::vector) \ + F(cl_device_info, CL_DEVICE_REFERENCE_COUNT_EXT , cl_uint) \ + F(cl_device_info, CL_DEVICE_PARTITION_STYLE_EXT, cl::vector) + +template +struct param_traits {}; + +#define CL_HPP_DECLARE_PARAM_TRAITS_(token, param_name, T) \ +struct token; \ +template<> \ +struct param_traits \ +{ \ + enum { value = param_name }; \ + typedef T param_type; \ +}; + +CL_HPP_PARAM_NAME_INFO_1_0_(CL_HPP_DECLARE_PARAM_TRAITS_) +#if CL_HPP_TARGET_OPENCL_VERSION >= 110 +CL_HPP_PARAM_NAME_INFO_1_1_(CL_HPP_DECLARE_PARAM_TRAITS_) +#endif // CL_HPP_TARGET_OPENCL_VERSION >= 110 +#if CL_HPP_TARGET_OPENCL_VERSION >= 120 +CL_HPP_PARAM_NAME_INFO_1_2_(CL_HPP_DECLARE_PARAM_TRAITS_) +#endif // CL_HPP_TARGET_OPENCL_VERSION >= 120 +#if CL_HPP_TARGET_OPENCL_VERSION >= 200 +CL_HPP_PARAM_NAME_INFO_2_0_(CL_HPP_DECLARE_PARAM_TRAITS_) +#endif // CL_HPP_TARGET_OPENCL_VERSION >= 200 +#if CL_HPP_TARGET_OPENCL_VERSION >= 210 +CL_HPP_PARAM_NAME_INFO_2_1_(CL_HPP_DECLARE_PARAM_TRAITS_) +#endif // CL_HPP_TARGET_OPENCL_VERSION >= 210 + +#if defined(CL_HPP_USE_CL_SUB_GROUPS_KHR) && CL_HPP_TARGET_OPENCL_VERSION < 210 +CL_HPP_PARAM_NAME_INFO_SUBGROUP_KHR_(CL_HPP_DECLARE_PARAM_TRAITS_) +#endif // #if defined(CL_HPP_USE_CL_SUB_GROUPS_KHR) && CL_HPP_TARGET_OPENCL_VERSION < 210 + +#if defined(CL_HPP_USE_IL_KHR) +CL_HPP_PARAM_NAME_INFO_IL_KHR_(CL_HPP_DECLARE_PARAM_TRAITS_) +#endif // #if defined(CL_HPP_USE_IL_KHR) + + +// Flags deprecated in OpenCL 2.0 +#define CL_HPP_PARAM_NAME_INFO_1_0_DEPRECATED_IN_2_0_(F) \ + F(cl_device_info, CL_DEVICE_QUEUE_PROPERTIES, cl_command_queue_properties) + +#define CL_HPP_PARAM_NAME_INFO_1_1_DEPRECATED_IN_2_0_(F) \ + F(cl_device_info, CL_DEVICE_HOST_UNIFIED_MEMORY, cl_bool) + +#define CL_HPP_PARAM_NAME_INFO_1_2_DEPRECATED_IN_2_0_(F) \ + F(cl_image_info, CL_IMAGE_BUFFER, cl::Buffer) + +// Include deprecated query flags based on versions +// Only include deprecated 1.0 flags if 2.0 not active as there is an enum clash +#if CL_HPP_TARGET_OPENCL_VERSION > 100 && CL_HPP_MINIMUM_OPENCL_VERSION < 200 && CL_HPP_TARGET_OPENCL_VERSION < 200 +CL_HPP_PARAM_NAME_INFO_1_0_DEPRECATED_IN_2_0_(CL_HPP_DECLARE_PARAM_TRAITS_) +#endif // CL_HPP_MINIMUM_OPENCL_VERSION < 110 +#if CL_HPP_TARGET_OPENCL_VERSION > 110 && CL_HPP_MINIMUM_OPENCL_VERSION < 200 +CL_HPP_PARAM_NAME_INFO_1_1_DEPRECATED_IN_2_0_(CL_HPP_DECLARE_PARAM_TRAITS_) +#endif // CL_HPP_MINIMUM_OPENCL_VERSION < 120 +#if CL_HPP_TARGET_OPENCL_VERSION > 120 && CL_HPP_MINIMUM_OPENCL_VERSION < 200 +CL_HPP_PARAM_NAME_INFO_1_2_DEPRECATED_IN_2_0_(CL_HPP_DECLARE_PARAM_TRAITS_) +#endif // CL_HPP_MINIMUM_OPENCL_VERSION < 200 + +#if defined(CL_HPP_USE_CL_DEVICE_FISSION) +CL_HPP_PARAM_NAME_DEVICE_FISSION_(CL_HPP_DECLARE_PARAM_TRAITS_); +#endif // CL_HPP_USE_CL_DEVICE_FISSION + +#ifdef CL_PLATFORM_ICD_SUFFIX_KHR +CL_HPP_DECLARE_PARAM_TRAITS_(cl_platform_info, CL_PLATFORM_ICD_SUFFIX_KHR, string) +#endif + +#ifdef CL_DEVICE_PROFILING_TIMER_OFFSET_AMD +CL_HPP_DECLARE_PARAM_TRAITS_(cl_device_info, CL_DEVICE_PROFILING_TIMER_OFFSET_AMD, cl_ulong) +#endif + +#ifdef CL_DEVICE_GLOBAL_FREE_MEMORY_AMD +CL_HPP_DECLARE_PARAM_TRAITS_(cl_device_info, CL_DEVICE_GLOBAL_FREE_MEMORY_AMD, vector) +#endif +#ifdef CL_DEVICE_SIMD_PER_COMPUTE_UNIT_AMD +CL_HPP_DECLARE_PARAM_TRAITS_(cl_device_info, CL_DEVICE_SIMD_PER_COMPUTE_UNIT_AMD, cl_uint) +#endif +#ifdef CL_DEVICE_SIMD_WIDTH_AMD +CL_HPP_DECLARE_PARAM_TRAITS_(cl_device_info, CL_DEVICE_SIMD_WIDTH_AMD, cl_uint) +#endif +#ifdef CL_DEVICE_SIMD_INSTRUCTION_WIDTH_AMD +CL_HPP_DECLARE_PARAM_TRAITS_(cl_device_info, CL_DEVICE_SIMD_INSTRUCTION_WIDTH_AMD, cl_uint) +#endif +#ifdef CL_DEVICE_WAVEFRONT_WIDTH_AMD +CL_HPP_DECLARE_PARAM_TRAITS_(cl_device_info, CL_DEVICE_WAVEFRONT_WIDTH_AMD, cl_uint) +#endif +#ifdef CL_DEVICE_GLOBAL_MEM_CHANNELS_AMD +CL_HPP_DECLARE_PARAM_TRAITS_(cl_device_info, CL_DEVICE_GLOBAL_MEM_CHANNELS_AMD, cl_uint) +#endif +#ifdef CL_DEVICE_GLOBAL_MEM_CHANNEL_BANKS_AMD +CL_HPP_DECLARE_PARAM_TRAITS_(cl_device_info, CL_DEVICE_GLOBAL_MEM_CHANNEL_BANKS_AMD, cl_uint) +#endif +#ifdef CL_DEVICE_GLOBAL_MEM_CHANNEL_BANK_WIDTH_AMD +CL_HPP_DECLARE_PARAM_TRAITS_(cl_device_info, CL_DEVICE_GLOBAL_MEM_CHANNEL_BANK_WIDTH_AMD, cl_uint) +#endif +#ifdef CL_DEVICE_LOCAL_MEM_SIZE_PER_COMPUTE_UNIT_AMD +CL_HPP_DECLARE_PARAM_TRAITS_(cl_device_info, CL_DEVICE_LOCAL_MEM_SIZE_PER_COMPUTE_UNIT_AMD, cl_uint) +#endif +#ifdef CL_DEVICE_LOCAL_MEM_BANKS_AMD +CL_HPP_DECLARE_PARAM_TRAITS_(cl_device_info, CL_DEVICE_LOCAL_MEM_BANKS_AMD, cl_uint) +#endif + +#ifdef CL_DEVICE_COMPUTE_CAPABILITY_MAJOR_NV +CL_HPP_DECLARE_PARAM_TRAITS_(cl_device_info, CL_DEVICE_COMPUTE_CAPABILITY_MAJOR_NV, cl_uint) +#endif +#ifdef CL_DEVICE_COMPUTE_CAPABILITY_MINOR_NV +CL_HPP_DECLARE_PARAM_TRAITS_(cl_device_info, CL_DEVICE_COMPUTE_CAPABILITY_MINOR_NV, cl_uint) +#endif +#ifdef CL_DEVICE_REGISTERS_PER_BLOCK_NV +CL_HPP_DECLARE_PARAM_TRAITS_(cl_device_info, CL_DEVICE_REGISTERS_PER_BLOCK_NV, cl_uint) +#endif +#ifdef CL_DEVICE_WARP_SIZE_NV +CL_HPP_DECLARE_PARAM_TRAITS_(cl_device_info, CL_DEVICE_WARP_SIZE_NV, cl_uint) +#endif +#ifdef CL_DEVICE_GPU_OVERLAP_NV +CL_HPP_DECLARE_PARAM_TRAITS_(cl_device_info, CL_DEVICE_GPU_OVERLAP_NV, cl_bool) +#endif +#ifdef CL_DEVICE_KERNEL_EXEC_TIMEOUT_NV +CL_HPP_DECLARE_PARAM_TRAITS_(cl_device_info, CL_DEVICE_KERNEL_EXEC_TIMEOUT_NV, cl_bool) +#endif +#ifdef CL_DEVICE_INTEGRATED_MEMORY_NV +CL_HPP_DECLARE_PARAM_TRAITS_(cl_device_info, CL_DEVICE_INTEGRATED_MEMORY_NV, cl_bool) +#endif + +// Convenience functions + +template +inline cl_int +getInfo(Func f, cl_uint name, T* param) +{ + return getInfoHelper(f, name, param, 0); +} + +template +struct GetInfoFunctor0 +{ + Func f_; const Arg0& arg0_; + cl_int operator ()( + cl_uint param, size_type size, void* value, size_type* size_ret) + { return f_(arg0_, param, size, value, size_ret); } +}; + +template +struct GetInfoFunctor1 +{ + Func f_; const Arg0& arg0_; const Arg1& arg1_; + cl_int operator ()( + cl_uint param, size_type size, void* value, size_type* size_ret) + { return f_(arg0_, arg1_, param, size, value, size_ret); } +}; + +template +inline cl_int +getInfo(Func f, const Arg0& arg0, cl_uint name, T* param) +{ + GetInfoFunctor0 f0 = { f, arg0 }; + return getInfoHelper(f0, name, param, 0); +} + +template +inline cl_int +getInfo(Func f, const Arg0& arg0, const Arg1& arg1, cl_uint name, T* param) +{ + GetInfoFunctor1 f0 = { f, arg0, arg1 }; + return getInfoHelper(f0, name, param, 0); +} + + +template +struct ReferenceHandler +{ }; + +#if CL_HPP_TARGET_OPENCL_VERSION >= 120 +/** + * OpenCL 1.2 devices do have retain/release. + */ +template <> +struct ReferenceHandler +{ + /** + * Retain the device. + * \param device A valid device created using createSubDevices + * \return + * CL_SUCCESS if the function executed successfully. + * CL_INVALID_DEVICE if device was not a valid subdevice + * CL_OUT_OF_RESOURCES + * CL_OUT_OF_HOST_MEMORY + */ + static cl_int retain(cl_device_id device) + { return ::clRetainDevice(device); } + /** + * Retain the device. + * \param device A valid device created using createSubDevices + * \return + * CL_SUCCESS if the function executed successfully. + * CL_INVALID_DEVICE if device was not a valid subdevice + * CL_OUT_OF_RESOURCES + * CL_OUT_OF_HOST_MEMORY + */ + static cl_int release(cl_device_id device) + { return ::clReleaseDevice(device); } +}; +#else // CL_HPP_TARGET_OPENCL_VERSION >= 120 +/** + * OpenCL 1.1 devices do not have retain/release. + */ +template <> +struct ReferenceHandler +{ + // cl_device_id does not have retain(). + static cl_int retain(cl_device_id) + { return CL_SUCCESS; } + // cl_device_id does not have release(). + static cl_int release(cl_device_id) + { return CL_SUCCESS; } +}; +#endif // ! (CL_HPP_TARGET_OPENCL_VERSION >= 120) + +template <> +struct ReferenceHandler +{ + // cl_platform_id does not have retain(). + static cl_int retain(cl_platform_id) + { return CL_SUCCESS; } + // cl_platform_id does not have release(). + static cl_int release(cl_platform_id) + { return CL_SUCCESS; } +}; + +template <> +struct ReferenceHandler +{ + static cl_int retain(cl_context context) + { return ::clRetainContext(context); } + static cl_int release(cl_context context) + { return ::clReleaseContext(context); } +}; + +template <> +struct ReferenceHandler +{ + static cl_int retain(cl_command_queue queue) + { return ::clRetainCommandQueue(queue); } + static cl_int release(cl_command_queue queue) + { return ::clReleaseCommandQueue(queue); } +}; + +template <> +struct ReferenceHandler +{ + static cl_int retain(cl_mem memory) + { return ::clRetainMemObject(memory); } + static cl_int release(cl_mem memory) + { return ::clReleaseMemObject(memory); } +}; + +template <> +struct ReferenceHandler +{ + static cl_int retain(cl_sampler sampler) + { return ::clRetainSampler(sampler); } + static cl_int release(cl_sampler sampler) + { return ::clReleaseSampler(sampler); } +}; + +template <> +struct ReferenceHandler +{ + static cl_int retain(cl_program program) + { return ::clRetainProgram(program); } + static cl_int release(cl_program program) + { return ::clReleaseProgram(program); } +}; + +template <> +struct ReferenceHandler +{ + static cl_int retain(cl_kernel kernel) + { return ::clRetainKernel(kernel); } + static cl_int release(cl_kernel kernel) + { return ::clReleaseKernel(kernel); } +}; + +template <> +struct ReferenceHandler +{ + static cl_int retain(cl_event event) + { return ::clRetainEvent(event); } + static cl_int release(cl_event event) + { return ::clReleaseEvent(event); } +}; + + +#if CL_HPP_TARGET_OPENCL_VERSION >= 120 && CL_HPP_MINIMUM_OPENCL_VERSION < 120 +// Extracts version number with major in the upper 16 bits, minor in the lower 16 +static cl_uint getVersion(const vector &versionInfo) +{ + int highVersion = 0; + int lowVersion = 0; + int index = 7; + while(versionInfo[index] != '.' ) { + highVersion *= 10; + highVersion += versionInfo[index]-'0'; + ++index; + } + ++index; + while(versionInfo[index] != ' ' && versionInfo[index] != '\0') { + lowVersion *= 10; + lowVersion += versionInfo[index]-'0'; + ++index; + } + return (highVersion << 16) | lowVersion; +} + +static cl_uint getPlatformVersion(cl_platform_id platform) +{ + size_type size = 0; + clGetPlatformInfo(platform, CL_PLATFORM_VERSION, 0, NULL, &size); + + vector versionInfo(size); + clGetPlatformInfo(platform, CL_PLATFORM_VERSION, size, versionInfo.data(), &size); + return getVersion(versionInfo); +} + +static cl_uint getDevicePlatformVersion(cl_device_id device) +{ + cl_platform_id platform; + clGetDeviceInfo(device, CL_DEVICE_PLATFORM, sizeof(platform), &platform, NULL); + return getPlatformVersion(platform); +} + +static cl_uint getContextPlatformVersion(cl_context context) +{ + // The platform cannot be queried directly, so we first have to grab a + // device and obtain its context + size_type size = 0; + clGetContextInfo(context, CL_CONTEXT_DEVICES, 0, NULL, &size); + if (size == 0) + return 0; + vector devices(size/sizeof(cl_device_id)); + clGetContextInfo(context, CL_CONTEXT_DEVICES, size, devices.data(), NULL); + return getDevicePlatformVersion(devices[0]); +} +#endif // CL_HPP_TARGET_OPENCL_VERSION >= 120 && CL_HPP_MINIMUM_OPENCL_VERSION < 120 + +template +class Wrapper +{ +public: + typedef T cl_type; + +protected: + cl_type object_; + +public: + Wrapper() : object_(NULL) { } + + Wrapper(const cl_type &obj, bool retainObject) : object_(obj) + { + if (retainObject) { + detail::errHandler(retain(), __RETAIN_ERR); + } + } + + ~Wrapper() + { + if (object_ != NULL) { release(); } + } + + Wrapper(const Wrapper& rhs) + { + object_ = rhs.object_; + detail::errHandler(retain(), __RETAIN_ERR); + } + + Wrapper(Wrapper&& rhs) CL_HPP_NOEXCEPT_ + { + object_ = rhs.object_; + rhs.object_ = NULL; + } + + Wrapper& operator = (const Wrapper& rhs) + { + if (this != &rhs) { + detail::errHandler(release(), __RELEASE_ERR); + object_ = rhs.object_; + detail::errHandler(retain(), __RETAIN_ERR); + } + return *this; + } + + Wrapper& operator = (Wrapper&& rhs) + { + if (this != &rhs) { + detail::errHandler(release(), __RELEASE_ERR); + object_ = rhs.object_; + rhs.object_ = NULL; + } + return *this; + } + + Wrapper& operator = (const cl_type &rhs) + { + detail::errHandler(release(), __RELEASE_ERR); + object_ = rhs; + return *this; + } + + const cl_type& operator ()() const { return object_; } + + cl_type& operator ()() { return object_; } + + const cl_type get() const { return object_; } + + cl_type get() { return object_; } + + +protected: + template + friend inline cl_int getInfoHelper(Func, cl_uint, U*, int, typename U::cl_type); + + cl_int retain() const + { + if (object_ != nullptr) { + return ReferenceHandler::retain(object_); + } + else { + return CL_SUCCESS; + } + } + + cl_int release() const + { + if (object_ != nullptr) { + return ReferenceHandler::release(object_); + } + else { + return CL_SUCCESS; + } + } +}; + +template <> +class Wrapper +{ +public: + typedef cl_device_id cl_type; + +protected: + cl_type object_; + bool referenceCountable_; + + static bool isReferenceCountable(cl_device_id device) + { + bool retVal = false; +#if CL_HPP_TARGET_OPENCL_VERSION >= 120 +#if CL_HPP_MINIMUM_OPENCL_VERSION < 120 + if (device != NULL) { + int version = getDevicePlatformVersion(device); + if(version > ((1 << 16) + 1)) { + retVal = true; + } + } +#else // CL_HPP_MINIMUM_OPENCL_VERSION < 120 + retVal = true; +#endif // CL_HPP_MINIMUM_OPENCL_VERSION < 120 +#endif // CL_HPP_TARGET_OPENCL_VERSION >= 120 + return retVal; + } + +public: + Wrapper() : object_(NULL), referenceCountable_(false) + { + } + + Wrapper(const cl_type &obj, bool retainObject) : + object_(obj), + referenceCountable_(false) + { + referenceCountable_ = isReferenceCountable(obj); + + if (retainObject) { + detail::errHandler(retain(), __RETAIN_ERR); + } + } + + ~Wrapper() + { + release(); + } + + Wrapper(const Wrapper& rhs) + { + object_ = rhs.object_; + referenceCountable_ = isReferenceCountable(object_); + detail::errHandler(retain(), __RETAIN_ERR); + } + + Wrapper(Wrapper&& rhs) CL_HPP_NOEXCEPT_ + { + object_ = rhs.object_; + referenceCountable_ = rhs.referenceCountable_; + rhs.object_ = NULL; + rhs.referenceCountable_ = false; + } + + Wrapper& operator = (const Wrapper& rhs) + { + if (this != &rhs) { + detail::errHandler(release(), __RELEASE_ERR); + object_ = rhs.object_; + referenceCountable_ = rhs.referenceCountable_; + detail::errHandler(retain(), __RETAIN_ERR); + } + return *this; + } + + Wrapper& operator = (Wrapper&& rhs) + { + if (this != &rhs) { + detail::errHandler(release(), __RELEASE_ERR); + object_ = rhs.object_; + referenceCountable_ = rhs.referenceCountable_; + rhs.object_ = NULL; + rhs.referenceCountable_ = false; + } + return *this; + } + + Wrapper& operator = (const cl_type &rhs) + { + detail::errHandler(release(), __RELEASE_ERR); + object_ = rhs; + referenceCountable_ = isReferenceCountable(object_); + return *this; + } + + const cl_type& operator ()() const { return object_; } + + cl_type& operator ()() { return object_; } + + cl_type get() const { return object_; } + +protected: + template + friend inline cl_int getInfoHelper(Func, cl_uint, U*, int, typename U::cl_type); + + template + friend inline cl_int getInfoHelper(Func, cl_uint, vector*, int, typename U::cl_type); + + cl_int retain() const + { + if( object_ != nullptr && referenceCountable_ ) { + return ReferenceHandler::retain(object_); + } + else { + return CL_SUCCESS; + } + } + + cl_int release() const + { + if (object_ != nullptr && referenceCountable_) { + return ReferenceHandler::release(object_); + } + else { + return CL_SUCCESS; + } + } +}; + +template +inline bool operator==(const Wrapper &lhs, const Wrapper &rhs) +{ + return lhs() == rhs(); +} + +template +inline bool operator!=(const Wrapper &lhs, const Wrapper &rhs) +{ + return !operator==(lhs, rhs); +} + +} // namespace detail +//! \endcond + + +using BuildLogType = vector::param_type>>; +#if defined(CL_HPP_ENABLE_EXCEPTIONS) +/** +* Exception class for build errors to carry build info +*/ +class BuildError : public Error +{ +private: + BuildLogType buildLogs; +public: + BuildError(cl_int err, const char * errStr, const BuildLogType &vec) : Error(err, errStr), buildLogs(vec) + { + } + + BuildLogType getBuildLog() const + { + return buildLogs; + } +}; +namespace detail { + static inline cl_int buildErrHandler( + cl_int err, + const char * errStr, + const BuildLogType &buildLogs) + { + if (err != CL_SUCCESS) { + throw BuildError(err, errStr, buildLogs); + } + return err; + } +} // namespace detail + +#else +namespace detail { + static inline cl_int buildErrHandler( + cl_int err, + const char * errStr, + const BuildLogType &buildLogs) + { + (void)buildLogs; // suppress unused variable warning + (void)errStr; + return err; + } +} // namespace detail +#endif // #if defined(CL_HPP_ENABLE_EXCEPTIONS) + + +/*! \stuct ImageFormat + * \brief Adds constructors and member functions for cl_image_format. + * + * \see cl_image_format + */ +struct ImageFormat : public cl_image_format +{ + //! \brief Default constructor - performs no initialization. + ImageFormat(){} + + //! \brief Initializing constructor. + ImageFormat(cl_channel_order order, cl_channel_type type) + { + image_channel_order = order; + image_channel_data_type = type; + } + + //! \brief Assignment operator. + ImageFormat& operator = (const ImageFormat& rhs) + { + if (this != &rhs) { + this->image_channel_data_type = rhs.image_channel_data_type; + this->image_channel_order = rhs.image_channel_order; + } + return *this; + } +}; + +/*! \brief Class interface for cl_device_id. + * + * \note Copies of these objects are inexpensive, since they don't 'own' + * any underlying resources or data structures. + * + * \see cl_device_id + */ +class Device : public detail::Wrapper +{ +private: + static std::once_flag default_initialized_; + static Device default_; + static cl_int default_error_; + + /*! \brief Create the default context. + * + * This sets @c default_ and @c default_error_. It does not throw + * @c cl::Error. + */ + static void makeDefault(); + + /*! \brief Create the default platform from a provided platform. + * + * This sets @c default_. It does not throw + * @c cl::Error. + */ + static void makeDefaultProvided(const Device &p) { + default_ = p; + } + +public: +#ifdef CL_HPP_UNIT_TEST_ENABLE + /*! \brief Reset the default. + * + * This sets @c default_ to an empty value to support cleanup in + * the unit test framework. + * This function is not thread safe. + */ + static void unitTestClearDefault() { + default_ = Device(); + } +#endif // #ifdef CL_HPP_UNIT_TEST_ENABLE + + //! \brief Default constructor - initializes to NULL. + Device() : detail::Wrapper() { } + + /*! \brief Constructor from cl_device_id. + * + * This simply copies the device ID value, which is an inexpensive operation. + */ + explicit Device(const cl_device_id &device, bool retainObject = false) : + detail::Wrapper(device, retainObject) { } + + /*! \brief Returns the first device on the default context. + * + * \see Context::getDefault() + */ + static Device getDefault( + cl_int *errResult = NULL) + { + std::call_once(default_initialized_, makeDefault); + detail::errHandler(default_error_); + if (errResult != NULL) { + *errResult = default_error_; + } + return default_; + } + + /** + * Modify the default device to be used by + * subsequent operations. + * Will only set the default if no default was previously created. + * @return updated default device. + * Should be compared to the passed value to ensure that it was updated. + */ + static Device setDefault(const Device &default_device) + { + std::call_once(default_initialized_, makeDefaultProvided, std::cref(default_device)); + detail::errHandler(default_error_); + return default_; + } + + /*! \brief Assignment operator from cl_device_id. + * + * This simply copies the device ID value, which is an inexpensive operation. + */ + Device& operator = (const cl_device_id& rhs) + { + detail::Wrapper::operator=(rhs); + return *this; + } + + /*! \brief Copy constructor to forward copy to the superclass correctly. + * Required for MSVC. + */ + Device(const Device& dev) : detail::Wrapper(dev) {} + + /*! \brief Copy assignment to forward copy to the superclass correctly. + * Required for MSVC. + */ + Device& operator = (const Device &dev) + { + detail::Wrapper::operator=(dev); + return *this; + } + + /*! \brief Move constructor to forward move to the superclass correctly. + * Required for MSVC. + */ + Device(Device&& dev) CL_HPP_NOEXCEPT_ : detail::Wrapper(std::move(dev)) {} + + /*! \brief Move assignment to forward move to the superclass correctly. + * Required for MSVC. + */ + Device& operator = (Device &&dev) + { + detail::Wrapper::operator=(std::move(dev)); + return *this; + } + + //! \brief Wrapper for clGetDeviceInfo(). + template + cl_int getInfo(cl_device_info name, T* param) const + { + return detail::errHandler( + detail::getInfo(&::clGetDeviceInfo, object_, name, param), + __GET_DEVICE_INFO_ERR); + } + + //! \brief Wrapper for clGetDeviceInfo() that returns by value. + template typename + detail::param_traits::param_type + getInfo(cl_int* err = NULL) const + { + typename detail::param_traits< + detail::cl_device_info, name>::param_type param; + cl_int result = getInfo(name, ¶m); + if (err != NULL) { + *err = result; + } + return param; + } + + +#if CL_HPP_TARGET_OPENCL_VERSION >= 210 + /** + * Return the current value of the host clock as seen by the device. + * The resolution of the device timer may be queried with the + * CL_DEVICE_PROFILING_TIMER_RESOLUTION query. + * @return The host timer value. + */ + cl_ulong getHostTimer(cl_int *error = nullptr) + { + cl_ulong retVal = 0; + cl_int err = + clGetHostTimer(this->get(), &retVal); + detail::errHandler( + err, + __GET_HOST_TIMER_ERR); + if (error) { + *error = err; + } + return retVal; + } + + /** + * Return a synchronized pair of host and device timestamps as seen by device. + * Use to correlate the clocks and get the host timer only using getHostTimer + * as a lower cost mechanism in between calls. + * The resolution of the host timer may be queried with the + * CL_PLATFORM_HOST_TIMER_RESOLUTION query. + * The resolution of the device timer may be queried with the + * CL_DEVICE_PROFILING_TIMER_RESOLUTION query. + * @return A pair of (device timer, host timer) timer values. + */ + std::pair getDeviceAndHostTimer(cl_int *error = nullptr) + { + std::pair retVal; + cl_int err = + clGetDeviceAndHostTimer(this->get(), &(retVal.first), &(retVal.second)); + detail::errHandler( + err, + __GET_DEVICE_AND_HOST_TIMER_ERR); + if (error) { + *error = err; + } + return retVal; + } +#endif // #if CL_HPP_TARGET_OPENCL_VERSION >= 210 + + /** + * CL 1.2 version + */ +#if CL_HPP_TARGET_OPENCL_VERSION >= 120 + //! \brief Wrapper for clCreateSubDevices(). + cl_int createSubDevices( + const cl_device_partition_property * properties, + vector* devices) + { + cl_uint n = 0; + cl_int err = clCreateSubDevices(object_, properties, 0, NULL, &n); + if (err != CL_SUCCESS) { + return detail::errHandler(err, __CREATE_SUB_DEVICES_ERR); + } + + vector ids(n); + err = clCreateSubDevices(object_, properties, n, ids.data(), NULL); + if (err != CL_SUCCESS) { + return detail::errHandler(err, __CREATE_SUB_DEVICES_ERR); + } + + // Cannot trivially assign because we need to capture intermediates + // with safe construction + if (devices) { + devices->resize(ids.size()); + + // Assign to param, constructing with retain behaviour + // to correctly capture each underlying CL object + for (size_type i = 0; i < ids.size(); i++) { + // We do not need to retain because this device is being created + // by the runtime + (*devices)[i] = Device(ids[i], false); + } + } + + return CL_SUCCESS; + } +#elif defined(CL_HPP_USE_CL_DEVICE_FISSION) + +/** + * CL 1.1 version that uses device fission extension. + */ + cl_int createSubDevices( + const cl_device_partition_property_ext * properties, + vector* devices) + { + typedef CL_API_ENTRY cl_int + ( CL_API_CALL * PFN_clCreateSubDevicesEXT)( + cl_device_id /*in_device*/, + const cl_device_partition_property_ext * /* properties */, + cl_uint /*num_entries*/, + cl_device_id * /*out_devices*/, + cl_uint * /*num_devices*/ ) CL_EXT_SUFFIX__VERSION_1_1; + + static PFN_clCreateSubDevicesEXT pfn_clCreateSubDevicesEXT = NULL; + CL_HPP_INIT_CL_EXT_FCN_PTR_(clCreateSubDevicesEXT); + + cl_uint n = 0; + cl_int err = pfn_clCreateSubDevicesEXT(object_, properties, 0, NULL, &n); + if (err != CL_SUCCESS) { + return detail::errHandler(err, __CREATE_SUB_DEVICES_ERR); + } + + vector ids(n); + err = pfn_clCreateSubDevicesEXT(object_, properties, n, ids.data(), NULL); + if (err != CL_SUCCESS) { + return detail::errHandler(err, __CREATE_SUB_DEVICES_ERR); + } + // Cannot trivially assign because we need to capture intermediates + // with safe construction + if (devices) { + devices->resize(ids.size()); + + // Assign to param, constructing with retain behaviour + // to correctly capture each underlying CL object + for (size_type i = 0; i < ids.size(); i++) { + // We do not need to retain because this device is being created + // by the runtime + (*devices)[i] = Device(ids[i], false); + } + } + return CL_SUCCESS; + } +#endif // defined(CL_HPP_USE_CL_DEVICE_FISSION) +}; + +CL_HPP_DEFINE_STATIC_MEMBER_ std::once_flag Device::default_initialized_; +CL_HPP_DEFINE_STATIC_MEMBER_ Device Device::default_; +CL_HPP_DEFINE_STATIC_MEMBER_ cl_int Device::default_error_ = CL_SUCCESS; + +/*! \brief Class interface for cl_platform_id. + * + * \note Copies of these objects are inexpensive, since they don't 'own' + * any underlying resources or data structures. + * + * \see cl_platform_id + */ +class Platform : public detail::Wrapper +{ +private: + static std::once_flag default_initialized_; + static Platform default_; + static cl_int default_error_; + + /*! \brief Create the default context. + * + * This sets @c default_ and @c default_error_. It does not throw + * @c cl::Error. + */ + static void makeDefault() { + /* Throwing an exception from a call_once invocation does not do + * what we wish, so we catch it and save the error. + */ +#if defined(CL_HPP_ENABLE_EXCEPTIONS) + try +#endif + { + // If default wasn't passed ,generate one + // Otherwise set it + cl_uint n = 0; + + cl_int err = ::clGetPlatformIDs(0, NULL, &n); + if (err != CL_SUCCESS) { + default_error_ = err; + return; + } + if (n == 0) { + default_error_ = CL_INVALID_PLATFORM; + return; + } + + vector ids(n); + err = ::clGetPlatformIDs(n, ids.data(), NULL); + if (err != CL_SUCCESS) { + default_error_ = err; + return; + } + + default_ = Platform(ids[0]); + } +#if defined(CL_HPP_ENABLE_EXCEPTIONS) + catch (cl::Error &e) { + default_error_ = e.err(); + } +#endif + } + + /*! \brief Create the default platform from a provided platform. + * + * This sets @c default_. It does not throw + * @c cl::Error. + */ + static void makeDefaultProvided(const Platform &p) { + default_ = p; + } + +public: +#ifdef CL_HPP_UNIT_TEST_ENABLE + /*! \brief Reset the default. + * + * This sets @c default_ to an empty value to support cleanup in + * the unit test framework. + * This function is not thread safe. + */ + static void unitTestClearDefault() { + default_ = Platform(); + } +#endif // #ifdef CL_HPP_UNIT_TEST_ENABLE + + //! \brief Default constructor - initializes to NULL. + Platform() : detail::Wrapper() { } + + /*! \brief Constructor from cl_platform_id. + * + * \param retainObject will cause the constructor to retain its cl object. + * Defaults to false to maintain compatibility with + * earlier versions. + * This simply copies the platform ID value, which is an inexpensive operation. + */ + explicit Platform(const cl_platform_id &platform, bool retainObject = false) : + detail::Wrapper(platform, retainObject) { } + + /*! \brief Assignment operator from cl_platform_id. + * + * This simply copies the platform ID value, which is an inexpensive operation. + */ + Platform& operator = (const cl_platform_id& rhs) + { + detail::Wrapper::operator=(rhs); + return *this; + } + + static Platform getDefault( + cl_int *errResult = NULL) + { + std::call_once(default_initialized_, makeDefault); + detail::errHandler(default_error_); + if (errResult != NULL) { + *errResult = default_error_; + } + return default_; + } + + /** + * Modify the default platform to be used by + * subsequent operations. + * Will only set the default if no default was previously created. + * @return updated default platform. + * Should be compared to the passed value to ensure that it was updated. + */ + static Platform setDefault(const Platform &default_platform) + { + std::call_once(default_initialized_, makeDefaultProvided, std::cref(default_platform)); + detail::errHandler(default_error_); + return default_; + } + + //! \brief Wrapper for clGetPlatformInfo(). + cl_int getInfo(cl_platform_info name, string* param) const + { + return detail::errHandler( + detail::getInfo(&::clGetPlatformInfo, object_, name, param), + __GET_PLATFORM_INFO_ERR); + } + + //! \brief Wrapper for clGetPlatformInfo() that returns by value. + template typename + detail::param_traits::param_type + getInfo(cl_int* err = NULL) const + { + typename detail::param_traits< + detail::cl_platform_info, name>::param_type param; + cl_int result = getInfo(name, ¶m); + if (err != NULL) { + *err = result; + } + return param; + } + + /*! \brief Gets a list of devices for this platform. + * + * Wraps clGetDeviceIDs(). + */ + cl_int getDevices( + cl_device_type type, + vector* devices) const + { + cl_uint n = 0; + if( devices == NULL ) { + return detail::errHandler(CL_INVALID_ARG_VALUE, __GET_DEVICE_IDS_ERR); + } + cl_int err = ::clGetDeviceIDs(object_, type, 0, NULL, &n); + if (err != CL_SUCCESS) { + return detail::errHandler(err, __GET_DEVICE_IDS_ERR); + } + + vector ids(n); + err = ::clGetDeviceIDs(object_, type, n, ids.data(), NULL); + if (err != CL_SUCCESS) { + return detail::errHandler(err, __GET_DEVICE_IDS_ERR); + } + + // Cannot trivially assign because we need to capture intermediates + // with safe construction + // We must retain things we obtain from the API to avoid releasing + // API-owned objects. + if (devices) { + devices->resize(ids.size()); + + // Assign to param, constructing with retain behaviour + // to correctly capture each underlying CL object + for (size_type i = 0; i < ids.size(); i++) { + (*devices)[i] = Device(ids[i], true); + } + } + return CL_SUCCESS; + } + +#if defined(CL_HPP_USE_DX_INTEROP) + /*! \brief Get the list of available D3D10 devices. + * + * \param d3d_device_source. + * + * \param d3d_object. + * + * \param d3d_device_set. + * + * \param devices returns a vector of OpenCL D3D10 devices found. The cl::Device + * values returned in devices can be used to identify a specific OpenCL + * device. If \a devices argument is NULL, this argument is ignored. + * + * \return One of the following values: + * - CL_SUCCESS if the function is executed successfully. + * + * The application can query specific capabilities of the OpenCL device(s) + * returned by cl::getDevices. This can be used by the application to + * determine which device(s) to use. + * + * \note In the case that exceptions are enabled and a return value + * other than CL_SUCCESS is generated, then cl::Error exception is + * generated. + */ + cl_int getDevices( + cl_d3d10_device_source_khr d3d_device_source, + void * d3d_object, + cl_d3d10_device_set_khr d3d_device_set, + vector* devices) const + { + typedef CL_API_ENTRY cl_int (CL_API_CALL *PFN_clGetDeviceIDsFromD3D10KHR)( + cl_platform_id platform, + cl_d3d10_device_source_khr d3d_device_source, + void * d3d_object, + cl_d3d10_device_set_khr d3d_device_set, + cl_uint num_entries, + cl_device_id * devices, + cl_uint* num_devices); + + if( devices == NULL ) { + return detail::errHandler(CL_INVALID_ARG_VALUE, __GET_DEVICE_IDS_ERR); + } + + static PFN_clGetDeviceIDsFromD3D10KHR pfn_clGetDeviceIDsFromD3D10KHR = NULL; + CL_HPP_INIT_CL_EXT_FCN_PTR_PLATFORM_(object_, clGetDeviceIDsFromD3D10KHR); + + cl_uint n = 0; + cl_int err = pfn_clGetDeviceIDsFromD3D10KHR( + object_, + d3d_device_source, + d3d_object, + d3d_device_set, + 0, + NULL, + &n); + if (err != CL_SUCCESS) { + return detail::errHandler(err, __GET_DEVICE_IDS_ERR); + } + + vector ids(n); + err = pfn_clGetDeviceIDsFromD3D10KHR( + object_, + d3d_device_source, + d3d_object, + d3d_device_set, + n, + ids.data(), + NULL); + if (err != CL_SUCCESS) { + return detail::errHandler(err, __GET_DEVICE_IDS_ERR); + } + + // Cannot trivially assign because we need to capture intermediates + // with safe construction + // We must retain things we obtain from the API to avoid releasing + // API-owned objects. + if (devices) { + devices->resize(ids.size()); + + // Assign to param, constructing with retain behaviour + // to correctly capture each underlying CL object + for (size_type i = 0; i < ids.size(); i++) { + (*devices)[i] = Device(ids[i], true); + } + } + return CL_SUCCESS; + } +#endif + + /*! \brief Gets a list of available platforms. + * + * Wraps clGetPlatformIDs(). + */ + static cl_int get( + vector* platforms) + { + cl_uint n = 0; + + if( platforms == NULL ) { + return detail::errHandler(CL_INVALID_ARG_VALUE, __GET_PLATFORM_IDS_ERR); + } + + cl_int err = ::clGetPlatformIDs(0, NULL, &n); + if (err != CL_SUCCESS) { + return detail::errHandler(err, __GET_PLATFORM_IDS_ERR); + } + + vector ids(n); + err = ::clGetPlatformIDs(n, ids.data(), NULL); + if (err != CL_SUCCESS) { + return detail::errHandler(err, __GET_PLATFORM_IDS_ERR); + } + + if (platforms) { + platforms->resize(ids.size()); + + // Platforms don't reference count + for (size_type i = 0; i < ids.size(); i++) { + (*platforms)[i] = Platform(ids[i]); + } + } + return CL_SUCCESS; + } + + /*! \brief Gets the first available platform. + * + * Wraps clGetPlatformIDs(), returning the first result. + */ + static cl_int get( + Platform * platform) + { + cl_int err; + Platform default_platform = Platform::getDefault(&err); + if (platform) { + *platform = default_platform; + } + return err; + } + + /*! \brief Gets the first available platform, returning it by value. + * + * \return Returns a valid platform if one is available. + * If no platform is available will return a null platform. + * Throws an exception if no platforms are available + * or an error condition occurs. + * Wraps clGetPlatformIDs(), returning the first result. + */ + static Platform get( + cl_int * errResult = NULL) + { + cl_int err; + Platform default_platform = Platform::getDefault(&err); + if (errResult) { + *errResult = err; + } + return default_platform; + } + +#if CL_HPP_TARGET_OPENCL_VERSION >= 120 + //! \brief Wrapper for clUnloadCompiler(). + cl_int + unloadCompiler() + { + return ::clUnloadPlatformCompiler(object_); + } +#endif // CL_HPP_TARGET_OPENCL_VERSION >= 120 +}; // class Platform + +CL_HPP_DEFINE_STATIC_MEMBER_ std::once_flag Platform::default_initialized_; +CL_HPP_DEFINE_STATIC_MEMBER_ Platform Platform::default_; +CL_HPP_DEFINE_STATIC_MEMBER_ cl_int Platform::default_error_ = CL_SUCCESS; + + +/** + * Deprecated APIs for 1.2 + */ +#if defined(CL_USE_DEPRECATED_OPENCL_1_1_APIS) +/** + * Unload the OpenCL compiler. + * \note Deprecated for OpenCL 1.2. Use Platform::unloadCompiler instead. + */ +inline CL_EXT_PREFIX__VERSION_1_1_DEPRECATED cl_int +UnloadCompiler() CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED; +inline cl_int +UnloadCompiler() +{ + return ::clUnloadCompiler(); +} +#endif // #if defined(CL_USE_DEPRECATED_OPENCL_1_1_APIS) + +/*! \brief Class interface for cl_context. + * + * \note Copies of these objects are shallow, meaning that the copy will refer + * to the same underlying cl_context as the original. For details, see + * clRetainContext() and clReleaseContext(). + * + * \see cl_context + */ +class Context + : public detail::Wrapper +{ +private: + static std::once_flag default_initialized_; + static Context default_; + static cl_int default_error_; + + /*! \brief Create the default context from the default device type in the default platform. + * + * This sets @c default_ and @c default_error_. It does not throw + * @c cl::Error. + */ + static void makeDefault() { + /* Throwing an exception from a call_once invocation does not do + * what we wish, so we catch it and save the error. + */ +#if defined(CL_HPP_ENABLE_EXCEPTIONS) + try +#endif + { +#if !defined(__APPLE__) && !defined(__MACOS) + const Platform &p = Platform::getDefault(); + cl_platform_id defaultPlatform = p(); + cl_context_properties properties[3] = { + CL_CONTEXT_PLATFORM, (cl_context_properties)defaultPlatform, 0 + }; +#else // #if !defined(__APPLE__) && !defined(__MACOS) + cl_context_properties *properties = nullptr; +#endif // #if !defined(__APPLE__) && !defined(__MACOS) + + default_ = Context( + CL_DEVICE_TYPE_DEFAULT, + properties, + NULL, + NULL, + &default_error_); + } +#if defined(CL_HPP_ENABLE_EXCEPTIONS) + catch (cl::Error &e) { + default_error_ = e.err(); + } +#endif + } + + + /*! \brief Create the default context from a provided Context. + * + * This sets @c default_. It does not throw + * @c cl::Error. + */ + static void makeDefaultProvided(const Context &c) { + default_ = c; + } + +public: +#ifdef CL_HPP_UNIT_TEST_ENABLE + /*! \brief Reset the default. + * + * This sets @c default_ to an empty value to support cleanup in + * the unit test framework. + * This function is not thread safe. + */ + static void unitTestClearDefault() { + default_ = Context(); + } +#endif // #ifdef CL_HPP_UNIT_TEST_ENABLE + + /*! \brief Constructs a context including a list of specified devices. + * + * Wraps clCreateContext(). + */ + Context( + const vector& devices, + cl_context_properties* properties = NULL, + void (CL_CALLBACK * notifyFptr)( + const char *, + const void *, + size_type, + void *) = NULL, + void* data = NULL, + cl_int* err = NULL) + { + cl_int error; + + size_type numDevices = devices.size(); + vector deviceIDs(numDevices); + + for( size_type deviceIndex = 0; deviceIndex < numDevices; ++deviceIndex ) { + deviceIDs[deviceIndex] = (devices[deviceIndex])(); + } + + object_ = ::clCreateContext( + properties, (cl_uint) numDevices, + deviceIDs.data(), + notifyFptr, data, &error); + + detail::errHandler(error, __CREATE_CONTEXT_ERR); + if (err != NULL) { + *err = error; + } + } + + Context( + const Device& device, + cl_context_properties* properties = NULL, + void (CL_CALLBACK * notifyFptr)( + const char *, + const void *, + size_type, + void *) = NULL, + void* data = NULL, + cl_int* err = NULL) + { + cl_int error; + + cl_device_id deviceID = device(); + + object_ = ::clCreateContext( + properties, 1, + &deviceID, + notifyFptr, data, &error); + + detail::errHandler(error, __CREATE_CONTEXT_ERR); + if (err != NULL) { + *err = error; + } + } + + /*! \brief Constructs a context including all or a subset of devices of a specified type. + * + * Wraps clCreateContextFromType(). + */ + Context( + cl_device_type type, + cl_context_properties* properties = NULL, + void (CL_CALLBACK * notifyFptr)( + const char *, + const void *, + size_type, + void *) = NULL, + void* data = NULL, + cl_int* err = NULL) + { + cl_int error; + +#if !defined(__APPLE__) && !defined(__MACOS) + cl_context_properties prop[4] = {CL_CONTEXT_PLATFORM, 0, 0, 0 }; + + if (properties == NULL) { + // Get a valid platform ID as we cannot send in a blank one + vector platforms; + error = Platform::get(&platforms); + if (error != CL_SUCCESS) { + detail::errHandler(error, __CREATE_CONTEXT_FROM_TYPE_ERR); + if (err != NULL) { + *err = error; + } + return; + } + + // Check the platforms we found for a device of our specified type + cl_context_properties platform_id = 0; + for (unsigned int i = 0; i < platforms.size(); i++) { + + vector devices; + +#if defined(CL_HPP_ENABLE_EXCEPTIONS) + try { +#endif + + error = platforms[i].getDevices(type, &devices); + +#if defined(CL_HPP_ENABLE_EXCEPTIONS) + } catch (cl::Error& e) { + error = e.err(); + } + // Catch if exceptions are enabled as we don't want to exit if first platform has no devices of type + // We do error checking next anyway, and can throw there if needed +#endif + + // Only squash CL_SUCCESS and CL_DEVICE_NOT_FOUND + if (error != CL_SUCCESS && error != CL_DEVICE_NOT_FOUND) { + detail::errHandler(error, __CREATE_CONTEXT_FROM_TYPE_ERR); + if (err != NULL) { + *err = error; + } + } + + if (devices.size() > 0) { + platform_id = (cl_context_properties)platforms[i](); + break; + } + } + + if (platform_id == 0) { + detail::errHandler(CL_DEVICE_NOT_FOUND, __CREATE_CONTEXT_FROM_TYPE_ERR); + if (err != NULL) { + *err = CL_DEVICE_NOT_FOUND; + } + return; + } + + prop[1] = platform_id; + properties = &prop[0]; + } +#endif + object_ = ::clCreateContextFromType( + properties, type, notifyFptr, data, &error); + + detail::errHandler(error, __CREATE_CONTEXT_FROM_TYPE_ERR); + if (err != NULL) { + *err = error; + } + } + + /*! \brief Copy constructor to forward copy to the superclass correctly. + * Required for MSVC. + */ + Context(const Context& ctx) : detail::Wrapper(ctx) {} + + /*! \brief Copy assignment to forward copy to the superclass correctly. + * Required for MSVC. + */ + Context& operator = (const Context &ctx) + { + detail::Wrapper::operator=(ctx); + return *this; + } + + /*! \brief Move constructor to forward move to the superclass correctly. + * Required for MSVC. + */ + Context(Context&& ctx) CL_HPP_NOEXCEPT_ : detail::Wrapper(std::move(ctx)) {} + + /*! \brief Move assignment to forward move to the superclass correctly. + * Required for MSVC. + */ + Context& operator = (Context &&ctx) + { + detail::Wrapper::operator=(std::move(ctx)); + return *this; + } + + + /*! \brief Returns a singleton context including all devices of CL_DEVICE_TYPE_DEFAULT. + * + * \note All calls to this function return the same cl_context as the first. + */ + static Context getDefault(cl_int * err = NULL) + { + std::call_once(default_initialized_, makeDefault); + detail::errHandler(default_error_); + if (err != NULL) { + *err = default_error_; + } + return default_; + } + + /** + * Modify the default context to be used by + * subsequent operations. + * Will only set the default if no default was previously created. + * @return updated default context. + * Should be compared to the passed value to ensure that it was updated. + */ + static Context setDefault(const Context &default_context) + { + std::call_once(default_initialized_, makeDefaultProvided, std::cref(default_context)); + detail::errHandler(default_error_); + return default_; + } + + //! \brief Default constructor - initializes to NULL. + Context() : detail::Wrapper() { } + + /*! \brief Constructor from cl_context - takes ownership. + * + * This effectively transfers ownership of a refcount on the cl_context + * into the new Context object. + */ + explicit Context(const cl_context& context, bool retainObject = false) : + detail::Wrapper(context, retainObject) { } + + /*! \brief Assignment operator from cl_context - takes ownership. + * + * This effectively transfers ownership of a refcount on the rhs and calls + * clReleaseContext() on the value previously held by this instance. + */ + Context& operator = (const cl_context& rhs) + { + detail::Wrapper::operator=(rhs); + return *this; + } + + //! \brief Wrapper for clGetContextInfo(). + template + cl_int getInfo(cl_context_info name, T* param) const + { + return detail::errHandler( + detail::getInfo(&::clGetContextInfo, object_, name, param), + __GET_CONTEXT_INFO_ERR); + } + + //! \brief Wrapper for clGetContextInfo() that returns by value. + template typename + detail::param_traits::param_type + getInfo(cl_int* err = NULL) const + { + typename detail::param_traits< + detail::cl_context_info, name>::param_type param; + cl_int result = getInfo(name, ¶m); + if (err != NULL) { + *err = result; + } + return param; + } + + /*! \brief Gets a list of supported image formats. + * + * Wraps clGetSupportedImageFormats(). + */ + cl_int getSupportedImageFormats( + cl_mem_flags flags, + cl_mem_object_type type, + vector* formats) const + { + cl_uint numEntries; + + if (!formats) { + return CL_SUCCESS; + } + + cl_int err = ::clGetSupportedImageFormats( + object_, + flags, + type, + 0, + NULL, + &numEntries); + if (err != CL_SUCCESS) { + return detail::errHandler(err, __GET_SUPPORTED_IMAGE_FORMATS_ERR); + } + + if (numEntries > 0) { + vector value(numEntries); + err = ::clGetSupportedImageFormats( + object_, + flags, + type, + numEntries, + (cl_image_format*)value.data(), + NULL); + if (err != CL_SUCCESS) { + return detail::errHandler(err, __GET_SUPPORTED_IMAGE_FORMATS_ERR); + } + + formats->assign(begin(value), end(value)); + } + else { + // If no values are being returned, ensure an empty vector comes back + formats->clear(); + } + + return CL_SUCCESS; + } +}; + +inline void Device::makeDefault() +{ + /* Throwing an exception from a call_once invocation does not do + * what we wish, so we catch it and save the error. + */ +#if defined(CL_HPP_ENABLE_EXCEPTIONS) + try +#endif + { + cl_int error = 0; + + Context context = Context::getDefault(&error); + detail::errHandler(error, __CREATE_CONTEXT_ERR); + + if (error != CL_SUCCESS) { + default_error_ = error; + } + else { + default_ = context.getInfo()[0]; + default_error_ = CL_SUCCESS; + } + } +#if defined(CL_HPP_ENABLE_EXCEPTIONS) + catch (cl::Error &e) { + default_error_ = e.err(); + } +#endif +} + +CL_HPP_DEFINE_STATIC_MEMBER_ std::once_flag Context::default_initialized_; +CL_HPP_DEFINE_STATIC_MEMBER_ Context Context::default_; +CL_HPP_DEFINE_STATIC_MEMBER_ cl_int Context::default_error_ = CL_SUCCESS; + +/*! \brief Class interface for cl_event. + * + * \note Copies of these objects are shallow, meaning that the copy will refer + * to the same underlying cl_event as the original. For details, see + * clRetainEvent() and clReleaseEvent(). + * + * \see cl_event + */ +class Event : public detail::Wrapper +{ +public: + //! \brief Default constructor - initializes to NULL. + Event() : detail::Wrapper() { } + + /*! \brief Constructor from cl_event - takes ownership. + * + * \param retainObject will cause the constructor to retain its cl object. + * Defaults to false to maintain compatibility with + * earlier versions. + * This effectively transfers ownership of a refcount on the cl_event + * into the new Event object. + */ + explicit Event(const cl_event& event, bool retainObject = false) : + detail::Wrapper(event, retainObject) { } + + /*! \brief Assignment operator from cl_event - takes ownership. + * + * This effectively transfers ownership of a refcount on the rhs and calls + * clReleaseEvent() on the value previously held by this instance. + */ + Event& operator = (const cl_event& rhs) + { + detail::Wrapper::operator=(rhs); + return *this; + } + + //! \brief Wrapper for clGetEventInfo(). + template + cl_int getInfo(cl_event_info name, T* param) const + { + return detail::errHandler( + detail::getInfo(&::clGetEventInfo, object_, name, param), + __GET_EVENT_INFO_ERR); + } + + //! \brief Wrapper for clGetEventInfo() that returns by value. + template typename + detail::param_traits::param_type + getInfo(cl_int* err = NULL) const + { + typename detail::param_traits< + detail::cl_event_info, name>::param_type param; + cl_int result = getInfo(name, ¶m); + if (err != NULL) { + *err = result; + } + return param; + } + + //! \brief Wrapper for clGetEventProfilingInfo(). + template + cl_int getProfilingInfo(cl_profiling_info name, T* param) const + { + return detail::errHandler(detail::getInfo( + &::clGetEventProfilingInfo, object_, name, param), + __GET_EVENT_PROFILE_INFO_ERR); + } + + //! \brief Wrapper for clGetEventProfilingInfo() that returns by value. + template typename + detail::param_traits::param_type + getProfilingInfo(cl_int* err = NULL) const + { + typename detail::param_traits< + detail::cl_profiling_info, name>::param_type param; + cl_int result = getProfilingInfo(name, ¶m); + if (err != NULL) { + *err = result; + } + return param; + } + + /*! \brief Blocks the calling thread until this event completes. + * + * Wraps clWaitForEvents(). + */ + cl_int wait() const + { + return detail::errHandler( + ::clWaitForEvents(1, &object_), + __WAIT_FOR_EVENTS_ERR); + } + +#if CL_HPP_TARGET_OPENCL_VERSION >= 110 + /*! \brief Registers a user callback function for a specific command execution status. + * + * Wraps clSetEventCallback(). + */ + cl_int setCallback( + cl_int type, + void (CL_CALLBACK * pfn_notify)(cl_event, cl_int, void *), + void * user_data = NULL) + { + return detail::errHandler( + ::clSetEventCallback( + object_, + type, + pfn_notify, + user_data), + __SET_EVENT_CALLBACK_ERR); + } +#endif // CL_HPP_TARGET_OPENCL_VERSION >= 110 + + /*! \brief Blocks the calling thread until every event specified is complete. + * + * Wraps clWaitForEvents(). + */ + static cl_int + waitForEvents(const vector& events) + { + return detail::errHandler( + ::clWaitForEvents( + (cl_uint) events.size(), (events.size() > 0) ? (cl_event*)&events.front() : NULL), + __WAIT_FOR_EVENTS_ERR); + } +}; + +#if CL_HPP_TARGET_OPENCL_VERSION >= 110 +/*! \brief Class interface for user events (a subset of cl_event's). + * + * See Event for details about copy semantics, etc. + */ +class UserEvent : public Event +{ +public: + /*! \brief Constructs a user event on a given context. + * + * Wraps clCreateUserEvent(). + */ + UserEvent( + const Context& context, + cl_int * err = NULL) + { + cl_int error; + object_ = ::clCreateUserEvent( + context(), + &error); + + detail::errHandler(error, __CREATE_USER_EVENT_ERR); + if (err != NULL) { + *err = error; + } + } + + //! \brief Default constructor - initializes to NULL. + UserEvent() : Event() { } + + /*! \brief Sets the execution status of a user event object. + * + * Wraps clSetUserEventStatus(). + */ + cl_int setStatus(cl_int status) + { + return detail::errHandler( + ::clSetUserEventStatus(object_,status), + __SET_USER_EVENT_STATUS_ERR); + } +}; +#endif // CL_HPP_TARGET_OPENCL_VERSION >= 110 + +/*! \brief Blocks the calling thread until every event specified is complete. + * + * Wraps clWaitForEvents(). + */ +inline static cl_int +WaitForEvents(const vector& events) +{ + return detail::errHandler( + ::clWaitForEvents( + (cl_uint) events.size(), (events.size() > 0) ? (cl_event*)&events.front() : NULL), + __WAIT_FOR_EVENTS_ERR); +} + +/*! \brief Class interface for cl_mem. + * + * \note Copies of these objects are shallow, meaning that the copy will refer + * to the same underlying cl_mem as the original. For details, see + * clRetainMemObject() and clReleaseMemObject(). + * + * \see cl_mem + */ +class Memory : public detail::Wrapper +{ +public: + //! \brief Default constructor - initializes to NULL. + Memory() : detail::Wrapper() { } + + /*! \brief Constructor from cl_mem - takes ownership. + * + * Optionally transfer ownership of a refcount on the cl_mem + * into the new Memory object. + * + * \param retainObject will cause the constructor to retain its cl object. + * Defaults to false to maintain compatibility with + * earlier versions. + * + * See Memory for further details. + */ + explicit Memory(const cl_mem& memory, bool retainObject) : + detail::Wrapper(memory, retainObject) { } + + /*! \brief Assignment operator from cl_mem - takes ownership. + * + * This effectively transfers ownership of a refcount on the rhs and calls + * clReleaseMemObject() on the value previously held by this instance. + */ + Memory& operator = (const cl_mem& rhs) + { + detail::Wrapper::operator=(rhs); + return *this; + } + + /*! \brief Copy constructor to forward copy to the superclass correctly. + * Required for MSVC. + */ + Memory(const Memory& mem) : detail::Wrapper(mem) {} + + /*! \brief Copy assignment to forward copy to the superclass correctly. + * Required for MSVC. + */ + Memory& operator = (const Memory &mem) + { + detail::Wrapper::operator=(mem); + return *this; + } + + /*! \brief Move constructor to forward move to the superclass correctly. + * Required for MSVC. + */ + Memory(Memory&& mem) CL_HPP_NOEXCEPT_ : detail::Wrapper(std::move(mem)) {} + + /*! \brief Move assignment to forward move to the superclass correctly. + * Required for MSVC. + */ + Memory& operator = (Memory &&mem) + { + detail::Wrapper::operator=(std::move(mem)); + return *this; + } + + + //! \brief Wrapper for clGetMemObjectInfo(). + template + cl_int getInfo(cl_mem_info name, T* param) const + { + return detail::errHandler( + detail::getInfo(&::clGetMemObjectInfo, object_, name, param), + __GET_MEM_OBJECT_INFO_ERR); + } + + //! \brief Wrapper for clGetMemObjectInfo() that returns by value. + template typename + detail::param_traits::param_type + getInfo(cl_int* err = NULL) const + { + typename detail::param_traits< + detail::cl_mem_info, name>::param_type param; + cl_int result = getInfo(name, ¶m); + if (err != NULL) { + *err = result; + } + return param; + } + +#if CL_HPP_TARGET_OPENCL_VERSION >= 110 + /*! \brief Registers a callback function to be called when the memory object + * is no longer needed. + * + * Wraps clSetMemObjectDestructorCallback(). + * + * Repeated calls to this function, for a given cl_mem value, will append + * to the list of functions called (in reverse order) when memory object's + * resources are freed and the memory object is deleted. + * + * \note + * The registered callbacks are associated with the underlying cl_mem + * value - not the Memory class instance. + */ + cl_int setDestructorCallback( + void (CL_CALLBACK * pfn_notify)(cl_mem, void *), + void * user_data = NULL) + { + return detail::errHandler( + ::clSetMemObjectDestructorCallback( + object_, + pfn_notify, + user_data), + __SET_MEM_OBJECT_DESTRUCTOR_CALLBACK_ERR); + } +#endif // CL_HPP_TARGET_OPENCL_VERSION >= 110 + +}; + +// Pre-declare copy functions +class Buffer; +template< typename IteratorType > +cl_int copy( IteratorType startIterator, IteratorType endIterator, cl::Buffer &buffer ); +template< typename IteratorType > +cl_int copy( const cl::Buffer &buffer, IteratorType startIterator, IteratorType endIterator ); +template< typename IteratorType > +cl_int copy( const CommandQueue &queue, IteratorType startIterator, IteratorType endIterator, cl::Buffer &buffer ); +template< typename IteratorType > +cl_int copy( const CommandQueue &queue, const cl::Buffer &buffer, IteratorType startIterator, IteratorType endIterator ); + + +#if CL_HPP_TARGET_OPENCL_VERSION >= 200 +namespace detail +{ + class SVMTraitNull + { + public: + static cl_svm_mem_flags getSVMMemFlags() + { + return 0; + } + }; +} // namespace detail + +template +class SVMTraitReadWrite +{ +public: + static cl_svm_mem_flags getSVMMemFlags() + { + return CL_MEM_READ_WRITE | + Trait::getSVMMemFlags(); + } +}; + +template +class SVMTraitReadOnly +{ +public: + static cl_svm_mem_flags getSVMMemFlags() + { + return CL_MEM_READ_ONLY | + Trait::getSVMMemFlags(); + } +}; + +template +class SVMTraitWriteOnly +{ +public: + static cl_svm_mem_flags getSVMMemFlags() + { + return CL_MEM_WRITE_ONLY | + Trait::getSVMMemFlags(); + } +}; + +template> +class SVMTraitCoarse +{ +public: + static cl_svm_mem_flags getSVMMemFlags() + { + return Trait::getSVMMemFlags(); + } +}; + +template> +class SVMTraitFine +{ +public: + static cl_svm_mem_flags getSVMMemFlags() + { + return CL_MEM_SVM_FINE_GRAIN_BUFFER | + Trait::getSVMMemFlags(); + } +}; + +template> +class SVMTraitAtomic +{ +public: + static cl_svm_mem_flags getSVMMemFlags() + { + return + CL_MEM_SVM_FINE_GRAIN_BUFFER | + CL_MEM_SVM_ATOMICS | + Trait::getSVMMemFlags(); + } +}; + +// Pre-declare SVM map function +template +inline cl_int enqueueMapSVM( + T* ptr, + cl_bool blocking, + cl_map_flags flags, + size_type size, + const vector* events = NULL, + Event* event = NULL); + +/** + * STL-like allocator class for managing SVM objects provided for convenience. + * + * Note that while this behaves like an allocator for the purposes of constructing vectors and similar objects, + * care must be taken when using with smart pointers. + * The allocator should not be used to construct a unique_ptr if we are using coarse-grained SVM mode because + * the coarse-grained management behaviour would behave incorrectly with respect to reference counting. + * + * Instead the allocator embeds a Deleter which may be used with unique_ptr and is used + * with the allocate_shared and allocate_ptr supplied operations. + */ +template +class SVMAllocator { +private: + Context context_; + +public: + typedef T value_type; + typedef value_type* pointer; + typedef const value_type* const_pointer; + typedef value_type& reference; + typedef const value_type& const_reference; + typedef std::size_t size_type; + typedef std::ptrdiff_t difference_type; + + template + struct rebind + { + typedef SVMAllocator other; + }; + + template + friend class SVMAllocator; + + SVMAllocator() : + context_(Context::getDefault()) + { + } + + explicit SVMAllocator(cl::Context context) : + context_(context) + { + } + + + SVMAllocator(const SVMAllocator &other) : + context_(other.context_) + { + } + + template + SVMAllocator(const SVMAllocator &other) : + context_(other.context_) + { + } + + ~SVMAllocator() + { + } + + pointer address(reference r) CL_HPP_NOEXCEPT_ + { + return std::addressof(r); + } + + const_pointer address(const_reference r) CL_HPP_NOEXCEPT_ + { + return std::addressof(r); + } + + /** + * Allocate an SVM pointer. + * + * If the allocator is coarse-grained, this will take ownership to allow + * containers to correctly construct data in place. + */ + pointer allocate( + size_type size, + typename cl::SVMAllocator::const_pointer = 0) + { + // Allocate memory with default alignment matching the size of the type + void* voidPointer = + clSVMAlloc( + context_(), + SVMTrait::getSVMMemFlags(), + size*sizeof(T), + 0); + pointer retValue = reinterpret_cast( + voidPointer); +#if defined(CL_HPP_ENABLE_EXCEPTIONS) + if (!retValue) { + std::bad_alloc excep; + throw excep; + } +#endif // #if defined(CL_HPP_ENABLE_EXCEPTIONS) + + // If allocation was coarse-grained then map it + if (!(SVMTrait::getSVMMemFlags() & CL_MEM_SVM_FINE_GRAIN_BUFFER)) { + cl_int err = enqueueMapSVM(retValue, CL_TRUE, CL_MAP_READ | CL_MAP_WRITE, size*sizeof(T)); + if (err != CL_SUCCESS) { + std::bad_alloc excep; + throw excep; + } + } + + // If exceptions disabled, return null pointer from allocator + return retValue; + } + + void deallocate(pointer p, size_type) + { + clSVMFree(context_(), p); + } + + /** + * Return the maximum possible allocation size. + * This is the minimum of the maximum sizes of all devices in the context. + */ + size_type max_size() const CL_HPP_NOEXCEPT_ + { + size_type maxSize = std::numeric_limits::max() / sizeof(T); + + for (const Device &d : context_.getInfo()) { + maxSize = std::min( + maxSize, + static_cast(d.getInfo())); + } + + return maxSize; + } + + template< class U, class... Args > + void construct(U* p, Args&&... args) + { + new(p)T(args...); + } + + template< class U > + void destroy(U* p) + { + p->~U(); + } + + /** + * Returns true if the contexts match. + */ + inline bool operator==(SVMAllocator const& rhs) + { + return (context_==rhs.context_); + } + + inline bool operator!=(SVMAllocator const& a) + { + return !operator==(a); + } +}; // class SVMAllocator return cl::pointer(tmp, detail::Deleter{alloc, copies}); + + +template +class SVMAllocator { +public: + typedef void value_type; + typedef value_type* pointer; + typedef const value_type* const_pointer; + + template + struct rebind + { + typedef SVMAllocator other; + }; + + template + friend class SVMAllocator; +}; + +#if !defined(CL_HPP_NO_STD_UNIQUE_PTR) +namespace detail +{ + template + class Deleter { + private: + Alloc alloc_; + size_type copies_; + + public: + typedef typename std::allocator_traits::pointer pointer; + + Deleter(const Alloc &alloc, size_type copies) : alloc_{ alloc }, copies_{ copies } + { + } + + void operator()(pointer ptr) const { + Alloc tmpAlloc{ alloc_ }; + std::allocator_traits::destroy(tmpAlloc, std::addressof(*ptr)); + std::allocator_traits::deallocate(tmpAlloc, ptr, copies_); + } + }; +} // namespace detail + +/** + * Allocation operation compatible with std::allocate_ptr. + * Creates a unique_ptr by default. + * This requirement is to ensure that the control block is not + * allocated in memory inaccessible to the host. + */ +template +cl::pointer> allocate_pointer(const Alloc &alloc_, Args&&... args) +{ + Alloc alloc(alloc_); + static const size_type copies = 1; + + // Ensure that creation of the management block and the + // object are dealt with separately such that we only provide a deleter + + T* tmp = std::allocator_traits::allocate(alloc, copies); + if (!tmp) { + std::bad_alloc excep; + throw excep; + } + try { + std::allocator_traits::construct( + alloc, + std::addressof(*tmp), + std::forward(args)...); + + return cl::pointer>(tmp, detail::Deleter{alloc, copies}); + } + catch (std::bad_alloc b) + { + std::allocator_traits::deallocate(alloc, tmp, copies); + throw; + } +} + +template< class T, class SVMTrait, class... Args > +cl::pointer>> allocate_svm(Args... args) +{ + SVMAllocator alloc; + return cl::allocate_pointer(alloc, args...); +} + +template< class T, class SVMTrait, class... Args > +cl::pointer>> allocate_svm(const cl::Context &c, Args... args) +{ + SVMAllocator alloc(c); + return cl::allocate_pointer(alloc, args...); +} +#endif // #if !defined(CL_HPP_NO_STD_UNIQUE_PTR) + +/*! \brief Vector alias to simplify contruction of coarse-grained SVM containers. + * + */ +template < class T > +using coarse_svm_vector = vector>>; + +/*! \brief Vector alias to simplify contruction of fine-grained SVM containers. +* +*/ +template < class T > +using fine_svm_vector = vector>>; + +/*! \brief Vector alias to simplify contruction of fine-grained SVM containers that support platform atomics. +* +*/ +template < class T > +using atomic_svm_vector = vector>>; + +#endif // #if CL_HPP_TARGET_OPENCL_VERSION >= 200 + + +/*! \brief Class interface for Buffer Memory Objects. + * + * See Memory for details about copy semantics, etc. + * + * \see Memory + */ +class Buffer : public Memory +{ +public: + + /*! \brief Constructs a Buffer in a specified context. + * + * Wraps clCreateBuffer(). + * + * \param host_ptr Storage to be used if the CL_MEM_USE_HOST_PTR flag was + * specified. Note alignment & exclusivity requirements. + */ + Buffer( + const Context& context, + cl_mem_flags flags, + size_type size, + void* host_ptr = NULL, + cl_int* err = NULL) + { + cl_int error; + object_ = ::clCreateBuffer(context(), flags, size, host_ptr, &error); + + detail::errHandler(error, __CREATE_BUFFER_ERR); + if (err != NULL) { + *err = error; + } + } + + /*! \brief Constructs a Buffer in the default context. + * + * Wraps clCreateBuffer(). + * + * \param host_ptr Storage to be used if the CL_MEM_USE_HOST_PTR flag was + * specified. Note alignment & exclusivity requirements. + * + * \see Context::getDefault() + */ + Buffer( + cl_mem_flags flags, + size_type size, + void* host_ptr = NULL, + cl_int* err = NULL) + { + cl_int error; + + Context context = Context::getDefault(err); + + object_ = ::clCreateBuffer(context(), flags, size, host_ptr, &error); + + detail::errHandler(error, __CREATE_BUFFER_ERR); + if (err != NULL) { + *err = error; + } + } + + /*! + * \brief Construct a Buffer from a host container via iterators. + * IteratorType must be random access. + * If useHostPtr is specified iterators must represent contiguous data. + */ + template< typename IteratorType > + Buffer( + IteratorType startIterator, + IteratorType endIterator, + bool readOnly, + bool useHostPtr = false, + cl_int* err = NULL) + { + typedef typename std::iterator_traits::value_type DataType; + cl_int error; + + cl_mem_flags flags = 0; + if( readOnly ) { + flags |= CL_MEM_READ_ONLY; + } + else { + flags |= CL_MEM_READ_WRITE; + } + if( useHostPtr ) { + flags |= CL_MEM_USE_HOST_PTR; + } + + size_type size = sizeof(DataType)*(endIterator - startIterator); + + Context context = Context::getDefault(err); + + if( useHostPtr ) { + object_ = ::clCreateBuffer(context(), flags, size, static_cast(&*startIterator), &error); + } else { + object_ = ::clCreateBuffer(context(), flags, size, 0, &error); + } + + detail::errHandler(error, __CREATE_BUFFER_ERR); + if (err != NULL) { + *err = error; + } + + if( !useHostPtr ) { + error = cl::copy(startIterator, endIterator, *this); + detail::errHandler(error, __CREATE_BUFFER_ERR); + if (err != NULL) { + *err = error; + } + } + } + + /*! + * \brief Construct a Buffer from a host container via iterators using a specified context. + * IteratorType must be random access. + * If useHostPtr is specified iterators must represent contiguous data. + */ + template< typename IteratorType > + Buffer(const Context &context, IteratorType startIterator, IteratorType endIterator, + bool readOnly, bool useHostPtr = false, cl_int* err = NULL); + + /*! + * \brief Construct a Buffer from a host container via iterators using a specified queue. + * If useHostPtr is specified iterators must be random access. + */ + template< typename IteratorType > + Buffer(const CommandQueue &queue, IteratorType startIterator, IteratorType endIterator, + bool readOnly, bool useHostPtr = false, cl_int* err = NULL); + + //! \brief Default constructor - initializes to NULL. + Buffer() : Memory() { } + + /*! \brief Constructor from cl_mem - takes ownership. + * + * \param retainObject will cause the constructor to retain its cl object. + * Defaults to false to maintain compatibility with earlier versions. + * + * See Memory for further details. + */ + explicit Buffer(const cl_mem& buffer, bool retainObject = false) : + Memory(buffer, retainObject) { } + + /*! \brief Assignment from cl_mem - performs shallow copy. + * + * See Memory for further details. + */ + Buffer& operator = (const cl_mem& rhs) + { + Memory::operator=(rhs); + return *this; + } + + /*! \brief Copy constructor to forward copy to the superclass correctly. + * Required for MSVC. + */ + Buffer(const Buffer& buf) : Memory(buf) {} + + /*! \brief Copy assignment to forward copy to the superclass correctly. + * Required for MSVC. + */ + Buffer& operator = (const Buffer &buf) + { + Memory::operator=(buf); + return *this; + } + + /*! \brief Move constructor to forward move to the superclass correctly. + * Required for MSVC. + */ + Buffer(Buffer&& buf) CL_HPP_NOEXCEPT_ : Memory(std::move(buf)) {} + + /*! \brief Move assignment to forward move to the superclass correctly. + * Required for MSVC. + */ + Buffer& operator = (Buffer &&buf) + { + Memory::operator=(std::move(buf)); + return *this; + } + +#if CL_HPP_TARGET_OPENCL_VERSION >= 110 + /*! \brief Creates a new buffer object from this. + * + * Wraps clCreateSubBuffer(). + */ + Buffer createSubBuffer( + cl_mem_flags flags, + cl_buffer_create_type buffer_create_type, + const void * buffer_create_info, + cl_int * err = NULL) + { + Buffer result; + cl_int error; + result.object_ = ::clCreateSubBuffer( + object_, + flags, + buffer_create_type, + buffer_create_info, + &error); + + detail::errHandler(error, __CREATE_SUBBUFFER_ERR); + if (err != NULL) { + *err = error; + } + + return result; + } +#endif // CL_HPP_TARGET_OPENCL_VERSION >= 110 +}; + +#if defined (CL_HPP_USE_DX_INTEROP) +/*! \brief Class interface for creating OpenCL buffers from ID3D10Buffer's. + * + * This is provided to facilitate interoperability with Direct3D. + * + * See Memory for details about copy semantics, etc. + * + * \see Memory + */ +class BufferD3D10 : public Buffer +{ +public: + + + /*! \brief Constructs a BufferD3D10, in a specified context, from a + * given ID3D10Buffer. + * + * Wraps clCreateFromD3D10BufferKHR(). + */ + BufferD3D10( + const Context& context, + cl_mem_flags flags, + ID3D10Buffer* bufobj, + cl_int * err = NULL) : pfn_clCreateFromD3D10BufferKHR(nullptr) + { + typedef CL_API_ENTRY cl_mem (CL_API_CALL *PFN_clCreateFromD3D10BufferKHR)( + cl_context context, cl_mem_flags flags, ID3D10Buffer* buffer, + cl_int* errcode_ret); + PFN_clCreateFromD3D10BufferKHR pfn_clCreateFromD3D10BufferKHR; +#if CL_HPP_TARGET_OPENCL_VERSION >= 120 + vector props = context.getInfo(); + cl_platform platform = -1; + for( int i = 0; i < props.size(); ++i ) { + if( props[i] == CL_CONTEXT_PLATFORM ) { + platform = props[i+1]; + } + } + CL_HPP_INIT_CL_EXT_FCN_PTR_PLATFORM_(platform, clCreateFromD3D10BufferKHR); +#elif CL_HPP_TARGET_OPENCL_VERSION >= 110 + CL_HPP_INIT_CL_EXT_FCN_PTR_(clCreateFromD3D10BufferKHR); +#endif + + cl_int error; + object_ = pfn_clCreateFromD3D10BufferKHR( + context(), + flags, + bufobj, + &error); + + detail::errHandler(error, __CREATE_GL_BUFFER_ERR); + if (err != NULL) { + *err = error; + } + } + + //! \brief Default constructor - initializes to NULL. + BufferD3D10() : Buffer() { } + + /*! \brief Constructor from cl_mem - takes ownership. + * + * \param retainObject will cause the constructor to retain its cl object. + * Defaults to false to maintain compatibility with + * earlier versions. + * See Memory for further details. + */ + explicit BufferD3D10(const cl_mem& buffer, bool retainObject = false) : + Buffer(buffer, retainObject) { } + + /*! \brief Assignment from cl_mem - performs shallow copy. + * + * See Memory for further details. + */ + BufferD3D10& operator = (const cl_mem& rhs) + { + Buffer::operator=(rhs); + return *this; + } + + /*! \brief Copy constructor to forward copy to the superclass correctly. + * Required for MSVC. + */ + BufferD3D10(const BufferD3D10& buf) : + Buffer(buf) {} + + /*! \brief Copy assignment to forward copy to the superclass correctly. + * Required for MSVC. + */ + BufferD3D10& operator = (const BufferD3D10 &buf) + { + Buffer::operator=(buf); + return *this; + } + + /*! \brief Move constructor to forward move to the superclass correctly. + * Required for MSVC. + */ + BufferD3D10(BufferD3D10&& buf) CL_HPP_NOEXCEPT_ : Buffer(std::move(buf)) {} + + /*! \brief Move assignment to forward move to the superclass correctly. + * Required for MSVC. + */ + BufferD3D10& operator = (BufferD3D10 &&buf) + { + Buffer::operator=(std::move(buf)); + return *this; + } +}; +#endif + +/*! \brief Class interface for GL Buffer Memory Objects. + * + * This is provided to facilitate interoperability with OpenGL. + * + * See Memory for details about copy semantics, etc. + * + * \see Memory + */ +class BufferGL : public Buffer +{ +public: + /*! \brief Constructs a BufferGL in a specified context, from a given + * GL buffer. + * + * Wraps clCreateFromGLBuffer(). + */ + BufferGL( + const Context& context, + cl_mem_flags flags, + cl_GLuint bufobj, + cl_int * err = NULL) + { + cl_int error; + object_ = ::clCreateFromGLBuffer( + context(), + flags, + bufobj, + &error); + + detail::errHandler(error, __CREATE_GL_BUFFER_ERR); + if (err != NULL) { + *err = error; + } + } + + //! \brief Default constructor - initializes to NULL. + BufferGL() : Buffer() { } + + /*! \brief Constructor from cl_mem - takes ownership. + * + * \param retainObject will cause the constructor to retain its cl object. + * Defaults to false to maintain compatibility with + * earlier versions. + * See Memory for further details. + */ + explicit BufferGL(const cl_mem& buffer, bool retainObject = false) : + Buffer(buffer, retainObject) { } + + /*! \brief Assignment from cl_mem - performs shallow copy. + * + * See Memory for further details. + */ + BufferGL& operator = (const cl_mem& rhs) + { + Buffer::operator=(rhs); + return *this; + } + + /*! \brief Copy constructor to forward copy to the superclass correctly. + * Required for MSVC. + */ + BufferGL(const BufferGL& buf) : Buffer(buf) {} + + /*! \brief Copy assignment to forward copy to the superclass correctly. + * Required for MSVC. + */ + BufferGL& operator = (const BufferGL &buf) + { + Buffer::operator=(buf); + return *this; + } + + /*! \brief Move constructor to forward move to the superclass correctly. + * Required for MSVC. + */ + BufferGL(BufferGL&& buf) CL_HPP_NOEXCEPT_ : Buffer(std::move(buf)) {} + + /*! \brief Move assignment to forward move to the superclass correctly. + * Required for MSVC. + */ + BufferGL& operator = (BufferGL &&buf) + { + Buffer::operator=(std::move(buf)); + return *this; + } + + //! \brief Wrapper for clGetGLObjectInfo(). + cl_int getObjectInfo( + cl_gl_object_type *type, + cl_GLuint * gl_object_name) + { + return detail::errHandler( + ::clGetGLObjectInfo(object_,type,gl_object_name), + __GET_GL_OBJECT_INFO_ERR); + } +}; + +/*! \brief Class interface for GL Render Buffer Memory Objects. + * + * This is provided to facilitate interoperability with OpenGL. + * + * See Memory for details about copy semantics, etc. + * + * \see Memory + */ +class BufferRenderGL : public Buffer +{ +public: + /*! \brief Constructs a BufferRenderGL in a specified context, from a given + * GL Renderbuffer. + * + * Wraps clCreateFromGLRenderbuffer(). + */ + BufferRenderGL( + const Context& context, + cl_mem_flags flags, + cl_GLuint bufobj, + cl_int * err = NULL) + { + cl_int error; + object_ = ::clCreateFromGLRenderbuffer( + context(), + flags, + bufobj, + &error); + + detail::errHandler(error, __CREATE_GL_RENDER_BUFFER_ERR); + if (err != NULL) { + *err = error; + } + } + + //! \brief Default constructor - initializes to NULL. + BufferRenderGL() : Buffer() { } + + /*! \brief Constructor from cl_mem - takes ownership. + * + * \param retainObject will cause the constructor to retain its cl object. + * Defaults to false to maintain compatibility with + * earlier versions. + * See Memory for further details. + */ + explicit BufferRenderGL(const cl_mem& buffer, bool retainObject = false) : + Buffer(buffer, retainObject) { } + + /*! \brief Assignment from cl_mem - performs shallow copy. + * + * See Memory for further details. + */ + BufferRenderGL& operator = (const cl_mem& rhs) + { + Buffer::operator=(rhs); + return *this; + } + + /*! \brief Copy constructor to forward copy to the superclass correctly. + * Required for MSVC. + */ + BufferRenderGL(const BufferRenderGL& buf) : Buffer(buf) {} + + /*! \brief Copy assignment to forward copy to the superclass correctly. + * Required for MSVC. + */ + BufferRenderGL& operator = (const BufferRenderGL &buf) + { + Buffer::operator=(buf); + return *this; + } + + /*! \brief Move constructor to forward move to the superclass correctly. + * Required for MSVC. + */ + BufferRenderGL(BufferRenderGL&& buf) CL_HPP_NOEXCEPT_ : Buffer(std::move(buf)) {} + + /*! \brief Move assignment to forward move to the superclass correctly. + * Required for MSVC. + */ + BufferRenderGL& operator = (BufferRenderGL &&buf) + { + Buffer::operator=(std::move(buf)); + return *this; + } + + //! \brief Wrapper for clGetGLObjectInfo(). + cl_int getObjectInfo( + cl_gl_object_type *type, + cl_GLuint * gl_object_name) + { + return detail::errHandler( + ::clGetGLObjectInfo(object_,type,gl_object_name), + __GET_GL_OBJECT_INFO_ERR); + } +}; + +/*! \brief C++ base class for Image Memory objects. + * + * See Memory for details about copy semantics, etc. + * + * \see Memory + */ +class Image : public Memory +{ +protected: + //! \brief Default constructor - initializes to NULL. + Image() : Memory() { } + + /*! \brief Constructor from cl_mem - takes ownership. + * + * \param retainObject will cause the constructor to retain its cl object. + * Defaults to false to maintain compatibility with + * earlier versions. + * See Memory for further details. + */ + explicit Image(const cl_mem& image, bool retainObject = false) : + Memory(image, retainObject) { } + + /*! \brief Assignment from cl_mem - performs shallow copy. + * + * See Memory for further details. + */ + Image& operator = (const cl_mem& rhs) + { + Memory::operator=(rhs); + return *this; + } + + /*! \brief Copy constructor to forward copy to the superclass correctly. + * Required for MSVC. + */ + Image(const Image& img) : Memory(img) {} + + /*! \brief Copy assignment to forward copy to the superclass correctly. + * Required for MSVC. + */ + Image& operator = (const Image &img) + { + Memory::operator=(img); + return *this; + } + + /*! \brief Move constructor to forward move to the superclass correctly. + * Required for MSVC. + */ + Image(Image&& img) CL_HPP_NOEXCEPT_ : Memory(std::move(img)) {} + + /*! \brief Move assignment to forward move to the superclass correctly. + * Required for MSVC. + */ + Image& operator = (Image &&img) + { + Memory::operator=(std::move(img)); + return *this; + } + + +public: + //! \brief Wrapper for clGetImageInfo(). + template + cl_int getImageInfo(cl_image_info name, T* param) const + { + return detail::errHandler( + detail::getInfo(&::clGetImageInfo, object_, name, param), + __GET_IMAGE_INFO_ERR); + } + + //! \brief Wrapper for clGetImageInfo() that returns by value. + template typename + detail::param_traits::param_type + getImageInfo(cl_int* err = NULL) const + { + typename detail::param_traits< + detail::cl_image_info, name>::param_type param; + cl_int result = getImageInfo(name, ¶m); + if (err != NULL) { + *err = result; + } + return param; + } +}; + +#if CL_HPP_TARGET_OPENCL_VERSION >= 120 +/*! \brief Class interface for 1D Image Memory objects. + * + * See Memory for details about copy semantics, etc. + * + * \see Memory + */ +class Image1D : public Image +{ +public: + /*! \brief Constructs a 1D Image in a specified context. + * + * Wraps clCreateImage(). + */ + Image1D( + const Context& context, + cl_mem_flags flags, + ImageFormat format, + size_type width, + void* host_ptr = NULL, + cl_int* err = NULL) + { + cl_int error; + cl_image_desc desc = + { + CL_MEM_OBJECT_IMAGE1D, + width, + 0, 0, 0, 0, 0, 0, 0, 0 + }; + object_ = ::clCreateImage( + context(), + flags, + &format, + &desc, + host_ptr, + &error); + + detail::errHandler(error, __CREATE_IMAGE_ERR); + if (err != NULL) { + *err = error; + } + } + + //! \brief Default constructor - initializes to NULL. + Image1D() { } + + /*! \brief Constructor from cl_mem - takes ownership. + * + * \param retainObject will cause the constructor to retain its cl object. + * Defaults to false to maintain compatibility with + * earlier versions. + * See Memory for further details. + */ + explicit Image1D(const cl_mem& image1D, bool retainObject = false) : + Image(image1D, retainObject) { } + + /*! \brief Assignment from cl_mem - performs shallow copy. + * + * See Memory for further details. + */ + Image1D& operator = (const cl_mem& rhs) + { + Image::operator=(rhs); + return *this; + } + + /*! \brief Copy constructor to forward copy to the superclass correctly. + * Required for MSVC. + */ + Image1D(const Image1D& img) : Image(img) {} + + /*! \brief Copy assignment to forward copy to the superclass correctly. + * Required for MSVC. + */ + Image1D& operator = (const Image1D &img) + { + Image::operator=(img); + return *this; + } + + /*! \brief Move constructor to forward move to the superclass correctly. + * Required for MSVC. + */ + Image1D(Image1D&& img) CL_HPP_NOEXCEPT_ : Image(std::move(img)) {} + + /*! \brief Move assignment to forward move to the superclass correctly. + * Required for MSVC. + */ + Image1D& operator = (Image1D &&img) + { + Image::operator=(std::move(img)); + return *this; + } + +}; + +/*! \class Image1DBuffer + * \brief Image interface for 1D buffer images. + */ +class Image1DBuffer : public Image +{ +public: + Image1DBuffer( + const Context& context, + cl_mem_flags flags, + ImageFormat format, + size_type width, + const Buffer &buffer, + cl_int* err = NULL) + { + cl_int error; + cl_image_desc desc = + { + CL_MEM_OBJECT_IMAGE1D_BUFFER, + width, + 0, 0, 0, 0, 0, 0, 0, + buffer() + }; + object_ = ::clCreateImage( + context(), + flags, + &format, + &desc, + NULL, + &error); + + detail::errHandler(error, __CREATE_IMAGE_ERR); + if (err != NULL) { + *err = error; + } + } + + Image1DBuffer() { } + + /*! \brief Constructor from cl_mem - takes ownership. + * + * \param retainObject will cause the constructor to retain its cl object. + * Defaults to false to maintain compatibility with + * earlier versions. + * See Memory for further details. + */ + explicit Image1DBuffer(const cl_mem& image1D, bool retainObject = false) : + Image(image1D, retainObject) { } + + Image1DBuffer& operator = (const cl_mem& rhs) + { + Image::operator=(rhs); + return *this; + } + + /*! \brief Copy constructor to forward copy to the superclass correctly. + * Required for MSVC. + */ + Image1DBuffer(const Image1DBuffer& img) : Image(img) {} + + /*! \brief Copy assignment to forward copy to the superclass correctly. + * Required for MSVC. + */ + Image1DBuffer& operator = (const Image1DBuffer &img) + { + Image::operator=(img); + return *this; + } + + /*! \brief Move constructor to forward move to the superclass correctly. + * Required for MSVC. + */ + Image1DBuffer(Image1DBuffer&& img) CL_HPP_NOEXCEPT_ : Image(std::move(img)) {} + + /*! \brief Move assignment to forward move to the superclass correctly. + * Required for MSVC. + */ + Image1DBuffer& operator = (Image1DBuffer &&img) + { + Image::operator=(std::move(img)); + return *this; + } + +}; + +/*! \class Image1DArray + * \brief Image interface for arrays of 1D images. + */ +class Image1DArray : public Image +{ +public: + Image1DArray( + const Context& context, + cl_mem_flags flags, + ImageFormat format, + size_type arraySize, + size_type width, + size_type rowPitch, + void* host_ptr = NULL, + cl_int* err = NULL) + { + cl_int error; + cl_image_desc desc = + { + CL_MEM_OBJECT_IMAGE1D_ARRAY, + width, + 0, 0, // height, depth (unused) + arraySize, + rowPitch, + 0, 0, 0, 0 + }; + object_ = ::clCreateImage( + context(), + flags, + &format, + &desc, + host_ptr, + &error); + + detail::errHandler(error, __CREATE_IMAGE_ERR); + if (err != NULL) { + *err = error; + } + } + + Image1DArray() { } + + /*! \brief Constructor from cl_mem - takes ownership. + * + * \param retainObject will cause the constructor to retain its cl object. + * Defaults to false to maintain compatibility with + * earlier versions. + * See Memory for further details. + */ + explicit Image1DArray(const cl_mem& imageArray, bool retainObject = false) : + Image(imageArray, retainObject) { } + + + Image1DArray& operator = (const cl_mem& rhs) + { + Image::operator=(rhs); + return *this; + } + + /*! \brief Copy constructor to forward copy to the superclass correctly. + * Required for MSVC. + */ + Image1DArray(const Image1DArray& img) : Image(img) {} + + /*! \brief Copy assignment to forward copy to the superclass correctly. + * Required for MSVC. + */ + Image1DArray& operator = (const Image1DArray &img) + { + Image::operator=(img); + return *this; + } + + /*! \brief Move constructor to forward move to the superclass correctly. + * Required for MSVC. + */ + Image1DArray(Image1DArray&& img) CL_HPP_NOEXCEPT_ : Image(std::move(img)) {} + + /*! \brief Move assignment to forward move to the superclass correctly. + * Required for MSVC. + */ + Image1DArray& operator = (Image1DArray &&img) + { + Image::operator=(std::move(img)); + return *this; + } + +}; +#endif // #if CL_HPP_TARGET_OPENCL_VERSION >= 120 + + +/*! \brief Class interface for 2D Image Memory objects. + * + * See Memory for details about copy semantics, etc. + * + * \see Memory + */ +class Image2D : public Image +{ +public: + /*! \brief Constructs a 2D Image in a specified context. + * + * Wraps clCreateImage(). + */ + Image2D( + const Context& context, + cl_mem_flags flags, + ImageFormat format, + size_type width, + size_type height, + size_type row_pitch = 0, + void* host_ptr = NULL, + cl_int* err = NULL) + { + cl_int error; + bool useCreateImage; + +#if CL_HPP_TARGET_OPENCL_VERSION >= 120 && CL_HPP_MINIMUM_OPENCL_VERSION < 120 + // Run-time decision based on the actual platform + { + cl_uint version = detail::getContextPlatformVersion(context()); + useCreateImage = (version >= 0x10002); // OpenCL 1.2 or above + } +#elif CL_HPP_TARGET_OPENCL_VERSION >= 120 + useCreateImage = true; +#else + useCreateImage = false; +#endif + +#if CL_HPP_TARGET_OPENCL_VERSION >= 120 + if (useCreateImage) + { + cl_image_desc desc = + { + CL_MEM_OBJECT_IMAGE2D, + width, + height, + 0, 0, // depth, array size (unused) + row_pitch, + 0, 0, 0, 0 + }; + object_ = ::clCreateImage( + context(), + flags, + &format, + &desc, + host_ptr, + &error); + + detail::errHandler(error, __CREATE_IMAGE_ERR); + if (err != NULL) { + *err = error; + } + } +#endif // CL_HPP_TARGET_OPENCL_VERSION >= 120 +#if CL_HPP_MINIMUM_OPENCL_VERSION < 120 + if (!useCreateImage) + { + object_ = ::clCreateImage2D( + context(), flags,&format, width, height, row_pitch, host_ptr, &error); + + detail::errHandler(error, __CREATE_IMAGE2D_ERR); + if (err != NULL) { + *err = error; + } + } +#endif // CL_HPP_MINIMUM_OPENCL_VERSION < 120 + } + +#if CL_HPP_TARGET_OPENCL_VERSION >= 200 || defined(CL_HPP_USE_CL_IMAGE2D_FROM_BUFFER_KHR) + /*! \brief Constructs a 2D Image from a buffer. + * \note This will share storage with the underlying buffer. + * + * Wraps clCreateImage(). + */ + Image2D( + const Context& context, + ImageFormat format, + const Buffer &sourceBuffer, + size_type width, + size_type height, + size_type row_pitch = 0, + cl_int* err = nullptr) + { + cl_int error; + + cl_image_desc desc = + { + CL_MEM_OBJECT_IMAGE2D, + width, + height, + 0, 0, // depth, array size (unused) + row_pitch, + 0, 0, 0, + // Use buffer as input to image + sourceBuffer() + }; + object_ = ::clCreateImage( + context(), + 0, // flags inherited from buffer + &format, + &desc, + nullptr, + &error); + + detail::errHandler(error, __CREATE_IMAGE_ERR); + if (err != nullptr) { + *err = error; + } + } +#endif //#if CL_HPP_TARGET_OPENCL_VERSION >= 200 || defined(CL_HPP_USE_CL_IMAGE2D_FROM_BUFFER_KHR) + +#if CL_HPP_TARGET_OPENCL_VERSION >= 200 + /*! \brief Constructs a 2D Image from an image. + * \note This will share storage with the underlying image but may + * reinterpret the channel order and type. + * + * The image will be created matching with a descriptor matching the source. + * + * \param order is the channel order to reinterpret the image data as. + * The channel order may differ as described in the OpenCL + * 2.0 API specification. + * + * Wraps clCreateImage(). + */ + Image2D( + const Context& context, + cl_channel_order order, + const Image &sourceImage, + cl_int* err = nullptr) + { + cl_int error; + + // Descriptor fields have to match source image + size_type sourceWidth = + sourceImage.getImageInfo(); + size_type sourceHeight = + sourceImage.getImageInfo(); + size_type sourceRowPitch = + sourceImage.getImageInfo(); + cl_uint sourceNumMIPLevels = + sourceImage.getImageInfo(); + cl_uint sourceNumSamples = + sourceImage.getImageInfo(); + cl_image_format sourceFormat = + sourceImage.getImageInfo(); + + // Update only the channel order. + // Channel format inherited from source. + sourceFormat.image_channel_order = order; + cl_image_desc desc = + { + CL_MEM_OBJECT_IMAGE2D, + sourceWidth, + sourceHeight, + 0, 0, // depth (unused), array size (unused) + sourceRowPitch, + 0, // slice pitch (unused) + sourceNumMIPLevels, + sourceNumSamples, + // Use buffer as input to image + sourceImage() + }; + object_ = ::clCreateImage( + context(), + 0, // flags should be inherited from mem_object + &sourceFormat, + &desc, + nullptr, + &error); + + detail::errHandler(error, __CREATE_IMAGE_ERR); + if (err != nullptr) { + *err = error; + } + } +#endif //#if CL_HPP_TARGET_OPENCL_VERSION >= 200 + + //! \brief Default constructor - initializes to NULL. + Image2D() { } + + /*! \brief Constructor from cl_mem - takes ownership. + * + * \param retainObject will cause the constructor to retain its cl object. + * Defaults to false to maintain compatibility with + * earlier versions. + * See Memory for further details. + */ + explicit Image2D(const cl_mem& image2D, bool retainObject = false) : + Image(image2D, retainObject) { } + + /*! \brief Assignment from cl_mem - performs shallow copy. + * + * See Memory for further details. + */ + Image2D& operator = (const cl_mem& rhs) + { + Image::operator=(rhs); + return *this; + } + + /*! \brief Copy constructor to forward copy to the superclass correctly. + * Required for MSVC. + */ + Image2D(const Image2D& img) : Image(img) {} + + /*! \brief Copy assignment to forward copy to the superclass correctly. + * Required for MSVC. + */ + Image2D& operator = (const Image2D &img) + { + Image::operator=(img); + return *this; + } + + /*! \brief Move constructor to forward move to the superclass correctly. + * Required for MSVC. + */ + Image2D(Image2D&& img) CL_HPP_NOEXCEPT_ : Image(std::move(img)) {} + + /*! \brief Move assignment to forward move to the superclass correctly. + * Required for MSVC. + */ + Image2D& operator = (Image2D &&img) + { + Image::operator=(std::move(img)); + return *this; + } + +}; + + +#if defined(CL_USE_DEPRECATED_OPENCL_1_1_APIS) +/*! \brief Class interface for GL 2D Image Memory objects. + * + * This is provided to facilitate interoperability with OpenGL. + * + * See Memory for details about copy semantics, etc. + * + * \see Memory + * \note Deprecated for OpenCL 1.2. Please use ImageGL instead. + */ +class CL_EXT_PREFIX__VERSION_1_1_DEPRECATED Image2DGL : public Image2D +{ +public: + /*! \brief Constructs an Image2DGL in a specified context, from a given + * GL Texture. + * + * Wraps clCreateFromGLTexture2D(). + */ + Image2DGL( + const Context& context, + cl_mem_flags flags, + cl_GLenum target, + cl_GLint miplevel, + cl_GLuint texobj, + cl_int * err = NULL) + { + cl_int error; + object_ = ::clCreateFromGLTexture2D( + context(), + flags, + target, + miplevel, + texobj, + &error); + + detail::errHandler(error, __CREATE_GL_TEXTURE_2D_ERR); + if (err != NULL) { + *err = error; + } + + } + + //! \brief Default constructor - initializes to NULL. + Image2DGL() : Image2D() { } + + /*! \brief Constructor from cl_mem - takes ownership. + * + * \param retainObject will cause the constructor to retain its cl object. + * Defaults to false to maintain compatibility with + * earlier versions. + * See Memory for further details. + */ + explicit Image2DGL(const cl_mem& image, bool retainObject = false) : + Image2D(image, retainObject) { } + + /*! \brief Assignment from cl_mem - performs shallow copy. + *c + * See Memory for further details. + */ + Image2DGL& operator = (const cl_mem& rhs) + { + Image2D::operator=(rhs); + return *this; + } + + /*! \brief Copy constructor to forward copy to the superclass correctly. + * Required for MSVC. + */ + Image2DGL(const Image2DGL& img) : Image2D(img) {} + + /*! \brief Copy assignment to forward copy to the superclass correctly. + * Required for MSVC. + */ + Image2DGL& operator = (const Image2DGL &img) + { + Image2D::operator=(img); + return *this; + } + + /*! \brief Move constructor to forward move to the superclass correctly. + * Required for MSVC. + */ + Image2DGL(Image2DGL&& img) CL_HPP_NOEXCEPT_ : Image2D(std::move(img)) {} + + /*! \brief Move assignment to forward move to the superclass correctly. + * Required for MSVC. + */ + Image2DGL& operator = (Image2DGL &&img) + { + Image2D::operator=(std::move(img)); + return *this; + } + +} CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED; +#endif // CL_USE_DEPRECATED_OPENCL_1_1_APIS + +#if CL_HPP_TARGET_OPENCL_VERSION >= 120 +/*! \class Image2DArray + * \brief Image interface for arrays of 2D images. + */ +class Image2DArray : public Image +{ +public: + Image2DArray( + const Context& context, + cl_mem_flags flags, + ImageFormat format, + size_type arraySize, + size_type width, + size_type height, + size_type rowPitch, + size_type slicePitch, + void* host_ptr = NULL, + cl_int* err = NULL) + { + cl_int error; + cl_image_desc desc = + { + CL_MEM_OBJECT_IMAGE2D_ARRAY, + width, + height, + 0, // depth (unused) + arraySize, + rowPitch, + slicePitch, + 0, 0, 0 + }; + object_ = ::clCreateImage( + context(), + flags, + &format, + &desc, + host_ptr, + &error); + + detail::errHandler(error, __CREATE_IMAGE_ERR); + if (err != NULL) { + *err = error; + } + } + + Image2DArray() { } + + /*! \brief Constructor from cl_mem - takes ownership. + * + * \param retainObject will cause the constructor to retain its cl object. + * Defaults to false to maintain compatibility with + * earlier versions. + * See Memory for further details. + */ + explicit Image2DArray(const cl_mem& imageArray, bool retainObject = false) : Image(imageArray, retainObject) { } + + Image2DArray& operator = (const cl_mem& rhs) + { + Image::operator=(rhs); + return *this; + } + + /*! \brief Copy constructor to forward copy to the superclass correctly. + * Required for MSVC. + */ + Image2DArray(const Image2DArray& img) : Image(img) {} + + /*! \brief Copy assignment to forward copy to the superclass correctly. + * Required for MSVC. + */ + Image2DArray& operator = (const Image2DArray &img) + { + Image::operator=(img); + return *this; + } + + /*! \brief Move constructor to forward move to the superclass correctly. + * Required for MSVC. + */ + Image2DArray(Image2DArray&& img) CL_HPP_NOEXCEPT_ : Image(std::move(img)) {} + + /*! \brief Move assignment to forward move to the superclass correctly. + * Required for MSVC. + */ + Image2DArray& operator = (Image2DArray &&img) + { + Image::operator=(std::move(img)); + return *this; + } +}; +#endif // #if CL_HPP_TARGET_OPENCL_VERSION >= 120 + +/*! \brief Class interface for 3D Image Memory objects. + * + * See Memory for details about copy semantics, etc. + * + * \see Memory + */ +class Image3D : public Image +{ +public: + /*! \brief Constructs a 3D Image in a specified context. + * + * Wraps clCreateImage(). + */ + Image3D( + const Context& context, + cl_mem_flags flags, + ImageFormat format, + size_type width, + size_type height, + size_type depth, + size_type row_pitch = 0, + size_type slice_pitch = 0, + void* host_ptr = NULL, + cl_int* err = NULL) + { + cl_int error; + bool useCreateImage; + +#if CL_HPP_TARGET_OPENCL_VERSION >= 120 && CL_HPP_MINIMUM_OPENCL_VERSION < 120 + // Run-time decision based on the actual platform + { + cl_uint version = detail::getContextPlatformVersion(context()); + useCreateImage = (version >= 0x10002); // OpenCL 1.2 or above + } +#elif CL_HPP_TARGET_OPENCL_VERSION >= 120 + useCreateImage = true; +#else + useCreateImage = false; +#endif + +#if CL_HPP_TARGET_OPENCL_VERSION >= 120 + if (useCreateImage) + { + cl_image_desc desc = + { + CL_MEM_OBJECT_IMAGE3D, + width, + height, + depth, + 0, // array size (unused) + row_pitch, + slice_pitch, + 0, 0, 0 + }; + object_ = ::clCreateImage( + context(), + flags, + &format, + &desc, + host_ptr, + &error); + + detail::errHandler(error, __CREATE_IMAGE_ERR); + if (err != NULL) { + *err = error; + } + } +#endif // CL_HPP_TARGET_OPENCL_VERSION >= 120 +#if CL_HPP_MINIMUM_OPENCL_VERSION < 120 + if (!useCreateImage) + { + object_ = ::clCreateImage3D( + context(), flags, &format, width, height, depth, row_pitch, + slice_pitch, host_ptr, &error); + + detail::errHandler(error, __CREATE_IMAGE3D_ERR); + if (err != NULL) { + *err = error; + } + } +#endif // CL_HPP_MINIMUM_OPENCL_VERSION < 120 + } + + //! \brief Default constructor - initializes to NULL. + Image3D() : Image() { } + + /*! \brief Constructor from cl_mem - takes ownership. + * + * \param retainObject will cause the constructor to retain its cl object. + * Defaults to false to maintain compatibility with + * earlier versions. + * See Memory for further details. + */ + explicit Image3D(const cl_mem& image3D, bool retainObject = false) : + Image(image3D, retainObject) { } + + /*! \brief Assignment from cl_mem - performs shallow copy. + * + * See Memory for further details. + */ + Image3D& operator = (const cl_mem& rhs) + { + Image::operator=(rhs); + return *this; + } + + /*! \brief Copy constructor to forward copy to the superclass correctly. + * Required for MSVC. + */ + Image3D(const Image3D& img) : Image(img) {} + + /*! \brief Copy assignment to forward copy to the superclass correctly. + * Required for MSVC. + */ + Image3D& operator = (const Image3D &img) + { + Image::operator=(img); + return *this; + } + + /*! \brief Move constructor to forward move to the superclass correctly. + * Required for MSVC. + */ + Image3D(Image3D&& img) CL_HPP_NOEXCEPT_ : Image(std::move(img)) {} + + /*! \brief Move assignment to forward move to the superclass correctly. + * Required for MSVC. + */ + Image3D& operator = (Image3D &&img) + { + Image::operator=(std::move(img)); + return *this; + } +}; + +#if defined(CL_USE_DEPRECATED_OPENCL_1_1_APIS) +/*! \brief Class interface for GL 3D Image Memory objects. + * + * This is provided to facilitate interoperability with OpenGL. + * + * See Memory for details about copy semantics, etc. + * + * \see Memory + */ +class Image3DGL : public Image3D +{ +public: + /*! \brief Constructs an Image3DGL in a specified context, from a given + * GL Texture. + * + * Wraps clCreateFromGLTexture3D(). + */ + Image3DGL( + const Context& context, + cl_mem_flags flags, + cl_GLenum target, + cl_GLint miplevel, + cl_GLuint texobj, + cl_int * err = NULL) + { + cl_int error; + object_ = ::clCreateFromGLTexture3D( + context(), + flags, + target, + miplevel, + texobj, + &error); + + detail::errHandler(error, __CREATE_GL_TEXTURE_3D_ERR); + if (err != NULL) { + *err = error; + } + } + + //! \brief Default constructor - initializes to NULL. + Image3DGL() : Image3D() { } + + /*! \brief Constructor from cl_mem - takes ownership. + * + * \param retainObject will cause the constructor to retain its cl object. + * Defaults to false to maintain compatibility with + * earlier versions. + * See Memory for further details. + */ + explicit Image3DGL(const cl_mem& image, bool retainObject = false) : + Image3D(image, retainObject) { } + + /*! \brief Assignment from cl_mem - performs shallow copy. + * + * See Memory for further details. + */ + Image3DGL& operator = (const cl_mem& rhs) + { + Image3D::operator=(rhs); + return *this; + } + + /*! \brief Copy constructor to forward copy to the superclass correctly. + * Required for MSVC. + */ + Image3DGL(const Image3DGL& img) : Image3D(img) {} + + /*! \brief Copy assignment to forward copy to the superclass correctly. + * Required for MSVC. + */ + Image3DGL& operator = (const Image3DGL &img) + { + Image3D::operator=(img); + return *this; + } + + /*! \brief Move constructor to forward move to the superclass correctly. + * Required for MSVC. + */ + Image3DGL(Image3DGL&& img) CL_HPP_NOEXCEPT_ : Image3D(std::move(img)) {} + + /*! \brief Move assignment to forward move to the superclass correctly. + * Required for MSVC. + */ + Image3DGL& operator = (Image3DGL &&img) + { + Image3D::operator=(std::move(img)); + return *this; + } +}; +#endif // CL_USE_DEPRECATED_OPENCL_1_1_APIS + +#if CL_HPP_TARGET_OPENCL_VERSION >= 120 +/*! \class ImageGL + * \brief general image interface for GL interop. + * We abstract the 2D and 3D GL images into a single instance here + * that wraps all GL sourced images on the grounds that setup information + * was performed by OpenCL anyway. + */ +class ImageGL : public Image +{ +public: + ImageGL( + const Context& context, + cl_mem_flags flags, + cl_GLenum target, + cl_GLint miplevel, + cl_GLuint texobj, + cl_int * err = NULL) + { + cl_int error; + object_ = ::clCreateFromGLTexture( + context(), + flags, + target, + miplevel, + texobj, + &error); + + detail::errHandler(error, __CREATE_GL_TEXTURE_ERR); + if (err != NULL) { + *err = error; + } + } + + ImageGL() : Image() { } + + /*! \brief Constructor from cl_mem - takes ownership. + * + * \param retainObject will cause the constructor to retain its cl object. + * Defaults to false to maintain compatibility with + * earlier versions. + * See Memory for further details. + */ + explicit ImageGL(const cl_mem& image, bool retainObject = false) : + Image(image, retainObject) { } + + ImageGL& operator = (const cl_mem& rhs) + { + Image::operator=(rhs); + return *this; + } + + /*! \brief Copy constructor to forward copy to the superclass correctly. + * Required for MSVC. + */ + ImageGL(const ImageGL& img) : Image(img) {} + + /*! \brief Copy assignment to forward copy to the superclass correctly. + * Required for MSVC. + */ + ImageGL& operator = (const ImageGL &img) + { + Image::operator=(img); + return *this; + } + + /*! \brief Move constructor to forward move to the superclass correctly. + * Required for MSVC. + */ + ImageGL(ImageGL&& img) CL_HPP_NOEXCEPT_ : Image(std::move(img)) {} + + /*! \brief Move assignment to forward move to the superclass correctly. + * Required for MSVC. + */ + ImageGL& operator = (ImageGL &&img) + { + Image::operator=(std::move(img)); + return *this; + } +}; +#endif // CL_HPP_TARGET_OPENCL_VERSION >= 120 + + + +#if CL_HPP_TARGET_OPENCL_VERSION >= 200 +/*! \brief Class interface for Pipe Memory Objects. +* +* See Memory for details about copy semantics, etc. +* +* \see Memory +*/ +class Pipe : public Memory +{ +public: + + /*! \brief Constructs a Pipe in a specified context. + * + * Wraps clCreatePipe(). + * @param context Context in which to create the pipe. + * @param flags Bitfield. Only CL_MEM_READ_WRITE and CL_MEM_HOST_NO_ACCESS are valid. + * @param packet_size Size in bytes of a single packet of the pipe. + * @param max_packets Number of packets that may be stored in the pipe. + * + */ + Pipe( + const Context& context, + cl_uint packet_size, + cl_uint max_packets, + cl_int* err = NULL) + { + cl_int error; + + cl_mem_flags flags = CL_MEM_READ_WRITE | CL_MEM_HOST_NO_ACCESS; + object_ = ::clCreatePipe(context(), flags, packet_size, max_packets, nullptr, &error); + + detail::errHandler(error, __CREATE_PIPE_ERR); + if (err != NULL) { + *err = error; + } + } + + /*! \brief Constructs a Pipe in a the default context. + * + * Wraps clCreatePipe(). + * @param flags Bitfield. Only CL_MEM_READ_WRITE and CL_MEM_HOST_NO_ACCESS are valid. + * @param packet_size Size in bytes of a single packet of the pipe. + * @param max_packets Number of packets that may be stored in the pipe. + * + */ + Pipe( + cl_uint packet_size, + cl_uint max_packets, + cl_int* err = NULL) + { + cl_int error; + + Context context = Context::getDefault(err); + + cl_mem_flags flags = CL_MEM_READ_WRITE | CL_MEM_HOST_NO_ACCESS; + object_ = ::clCreatePipe(context(), flags, packet_size, max_packets, nullptr, &error); + + detail::errHandler(error, __CREATE_PIPE_ERR); + if (err != NULL) { + *err = error; + } + } + + //! \brief Default constructor - initializes to NULL. + Pipe() : Memory() { } + + /*! \brief Constructor from cl_mem - takes ownership. + * + * \param retainObject will cause the constructor to retain its cl object. + * Defaults to false to maintain compatibility with earlier versions. + * + * See Memory for further details. + */ + explicit Pipe(const cl_mem& pipe, bool retainObject = false) : + Memory(pipe, retainObject) { } + + /*! \brief Assignment from cl_mem - performs shallow copy. + * + * See Memory for further details. + */ + Pipe& operator = (const cl_mem& rhs) + { + Memory::operator=(rhs); + return *this; + } + + /*! \brief Copy constructor to forward copy to the superclass correctly. + * Required for MSVC. + */ + Pipe(const Pipe& pipe) : Memory(pipe) {} + + /*! \brief Copy assignment to forward copy to the superclass correctly. + * Required for MSVC. + */ + Pipe& operator = (const Pipe &pipe) + { + Memory::operator=(pipe); + return *this; + } + + /*! \brief Move constructor to forward move to the superclass correctly. + * Required for MSVC. + */ + Pipe(Pipe&& pipe) CL_HPP_NOEXCEPT_ : Memory(std::move(pipe)) {} + + /*! \brief Move assignment to forward move to the superclass correctly. + * Required for MSVC. + */ + Pipe& operator = (Pipe &&pipe) + { + Memory::operator=(std::move(pipe)); + return *this; + } + + //! \brief Wrapper for clGetMemObjectInfo(). + template + cl_int getInfo(cl_pipe_info name, T* param) const + { + return detail::errHandler( + detail::getInfo(&::clGetPipeInfo, object_, name, param), + __GET_PIPE_INFO_ERR); + } + + //! \brief Wrapper for clGetMemObjectInfo() that returns by value. + template typename + detail::param_traits::param_type + getInfo(cl_int* err = NULL) const + { + typename detail::param_traits< + detail::cl_pipe_info, name>::param_type param; + cl_int result = getInfo(name, ¶m); + if (err != NULL) { + *err = result; + } + return param; + } +}; // class Pipe +#endif // CL_HPP_TARGET_OPENCL_VERSION >= 200 + + +/*! \brief Class interface for cl_sampler. + * + * \note Copies of these objects are shallow, meaning that the copy will refer + * to the same underlying cl_sampler as the original. For details, see + * clRetainSampler() and clReleaseSampler(). + * + * \see cl_sampler + */ +class Sampler : public detail::Wrapper +{ +public: + //! \brief Default constructor - initializes to NULL. + Sampler() { } + + /*! \brief Constructs a Sampler in a specified context. + * + * Wraps clCreateSampler(). + */ + Sampler( + const Context& context, + cl_bool normalized_coords, + cl_addressing_mode addressing_mode, + cl_filter_mode filter_mode, + cl_int* err = NULL) + { + cl_int error; + +#if CL_HPP_TARGET_OPENCL_VERSION >= 200 + cl_sampler_properties sampler_properties[] = { + CL_SAMPLER_NORMALIZED_COORDS, normalized_coords, + CL_SAMPLER_ADDRESSING_MODE, addressing_mode, + CL_SAMPLER_FILTER_MODE, filter_mode, + 0 }; + object_ = ::clCreateSamplerWithProperties( + context(), + sampler_properties, + &error); + + detail::errHandler(error, __CREATE_SAMPLER_WITH_PROPERTIES_ERR); + if (err != NULL) { + *err = error; + } +#else + object_ = ::clCreateSampler( + context(), + normalized_coords, + addressing_mode, + filter_mode, + &error); + + detail::errHandler(error, __CREATE_SAMPLER_ERR); + if (err != NULL) { + *err = error; + } +#endif + } + + /*! \brief Constructor from cl_sampler - takes ownership. + * + * \param retainObject will cause the constructor to retain its cl object. + * Defaults to false to maintain compatibility with + * earlier versions. + * This effectively transfers ownership of a refcount on the cl_sampler + * into the new Sampler object. + */ + explicit Sampler(const cl_sampler& sampler, bool retainObject = false) : + detail::Wrapper(sampler, retainObject) { } + + /*! \brief Assignment operator from cl_sampler - takes ownership. + * + * This effectively transfers ownership of a refcount on the rhs and calls + * clReleaseSampler() on the value previously held by this instance. + */ + Sampler& operator = (const cl_sampler& rhs) + { + detail::Wrapper::operator=(rhs); + return *this; + } + + /*! \brief Copy constructor to forward copy to the superclass correctly. + * Required for MSVC. + */ + Sampler(const Sampler& sam) : detail::Wrapper(sam) {} + + /*! \brief Copy assignment to forward copy to the superclass correctly. + * Required for MSVC. + */ + Sampler& operator = (const Sampler &sam) + { + detail::Wrapper::operator=(sam); + return *this; + } + + /*! \brief Move constructor to forward move to the superclass correctly. + * Required for MSVC. + */ + Sampler(Sampler&& sam) CL_HPP_NOEXCEPT_ : detail::Wrapper(std::move(sam)) {} + + /*! \brief Move assignment to forward move to the superclass correctly. + * Required for MSVC. + */ + Sampler& operator = (Sampler &&sam) + { + detail::Wrapper::operator=(std::move(sam)); + return *this; + } + + //! \brief Wrapper for clGetSamplerInfo(). + template + cl_int getInfo(cl_sampler_info name, T* param) const + { + return detail::errHandler( + detail::getInfo(&::clGetSamplerInfo, object_, name, param), + __GET_SAMPLER_INFO_ERR); + } + + //! \brief Wrapper for clGetSamplerInfo() that returns by value. + template typename + detail::param_traits::param_type + getInfo(cl_int* err = NULL) const + { + typename detail::param_traits< + detail::cl_sampler_info, name>::param_type param; + cl_int result = getInfo(name, ¶m); + if (err != NULL) { + *err = result; + } + return param; + } +}; + +class Program; +class CommandQueue; +class DeviceCommandQueue; +class Kernel; + +//! \brief Class interface for specifying NDRange values. +class NDRange +{ +private: + size_type sizes_[3]; + cl_uint dimensions_; + +public: + //! \brief Default constructor - resulting range has zero dimensions. + NDRange() + : dimensions_(0) + { + sizes_[0] = 0; + sizes_[1] = 0; + sizes_[2] = 0; + } + + //! \brief Constructs one-dimensional range. + NDRange(size_type size0) + : dimensions_(1) + { + sizes_[0] = size0; + sizes_[1] = 1; + sizes_[2] = 1; + } + + //! \brief Constructs two-dimensional range. + NDRange(size_type size0, size_type size1) + : dimensions_(2) + { + sizes_[0] = size0; + sizes_[1] = size1; + sizes_[2] = 1; + } + + //! \brief Constructs three-dimensional range. + NDRange(size_type size0, size_type size1, size_type size2) + : dimensions_(3) + { + sizes_[0] = size0; + sizes_[1] = size1; + sizes_[2] = size2; + } + + /*! \brief Conversion operator to const size_type *. + * + * \returns a pointer to the size of the first dimension. + */ + operator const size_type*() const { + return sizes_; + } + + //! \brief Queries the number of dimensions in the range. + size_type dimensions() const + { + return dimensions_; + } + + //! \brief Returns the size of the object in bytes based on the + // runtime number of dimensions + size_type size() const + { + return dimensions_*sizeof(size_type); + } + + size_type* get() + { + return sizes_; + } + + const size_type* get() const + { + return sizes_; + } +}; + +//! \brief A zero-dimensional range. +static const NDRange NullRange; + +//! \brief Local address wrapper for use with Kernel::setArg +struct LocalSpaceArg +{ + size_type size_; +}; + +namespace detail { + +template +struct KernelArgumentHandler; + +// Enable for objects that are not subclasses of memory +// Pointers, constants etc +template +struct KernelArgumentHandler::value>::type> +{ + static size_type size(const T&) { return sizeof(T); } + static const T* ptr(const T& value) { return &value; } +}; + +// Enable for subclasses of memory where we want to get a reference to the cl_mem out +// and pass that in for safety +template +struct KernelArgumentHandler::value>::type> +{ + static size_type size(const T&) { return sizeof(cl_mem); } + static const cl_mem* ptr(const T& value) { return &(value()); } +}; + +// Specialization for DeviceCommandQueue defined later + +template <> +struct KernelArgumentHandler +{ + static size_type size(const LocalSpaceArg& value) { return value.size_; } + static const void* ptr(const LocalSpaceArg&) { return NULL; } +}; + +} +//! \endcond + +/*! Local + * \brief Helper function for generating LocalSpaceArg objects. + */ +inline LocalSpaceArg +Local(size_type size) +{ + LocalSpaceArg ret = { size }; + return ret; +} + +/*! \brief Class interface for cl_kernel. + * + * \note Copies of these objects are shallow, meaning that the copy will refer + * to the same underlying cl_kernel as the original. For details, see + * clRetainKernel() and clReleaseKernel(). + * + * \see cl_kernel + */ +class Kernel : public detail::Wrapper +{ +public: + inline Kernel(const Program& program, const char* name, cl_int* err = NULL); + + //! \brief Default constructor - initializes to NULL. + Kernel() { } + + /*! \brief Constructor from cl_kernel - takes ownership. + * + * \param retainObject will cause the constructor to retain its cl object. + * Defaults to false to maintain compatibility with + * earlier versions. + * This effectively transfers ownership of a refcount on the cl_kernel + * into the new Kernel object. + */ + explicit Kernel(const cl_kernel& kernel, bool retainObject = false) : + detail::Wrapper(kernel, retainObject) { } + + /*! \brief Assignment operator from cl_kernel - takes ownership. + * + * This effectively transfers ownership of a refcount on the rhs and calls + * clReleaseKernel() on the value previously held by this instance. + */ + Kernel& operator = (const cl_kernel& rhs) + { + detail::Wrapper::operator=(rhs); + return *this; + } + + /*! \brief Copy constructor to forward copy to the superclass correctly. + * Required for MSVC. + */ + Kernel(const Kernel& kernel) : detail::Wrapper(kernel) {} + + /*! \brief Copy assignment to forward copy to the superclass correctly. + * Required for MSVC. + */ + Kernel& operator = (const Kernel &kernel) + { + detail::Wrapper::operator=(kernel); + return *this; + } + + /*! \brief Move constructor to forward move to the superclass correctly. + * Required for MSVC. + */ + Kernel(Kernel&& kernel) CL_HPP_NOEXCEPT_ : detail::Wrapper(std::move(kernel)) {} + + /*! \brief Move assignment to forward move to the superclass correctly. + * Required for MSVC. + */ + Kernel& operator = (Kernel &&kernel) + { + detail::Wrapper::operator=(std::move(kernel)); + return *this; + } + + template + cl_int getInfo(cl_kernel_info name, T* param) const + { + return detail::errHandler( + detail::getInfo(&::clGetKernelInfo, object_, name, param), + __GET_KERNEL_INFO_ERR); + } + + template typename + detail::param_traits::param_type + getInfo(cl_int* err = NULL) const + { + typename detail::param_traits< + detail::cl_kernel_info, name>::param_type param; + cl_int result = getInfo(name, ¶m); + if (err != NULL) { + *err = result; + } + return param; + } + +#if CL_HPP_TARGET_OPENCL_VERSION >= 120 + template + cl_int getArgInfo(cl_uint argIndex, cl_kernel_arg_info name, T* param) const + { + return detail::errHandler( + detail::getInfo(&::clGetKernelArgInfo, object_, argIndex, name, param), + __GET_KERNEL_ARG_INFO_ERR); + } + + template typename + detail::param_traits::param_type + getArgInfo(cl_uint argIndex, cl_int* err = NULL) const + { + typename detail::param_traits< + detail::cl_kernel_arg_info, name>::param_type param; + cl_int result = getArgInfo(argIndex, name, ¶m); + if (err != NULL) { + *err = result; + } + return param; + } +#endif // CL_HPP_TARGET_OPENCL_VERSION >= 120 + + template + cl_int getWorkGroupInfo( + const Device& device, cl_kernel_work_group_info name, T* param) const + { + return detail::errHandler( + detail::getInfo( + &::clGetKernelWorkGroupInfo, object_, device(), name, param), + __GET_KERNEL_WORK_GROUP_INFO_ERR); + } + + template typename + detail::param_traits::param_type + getWorkGroupInfo(const Device& device, cl_int* err = NULL) const + { + typename detail::param_traits< + detail::cl_kernel_work_group_info, name>::param_type param; + cl_int result = getWorkGroupInfo(device, name, ¶m); + if (err != NULL) { + *err = result; + } + return param; + } + +#if (CL_HPP_TARGET_OPENCL_VERSION >= 200 && defined(CL_HPP_USE_CL_SUB_GROUPS_KHR)) || CL_HPP_TARGET_OPENCL_VERSION >= 210 + cl_int getSubGroupInfo(const cl::Device &dev, cl_kernel_sub_group_info name, const cl::NDRange &range, size_type* param) const + { +#if CL_HPP_TARGET_OPENCL_VERSION >= 210 + + return detail::errHandler( + clGetKernelSubGroupInfo(object_, dev(), name, range.size(), range.get(), sizeof(size_type), param, nullptr), + __GET_KERNEL_SUB_GROUP_INFO_ERR); + +#else // #if CL_HPP_TARGET_OPENCL_VERSION >= 210 + + typedef clGetKernelSubGroupInfoKHR_fn PFN_clGetKernelSubGroupInfoKHR; + static PFN_clGetKernelSubGroupInfoKHR pfn_clGetKernelSubGroupInfoKHR = NULL; + CL_HPP_INIT_CL_EXT_FCN_PTR_(clGetKernelSubGroupInfoKHR); + + return detail::errHandler( + pfn_clGetKernelSubGroupInfoKHR(object_, dev(), name, range.size(), range.get(), sizeof(size_type), param, nullptr), + __GET_KERNEL_SUB_GROUP_INFO_ERR); + +#endif // #if CL_HPP_TARGET_OPENCL_VERSION >= 210 + } + + template + size_type getSubGroupInfo(const cl::Device &dev, const cl::NDRange &range, cl_int* err = NULL) const + { + size_type param; + cl_int result = getSubGroupInfo(dev, name, range, ¶m); + if (err != NULL) { + *err = result; + } + return param; + } +#endif // #if CL_HPP_TARGET_OPENCL_VERSION >= 200 + +#if CL_HPP_TARGET_OPENCL_VERSION >= 200 + /*! \brief setArg overload taking a shared_ptr type + */ + template + cl_int setArg(cl_uint index, const cl::pointer &argPtr) + { + return detail::errHandler( + ::clSetKernelArgSVMPointer(object_, index, argPtr.get()), + __SET_KERNEL_ARGS_ERR); + } + + /*! \brief setArg overload taking a vector type. + */ + template + cl_int setArg(cl_uint index, const cl::vector &argPtr) + { + return detail::errHandler( + ::clSetKernelArgSVMPointer(object_, index, argPtr.data()), + __SET_KERNEL_ARGS_ERR); + } + + /*! \brief setArg overload taking a pointer type + */ + template + typename std::enable_if::value, cl_int>::type + setArg(cl_uint index, const T argPtr) + { + return detail::errHandler( + ::clSetKernelArgSVMPointer(object_, index, argPtr), + __SET_KERNEL_ARGS_ERR); + } +#endif // #if CL_HPP_TARGET_OPENCL_VERSION >= 200 + + /*! \brief setArg overload taking a POD type + */ + template + typename std::enable_if::value, cl_int>::type + setArg(cl_uint index, const T &value) + { + return detail::errHandler( + ::clSetKernelArg( + object_, + index, + detail::KernelArgumentHandler::size(value), + detail::KernelArgumentHandler::ptr(value)), + __SET_KERNEL_ARGS_ERR); + } + + cl_int setArg(cl_uint index, size_type size, const void* argPtr) + { + return detail::errHandler( + ::clSetKernelArg(object_, index, size, argPtr), + __SET_KERNEL_ARGS_ERR); + } + +#if CL_HPP_TARGET_OPENCL_VERSION >= 200 + /*! + * Specify a vector of SVM pointers that the kernel may access in + * addition to its arguments. + */ + cl_int setSVMPointers(const vector &pointerList) + { + return detail::errHandler( + ::clSetKernelExecInfo( + object_, + CL_KERNEL_EXEC_INFO_SVM_PTRS, + sizeof(void*)*pointerList.size(), + pointerList.data())); + } + + /*! + * Specify a std::array of SVM pointers that the kernel may access in + * addition to its arguments. + */ + template + cl_int setSVMPointers(const std::array &pointerList) + { + return detail::errHandler( + ::clSetKernelExecInfo( + object_, + CL_KERNEL_EXEC_INFO_SVM_PTRS, + sizeof(void*)*pointerList.size(), + pointerList.data())); + } + + /*! \brief Enable fine-grained system SVM. + * + * \note It is only possible to enable fine-grained system SVM if all devices + * in the context associated with kernel support it. + * + * \param svmEnabled True if fine-grained system SVM is requested. False otherwise. + * \return CL_SUCCESS if the function was executed succesfully. CL_INVALID_OPERATION + * if no devices in the context support fine-grained system SVM. + * + * \see clSetKernelExecInfo + */ + cl_int enableFineGrainedSystemSVM(bool svmEnabled) + { + cl_bool svmEnabled_ = svmEnabled ? CL_TRUE : CL_FALSE; + return detail::errHandler( + ::clSetKernelExecInfo( + object_, + CL_KERNEL_EXEC_INFO_SVM_FINE_GRAIN_SYSTEM, + sizeof(cl_bool), + &svmEnabled_ + ) + ); + } + + template + void setSVMPointersHelper(std::array &pointerList, const pointer &t0, const pointer &t1, Ts & ... ts) + { + pointerList[index] = static_cast(t0.get()); + setSVMPointersHelper(pointerList, t1, ts...); + } + + template + typename std::enable_if::value, void>::type + setSVMPointersHelper(std::array &pointerList, T0 t0, T1 t1, Ts... ts) + { + pointerList[index] = static_cast(t0); + setSVMPointersHelper(pointerList, t1, ts...); + } + + template + void setSVMPointersHelper(std::array &pointerList, const pointer &t0) + { + pointerList[index] = static_cast(t0.get()); + } + + + template + typename std::enable_if::value, void>::type + setSVMPointersHelper(std::array &pointerList, T0 t0) + { + pointerList[index] = static_cast(t0); + } + + template + cl_int setSVMPointers(const T0 &t0, Ts & ... ts) + { + std::array pointerList; + + setSVMPointersHelper<0, 1 + sizeof...(Ts)>(pointerList, t0, ts...); + return detail::errHandler( + ::clSetKernelExecInfo( + object_, + CL_KERNEL_EXEC_INFO_SVM_PTRS, + sizeof(void*)*(1 + sizeof...(Ts)), + pointerList.data())); + } +#endif // #if CL_HPP_TARGET_OPENCL_VERSION >= 200 + +#if CL_HPP_TARGET_OPENCL_VERSION >= 210 + /** + * Make a deep copy of the kernel object including its arguments. + * @return A new kernel object with internal state entirely separate from that + * of the original but with any arguments set on the original intact. + */ + Kernel clone() + { + cl_int error; + Kernel retValue(clCloneKernel(this->get(), &error)); + + detail::errHandler(error, __CLONE_KERNEL_ERR); + return retValue; + } +#endif // #if CL_HPP_TARGET_OPENCL_VERSION >= 210 +}; + +/*! \class Program + * \brief Program interface that implements cl_program. + */ +class Program : public detail::Wrapper +{ +public: +#if !defined(CL_HPP_ENABLE_PROGRAM_CONSTRUCTION_FROM_ARRAY_COMPATIBILITY) + typedef vector> Binaries; + typedef vector Sources; +#else // #if !defined(CL_HPP_ENABLE_PROGRAM_CONSTRUCTION_FROM_ARRAY_COMPATIBILITY) + typedef vector > Binaries; + typedef vector > Sources; +#endif // #if !defined(CL_HPP_ENABLE_PROGRAM_CONSTRUCTION_FROM_ARRAY_COMPATIBILITY) + + Program( + const string& source, + bool build = false, + cl_int* err = NULL) + { + cl_int error; + + const char * strings = source.c_str(); + const size_type length = source.size(); + + Context context = Context::getDefault(err); + + object_ = ::clCreateProgramWithSource( + context(), (cl_uint)1, &strings, &length, &error); + + detail::errHandler(error, __CREATE_PROGRAM_WITH_SOURCE_ERR); + + if (error == CL_SUCCESS && build) { + + error = ::clBuildProgram( + object_, + 0, + NULL, +#if !defined(CL_HPP_CL_1_2_DEFAULT_BUILD) + "-cl-std=CL2.0", +#else + "", +#endif // #if !defined(CL_HPP_CL_1_2_DEFAULT_BUILD) + NULL, + NULL); + + detail::buildErrHandler(error, __BUILD_PROGRAM_ERR, getBuildInfo()); + } + + if (err != NULL) { + *err = error; + } + } + + Program( + const Context& context, + const string& source, + bool build = false, + cl_int* err = NULL) + { + cl_int error; + + const char * strings = source.c_str(); + const size_type length = source.size(); + + object_ = ::clCreateProgramWithSource( + context(), (cl_uint)1, &strings, &length, &error); + + detail::errHandler(error, __CREATE_PROGRAM_WITH_SOURCE_ERR); + + if (error == CL_SUCCESS && build) { + error = ::clBuildProgram( + object_, + 0, + NULL, +#if !defined(CL_HPP_CL_1_2_DEFAULT_BUILD) + "-cl-std=CL2.0", +#else + "", +#endif // #if !defined(CL_HPP_CL_1_2_DEFAULT_BUILD) + NULL, + NULL); + + detail::buildErrHandler(error, __BUILD_PROGRAM_ERR, getBuildInfo()); + } + + if (err != NULL) { + *err = error; + } + } + + /** + * Create a program from a vector of source strings and the default context. + * Does not compile or link the program. + */ + Program( + const Sources& sources, + cl_int* err = NULL) + { + cl_int error; + Context context = Context::getDefault(err); + + const size_type n = (size_type)sources.size(); + + vector lengths(n); + vector strings(n); + + for (size_type i = 0; i < n; ++i) { +#if !defined(CL_HPP_ENABLE_PROGRAM_CONSTRUCTION_FROM_ARRAY_COMPATIBILITY) + strings[i] = sources[(int)i].data(); + lengths[i] = sources[(int)i].length(); +#else // #if !defined(CL_HPP_ENABLE_PROGRAM_CONSTRUCTION_FROM_ARRAY_COMPATIBILITY) + strings[i] = sources[(int)i].first; + lengths[i] = sources[(int)i].second; +#endif // #if !defined(CL_HPP_ENABLE_PROGRAM_CONSTRUCTION_FROM_ARRAY_COMPATIBILITY) + } + + object_ = ::clCreateProgramWithSource( + context(), (cl_uint)n, strings.data(), lengths.data(), &error); + + detail::errHandler(error, __CREATE_PROGRAM_WITH_SOURCE_ERR); + if (err != NULL) { + *err = error; + } + } + + /** + * Create a program from a vector of source strings and a provided context. + * Does not compile or link the program. + */ + Program( + const Context& context, + const Sources& sources, + cl_int* err = NULL) + { + cl_int error; + + const size_type n = (size_type)sources.size(); + + vector lengths(n); + vector strings(n); + + for (size_type i = 0; i < n; ++i) { +#if !defined(CL_HPP_ENABLE_PROGRAM_CONSTRUCTION_FROM_ARRAY_COMPATIBILITY) + strings[i] = sources[(int)i].data(); + lengths[i] = sources[(int)i].length(); +#else // #if !defined(CL_HPP_ENABLE_PROGRAM_CONSTRUCTION_FROM_ARRAY_COMPATIBILITY) + strings[i] = sources[(int)i].first; + lengths[i] = sources[(int)i].second; +#endif // #if !defined(CL_HPP_ENABLE_PROGRAM_CONSTRUCTION_FROM_ARRAY_COMPATIBILITY) + } + + object_ = ::clCreateProgramWithSource( + context(), (cl_uint)n, strings.data(), lengths.data(), &error); + + detail::errHandler(error, __CREATE_PROGRAM_WITH_SOURCE_ERR); + if (err != NULL) { + *err = error; + } + } + + +#if CL_HPP_TARGET_OPENCL_VERSION >= 210 || (CL_HPP_TARGET_OPENCL_VERSION==200 && defined(CL_HPP_USE_IL_KHR)) + /** + * Program constructor to allow construction of program from SPIR-V or another IL. + * Valid for either OpenCL >= 2.1 or when CL_HPP_USE_IL_KHR is defined. + */ + Program( + const vector& IL, + bool build = false, + cl_int* err = NULL) + { + cl_int error; + + Context context = Context::getDefault(err); + +#if CL_HPP_TARGET_OPENCL_VERSION >= 210 + + object_ = ::clCreateProgramWithIL( + context(), static_cast(IL.data()), IL.size(), &error); + +#else // #if CL_HPP_TARGET_OPENCL_VERSION >= 210 + + typedef clCreateProgramWithILKHR_fn PFN_clCreateProgramWithILKHR; + static PFN_clCreateProgramWithILKHR pfn_clCreateProgramWithILKHR = NULL; + CL_HPP_INIT_CL_EXT_FCN_PTR_(clCreateProgramWithILKHR); + + return detail::errHandler( + pfn_clCreateProgramWithILKHR( + context(), static_cast(IL.data()), IL.size(), &error); + +#endif // #if CL_HPP_TARGET_OPENCL_VERSION >= 210 + + detail::errHandler(error, __CREATE_PROGRAM_WITH_IL_ERR); + + if (error == CL_SUCCESS && build) { + + error = ::clBuildProgram( + object_, + 0, + NULL, +#if !defined(CL_HPP_CL_1_2_DEFAULT_BUILD) + "-cl-std=CL2.0", +#else + "", +#endif // #if !defined(CL_HPP_CL_1_2_DEFAULT_BUILD) + NULL, + NULL); + + detail::buildErrHandler(error, __BUILD_PROGRAM_ERR, getBuildInfo()); + } + + if (err != NULL) { + *err = error; + } + } + + /** + * Program constructor to allow construction of program from SPIR-V or another IL + * for a specific context. + * Valid for either OpenCL >= 2.1 or when CL_HPP_USE_IL_KHR is defined. + */ + Program( + const Context& context, + const vector& IL, + bool build = false, + cl_int* err = NULL) + { + cl_int error; + +#if CL_HPP_TARGET_OPENCL_VERSION >= 210 + + object_ = ::clCreateProgramWithIL( + context(), static_cast(IL.data()), IL.size(), &error); + +#else // #if CL_HPP_TARGET_OPENCL_VERSION >= 210 + + typedef clCreateProgramWithILKHR_fn PFN_clCreateProgramWithILKHR; + static PFN_clCreateProgramWithILKHR pfn_clCreateProgramWithILKHR = NULL; + CL_HPP_INIT_CL_EXT_FCN_PTR_(clCreateProgramWithILKHR); + + return detail::errHandler( + pfn_clCreateProgramWithILKHR( + context(), static_cast(IL.data()), IL.size(), &error); + +#endif // #if CL_HPP_TARGET_OPENCL_VERSION >= 210 + + detail::errHandler(error, __CREATE_PROGRAM_WITH_IL_ERR); + + if (error == CL_SUCCESS && build) { + error = ::clBuildProgram( + object_, + 0, + NULL, +#if !defined(CL_HPP_CL_1_2_DEFAULT_BUILD) + "-cl-std=CL2.0", +#else + "", +#endif // #if !defined(CL_HPP_CL_1_2_DEFAULT_BUILD) + NULL, + NULL); + + detail::buildErrHandler(error, __BUILD_PROGRAM_ERR, getBuildInfo()); + } + + if (err != NULL) { + *err = error; + } + } +#endif // #if CL_HPP_TARGET_OPENCL_VERSION >= 210 + + /** + * Construct a program object from a list of devices and a per-device list of binaries. + * \param context A valid OpenCL context in which to construct the program. + * \param devices A vector of OpenCL device objects for which the program will be created. + * \param binaries A vector of pairs of a pointer to a binary object and its length. + * \param binaryStatus An optional vector that on completion will be resized to + * match the size of binaries and filled with values to specify if each binary + * was successfully loaded. + * Set to CL_SUCCESS if the binary was successfully loaded. + * Set to CL_INVALID_VALUE if the length is 0 or the binary pointer is NULL. + * Set to CL_INVALID_BINARY if the binary provided is not valid for the matching device. + * \param err if non-NULL will be set to CL_SUCCESS on successful operation or one of the following errors: + * CL_INVALID_CONTEXT if context is not a valid context. + * CL_INVALID_VALUE if the length of devices is zero; or if the length of binaries does not match the length of devices; + * or if any entry in binaries is NULL or has length 0. + * CL_INVALID_DEVICE if OpenCL devices listed in devices are not in the list of devices associated with context. + * CL_INVALID_BINARY if an invalid program binary was encountered for any device. binaryStatus will return specific status for each device. + * CL_OUT_OF_HOST_MEMORY if there is a failure to allocate resources required by the OpenCL implementation on the host. + */ + Program( + const Context& context, + const vector& devices, + const Binaries& binaries, + vector* binaryStatus = NULL, + cl_int* err = NULL) + { + cl_int error; + + const size_type numDevices = devices.size(); + + // Catch size mismatch early and return + if(binaries.size() != numDevices) { + error = CL_INVALID_VALUE; + detail::errHandler(error, __CREATE_PROGRAM_WITH_BINARY_ERR); + if (err != NULL) { + *err = error; + } + return; + } + + + vector lengths(numDevices); + vector images(numDevices); +#if !defined(CL_HPP_ENABLE_PROGRAM_CONSTRUCTION_FROM_ARRAY_COMPATIBILITY) + for (size_type i = 0; i < numDevices; ++i) { + images[i] = binaries[i].data(); + lengths[i] = binaries[(int)i].size(); + } +#else // #if !defined(CL_HPP_ENABLE_PROGRAM_CONSTRUCTION_FROM_ARRAY_COMPATIBILITY) + for (size_type i = 0; i < numDevices; ++i) { + images[i] = (const unsigned char*)binaries[i].first; + lengths[i] = binaries[(int)i].second; + } +#endif // #if !defined(CL_HPP_ENABLE_PROGRAM_CONSTRUCTION_FROM_ARRAY_COMPATIBILITY) + + vector deviceIDs(numDevices); + for( size_type deviceIndex = 0; deviceIndex < numDevices; ++deviceIndex ) { + deviceIDs[deviceIndex] = (devices[deviceIndex])(); + } + + if(binaryStatus) { + binaryStatus->resize(numDevices); + } + + object_ = ::clCreateProgramWithBinary( + context(), (cl_uint) devices.size(), + deviceIDs.data(), + lengths.data(), images.data(), (binaryStatus != NULL && numDevices > 0) + ? &binaryStatus->front() + : NULL, &error); + + detail::errHandler(error, __CREATE_PROGRAM_WITH_BINARY_ERR); + if (err != NULL) { + *err = error; + } + } + + +#if CL_HPP_TARGET_OPENCL_VERSION >= 120 + /** + * Create program using builtin kernels. + * \param kernelNames Semi-colon separated list of builtin kernel names + */ + Program( + const Context& context, + const vector& devices, + const string& kernelNames, + cl_int* err = NULL) + { + cl_int error; + + + size_type numDevices = devices.size(); + vector deviceIDs(numDevices); + for( size_type deviceIndex = 0; deviceIndex < numDevices; ++deviceIndex ) { + deviceIDs[deviceIndex] = (devices[deviceIndex])(); + } + + object_ = ::clCreateProgramWithBuiltInKernels( + context(), + (cl_uint) devices.size(), + deviceIDs.data(), + kernelNames.c_str(), + &error); + + detail::errHandler(error, __CREATE_PROGRAM_WITH_BUILT_IN_KERNELS_ERR); + if (err != NULL) { + *err = error; + } + } +#endif // CL_HPP_TARGET_OPENCL_VERSION >= 120 + + Program() { } + + + /*! \brief Constructor from cl_mem - takes ownership. + * + * \param retainObject will cause the constructor to retain its cl object. + * Defaults to false to maintain compatibility with + * earlier versions. + */ + explicit Program(const cl_program& program, bool retainObject = false) : + detail::Wrapper(program, retainObject) { } + + Program& operator = (const cl_program& rhs) + { + detail::Wrapper::operator=(rhs); + return *this; + } + + /*! \brief Copy constructor to forward copy to the superclass correctly. + * Required for MSVC. + */ + Program(const Program& program) : detail::Wrapper(program) {} + + /*! \brief Copy assignment to forward copy to the superclass correctly. + * Required for MSVC. + */ + Program& operator = (const Program &program) + { + detail::Wrapper::operator=(program); + return *this; + } + + /*! \brief Move constructor to forward move to the superclass correctly. + * Required for MSVC. + */ + Program(Program&& program) CL_HPP_NOEXCEPT_ : detail::Wrapper(std::move(program)) {} + + /*! \brief Move assignment to forward move to the superclass correctly. + * Required for MSVC. + */ + Program& operator = (Program &&program) + { + detail::Wrapper::operator=(std::move(program)); + return *this; + } + + cl_int build( + const vector& devices, + const char* options = NULL, + void (CL_CALLBACK * notifyFptr)(cl_program, void *) = NULL, + void* data = NULL) const + { + size_type numDevices = devices.size(); + vector deviceIDs(numDevices); + + for( size_type deviceIndex = 0; deviceIndex < numDevices; ++deviceIndex ) { + deviceIDs[deviceIndex] = (devices[deviceIndex])(); + } + + cl_int buildError = ::clBuildProgram( + object_, + (cl_uint) + devices.size(), + deviceIDs.data(), + options, + notifyFptr, + data); + + return detail::buildErrHandler(buildError, __BUILD_PROGRAM_ERR, getBuildInfo()); + } + + cl_int build( + const char* options = NULL, + void (CL_CALLBACK * notifyFptr)(cl_program, void *) = NULL, + void* data = NULL) const + { + cl_int buildError = ::clBuildProgram( + object_, + 0, + NULL, + options, + notifyFptr, + data); + + + return detail::buildErrHandler(buildError, __BUILD_PROGRAM_ERR, getBuildInfo()); + } + +#if CL_HPP_TARGET_OPENCL_VERSION >= 120 + cl_int compile( + const char* options = NULL, + void (CL_CALLBACK * notifyFptr)(cl_program, void *) = NULL, + void* data = NULL) const + { + cl_int error = ::clCompileProgram( + object_, + 0, + NULL, + options, + 0, + NULL, + NULL, + notifyFptr, + data); + return detail::buildErrHandler(error, __COMPILE_PROGRAM_ERR, getBuildInfo()); + } +#endif // CL_HPP_TARGET_OPENCL_VERSION >= 120 + + template + cl_int getInfo(cl_program_info name, T* param) const + { + return detail::errHandler( + detail::getInfo(&::clGetProgramInfo, object_, name, param), + __GET_PROGRAM_INFO_ERR); + } + + template typename + detail::param_traits::param_type + getInfo(cl_int* err = NULL) const + { + typename detail::param_traits< + detail::cl_program_info, name>::param_type param; + cl_int result = getInfo(name, ¶m); + if (err != NULL) { + *err = result; + } + return param; + } + + template + cl_int getBuildInfo( + const Device& device, cl_program_build_info name, T* param) const + { + return detail::errHandler( + detail::getInfo( + &::clGetProgramBuildInfo, object_, device(), name, param), + __GET_PROGRAM_BUILD_INFO_ERR); + } + + template typename + detail::param_traits::param_type + getBuildInfo(const Device& device, cl_int* err = NULL) const + { + typename detail::param_traits< + detail::cl_program_build_info, name>::param_type param; + cl_int result = getBuildInfo(device, name, ¶m); + if (err != NULL) { + *err = result; + } + return param; + } + + /** + * Build info function that returns a vector of device/info pairs for the specified + * info type and for all devices in the program. + * On an error reading the info for any device, an empty vector of info will be returned. + */ + template + vector::param_type>> + getBuildInfo(cl_int *err = NULL) const + { + cl_int result = CL_SUCCESS; + + auto devs = getInfo(&result); + vector::param_type>> + devInfo; + + // If there was an initial error from getInfo return the error + if (result != CL_SUCCESS) { + if (err != NULL) { + *err = result; + } + return devInfo; + } + + for (const cl::Device &d : devs) { + typename detail::param_traits< + detail::cl_program_build_info, name>::param_type param; + result = getBuildInfo(d, name, ¶m); + devInfo.push_back( + std::pair::param_type> + (d, param)); + if (result != CL_SUCCESS) { + // On error, leave the loop and return the error code + break; + } + } + if (err != NULL) { + *err = result; + } + if (result != CL_SUCCESS) { + devInfo.clear(); + } + return devInfo; + } + + cl_int createKernels(vector* kernels) + { + cl_uint numKernels; + cl_int err = ::clCreateKernelsInProgram(object_, 0, NULL, &numKernels); + if (err != CL_SUCCESS) { + return detail::errHandler(err, __CREATE_KERNELS_IN_PROGRAM_ERR); + } + + vector value(numKernels); + + err = ::clCreateKernelsInProgram( + object_, numKernels, value.data(), NULL); + if (err != CL_SUCCESS) { + return detail::errHandler(err, __CREATE_KERNELS_IN_PROGRAM_ERR); + } + + if (kernels) { + kernels->resize(value.size()); + + // Assign to param, constructing with retain behaviour + // to correctly capture each underlying CL object + for (size_type i = 0; i < value.size(); i++) { + // We do not need to retain because this kernel is being created + // by the runtime + (*kernels)[i] = Kernel(value[i], false); + } + } + return CL_SUCCESS; + } +}; + +#if CL_HPP_TARGET_OPENCL_VERSION >= 120 +inline Program linkProgram( + Program input1, + Program input2, + const char* options = NULL, + void (CL_CALLBACK * notifyFptr)(cl_program, void *) = NULL, + void* data = NULL, + cl_int* err = NULL) +{ + cl_int error_local = CL_SUCCESS; + + cl_program programs[2] = { input1(), input2() }; + + Context ctx = input1.getInfo(&error_local); + if(error_local!=CL_SUCCESS) { + detail::errHandler(error_local, __LINK_PROGRAM_ERR); + } + + cl_program prog = ::clLinkProgram( + ctx(), + 0, + NULL, + options, + 2, + programs, + notifyFptr, + data, + &error_local); + + detail::errHandler(error_local,__COMPILE_PROGRAM_ERR); + if (err != NULL) { + *err = error_local; + } + + return Program(prog); +} + +inline Program linkProgram( + vector inputPrograms, + const char* options = NULL, + void (CL_CALLBACK * notifyFptr)(cl_program, void *) = NULL, + void* data = NULL, + cl_int* err = NULL) +{ + cl_int error_local = CL_SUCCESS; + + vector programs(inputPrograms.size()); + + for (unsigned int i = 0; i < inputPrograms.size(); i++) { + programs[i] = inputPrograms[i](); + } + + Context ctx; + if(inputPrograms.size() > 0) { + ctx = inputPrograms[0].getInfo(&error_local); + if(error_local!=CL_SUCCESS) { + detail::errHandler(error_local, __LINK_PROGRAM_ERR); + } + } + cl_program prog = ::clLinkProgram( + ctx(), + 0, + NULL, + options, + (cl_uint)inputPrograms.size(), + programs.data(), + notifyFptr, + data, + &error_local); + + detail::errHandler(error_local,__COMPILE_PROGRAM_ERR); + if (err != NULL) { + *err = error_local; + } + + return Program(prog, false); +} +#endif // CL_HPP_TARGET_OPENCL_VERSION >= 120 + +// Template specialization for CL_PROGRAM_BINARIES +template <> +inline cl_int cl::Program::getInfo(cl_program_info name, vector>* param) const +{ + if (name != CL_PROGRAM_BINARIES) { + return CL_INVALID_VALUE; + } + if (param) { + // Resize the parameter array appropriately for each allocation + // and pass down to the helper + + vector sizes = getInfo(); + size_type numBinaries = sizes.size(); + + // Resize the parameter array and constituent arrays + param->resize(numBinaries); + for (size_type i = 0; i < numBinaries; ++i) { + (*param)[i].resize(sizes[i]); + } + + return detail::errHandler( + detail::getInfo(&::clGetProgramInfo, object_, name, param), + __GET_PROGRAM_INFO_ERR); + } + + return CL_SUCCESS; +} + +template<> +inline vector> cl::Program::getInfo(cl_int* err) const +{ + vector> binariesVectors; + + cl_int result = getInfo(CL_PROGRAM_BINARIES, &binariesVectors); + if (err != NULL) { + *err = result; + } + return binariesVectors; +} + +inline Kernel::Kernel(const Program& program, const char* name, cl_int* err) +{ + cl_int error; + + object_ = ::clCreateKernel(program(), name, &error); + detail::errHandler(error, __CREATE_KERNEL_ERR); + + if (err != NULL) { + *err = error; + } + +} + +enum class QueueProperties : cl_command_queue_properties +{ + None = 0, + Profiling = CL_QUEUE_PROFILING_ENABLE, + OutOfOrder = CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE, +}; + +inline QueueProperties operator|(QueueProperties lhs, QueueProperties rhs) +{ + return static_cast(static_cast(lhs) | static_cast(rhs)); +} + +/*! \class CommandQueue + * \brief CommandQueue interface for cl_command_queue. + */ +class CommandQueue : public detail::Wrapper +{ +private: + static std::once_flag default_initialized_; + static CommandQueue default_; + static cl_int default_error_; + + /*! \brief Create the default command queue returned by @ref getDefault. + * + * It sets default_error_ to indicate success or failure. It does not throw + * @c cl::Error. + */ + static void makeDefault() + { + /* We don't want to throw an error from this function, so we have to + * catch and set the error flag. + */ +#if defined(CL_HPP_ENABLE_EXCEPTIONS) + try +#endif + { + int error; + Context context = Context::getDefault(&error); + + if (error != CL_SUCCESS) { + default_error_ = error; + } + else { + Device device = Device::getDefault(); + default_ = CommandQueue(context, device, 0, &default_error_); + } + } +#if defined(CL_HPP_ENABLE_EXCEPTIONS) + catch (cl::Error &e) { + default_error_ = e.err(); + } +#endif + } + + /*! \brief Create the default command queue. + * + * This sets @c default_. It does not throw + * @c cl::Error. + */ + static void makeDefaultProvided(const CommandQueue &c) { + default_ = c; + } + +public: +#ifdef CL_HPP_UNIT_TEST_ENABLE + /*! \brief Reset the default. + * + * This sets @c default_ to an empty value to support cleanup in + * the unit test framework. + * This function is not thread safe. + */ + static void unitTestClearDefault() { + default_ = CommandQueue(); + } +#endif // #ifdef CL_HPP_UNIT_TEST_ENABLE + + + /*! + * \brief Constructs a CommandQueue based on passed properties. + * Will return an CL_INVALID_QUEUE_PROPERTIES error if CL_QUEUE_ON_DEVICE is specified. + */ + CommandQueue( + cl_command_queue_properties properties, + cl_int* err = NULL) + { + cl_int error; + + Context context = Context::getDefault(&error); + detail::errHandler(error, __CREATE_CONTEXT_ERR); + + if (error != CL_SUCCESS) { + if (err != NULL) { + *err = error; + } + } + else { + Device device = context.getInfo()[0]; + bool useWithProperties; + +#if CL_HPP_TARGET_OPENCL_VERSION >= 200 && CL_HPP_MINIMUM_OPENCL_VERSION < 200 + // Run-time decision based on the actual platform + { + cl_uint version = detail::getContextPlatformVersion(context()); + useWithProperties = (version >= 0x20000); // OpenCL 2.0 or above + } +#elif CL_HPP_TARGET_OPENCL_VERSION >= 200 + useWithProperties = true; +#else + useWithProperties = false; +#endif + +#if CL_HPP_TARGET_OPENCL_VERSION >= 200 + if (useWithProperties) { + cl_queue_properties queue_properties[] = { + CL_QUEUE_PROPERTIES, properties, 0 }; + if ((properties & CL_QUEUE_ON_DEVICE) == 0) { + object_ = ::clCreateCommandQueueWithProperties( + context(), device(), queue_properties, &error); + } + else { + error = CL_INVALID_QUEUE_PROPERTIES; + } + + detail::errHandler(error, __CREATE_COMMAND_QUEUE_WITH_PROPERTIES_ERR); + if (err != NULL) { + *err = error; + } + } +#endif // CL_HPP_TARGET_OPENCL_VERSION >= 200 +#if CL_HPP_MINIMUM_OPENCL_VERSION < 200 + if (!useWithProperties) { + object_ = ::clCreateCommandQueue( + context(), device(), properties, &error); + + detail::errHandler(error, __CREATE_COMMAND_QUEUE_ERR); + if (err != NULL) { + *err = error; + } + } +#endif // CL_HPP_MINIMUM_OPENCL_VERSION < 200 + } + } + + /*! + * \brief Constructs a CommandQueue based on passed properties. + * Will return an CL_INVALID_QUEUE_PROPERTIES error if CL_QUEUE_ON_DEVICE is specified. + */ + CommandQueue( + QueueProperties properties, + cl_int* err = NULL) + { + cl_int error; + + Context context = Context::getDefault(&error); + detail::errHandler(error, __CREATE_CONTEXT_ERR); + + if (error != CL_SUCCESS) { + if (err != NULL) { + *err = error; + } + } + else { + Device device = context.getInfo()[0]; + bool useWithProperties; + +#if CL_HPP_TARGET_OPENCL_VERSION >= 200 && CL_HPP_MINIMUM_OPENCL_VERSION < 200 + // Run-time decision based on the actual platform + { + cl_uint version = detail::getContextPlatformVersion(context()); + useWithProperties = (version >= 0x20000); // OpenCL 2.0 or above + } +#elif CL_HPP_TARGET_OPENCL_VERSION >= 200 + useWithProperties = true; +#else + useWithProperties = false; +#endif + +#if CL_HPP_TARGET_OPENCL_VERSION >= 200 + if (useWithProperties) { + cl_queue_properties queue_properties[] = { + CL_QUEUE_PROPERTIES, static_cast(properties), 0 }; + + object_ = ::clCreateCommandQueueWithProperties( + context(), device(), queue_properties, &error); + + detail::errHandler(error, __CREATE_COMMAND_QUEUE_WITH_PROPERTIES_ERR); + if (err != NULL) { + *err = error; + } + } +#endif // CL_HPP_TARGET_OPENCL_VERSION >= 200 +#if CL_HPP_MINIMUM_OPENCL_VERSION < 200 + if (!useWithProperties) { + object_ = ::clCreateCommandQueue( + context(), device(), static_cast(properties), &error); + + detail::errHandler(error, __CREATE_COMMAND_QUEUE_ERR); + if (err != NULL) { + *err = error; + } + } +#endif // CL_HPP_MINIMUM_OPENCL_VERSION < 200 + + } + } + + /*! + * \brief Constructs a CommandQueue for an implementation defined device in the given context + * Will return an CL_INVALID_QUEUE_PROPERTIES error if CL_QUEUE_ON_DEVICE is specified. + */ + explicit CommandQueue( + const Context& context, + cl_command_queue_properties properties = 0, + cl_int* err = NULL) + { + cl_int error; + bool useWithProperties; + vector devices; + error = context.getInfo(CL_CONTEXT_DEVICES, &devices); + + detail::errHandler(error, __CREATE_CONTEXT_ERR); + + if (error != CL_SUCCESS) + { + if (err != NULL) { + *err = error; + } + return; + } + +#if CL_HPP_TARGET_OPENCL_VERSION >= 200 && CL_HPP_MINIMUM_OPENCL_VERSION < 200 + // Run-time decision based on the actual platform + { + cl_uint version = detail::getContextPlatformVersion(context()); + useWithProperties = (version >= 0x20000); // OpenCL 2.0 or above + } +#elif CL_HPP_TARGET_OPENCL_VERSION >= 200 + useWithProperties = true; +#else + useWithProperties = false; +#endif + +#if CL_HPP_TARGET_OPENCL_VERSION >= 200 + if (useWithProperties) { + cl_queue_properties queue_properties[] = { + CL_QUEUE_PROPERTIES, properties, 0 }; + if ((properties & CL_QUEUE_ON_DEVICE) == 0) { + object_ = ::clCreateCommandQueueWithProperties( + context(), devices[0](), queue_properties, &error); + } + else { + error = CL_INVALID_QUEUE_PROPERTIES; + } + + detail::errHandler(error, __CREATE_COMMAND_QUEUE_WITH_PROPERTIES_ERR); + if (err != NULL) { + *err = error; + } + } +#endif // CL_HPP_TARGET_OPENCL_VERSION >= 200 +#if CL_HPP_MINIMUM_OPENCL_VERSION < 200 + if (!useWithProperties) { + object_ = ::clCreateCommandQueue( + context(), devices[0](), properties, &error); + + detail::errHandler(error, __CREATE_COMMAND_QUEUE_ERR); + if (err != NULL) { + *err = error; + } + } +#endif // CL_HPP_MINIMUM_OPENCL_VERSION < 200 + } + + /*! + * \brief Constructs a CommandQueue for an implementation defined device in the given context + * Will return an CL_INVALID_QUEUE_PROPERTIES error if CL_QUEUE_ON_DEVICE is specified. + */ + explicit CommandQueue( + const Context& context, + QueueProperties properties, + cl_int* err = NULL) + { + cl_int error; + bool useWithProperties; + vector devices; + error = context.getInfo(CL_CONTEXT_DEVICES, &devices); + + detail::errHandler(error, __CREATE_CONTEXT_ERR); + + if (error != CL_SUCCESS) + { + if (err != NULL) { + *err = error; + } + return; + } + +#if CL_HPP_TARGET_OPENCL_VERSION >= 200 && CL_HPP_MINIMUM_OPENCL_VERSION < 200 + // Run-time decision based on the actual platform + { + cl_uint version = detail::getContextPlatformVersion(context()); + useWithProperties = (version >= 0x20000); // OpenCL 2.0 or above + } +#elif CL_HPP_TARGET_OPENCL_VERSION >= 200 + useWithProperties = true; +#else + useWithProperties = false; +#endif + +#if CL_HPP_TARGET_OPENCL_VERSION >= 200 + if (useWithProperties) { + cl_queue_properties queue_properties[] = { + CL_QUEUE_PROPERTIES, static_cast(properties), 0 }; + object_ = ::clCreateCommandQueueWithProperties( + context(), devices[0](), queue_properties, &error); + + detail::errHandler(error, __CREATE_COMMAND_QUEUE_WITH_PROPERTIES_ERR); + if (err != NULL) { + *err = error; + } + } +#endif // CL_HPP_TARGET_OPENCL_VERSION >= 200 +#if CL_HPP_MINIMUM_OPENCL_VERSION < 200 + if (!useWithProperties) { + object_ = ::clCreateCommandQueue( + context(), devices[0](), static_cast(properties), &error); + + detail::errHandler(error, __CREATE_COMMAND_QUEUE_ERR); + if (err != NULL) { + *err = error; + } + } +#endif // CL_HPP_MINIMUM_OPENCL_VERSION < 200 + } + + /*! + * \brief Constructs a CommandQueue for a passed device and context + * Will return an CL_INVALID_QUEUE_PROPERTIES error if CL_QUEUE_ON_DEVICE is specified. + */ + CommandQueue( + const Context& context, + const Device& device, + cl_command_queue_properties properties = 0, + cl_int* err = NULL) + { + cl_int error; + bool useWithProperties; + +#if CL_HPP_TARGET_OPENCL_VERSION >= 200 && CL_HPP_MINIMUM_OPENCL_VERSION < 200 + // Run-time decision based on the actual platform + { + cl_uint version = detail::getContextPlatformVersion(context()); + useWithProperties = (version >= 0x20000); // OpenCL 2.0 or above + } +#elif CL_HPP_TARGET_OPENCL_VERSION >= 200 + useWithProperties = true; +#else + useWithProperties = false; +#endif + +#if CL_HPP_TARGET_OPENCL_VERSION >= 200 + if (useWithProperties) { + cl_queue_properties queue_properties[] = { + CL_QUEUE_PROPERTIES, properties, 0 }; + object_ = ::clCreateCommandQueueWithProperties( + context(), device(), queue_properties, &error); + + detail::errHandler(error, __CREATE_COMMAND_QUEUE_WITH_PROPERTIES_ERR); + if (err != NULL) { + *err = error; + } + } +#endif // CL_HPP_TARGET_OPENCL_VERSION >= 200 +#if CL_HPP_MINIMUM_OPENCL_VERSION < 200 + if (!useWithProperties) { + object_ = ::clCreateCommandQueue( + context(), device(), properties, &error); + + detail::errHandler(error, __CREATE_COMMAND_QUEUE_ERR); + if (err != NULL) { + *err = error; + } + } +#endif // CL_HPP_MINIMUM_OPENCL_VERSION < 200 + } + + /*! + * \brief Constructs a CommandQueue for a passed device and context + * Will return an CL_INVALID_QUEUE_PROPERTIES error if CL_QUEUE_ON_DEVICE is specified. + */ + CommandQueue( + const Context& context, + const Device& device, + QueueProperties properties, + cl_int* err = NULL) + { + cl_int error; + bool useWithProperties; + +#if CL_HPP_TARGET_OPENCL_VERSION >= 200 && CL_HPP_MINIMUM_OPENCL_VERSION < 200 + // Run-time decision based on the actual platform + { + cl_uint version = detail::getContextPlatformVersion(context()); + useWithProperties = (version >= 0x20000); // OpenCL 2.0 or above + } +#elif CL_HPP_TARGET_OPENCL_VERSION >= 200 + useWithProperties = true; +#else + useWithProperties = false; +#endif + +#if CL_HPP_TARGET_OPENCL_VERSION >= 200 + if (useWithProperties) { + cl_queue_properties queue_properties[] = { + CL_QUEUE_PROPERTIES, static_cast(properties), 0 }; + object_ = ::clCreateCommandQueueWithProperties( + context(), device(), queue_properties, &error); + + detail::errHandler(error, __CREATE_COMMAND_QUEUE_WITH_PROPERTIES_ERR); + if (err != NULL) { + *err = error; + } + } +#endif // CL_HPP_TARGET_OPENCL_VERSION >= 200 +#if CL_HPP_MINIMUM_OPENCL_VERSION < 200 + if (!useWithProperties) { + object_ = ::clCreateCommandQueue( + context(), device(), static_cast(properties), &error); + + detail::errHandler(error, __CREATE_COMMAND_QUEUE_ERR); + if (err != NULL) { + *err = error; + } + } +#endif // CL_HPP_MINIMUM_OPENCL_VERSION < 200 + } + + static CommandQueue getDefault(cl_int * err = NULL) + { + std::call_once(default_initialized_, makeDefault); +#if CL_HPP_TARGET_OPENCL_VERSION >= 200 + detail::errHandler(default_error_, __CREATE_COMMAND_QUEUE_WITH_PROPERTIES_ERR); +#else // CL_HPP_TARGET_OPENCL_VERSION >= 200 + detail::errHandler(default_error_, __CREATE_COMMAND_QUEUE_ERR); +#endif // CL_HPP_TARGET_OPENCL_VERSION >= 200 + if (err != NULL) { + *err = default_error_; + } + return default_; + } + + /** + * Modify the default command queue to be used by + * subsequent operations. + * Will only set the default if no default was previously created. + * @return updated default command queue. + * Should be compared to the passed value to ensure that it was updated. + */ + static CommandQueue setDefault(const CommandQueue &default_queue) + { + std::call_once(default_initialized_, makeDefaultProvided, std::cref(default_queue)); + detail::errHandler(default_error_); + return default_; + } + + CommandQueue() { } + + + /*! \brief Constructor from cl_mem - takes ownership. + * + * \param retainObject will cause the constructor to retain its cl object. + * Defaults to false to maintain compatibility with + * earlier versions. + */ + explicit CommandQueue(const cl_command_queue& commandQueue, bool retainObject = false) : + detail::Wrapper(commandQueue, retainObject) { } + + CommandQueue& operator = (const cl_command_queue& rhs) + { + detail::Wrapper::operator=(rhs); + return *this; + } + + /*! \brief Copy constructor to forward copy to the superclass correctly. + * Required for MSVC. + */ + CommandQueue(const CommandQueue& queue) : detail::Wrapper(queue) {} + + /*! \brief Copy assignment to forward copy to the superclass correctly. + * Required for MSVC. + */ + CommandQueue& operator = (const CommandQueue &queue) + { + detail::Wrapper::operator=(queue); + return *this; + } + + /*! \brief Move constructor to forward move to the superclass correctly. + * Required for MSVC. + */ + CommandQueue(CommandQueue&& queue) CL_HPP_NOEXCEPT_ : detail::Wrapper(std::move(queue)) {} + + /*! \brief Move assignment to forward move to the superclass correctly. + * Required for MSVC. + */ + CommandQueue& operator = (CommandQueue &&queue) + { + detail::Wrapper::operator=(std::move(queue)); + return *this; + } + + template + cl_int getInfo(cl_command_queue_info name, T* param) const + { + return detail::errHandler( + detail::getInfo( + &::clGetCommandQueueInfo, object_, name, param), + __GET_COMMAND_QUEUE_INFO_ERR); + } + + template typename + detail::param_traits::param_type + getInfo(cl_int* err = NULL) const + { + typename detail::param_traits< + detail::cl_command_queue_info, name>::param_type param; + cl_int result = getInfo(name, ¶m); + if (err != NULL) { + *err = result; + } + return param; + } + + cl_int enqueueReadBuffer( + const Buffer& buffer, + cl_bool blocking, + size_type offset, + size_type size, + void* ptr, + const vector* events = NULL, + Event* event = NULL) const + { + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueReadBuffer( + object_, buffer(), blocking, offset, size, + ptr, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_READ_BUFFER_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } + + cl_int enqueueWriteBuffer( + const Buffer& buffer, + cl_bool blocking, + size_type offset, + size_type size, + const void* ptr, + const vector* events = NULL, + Event* event = NULL) const + { + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueWriteBuffer( + object_, buffer(), blocking, offset, size, + ptr, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_WRITE_BUFFER_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } + + cl_int enqueueCopyBuffer( + const Buffer& src, + const Buffer& dst, + size_type src_offset, + size_type dst_offset, + size_type size, + const vector* events = NULL, + Event* event = NULL) const + { + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueCopyBuffer( + object_, src(), dst(), src_offset, dst_offset, size, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQEUE_COPY_BUFFER_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } +#if CL_HPP_TARGET_OPENCL_VERSION >= 110 + cl_int enqueueReadBufferRect( + const Buffer& buffer, + cl_bool blocking, + const array& buffer_offset, + const array& host_offset, + const array& region, + size_type buffer_row_pitch, + size_type buffer_slice_pitch, + size_type host_row_pitch, + size_type host_slice_pitch, + void *ptr, + const vector* events = NULL, + Event* event = NULL) const + { + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueReadBufferRect( + object_, + buffer(), + blocking, + buffer_offset.data(), + host_offset.data(), + region.data(), + buffer_row_pitch, + buffer_slice_pitch, + host_row_pitch, + host_slice_pitch, + ptr, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_READ_BUFFER_RECT_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } + + cl_int enqueueWriteBufferRect( + const Buffer& buffer, + cl_bool blocking, + const array& buffer_offset, + const array& host_offset, + const array& region, + size_type buffer_row_pitch, + size_type buffer_slice_pitch, + size_type host_row_pitch, + size_type host_slice_pitch, + const void *ptr, + const vector* events = NULL, + Event* event = NULL) const + { + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueWriteBufferRect( + object_, + buffer(), + blocking, + buffer_offset.data(), + host_offset.data(), + region.data(), + buffer_row_pitch, + buffer_slice_pitch, + host_row_pitch, + host_slice_pitch, + ptr, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_WRITE_BUFFER_RECT_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } + + cl_int enqueueCopyBufferRect( + const Buffer& src, + const Buffer& dst, + const array& src_origin, + const array& dst_origin, + const array& region, + size_type src_row_pitch, + size_type src_slice_pitch, + size_type dst_row_pitch, + size_type dst_slice_pitch, + const vector* events = NULL, + Event* event = NULL) const + { + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueCopyBufferRect( + object_, + src(), + dst(), + src_origin.data(), + dst_origin.data(), + region.data(), + src_row_pitch, + src_slice_pitch, + dst_row_pitch, + dst_slice_pitch, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQEUE_COPY_BUFFER_RECT_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } +#endif // CL_HPP_TARGET_OPENCL_VERSION >= 110 +#if CL_HPP_TARGET_OPENCL_VERSION >= 120 + /** + * Enqueue a command to fill a buffer object with a pattern + * of a given size. The pattern is specified as a vector type. + * \tparam PatternType The datatype of the pattern field. + * The pattern type must be an accepted OpenCL data type. + * \tparam offset Is the offset in bytes into the buffer at + * which to start filling. This must be a multiple of + * the pattern size. + * \tparam size Is the size in bytes of the region to fill. + * This must be a multiple of the pattern size. + */ + template + cl_int enqueueFillBuffer( + const Buffer& buffer, + PatternType pattern, + size_type offset, + size_type size, + const vector* events = NULL, + Event* event = NULL) const + { + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueFillBuffer( + object_, + buffer(), + static_cast(&pattern), + sizeof(PatternType), + offset, + size, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_FILL_BUFFER_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } +#endif // CL_HPP_TARGET_OPENCL_VERSION >= 120 + + cl_int enqueueReadImage( + const Image& image, + cl_bool blocking, + const array& origin, + const array& region, + size_type row_pitch, + size_type slice_pitch, + void* ptr, + const vector* events = NULL, + Event* event = NULL) const + { + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueReadImage( + object_, + image(), + blocking, + origin.data(), + region.data(), + row_pitch, + slice_pitch, + ptr, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_READ_IMAGE_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } + + cl_int enqueueWriteImage( + const Image& image, + cl_bool blocking, + const array& origin, + const array& region, + size_type row_pitch, + size_type slice_pitch, + const void* ptr, + const vector* events = NULL, + Event* event = NULL) const + { + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueWriteImage( + object_, + image(), + blocking, + origin.data(), + region.data(), + row_pitch, + slice_pitch, + ptr, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_WRITE_IMAGE_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } + + cl_int enqueueCopyImage( + const Image& src, + const Image& dst, + const array& src_origin, + const array& dst_origin, + const array& region, + const vector* events = NULL, + Event* event = NULL) const + { + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueCopyImage( + object_, + src(), + dst(), + src_origin.data(), + dst_origin.data(), + region.data(), + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_COPY_IMAGE_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } + +#if CL_HPP_TARGET_OPENCL_VERSION >= 120 + /** + * Enqueue a command to fill an image object with a specified color. + * \param fillColor is the color to use to fill the image. + * This is a four component RGBA floating-point color value if + * the image channel data type is not an unnormalized signed or + * unsigned data type. + */ + cl_int enqueueFillImage( + const Image& image, + cl_float4 fillColor, + const array& origin, + const array& region, + const vector* events = NULL, + Event* event = NULL) const + { + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueFillImage( + object_, + image(), + static_cast(&fillColor), + origin.data(), + region.data(), + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_FILL_IMAGE_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } + + /** + * Enqueue a command to fill an image object with a specified color. + * \param fillColor is the color to use to fill the image. + * This is a four component RGBA signed integer color value if + * the image channel data type is an unnormalized signed integer + * type. + */ + cl_int enqueueFillImage( + const Image& image, + cl_int4 fillColor, + const array& origin, + const array& region, + const vector* events = NULL, + Event* event = NULL) const + { + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueFillImage( + object_, + image(), + static_cast(&fillColor), + origin.data(), + region.data(), + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_FILL_IMAGE_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } + + /** + * Enqueue a command to fill an image object with a specified color. + * \param fillColor is the color to use to fill the image. + * This is a four component RGBA unsigned integer color value if + * the image channel data type is an unnormalized unsigned integer + * type. + */ + cl_int enqueueFillImage( + const Image& image, + cl_uint4 fillColor, + const array& origin, + const array& region, + const vector* events = NULL, + Event* event = NULL) const + { + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueFillImage( + object_, + image(), + static_cast(&fillColor), + origin.data(), + region.data(), + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_FILL_IMAGE_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } +#endif // CL_HPP_TARGET_OPENCL_VERSION >= 120 + + cl_int enqueueCopyImageToBuffer( + const Image& src, + const Buffer& dst, + const array& src_origin, + const array& region, + size_type dst_offset, + const vector* events = NULL, + Event* event = NULL) const + { + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueCopyImageToBuffer( + object_, + src(), + dst(), + src_origin.data(), + region.data(), + dst_offset, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_COPY_IMAGE_TO_BUFFER_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } + + cl_int enqueueCopyBufferToImage( + const Buffer& src, + const Image& dst, + size_type src_offset, + const array& dst_origin, + const array& region, + const vector* events = NULL, + Event* event = NULL) const + { + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueCopyBufferToImage( + object_, + src(), + dst(), + src_offset, + dst_origin.data(), + region.data(), + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_COPY_BUFFER_TO_IMAGE_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } + + void* enqueueMapBuffer( + const Buffer& buffer, + cl_bool blocking, + cl_map_flags flags, + size_type offset, + size_type size, + const vector* events = NULL, + Event* event = NULL, + cl_int* err = NULL) const + { + cl_event tmp; + cl_int error; + void * result = ::clEnqueueMapBuffer( + object_, buffer(), blocking, flags, offset, size, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL, + &error); + + detail::errHandler(error, __ENQUEUE_MAP_BUFFER_ERR); + if (err != NULL) { + *err = error; + } + if (event != NULL && error == CL_SUCCESS) + *event = tmp; + + return result; + } + + void* enqueueMapImage( + const Image& buffer, + cl_bool blocking, + cl_map_flags flags, + const array& origin, + const array& region, + size_type * row_pitch, + size_type * slice_pitch, + const vector* events = NULL, + Event* event = NULL, + cl_int* err = NULL) const + { + cl_event tmp; + cl_int error; + void * result = ::clEnqueueMapImage( + object_, buffer(), blocking, flags, + origin.data(), + region.data(), + row_pitch, slice_pitch, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL, + &error); + + detail::errHandler(error, __ENQUEUE_MAP_IMAGE_ERR); + if (err != NULL) { + *err = error; + } + if (event != NULL && error == CL_SUCCESS) + *event = tmp; + return result; + } + +#if CL_HPP_TARGET_OPENCL_VERSION >= 200 + /** + * Enqueues a command that will allow the host to update a region of a coarse-grained SVM buffer. + * This variant takes a raw SVM pointer. + */ + template + cl_int enqueueMapSVM( + T* ptr, + cl_bool blocking, + cl_map_flags flags, + size_type size, + const vector* events = NULL, + Event* event = NULL) const + { + cl_event tmp; + cl_int err = detail::errHandler(::clEnqueueSVMMap( + object_, blocking, flags, static_cast(ptr), size, + (events != NULL) ? (cl_uint)events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*)&events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_MAP_BUFFER_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } + + + /** + * Enqueues a command that will allow the host to update a region of a coarse-grained SVM buffer. + * This variant takes a cl::pointer instance. + */ + template + cl_int enqueueMapSVM( + cl::pointer &ptr, + cl_bool blocking, + cl_map_flags flags, + size_type size, + const vector* events = NULL, + Event* event = NULL) const + { + cl_event tmp; + cl_int err = detail::errHandler(::clEnqueueSVMMap( + object_, blocking, flags, static_cast(ptr.get()), size, + (events != NULL) ? (cl_uint)events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*)&events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_MAP_BUFFER_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } + + /** + * Enqueues a command that will allow the host to update a region of a coarse-grained SVM buffer. + * This variant takes a cl::vector instance. + */ + template + cl_int enqueueMapSVM( + cl::vector &container, + cl_bool blocking, + cl_map_flags flags, + const vector* events = NULL, + Event* event = NULL) const + { + cl_event tmp; + cl_int err = detail::errHandler(::clEnqueueSVMMap( + object_, blocking, flags, static_cast(container.data()), container.size(), + (events != NULL) ? (cl_uint)events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*)&events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_MAP_BUFFER_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } +#endif // #if CL_HPP_TARGET_OPENCL_VERSION >= 200 + + cl_int enqueueUnmapMemObject( + const Memory& memory, + void* mapped_ptr, + const vector* events = NULL, + Event* event = NULL) const + { + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueUnmapMemObject( + object_, memory(), mapped_ptr, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_UNMAP_MEM_OBJECT_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } + + +#if CL_HPP_TARGET_OPENCL_VERSION >= 200 + /** + * Enqueues a command that will release a coarse-grained SVM buffer back to the OpenCL runtime. + * This variant takes a raw SVM pointer. + */ + template + cl_int enqueueUnmapSVM( + T* ptr, + const vector* events = NULL, + Event* event = NULL) const + { + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueSVMUnmap( + object_, static_cast(ptr), + (events != NULL) ? (cl_uint)events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*)&events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_UNMAP_MEM_OBJECT_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } + + /** + * Enqueues a command that will release a coarse-grained SVM buffer back to the OpenCL runtime. + * This variant takes a cl::pointer instance. + */ + template + cl_int enqueueUnmapSVM( + cl::pointer &ptr, + const vector* events = NULL, + Event* event = NULL) const + { + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueSVMUnmap( + object_, static_cast(ptr.get()), + (events != NULL) ? (cl_uint)events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*)&events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_UNMAP_MEM_OBJECT_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } + + /** + * Enqueues a command that will release a coarse-grained SVM buffer back to the OpenCL runtime. + * This variant takes a cl::vector instance. + */ + template + cl_int enqueueUnmapSVM( + cl::vector &container, + const vector* events = NULL, + Event* event = NULL) const + { + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueSVMUnmap( + object_, static_cast(container.data()), + (events != NULL) ? (cl_uint)events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*)&events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_UNMAP_MEM_OBJECT_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } +#endif // #if CL_HPP_TARGET_OPENCL_VERSION >= 200 + +#if CL_HPP_TARGET_OPENCL_VERSION >= 120 + /** + * Enqueues a marker command which waits for either a list of events to complete, + * or all previously enqueued commands to complete. + * + * Enqueues a marker command which waits for either a list of events to complete, + * or if the list is empty it waits for all commands previously enqueued in command_queue + * to complete before it completes. This command returns an event which can be waited on, + * i.e. this event can be waited on to insure that all events either in the event_wait_list + * or all previously enqueued commands, queued before this command to command_queue, + * have completed. + */ + cl_int enqueueMarkerWithWaitList( + const vector *events = 0, + Event *event = 0) const + { + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueMarkerWithWaitList( + object_, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_MARKER_WAIT_LIST_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } + + /** + * A synchronization point that enqueues a barrier operation. + * + * Enqueues a barrier command which waits for either a list of events to complete, + * or if the list is empty it waits for all commands previously enqueued in command_queue + * to complete before it completes. This command blocks command execution, that is, any + * following commands enqueued after it do not execute until it completes. This command + * returns an event which can be waited on, i.e. this event can be waited on to insure that + * all events either in the event_wait_list or all previously enqueued commands, queued + * before this command to command_queue, have completed. + */ + cl_int enqueueBarrierWithWaitList( + const vector *events = 0, + Event *event = 0) const + { + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueBarrierWithWaitList( + object_, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_BARRIER_WAIT_LIST_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } + + /** + * Enqueues a command to indicate with which device a set of memory objects + * should be associated. + */ + cl_int enqueueMigrateMemObjects( + const vector &memObjects, + cl_mem_migration_flags flags, + const vector* events = NULL, + Event* event = NULL + ) const + { + cl_event tmp; + + vector localMemObjects(memObjects.size()); + + for( int i = 0; i < (int)memObjects.size(); ++i ) { + localMemObjects[i] = memObjects[i](); + } + + cl_int err = detail::errHandler( + ::clEnqueueMigrateMemObjects( + object_, + (cl_uint)memObjects.size(), + localMemObjects.data(), + flags, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_UNMAP_MEM_OBJECT_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } +#endif // CL_HPP_TARGET_OPENCL_VERSION >= 120 + + +#if CL_HPP_TARGET_OPENCL_VERSION >= 210 + /** + * Enqueues a command that will allow the host associate ranges within a set of + * SVM allocations with a device. + * @param sizes - The length from each pointer to migrate. + */ + template + cl_int enqueueMigrateSVM( + const cl::vector &svmRawPointers, + const cl::vector &sizes, + cl_mem_migration_flags flags = 0, + const vector* events = NULL, + Event* event = NULL) const + { + cl_event tmp; + cl_int err = detail::errHandler(::clEnqueueSVMMigrateMem( + object_, + svmRawPointers.size(), static_cast(svmRawPointers.data()), + sizes.data(), // array of sizes not passed + flags, + (events != NULL) ? (cl_uint)events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*)&events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_MIGRATE_SVM_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } + + /** + * Enqueues a command that will allow the host associate a set of SVM allocations with + * a device. + */ + template + cl_int enqueueMigrateSVM( + const cl::vector &svmRawPointers, + cl_mem_migration_flags flags = 0, + const vector* events = NULL, + Event* event = NULL) const + { + return enqueueMigrateSVM(svmRawPointers, cl::vector(svmRawPointers.size()), flags, events, event); + } + + + /** + * Enqueues a command that will allow the host associate ranges within a set of + * SVM allocations with a device. + * @param sizes - The length from each pointer to migrate. + */ + template + cl_int enqueueMigrateSVM( + const cl::vector> &svmPointers, + const cl::vector &sizes, + cl_mem_migration_flags flags = 0, + const vector* events = NULL, + Event* event = NULL) const + { + cl_event tmp; + cl::vector svmRawPointers; + svmRawPointers.reserve(svmPointers.size()); + for (auto p : svmPointers) { + svmRawPointers.push_back(static_cast(p.get())); + } + + return enqueueMigrateSVM(svmRawPointers, sizes, flags, events, event); + } + + + /** + * Enqueues a command that will allow the host associate a set of SVM allocations with + * a device. + */ + template + cl_int enqueueMigrateSVM( + const cl::vector> &svmPointers, + cl_mem_migration_flags flags = 0, + const vector* events = NULL, + Event* event = NULL) const + { + return enqueueMigrateSVM(svmPointers, cl::vector(svmPointers.size()), flags, events, event); + } + + /** + * Enqueues a command that will allow the host associate ranges within a set of + * SVM allocations with a device. + * @param sizes - The length from the beginning of each container to migrate. + */ + template + cl_int enqueueMigrateSVM( + const cl::vector> &svmContainers, + const cl::vector &sizes, + cl_mem_migration_flags flags = 0, + const vector* events = NULL, + Event* event = NULL) const + { + cl_event tmp; + cl::vector svmRawPointers; + svmRawPointers.reserve(svmContainers.size()); + for (auto p : svmContainers) { + svmRawPointers.push_back(static_cast(p.data())); + } + + return enqueueMigrateSVM(svmRawPointers, sizes, flags, events, event); + } + + /** + * Enqueues a command that will allow the host associate a set of SVM allocations with + * a device. + */ + template + cl_int enqueueMigrateSVM( + const cl::vector> &svmContainers, + cl_mem_migration_flags flags = 0, + const vector* events = NULL, + Event* event = NULL) const + { + return enqueueMigrateSVM(svmContainers, cl::vector(svmContainers.size()), flags, events, event); + } + +#endif // #if CL_HPP_TARGET_OPENCL_VERSION >= 210 + + cl_int enqueueNDRangeKernel( + const Kernel& kernel, + const NDRange& offset, + const NDRange& global, + const NDRange& local = NullRange, + const vector* events = NULL, + Event* event = NULL) const + { + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueNDRangeKernel( + object_, kernel(), (cl_uint) global.dimensions(), + offset.dimensions() != 0 ? (const size_type*) offset : NULL, + (const size_type*) global, + local.dimensions() != 0 ? (const size_type*) local : NULL, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_NDRANGE_KERNEL_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } + +#if defined(CL_USE_DEPRECATED_OPENCL_1_2_APIS) + CL_EXT_PREFIX__VERSION_1_2_DEPRECATED cl_int enqueueTask( + const Kernel& kernel, + const vector* events = NULL, + Event* event = NULL) const CL_EXT_SUFFIX__VERSION_1_2_DEPRECATED + { + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueTask( + object_, kernel(), + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_TASK_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } +#endif // #if defined(CL_USE_DEPRECATED_OPENCL_1_2_APIS) + + cl_int enqueueNativeKernel( + void (CL_CALLBACK *userFptr)(void *), + std::pair args, + const vector* mem_objects = NULL, + const vector* mem_locs = NULL, + const vector* events = NULL, + Event* event = NULL) const + { + size_type elements = 0; + if (mem_objects != NULL) { + elements = mem_objects->size(); + } + vector mems(elements); + for (unsigned int i = 0; i < elements; i++) { + mems[i] = ((*mem_objects)[i])(); + } + + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueNativeKernel( + object_, userFptr, args.first, args.second, + (mem_objects != NULL) ? (cl_uint) mem_objects->size() : 0, + mems.data(), + (mem_locs != NULL && mem_locs->size() > 0) ? (const void **) &mem_locs->front() : NULL, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_NATIVE_KERNEL); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } + +/** + * Deprecated APIs for 1.2 + */ +#if defined(CL_USE_DEPRECATED_OPENCL_1_1_APIS) + CL_EXT_PREFIX__VERSION_1_1_DEPRECATED + cl_int enqueueMarker(Event* event = NULL) const CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED + { + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueMarker( + object_, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_MARKER_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } + + CL_EXT_PREFIX__VERSION_1_1_DEPRECATED + cl_int enqueueWaitForEvents(const vector& events) const CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED + { + return detail::errHandler( + ::clEnqueueWaitForEvents( + object_, + (cl_uint) events.size(), + events.size() > 0 ? (const cl_event*) &events.front() : NULL), + __ENQUEUE_WAIT_FOR_EVENTS_ERR); + } +#endif // defined(CL_USE_DEPRECATED_OPENCL_1_1_APIS) + + cl_int enqueueAcquireGLObjects( + const vector* mem_objects = NULL, + const vector* events = NULL, + Event* event = NULL) const + { + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueAcquireGLObjects( + object_, + (mem_objects != NULL) ? (cl_uint) mem_objects->size() : 0, + (mem_objects != NULL && mem_objects->size() > 0) ? (const cl_mem *) &mem_objects->front(): NULL, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_ACQUIRE_GL_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } + + cl_int enqueueReleaseGLObjects( + const vector* mem_objects = NULL, + const vector* events = NULL, + Event* event = NULL) const + { + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueReleaseGLObjects( + object_, + (mem_objects != NULL) ? (cl_uint) mem_objects->size() : 0, + (mem_objects != NULL && mem_objects->size() > 0) ? (const cl_mem *) &mem_objects->front(): NULL, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_RELEASE_GL_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } + +#if defined (CL_HPP_USE_DX_INTEROP) +typedef CL_API_ENTRY cl_int (CL_API_CALL *PFN_clEnqueueAcquireD3D10ObjectsKHR)( + cl_command_queue command_queue, cl_uint num_objects, + const cl_mem* mem_objects, cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, cl_event* event); +typedef CL_API_ENTRY cl_int (CL_API_CALL *PFN_clEnqueueReleaseD3D10ObjectsKHR)( + cl_command_queue command_queue, cl_uint num_objects, + const cl_mem* mem_objects, cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, cl_event* event); + + cl_int enqueueAcquireD3D10Objects( + const vector* mem_objects = NULL, + const vector* events = NULL, + Event* event = NULL) const + { + static PFN_clEnqueueAcquireD3D10ObjectsKHR pfn_clEnqueueAcquireD3D10ObjectsKHR = NULL; +#if CL_HPP_TARGET_OPENCL_VERSION >= 120 + cl_context context = getInfo(); + cl::Device device(getInfo()); + cl_platform_id platform = device.getInfo(); + CL_HPP_INIT_CL_EXT_FCN_PTR_PLATFORM_(platform, clEnqueueAcquireD3D10ObjectsKHR); +#endif +#if CL_HPP_TARGET_OPENCL_VERSION >= 110 + CL_HPP_INIT_CL_EXT_FCN_PTR_(clEnqueueAcquireD3D10ObjectsKHR); +#endif + + cl_event tmp; + cl_int err = detail::errHandler( + pfn_clEnqueueAcquireD3D10ObjectsKHR( + object_, + (mem_objects != NULL) ? (cl_uint) mem_objects->size() : 0, + (mem_objects != NULL && mem_objects->size() > 0) ? (const cl_mem *) &mem_objects->front(): NULL, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_ACQUIRE_GL_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } + + cl_int enqueueReleaseD3D10Objects( + const vector* mem_objects = NULL, + const vector* events = NULL, + Event* event = NULL) const + { + static PFN_clEnqueueReleaseD3D10ObjectsKHR pfn_clEnqueueReleaseD3D10ObjectsKHR = NULL; +#if CL_HPP_TARGET_OPENCL_VERSION >= 120 + cl_context context = getInfo(); + cl::Device device(getInfo()); + cl_platform_id platform = device.getInfo(); + CL_HPP_INIT_CL_EXT_FCN_PTR_PLATFORM_(platform, clEnqueueReleaseD3D10ObjectsKHR); +#endif // CL_HPP_TARGET_OPENCL_VERSION >= 120 +#if CL_HPP_TARGET_OPENCL_VERSION >= 110 + CL_HPP_INIT_CL_EXT_FCN_PTR_(clEnqueueReleaseD3D10ObjectsKHR); +#endif // CL_HPP_TARGET_OPENCL_VERSION >= 110 + + cl_event tmp; + cl_int err = detail::errHandler( + pfn_clEnqueueReleaseD3D10ObjectsKHR( + object_, + (mem_objects != NULL) ? (cl_uint) mem_objects->size() : 0, + (mem_objects != NULL && mem_objects->size() > 0) ? (const cl_mem *) &mem_objects->front(): NULL, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_RELEASE_GL_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } +#endif + +/** + * Deprecated APIs for 1.2 + */ +#if defined(CL_USE_DEPRECATED_OPENCL_1_1_APIS) + CL_EXT_PREFIX__VERSION_1_1_DEPRECATED + cl_int enqueueBarrier() const CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED + { + return detail::errHandler( + ::clEnqueueBarrier(object_), + __ENQUEUE_BARRIER_ERR); + } +#endif // CL_USE_DEPRECATED_OPENCL_1_1_APIS + + cl_int flush() const + { + return detail::errHandler(::clFlush(object_), __FLUSH_ERR); + } + + cl_int finish() const + { + return detail::errHandler(::clFinish(object_), __FINISH_ERR); + } +}; // CommandQueue + +CL_HPP_DEFINE_STATIC_MEMBER_ std::once_flag CommandQueue::default_initialized_; +CL_HPP_DEFINE_STATIC_MEMBER_ CommandQueue CommandQueue::default_; +CL_HPP_DEFINE_STATIC_MEMBER_ cl_int CommandQueue::default_error_ = CL_SUCCESS; + + +#if CL_HPP_TARGET_OPENCL_VERSION >= 200 +enum class DeviceQueueProperties : cl_command_queue_properties +{ + None = 0, + Profiling = CL_QUEUE_PROFILING_ENABLE, +}; + +inline DeviceQueueProperties operator|(DeviceQueueProperties lhs, DeviceQueueProperties rhs) +{ + return static_cast(static_cast(lhs) | static_cast(rhs)); +} + +/*! \class DeviceCommandQueue + * \brief DeviceCommandQueue interface for device cl_command_queues. + */ +class DeviceCommandQueue : public detail::Wrapper +{ +public: + + /*! + * Trivial empty constructor to create a null queue. + */ + DeviceCommandQueue() { } + + /*! + * Default construct device command queue on default context and device + */ + DeviceCommandQueue(DeviceQueueProperties properties, cl_int* err = NULL) + { + cl_int error; + cl::Context context = cl::Context::getDefault(); + cl::Device device = cl::Device::getDefault(); + + cl_command_queue_properties mergedProperties = + CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE | CL_QUEUE_ON_DEVICE | static_cast(properties); + + cl_queue_properties queue_properties[] = { + CL_QUEUE_PROPERTIES, mergedProperties, 0 }; + object_ = ::clCreateCommandQueueWithProperties( + context(), device(), queue_properties, &error); + + detail::errHandler(error, __CREATE_COMMAND_QUEUE_WITH_PROPERTIES_ERR); + if (err != NULL) { + *err = error; + } + } + + /*! + * Create a device command queue for a specified device in the passed context. + */ + DeviceCommandQueue( + const Context& context, + const Device& device, + DeviceQueueProperties properties = DeviceQueueProperties::None, + cl_int* err = NULL) + { + cl_int error; + + cl_command_queue_properties mergedProperties = + CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE | CL_QUEUE_ON_DEVICE | static_cast(properties); + cl_queue_properties queue_properties[] = { + CL_QUEUE_PROPERTIES, mergedProperties, 0 }; + object_ = ::clCreateCommandQueueWithProperties( + context(), device(), queue_properties, &error); + + detail::errHandler(error, __CREATE_COMMAND_QUEUE_WITH_PROPERTIES_ERR); + if (err != NULL) { + *err = error; + } + } + + /*! + * Create a device command queue for a specified device in the passed context. + */ + DeviceCommandQueue( + const Context& context, + const Device& device, + cl_uint queueSize, + DeviceQueueProperties properties = DeviceQueueProperties::None, + cl_int* err = NULL) + { + cl_int error; + + cl_command_queue_properties mergedProperties = + CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE | CL_QUEUE_ON_DEVICE | static_cast(properties); + cl_queue_properties queue_properties[] = { + CL_QUEUE_PROPERTIES, mergedProperties, + CL_QUEUE_SIZE, queueSize, + 0 }; + object_ = ::clCreateCommandQueueWithProperties( + context(), device(), queue_properties, &error); + + detail::errHandler(error, __CREATE_COMMAND_QUEUE_WITH_PROPERTIES_ERR); + if (err != NULL) { + *err = error; + } + } + + /*! \brief Constructor from cl_command_queue - takes ownership. + * + * \param retainObject will cause the constructor to retain its cl object. + * Defaults to false to maintain compatibility with + * earlier versions. + */ + explicit DeviceCommandQueue(const cl_command_queue& commandQueue, bool retainObject = false) : + detail::Wrapper(commandQueue, retainObject) { } + + DeviceCommandQueue& operator = (const cl_command_queue& rhs) + { + detail::Wrapper::operator=(rhs); + return *this; + } + + /*! \brief Copy constructor to forward copy to the superclass correctly. + * Required for MSVC. + */ + DeviceCommandQueue(const DeviceCommandQueue& queue) : detail::Wrapper(queue) {} + + /*! \brief Copy assignment to forward copy to the superclass correctly. + * Required for MSVC. + */ + DeviceCommandQueue& operator = (const DeviceCommandQueue &queue) + { + detail::Wrapper::operator=(queue); + return *this; + } + + /*! \brief Move constructor to forward move to the superclass correctly. + * Required for MSVC. + */ + DeviceCommandQueue(DeviceCommandQueue&& queue) CL_HPP_NOEXCEPT_ : detail::Wrapper(std::move(queue)) {} + + /*! \brief Move assignment to forward move to the superclass correctly. + * Required for MSVC. + */ + DeviceCommandQueue& operator = (DeviceCommandQueue &&queue) + { + detail::Wrapper::operator=(std::move(queue)); + return *this; + } + + template + cl_int getInfo(cl_command_queue_info name, T* param) const + { + return detail::errHandler( + detail::getInfo( + &::clGetCommandQueueInfo, object_, name, param), + __GET_COMMAND_QUEUE_INFO_ERR); + } + + template typename + detail::param_traits::param_type + getInfo(cl_int* err = NULL) const + { + typename detail::param_traits< + detail::cl_command_queue_info, name>::param_type param; + cl_int result = getInfo(name, ¶m); + if (err != NULL) { + *err = result; + } + return param; + } + + /*! + * Create a new default device command queue for the default device, + * in the default context and of the default size. + * If there is already a default queue for the specified device this + * function will return the pre-existing queue. + */ + static DeviceCommandQueue makeDefault( + cl_int *err = nullptr) + { + cl_int error; + cl::Context context = cl::Context::getDefault(); + cl::Device device = cl::Device::getDefault(); + + cl_command_queue_properties properties = + CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE | CL_QUEUE_ON_DEVICE | CL_QUEUE_ON_DEVICE_DEFAULT; + cl_queue_properties queue_properties[] = { + CL_QUEUE_PROPERTIES, properties, + 0 }; + DeviceCommandQueue deviceQueue( + ::clCreateCommandQueueWithProperties( + context(), device(), queue_properties, &error)); + + detail::errHandler(error, __CREATE_COMMAND_QUEUE_WITH_PROPERTIES_ERR); + if (err != NULL) { + *err = error; + } + + return deviceQueue; + } + + /*! + * Create a new default device command queue for the specified device + * and of the default size. + * If there is already a default queue for the specified device this + * function will return the pre-existing queue. + */ + static DeviceCommandQueue makeDefault( + const Context &context, const Device &device, cl_int *err = nullptr) + { + cl_int error; + + cl_command_queue_properties properties = + CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE | CL_QUEUE_ON_DEVICE | CL_QUEUE_ON_DEVICE_DEFAULT; + cl_queue_properties queue_properties[] = { + CL_QUEUE_PROPERTIES, properties, + 0 }; + DeviceCommandQueue deviceQueue( + ::clCreateCommandQueueWithProperties( + context(), device(), queue_properties, &error)); + + detail::errHandler(error, __CREATE_COMMAND_QUEUE_WITH_PROPERTIES_ERR); + if (err != NULL) { + *err = error; + } + + return deviceQueue; + } + + /*! + * Create a new default device command queue for the specified device + * and of the requested size in bytes. + * If there is already a default queue for the specified device this + * function will return the pre-existing queue. + */ + static DeviceCommandQueue makeDefault( + const Context &context, const Device &device, cl_uint queueSize, cl_int *err = nullptr) + { + cl_int error; + + cl_command_queue_properties properties = + CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE | CL_QUEUE_ON_DEVICE | CL_QUEUE_ON_DEVICE_DEFAULT; + cl_queue_properties queue_properties[] = { + CL_QUEUE_PROPERTIES, properties, + CL_QUEUE_SIZE, queueSize, + 0 }; + DeviceCommandQueue deviceQueue( + ::clCreateCommandQueueWithProperties( + context(), device(), queue_properties, &error)); + + detail::errHandler(error, __CREATE_COMMAND_QUEUE_WITH_PROPERTIES_ERR); + if (err != NULL) { + *err = error; + } + + return deviceQueue; + } + + + +#if CL_HPP_TARGET_OPENCL_VERSION >= 210 + /*! + * Modify the default device command queue to be used for subsequent kernels. + * This can update the default command queue for a device repeatedly to account + * for kernels that rely on the default. + * @return updated default device command queue. + */ + static DeviceCommandQueue updateDefault(const Context &context, const Device &device, const DeviceCommandQueue &default_queue, cl_int *err = nullptr) + { + cl_int error; + error = clSetDefaultDeviceCommandQueue(context.get(), device.get(), default_queue.get()); + + detail::errHandler(error, __SET_DEFAULT_DEVICE_COMMAND_QUEUE_ERR); + if (err != NULL) { + *err = error; + } + return default_queue; + } + + /*! + * Return the current default command queue for the specified command queue + */ + static DeviceCommandQueue getDefault(const CommandQueue &queue, cl_int * err = NULL) + { + return queue.getInfo(err); + } + +#endif // #if CL_HPP_TARGET_OPENCL_VERSION >= 210 +}; // DeviceCommandQueue + +namespace detail +{ + // Specialization for device command queue + template <> + struct KernelArgumentHandler + { + static size_type size(const cl::DeviceCommandQueue&) { return sizeof(cl_command_queue); } + static const cl_command_queue* ptr(const cl::DeviceCommandQueue& value) { return &(value()); } + }; +} // namespace detail + +#endif // #if CL_HPP_TARGET_OPENCL_VERSION >= 200 + + +template< typename IteratorType > +Buffer::Buffer( + const Context &context, + IteratorType startIterator, + IteratorType endIterator, + bool readOnly, + bool useHostPtr, + cl_int* err) +{ + typedef typename std::iterator_traits::value_type DataType; + cl_int error; + + cl_mem_flags flags = 0; + if( readOnly ) { + flags |= CL_MEM_READ_ONLY; + } + else { + flags |= CL_MEM_READ_WRITE; + } + if( useHostPtr ) { + flags |= CL_MEM_USE_HOST_PTR; + } + + size_type size = sizeof(DataType)*(endIterator - startIterator); + + if( useHostPtr ) { + object_ = ::clCreateBuffer(context(), flags, size, static_cast(&*startIterator), &error); + } else { + object_ = ::clCreateBuffer(context(), flags, size, 0, &error); + } + + detail::errHandler(error, __CREATE_BUFFER_ERR); + if (err != NULL) { + *err = error; + } + + if( !useHostPtr ) { + CommandQueue queue(context, 0, &error); + detail::errHandler(error, __CREATE_BUFFER_ERR); + if (err != NULL) { + *err = error; + } + + error = cl::copy(queue, startIterator, endIterator, *this); + detail::errHandler(error, __CREATE_BUFFER_ERR); + if (err != NULL) { + *err = error; + } + } +} + +template< typename IteratorType > +Buffer::Buffer( + const CommandQueue &queue, + IteratorType startIterator, + IteratorType endIterator, + bool readOnly, + bool useHostPtr, + cl_int* err) +{ + typedef typename std::iterator_traits::value_type DataType; + cl_int error; + + cl_mem_flags flags = 0; + if (readOnly) { + flags |= CL_MEM_READ_ONLY; + } + else { + flags |= CL_MEM_READ_WRITE; + } + if (useHostPtr) { + flags |= CL_MEM_USE_HOST_PTR; + } + + size_type size = sizeof(DataType)*(endIterator - startIterator); + + Context context = queue.getInfo(); + + if (useHostPtr) { + object_ = ::clCreateBuffer(context(), flags, size, static_cast(&*startIterator), &error); + } + else { + object_ = ::clCreateBuffer(context(), flags, size, 0, &error); + } + + detail::errHandler(error, __CREATE_BUFFER_ERR); + if (err != NULL) { + *err = error; + } + + if (!useHostPtr) { + error = cl::copy(queue, startIterator, endIterator, *this); + detail::errHandler(error, __CREATE_BUFFER_ERR); + if (err != NULL) { + *err = error; + } + } +} + +inline cl_int enqueueReadBuffer( + const Buffer& buffer, + cl_bool blocking, + size_type offset, + size_type size, + void* ptr, + const vector* events = NULL, + Event* event = NULL) +{ + cl_int error; + CommandQueue queue = CommandQueue::getDefault(&error); + + if (error != CL_SUCCESS) { + return error; + } + + return queue.enqueueReadBuffer(buffer, blocking, offset, size, ptr, events, event); +} + +inline cl_int enqueueWriteBuffer( + const Buffer& buffer, + cl_bool blocking, + size_type offset, + size_type size, + const void* ptr, + const vector* events = NULL, + Event* event = NULL) +{ + cl_int error; + CommandQueue queue = CommandQueue::getDefault(&error); + + if (error != CL_SUCCESS) { + return error; + } + + return queue.enqueueWriteBuffer(buffer, blocking, offset, size, ptr, events, event); +} + +inline void* enqueueMapBuffer( + const Buffer& buffer, + cl_bool blocking, + cl_map_flags flags, + size_type offset, + size_type size, + const vector* events = NULL, + Event* event = NULL, + cl_int* err = NULL) +{ + cl_int error; + CommandQueue queue = CommandQueue::getDefault(&error); + detail::errHandler(error, __ENQUEUE_MAP_BUFFER_ERR); + if (err != NULL) { + *err = error; + } + + void * result = ::clEnqueueMapBuffer( + queue(), buffer(), blocking, flags, offset, size, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (cl_event*) event, + &error); + + detail::errHandler(error, __ENQUEUE_MAP_BUFFER_ERR); + if (err != NULL) { + *err = error; + } + return result; +} + + +#if CL_HPP_TARGET_OPENCL_VERSION >= 200 +/** + * Enqueues to the default queue a command that will allow the host to + * update a region of a coarse-grained SVM buffer. + * This variant takes a raw SVM pointer. + */ +template +inline cl_int enqueueMapSVM( + T* ptr, + cl_bool blocking, + cl_map_flags flags, + size_type size, + const vector* events, + Event* event) +{ + cl_int error; + CommandQueue queue = CommandQueue::getDefault(&error); + if (error != CL_SUCCESS) { + return detail::errHandler(error, __ENQUEUE_MAP_BUFFER_ERR); + } + + return queue.enqueueMapSVM( + ptr, blocking, flags, size, events, event); +} + +/** + * Enqueues to the default queue a command that will allow the host to + * update a region of a coarse-grained SVM buffer. + * This variant takes a cl::pointer instance. + */ +template +inline cl_int enqueueMapSVM( + cl::pointer ptr, + cl_bool blocking, + cl_map_flags flags, + size_type size, + const vector* events = NULL, + Event* event = NULL) +{ + cl_int error; + CommandQueue queue = CommandQueue::getDefault(&error); + if (error != CL_SUCCESS) { + return detail::errHandler(error, __ENQUEUE_MAP_BUFFER_ERR); + } + + return queue.enqueueMapSVM( + ptr, blocking, flags, size, events, event); +} + +/** + * Enqueues to the default queue a command that will allow the host to + * update a region of a coarse-grained SVM buffer. + * This variant takes a cl::vector instance. + */ +template +inline cl_int enqueueMapSVM( + cl::vector container, + cl_bool blocking, + cl_map_flags flags, + const vector* events = NULL, + Event* event = NULL) +{ + cl_int error; + CommandQueue queue = CommandQueue::getDefault(&error); + if (error != CL_SUCCESS) { + return detail::errHandler(error, __ENQUEUE_MAP_BUFFER_ERR); + } + + return queue.enqueueMapSVM( + container, blocking, flags, events, event); +} + +#endif // #if CL_HPP_TARGET_OPENCL_VERSION >= 200 + +inline cl_int enqueueUnmapMemObject( + const Memory& memory, + void* mapped_ptr, + const vector* events = NULL, + Event* event = NULL) +{ + cl_int error; + CommandQueue queue = CommandQueue::getDefault(&error); + detail::errHandler(error, __ENQUEUE_MAP_BUFFER_ERR); + if (error != CL_SUCCESS) { + return error; + } + + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueUnmapMemObject( + queue(), memory(), mapped_ptr, + (events != NULL) ? (cl_uint)events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*)&events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_UNMAP_MEM_OBJECT_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; +} + +#if CL_HPP_TARGET_OPENCL_VERSION >= 200 +/** + * Enqueues to the default queue a command that will release a coarse-grained + * SVM buffer back to the OpenCL runtime. + * This variant takes a raw SVM pointer. + */ +template +inline cl_int enqueueUnmapSVM( + T* ptr, + const vector* events = NULL, + Event* event = NULL) +{ + cl_int error; + CommandQueue queue = CommandQueue::getDefault(&error); + if (error != CL_SUCCESS) { + return detail::errHandler(error, __ENQUEUE_UNMAP_MEM_OBJECT_ERR); + } + + return detail::errHandler(queue.enqueueUnmapSVM(ptr, events, event), + __ENQUEUE_UNMAP_MEM_OBJECT_ERR); + +} + +/** + * Enqueues to the default queue a command that will release a coarse-grained + * SVM buffer back to the OpenCL runtime. + * This variant takes a cl::pointer instance. + */ +template +inline cl_int enqueueUnmapSVM( + cl::pointer &ptr, + const vector* events = NULL, + Event* event = NULL) +{ + cl_int error; + CommandQueue queue = CommandQueue::getDefault(&error); + if (error != CL_SUCCESS) { + return detail::errHandler(error, __ENQUEUE_UNMAP_MEM_OBJECT_ERR); + } + + return detail::errHandler(queue.enqueueUnmapSVM(ptr, events, event), + __ENQUEUE_UNMAP_MEM_OBJECT_ERR); +} + +/** + * Enqueues to the default queue a command that will release a coarse-grained + * SVM buffer back to the OpenCL runtime. + * This variant takes a cl::vector instance. + */ +template +inline cl_int enqueueUnmapSVM( + cl::vector &container, + const vector* events = NULL, + Event* event = NULL) +{ + cl_int error; + CommandQueue queue = CommandQueue::getDefault(&error); + if (error != CL_SUCCESS) { + return detail::errHandler(error, __ENQUEUE_UNMAP_MEM_OBJECT_ERR); + } + + return detail::errHandler(queue.enqueueUnmapSVM(container, events, event), + __ENQUEUE_UNMAP_MEM_OBJECT_ERR); +} + +#endif // #if CL_HPP_TARGET_OPENCL_VERSION >= 200 + +inline cl_int enqueueCopyBuffer( + const Buffer& src, + const Buffer& dst, + size_type src_offset, + size_type dst_offset, + size_type size, + const vector* events = NULL, + Event* event = NULL) +{ + cl_int error; + CommandQueue queue = CommandQueue::getDefault(&error); + + if (error != CL_SUCCESS) { + return error; + } + + return queue.enqueueCopyBuffer(src, dst, src_offset, dst_offset, size, events, event); +} + +/** + * Blocking copy operation between iterators and a buffer. + * Host to Device. + * Uses default command queue. + */ +template< typename IteratorType > +inline cl_int copy( IteratorType startIterator, IteratorType endIterator, cl::Buffer &buffer ) +{ + cl_int error; + CommandQueue queue = CommandQueue::getDefault(&error); + if (error != CL_SUCCESS) + return error; + + return cl::copy(queue, startIterator, endIterator, buffer); +} + +/** + * Blocking copy operation between iterators and a buffer. + * Device to Host. + * Uses default command queue. + */ +template< typename IteratorType > +inline cl_int copy( const cl::Buffer &buffer, IteratorType startIterator, IteratorType endIterator ) +{ + cl_int error; + CommandQueue queue = CommandQueue::getDefault(&error); + if (error != CL_SUCCESS) + return error; + + return cl::copy(queue, buffer, startIterator, endIterator); +} + +/** + * Blocking copy operation between iterators and a buffer. + * Host to Device. + * Uses specified queue. + */ +template< typename IteratorType > +inline cl_int copy( const CommandQueue &queue, IteratorType startIterator, IteratorType endIterator, cl::Buffer &buffer ) +{ + typedef typename std::iterator_traits::value_type DataType; + cl_int error; + + size_type length = endIterator-startIterator; + size_type byteLength = length*sizeof(DataType); + + DataType *pointer = + static_cast(queue.enqueueMapBuffer(buffer, CL_TRUE, CL_MAP_WRITE, 0, byteLength, 0, 0, &error)); + // if exceptions enabled, enqueueMapBuffer will throw + if( error != CL_SUCCESS ) { + return error; + } +#if defined(_MSC_VER) + std::copy( + startIterator, + endIterator, + stdext::checked_array_iterator( + pointer, length)); +#else + std::copy(startIterator, endIterator, pointer); +#endif + Event endEvent; + error = queue.enqueueUnmapMemObject(buffer, pointer, 0, &endEvent); + // if exceptions enabled, enqueueUnmapMemObject will throw + if( error != CL_SUCCESS ) { + return error; + } + endEvent.wait(); + return CL_SUCCESS; +} + +/** + * Blocking copy operation between iterators and a buffer. + * Device to Host. + * Uses specified queue. + */ +template< typename IteratorType > +inline cl_int copy( const CommandQueue &queue, const cl::Buffer &buffer, IteratorType startIterator, IteratorType endIterator ) +{ + typedef typename std::iterator_traits::value_type DataType; + cl_int error; + + size_type length = endIterator-startIterator; + size_type byteLength = length*sizeof(DataType); + + DataType *pointer = + static_cast(queue.enqueueMapBuffer(buffer, CL_TRUE, CL_MAP_READ, 0, byteLength, 0, 0, &error)); + // if exceptions enabled, enqueueMapBuffer will throw + if( error != CL_SUCCESS ) { + return error; + } + std::copy(pointer, pointer + length, startIterator); + Event endEvent; + error = queue.enqueueUnmapMemObject(buffer, pointer, 0, &endEvent); + // if exceptions enabled, enqueueUnmapMemObject will throw + if( error != CL_SUCCESS ) { + return error; + } + endEvent.wait(); + return CL_SUCCESS; +} + + +#if CL_HPP_TARGET_OPENCL_VERSION >= 200 +/** + * Blocking SVM map operation - performs a blocking map underneath. + */ +template +inline cl_int mapSVM(cl::vector &container) +{ + return enqueueMapSVM(container, CL_TRUE, CL_MAP_READ | CL_MAP_WRITE); +} + +/** +* Blocking SVM map operation - performs a blocking map underneath. +*/ +template +inline cl_int unmapSVM(cl::vector &container) +{ + return enqueueUnmapSVM(container); +} + +#endif // #if CL_HPP_TARGET_OPENCL_VERSION >= 200 + +#if CL_HPP_TARGET_OPENCL_VERSION >= 110 +inline cl_int enqueueReadBufferRect( + const Buffer& buffer, + cl_bool blocking, + const array& buffer_offset, + const array& host_offset, + const array& region, + size_type buffer_row_pitch, + size_type buffer_slice_pitch, + size_type host_row_pitch, + size_type host_slice_pitch, + void *ptr, + const vector* events = NULL, + Event* event = NULL) +{ + cl_int error; + CommandQueue queue = CommandQueue::getDefault(&error); + + if (error != CL_SUCCESS) { + return error; + } + + return queue.enqueueReadBufferRect( + buffer, + blocking, + buffer_offset, + host_offset, + region, + buffer_row_pitch, + buffer_slice_pitch, + host_row_pitch, + host_slice_pitch, + ptr, + events, + event); +} + +inline cl_int enqueueWriteBufferRect( + const Buffer& buffer, + cl_bool blocking, + const array& buffer_offset, + const array& host_offset, + const array& region, + size_type buffer_row_pitch, + size_type buffer_slice_pitch, + size_type host_row_pitch, + size_type host_slice_pitch, + const void *ptr, + const vector* events = NULL, + Event* event = NULL) +{ + cl_int error; + CommandQueue queue = CommandQueue::getDefault(&error); + + if (error != CL_SUCCESS) { + return error; + } + + return queue.enqueueWriteBufferRect( + buffer, + blocking, + buffer_offset, + host_offset, + region, + buffer_row_pitch, + buffer_slice_pitch, + host_row_pitch, + host_slice_pitch, + ptr, + events, + event); +} + +inline cl_int enqueueCopyBufferRect( + const Buffer& src, + const Buffer& dst, + const array& src_origin, + const array& dst_origin, + const array& region, + size_type src_row_pitch, + size_type src_slice_pitch, + size_type dst_row_pitch, + size_type dst_slice_pitch, + const vector* events = NULL, + Event* event = NULL) +{ + cl_int error; + CommandQueue queue = CommandQueue::getDefault(&error); + + if (error != CL_SUCCESS) { + return error; + } + + return queue.enqueueCopyBufferRect( + src, + dst, + src_origin, + dst_origin, + region, + src_row_pitch, + src_slice_pitch, + dst_row_pitch, + dst_slice_pitch, + events, + event); +} +#endif // CL_HPP_TARGET_OPENCL_VERSION >= 110 + +inline cl_int enqueueReadImage( + const Image& image, + cl_bool blocking, + const array& origin, + const array& region, + size_type row_pitch, + size_type slice_pitch, + void* ptr, + const vector* events = NULL, + Event* event = NULL) +{ + cl_int error; + CommandQueue queue = CommandQueue::getDefault(&error); + + if (error != CL_SUCCESS) { + return error; + } + + return queue.enqueueReadImage( + image, + blocking, + origin, + region, + row_pitch, + slice_pitch, + ptr, + events, + event); +} + +inline cl_int enqueueWriteImage( + const Image& image, + cl_bool blocking, + const array& origin, + const array& region, + size_type row_pitch, + size_type slice_pitch, + const void* ptr, + const vector* events = NULL, + Event* event = NULL) +{ + cl_int error; + CommandQueue queue = CommandQueue::getDefault(&error); + + if (error != CL_SUCCESS) { + return error; + } + + return queue.enqueueWriteImage( + image, + blocking, + origin, + region, + row_pitch, + slice_pitch, + ptr, + events, + event); +} + +inline cl_int enqueueCopyImage( + const Image& src, + const Image& dst, + const array& src_origin, + const array& dst_origin, + const array& region, + const vector* events = NULL, + Event* event = NULL) +{ + cl_int error; + CommandQueue queue = CommandQueue::getDefault(&error); + + if (error != CL_SUCCESS) { + return error; + } + + return queue.enqueueCopyImage( + src, + dst, + src_origin, + dst_origin, + region, + events, + event); +} + +inline cl_int enqueueCopyImageToBuffer( + const Image& src, + const Buffer& dst, + const array& src_origin, + const array& region, + size_type dst_offset, + const vector* events = NULL, + Event* event = NULL) +{ + cl_int error; + CommandQueue queue = CommandQueue::getDefault(&error); + + if (error != CL_SUCCESS) { + return error; + } + + return queue.enqueueCopyImageToBuffer( + src, + dst, + src_origin, + region, + dst_offset, + events, + event); +} + +inline cl_int enqueueCopyBufferToImage( + const Buffer& src, + const Image& dst, + size_type src_offset, + const array& dst_origin, + const array& region, + const vector* events = NULL, + Event* event = NULL) +{ + cl_int error; + CommandQueue queue = CommandQueue::getDefault(&error); + + if (error != CL_SUCCESS) { + return error; + } + + return queue.enqueueCopyBufferToImage( + src, + dst, + src_offset, + dst_origin, + region, + events, + event); +} + + +inline cl_int flush(void) +{ + cl_int error; + CommandQueue queue = CommandQueue::getDefault(&error); + + if (error != CL_SUCCESS) { + return error; + } + + return queue.flush(); +} + +inline cl_int finish(void) +{ + cl_int error; + CommandQueue queue = CommandQueue::getDefault(&error); + + if (error != CL_SUCCESS) { + return error; + } + + + return queue.finish(); +} + +class EnqueueArgs +{ +private: + CommandQueue queue_; + const NDRange offset_; + const NDRange global_; + const NDRange local_; + vector events_; + + template + friend class KernelFunctor; + +public: + EnqueueArgs(NDRange global) : + queue_(CommandQueue::getDefault()), + offset_(NullRange), + global_(global), + local_(NullRange) + { + + } + + EnqueueArgs(NDRange global, NDRange local) : + queue_(CommandQueue::getDefault()), + offset_(NullRange), + global_(global), + local_(local) + { + + } + + EnqueueArgs(NDRange offset, NDRange global, NDRange local) : + queue_(CommandQueue::getDefault()), + offset_(offset), + global_(global), + local_(local) + { + + } + + EnqueueArgs(Event e, NDRange global) : + queue_(CommandQueue::getDefault()), + offset_(NullRange), + global_(global), + local_(NullRange) + { + events_.push_back(e); + } + + EnqueueArgs(Event e, NDRange global, NDRange local) : + queue_(CommandQueue::getDefault()), + offset_(NullRange), + global_(global), + local_(local) + { + events_.push_back(e); + } + + EnqueueArgs(Event e, NDRange offset, NDRange global, NDRange local) : + queue_(CommandQueue::getDefault()), + offset_(offset), + global_(global), + local_(local) + { + events_.push_back(e); + } + + EnqueueArgs(const vector &events, NDRange global) : + queue_(CommandQueue::getDefault()), + offset_(NullRange), + global_(global), + local_(NullRange), + events_(events) + { + + } + + EnqueueArgs(const vector &events, NDRange global, NDRange local) : + queue_(CommandQueue::getDefault()), + offset_(NullRange), + global_(global), + local_(local), + events_(events) + { + + } + + EnqueueArgs(const vector &events, NDRange offset, NDRange global, NDRange local) : + queue_(CommandQueue::getDefault()), + offset_(offset), + global_(global), + local_(local), + events_(events) + { + + } + + EnqueueArgs(CommandQueue &queue, NDRange global) : + queue_(queue), + offset_(NullRange), + global_(global), + local_(NullRange) + { + + } + + EnqueueArgs(CommandQueue &queue, NDRange global, NDRange local) : + queue_(queue), + offset_(NullRange), + global_(global), + local_(local) + { + + } + + EnqueueArgs(CommandQueue &queue, NDRange offset, NDRange global, NDRange local) : + queue_(queue), + offset_(offset), + global_(global), + local_(local) + { + + } + + EnqueueArgs(CommandQueue &queue, Event e, NDRange global) : + queue_(queue), + offset_(NullRange), + global_(global), + local_(NullRange) + { + events_.push_back(e); + } + + EnqueueArgs(CommandQueue &queue, Event e, NDRange global, NDRange local) : + queue_(queue), + offset_(NullRange), + global_(global), + local_(local) + { + events_.push_back(e); + } + + EnqueueArgs(CommandQueue &queue, Event e, NDRange offset, NDRange global, NDRange local) : + queue_(queue), + offset_(offset), + global_(global), + local_(local) + { + events_.push_back(e); + } + + EnqueueArgs(CommandQueue &queue, const vector &events, NDRange global) : + queue_(queue), + offset_(NullRange), + global_(global), + local_(NullRange), + events_(events) + { + + } + + EnqueueArgs(CommandQueue &queue, const vector &events, NDRange global, NDRange local) : + queue_(queue), + offset_(NullRange), + global_(global), + local_(local), + events_(events) + { + + } + + EnqueueArgs(CommandQueue &queue, const vector &events, NDRange offset, NDRange global, NDRange local) : + queue_(queue), + offset_(offset), + global_(global), + local_(local), + events_(events) + { + + } +}; + + +//---------------------------------------------------------------------------------------------- + + +/** + * Type safe kernel functor. + * + */ +template +class KernelFunctor +{ +private: + Kernel kernel_; + + template + void setArgs(T0&& t0, T1s&&... t1s) + { + kernel_.setArg(index, t0); + setArgs(std::forward(t1s)...); + } + + template + void setArgs(T0&& t0) + { + kernel_.setArg(index, t0); + } + + template + void setArgs() + { + } + + +public: + KernelFunctor(Kernel kernel) : kernel_(kernel) + {} + + KernelFunctor( + const Program& program, + const string name, + cl_int * err = NULL) : + kernel_(program, name.c_str(), err) + {} + + //! \brief Return type of the functor + typedef Event result_type; + + /** + * Enqueue kernel. + * @param args Launch parameters of the kernel. + * @param t0... List of kernel arguments based on the template type of the functor. + */ + Event operator() ( + const EnqueueArgs& args, + Ts... ts) + { + Event event; + setArgs<0>(std::forward(ts)...); + + args.queue_.enqueueNDRangeKernel( + kernel_, + args.offset_, + args.global_, + args.local_, + &args.events_, + &event); + + return event; + } + + /** + * Enqueue kernel with support for error code. + * @param args Launch parameters of the kernel. + * @param t0... List of kernel arguments based on the template type of the functor. + * @param error Out parameter returning the error code from the execution. + */ + Event operator() ( + const EnqueueArgs& args, + Ts... ts, + cl_int &error) + { + Event event; + setArgs<0>(std::forward(ts)...); + + error = args.queue_.enqueueNDRangeKernel( + kernel_, + args.offset_, + args.global_, + args.local_, + &args.events_, + &event); + + return event; + } + +#if CL_HPP_TARGET_OPENCL_VERSION >= 200 + cl_int setSVMPointers(const vector &pointerList) + { + return kernel_.setSVMPointers(pointerList); + } + + template + cl_int setSVMPointers(const T0 &t0, T1s &... ts) + { + return kernel_.setSVMPointers(t0, ts...); + } +#endif // #if CL_HPP_TARGET_OPENCL_VERSION >= 200 + + Kernel getKernel() + { + return kernel_; + } +}; + +namespace compatibility { + /** + * Backward compatibility class to ensure that cl.hpp code works with cl2.hpp. + * Please use KernelFunctor directly. + */ + template + struct make_kernel + { + typedef KernelFunctor FunctorType; + + FunctorType functor_; + + make_kernel( + const Program& program, + const string name, + cl_int * err = NULL) : + functor_(FunctorType(program, name, err)) + {} + + make_kernel( + const Kernel kernel) : + functor_(FunctorType(kernel)) + {} + + //! \brief Return type of the functor + typedef Event result_type; + + //! \brief Function signature of kernel functor with no event dependency. + typedef Event type_( + const EnqueueArgs&, + Ts...); + + Event operator()( + const EnqueueArgs& enqueueArgs, + Ts... args) + { + return functor_( + enqueueArgs, args...); + } + }; +} // namespace compatibility + + +//---------------------------------------------------------------------------------------------------------------------- + +#undef CL_HPP_ERR_STR_ +#if !defined(CL_HPP_USER_OVERRIDE_ERROR_STRINGS) +#undef __GET_DEVICE_INFO_ERR +#undef __GET_PLATFORM_INFO_ERR +#undef __GET_DEVICE_IDS_ERR +#undef __GET_PLATFORM_IDS_ERR +#undef __GET_CONTEXT_INFO_ERR +#undef __GET_EVENT_INFO_ERR +#undef __GET_EVENT_PROFILE_INFO_ERR +#undef __GET_MEM_OBJECT_INFO_ERR +#undef __GET_IMAGE_INFO_ERR +#undef __GET_SAMPLER_INFO_ERR +#undef __GET_KERNEL_INFO_ERR +#undef __GET_KERNEL_ARG_INFO_ERR +#undef __GET_KERNEL_SUB_GROUP_INFO_ERR +#undef __GET_KERNEL_WORK_GROUP_INFO_ERR +#undef __GET_PROGRAM_INFO_ERR +#undef __GET_PROGRAM_BUILD_INFO_ERR +#undef __GET_COMMAND_QUEUE_INFO_ERR +#undef __CREATE_CONTEXT_ERR +#undef __CREATE_CONTEXT_FROM_TYPE_ERR +#undef __GET_SUPPORTED_IMAGE_FORMATS_ERR +#undef __CREATE_BUFFER_ERR +#undef __COPY_ERR +#undef __CREATE_SUBBUFFER_ERR +#undef __CREATE_GL_BUFFER_ERR +#undef __CREATE_GL_RENDER_BUFFER_ERR +#undef __GET_GL_OBJECT_INFO_ERR +#undef __CREATE_IMAGE_ERR +#undef __CREATE_GL_TEXTURE_ERR +#undef __IMAGE_DIMENSION_ERR +#undef __SET_MEM_OBJECT_DESTRUCTOR_CALLBACK_ERR +#undef __CREATE_USER_EVENT_ERR +#undef __SET_USER_EVENT_STATUS_ERR +#undef __SET_EVENT_CALLBACK_ERR +#undef __WAIT_FOR_EVENTS_ERR +#undef __CREATE_KERNEL_ERR +#undef __SET_KERNEL_ARGS_ERR +#undef __CREATE_PROGRAM_WITH_SOURCE_ERR +#undef __CREATE_PROGRAM_WITH_IL_ERR +#undef __CREATE_PROGRAM_WITH_BINARY_ERR +#undef __CREATE_PROGRAM_WITH_IL_ERR +#undef __CREATE_PROGRAM_WITH_BUILT_IN_KERNELS_ERR +#undef __BUILD_PROGRAM_ERR +#undef __COMPILE_PROGRAM_ERR +#undef __LINK_PROGRAM_ERR +#undef __CREATE_KERNELS_IN_PROGRAM_ERR +#undef __CREATE_COMMAND_QUEUE_WITH_PROPERTIES_ERR +#undef __CREATE_SAMPLER_WITH_PROPERTIES_ERR +#undef __SET_COMMAND_QUEUE_PROPERTY_ERR +#undef __ENQUEUE_READ_BUFFER_ERR +#undef __ENQUEUE_READ_BUFFER_RECT_ERR +#undef __ENQUEUE_WRITE_BUFFER_ERR +#undef __ENQUEUE_WRITE_BUFFER_RECT_ERR +#undef __ENQEUE_COPY_BUFFER_ERR +#undef __ENQEUE_COPY_BUFFER_RECT_ERR +#undef __ENQUEUE_FILL_BUFFER_ERR +#undef __ENQUEUE_READ_IMAGE_ERR +#undef __ENQUEUE_WRITE_IMAGE_ERR +#undef __ENQUEUE_COPY_IMAGE_ERR +#undef __ENQUEUE_FILL_IMAGE_ERR +#undef __ENQUEUE_COPY_IMAGE_TO_BUFFER_ERR +#undef __ENQUEUE_COPY_BUFFER_TO_IMAGE_ERR +#undef __ENQUEUE_MAP_BUFFER_ERR +#undef __ENQUEUE_MAP_IMAGE_ERR +#undef __ENQUEUE_UNMAP_MEM_OBJECT_ERR +#undef __ENQUEUE_NDRANGE_KERNEL_ERR +#undef __ENQUEUE_NATIVE_KERNEL +#undef __ENQUEUE_MIGRATE_MEM_OBJECTS_ERR +#undef __ENQUEUE_MIGRATE_SVM_ERR +#undef __ENQUEUE_ACQUIRE_GL_ERR +#undef __ENQUEUE_RELEASE_GL_ERR +#undef __CREATE_PIPE_ERR +#undef __GET_PIPE_INFO_ERR +#undef __RETAIN_ERR +#undef __RELEASE_ERR +#undef __FLUSH_ERR +#undef __FINISH_ERR +#undef __VECTOR_CAPACITY_ERR +#undef __CREATE_SUB_DEVICES_ERR +#undef __CREATE_SUB_DEVICES_ERR +#undef __ENQUEUE_MARKER_ERR +#undef __ENQUEUE_WAIT_FOR_EVENTS_ERR +#undef __ENQUEUE_BARRIER_ERR +#undef __UNLOAD_COMPILER_ERR +#undef __CREATE_GL_TEXTURE_2D_ERR +#undef __CREATE_GL_TEXTURE_3D_ERR +#undef __CREATE_IMAGE2D_ERR +#undef __CREATE_IMAGE3D_ERR +#undef __CREATE_COMMAND_QUEUE_ERR +#undef __ENQUEUE_TASK_ERR +#undef __CREATE_SAMPLER_ERR +#undef __ENQUEUE_MARKER_WAIT_LIST_ERR +#undef __ENQUEUE_BARRIER_WAIT_LIST_ERR +#undef __CLONE_KERNEL_ERR +#undef __GET_HOST_TIMER_ERR +#undef __GET_DEVICE_AND_HOST_TIMER_ERR + +#endif //CL_HPP_USER_OVERRIDE_ERROR_STRINGS + +// Extensions +#undef CL_HPP_INIT_CL_EXT_FCN_PTR_ +#undef CL_HPP_INIT_CL_EXT_FCN_PTR_PLATFORM_ + +#if defined(CL_HPP_USE_CL_DEVICE_FISSION) +#undef CL_HPP_PARAM_NAME_DEVICE_FISSION_ +#endif // CL_HPP_USE_CL_DEVICE_FISSION + +#undef CL_HPP_NOEXCEPT_ +#undef CL_HPP_DEFINE_STATIC_MEMBER_ + +} // namespace cl + +#endif // CL_HPP_ diff --git a/benchmarks/opencl/include/CL/cl_d3d10.h b/benchmarks/opencl/include/CL/cl_d3d10.h new file mode 100644 index 00000000..d5960a43 --- /dev/null +++ b/benchmarks/opencl/include/CL/cl_d3d10.h @@ -0,0 +1,131 @@ +/********************************************************************************** + * Copyright (c) 2008-2015 The Khronos Group Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and/or associated documentation files (the + * "Materials"), to deal in the Materials without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Materials, and to + * permit persons to whom the Materials are furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Materials. + * + * MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS + * KHRONOS STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS + * SPECIFICATIONS AND HEADER INFORMATION ARE LOCATED AT + * https://www.khronos.org/registry/ + * + * THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. + **********************************************************************************/ + +/* $Revision: 11708 $ on $Date: 2010-06-13 23:36:24 -0700 (Sun, 13 Jun 2010) $ */ + +#ifndef __OPENCL_CL_D3D10_H +#define __OPENCL_CL_D3D10_H + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/****************************************************************************** + * cl_khr_d3d10_sharing */ +#define cl_khr_d3d10_sharing 1 + +typedef cl_uint cl_d3d10_device_source_khr; +typedef cl_uint cl_d3d10_device_set_khr; + +/******************************************************************************/ + +/* Error Codes */ +#define CL_INVALID_D3D10_DEVICE_KHR -1002 +#define CL_INVALID_D3D10_RESOURCE_KHR -1003 +#define CL_D3D10_RESOURCE_ALREADY_ACQUIRED_KHR -1004 +#define CL_D3D10_RESOURCE_NOT_ACQUIRED_KHR -1005 + +/* cl_d3d10_device_source_nv */ +#define CL_D3D10_DEVICE_KHR 0x4010 +#define CL_D3D10_DXGI_ADAPTER_KHR 0x4011 + +/* cl_d3d10_device_set_nv */ +#define CL_PREFERRED_DEVICES_FOR_D3D10_KHR 0x4012 +#define CL_ALL_DEVICES_FOR_D3D10_KHR 0x4013 + +/* cl_context_info */ +#define CL_CONTEXT_D3D10_DEVICE_KHR 0x4014 +#define CL_CONTEXT_D3D10_PREFER_SHARED_RESOURCES_KHR 0x402C + +/* cl_mem_info */ +#define CL_MEM_D3D10_RESOURCE_KHR 0x4015 + +/* cl_image_info */ +#define CL_IMAGE_D3D10_SUBRESOURCE_KHR 0x4016 + +/* cl_command_type */ +#define CL_COMMAND_ACQUIRE_D3D10_OBJECTS_KHR 0x4017 +#define CL_COMMAND_RELEASE_D3D10_OBJECTS_KHR 0x4018 + +/******************************************************************************/ + +typedef CL_API_ENTRY cl_int (CL_API_CALL *clGetDeviceIDsFromD3D10KHR_fn)( + cl_platform_id platform, + cl_d3d10_device_source_khr d3d_device_source, + void * d3d_object, + cl_d3d10_device_set_khr d3d_device_set, + cl_uint num_entries, + cl_device_id * devices, + cl_uint * num_devices) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromD3D10BufferKHR_fn)( + cl_context context, + cl_mem_flags flags, + ID3D10Buffer * resource, + cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromD3D10Texture2DKHR_fn)( + cl_context context, + cl_mem_flags flags, + ID3D10Texture2D * resource, + UINT subresource, + cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromD3D10Texture3DKHR_fn)( + cl_context context, + cl_mem_flags flags, + ID3D10Texture3D * resource, + UINT subresource, + cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueAcquireD3D10ObjectsKHR_fn)( + cl_command_queue command_queue, + cl_uint num_objects, + const cl_mem * mem_objects, + cl_uint num_events_in_wait_list, + const cl_event * event_wait_list, + cl_event * event) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueReleaseD3D10ObjectsKHR_fn)( + cl_command_queue command_queue, + cl_uint num_objects, + const cl_mem * mem_objects, + cl_uint num_events_in_wait_list, + const cl_event * event_wait_list, + cl_event * event) CL_API_SUFFIX__VERSION_1_0; + +#ifdef __cplusplus +} +#endif + +#endif /* __OPENCL_CL_D3D10_H */ + diff --git a/benchmarks/opencl/include/CL/cl_d3d11.h b/benchmarks/opencl/include/CL/cl_d3d11.h new file mode 100644 index 00000000..39f90723 --- /dev/null +++ b/benchmarks/opencl/include/CL/cl_d3d11.h @@ -0,0 +1,131 @@ +/********************************************************************************** + * Copyright (c) 2008-2015 The Khronos Group Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and/or associated documentation files (the + * "Materials"), to deal in the Materials without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Materials, and to + * permit persons to whom the Materials are furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Materials. + * + * MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS + * KHRONOS STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS + * SPECIFICATIONS AND HEADER INFORMATION ARE LOCATED AT + * https://www.khronos.org/registry/ + * + * THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. + **********************************************************************************/ + +/* $Revision: 11708 $ on $Date: 2010-06-13 23:36:24 -0700 (Sun, 13 Jun 2010) $ */ + +#ifndef __OPENCL_CL_D3D11_H +#define __OPENCL_CL_D3D11_H + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/****************************************************************************** + * cl_khr_d3d11_sharing */ +#define cl_khr_d3d11_sharing 1 + +typedef cl_uint cl_d3d11_device_source_khr; +typedef cl_uint cl_d3d11_device_set_khr; + +/******************************************************************************/ + +/* Error Codes */ +#define CL_INVALID_D3D11_DEVICE_KHR -1006 +#define CL_INVALID_D3D11_RESOURCE_KHR -1007 +#define CL_D3D11_RESOURCE_ALREADY_ACQUIRED_KHR -1008 +#define CL_D3D11_RESOURCE_NOT_ACQUIRED_KHR -1009 + +/* cl_d3d11_device_source */ +#define CL_D3D11_DEVICE_KHR 0x4019 +#define CL_D3D11_DXGI_ADAPTER_KHR 0x401A + +/* cl_d3d11_device_set */ +#define CL_PREFERRED_DEVICES_FOR_D3D11_KHR 0x401B +#define CL_ALL_DEVICES_FOR_D3D11_KHR 0x401C + +/* cl_context_info */ +#define CL_CONTEXT_D3D11_DEVICE_KHR 0x401D +#define CL_CONTEXT_D3D11_PREFER_SHARED_RESOURCES_KHR 0x402D + +/* cl_mem_info */ +#define CL_MEM_D3D11_RESOURCE_KHR 0x401E + +/* cl_image_info */ +#define CL_IMAGE_D3D11_SUBRESOURCE_KHR 0x401F + +/* cl_command_type */ +#define CL_COMMAND_ACQUIRE_D3D11_OBJECTS_KHR 0x4020 +#define CL_COMMAND_RELEASE_D3D11_OBJECTS_KHR 0x4021 + +/******************************************************************************/ + +typedef CL_API_ENTRY cl_int (CL_API_CALL *clGetDeviceIDsFromD3D11KHR_fn)( + cl_platform_id platform, + cl_d3d11_device_source_khr d3d_device_source, + void * d3d_object, + cl_d3d11_device_set_khr d3d_device_set, + cl_uint num_entries, + cl_device_id * devices, + cl_uint * num_devices) CL_API_SUFFIX__VERSION_1_2; + +typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromD3D11BufferKHR_fn)( + cl_context context, + cl_mem_flags flags, + ID3D11Buffer * resource, + cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2; + +typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromD3D11Texture2DKHR_fn)( + cl_context context, + cl_mem_flags flags, + ID3D11Texture2D * resource, + UINT subresource, + cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2; + +typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromD3D11Texture3DKHR_fn)( + cl_context context, + cl_mem_flags flags, + ID3D11Texture3D * resource, + UINT subresource, + cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2; + +typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueAcquireD3D11ObjectsKHR_fn)( + cl_command_queue command_queue, + cl_uint num_objects, + const cl_mem * mem_objects, + cl_uint num_events_in_wait_list, + const cl_event * event_wait_list, + cl_event * event) CL_API_SUFFIX__VERSION_1_2; + +typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueReleaseD3D11ObjectsKHR_fn)( + cl_command_queue command_queue, + cl_uint num_objects, + const cl_mem * mem_objects, + cl_uint num_events_in_wait_list, + const cl_event * event_wait_list, + cl_event * event) CL_API_SUFFIX__VERSION_1_2; + +#ifdef __cplusplus +} +#endif + +#endif /* __OPENCL_CL_D3D11_H */ + diff --git a/benchmarks/opencl/include/CL/cl_dx9_media_sharing.h b/benchmarks/opencl/include/CL/cl_dx9_media_sharing.h new file mode 100644 index 00000000..2729e8b9 --- /dev/null +++ b/benchmarks/opencl/include/CL/cl_dx9_media_sharing.h @@ -0,0 +1,132 @@ +/********************************************************************************** + * Copyright (c) 2008-2015 The Khronos Group Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and/or associated documentation files (the + * "Materials"), to deal in the Materials without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Materials, and to + * permit persons to whom the Materials are furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Materials. + * + * MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS + * KHRONOS STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS + * SPECIFICATIONS AND HEADER INFORMATION ARE LOCATED AT + * https://www.khronos.org/registry/ + * + * THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. + **********************************************************************************/ + +/* $Revision: 11708 $ on $Date: 2010-06-13 23:36:24 -0700 (Sun, 13 Jun 2010) $ */ + +#ifndef __OPENCL_CL_DX9_MEDIA_SHARING_H +#define __OPENCL_CL_DX9_MEDIA_SHARING_H + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/******************************************************************************/ +/* cl_khr_dx9_media_sharing */ +#define cl_khr_dx9_media_sharing 1 + +typedef cl_uint cl_dx9_media_adapter_type_khr; +typedef cl_uint cl_dx9_media_adapter_set_khr; + +#if defined(_WIN32) +#include +typedef struct _cl_dx9_surface_info_khr +{ + IDirect3DSurface9 *resource; + HANDLE shared_handle; +} cl_dx9_surface_info_khr; +#endif + + +/******************************************************************************/ + +/* Error Codes */ +#define CL_INVALID_DX9_MEDIA_ADAPTER_KHR -1010 +#define CL_INVALID_DX9_MEDIA_SURFACE_KHR -1011 +#define CL_DX9_MEDIA_SURFACE_ALREADY_ACQUIRED_KHR -1012 +#define CL_DX9_MEDIA_SURFACE_NOT_ACQUIRED_KHR -1013 + +/* cl_media_adapter_type_khr */ +#define CL_ADAPTER_D3D9_KHR 0x2020 +#define CL_ADAPTER_D3D9EX_KHR 0x2021 +#define CL_ADAPTER_DXVA_KHR 0x2022 + +/* cl_media_adapter_set_khr */ +#define CL_PREFERRED_DEVICES_FOR_DX9_MEDIA_ADAPTER_KHR 0x2023 +#define CL_ALL_DEVICES_FOR_DX9_MEDIA_ADAPTER_KHR 0x2024 + +/* cl_context_info */ +#define CL_CONTEXT_ADAPTER_D3D9_KHR 0x2025 +#define CL_CONTEXT_ADAPTER_D3D9EX_KHR 0x2026 +#define CL_CONTEXT_ADAPTER_DXVA_KHR 0x2027 + +/* cl_mem_info */ +#define CL_MEM_DX9_MEDIA_ADAPTER_TYPE_KHR 0x2028 +#define CL_MEM_DX9_MEDIA_SURFACE_INFO_KHR 0x2029 + +/* cl_image_info */ +#define CL_IMAGE_DX9_MEDIA_PLANE_KHR 0x202A + +/* cl_command_type */ +#define CL_COMMAND_ACQUIRE_DX9_MEDIA_SURFACES_KHR 0x202B +#define CL_COMMAND_RELEASE_DX9_MEDIA_SURFACES_KHR 0x202C + +/******************************************************************************/ + +typedef CL_API_ENTRY cl_int (CL_API_CALL *clGetDeviceIDsFromDX9MediaAdapterKHR_fn)( + cl_platform_id platform, + cl_uint num_media_adapters, + cl_dx9_media_adapter_type_khr * media_adapter_type, + void * media_adapters, + cl_dx9_media_adapter_set_khr media_adapter_set, + cl_uint num_entries, + cl_device_id * devices, + cl_uint * num_devices) CL_API_SUFFIX__VERSION_1_2; + +typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromDX9MediaSurfaceKHR_fn)( + cl_context context, + cl_mem_flags flags, + cl_dx9_media_adapter_type_khr adapter_type, + void * surface_info, + cl_uint plane, + cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2; + +typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueAcquireDX9MediaSurfacesKHR_fn)( + cl_command_queue command_queue, + cl_uint num_objects, + const cl_mem * mem_objects, + cl_uint num_events_in_wait_list, + const cl_event * event_wait_list, + cl_event * event) CL_API_SUFFIX__VERSION_1_2; + +typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueReleaseDX9MediaSurfacesKHR_fn)( + cl_command_queue command_queue, + cl_uint num_objects, + const cl_mem * mem_objects, + cl_uint num_events_in_wait_list, + const cl_event * event_wait_list, + cl_event * event) CL_API_SUFFIX__VERSION_1_2; + +#ifdef __cplusplus +} +#endif + +#endif /* __OPENCL_CL_DX9_MEDIA_SHARING_H */ + diff --git a/benchmarks/opencl/include/CL/cl_dx9_media_sharing_intel.h b/benchmarks/opencl/include/CL/cl_dx9_media_sharing_intel.h new file mode 100644 index 00000000..737e6856 --- /dev/null +++ b/benchmarks/opencl/include/CL/cl_dx9_media_sharing_intel.h @@ -0,0 +1,182 @@ +/********************************************************************************** + * Copyright (c) 2008-2019 The Khronos Group Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and/or associated documentation files (the + * "Materials"), to deal in the Materials without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Materials, and to + * permit persons to whom the Materials are furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Materials. + * + * MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS + * KHRONOS STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS + * SPECIFICATIONS AND HEADER INFORMATION ARE LOCATED AT + * https://www.khronos.org/registry/ + * + * THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. + **********************************************************************************/ +/*****************************************************************************\ + +Copyright (c) 2013-2019 Intel Corporation All Rights Reserved. + +THESE MATERIALS ARE PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INTEL OR ITS +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THESE +MATERIALS, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +File Name: cl_dx9_media_sharing_intel.h + +Abstract: + +Notes: + +\*****************************************************************************/ + +#ifndef __OPENCL_CL_DX9_MEDIA_SHARING_INTEL_H +#define __OPENCL_CL_DX9_MEDIA_SHARING_INTEL_H + +#include +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/*************************************** +* cl_intel_dx9_media_sharing extension * +****************************************/ + +#define cl_intel_dx9_media_sharing 1 + +typedef cl_uint cl_dx9_device_source_intel; +typedef cl_uint cl_dx9_device_set_intel; + +/* error codes */ +#define CL_INVALID_DX9_DEVICE_INTEL -1010 +#define CL_INVALID_DX9_RESOURCE_INTEL -1011 +#define CL_DX9_RESOURCE_ALREADY_ACQUIRED_INTEL -1012 +#define CL_DX9_RESOURCE_NOT_ACQUIRED_INTEL -1013 + +/* cl_dx9_device_source_intel */ +#define CL_D3D9_DEVICE_INTEL 0x4022 +#define CL_D3D9EX_DEVICE_INTEL 0x4070 +#define CL_DXVA_DEVICE_INTEL 0x4071 + +/* cl_dx9_device_set_intel */ +#define CL_PREFERRED_DEVICES_FOR_DX9_INTEL 0x4024 +#define CL_ALL_DEVICES_FOR_DX9_INTEL 0x4025 + +/* cl_context_info */ +#define CL_CONTEXT_D3D9_DEVICE_INTEL 0x4026 +#define CL_CONTEXT_D3D9EX_DEVICE_INTEL 0x4072 +#define CL_CONTEXT_DXVA_DEVICE_INTEL 0x4073 + +/* cl_mem_info */ +#define CL_MEM_DX9_RESOURCE_INTEL 0x4027 +#define CL_MEM_DX9_SHARED_HANDLE_INTEL 0x4074 + +/* cl_image_info */ +#define CL_IMAGE_DX9_PLANE_INTEL 0x4075 + +/* cl_command_type */ +#define CL_COMMAND_ACQUIRE_DX9_OBJECTS_INTEL 0x402A +#define CL_COMMAND_RELEASE_DX9_OBJECTS_INTEL 0x402B +/******************************************************************************/ + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetDeviceIDsFromDX9INTEL( + cl_platform_id platform, + cl_dx9_device_source_intel dx9_device_source, + void* dx9_object, + cl_dx9_device_set_intel dx9_device_set, + cl_uint num_entries, + cl_device_id* devices, + cl_uint* num_devices) CL_EXT_SUFFIX__VERSION_1_1; + +typedef CL_API_ENTRY cl_int (CL_API_CALL* clGetDeviceIDsFromDX9INTEL_fn)( + cl_platform_id platform, + cl_dx9_device_source_intel dx9_device_source, + void* dx9_object, + cl_dx9_device_set_intel dx9_device_set, + cl_uint num_entries, + cl_device_id* devices, + cl_uint* num_devices) CL_EXT_SUFFIX__VERSION_1_1; + +extern CL_API_ENTRY cl_mem CL_API_CALL +clCreateFromDX9MediaSurfaceINTEL( + cl_context context, + cl_mem_flags flags, + IDirect3DSurface9* resource, + HANDLE sharedHandle, + UINT plane, + cl_int* errcode_ret) CL_EXT_SUFFIX__VERSION_1_1; + +typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromDX9MediaSurfaceINTEL_fn)( + cl_context context, + cl_mem_flags flags, + IDirect3DSurface9* resource, + HANDLE sharedHandle, + UINT plane, + cl_int* errcode_ret) CL_EXT_SUFFIX__VERSION_1_1; + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueAcquireDX9ObjectsINTEL( + cl_command_queue command_queue, + cl_uint num_objects, + const cl_mem* mem_objects, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_EXT_SUFFIX__VERSION_1_1; + +typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueAcquireDX9ObjectsINTEL_fn)( + cl_command_queue command_queue, + cl_uint num_objects, + const cl_mem* mem_objects, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_EXT_SUFFIX__VERSION_1_1; + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueReleaseDX9ObjectsINTEL( + cl_command_queue command_queue, + cl_uint num_objects, + cl_mem* mem_objects, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_EXT_SUFFIX__VERSION_1_1; + +typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueReleaseDX9ObjectsINTEL_fn)( + cl_command_queue command_queue, + cl_uint num_objects, + cl_mem* mem_objects, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_EXT_SUFFIX__VERSION_1_1; + +#ifdef __cplusplus +} +#endif + +#endif /* __OPENCL_CL_DX9_MEDIA_SHARING_INTEL_H */ + diff --git a/benchmarks/opencl/include/CL/cl_egl.h b/benchmarks/opencl/include/CL/cl_egl.h new file mode 100644 index 00000000..bc4d998e --- /dev/null +++ b/benchmarks/opencl/include/CL/cl_egl.h @@ -0,0 +1,132 @@ +/******************************************************************************* + * Copyright (c) 2008-2019 The Khronos Group Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and/or associated documentation files (the + * "Materials"), to deal in the Materials without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Materials, and to + * permit persons to whom the Materials are furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Materials. + * + * MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS + * KHRONOS STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS + * SPECIFICATIONS AND HEADER INFORMATION ARE LOCATED AT + * https://www.khronos.org/registry/ + * + * THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. + ******************************************************************************/ + +#ifndef __OPENCL_CL_EGL_H +#define __OPENCL_CL_EGL_H + +#include + +#ifdef __cplusplus +extern "C" { +#endif + + +/* Command type for events created with clEnqueueAcquireEGLObjectsKHR */ +#define CL_COMMAND_EGL_FENCE_SYNC_OBJECT_KHR 0x202F +#define CL_COMMAND_ACQUIRE_EGL_OBJECTS_KHR 0x202D +#define CL_COMMAND_RELEASE_EGL_OBJECTS_KHR 0x202E + +/* Error type for clCreateFromEGLImageKHR */ +#define CL_INVALID_EGL_OBJECT_KHR -1093 +#define CL_EGL_RESOURCE_NOT_ACQUIRED_KHR -1092 + +/* CLeglImageKHR is an opaque handle to an EGLImage */ +typedef void* CLeglImageKHR; + +/* CLeglDisplayKHR is an opaque handle to an EGLDisplay */ +typedef void* CLeglDisplayKHR; + +/* CLeglSyncKHR is an opaque handle to an EGLSync object */ +typedef void* CLeglSyncKHR; + +/* properties passed to clCreateFromEGLImageKHR */ +typedef intptr_t cl_egl_image_properties_khr; + + +#define cl_khr_egl_image 1 + +extern CL_API_ENTRY cl_mem CL_API_CALL +clCreateFromEGLImageKHR(cl_context context, + CLeglDisplayKHR egldisplay, + CLeglImageKHR eglimage, + cl_mem_flags flags, + const cl_egl_image_properties_khr * properties, + cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromEGLImageKHR_fn)( + cl_context context, + CLeglDisplayKHR egldisplay, + CLeglImageKHR eglimage, + cl_mem_flags flags, + const cl_egl_image_properties_khr * properties, + cl_int * errcode_ret); + + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueAcquireEGLObjectsKHR(cl_command_queue command_queue, + cl_uint num_objects, + const cl_mem * mem_objects, + cl_uint num_events_in_wait_list, + const cl_event * event_wait_list, + cl_event * event) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueAcquireEGLObjectsKHR_fn)( + cl_command_queue command_queue, + cl_uint num_objects, + const cl_mem * mem_objects, + cl_uint num_events_in_wait_list, + const cl_event * event_wait_list, + cl_event * event); + + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueReleaseEGLObjectsKHR(cl_command_queue command_queue, + cl_uint num_objects, + const cl_mem * mem_objects, + cl_uint num_events_in_wait_list, + const cl_event * event_wait_list, + cl_event * event) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueReleaseEGLObjectsKHR_fn)( + cl_command_queue command_queue, + cl_uint num_objects, + const cl_mem * mem_objects, + cl_uint num_events_in_wait_list, + const cl_event * event_wait_list, + cl_event * event); + + +#define cl_khr_egl_event 1 + +extern CL_API_ENTRY cl_event CL_API_CALL +clCreateEventFromEGLSyncKHR(cl_context context, + CLeglSyncKHR sync, + CLeglDisplayKHR display, + cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY cl_event (CL_API_CALL *clCreateEventFromEGLSyncKHR_fn)( + cl_context context, + CLeglSyncKHR sync, + CLeglDisplayKHR display, + cl_int * errcode_ret); + +#ifdef __cplusplus +} +#endif + +#endif /* __OPENCL_CL_EGL_H */ diff --git a/benchmarks/opencl/include/CL/cl_ext.h b/benchmarks/opencl/include/CL/cl_ext.h new file mode 100644 index 00000000..5c185915 --- /dev/null +++ b/benchmarks/opencl/include/CL/cl_ext.h @@ -0,0 +1,762 @@ +/******************************************************************************* + * Copyright (c) 2008-2019 The Khronos Group Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and/or associated documentation files (the + * "Materials"), to deal in the Materials without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Materials, and to + * permit persons to whom the Materials are furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Materials. + * + * MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS + * KHRONOS STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS + * SPECIFICATIONS AND HEADER INFORMATION ARE LOCATED AT + * https://www.khronos.org/registry/ + * + * THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. + ******************************************************************************/ + +/* cl_ext.h contains OpenCL extensions which don't have external */ +/* (OpenGL, D3D) dependencies. */ + +#ifndef __CL_EXT_H +#define __CL_EXT_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include + +/* cl_khr_fp64 extension - no extension #define since it has no functions */ +/* CL_DEVICE_DOUBLE_FP_CONFIG is defined in CL.h for OpenCL >= 120 */ + +#if CL_TARGET_OPENCL_VERSION <= 110 +#define CL_DEVICE_DOUBLE_FP_CONFIG 0x1032 +#endif + +/* cl_khr_fp16 extension - no extension #define since it has no functions */ +#define CL_DEVICE_HALF_FP_CONFIG 0x1033 + +/* Memory object destruction + * + * Apple extension for use to manage externally allocated buffers used with cl_mem objects with CL_MEM_USE_HOST_PTR + * + * Registers a user callback function that will be called when the memory object is deleted and its resources + * freed. Each call to clSetMemObjectCallbackFn registers the specified user callback function on a callback + * stack associated with memobj. The registered user callback functions are called in the reverse order in + * which they were registered. The user callback functions are called and then the memory object is deleted + * and its resources freed. This provides a mechanism for the application (and libraries) using memobj to be + * notified when the memory referenced by host_ptr, specified when the memory object is created and used as + * the storage bits for the memory object, can be reused or freed. + * + * The application may not call CL api's with the cl_mem object passed to the pfn_notify. + * + * Please check for the "cl_APPLE_SetMemObjectDestructor" extension using clGetDeviceInfo(CL_DEVICE_EXTENSIONS) + * before using. + */ +#define cl_APPLE_SetMemObjectDestructor 1 +cl_int CL_API_ENTRY clSetMemObjectDestructorAPPLE( cl_mem memobj, + void (* pfn_notify)(cl_mem memobj, void * user_data), + void * user_data) CL_EXT_SUFFIX__VERSION_1_0; + + +/* Context Logging Functions + * + * The next three convenience functions are intended to be used as the pfn_notify parameter to clCreateContext(). + * Please check for the "cl_APPLE_ContextLoggingFunctions" extension using clGetDeviceInfo(CL_DEVICE_EXTENSIONS) + * before using. + * + * clLogMessagesToSystemLog forwards on all log messages to the Apple System Logger + */ +#define cl_APPLE_ContextLoggingFunctions 1 +extern void CL_API_ENTRY clLogMessagesToSystemLogAPPLE( const char * errstr, + const void * private_info, + size_t cb, + void * user_data) CL_EXT_SUFFIX__VERSION_1_0; + +/* clLogMessagesToStdout sends all log messages to the file descriptor stdout */ +extern void CL_API_ENTRY clLogMessagesToStdoutAPPLE( const char * errstr, + const void * private_info, + size_t cb, + void * user_data) CL_EXT_SUFFIX__VERSION_1_0; + +/* clLogMessagesToStderr sends all log messages to the file descriptor stderr */ +extern void CL_API_ENTRY clLogMessagesToStderrAPPLE( const char * errstr, + const void * private_info, + size_t cb, + void * user_data) CL_EXT_SUFFIX__VERSION_1_0; + + +/************************ +* cl_khr_icd extension * +************************/ +#define cl_khr_icd 1 + +/* cl_platform_info */ +#define CL_PLATFORM_ICD_SUFFIX_KHR 0x0920 + +/* Additional Error Codes */ +#define CL_PLATFORM_NOT_FOUND_KHR -1001 + +extern CL_API_ENTRY cl_int CL_API_CALL +clIcdGetPlatformIDsKHR(cl_uint num_entries, + cl_platform_id * platforms, + cl_uint * num_platforms); + +typedef CL_API_ENTRY cl_int +(CL_API_CALL *clIcdGetPlatformIDsKHR_fn)(cl_uint num_entries, + cl_platform_id * platforms, + cl_uint * num_platforms); + + +/******************************* + * cl_khr_il_program extension * + *******************************/ +#define cl_khr_il_program 1 + +/* New property to clGetDeviceInfo for retrieving supported intermediate + * languages + */ +#define CL_DEVICE_IL_VERSION_KHR 0x105B + +/* New property to clGetProgramInfo for retrieving for retrieving the IL of a + * program + */ +#define CL_PROGRAM_IL_KHR 0x1169 + +extern CL_API_ENTRY cl_program CL_API_CALL +clCreateProgramWithILKHR(cl_context context, + const void * il, + size_t length, + cl_int * errcode_ret); + +typedef CL_API_ENTRY cl_program +(CL_API_CALL *clCreateProgramWithILKHR_fn)(cl_context context, + const void * il, + size_t length, + cl_int * errcode_ret) CL_EXT_SUFFIX__VERSION_1_2; + +/* Extension: cl_khr_image2d_from_buffer + * + * This extension allows a 2D image to be created from a cl_mem buffer without + * a copy. The type associated with a 2D image created from a buffer in an + * OpenCL program is image2d_t. Both the sampler and sampler-less read_image + * built-in functions are supported for 2D images and 2D images created from + * a buffer. Similarly, the write_image built-ins are also supported for 2D + * images created from a buffer. + * + * When the 2D image from buffer is created, the client must specify the + * width, height, image format (i.e. channel order and channel data type) + * and optionally the row pitch. + * + * The pitch specified must be a multiple of + * CL_DEVICE_IMAGE_PITCH_ALIGNMENT_KHR pixels. + * The base address of the buffer must be aligned to + * CL_DEVICE_IMAGE_BASE_ADDRESS_ALIGNMENT_KHR pixels. + */ + +#define CL_DEVICE_IMAGE_PITCH_ALIGNMENT_KHR 0x104A +#define CL_DEVICE_IMAGE_BASE_ADDRESS_ALIGNMENT_KHR 0x104B + + +/************************************** + * cl_khr_initialize_memory extension * + **************************************/ + +#define CL_CONTEXT_MEMORY_INITIALIZE_KHR 0x2030 + + +/************************************** + * cl_khr_terminate_context extension * + **************************************/ + +#define CL_DEVICE_TERMINATE_CAPABILITY_KHR 0x2031 +#define CL_CONTEXT_TERMINATE_KHR 0x2032 + +#define cl_khr_terminate_context 1 +extern CL_API_ENTRY cl_int CL_API_CALL +clTerminateContextKHR(cl_context context) CL_EXT_SUFFIX__VERSION_1_2; + +typedef CL_API_ENTRY cl_int +(CL_API_CALL *clTerminateContextKHR_fn)(cl_context context) CL_EXT_SUFFIX__VERSION_1_2; + + +/* + * Extension: cl_khr_spir + * + * This extension adds support to create an OpenCL program object from a + * Standard Portable Intermediate Representation (SPIR) instance + */ + +#define CL_DEVICE_SPIR_VERSIONS 0x40E0 +#define CL_PROGRAM_BINARY_TYPE_INTERMEDIATE 0x40E1 + + +/***************************************** + * cl_khr_create_command_queue extension * + *****************************************/ +#define cl_khr_create_command_queue 1 + +typedef cl_bitfield cl_queue_properties_khr; + +extern CL_API_ENTRY cl_command_queue CL_API_CALL +clCreateCommandQueueWithPropertiesKHR(cl_context context, + cl_device_id device, + const cl_queue_properties_khr* properties, + cl_int* errcode_ret) CL_EXT_SUFFIX__VERSION_1_2; + +typedef CL_API_ENTRY cl_command_queue +(CL_API_CALL *clCreateCommandQueueWithPropertiesKHR_fn)(cl_context context, + cl_device_id device, + const cl_queue_properties_khr* properties, + cl_int* errcode_ret) CL_EXT_SUFFIX__VERSION_1_2; + + +/****************************************** +* cl_nv_device_attribute_query extension * +******************************************/ + +/* cl_nv_device_attribute_query extension - no extension #define since it has no functions */ +#define CL_DEVICE_COMPUTE_CAPABILITY_MAJOR_NV 0x4000 +#define CL_DEVICE_COMPUTE_CAPABILITY_MINOR_NV 0x4001 +#define CL_DEVICE_REGISTERS_PER_BLOCK_NV 0x4002 +#define CL_DEVICE_WARP_SIZE_NV 0x4003 +#define CL_DEVICE_GPU_OVERLAP_NV 0x4004 +#define CL_DEVICE_KERNEL_EXEC_TIMEOUT_NV 0x4005 +#define CL_DEVICE_INTEGRATED_MEMORY_NV 0x4006 + + +/********************************* +* cl_amd_device_attribute_query * +*********************************/ + +#define CL_DEVICE_PROFILING_TIMER_OFFSET_AMD 0x4036 + + +/********************************* +* cl_arm_printf extension +*********************************/ + +#define CL_PRINTF_CALLBACK_ARM 0x40B0 +#define CL_PRINTF_BUFFERSIZE_ARM 0x40B1 + + +/*********************************** +* cl_ext_device_fission extension +***********************************/ +#define cl_ext_device_fission 1 + +extern CL_API_ENTRY cl_int CL_API_CALL +clReleaseDeviceEXT(cl_device_id device) CL_EXT_SUFFIX__VERSION_1_1; + +typedef CL_API_ENTRY cl_int +(CL_API_CALL *clReleaseDeviceEXT_fn)(cl_device_id device) CL_EXT_SUFFIX__VERSION_1_1; + +extern CL_API_ENTRY cl_int CL_API_CALL +clRetainDeviceEXT(cl_device_id device) CL_EXT_SUFFIX__VERSION_1_1; + +typedef CL_API_ENTRY cl_int +(CL_API_CALL *clRetainDeviceEXT_fn)(cl_device_id device) CL_EXT_SUFFIX__VERSION_1_1; + +typedef cl_ulong cl_device_partition_property_ext; +extern CL_API_ENTRY cl_int CL_API_CALL +clCreateSubDevicesEXT(cl_device_id in_device, + const cl_device_partition_property_ext * properties, + cl_uint num_entries, + cl_device_id * out_devices, + cl_uint * num_devices) CL_EXT_SUFFIX__VERSION_1_1; + +typedef CL_API_ENTRY cl_int +(CL_API_CALL * clCreateSubDevicesEXT_fn)(cl_device_id in_device, + const cl_device_partition_property_ext * properties, + cl_uint num_entries, + cl_device_id * out_devices, + cl_uint * num_devices) CL_EXT_SUFFIX__VERSION_1_1; + +/* cl_device_partition_property_ext */ +#define CL_DEVICE_PARTITION_EQUALLY_EXT 0x4050 +#define CL_DEVICE_PARTITION_BY_COUNTS_EXT 0x4051 +#define CL_DEVICE_PARTITION_BY_NAMES_EXT 0x4052 +#define CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN_EXT 0x4053 + +/* clDeviceGetInfo selectors */ +#define CL_DEVICE_PARENT_DEVICE_EXT 0x4054 +#define CL_DEVICE_PARTITION_TYPES_EXT 0x4055 +#define CL_DEVICE_AFFINITY_DOMAINS_EXT 0x4056 +#define CL_DEVICE_REFERENCE_COUNT_EXT 0x4057 +#define CL_DEVICE_PARTITION_STYLE_EXT 0x4058 + +/* error codes */ +#define CL_DEVICE_PARTITION_FAILED_EXT -1057 +#define CL_INVALID_PARTITION_COUNT_EXT -1058 +#define CL_INVALID_PARTITION_NAME_EXT -1059 + +/* CL_AFFINITY_DOMAINs */ +#define CL_AFFINITY_DOMAIN_L1_CACHE_EXT 0x1 +#define CL_AFFINITY_DOMAIN_L2_CACHE_EXT 0x2 +#define CL_AFFINITY_DOMAIN_L3_CACHE_EXT 0x3 +#define CL_AFFINITY_DOMAIN_L4_CACHE_EXT 0x4 +#define CL_AFFINITY_DOMAIN_NUMA_EXT 0x10 +#define CL_AFFINITY_DOMAIN_NEXT_FISSIONABLE_EXT 0x100 + +/* cl_device_partition_property_ext list terminators */ +#define CL_PROPERTIES_LIST_END_EXT ((cl_device_partition_property_ext) 0) +#define CL_PARTITION_BY_COUNTS_LIST_END_EXT ((cl_device_partition_property_ext) 0) +#define CL_PARTITION_BY_NAMES_LIST_END_EXT ((cl_device_partition_property_ext) 0 - 1) + + +/*********************************** + * cl_ext_migrate_memobject extension definitions + ***********************************/ +#define cl_ext_migrate_memobject 1 + +typedef cl_bitfield cl_mem_migration_flags_ext; + +#define CL_MIGRATE_MEM_OBJECT_HOST_EXT 0x1 + +#define CL_COMMAND_MIGRATE_MEM_OBJECT_EXT 0x4040 + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueMigrateMemObjectEXT(cl_command_queue command_queue, + cl_uint num_mem_objects, + const cl_mem * mem_objects, + cl_mem_migration_flags_ext flags, + cl_uint num_events_in_wait_list, + const cl_event * event_wait_list, + cl_event * event); + +typedef CL_API_ENTRY cl_int +(CL_API_CALL *clEnqueueMigrateMemObjectEXT_fn)(cl_command_queue command_queue, + cl_uint num_mem_objects, + const cl_mem * mem_objects, + cl_mem_migration_flags_ext flags, + cl_uint num_events_in_wait_list, + const cl_event * event_wait_list, + cl_event * event); + + +/********************************* +* cl_qcom_ext_host_ptr extension +*********************************/ +#define cl_qcom_ext_host_ptr 1 + +#define CL_MEM_EXT_HOST_PTR_QCOM (1 << 29) + +#define CL_DEVICE_EXT_MEM_PADDING_IN_BYTES_QCOM 0x40A0 +#define CL_DEVICE_PAGE_SIZE_QCOM 0x40A1 +#define CL_IMAGE_ROW_ALIGNMENT_QCOM 0x40A2 +#define CL_IMAGE_SLICE_ALIGNMENT_QCOM 0x40A3 +#define CL_MEM_HOST_UNCACHED_QCOM 0x40A4 +#define CL_MEM_HOST_WRITEBACK_QCOM 0x40A5 +#define CL_MEM_HOST_WRITETHROUGH_QCOM 0x40A6 +#define CL_MEM_HOST_WRITE_COMBINING_QCOM 0x40A7 + +typedef cl_uint cl_image_pitch_info_qcom; + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetDeviceImageInfoQCOM(cl_device_id device, + size_t image_width, + size_t image_height, + const cl_image_format *image_format, + cl_image_pitch_info_qcom param_name, + size_t param_value_size, + void *param_value, + size_t *param_value_size_ret); + +typedef struct _cl_mem_ext_host_ptr +{ + /* Type of external memory allocation. */ + /* Legal values will be defined in layered extensions. */ + cl_uint allocation_type; + + /* Host cache policy for this external memory allocation. */ + cl_uint host_cache_policy; + +} cl_mem_ext_host_ptr; + + +/******************************************* +* cl_qcom_ext_host_ptr_iocoherent extension +********************************************/ + +/* Cache policy specifying io-coherence */ +#define CL_MEM_HOST_IOCOHERENT_QCOM 0x40A9 + + +/********************************* +* cl_qcom_ion_host_ptr extension +*********************************/ + +#define CL_MEM_ION_HOST_PTR_QCOM 0x40A8 + +typedef struct _cl_mem_ion_host_ptr +{ + /* Type of external memory allocation. */ + /* Must be CL_MEM_ION_HOST_PTR_QCOM for ION allocations. */ + cl_mem_ext_host_ptr ext_host_ptr; + + /* ION file descriptor */ + int ion_filedesc; + + /* Host pointer to the ION allocated memory */ + void* ion_hostptr; + +} cl_mem_ion_host_ptr; + + +/********************************* +* cl_qcom_android_native_buffer_host_ptr extension +*********************************/ + +#define CL_MEM_ANDROID_NATIVE_BUFFER_HOST_PTR_QCOM 0x40C6 + +typedef struct _cl_mem_android_native_buffer_host_ptr +{ + /* Type of external memory allocation. */ + /* Must be CL_MEM_ANDROID_NATIVE_BUFFER_HOST_PTR_QCOM for Android native buffers. */ + cl_mem_ext_host_ptr ext_host_ptr; + + /* Virtual pointer to the android native buffer */ + void* anb_ptr; + +} cl_mem_android_native_buffer_host_ptr; + + +/****************************************** + * cl_img_yuv_image extension * + ******************************************/ + +/* Image formats used in clCreateImage */ +#define CL_NV21_IMG 0x40D0 +#define CL_YV12_IMG 0x40D1 + + +/****************************************** + * cl_img_cached_allocations extension * + ******************************************/ + +/* Flag values used by clCreateBuffer */ +#define CL_MEM_USE_UNCACHED_CPU_MEMORY_IMG (1 << 26) +#define CL_MEM_USE_CACHED_CPU_MEMORY_IMG (1 << 27) + + +/****************************************** + * cl_img_use_gralloc_ptr extension * + ******************************************/ +#define cl_img_use_gralloc_ptr 1 + +/* Flag values used by clCreateBuffer */ +#define CL_MEM_USE_GRALLOC_PTR_IMG (1 << 28) + +/* To be used by clGetEventInfo: */ +#define CL_COMMAND_ACQUIRE_GRALLOC_OBJECTS_IMG 0x40D2 +#define CL_COMMAND_RELEASE_GRALLOC_OBJECTS_IMG 0x40D3 + +/* Error code from clEnqueueReleaseGrallocObjectsIMG */ +#define CL_GRALLOC_RESOURCE_NOT_ACQUIRED_IMG 0x40D4 + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueAcquireGrallocObjectsIMG(cl_command_queue command_queue, + cl_uint num_objects, + const cl_mem * mem_objects, + cl_uint num_events_in_wait_list, + const cl_event * event_wait_list, + cl_event * event) CL_EXT_SUFFIX__VERSION_1_2; + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueReleaseGrallocObjectsIMG(cl_command_queue command_queue, + cl_uint num_objects, + const cl_mem * mem_objects, + cl_uint num_events_in_wait_list, + const cl_event * event_wait_list, + cl_event * event) CL_EXT_SUFFIX__VERSION_1_2; + + +/********************************* +* cl_khr_subgroups extension +*********************************/ +#define cl_khr_subgroups 1 + +#if !defined(CL_VERSION_2_1) +/* For OpenCL 2.1 and newer, cl_kernel_sub_group_info is declared in CL.h. + In hindsight, there should have been a khr suffix on this type for + the extension, but keeping it un-suffixed to maintain backwards + compatibility. */ +typedef cl_uint cl_kernel_sub_group_info; +#endif + +/* cl_kernel_sub_group_info */ +#define CL_KERNEL_MAX_SUB_GROUP_SIZE_FOR_NDRANGE_KHR 0x2033 +#define CL_KERNEL_SUB_GROUP_COUNT_FOR_NDRANGE_KHR 0x2034 + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetKernelSubGroupInfoKHR(cl_kernel in_kernel, + cl_device_id in_device, + cl_kernel_sub_group_info param_name, + size_t input_value_size, + const void * input_value, + size_t param_value_size, + void * param_value, + size_t * param_value_size_ret) CL_EXT_SUFFIX__VERSION_2_0_DEPRECATED; + +typedef CL_API_ENTRY cl_int +(CL_API_CALL * clGetKernelSubGroupInfoKHR_fn)(cl_kernel in_kernel, + cl_device_id in_device, + cl_kernel_sub_group_info param_name, + size_t input_value_size, + const void * input_value, + size_t param_value_size, + void * param_value, + size_t * param_value_size_ret) CL_EXT_SUFFIX__VERSION_2_0_DEPRECATED; + + +/********************************* +* cl_khr_mipmap_image extension +*********************************/ + +/* cl_sampler_properties */ +#define CL_SAMPLER_MIP_FILTER_MODE_KHR 0x1155 +#define CL_SAMPLER_LOD_MIN_KHR 0x1156 +#define CL_SAMPLER_LOD_MAX_KHR 0x1157 + + +/********************************* +* cl_khr_priority_hints extension +*********************************/ +/* This extension define is for backwards compatibility. + It shouldn't be required since this extension has no new functions. */ +#define cl_khr_priority_hints 1 + +typedef cl_uint cl_queue_priority_khr; + +/* cl_command_queue_properties */ +#define CL_QUEUE_PRIORITY_KHR 0x1096 + +/* cl_queue_priority_khr */ +#define CL_QUEUE_PRIORITY_HIGH_KHR (1<<0) +#define CL_QUEUE_PRIORITY_MED_KHR (1<<1) +#define CL_QUEUE_PRIORITY_LOW_KHR (1<<2) + + +/********************************* +* cl_khr_throttle_hints extension +*********************************/ +/* This extension define is for backwards compatibility. + It shouldn't be required since this extension has no new functions. */ +#define cl_khr_throttle_hints 1 + +typedef cl_uint cl_queue_throttle_khr; + +/* cl_command_queue_properties */ +#define CL_QUEUE_THROTTLE_KHR 0x1097 + +/* cl_queue_throttle_khr */ +#define CL_QUEUE_THROTTLE_HIGH_KHR (1<<0) +#define CL_QUEUE_THROTTLE_MED_KHR (1<<1) +#define CL_QUEUE_THROTTLE_LOW_KHR (1<<2) + + +/********************************* +* cl_khr_subgroup_named_barrier +*********************************/ +/* This extension define is for backwards compatibility. + It shouldn't be required since this extension has no new functions. */ +#define cl_khr_subgroup_named_barrier 1 + +/* cl_device_info */ +#define CL_DEVICE_MAX_NAMED_BARRIER_COUNT_KHR 0x2035 + + +/********************************** + * cl_arm_import_memory extension * + **********************************/ +#define cl_arm_import_memory 1 + +typedef intptr_t cl_import_properties_arm; + +/* Default and valid proporties name for cl_arm_import_memory */ +#define CL_IMPORT_TYPE_ARM 0x40B2 + +/* Host process memory type default value for CL_IMPORT_TYPE_ARM property */ +#define CL_IMPORT_TYPE_HOST_ARM 0x40B3 + +/* DMA BUF memory type value for CL_IMPORT_TYPE_ARM property */ +#define CL_IMPORT_TYPE_DMA_BUF_ARM 0x40B4 + +/* Protected DMA BUF memory type value for CL_IMPORT_TYPE_ARM property */ +#define CL_IMPORT_TYPE_PROTECTED_ARM 0x40B5 + +/* This extension adds a new function that allows for direct memory import into + * OpenCL via the clImportMemoryARM function. + * + * Memory imported through this interface will be mapped into the device's page + * tables directly, providing zero copy access. It will never fall back to copy + * operations and aliased buffers. + * + * Types of memory supported for import are specified as additional extension + * strings. + * + * This extension produces cl_mem allocations which are compatible with all other + * users of cl_mem in the standard API. + * + * This extension maps pages with the same properties as the normal buffer creation + * function clCreateBuffer. + */ +extern CL_API_ENTRY cl_mem CL_API_CALL +clImportMemoryARM( cl_context context, + cl_mem_flags flags, + const cl_import_properties_arm *properties, + void *memory, + size_t size, + cl_int *errcode_ret) CL_EXT_SUFFIX__VERSION_1_0; + + +/****************************************** + * cl_arm_shared_virtual_memory extension * + ******************************************/ +#define cl_arm_shared_virtual_memory 1 + +/* Used by clGetDeviceInfo */ +#define CL_DEVICE_SVM_CAPABILITIES_ARM 0x40B6 + +/* Used by clGetMemObjectInfo */ +#define CL_MEM_USES_SVM_POINTER_ARM 0x40B7 + +/* Used by clSetKernelExecInfoARM: */ +#define CL_KERNEL_EXEC_INFO_SVM_PTRS_ARM 0x40B8 +#define CL_KERNEL_EXEC_INFO_SVM_FINE_GRAIN_SYSTEM_ARM 0x40B9 + +/* To be used by clGetEventInfo: */ +#define CL_COMMAND_SVM_FREE_ARM 0x40BA +#define CL_COMMAND_SVM_MEMCPY_ARM 0x40BB +#define CL_COMMAND_SVM_MEMFILL_ARM 0x40BC +#define CL_COMMAND_SVM_MAP_ARM 0x40BD +#define CL_COMMAND_SVM_UNMAP_ARM 0x40BE + +/* Flag values returned by clGetDeviceInfo with CL_DEVICE_SVM_CAPABILITIES_ARM as the param_name. */ +#define CL_DEVICE_SVM_COARSE_GRAIN_BUFFER_ARM (1 << 0) +#define CL_DEVICE_SVM_FINE_GRAIN_BUFFER_ARM (1 << 1) +#define CL_DEVICE_SVM_FINE_GRAIN_SYSTEM_ARM (1 << 2) +#define CL_DEVICE_SVM_ATOMICS_ARM (1 << 3) + +/* Flag values used by clSVMAllocARM: */ +#define CL_MEM_SVM_FINE_GRAIN_BUFFER_ARM (1 << 10) +#define CL_MEM_SVM_ATOMICS_ARM (1 << 11) + +typedef cl_bitfield cl_svm_mem_flags_arm; +typedef cl_uint cl_kernel_exec_info_arm; +typedef cl_bitfield cl_device_svm_capabilities_arm; + +extern CL_API_ENTRY void * CL_API_CALL +clSVMAllocARM(cl_context context, + cl_svm_mem_flags_arm flags, + size_t size, + cl_uint alignment) CL_EXT_SUFFIX__VERSION_1_2; + +extern CL_API_ENTRY void CL_API_CALL +clSVMFreeARM(cl_context context, + void * svm_pointer) CL_EXT_SUFFIX__VERSION_1_2; + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueSVMFreeARM(cl_command_queue command_queue, + cl_uint num_svm_pointers, + void * svm_pointers[], + void (CL_CALLBACK * pfn_free_func)(cl_command_queue queue, + cl_uint num_svm_pointers, + void * svm_pointers[], + void * user_data), + void * user_data, + cl_uint num_events_in_wait_list, + const cl_event * event_wait_list, + cl_event * event) CL_EXT_SUFFIX__VERSION_1_2; + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueSVMMemcpyARM(cl_command_queue command_queue, + cl_bool blocking_copy, + void * dst_ptr, + const void * src_ptr, + size_t size, + cl_uint num_events_in_wait_list, + const cl_event * event_wait_list, + cl_event * event) CL_EXT_SUFFIX__VERSION_1_2; + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueSVMMemFillARM(cl_command_queue command_queue, + void * svm_ptr, + const void * pattern, + size_t pattern_size, + size_t size, + cl_uint num_events_in_wait_list, + const cl_event * event_wait_list, + cl_event * event) CL_EXT_SUFFIX__VERSION_1_2; + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueSVMMapARM(cl_command_queue command_queue, + cl_bool blocking_map, + cl_map_flags flags, + void * svm_ptr, + size_t size, + cl_uint num_events_in_wait_list, + const cl_event * event_wait_list, + cl_event * event) CL_EXT_SUFFIX__VERSION_1_2; + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueSVMUnmapARM(cl_command_queue command_queue, + void * svm_ptr, + cl_uint num_events_in_wait_list, + const cl_event * event_wait_list, + cl_event * event) CL_EXT_SUFFIX__VERSION_1_2; + +extern CL_API_ENTRY cl_int CL_API_CALL +clSetKernelArgSVMPointerARM(cl_kernel kernel, + cl_uint arg_index, + const void * arg_value) CL_EXT_SUFFIX__VERSION_1_2; + +extern CL_API_ENTRY cl_int CL_API_CALL +clSetKernelExecInfoARM(cl_kernel kernel, + cl_kernel_exec_info_arm param_name, + size_t param_value_size, + const void * param_value) CL_EXT_SUFFIX__VERSION_1_2; + +/******************************** + * cl_arm_get_core_id extension * + ********************************/ + +#ifdef CL_VERSION_1_2 + +#define cl_arm_get_core_id 1 + +/* Device info property for bitfield of cores present */ +#define CL_DEVICE_COMPUTE_UNITS_BITFIELD_ARM 0x40BF + +#endif /* CL_VERSION_1_2 */ + +/********************************* +* cl_arm_job_slot_selection +*********************************/ + +#define cl_arm_job_slot_selection 1 + +/* cl_device_info */ +#define CL_DEVICE_JOB_SLOTS_ARM 0x41E0 + +/* cl_command_queue_properties */ +#define CL_QUEUE_JOB_SLOT_ARM 0x41E1 + +#ifdef __cplusplus +} +#endif + + +#endif /* __CL_EXT_H */ diff --git a/benchmarks/opencl/include/CL/cl_ext_intel.h b/benchmarks/opencl/include/CL/cl_ext_intel.h new file mode 100644 index 00000000..9d1e4b58 --- /dev/null +++ b/benchmarks/opencl/include/CL/cl_ext_intel.h @@ -0,0 +1,423 @@ +/******************************************************************************* + * Copyright (c) 2008-2019 The Khronos Group Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and/or associated documentation files (the + * "Materials"), to deal in the Materials without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Materials, and to + * permit persons to whom the Materials are furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Materials. + * + * MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS + * KHRONOS STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS + * SPECIFICATIONS AND HEADER INFORMATION ARE LOCATED AT + * https://www.khronos.org/registry/ + * + * THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. + ******************************************************************************/ +/*****************************************************************************\ + +Copyright (c) 2013-2019 Intel Corporation All Rights Reserved. + +THESE MATERIALS ARE PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INTEL OR ITS +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THESE +MATERIALS, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +File Name: cl_ext_intel.h + +Abstract: + +Notes: + +\*****************************************************************************/ + +#ifndef __CL_EXT_INTEL_H +#define __CL_EXT_INTEL_H + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/*************************************** +* cl_intel_thread_local_exec extension * +****************************************/ + +#define cl_intel_thread_local_exec 1 + +#define CL_QUEUE_THREAD_LOCAL_EXEC_ENABLE_INTEL (((cl_bitfield)1) << 31) + +/*********************************************** +* cl_intel_device_partition_by_names extension * +************************************************/ + +#define cl_intel_device_partition_by_names 1 + +#define CL_DEVICE_PARTITION_BY_NAMES_INTEL 0x4052 +#define CL_PARTITION_BY_NAMES_LIST_END_INTEL -1 + +/************************************************ +* cl_intel_accelerator extension * +* cl_intel_motion_estimation extension * +* cl_intel_advanced_motion_estimation extension * +*************************************************/ + +#define cl_intel_accelerator 1 +#define cl_intel_motion_estimation 1 +#define cl_intel_advanced_motion_estimation 1 + +typedef struct _cl_accelerator_intel* cl_accelerator_intel; +typedef cl_uint cl_accelerator_type_intel; +typedef cl_uint cl_accelerator_info_intel; + +typedef struct _cl_motion_estimation_desc_intel { + cl_uint mb_block_type; + cl_uint subpixel_mode; + cl_uint sad_adjust_mode; + cl_uint search_path_type; +} cl_motion_estimation_desc_intel; + +/* error codes */ +#define CL_INVALID_ACCELERATOR_INTEL -1094 +#define CL_INVALID_ACCELERATOR_TYPE_INTEL -1095 +#define CL_INVALID_ACCELERATOR_DESCRIPTOR_INTEL -1096 +#define CL_ACCELERATOR_TYPE_NOT_SUPPORTED_INTEL -1097 + +/* cl_accelerator_type_intel */ +#define CL_ACCELERATOR_TYPE_MOTION_ESTIMATION_INTEL 0x0 + +/* cl_accelerator_info_intel */ +#define CL_ACCELERATOR_DESCRIPTOR_INTEL 0x4090 +#define CL_ACCELERATOR_REFERENCE_COUNT_INTEL 0x4091 +#define CL_ACCELERATOR_CONTEXT_INTEL 0x4092 +#define CL_ACCELERATOR_TYPE_INTEL 0x4093 + +/* cl_motion_detect_desc_intel flags */ +#define CL_ME_MB_TYPE_16x16_INTEL 0x0 +#define CL_ME_MB_TYPE_8x8_INTEL 0x1 +#define CL_ME_MB_TYPE_4x4_INTEL 0x2 + +#define CL_ME_SUBPIXEL_MODE_INTEGER_INTEL 0x0 +#define CL_ME_SUBPIXEL_MODE_HPEL_INTEL 0x1 +#define CL_ME_SUBPIXEL_MODE_QPEL_INTEL 0x2 + +#define CL_ME_SAD_ADJUST_MODE_NONE_INTEL 0x0 +#define CL_ME_SAD_ADJUST_MODE_HAAR_INTEL 0x1 + +#define CL_ME_SEARCH_PATH_RADIUS_2_2_INTEL 0x0 +#define CL_ME_SEARCH_PATH_RADIUS_4_4_INTEL 0x1 +#define CL_ME_SEARCH_PATH_RADIUS_16_12_INTEL 0x5 + +#define CL_ME_SKIP_BLOCK_TYPE_16x16_INTEL 0x0 +#define CL_ME_CHROMA_INTRA_PREDICT_ENABLED_INTEL 0x1 +#define CL_ME_LUMA_INTRA_PREDICT_ENABLED_INTEL 0x2 +#define CL_ME_SKIP_BLOCK_TYPE_8x8_INTEL 0x4 + +#define CL_ME_FORWARD_INPUT_MODE_INTEL 0x1 +#define CL_ME_BACKWARD_INPUT_MODE_INTEL 0x2 +#define CL_ME_BIDIRECTION_INPUT_MODE_INTEL 0x3 + +#define CL_ME_BIDIR_WEIGHT_QUARTER_INTEL 16 +#define CL_ME_BIDIR_WEIGHT_THIRD_INTEL 21 +#define CL_ME_BIDIR_WEIGHT_HALF_INTEL 32 +#define CL_ME_BIDIR_WEIGHT_TWO_THIRD_INTEL 43 +#define CL_ME_BIDIR_WEIGHT_THREE_QUARTER_INTEL 48 + +#define CL_ME_COST_PENALTY_NONE_INTEL 0x0 +#define CL_ME_COST_PENALTY_LOW_INTEL 0x1 +#define CL_ME_COST_PENALTY_NORMAL_INTEL 0x2 +#define CL_ME_COST_PENALTY_HIGH_INTEL 0x3 + +#define CL_ME_COST_PRECISION_QPEL_INTEL 0x0 +#define CL_ME_COST_PRECISION_HPEL_INTEL 0x1 +#define CL_ME_COST_PRECISION_PEL_INTEL 0x2 +#define CL_ME_COST_PRECISION_DPEL_INTEL 0x3 + +#define CL_ME_LUMA_PREDICTOR_MODE_VERTICAL_INTEL 0x0 +#define CL_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_INTEL 0x1 +#define CL_ME_LUMA_PREDICTOR_MODE_DC_INTEL 0x2 +#define CL_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_LEFT_INTEL 0x3 + +#define CL_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_RIGHT_INTEL 0x4 +#define CL_ME_LUMA_PREDICTOR_MODE_PLANE_INTEL 0x4 +#define CL_ME_LUMA_PREDICTOR_MODE_VERTICAL_RIGHT_INTEL 0x5 +#define CL_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_DOWN_INTEL 0x6 +#define CL_ME_LUMA_PREDICTOR_MODE_VERTICAL_LEFT_INTEL 0x7 +#define CL_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_UP_INTEL 0x8 + +#define CL_ME_CHROMA_PREDICTOR_MODE_DC_INTEL 0x0 +#define CL_ME_CHROMA_PREDICTOR_MODE_HORIZONTAL_INTEL 0x1 +#define CL_ME_CHROMA_PREDICTOR_MODE_VERTICAL_INTEL 0x2 +#define CL_ME_CHROMA_PREDICTOR_MODE_PLANE_INTEL 0x3 + +/* cl_device_info */ +#define CL_DEVICE_ME_VERSION_INTEL 0x407E + +#define CL_ME_VERSION_LEGACY_INTEL 0x0 +#define CL_ME_VERSION_ADVANCED_VER_1_INTEL 0x1 +#define CL_ME_VERSION_ADVANCED_VER_2_INTEL 0x2 + +extern CL_API_ENTRY cl_accelerator_intel CL_API_CALL +clCreateAcceleratorINTEL( + cl_context context, + cl_accelerator_type_intel accelerator_type, + size_t descriptor_size, + const void* descriptor, + cl_int* errcode_ret) CL_EXT_SUFFIX__VERSION_1_2; + +typedef CL_API_ENTRY cl_accelerator_intel (CL_API_CALL *clCreateAcceleratorINTEL_fn)( + cl_context context, + cl_accelerator_type_intel accelerator_type, + size_t descriptor_size, + const void* descriptor, + cl_int* errcode_ret) CL_EXT_SUFFIX__VERSION_1_2; + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetAcceleratorInfoINTEL( + cl_accelerator_intel accelerator, + cl_accelerator_info_intel param_name, + size_t param_value_size, + void* param_value, + size_t* param_value_size_ret) CL_EXT_SUFFIX__VERSION_1_2; + +typedef CL_API_ENTRY cl_int (CL_API_CALL *clGetAcceleratorInfoINTEL_fn)( + cl_accelerator_intel accelerator, + cl_accelerator_info_intel param_name, + size_t param_value_size, + void* param_value, + size_t* param_value_size_ret) CL_EXT_SUFFIX__VERSION_1_2; + +extern CL_API_ENTRY cl_int CL_API_CALL +clRetainAcceleratorINTEL( + cl_accelerator_intel accelerator) CL_EXT_SUFFIX__VERSION_1_2; + +typedef CL_API_ENTRY cl_int (CL_API_CALL *clRetainAcceleratorINTEL_fn)( + cl_accelerator_intel accelerator) CL_EXT_SUFFIX__VERSION_1_2; + +extern CL_API_ENTRY cl_int CL_API_CALL +clReleaseAcceleratorINTEL( + cl_accelerator_intel accelerator) CL_EXT_SUFFIX__VERSION_1_2; + +typedef CL_API_ENTRY cl_int (CL_API_CALL *clReleaseAcceleratorINTEL_fn)( + cl_accelerator_intel accelerator) CL_EXT_SUFFIX__VERSION_1_2; + +/****************************************** +* cl_intel_simultaneous_sharing extension * +*******************************************/ + +#define cl_intel_simultaneous_sharing 1 + +#define CL_DEVICE_SIMULTANEOUS_INTEROPS_INTEL 0x4104 +#define CL_DEVICE_NUM_SIMULTANEOUS_INTEROPS_INTEL 0x4105 + +/*********************************** +* cl_intel_egl_image_yuv extension * +************************************/ + +#define cl_intel_egl_image_yuv 1 + +#define CL_EGL_YUV_PLANE_INTEL 0x4107 + +/******************************** +* cl_intel_packed_yuv extension * +*********************************/ + +#define cl_intel_packed_yuv 1 + +#define CL_YUYV_INTEL 0x4076 +#define CL_UYVY_INTEL 0x4077 +#define CL_YVYU_INTEL 0x4078 +#define CL_VYUY_INTEL 0x4079 + +/******************************************** +* cl_intel_required_subgroup_size extension * +*********************************************/ + +#define cl_intel_required_subgroup_size 1 + +#define CL_DEVICE_SUB_GROUP_SIZES_INTEL 0x4108 +#define CL_KERNEL_SPILL_MEM_SIZE_INTEL 0x4109 +#define CL_KERNEL_COMPILE_SUB_GROUP_SIZE_INTEL 0x410A + +/**************************************** +* cl_intel_driver_diagnostics extension * +*****************************************/ + +#define cl_intel_driver_diagnostics 1 + +typedef cl_uint cl_diagnostics_verbose_level; + +#define CL_CONTEXT_SHOW_DIAGNOSTICS_INTEL 0x4106 + +#define CL_CONTEXT_DIAGNOSTICS_LEVEL_ALL_INTEL ( 0xff ) +#define CL_CONTEXT_DIAGNOSTICS_LEVEL_GOOD_INTEL ( 1 ) +#define CL_CONTEXT_DIAGNOSTICS_LEVEL_BAD_INTEL ( 1 << 1 ) +#define CL_CONTEXT_DIAGNOSTICS_LEVEL_NEUTRAL_INTEL ( 1 << 2 ) + +/******************************** +* cl_intel_planar_yuv extension * +*********************************/ + +#define CL_NV12_INTEL 0x410E + +#define CL_MEM_NO_ACCESS_INTEL ( 1 << 24 ) +#define CL_MEM_ACCESS_FLAGS_UNRESTRICTED_INTEL ( 1 << 25 ) + +#define CL_DEVICE_PLANAR_YUV_MAX_WIDTH_INTEL 0x417E +#define CL_DEVICE_PLANAR_YUV_MAX_HEIGHT_INTEL 0x417F + +/******************************************************* +* cl_intel_device_side_avc_motion_estimation extension * +********************************************************/ + +#define CL_DEVICE_AVC_ME_VERSION_INTEL 0x410B +#define CL_DEVICE_AVC_ME_SUPPORTS_TEXTURE_SAMPLER_USE_INTEL 0x410C +#define CL_DEVICE_AVC_ME_SUPPORTS_PREEMPTION_INTEL 0x410D + +#define CL_AVC_ME_VERSION_0_INTEL 0x0; // No support. +#define CL_AVC_ME_VERSION_1_INTEL 0x1; // First supported version. + +#define CL_AVC_ME_MAJOR_16x16_INTEL 0x0 +#define CL_AVC_ME_MAJOR_16x8_INTEL 0x1 +#define CL_AVC_ME_MAJOR_8x16_INTEL 0x2 +#define CL_AVC_ME_MAJOR_8x8_INTEL 0x3 + +#define CL_AVC_ME_MINOR_8x8_INTEL 0x0 +#define CL_AVC_ME_MINOR_8x4_INTEL 0x1 +#define CL_AVC_ME_MINOR_4x8_INTEL 0x2 +#define CL_AVC_ME_MINOR_4x4_INTEL 0x3 + +#define CL_AVC_ME_MAJOR_FORWARD_INTEL 0x0 +#define CL_AVC_ME_MAJOR_BACKWARD_INTEL 0x1 +#define CL_AVC_ME_MAJOR_BIDIRECTIONAL_INTEL 0x2 + +#define CL_AVC_ME_PARTITION_MASK_ALL_INTEL 0x0 +#define CL_AVC_ME_PARTITION_MASK_16x16_INTEL 0x7E +#define CL_AVC_ME_PARTITION_MASK_16x8_INTEL 0x7D +#define CL_AVC_ME_PARTITION_MASK_8x16_INTEL 0x7B +#define CL_AVC_ME_PARTITION_MASK_8x8_INTEL 0x77 +#define CL_AVC_ME_PARTITION_MASK_8x4_INTEL 0x6F +#define CL_AVC_ME_PARTITION_MASK_4x8_INTEL 0x5F +#define CL_AVC_ME_PARTITION_MASK_4x4_INTEL 0x3F + +#define CL_AVC_ME_SEARCH_WINDOW_EXHAUSTIVE_INTEL 0x0 +#define CL_AVC_ME_SEARCH_WINDOW_SMALL_INTEL 0x1 +#define CL_AVC_ME_SEARCH_WINDOW_TINY_INTEL 0x2 +#define CL_AVC_ME_SEARCH_WINDOW_EXTRA_TINY_INTEL 0x3 +#define CL_AVC_ME_SEARCH_WINDOW_DIAMOND_INTEL 0x4 +#define CL_AVC_ME_SEARCH_WINDOW_LARGE_DIAMOND_INTEL 0x5 +#define CL_AVC_ME_SEARCH_WINDOW_RESERVED0_INTEL 0x6 +#define CL_AVC_ME_SEARCH_WINDOW_RESERVED1_INTEL 0x7 +#define CL_AVC_ME_SEARCH_WINDOW_CUSTOM_INTEL 0x8 +#define CL_AVC_ME_SEARCH_WINDOW_16x12_RADIUS_INTEL 0x9 +#define CL_AVC_ME_SEARCH_WINDOW_4x4_RADIUS_INTEL 0x2 +#define CL_AVC_ME_SEARCH_WINDOW_2x2_RADIUS_INTEL 0xa + +#define CL_AVC_ME_SAD_ADJUST_MODE_NONE_INTEL 0x0 +#define CL_AVC_ME_SAD_ADJUST_MODE_HAAR_INTEL 0x2 + +#define CL_AVC_ME_SUBPIXEL_MODE_INTEGER_INTEL 0x0 +#define CL_AVC_ME_SUBPIXEL_MODE_HPEL_INTEL 0x1 +#define CL_AVC_ME_SUBPIXEL_MODE_QPEL_INTEL 0x3 + +#define CL_AVC_ME_COST_PRECISION_QPEL_INTEL 0x0 +#define CL_AVC_ME_COST_PRECISION_HPEL_INTEL 0x1 +#define CL_AVC_ME_COST_PRECISION_PEL_INTEL 0x2 +#define CL_AVC_ME_COST_PRECISION_DPEL_INTEL 0x3 + +#define CL_AVC_ME_BIDIR_WEIGHT_QUARTER_INTEL 0x10 +#define CL_AVC_ME_BIDIR_WEIGHT_THIRD_INTEL 0x15 +#define CL_AVC_ME_BIDIR_WEIGHT_HALF_INTEL 0x20 +#define CL_AVC_ME_BIDIR_WEIGHT_TWO_THIRD_INTEL 0x2B +#define CL_AVC_ME_BIDIR_WEIGHT_THREE_QUARTER_INTEL 0x30 + +#define CL_AVC_ME_BORDER_REACHED_LEFT_INTEL 0x0 +#define CL_AVC_ME_BORDER_REACHED_RIGHT_INTEL 0x2 +#define CL_AVC_ME_BORDER_REACHED_TOP_INTEL 0x4 +#define CL_AVC_ME_BORDER_REACHED_BOTTOM_INTEL 0x8 + +#define CL_AVC_ME_SKIP_BLOCK_PARTITION_16x16_INTEL 0x0 +#define CL_AVC_ME_SKIP_BLOCK_PARTITION_8x8_INTEL 0x4000 + +#define CL_AVC_ME_SKIP_BLOCK_16x16_FORWARD_ENABLE_INTEL ( 0x1 << 24 ) +#define CL_AVC_ME_SKIP_BLOCK_16x16_BACKWARD_ENABLE_INTEL ( 0x2 << 24 ) +#define CL_AVC_ME_SKIP_BLOCK_16x16_DUAL_ENABLE_INTEL ( 0x3 << 24 ) +#define CL_AVC_ME_SKIP_BLOCK_8x8_FORWARD_ENABLE_INTEL ( 0x55 << 24 ) +#define CL_AVC_ME_SKIP_BLOCK_8x8_BACKWARD_ENABLE_INTEL ( 0xAA << 24 ) +#define CL_AVC_ME_SKIP_BLOCK_8x8_DUAL_ENABLE_INTEL ( 0xFF << 24 ) +#define CL_AVC_ME_SKIP_BLOCK_8x8_0_FORWARD_ENABLE_INTEL ( 0x1 << 24 ) +#define CL_AVC_ME_SKIP_BLOCK_8x8_0_BACKWARD_ENABLE_INTEL ( 0x2 << 24 ) +#define CL_AVC_ME_SKIP_BLOCK_8x8_1_FORWARD_ENABLE_INTEL ( 0x1 << 26 ) +#define CL_AVC_ME_SKIP_BLOCK_8x8_1_BACKWARD_ENABLE_INTEL ( 0x2 << 26 ) +#define CL_AVC_ME_SKIP_BLOCK_8x8_2_FORWARD_ENABLE_INTEL ( 0x1 << 28 ) +#define CL_AVC_ME_SKIP_BLOCK_8x8_2_BACKWARD_ENABLE_INTEL ( 0x2 << 28 ) +#define CL_AVC_ME_SKIP_BLOCK_8x8_3_FORWARD_ENABLE_INTEL ( 0x1 << 30 ) +#define CL_AVC_ME_SKIP_BLOCK_8x8_3_BACKWARD_ENABLE_INTEL ( 0x2 << 30 ) + +#define CL_AVC_ME_BLOCK_BASED_SKIP_4x4_INTEL 0x00 +#define CL_AVC_ME_BLOCK_BASED_SKIP_8x8_INTEL 0x80 + +#define CL_AVC_ME_INTRA_16x16_INTEL 0x0 +#define CL_AVC_ME_INTRA_8x8_INTEL 0x1 +#define CL_AVC_ME_INTRA_4x4_INTEL 0x2 + +#define CL_AVC_ME_INTRA_LUMA_PARTITION_MASK_16x16_INTEL 0x6 +#define CL_AVC_ME_INTRA_LUMA_PARTITION_MASK_8x8_INTEL 0x5 +#define CL_AVC_ME_INTRA_LUMA_PARTITION_MASK_4x4_INTEL 0x3 + +#define CL_AVC_ME_INTRA_NEIGHBOR_LEFT_MASK_ENABLE_INTEL 0x60 +#define CL_AVC_ME_INTRA_NEIGHBOR_UPPER_MASK_ENABLE_INTEL 0x10 +#define CL_AVC_ME_INTRA_NEIGHBOR_UPPER_RIGHT_MASK_ENABLE_INTEL 0x8 +#define CL_AVC_ME_INTRA_NEIGHBOR_UPPER_LEFT_MASK_ENABLE_INTEL 0x4 + +#define CL_AVC_ME_LUMA_PREDICTOR_MODE_VERTICAL_INTEL 0x0 +#define CL_AVC_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_INTEL 0x1 +#define CL_AVC_ME_LUMA_PREDICTOR_MODE_DC_INTEL 0x2 +#define CL_AVC_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_LEFT_INTEL 0x3 +#define CL_AVC_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_RIGHT_INTEL 0x4 +#define CL_AVC_ME_LUMA_PREDICTOR_MODE_PLANE_INTEL 0x4 +#define CL_AVC_ME_LUMA_PREDICTOR_MODE_VERTICAL_RIGHT_INTEL 0x5 +#define CL_AVC_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_DOWN_INTEL 0x6 +#define CL_AVC_ME_LUMA_PREDICTOR_MODE_VERTICAL_LEFT_INTEL 0x7 +#define CL_AVC_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_UP_INTEL 0x8 +#define CL_AVC_ME_CHROMA_PREDICTOR_MODE_DC_INTEL 0x0 +#define CL_AVC_ME_CHROMA_PREDICTOR_MODE_HORIZONTAL_INTEL 0x1 +#define CL_AVC_ME_CHROMA_PREDICTOR_MODE_VERTICAL_INTEL 0x2 +#define CL_AVC_ME_CHROMA_PREDICTOR_MODE_PLANE_INTEL 0x3 + +#define CL_AVC_ME_FRAME_FORWARD_INTEL 0x1 +#define CL_AVC_ME_FRAME_BACKWARD_INTEL 0x2 +#define CL_AVC_ME_FRAME_DUAL_INTEL 0x3 + +#define CL_AVC_ME_SLICE_TYPE_PRED_INTEL 0x0 +#define CL_AVC_ME_SLICE_TYPE_BPRED_INTEL 0x1 +#define CL_AVC_ME_SLICE_TYPE_INTRA_INTEL 0x2 + +#define CL_AVC_ME_INTERLACED_SCAN_TOP_FIELD_INTEL 0x0 +#define CL_AVC_ME_INTERLACED_SCAN_BOTTOM_FIELD_INTEL 0x1 + +#ifdef __cplusplus +} +#endif + +#endif /* __CL_EXT_INTEL_H */ diff --git a/benchmarks/opencl/include/CL/cl_gl.h b/benchmarks/opencl/include/CL/cl_gl.h new file mode 100644 index 00000000..fbdaf629 --- /dev/null +++ b/benchmarks/opencl/include/CL/cl_gl.h @@ -0,0 +1,171 @@ +/********************************************************************************** + * Copyright (c) 2008-2019 The Khronos Group Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and/or associated documentation files (the + * "Materials"), to deal in the Materials without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Materials, and to + * permit persons to whom the Materials are furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Materials. + * + * MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS + * KHRONOS STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS + * SPECIFICATIONS AND HEADER INFORMATION ARE LOCATED AT + * https://www.khronos.org/registry/ + * + * THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. + **********************************************************************************/ + +#ifndef __OPENCL_CL_GL_H +#define __OPENCL_CL_GL_H + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef cl_uint cl_gl_object_type; +typedef cl_uint cl_gl_texture_info; +typedef cl_uint cl_gl_platform_info; +typedef struct __GLsync *cl_GLsync; + +/* cl_gl_object_type = 0x2000 - 0x200F enum values are currently taken */ +#define CL_GL_OBJECT_BUFFER 0x2000 +#define CL_GL_OBJECT_TEXTURE2D 0x2001 +#define CL_GL_OBJECT_TEXTURE3D 0x2002 +#define CL_GL_OBJECT_RENDERBUFFER 0x2003 +#ifdef CL_VERSION_1_2 +#define CL_GL_OBJECT_TEXTURE2D_ARRAY 0x200E +#define CL_GL_OBJECT_TEXTURE1D 0x200F +#define CL_GL_OBJECT_TEXTURE1D_ARRAY 0x2010 +#define CL_GL_OBJECT_TEXTURE_BUFFER 0x2011 +#endif + +/* cl_gl_texture_info */ +#define CL_GL_TEXTURE_TARGET 0x2004 +#define CL_GL_MIPMAP_LEVEL 0x2005 +#ifdef CL_VERSION_1_2 +#define CL_GL_NUM_SAMPLES 0x2012 +#endif + + +extern CL_API_ENTRY cl_mem CL_API_CALL +clCreateFromGLBuffer(cl_context context, + cl_mem_flags flags, + cl_GLuint bufobj, + cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; + +#ifdef CL_VERSION_1_2 + +extern CL_API_ENTRY cl_mem CL_API_CALL +clCreateFromGLTexture(cl_context context, + cl_mem_flags flags, + cl_GLenum target, + cl_GLint miplevel, + cl_GLuint texture, + cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2; + +#endif + +extern CL_API_ENTRY cl_mem CL_API_CALL +clCreateFromGLRenderbuffer(cl_context context, + cl_mem_flags flags, + cl_GLuint renderbuffer, + cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetGLObjectInfo(cl_mem memobj, + cl_gl_object_type * gl_object_type, + cl_GLuint * gl_object_name) CL_API_SUFFIX__VERSION_1_0; + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetGLTextureInfo(cl_mem memobj, + cl_gl_texture_info param_name, + size_t param_value_size, + void * param_value, + size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueAcquireGLObjects(cl_command_queue command_queue, + cl_uint num_objects, + const cl_mem * mem_objects, + cl_uint num_events_in_wait_list, + const cl_event * event_wait_list, + cl_event * event) CL_API_SUFFIX__VERSION_1_0; + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueReleaseGLObjects(cl_command_queue command_queue, + cl_uint num_objects, + const cl_mem * mem_objects, + cl_uint num_events_in_wait_list, + const cl_event * event_wait_list, + cl_event * event) CL_API_SUFFIX__VERSION_1_0; + + +/* Deprecated OpenCL 1.1 APIs */ +extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED cl_mem CL_API_CALL +clCreateFromGLTexture2D(cl_context context, + cl_mem_flags flags, + cl_GLenum target, + cl_GLint miplevel, + cl_GLuint texture, + cl_int * errcode_ret) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED; + +extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED cl_mem CL_API_CALL +clCreateFromGLTexture3D(cl_context context, + cl_mem_flags flags, + cl_GLenum target, + cl_GLint miplevel, + cl_GLuint texture, + cl_int * errcode_ret) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED; + +/* cl_khr_gl_sharing extension */ + +#define cl_khr_gl_sharing 1 + +typedef cl_uint cl_gl_context_info; + +/* Additional Error Codes */ +#define CL_INVALID_GL_SHAREGROUP_REFERENCE_KHR -1000 + +/* cl_gl_context_info */ +#define CL_CURRENT_DEVICE_FOR_GL_CONTEXT_KHR 0x2006 +#define CL_DEVICES_FOR_GL_CONTEXT_KHR 0x2007 + +/* Additional cl_context_properties */ +#define CL_GL_CONTEXT_KHR 0x2008 +#define CL_EGL_DISPLAY_KHR 0x2009 +#define CL_GLX_DISPLAY_KHR 0x200A +#define CL_WGL_HDC_KHR 0x200B +#define CL_CGL_SHAREGROUP_KHR 0x200C + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetGLContextInfoKHR(const cl_context_properties * properties, + cl_gl_context_info param_name, + size_t param_value_size, + void * param_value, + size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY cl_int (CL_API_CALL *clGetGLContextInfoKHR_fn)( + const cl_context_properties * properties, + cl_gl_context_info param_name, + size_t param_value_size, + void * param_value, + size_t * param_value_size_ret); + +#ifdef __cplusplus +} +#endif + +#endif /* __OPENCL_CL_GL_H */ diff --git a/benchmarks/opencl/include/CL/cl_gl_ext.h b/benchmarks/opencl/include/CL/cl_gl_ext.h new file mode 100644 index 00000000..c26d31ab --- /dev/null +++ b/benchmarks/opencl/include/CL/cl_gl_ext.h @@ -0,0 +1,52 @@ +/********************************************************************************** + * Copyright (c) 2008-2019 The Khronos Group Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and/or associated documentation files (the + * "Materials"), to deal in the Materials without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Materials, and to + * permit persons to whom the Materials are furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Materials. + * + * MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS + * KHRONOS STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS + * SPECIFICATIONS AND HEADER INFORMATION ARE LOCATED AT + * https://www.khronos.org/registry/ + * + * THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. + **********************************************************************************/ + +#ifndef __OPENCL_CL_GL_EXT_H +#define __OPENCL_CL_GL_EXT_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include + +/* + * cl_khr_gl_event extension + */ +#define CL_COMMAND_GL_FENCE_SYNC_OBJECT_KHR 0x200D + +extern CL_API_ENTRY cl_event CL_API_CALL +clCreateEventFromGLsyncKHR(cl_context context, + cl_GLsync cl_GLsync, + cl_int * errcode_ret) CL_EXT_SUFFIX__VERSION_1_1; + +#ifdef __cplusplus +} +#endif + +#endif /* __OPENCL_CL_GL_EXT_H */ diff --git a/benchmarks/opencl/include/CL/cl_platform.h b/benchmarks/opencl/include/CL/cl_platform.h new file mode 100644 index 00000000..7f4ddea5 --- /dev/null +++ b/benchmarks/opencl/include/CL/cl_platform.h @@ -0,0 +1,1384 @@ +/********************************************************************************** + * Copyright (c) 2008-2018 The Khronos Group Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and/or associated documentation files (the + * "Materials"), to deal in the Materials without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Materials, and to + * permit persons to whom the Materials are furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Materials. + * + * MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS + * KHRONOS STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS + * SPECIFICATIONS AND HEADER INFORMATION ARE LOCATED AT + * https://www.khronos.org/registry/ + * + * THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. + **********************************************************************************/ + +#ifndef __CL_PLATFORM_H +#define __CL_PLATFORM_H + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#if defined(_WIN32) + #define CL_API_ENTRY + #define CL_API_CALL __stdcall + #define CL_CALLBACK __stdcall +#else + #define CL_API_ENTRY + #define CL_API_CALL + #define CL_CALLBACK +#endif + +/* + * Deprecation flags refer to the last version of the header in which the + * feature was not deprecated. + * + * E.g. VERSION_1_1_DEPRECATED means the feature is present in 1.1 without + * deprecation but is deprecated in versions later than 1.1. + */ + +#define CL_EXTENSION_WEAK_LINK +#define CL_API_SUFFIX__VERSION_1_0 +#define CL_EXT_SUFFIX__VERSION_1_0 +#define CL_API_SUFFIX__VERSION_1_1 +#define CL_EXT_SUFFIX__VERSION_1_1 +#define CL_API_SUFFIX__VERSION_1_2 +#define CL_EXT_SUFFIX__VERSION_1_2 +#define CL_API_SUFFIX__VERSION_2_0 +#define CL_EXT_SUFFIX__VERSION_2_0 +#define CL_API_SUFFIX__VERSION_2_1 +#define CL_EXT_SUFFIX__VERSION_2_1 +#define CL_API_SUFFIX__VERSION_2_2 +#define CL_EXT_SUFFIX__VERSION_2_2 + + +#ifdef __GNUC__ + #define CL_EXT_SUFFIX_DEPRECATED __attribute__((deprecated)) + #define CL_EXT_PREFIX_DEPRECATED +#elif defined(_WIN32) + #define CL_EXT_SUFFIX_DEPRECATED + #define CL_EXT_PREFIX_DEPRECATED __declspec(deprecated) +#else + #define CL_EXT_SUFFIX_DEPRECATED + #define CL_EXT_PREFIX_DEPRECATED +#endif + +#ifdef CL_USE_DEPRECATED_OPENCL_1_0_APIS + #define CL_EXT_SUFFIX__VERSION_1_0_DEPRECATED + #define CL_EXT_PREFIX__VERSION_1_0_DEPRECATED +#else + #define CL_EXT_SUFFIX__VERSION_1_0_DEPRECATED CL_EXT_SUFFIX_DEPRECATED + #define CL_EXT_PREFIX__VERSION_1_0_DEPRECATED CL_EXT_PREFIX_DEPRECATED +#endif + +#ifdef CL_USE_DEPRECATED_OPENCL_1_1_APIS + #define CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED + #define CL_EXT_PREFIX__VERSION_1_1_DEPRECATED +#else + #define CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED CL_EXT_SUFFIX_DEPRECATED + #define CL_EXT_PREFIX__VERSION_1_1_DEPRECATED CL_EXT_PREFIX_DEPRECATED +#endif + +#ifdef CL_USE_DEPRECATED_OPENCL_1_2_APIS + #define CL_EXT_SUFFIX__VERSION_1_2_DEPRECATED + #define CL_EXT_PREFIX__VERSION_1_2_DEPRECATED +#else + #define CL_EXT_SUFFIX__VERSION_1_2_DEPRECATED CL_EXT_SUFFIX_DEPRECATED + #define CL_EXT_PREFIX__VERSION_1_2_DEPRECATED CL_EXT_PREFIX_DEPRECATED + #endif + +#ifdef CL_USE_DEPRECATED_OPENCL_2_0_APIS + #define CL_EXT_SUFFIX__VERSION_2_0_DEPRECATED + #define CL_EXT_PREFIX__VERSION_2_0_DEPRECATED +#else + #define CL_EXT_SUFFIX__VERSION_2_0_DEPRECATED CL_EXT_SUFFIX_DEPRECATED + #define CL_EXT_PREFIX__VERSION_2_0_DEPRECATED CL_EXT_PREFIX_DEPRECATED +#endif + +#ifdef CL_USE_DEPRECATED_OPENCL_2_1_APIS + #define CL_EXT_SUFFIX__VERSION_2_1_DEPRECATED + #define CL_EXT_PREFIX__VERSION_2_1_DEPRECATED +#else + #define CL_EXT_SUFFIX__VERSION_2_1_DEPRECATED CL_EXT_SUFFIX_DEPRECATED + #define CL_EXT_PREFIX__VERSION_2_1_DEPRECATED CL_EXT_PREFIX_DEPRECATED +#endif + +#if (defined (_WIN32) && defined(_MSC_VER)) + +/* scalar types */ +typedef signed __int8 cl_char; +typedef unsigned __int8 cl_uchar; +typedef signed __int16 cl_short; +typedef unsigned __int16 cl_ushort; +typedef signed __int32 cl_int; +typedef unsigned __int32 cl_uint; +typedef signed __int64 cl_long; +typedef unsigned __int64 cl_ulong; + +typedef unsigned __int16 cl_half; +typedef float cl_float; +typedef double cl_double; + +/* Macro names and corresponding values defined by OpenCL */ +#define CL_CHAR_BIT 8 +#define CL_SCHAR_MAX 127 +#define CL_SCHAR_MIN (-127-1) +#define CL_CHAR_MAX CL_SCHAR_MAX +#define CL_CHAR_MIN CL_SCHAR_MIN +#define CL_UCHAR_MAX 255 +#define CL_SHRT_MAX 32767 +#define CL_SHRT_MIN (-32767-1) +#define CL_USHRT_MAX 65535 +#define CL_INT_MAX 2147483647 +#define CL_INT_MIN (-2147483647-1) +#define CL_UINT_MAX 0xffffffffU +#define CL_LONG_MAX ((cl_long) 0x7FFFFFFFFFFFFFFFLL) +#define CL_LONG_MIN ((cl_long) -0x7FFFFFFFFFFFFFFFLL - 1LL) +#define CL_ULONG_MAX ((cl_ulong) 0xFFFFFFFFFFFFFFFFULL) + +#define CL_FLT_DIG 6 +#define CL_FLT_MANT_DIG 24 +#define CL_FLT_MAX_10_EXP +38 +#define CL_FLT_MAX_EXP +128 +#define CL_FLT_MIN_10_EXP -37 +#define CL_FLT_MIN_EXP -125 +#define CL_FLT_RADIX 2 +#define CL_FLT_MAX 340282346638528859811704183484516925440.0f +#define CL_FLT_MIN 1.175494350822287507969e-38f +#define CL_FLT_EPSILON 1.1920928955078125e-7f + +#define CL_HALF_DIG 3 +#define CL_HALF_MANT_DIG 11 +#define CL_HALF_MAX_10_EXP +4 +#define CL_HALF_MAX_EXP +16 +#define CL_HALF_MIN_10_EXP -4 +#define CL_HALF_MIN_EXP -13 +#define CL_HALF_RADIX 2 +#define CL_HALF_MAX 65504.0f +#define CL_HALF_MIN 6.103515625e-05f +#define CL_HALF_EPSILON 9.765625e-04f + +#define CL_DBL_DIG 15 +#define CL_DBL_MANT_DIG 53 +#define CL_DBL_MAX_10_EXP +308 +#define CL_DBL_MAX_EXP +1024 +#define CL_DBL_MIN_10_EXP -307 +#define CL_DBL_MIN_EXP -1021 +#define CL_DBL_RADIX 2 +#define CL_DBL_MAX 1.7976931348623158e+308 +#define CL_DBL_MIN 2.225073858507201383090e-308 +#define CL_DBL_EPSILON 2.220446049250313080847e-16 + +#define CL_M_E 2.7182818284590452354 +#define CL_M_LOG2E 1.4426950408889634074 +#define CL_M_LOG10E 0.43429448190325182765 +#define CL_M_LN2 0.69314718055994530942 +#define CL_M_LN10 2.30258509299404568402 +#define CL_M_PI 3.14159265358979323846 +#define CL_M_PI_2 1.57079632679489661923 +#define CL_M_PI_4 0.78539816339744830962 +#define CL_M_1_PI 0.31830988618379067154 +#define CL_M_2_PI 0.63661977236758134308 +#define CL_M_2_SQRTPI 1.12837916709551257390 +#define CL_M_SQRT2 1.41421356237309504880 +#define CL_M_SQRT1_2 0.70710678118654752440 + +#define CL_M_E_F 2.718281828f +#define CL_M_LOG2E_F 1.442695041f +#define CL_M_LOG10E_F 0.434294482f +#define CL_M_LN2_F 0.693147181f +#define CL_M_LN10_F 2.302585093f +#define CL_M_PI_F 3.141592654f +#define CL_M_PI_2_F 1.570796327f +#define CL_M_PI_4_F 0.785398163f +#define CL_M_1_PI_F 0.318309886f +#define CL_M_2_PI_F 0.636619772f +#define CL_M_2_SQRTPI_F 1.128379167f +#define CL_M_SQRT2_F 1.414213562f +#define CL_M_SQRT1_2_F 0.707106781f + +#define CL_NAN (CL_INFINITY - CL_INFINITY) +#define CL_HUGE_VALF ((cl_float) 1e50) +#define CL_HUGE_VAL ((cl_double) 1e500) +#define CL_MAXFLOAT CL_FLT_MAX +#define CL_INFINITY CL_HUGE_VALF + +#else + +#include + +/* scalar types */ +typedef int8_t cl_char; +typedef uint8_t cl_uchar; +typedef int16_t cl_short; +typedef uint16_t cl_ushort; +typedef int32_t cl_int; +typedef uint32_t cl_uint; +typedef int64_t cl_long; +typedef uint64_t cl_ulong; + +typedef uint16_t cl_half; +typedef float cl_float; +typedef double cl_double; + +/* Macro names and corresponding values defined by OpenCL */ +#define CL_CHAR_BIT 8 +#define CL_SCHAR_MAX 127 +#define CL_SCHAR_MIN (-127-1) +#define CL_CHAR_MAX CL_SCHAR_MAX +#define CL_CHAR_MIN CL_SCHAR_MIN +#define CL_UCHAR_MAX 255 +#define CL_SHRT_MAX 32767 +#define CL_SHRT_MIN (-32767-1) +#define CL_USHRT_MAX 65535 +#define CL_INT_MAX 2147483647 +#define CL_INT_MIN (-2147483647-1) +#define CL_UINT_MAX 0xffffffffU +#define CL_LONG_MAX ((cl_long) 0x7FFFFFFFFFFFFFFFLL) +#define CL_LONG_MIN ((cl_long) -0x7FFFFFFFFFFFFFFFLL - 1LL) +#define CL_ULONG_MAX ((cl_ulong) 0xFFFFFFFFFFFFFFFFULL) + +#define CL_FLT_DIG 6 +#define CL_FLT_MANT_DIG 24 +#define CL_FLT_MAX_10_EXP +38 +#define CL_FLT_MAX_EXP +128 +#define CL_FLT_MIN_10_EXP -37 +#define CL_FLT_MIN_EXP -125 +#define CL_FLT_RADIX 2 +#define CL_FLT_MAX 340282346638528859811704183484516925440.0f +#define CL_FLT_MIN 1.175494350822287507969e-38f +#define CL_FLT_EPSILON 1.1920928955078125e-7f + +#define CL_HALF_DIG 3 +#define CL_HALF_MANT_DIG 11 +#define CL_HALF_MAX_10_EXP +4 +#define CL_HALF_MAX_EXP +16 +#define CL_HALF_MIN_10_EXP -4 +#define CL_HALF_MIN_EXP -13 +#define CL_HALF_RADIX 2 +#define CL_HALF_MAX 65504.0f +#define CL_HALF_MIN 6.103515625e-05f +#define CL_HALF_EPSILON 9.765625e-04f + +#define CL_DBL_DIG 15 +#define CL_DBL_MANT_DIG 53 +#define CL_DBL_MAX_10_EXP +308 +#define CL_DBL_MAX_EXP +1024 +#define CL_DBL_MIN_10_EXP -307 +#define CL_DBL_MIN_EXP -1021 +#define CL_DBL_RADIX 2 +#define CL_DBL_MAX 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0 +#define CL_DBL_MIN 2.225073858507201383090e-308 +#define CL_DBL_EPSILON 2.220446049250313080847e-16 + +#define CL_M_E 2.7182818284590452354 +#define CL_M_LOG2E 1.4426950408889634074 +#define CL_M_LOG10E 0.43429448190325182765 +#define CL_M_LN2 0.69314718055994530942 +#define CL_M_LN10 2.30258509299404568402 +#define CL_M_PI 3.14159265358979323846 +#define CL_M_PI_2 1.57079632679489661923 +#define CL_M_PI_4 0.78539816339744830962 +#define CL_M_1_PI 0.31830988618379067154 +#define CL_M_2_PI 0.63661977236758134308 +#define CL_M_2_SQRTPI 1.12837916709551257390 +#define CL_M_SQRT2 1.41421356237309504880 +#define CL_M_SQRT1_2 0.70710678118654752440 + +#define CL_M_E_F 2.718281828f +#define CL_M_LOG2E_F 1.442695041f +#define CL_M_LOG10E_F 0.434294482f +#define CL_M_LN2_F 0.693147181f +#define CL_M_LN10_F 2.302585093f +#define CL_M_PI_F 3.141592654f +#define CL_M_PI_2_F 1.570796327f +#define CL_M_PI_4_F 0.785398163f +#define CL_M_1_PI_F 0.318309886f +#define CL_M_2_PI_F 0.636619772f +#define CL_M_2_SQRTPI_F 1.128379167f +#define CL_M_SQRT2_F 1.414213562f +#define CL_M_SQRT1_2_F 0.707106781f + +#if defined( __GNUC__ ) + #define CL_HUGE_VALF __builtin_huge_valf() + #define CL_HUGE_VAL __builtin_huge_val() + #define CL_NAN __builtin_nanf( "" ) +#else + #define CL_HUGE_VALF ((cl_float) 1e50) + #define CL_HUGE_VAL ((cl_double) 1e500) + float nanf( const char * ); + #define CL_NAN nanf( "" ) +#endif +#define CL_MAXFLOAT CL_FLT_MAX +#define CL_INFINITY CL_HUGE_VALF + +#endif + +#include + +/* Mirror types to GL types. Mirror types allow us to avoid deciding which 87s to load based on whether we are using GL or GLES here. */ +typedef unsigned int cl_GLuint; +typedef int cl_GLint; +typedef unsigned int cl_GLenum; + +/* + * Vector types + * + * Note: OpenCL requires that all types be naturally aligned. + * This means that vector types must be naturally aligned. + * For example, a vector of four floats must be aligned to + * a 16 byte boundary (calculated as 4 * the natural 4-byte + * alignment of the float). The alignment qualifiers here + * will only function properly if your compiler supports them + * and if you don't actively work to defeat them. For example, + * in order for a cl_float4 to be 16 byte aligned in a struct, + * the start of the struct must itself be 16-byte aligned. + * + * Maintaining proper alignment is the user's responsibility. + */ + +/* Define basic vector types */ +#if defined( __VEC__ ) + #include /* may be omitted depending on compiler. AltiVec spec provides no way to detect whether the header is required. */ + typedef __vector unsigned char __cl_uchar16; + typedef __vector signed char __cl_char16; + typedef __vector unsigned short __cl_ushort8; + typedef __vector signed short __cl_short8; + typedef __vector unsigned int __cl_uint4; + typedef __vector signed int __cl_int4; + typedef __vector float __cl_float4; + #define __CL_UCHAR16__ 1 + #define __CL_CHAR16__ 1 + #define __CL_USHORT8__ 1 + #define __CL_SHORT8__ 1 + #define __CL_UINT4__ 1 + #define __CL_INT4__ 1 + #define __CL_FLOAT4__ 1 +#endif + +#if defined( __SSE__ ) + #if defined( __MINGW64__ ) + #include + #else + #include + #endif + #if defined( __GNUC__ ) + typedef float __cl_float4 __attribute__((vector_size(16))); + #else + typedef __m128 __cl_float4; + #endif + #define __CL_FLOAT4__ 1 +#endif + +#if defined( __SSE2__ ) + #if defined( __MINGW64__ ) + #include + #else + #include + #endif + #if defined( __GNUC__ ) + typedef cl_uchar __cl_uchar16 __attribute__((vector_size(16))); + typedef cl_char __cl_char16 __attribute__((vector_size(16))); + typedef cl_ushort __cl_ushort8 __attribute__((vector_size(16))); + typedef cl_short __cl_short8 __attribute__((vector_size(16))); + typedef cl_uint __cl_uint4 __attribute__((vector_size(16))); + typedef cl_int __cl_int4 __attribute__((vector_size(16))); + typedef cl_ulong __cl_ulong2 __attribute__((vector_size(16))); + typedef cl_long __cl_long2 __attribute__((vector_size(16))); + typedef cl_double __cl_double2 __attribute__((vector_size(16))); + #else + typedef __m128i __cl_uchar16; + typedef __m128i __cl_char16; + typedef __m128i __cl_ushort8; + typedef __m128i __cl_short8; + typedef __m128i __cl_uint4; + typedef __m128i __cl_int4; + typedef __m128i __cl_ulong2; + typedef __m128i __cl_long2; + typedef __m128d __cl_double2; + #endif + #define __CL_UCHAR16__ 1 + #define __CL_CHAR16__ 1 + #define __CL_USHORT8__ 1 + #define __CL_SHORT8__ 1 + #define __CL_INT4__ 1 + #define __CL_UINT4__ 1 + #define __CL_ULONG2__ 1 + #define __CL_LONG2__ 1 + #define __CL_DOUBLE2__ 1 +#endif + +#if defined( __MMX__ ) + #include + #if defined( __GNUC__ ) + typedef cl_uchar __cl_uchar8 __attribute__((vector_size(8))); + typedef cl_char __cl_char8 __attribute__((vector_size(8))); + typedef cl_ushort __cl_ushort4 __attribute__((vector_size(8))); + typedef cl_short __cl_short4 __attribute__((vector_size(8))); + typedef cl_uint __cl_uint2 __attribute__((vector_size(8))); + typedef cl_int __cl_int2 __attribute__((vector_size(8))); + typedef cl_ulong __cl_ulong1 __attribute__((vector_size(8))); + typedef cl_long __cl_long1 __attribute__((vector_size(8))); + typedef cl_float __cl_float2 __attribute__((vector_size(8))); + #else + typedef __m64 __cl_uchar8; + typedef __m64 __cl_char8; + typedef __m64 __cl_ushort4; + typedef __m64 __cl_short4; + typedef __m64 __cl_uint2; + typedef __m64 __cl_int2; + typedef __m64 __cl_ulong1; + typedef __m64 __cl_long1; + typedef __m64 __cl_float2; + #endif + #define __CL_UCHAR8__ 1 + #define __CL_CHAR8__ 1 + #define __CL_USHORT4__ 1 + #define __CL_SHORT4__ 1 + #define __CL_INT2__ 1 + #define __CL_UINT2__ 1 + #define __CL_ULONG1__ 1 + #define __CL_LONG1__ 1 + #define __CL_FLOAT2__ 1 +#endif + +#if defined( __AVX__ ) + #if defined( __MINGW64__ ) + #include + #else + #include + #endif + #if defined( __GNUC__ ) + typedef cl_float __cl_float8 __attribute__((vector_size(32))); + typedef cl_double __cl_double4 __attribute__((vector_size(32))); + #else + typedef __m256 __cl_float8; + typedef __m256d __cl_double4; + #endif + #define __CL_FLOAT8__ 1 + #define __CL_DOUBLE4__ 1 +#endif + +/* Define capabilities for anonymous struct members. */ +#if !defined(__cplusplus) && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L +#define __CL_HAS_ANON_STRUCT__ 1 +#define __CL_ANON_STRUCT__ +#elif defined( __GNUC__) && ! defined( __STRICT_ANSI__ ) +#define __CL_HAS_ANON_STRUCT__ 1 +#define __CL_ANON_STRUCT__ __extension__ +#elif defined( _WIN32) && defined(_MSC_VER) + #if _MSC_VER >= 1500 + /* Microsoft Developer Studio 2008 supports anonymous structs, but + * complains by default. */ + #define __CL_HAS_ANON_STRUCT__ 1 + #define __CL_ANON_STRUCT__ + /* Disable warning C4201: nonstandard extension used : nameless + * struct/union */ + #pragma warning( push ) + #pragma warning( disable : 4201 ) + #endif +#else +#define __CL_HAS_ANON_STRUCT__ 0 +#define __CL_ANON_STRUCT__ +#endif + +/* Define alignment keys */ +#if defined( __GNUC__ ) + #define CL_ALIGNED(_x) __attribute__ ((aligned(_x))) +#elif defined( _WIN32) && (_MSC_VER) + /* Alignment keys neutered on windows because MSVC can't swallow function arguments with alignment requirements */ + /* http://msdn.microsoft.com/en-us/library/373ak2y1%28VS.71%29.aspx */ + /* #include */ + /* #define CL_ALIGNED(_x) _CRT_ALIGN(_x) */ + #define CL_ALIGNED(_x) +#else + #warning Need to implement some method to align data here + #define CL_ALIGNED(_x) +#endif + +/* Indicate whether .xyzw, .s0123 and .hi.lo are supported */ +#if __CL_HAS_ANON_STRUCT__ + /* .xyzw and .s0123...{f|F} are supported */ + #define CL_HAS_NAMED_VECTOR_FIELDS 1 + /* .hi and .lo are supported */ + #define CL_HAS_HI_LO_VECTOR_FIELDS 1 +#endif + +/* Define cl_vector types */ + +/* ---- cl_charn ---- */ +typedef union +{ + cl_char CL_ALIGNED(2) s[2]; +#if __CL_HAS_ANON_STRUCT__ + __CL_ANON_STRUCT__ struct{ cl_char x, y; }; + __CL_ANON_STRUCT__ struct{ cl_char s0, s1; }; + __CL_ANON_STRUCT__ struct{ cl_char lo, hi; }; +#endif +#if defined( __CL_CHAR2__) + __cl_char2 v2; +#endif +}cl_char2; + +typedef union +{ + cl_char CL_ALIGNED(4) s[4]; +#if __CL_HAS_ANON_STRUCT__ + __CL_ANON_STRUCT__ struct{ cl_char x, y, z, w; }; + __CL_ANON_STRUCT__ struct{ cl_char s0, s1, s2, s3; }; + __CL_ANON_STRUCT__ struct{ cl_char2 lo, hi; }; +#endif +#if defined( __CL_CHAR2__) + __cl_char2 v2[2]; +#endif +#if defined( __CL_CHAR4__) + __cl_char4 v4; +#endif +}cl_char4; + +/* cl_char3 is identical in size, alignment and behavior to cl_char4. See section 6.1.5. */ +typedef cl_char4 cl_char3; + +typedef union +{ + cl_char CL_ALIGNED(8) s[8]; +#if __CL_HAS_ANON_STRUCT__ + __CL_ANON_STRUCT__ struct{ cl_char x, y, z, w; }; + __CL_ANON_STRUCT__ struct{ cl_char s0, s1, s2, s3, s4, s5, s6, s7; }; + __CL_ANON_STRUCT__ struct{ cl_char4 lo, hi; }; +#endif +#if defined( __CL_CHAR2__) + __cl_char2 v2[4]; +#endif +#if defined( __CL_CHAR4__) + __cl_char4 v4[2]; +#endif +#if defined( __CL_CHAR8__ ) + __cl_char8 v8; +#endif +}cl_char8; + +typedef union +{ + cl_char CL_ALIGNED(16) s[16]; +#if __CL_HAS_ANON_STRUCT__ + __CL_ANON_STRUCT__ struct{ cl_char x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; }; + __CL_ANON_STRUCT__ struct{ cl_char s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; }; + __CL_ANON_STRUCT__ struct{ cl_char8 lo, hi; }; +#endif +#if defined( __CL_CHAR2__) + __cl_char2 v2[8]; +#endif +#if defined( __CL_CHAR4__) + __cl_char4 v4[4]; +#endif +#if defined( __CL_CHAR8__ ) + __cl_char8 v8[2]; +#endif +#if defined( __CL_CHAR16__ ) + __cl_char16 v16; +#endif +}cl_char16; + + +/* ---- cl_ucharn ---- */ +typedef union +{ + cl_uchar CL_ALIGNED(2) s[2]; +#if __CL_HAS_ANON_STRUCT__ + __CL_ANON_STRUCT__ struct{ cl_uchar x, y; }; + __CL_ANON_STRUCT__ struct{ cl_uchar s0, s1; }; + __CL_ANON_STRUCT__ struct{ cl_uchar lo, hi; }; +#endif +#if defined( __cl_uchar2__) + __cl_uchar2 v2; +#endif +}cl_uchar2; + +typedef union +{ + cl_uchar CL_ALIGNED(4) s[4]; +#if __CL_HAS_ANON_STRUCT__ + __CL_ANON_STRUCT__ struct{ cl_uchar x, y, z, w; }; + __CL_ANON_STRUCT__ struct{ cl_uchar s0, s1, s2, s3; }; + __CL_ANON_STRUCT__ struct{ cl_uchar2 lo, hi; }; +#endif +#if defined( __CL_UCHAR2__) + __cl_uchar2 v2[2]; +#endif +#if defined( __CL_UCHAR4__) + __cl_uchar4 v4; +#endif +}cl_uchar4; + +/* cl_uchar3 is identical in size, alignment and behavior to cl_uchar4. See section 6.1.5. */ +typedef cl_uchar4 cl_uchar3; + +typedef union +{ + cl_uchar CL_ALIGNED(8) s[8]; +#if __CL_HAS_ANON_STRUCT__ + __CL_ANON_STRUCT__ struct{ cl_uchar x, y, z, w; }; + __CL_ANON_STRUCT__ struct{ cl_uchar s0, s1, s2, s3, s4, s5, s6, s7; }; + __CL_ANON_STRUCT__ struct{ cl_uchar4 lo, hi; }; +#endif +#if defined( __CL_UCHAR2__) + __cl_uchar2 v2[4]; +#endif +#if defined( __CL_UCHAR4__) + __cl_uchar4 v4[2]; +#endif +#if defined( __CL_UCHAR8__ ) + __cl_uchar8 v8; +#endif +}cl_uchar8; + +typedef union +{ + cl_uchar CL_ALIGNED(16) s[16]; +#if __CL_HAS_ANON_STRUCT__ + __CL_ANON_STRUCT__ struct{ cl_uchar x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; }; + __CL_ANON_STRUCT__ struct{ cl_uchar s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; }; + __CL_ANON_STRUCT__ struct{ cl_uchar8 lo, hi; }; +#endif +#if defined( __CL_UCHAR2__) + __cl_uchar2 v2[8]; +#endif +#if defined( __CL_UCHAR4__) + __cl_uchar4 v4[4]; +#endif +#if defined( __CL_UCHAR8__ ) + __cl_uchar8 v8[2]; +#endif +#if defined( __CL_UCHAR16__ ) + __cl_uchar16 v16; +#endif +}cl_uchar16; + + +/* ---- cl_shortn ---- */ +typedef union +{ + cl_short CL_ALIGNED(4) s[2]; +#if __CL_HAS_ANON_STRUCT__ + __CL_ANON_STRUCT__ struct{ cl_short x, y; }; + __CL_ANON_STRUCT__ struct{ cl_short s0, s1; }; + __CL_ANON_STRUCT__ struct{ cl_short lo, hi; }; +#endif +#if defined( __CL_SHORT2__) + __cl_short2 v2; +#endif +}cl_short2; + +typedef union +{ + cl_short CL_ALIGNED(8) s[4]; +#if __CL_HAS_ANON_STRUCT__ + __CL_ANON_STRUCT__ struct{ cl_short x, y, z, w; }; + __CL_ANON_STRUCT__ struct{ cl_short s0, s1, s2, s3; }; + __CL_ANON_STRUCT__ struct{ cl_short2 lo, hi; }; +#endif +#if defined( __CL_SHORT2__) + __cl_short2 v2[2]; +#endif +#if defined( __CL_SHORT4__) + __cl_short4 v4; +#endif +}cl_short4; + +/* cl_short3 is identical in size, alignment and behavior to cl_short4. See section 6.1.5. */ +typedef cl_short4 cl_short3; + +typedef union +{ + cl_short CL_ALIGNED(16) s[8]; +#if __CL_HAS_ANON_STRUCT__ + __CL_ANON_STRUCT__ struct{ cl_short x, y, z, w; }; + __CL_ANON_STRUCT__ struct{ cl_short s0, s1, s2, s3, s4, s5, s6, s7; }; + __CL_ANON_STRUCT__ struct{ cl_short4 lo, hi; }; +#endif +#if defined( __CL_SHORT2__) + __cl_short2 v2[4]; +#endif +#if defined( __CL_SHORT4__) + __cl_short4 v4[2]; +#endif +#if defined( __CL_SHORT8__ ) + __cl_short8 v8; +#endif +}cl_short8; + +typedef union +{ + cl_short CL_ALIGNED(32) s[16]; +#if __CL_HAS_ANON_STRUCT__ + __CL_ANON_STRUCT__ struct{ cl_short x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; }; + __CL_ANON_STRUCT__ struct{ cl_short s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; }; + __CL_ANON_STRUCT__ struct{ cl_short8 lo, hi; }; +#endif +#if defined( __CL_SHORT2__) + __cl_short2 v2[8]; +#endif +#if defined( __CL_SHORT4__) + __cl_short4 v4[4]; +#endif +#if defined( __CL_SHORT8__ ) + __cl_short8 v8[2]; +#endif +#if defined( __CL_SHORT16__ ) + __cl_short16 v16; +#endif +}cl_short16; + + +/* ---- cl_ushortn ---- */ +typedef union +{ + cl_ushort CL_ALIGNED(4) s[2]; +#if __CL_HAS_ANON_STRUCT__ + __CL_ANON_STRUCT__ struct{ cl_ushort x, y; }; + __CL_ANON_STRUCT__ struct{ cl_ushort s0, s1; }; + __CL_ANON_STRUCT__ struct{ cl_ushort lo, hi; }; +#endif +#if defined( __CL_USHORT2__) + __cl_ushort2 v2; +#endif +}cl_ushort2; + +typedef union +{ + cl_ushort CL_ALIGNED(8) s[4]; +#if __CL_HAS_ANON_STRUCT__ + __CL_ANON_STRUCT__ struct{ cl_ushort x, y, z, w; }; + __CL_ANON_STRUCT__ struct{ cl_ushort s0, s1, s2, s3; }; + __CL_ANON_STRUCT__ struct{ cl_ushort2 lo, hi; }; +#endif +#if defined( __CL_USHORT2__) + __cl_ushort2 v2[2]; +#endif +#if defined( __CL_USHORT4__) + __cl_ushort4 v4; +#endif +}cl_ushort4; + +/* cl_ushort3 is identical in size, alignment and behavior to cl_ushort4. See section 6.1.5. */ +typedef cl_ushort4 cl_ushort3; + +typedef union +{ + cl_ushort CL_ALIGNED(16) s[8]; +#if __CL_HAS_ANON_STRUCT__ + __CL_ANON_STRUCT__ struct{ cl_ushort x, y, z, w; }; + __CL_ANON_STRUCT__ struct{ cl_ushort s0, s1, s2, s3, s4, s5, s6, s7; }; + __CL_ANON_STRUCT__ struct{ cl_ushort4 lo, hi; }; +#endif +#if defined( __CL_USHORT2__) + __cl_ushort2 v2[4]; +#endif +#if defined( __CL_USHORT4__) + __cl_ushort4 v4[2]; +#endif +#if defined( __CL_USHORT8__ ) + __cl_ushort8 v8; +#endif +}cl_ushort8; + +typedef union +{ + cl_ushort CL_ALIGNED(32) s[16]; +#if __CL_HAS_ANON_STRUCT__ + __CL_ANON_STRUCT__ struct{ cl_ushort x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; }; + __CL_ANON_STRUCT__ struct{ cl_ushort s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; }; + __CL_ANON_STRUCT__ struct{ cl_ushort8 lo, hi; }; +#endif +#if defined( __CL_USHORT2__) + __cl_ushort2 v2[8]; +#endif +#if defined( __CL_USHORT4__) + __cl_ushort4 v4[4]; +#endif +#if defined( __CL_USHORT8__ ) + __cl_ushort8 v8[2]; +#endif +#if defined( __CL_USHORT16__ ) + __cl_ushort16 v16; +#endif +}cl_ushort16; + + +/* ---- cl_halfn ---- */ +typedef union +{ + cl_half CL_ALIGNED(4) s[2]; +#if __CL_HAS_ANON_STRUCT__ + __CL_ANON_STRUCT__ struct{ cl_half x, y; }; + __CL_ANON_STRUCT__ struct{ cl_half s0, s1; }; + __CL_ANON_STRUCT__ struct{ cl_half lo, hi; }; +#endif +#if defined( __CL_HALF2__) + __cl_half2 v2; +#endif +}cl_half2; + +typedef union +{ + cl_half CL_ALIGNED(8) s[4]; +#if __CL_HAS_ANON_STRUCT__ + __CL_ANON_STRUCT__ struct{ cl_half x, y, z, w; }; + __CL_ANON_STRUCT__ struct{ cl_half s0, s1, s2, s3; }; + __CL_ANON_STRUCT__ struct{ cl_half2 lo, hi; }; +#endif +#if defined( __CL_HALF2__) + __cl_half2 v2[2]; +#endif +#if defined( __CL_HALF4__) + __cl_half4 v4; +#endif +}cl_half4; + +/* cl_half3 is identical in size, alignment and behavior to cl_half4. See section 6.1.5. */ +typedef cl_half4 cl_half3; + +typedef union +{ + cl_half CL_ALIGNED(16) s[8]; +#if __CL_HAS_ANON_STRUCT__ + __CL_ANON_STRUCT__ struct{ cl_half x, y, z, w; }; + __CL_ANON_STRUCT__ struct{ cl_half s0, s1, s2, s3, s4, s5, s6, s7; }; + __CL_ANON_STRUCT__ struct{ cl_half4 lo, hi; }; +#endif +#if defined( __CL_HALF2__) + __cl_half2 v2[4]; +#endif +#if defined( __CL_HALF4__) + __cl_half4 v4[2]; +#endif +#if defined( __CL_HALF8__ ) + __cl_half8 v8; +#endif +}cl_half8; + +typedef union +{ + cl_half CL_ALIGNED(32) s[16]; +#if __CL_HAS_ANON_STRUCT__ + __CL_ANON_STRUCT__ struct{ cl_half x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; }; + __CL_ANON_STRUCT__ struct{ cl_half s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; }; + __CL_ANON_STRUCT__ struct{ cl_half8 lo, hi; }; +#endif +#if defined( __CL_HALF2__) + __cl_half2 v2[8]; +#endif +#if defined( __CL_HALF4__) + __cl_half4 v4[4]; +#endif +#if defined( __CL_HALF8__ ) + __cl_half8 v8[2]; +#endif +#if defined( __CL_HALF16__ ) + __cl_half16 v16; +#endif +}cl_half16; + +/* ---- cl_intn ---- */ +typedef union +{ + cl_int CL_ALIGNED(8) s[2]; +#if __CL_HAS_ANON_STRUCT__ + __CL_ANON_STRUCT__ struct{ cl_int x, y; }; + __CL_ANON_STRUCT__ struct{ cl_int s0, s1; }; + __CL_ANON_STRUCT__ struct{ cl_int lo, hi; }; +#endif +#if defined( __CL_INT2__) + __cl_int2 v2; +#endif +}cl_int2; + +typedef union +{ + cl_int CL_ALIGNED(16) s[4]; +#if __CL_HAS_ANON_STRUCT__ + __CL_ANON_STRUCT__ struct{ cl_int x, y, z, w; }; + __CL_ANON_STRUCT__ struct{ cl_int s0, s1, s2, s3; }; + __CL_ANON_STRUCT__ struct{ cl_int2 lo, hi; }; +#endif +#if defined( __CL_INT2__) + __cl_int2 v2[2]; +#endif +#if defined( __CL_INT4__) + __cl_int4 v4; +#endif +}cl_int4; + +/* cl_int3 is identical in size, alignment and behavior to cl_int4. See section 6.1.5. */ +typedef cl_int4 cl_int3; + +typedef union +{ + cl_int CL_ALIGNED(32) s[8]; +#if __CL_HAS_ANON_STRUCT__ + __CL_ANON_STRUCT__ struct{ cl_int x, y, z, w; }; + __CL_ANON_STRUCT__ struct{ cl_int s0, s1, s2, s3, s4, s5, s6, s7; }; + __CL_ANON_STRUCT__ struct{ cl_int4 lo, hi; }; +#endif +#if defined( __CL_INT2__) + __cl_int2 v2[4]; +#endif +#if defined( __CL_INT4__) + __cl_int4 v4[2]; +#endif +#if defined( __CL_INT8__ ) + __cl_int8 v8; +#endif +}cl_int8; + +typedef union +{ + cl_int CL_ALIGNED(64) s[16]; +#if __CL_HAS_ANON_STRUCT__ + __CL_ANON_STRUCT__ struct{ cl_int x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; }; + __CL_ANON_STRUCT__ struct{ cl_int s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; }; + __CL_ANON_STRUCT__ struct{ cl_int8 lo, hi; }; +#endif +#if defined( __CL_INT2__) + __cl_int2 v2[8]; +#endif +#if defined( __CL_INT4__) + __cl_int4 v4[4]; +#endif +#if defined( __CL_INT8__ ) + __cl_int8 v8[2]; +#endif +#if defined( __CL_INT16__ ) + __cl_int16 v16; +#endif +}cl_int16; + + +/* ---- cl_uintn ---- */ +typedef union +{ + cl_uint CL_ALIGNED(8) s[2]; +#if __CL_HAS_ANON_STRUCT__ + __CL_ANON_STRUCT__ struct{ cl_uint x, y; }; + __CL_ANON_STRUCT__ struct{ cl_uint s0, s1; }; + __CL_ANON_STRUCT__ struct{ cl_uint lo, hi; }; +#endif +#if defined( __CL_UINT2__) + __cl_uint2 v2; +#endif +}cl_uint2; + +typedef union +{ + cl_uint CL_ALIGNED(16) s[4]; +#if __CL_HAS_ANON_STRUCT__ + __CL_ANON_STRUCT__ struct{ cl_uint x, y, z, w; }; + __CL_ANON_STRUCT__ struct{ cl_uint s0, s1, s2, s3; }; + __CL_ANON_STRUCT__ struct{ cl_uint2 lo, hi; }; +#endif +#if defined( __CL_UINT2__) + __cl_uint2 v2[2]; +#endif +#if defined( __CL_UINT4__) + __cl_uint4 v4; +#endif +}cl_uint4; + +/* cl_uint3 is identical in size, alignment and behavior to cl_uint4. See section 6.1.5. */ +typedef cl_uint4 cl_uint3; + +typedef union +{ + cl_uint CL_ALIGNED(32) s[8]; +#if __CL_HAS_ANON_STRUCT__ + __CL_ANON_STRUCT__ struct{ cl_uint x, y, z, w; }; + __CL_ANON_STRUCT__ struct{ cl_uint s0, s1, s2, s3, s4, s5, s6, s7; }; + __CL_ANON_STRUCT__ struct{ cl_uint4 lo, hi; }; +#endif +#if defined( __CL_UINT2__) + __cl_uint2 v2[4]; +#endif +#if defined( __CL_UINT4__) + __cl_uint4 v4[2]; +#endif +#if defined( __CL_UINT8__ ) + __cl_uint8 v8; +#endif +}cl_uint8; + +typedef union +{ + cl_uint CL_ALIGNED(64) s[16]; +#if __CL_HAS_ANON_STRUCT__ + __CL_ANON_STRUCT__ struct{ cl_uint x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; }; + __CL_ANON_STRUCT__ struct{ cl_uint s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; }; + __CL_ANON_STRUCT__ struct{ cl_uint8 lo, hi; }; +#endif +#if defined( __CL_UINT2__) + __cl_uint2 v2[8]; +#endif +#if defined( __CL_UINT4__) + __cl_uint4 v4[4]; +#endif +#if defined( __CL_UINT8__ ) + __cl_uint8 v8[2]; +#endif +#if defined( __CL_UINT16__ ) + __cl_uint16 v16; +#endif +}cl_uint16; + +/* ---- cl_longn ---- */ +typedef union +{ + cl_long CL_ALIGNED(16) s[2]; +#if __CL_HAS_ANON_STRUCT__ + __CL_ANON_STRUCT__ struct{ cl_long x, y; }; + __CL_ANON_STRUCT__ struct{ cl_long s0, s1; }; + __CL_ANON_STRUCT__ struct{ cl_long lo, hi; }; +#endif +#if defined( __CL_LONG2__) + __cl_long2 v2; +#endif +}cl_long2; + +typedef union +{ + cl_long CL_ALIGNED(32) s[4]; +#if __CL_HAS_ANON_STRUCT__ + __CL_ANON_STRUCT__ struct{ cl_long x, y, z, w; }; + __CL_ANON_STRUCT__ struct{ cl_long s0, s1, s2, s3; }; + __CL_ANON_STRUCT__ struct{ cl_long2 lo, hi; }; +#endif +#if defined( __CL_LONG2__) + __cl_long2 v2[2]; +#endif +#if defined( __CL_LONG4__) + __cl_long4 v4; +#endif +}cl_long4; + +/* cl_long3 is identical in size, alignment and behavior to cl_long4. See section 6.1.5. */ +typedef cl_long4 cl_long3; + +typedef union +{ + cl_long CL_ALIGNED(64) s[8]; +#if __CL_HAS_ANON_STRUCT__ + __CL_ANON_STRUCT__ struct{ cl_long x, y, z, w; }; + __CL_ANON_STRUCT__ struct{ cl_long s0, s1, s2, s3, s4, s5, s6, s7; }; + __CL_ANON_STRUCT__ struct{ cl_long4 lo, hi; }; +#endif +#if defined( __CL_LONG2__) + __cl_long2 v2[4]; +#endif +#if defined( __CL_LONG4__) + __cl_long4 v4[2]; +#endif +#if defined( __CL_LONG8__ ) + __cl_long8 v8; +#endif +}cl_long8; + +typedef union +{ + cl_long CL_ALIGNED(128) s[16]; +#if __CL_HAS_ANON_STRUCT__ + __CL_ANON_STRUCT__ struct{ cl_long x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; }; + __CL_ANON_STRUCT__ struct{ cl_long s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; }; + __CL_ANON_STRUCT__ struct{ cl_long8 lo, hi; }; +#endif +#if defined( __CL_LONG2__) + __cl_long2 v2[8]; +#endif +#if defined( __CL_LONG4__) + __cl_long4 v4[4]; +#endif +#if defined( __CL_LONG8__ ) + __cl_long8 v8[2]; +#endif +#if defined( __CL_LONG16__ ) + __cl_long16 v16; +#endif +}cl_long16; + + +/* ---- cl_ulongn ---- */ +typedef union +{ + cl_ulong CL_ALIGNED(16) s[2]; +#if __CL_HAS_ANON_STRUCT__ + __CL_ANON_STRUCT__ struct{ cl_ulong x, y; }; + __CL_ANON_STRUCT__ struct{ cl_ulong s0, s1; }; + __CL_ANON_STRUCT__ struct{ cl_ulong lo, hi; }; +#endif +#if defined( __CL_ULONG2__) + __cl_ulong2 v2; +#endif +}cl_ulong2; + +typedef union +{ + cl_ulong CL_ALIGNED(32) s[4]; +#if __CL_HAS_ANON_STRUCT__ + __CL_ANON_STRUCT__ struct{ cl_ulong x, y, z, w; }; + __CL_ANON_STRUCT__ struct{ cl_ulong s0, s1, s2, s3; }; + __CL_ANON_STRUCT__ struct{ cl_ulong2 lo, hi; }; +#endif +#if defined( __CL_ULONG2__) + __cl_ulong2 v2[2]; +#endif +#if defined( __CL_ULONG4__) + __cl_ulong4 v4; +#endif +}cl_ulong4; + +/* cl_ulong3 is identical in size, alignment and behavior to cl_ulong4. See section 6.1.5. */ +typedef cl_ulong4 cl_ulong3; + +typedef union +{ + cl_ulong CL_ALIGNED(64) s[8]; +#if __CL_HAS_ANON_STRUCT__ + __CL_ANON_STRUCT__ struct{ cl_ulong x, y, z, w; }; + __CL_ANON_STRUCT__ struct{ cl_ulong s0, s1, s2, s3, s4, s5, s6, s7; }; + __CL_ANON_STRUCT__ struct{ cl_ulong4 lo, hi; }; +#endif +#if defined( __CL_ULONG2__) + __cl_ulong2 v2[4]; +#endif +#if defined( __CL_ULONG4__) + __cl_ulong4 v4[2]; +#endif +#if defined( __CL_ULONG8__ ) + __cl_ulong8 v8; +#endif +}cl_ulong8; + +typedef union +{ + cl_ulong CL_ALIGNED(128) s[16]; +#if __CL_HAS_ANON_STRUCT__ + __CL_ANON_STRUCT__ struct{ cl_ulong x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; }; + __CL_ANON_STRUCT__ struct{ cl_ulong s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; }; + __CL_ANON_STRUCT__ struct{ cl_ulong8 lo, hi; }; +#endif +#if defined( __CL_ULONG2__) + __cl_ulong2 v2[8]; +#endif +#if defined( __CL_ULONG4__) + __cl_ulong4 v4[4]; +#endif +#if defined( __CL_ULONG8__ ) + __cl_ulong8 v8[2]; +#endif +#if defined( __CL_ULONG16__ ) + __cl_ulong16 v16; +#endif +}cl_ulong16; + + +/* --- cl_floatn ---- */ + +typedef union +{ + cl_float CL_ALIGNED(8) s[2]; +#if __CL_HAS_ANON_STRUCT__ + __CL_ANON_STRUCT__ struct{ cl_float x, y; }; + __CL_ANON_STRUCT__ struct{ cl_float s0, s1; }; + __CL_ANON_STRUCT__ struct{ cl_float lo, hi; }; +#endif +#if defined( __CL_FLOAT2__) + __cl_float2 v2; +#endif +}cl_float2; + +typedef union +{ + cl_float CL_ALIGNED(16) s[4]; +#if __CL_HAS_ANON_STRUCT__ + __CL_ANON_STRUCT__ struct{ cl_float x, y, z, w; }; + __CL_ANON_STRUCT__ struct{ cl_float s0, s1, s2, s3; }; + __CL_ANON_STRUCT__ struct{ cl_float2 lo, hi; }; +#endif +#if defined( __CL_FLOAT2__) + __cl_float2 v2[2]; +#endif +#if defined( __CL_FLOAT4__) + __cl_float4 v4; +#endif +}cl_float4; + +/* cl_float3 is identical in size, alignment and behavior to cl_float4. See section 6.1.5. */ +typedef cl_float4 cl_float3; + +typedef union +{ + cl_float CL_ALIGNED(32) s[8]; +#if __CL_HAS_ANON_STRUCT__ + __CL_ANON_STRUCT__ struct{ cl_float x, y, z, w; }; + __CL_ANON_STRUCT__ struct{ cl_float s0, s1, s2, s3, s4, s5, s6, s7; }; + __CL_ANON_STRUCT__ struct{ cl_float4 lo, hi; }; +#endif +#if defined( __CL_FLOAT2__) + __cl_float2 v2[4]; +#endif +#if defined( __CL_FLOAT4__) + __cl_float4 v4[2]; +#endif +#if defined( __CL_FLOAT8__ ) + __cl_float8 v8; +#endif +}cl_float8; + +typedef union +{ + cl_float CL_ALIGNED(64) s[16]; +#if __CL_HAS_ANON_STRUCT__ + __CL_ANON_STRUCT__ struct{ cl_float x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; }; + __CL_ANON_STRUCT__ struct{ cl_float s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; }; + __CL_ANON_STRUCT__ struct{ cl_float8 lo, hi; }; +#endif +#if defined( __CL_FLOAT2__) + __cl_float2 v2[8]; +#endif +#if defined( __CL_FLOAT4__) + __cl_float4 v4[4]; +#endif +#if defined( __CL_FLOAT8__ ) + __cl_float8 v8[2]; +#endif +#if defined( __CL_FLOAT16__ ) + __cl_float16 v16; +#endif +}cl_float16; + +/* --- cl_doublen ---- */ + +typedef union +{ + cl_double CL_ALIGNED(16) s[2]; +#if __CL_HAS_ANON_STRUCT__ + __CL_ANON_STRUCT__ struct{ cl_double x, y; }; + __CL_ANON_STRUCT__ struct{ cl_double s0, s1; }; + __CL_ANON_STRUCT__ struct{ cl_double lo, hi; }; +#endif +#if defined( __CL_DOUBLE2__) + __cl_double2 v2; +#endif +}cl_double2; + +typedef union +{ + cl_double CL_ALIGNED(32) s[4]; +#if __CL_HAS_ANON_STRUCT__ + __CL_ANON_STRUCT__ struct{ cl_double x, y, z, w; }; + __CL_ANON_STRUCT__ struct{ cl_double s0, s1, s2, s3; }; + __CL_ANON_STRUCT__ struct{ cl_double2 lo, hi; }; +#endif +#if defined( __CL_DOUBLE2__) + __cl_double2 v2[2]; +#endif +#if defined( __CL_DOUBLE4__) + __cl_double4 v4; +#endif +}cl_double4; + +/* cl_double3 is identical in size, alignment and behavior to cl_double4. See section 6.1.5. */ +typedef cl_double4 cl_double3; + +typedef union +{ + cl_double CL_ALIGNED(64) s[8]; +#if __CL_HAS_ANON_STRUCT__ + __CL_ANON_STRUCT__ struct{ cl_double x, y, z, w; }; + __CL_ANON_STRUCT__ struct{ cl_double s0, s1, s2, s3, s4, s5, s6, s7; }; + __CL_ANON_STRUCT__ struct{ cl_double4 lo, hi; }; +#endif +#if defined( __CL_DOUBLE2__) + __cl_double2 v2[4]; +#endif +#if defined( __CL_DOUBLE4__) + __cl_double4 v4[2]; +#endif +#if defined( __CL_DOUBLE8__ ) + __cl_double8 v8; +#endif +}cl_double8; + +typedef union +{ + cl_double CL_ALIGNED(128) s[16]; +#if __CL_HAS_ANON_STRUCT__ + __CL_ANON_STRUCT__ struct{ cl_double x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; }; + __CL_ANON_STRUCT__ struct{ cl_double s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; }; + __CL_ANON_STRUCT__ struct{ cl_double8 lo, hi; }; +#endif +#if defined( __CL_DOUBLE2__) + __cl_double2 v2[8]; +#endif +#if defined( __CL_DOUBLE4__) + __cl_double4 v4[4]; +#endif +#if defined( __CL_DOUBLE8__ ) + __cl_double8 v8[2]; +#endif +#if defined( __CL_DOUBLE16__ ) + __cl_double16 v16; +#endif +}cl_double16; + +/* Macro to facilitate debugging + * Usage: + * Place CL_PROGRAM_STRING_DEBUG_INFO on the line before the first line of your source. + * The first line ends with: CL_PROGRAM_STRING_DEBUG_INFO \" + * Each line thereafter of OpenCL C source must end with: \n\ + * The last line ends in "; + * + * Example: + * + * const char *my_program = CL_PROGRAM_STRING_DEBUG_INFO "\ + * kernel void foo( int a, float * b ) \n\ + * { \n\ + * // my comment \n\ + * *b[ get_global_id(0)] = a; \n\ + * } \n\ + * "; + * + * This should correctly set up the line, (column) and file information for your source + * string so you can do source level debugging. + */ +#define __CL_STRINGIFY( _x ) # _x +#define _CL_STRINGIFY( _x ) __CL_STRINGIFY( _x ) +#define CL_PROGRAM_STRING_DEBUG_INFO "#line " _CL_STRINGIFY(__LINE__) " \"" __FILE__ "\" \n\n" + +#ifdef __cplusplus +} +#endif + +#undef __CL_HAS_ANON_STRUCT__ +#undef __CL_ANON_STRUCT__ +#if defined( _WIN32) && defined(_MSC_VER) + #if _MSC_VER >=1500 + #pragma warning( pop ) + #endif +#endif + +#endif /* __CL_PLATFORM_H */ diff --git a/benchmarks/opencl/include/CL/cl_va_api_media_sharing_intel.h b/benchmarks/opencl/include/CL/cl_va_api_media_sharing_intel.h new file mode 100644 index 00000000..934f3f52 --- /dev/null +++ b/benchmarks/opencl/include/CL/cl_va_api_media_sharing_intel.h @@ -0,0 +1,172 @@ +/********************************************************************************** + * Copyright (c) 2008-2019 The Khronos Group Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and/or associated documentation files (the + * "Materials"), to deal in the Materials without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Materials, and to + * permit persons to whom the Materials are furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Materials. + * + * MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS + * KHRONOS STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS + * SPECIFICATIONS AND HEADER INFORMATION ARE LOCATED AT + * https://www.khronos.org/registry/ + * + * THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. + **********************************************************************************/ +/*****************************************************************************\ + +Copyright (c) 2013-2019 Intel Corporation All Rights Reserved. + +THESE MATERIALS ARE PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INTEL OR ITS +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THESE +MATERIALS, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +File Name: cl_va_api_media_sharing_intel.h + +Abstract: + +Notes: + +\*****************************************************************************/ + + +#ifndef __OPENCL_CL_VA_API_MEDIA_SHARING_INTEL_H +#define __OPENCL_CL_VA_API_MEDIA_SHARING_INTEL_H + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/****************************************** +* cl_intel_va_api_media_sharing extension * +*******************************************/ + +#define cl_intel_va_api_media_sharing 1 + +/* error codes */ +#define CL_INVALID_VA_API_MEDIA_ADAPTER_INTEL -1098 +#define CL_INVALID_VA_API_MEDIA_SURFACE_INTEL -1099 +#define CL_VA_API_MEDIA_SURFACE_ALREADY_ACQUIRED_INTEL -1100 +#define CL_VA_API_MEDIA_SURFACE_NOT_ACQUIRED_INTEL -1101 + +/* cl_va_api_device_source_intel */ +#define CL_VA_API_DISPLAY_INTEL 0x4094 + +/* cl_va_api_device_set_intel */ +#define CL_PREFERRED_DEVICES_FOR_VA_API_INTEL 0x4095 +#define CL_ALL_DEVICES_FOR_VA_API_INTEL 0x4096 + +/* cl_context_info */ +#define CL_CONTEXT_VA_API_DISPLAY_INTEL 0x4097 + +/* cl_mem_info */ +#define CL_MEM_VA_API_MEDIA_SURFACE_INTEL 0x4098 + +/* cl_image_info */ +#define CL_IMAGE_VA_API_PLANE_INTEL 0x4099 + +/* cl_command_type */ +#define CL_COMMAND_ACQUIRE_VA_API_MEDIA_SURFACES_INTEL 0x409A +#define CL_COMMAND_RELEASE_VA_API_MEDIA_SURFACES_INTEL 0x409B + +typedef cl_uint cl_va_api_device_source_intel; +typedef cl_uint cl_va_api_device_set_intel; + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetDeviceIDsFromVA_APIMediaAdapterINTEL( + cl_platform_id platform, + cl_va_api_device_source_intel media_adapter_type, + void* media_adapter, + cl_va_api_device_set_intel media_adapter_set, + cl_uint num_entries, + cl_device_id* devices, + cl_uint* num_devices) CL_EXT_SUFFIX__VERSION_1_2; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * clGetDeviceIDsFromVA_APIMediaAdapterINTEL_fn)( + cl_platform_id platform, + cl_va_api_device_source_intel media_adapter_type, + void* media_adapter, + cl_va_api_device_set_intel media_adapter_set, + cl_uint num_entries, + cl_device_id* devices, + cl_uint* num_devices) CL_EXT_SUFFIX__VERSION_1_2; + +extern CL_API_ENTRY cl_mem CL_API_CALL +clCreateFromVA_APIMediaSurfaceINTEL( + cl_context context, + cl_mem_flags flags, + VASurfaceID* surface, + cl_uint plane, + cl_int* errcode_ret) CL_EXT_SUFFIX__VERSION_1_2; + +typedef CL_API_ENTRY cl_mem (CL_API_CALL * clCreateFromVA_APIMediaSurfaceINTEL_fn)( + cl_context context, + cl_mem_flags flags, + VASurfaceID* surface, + cl_uint plane, + cl_int* errcode_ret) CL_EXT_SUFFIX__VERSION_1_2; + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueAcquireVA_APIMediaSurfacesINTEL( + cl_command_queue command_queue, + cl_uint num_objects, + const cl_mem* mem_objects, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_EXT_SUFFIX__VERSION_1_2; + +typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueAcquireVA_APIMediaSurfacesINTEL_fn)( + cl_command_queue command_queue, + cl_uint num_objects, + const cl_mem* mem_objects, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_EXT_SUFFIX__VERSION_1_2; + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueReleaseVA_APIMediaSurfacesINTEL( + cl_command_queue command_queue, + cl_uint num_objects, + const cl_mem* mem_objects, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_EXT_SUFFIX__VERSION_1_2; + +typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueReleaseVA_APIMediaSurfacesINTEL_fn)( + cl_command_queue command_queue, + cl_uint num_objects, + const cl_mem* mem_objects, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_EXT_SUFFIX__VERSION_1_2; + +#ifdef __cplusplus +} +#endif + +#endif /* __OPENCL_CL_VA_API_MEDIA_SHARING_INTEL_H */ + diff --git a/benchmarks/opencl/include/CL/cl_version.h b/benchmarks/opencl/include/CL/cl_version.h new file mode 100644 index 00000000..bb766cb9 --- /dev/null +++ b/benchmarks/opencl/include/CL/cl_version.h @@ -0,0 +1,86 @@ +/******************************************************************************* + * Copyright (c) 2018 The Khronos Group Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and/or associated documentation files (the + * "Materials"), to deal in the Materials without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Materials, and to + * permit persons to whom the Materials are furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Materials. + * + * MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS + * KHRONOS STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS + * SPECIFICATIONS AND HEADER INFORMATION ARE LOCATED AT + * https://www.khronos.org/registry/ + * + * THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. + ******************************************************************************/ + +#ifndef __CL_VERSION_H +#define __CL_VERSION_H + +/* Detect which version to target */ +#if !defined(CL_TARGET_OPENCL_VERSION) +#pragma message("cl_version.h: CL_TARGET_OPENCL_VERSION is not defined. Defaulting to 220 (OpenCL 2.2)") +#define CL_TARGET_OPENCL_VERSION 220 +#endif +#if CL_TARGET_OPENCL_VERSION != 100 && \ + CL_TARGET_OPENCL_VERSION != 110 && \ + CL_TARGET_OPENCL_VERSION != 120 && \ + CL_TARGET_OPENCL_VERSION != 200 && \ + CL_TARGET_OPENCL_VERSION != 210 && \ + CL_TARGET_OPENCL_VERSION != 220 +#pragma message("cl_version: CL_TARGET_OPENCL_VERSION is not a valid value (100, 110, 120, 200, 210, 220). Defaulting to 220 (OpenCL 2.2)") +#undef CL_TARGET_OPENCL_VERSION +#define CL_TARGET_OPENCL_VERSION 220 +#endif + + +/* OpenCL Version */ +#if CL_TARGET_OPENCL_VERSION >= 220 && !defined(CL_VERSION_2_2) +#define CL_VERSION_2_2 1 +#endif +#if CL_TARGET_OPENCL_VERSION >= 210 && !defined(CL_VERSION_2_1) +#define CL_VERSION_2_1 1 +#endif +#if CL_TARGET_OPENCL_VERSION >= 200 && !defined(CL_VERSION_2_0) +#define CL_VERSION_2_0 1 +#endif +#if CL_TARGET_OPENCL_VERSION >= 120 && !defined(CL_VERSION_1_2) +#define CL_VERSION_1_2 1 +#endif +#if CL_TARGET_OPENCL_VERSION >= 110 && !defined(CL_VERSION_1_1) +#define CL_VERSION_1_1 1 +#endif +#if CL_TARGET_OPENCL_VERSION >= 100 && !defined(CL_VERSION_1_0) +#define CL_VERSION_1_0 1 +#endif + +/* Allow deprecated APIs for older OpenCL versions. */ +#if CL_TARGET_OPENCL_VERSION <= 210 && !defined(CL_USE_DEPRECATED_OPENCL_2_1_APIS) +#define CL_USE_DEPRECATED_OPENCL_2_1_APIS +#endif +#if CL_TARGET_OPENCL_VERSION <= 200 && !defined(CL_USE_DEPRECATED_OPENCL_2_0_APIS) +#define CL_USE_DEPRECATED_OPENCL_2_0_APIS +#endif +#if CL_TARGET_OPENCL_VERSION <= 120 && !defined(CL_USE_DEPRECATED_OPENCL_1_2_APIS) +#define CL_USE_DEPRECATED_OPENCL_1_2_APIS +#endif +#if CL_TARGET_OPENCL_VERSION <= 110 && !defined(CL_USE_DEPRECATED_OPENCL_1_1_APIS) +#define CL_USE_DEPRECATED_OPENCL_1_1_APIS +#endif +#if CL_TARGET_OPENCL_VERSION <= 100 && !defined(CL_USE_DEPRECATED_OPENCL_1_0_APIS) +#define CL_USE_DEPRECATED_OPENCL_1_0_APIS +#endif + +#endif /* __CL_VERSION_H */ diff --git a/benchmarks/opencl/include/CL/opencl.h b/benchmarks/opencl/include/CL/opencl.h new file mode 100644 index 00000000..143d1d2d --- /dev/null +++ b/benchmarks/opencl/include/CL/opencl.h @@ -0,0 +1,47 @@ +/******************************************************************************* + * Copyright (c) 2008-2015 The Khronos Group Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and/or associated documentation files (the + * "Materials"), to deal in the Materials without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Materials, and to + * permit persons to whom the Materials are furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Materials. + * + * MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS + * KHRONOS STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS + * SPECIFICATIONS AND HEADER INFORMATION ARE LOCATED AT + * https://www.khronos.org/registry/ + * + * THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. + ******************************************************************************/ + +/* $Revision: 11708 $ on $Date: 2010-06-13 23:36:24 -0700 (Sun, 13 Jun 2010) $ */ + +#ifndef __OPENCL_H +#define __OPENCL_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include +#include +#include + +#ifdef __cplusplus +} +#endif + +#endif /* __OPENCL_H */ diff --git a/benchmarks/opencl/lib/libOpenCL.a b/benchmarks/opencl/lib/libOpenCL.a new file mode 100644 index 0000000000000000000000000000000000000000..4d8d7fa081a4e3d861c6c394ab365b60df8b3d11 GIT binary patch literal 8097038 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%0Df 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≫%4tnf?e7P(kygJRxtI&M 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 z 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 zHU?uh24gk`V>Sk3HU?uh24gk`V>Sk3HU?uh24gk`V>Sk3HU?uh24gk`V>Sk3HU?uh z24gk`V>Sk3HU?uh24gk`V>Sk3HU?uh24gk`V>Sk3HU?uh24gk`V>Sk3HU{H12IDpc z<2DB4HU{H12IDpc<2DB4HU{H12IDpc<2DB4HU{H12IDpc<2DB4HU{H12IDpc<2DB4 zHU{H12IDpc<2DB4HU{H12IDpc<2DB4HU{H12IDpc<2DB4HU{H12IDpc<2DB4HU{H1 z2IDpc<2DB4HU{H12IDpc<2DB4HU{H12IDpc<2DB4HU{H12IDpc<2DB4HU{H12IDpc z<2DB4HU{H12IDpc<2DB4HU{H12IDpc<2DB4HU{H12IDpc<2DB4HU{H12IDpc<2DB4 zHU{H12IDpc<2DB4HU{H12IDpc<2DB4HU{H12IDpc<2DB4HU{H12IDpc<2DB4HU{H1 z2IDpc<2DB4HU{H12IDpc<2DB4HU{H12IDpc<2DB4HU<+m1`{?06E+4DHU<+m1`{?0 z6E+4DHU<+m1`{?06E+4DHU<+m1`{?06E+4DHU<+m1`{?06E+4DHU<+m1`{?06E+4D zHU<+m1`{?06E+4DHU<+m1`{?06E+4DHU<+m1`{?06E+4DHU<+m1`{?06E+4DHU<+m z1`{?06E+4DHU<+m1`{?06E+4DHU<+m1`{?06E+4DHU<+m1`{?06E+4DHU<+m1`{?0 z6E+4DHU<+m1`{?06E+4DHU<+m1`{?06E+4DHU<+m1`{?06E+4DHU<+m1`{?06E+4D zHU<+m1`{?06E+4DHU<+m1`{?06E+5A?*un=2^)h68-ocOg9#gh2^)h68-ocOg9#gh z2^)h68-ocOg9#gh2^)h68-ocOg9#ghNgIPn8-qz3gGn2MNgIPn8-qz3gGn2MNgIPn z8-qz3gGn2MNgIPn8-qz3gGn2MNgIPn8-qz3gGn2MNgIPn8-qz3gGn2MNgIPn8-qz3 zgGn2MNgIPn8-qz3gGn2MNgIPn8-qz3gGn2MNgIPn8-qz3gGn2MNgIPn8-qz3gGn2M zNgIPn8-qz3gGn2MNgIPn8-qz3gGn2MNgIPn8-qz3gGn2MNgIPn8-qz3gGn2MNgIPn z8-qz3gGn2MNgIPn8-qz3gGn2MNgIPn8-qz3gGn2MNgIPn8-qz3gGn2MNgIPn8-qz3 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 z zZdXi)Sn?gf8ViUe-wmv>fLLT@$I9K@0z0M=MQEcqc| zjRnM#9|q3-V@!uw@?*g2V~uF+`2k?r9Id>r*ZAN7eP=XV5Td&H7Y0+#I&OWp#U`$9~I zSn{dBYSU@d`C`-|md-q2*&eav^Qq5;FAieK7XYhGi6!Uvw3XLl;2bx6!$B;aAz;}a zvE-|P6?YAA?q6bDV(DxKZvNLOCzgB*^|=toK`i-JV3m_ta_&hf+as2I5A~Dn5lemy zSoso5ejGUWrI;_VeO4&3z;45KHGIuzZ17 za=w?J`)1T9mi#oZY>ZfP?u)0qMgix(72^_1hkIkn7l-!VEF>EE{T0LvGMCGP=N+3}K`i-9VA&qAOov$Vh15^BM=beW z)c;M?CzgB>uxyW5@(y6x9;abT5lg-gSaJ6Q=l&4m5=-YOaPyfcCzkve_5T>< z#F8HeRym0!KM5?`BbK}YpQMoO5lcQ5Soso5J`FhcKQUio$!7w~_J}2446J^bSaN=+ zJNKuU4zc7t!0LyIC0`9J8zz=~4R9{QjUXJvlJ5eR4HHYg7g#n-Ecrg*95L(i}mi!>~M?`&M$qxa`hKVIV0xTOQmi#DiE^UZGEcppw*~UrgG{n4!r85fO9g+cL2+Vi6vi2{nURFOTG6EAQB9^=ZSUyWEc^7c*+?X%1Jv+T09bZHEcs#J@m~qqX2g=`@O>(sFR|oZly8siNG$ngqfadP2_q+#{Adp4Pakn3 zmi!oSZbB?SvE;{rC;WZPmss+N`0kv>2x7@|z&SpwfrD7`nZOz&h$Wu~tTBREa(=fx zcYaKVSn`F`=YwE4h$X*^`WHlfV#yZ)Ym6Y4yaQNc1hM4&CTXrYrb8_G5U~2*mDI^a z9b)Nh0B*i8%84c4ME#4RoLKVBz#1cnCEo_DytV`9E{<`DrLz~fc~X=UOTLf#mqaKLe~Wh*aS% zk63bk2Q~N9s81|;7qD!PSn_^g*&eavL%_K!V>-l=uK`vYt)q7Jciwg5LziE?7e zw^IMAC?}SD8?fwwSn{2~%4-*J?&=tqSULxQo3Dv-V#)bE)!fu5CzkvWu<|07oO^XC zucN@ZYhzqu>6`#=PMZP|OMa62*GGL~$xl%~*&eavr>W0}!f+5vp5c3%vOQwSM*++B zh$Wv2EZZZNd>U{rAJZq6d?B!Gk63bkdsVhaEO`fTt`O59mb{1h$@YjP@27q->Jv*o z1T5PlmV7m^Y>!y-HNd%2Oov$V^}uSQ4b&+|9b)P5JFc=lV##+mi#EN@*!y->AeH%q<*qJV#!xi|Cv#rSn@T%vOQwS*8$7+h$UYSoSPNX zA(nhIu-a$~b)FSZj@)N+yi&*kgz{=}1aBgmlODvrRd}FcsmMABdd=zl**-=g``55Xa+as2o z--FK0i~7Wp=YVB<#FDoF%l3#Rp9L)2BbJ=sw9VZb(!y-mB6{b zis=wbzJ~hA_J}24Oa0rTKC$HMfMt8cl5YT(?Ga192{<=Drb8_GR$#T!HtIYl>JUqZ z-{Nk*J<5qC-%I`HMme$M`+#K+#F8HbR$hmIa|>czV(IXko6XOQa$?C(Qvdl;PAvH; zVC6+D`59p4m0^9HyCcRWmQD`1d0~_jOFoJEcSbp}8gMRsyqj1$^MIQxF->C0=Tm=i zloLz709bhuOMVxyY>8O%HNdhZV#(J6=h|ZW#FFm@mMsxWz7JToL@fD!;M|g!4zc71 zsh@0#Sn@;EZ;$%Kk{#L^klf;3aV zL@fC@;M~%vPb~RFVAVOXzc1<&OTG(O*N%uKKS+7HrbjIKDaz9|Kw``MEMlAUduzZ|Y@-@KC_eOnU$=3qs2BMr;^7YhD?Mp2A2I>z+ zePYQs0n5jUCEo%pA19W4D{yWorb8_G4q*AhPU@_PI>gf153KtU#F8JN{(VuOSn`9w z@&#haj{qyLqrkcQV_ahCoC4PU2x7_404r{G1>&xZafzjq18!aw<;0Rt0?s`U<;0Rt z2G+ckSn{dB@>ycZ=K;$$h$Wv7oO`f7*b=eiYk_4O#FB3SZvOvRdlN7z%CmpBtGfqg zW1Ja~X*L-Kcn1^#6$KR)6%`c~6&0gq*oGwzi!dnesHnJuqN2fwiaYKaH;kwlH9_OP zMB|cZ+%RI)xSR9b^?P2X{m%El&NbjV@pSynb)>~C?Rd-iUHz(!NJRJQ}HDnej1INtk z#&K-G(Z6L}I4zg92}l2~aU2_P^y`h|x;7XWPS2&w!ZDNY(>6BX=qrumvem|gGqfxm zGyRO~7RtlX4>^BEQOb z<5(*4cN!PYQ9E#KXSH!WMr+8Ns|*}7uN!Y1OGW-I^5-cJ$Nam-@fg9;uQ!hC+F)Eb zU(3QVlMh8>$vFB-lbxUf|1z|sF`9FJ+H(K44R z1IJ9kxb8A}IQs77FPDd-uQ!gz6pns?aa`A6zZs_SgB>< zn3-=JpD)4DFEEbFE;KG&uVvwwS#Df+gFGDl3i3C~!_luaj{StAUu7J}1|0nw@_rqI zqyNY_t{0Aey>a0ttrw2|TjO{ggQMsFtBPX}jy`W(xLNJM(GN3@V-Jpgq;VX3aP*^$ z3%95pIQlWw=?S zXB^k{ym8?kEeprYdgG3(+NakCIQp-QnWF z&^V3_IQm7#h5OVF9Q|VQJ~rU!my-Xz@^JLajN{mVqhDbh#|9kzO5?))Y6p(~PUE-_ z?HI8Esj{be)!sBWOj(&r291mZSc|sXDW-13*n|@t_qpvnDtW_S4 zzLRl0rf~H2#&KPJj0;a{SvY2f8^`Ms9Q_FLe^efhexz|+7aaX)-;OK8ME_p~SW#E_@U>vVYaP))8 zKc_q#{Sf1Lyx{0Z7{_&uG%ox_%fc};&NyC|;ONI2$7LrQ7oOL$aLlwC*S#PQM?atZ zi}G;v3ye2DmoD;)jN{mVV}7Oa#<5Z4Z!#{tr1s&Mf6F+I4LJIbjN^3!j()vy;bpZ0 zNBGC zE)PdPg!~)waP-5B?ndr*RxhaP;>Y7v5F-aP%J; z$FT%Q|CMnZOK|kx8W-MEJ8<-wL6-Ni1V^7YF8p12IQmlKIF{h(tBvDWf}`(bT=<9D zfupZCj{Ce1nfH}}V`jK<-3Rh;^drdsQyz|fq;cHmaP(u0*e9-R~pCb5*+<1<2aV! z=zlbhV+oEvGuYbyOzp$b+czw497}NYBaGu%f}j{@=>O(JwZR#}|%% zxp7?A3gg0;S{9C(2aMzWA~^chx>IuYgssE-Z!rMk31ax zN94behofI_9M=U$|CMnZOK|k#wzBrWRXcF>M;aHtlZT@pPu|A>9Q|bS-zyJC-$LHs z_k^RLP5uYv;pkh9GdWY{fez^yKa|oStHHg<|IQpjz3W@S?^y>`b*n^{g-5{>( zE#pE~%fd19l|j5d!_j|hP{=6{NB^TiTo)XDen{K8N{tJ7Eepp?y>VTMJRE%=^6li| z==&MRb-~fwmyB;br{L&kllQR-N56vnojz8J{CfPK)7_teV}8K4){ei|4@bYO$ivY; zU|iQ;{fDDpZCogohofIZ-p^$?`nBZCl!v2VN8Zn6IQr+wmn#oP|FUsBm*ME&#mCPj z75Qbh3#u#B&I-6ve3Nla2l1UnyoOAb{Cap3aUn6T7S|W?D&v|O`E~eOU$%%V?Ur|S zNBMqmC-Go-Q}M7O9szfjp9a^7`HHvdf|#%KsOch}Z>M5SS24GbtGkJLsTSA8Lr8UZ zc{ZcEhjOS&Mb$?}s74dj@bNL1E7UG-W0pfSzEydMk z*5*L*YS{PZ)5g_<B#r?{Sw-S#tuGw0guV`C#2<-hFYh1mJGUMSP;$`r*;^*P* z#FSUSG%8W6t*-yM2 zzrXk``~l+Go0=aZUTR!(p!iPwLE`t}gT?jsxxAXO;t|HxhlrQLhl*Fghly9g*0 zarGo|_aYt%PnJIkZWgaHu9+e(*k>7HJN3rZQ|0>=@fdiT{33X|_yOaZ--!Fz-?7Jb z1{hZ#EkC4)kAz#~m%=l|YmIAWiU;>-YiGD|^(^_xFc&|Ymcz%0*O8wi9%g?N8~ZTQ zxO%Sqm?A#1h?l~x-VQuZ{G)NrvEpg=H*3?Y-Ro`H6U2*P zKVD0Xt51}FA3n*Kg-;e|dRhJy@o3}fQ^m{h3&c0!PZJMsFn_vuwsG|to`DyNUng^> zcw}$$XNeaS@dNPL@*f%3Eb@FG^XG`i8`qpGUJ0KkUI(8q{>Zrc0&!_y;|s;r@I~SR zyjVP{h!?<1_;=#v#x+-q^Y-3KTvxqu^$PjnMcfKsBfkp1R{WN6&2{2? zw=lm_ydJ(@+g1ry#let5_yWN+lzEeEfxaKbLYS{B@;k)J674drG>U-qBh3^#) z9&CJ{cpChB@iOC@`^EXK+S;!-u6{t?{&T5J^@HN!MLZUMNPZFguz0a?&1&&7_!03+ zGJg=SfgcrD+H1+0HR4v|>c_u8`Der%?pD&x+rIpA)}N#`j5PTjRgT zR~lD8FFpx=LA-#>i{i!jm&EtNFN-(8uZZnwW+r)6TnWD>u7O_{ZwkL5wuiw?@>j84 z{xiMbY~x1vc4^EcZ^_%KoJsyBwxOL#-WKl&za!oaepkFV{GND!`0wH);eUuH!0(G^ z!5@f^h5so&5&lqo4*Ze$Lil6xP4Fk;+u%>dYvA?bC*jY;FT(#4zYTvb{si72{xAH6 zxFRwBw|Fb~OYzR|SK`s|*WxDlKjNd|Z^XyJ--^$GzY{NpzZc&O{~-Q7{G<2@_$Tp~ z@Xz8**7(2T4sfQ#dY;L2g%fcjoD~m&bK+g$ym)`OM0^C?PR#4Fq`ml9xKz9lE)y?- z%f)P*VJRS~wXbo(c1x2H12Gyp{M|cx&-8cpLEz@DMTI znV)PcejN5O@B&OnY55vR7&%k~jy$0_j{{g(S zIMd#E7jYFlLfjqRRlGU8oA_XOcku+69cI%kcn|T(@SfuH;Jw6Gz@x<6vPt$9-v{p_ zegfWC`~o~${0_XI_%nEa@el9;;<8fXF=GC|k>o&eUzmew(>CzI;$7jf;sfAA#LM7A z#W%o*iQj>J9Il7Q$(NTIA1*!^{*{>Tb54#B&w!5<9}gcTJ`?`6cnRDjz6xg0*>p2J zL3|%PQT#`ElK4eLSNLS{0q`l}qu^7;N5c!m$HS+I&xTJIUkaZgz7Ad}z6(B6{3v{u z_*wXD@tg1>@yGBv;%{IsBsP`U6PM&XaYy)kaWD7+@gVp@@lNnX;(g)8;=|!3;;Hb( z;(72T;xpi-;wA8<;;Z4y#J9nhiywx$$l3G^e1-Tm_)75y@NdOm!pp@;2ji>6o4~&l z_kgb!Zvn3mZx3H19tB@3J`BE2JOy4Uo(EqqUI=pmw&@c1M)9@qP2#)Yo5g(RYI2MC zFYvA6x8YUd&*0m{KfS~KGNhN@uTp=;^*Mi;=jR0e-FPauCx~|$$R3iuwRq=!G2BN4*t6`BjJCD4}#wp zkB2`H&xHRe=DQi=wdh>f`?C!8{@eh6s65}zn0zFD0{&S13jB%qAF%iH3)uVlU-(mH zI@B7k7k7ib&;8-gubyloZi1`D$HFz@GhshQm%x6Eu7Q2u-U0h~egv-7 zvVVqs{J#Nrl>ZR!B>o!SRGhOH{|Qf`ZK{F&Kf3D)^PfK1v?bg{yd&IIyf@rUd>Gta z+zj^+&xJP=p9c37Uj)~SuY!AtSHTV9hvDAhKf!&(Z@_)UAHzZX1KcPsv-b<)KCFX% zANGZPA8rHpQ+`*tzxV)nbMaB|7UH8}{$nefPJp)*Uj`2puY~>B-3|MC*TBBs=ioug zzXcB#e*$kMF0uDGlC8xZ;cdjd;348c@V4Te;O)fw!b8P}!^6Z=;qArq;2p$gz&nbU zzGw{yxufw~DKY>SxzlD9Dw6phU;y&pF`#x!acU68cyqkDu zcz5w=c%=9Ucn|SZcu($BMhbhlm^DL&e*`hlzKA$BFla4;LQ>|4KXwK0-VT zK2m%le3bZX_}Aj4uwOH;f&H3!2i&C0Gq7LBUV+EU{~ewn{v4ht=DP&r^|s93|BBb! z&ahu^d&7Rc9Sr;Rb|=`cxBI|;T|Er;>*~?)B(00@+)E~ld9N*L7C#725&sdMDt-x` zCgywalIh~l;NOV9hmRJwxA)zW7V%c_4Dn9zOz}SOEb(FRY%$+27auE+f&IKV1@`mh zJop&pm%($y*TeqUdN({*{!zG9ybhix-T)sf{t5Qy?dA4#b>iJY7!-W2xpw*fv~eh_?y znD-@zC@Xa z;iclI;rQGPzEu8G*!%x2?ENpX_fM0{l&OU;7x#pHyzw1G$ujxv;VZ;@!dHq9hJP!b z052CG3;VX80ek-!!@l0DU|;Vou&?)i*w@SV1;zEg0Q-91hJC%f7o1$B^(OVkzKvC| zueTfgJ7xO8SBtlWeZ9NEE94J=uMr;!Un`ytUnf2eUMW5wzFvF>|>@Qe6#ZP@Gatj@U7zAVc!p9U>^fV!QTFFU>`rn!G6tI z2>U)+0{gcA4)$$d1+UV&9)rEj=U_kXZ^GV(kKjv`{~GpnWgCorU7NtZ|GUG!|2Kzk z)3Uq3-sWi7*LyhZ$9D?s$9FF5?VkqUu6CBee!Omgy+8LBZJT=*IB0{Bnj3*bMC zuY}i$Z-k!}KL$T1eh&VN_)XYfgMS1+FaI_Cf;bzDUleZwza;Jszbx(#zakzAzbYOH zza~Dgh@0T8~M)+&-eei$8Pr%=ZUx2?AzXN|K z{tW(J`~&=hxU9eNkK#J`Cvji+XYn@hf5p4PnfB@UIRH+?N5NU~(Qr7 zh1-d*gWHSmg85@un;wPzoO%{6lYbNT^Xp^S&#!Oba%D<3H}>&XAXz`dNLLE>&ZO0LhCvMt`skUJBV+Cc_Y!Lhv7}c&%o8<*I*ydAHX&8 zU&6KGWDDbt;!WUA;vVp(;w|9L;_cx&@m_F2d?Zt<}{nUx6u-|W-5AUGNIq;6+E8*edTj8C= ztKpr+>)>6){2f#>Ld<70;_J;HVLy)i9aOTbGCknk!~@~o#k;^G#iQXp#7Dt-Cc{=e{OarJh_`-ywO`-``R4-gNB{j(vv z!eiw3h9~CJ{l7nap!}h*|E<>%@ImsEVE@~*Y4E}Fvtj>RvU%`W`QwdyAJWE+?w67| zRQ@X1pV!?1A0~ef%Z_W~M)#}994`MH{44Q`GW|8SC&Dw7nE}rfAH%Y<+PKmENo4$7J|CW~%yQVzyH&9FXEl6`GV9Bbr+?E}VZx?)*-WOv{-z;vaDO7+ z{yu;S4xTv!Z|}7;!ND`<;n_Hw;NY1{@HO&q@XT-VweoQA%ysyV@^J9Xt$22lO>pqc zJ@`%KVcwf$dKllije}>Nz}Lyc!881K-Mlx$1P9N&j_)E52hV(f?I@t_(*zj2@am&Z%`Y8JRCf;AHGo@4xTv#Z?Dam;NY2~@b=n< z2@alV#@p)zCOCLz2Hu{>Gr_?#^Y8=Y;ozCm@LS5m!7~@&2g<|2Gne8A$-}`jSK$ZC z!@)DxH;~6B8Uf!&fIX*tMGp4xZs-`3-hmV}gTc+S>)FVMlp5 zc%~zMxI7#@(+$6qJRCgJ3%|2G96Zw>zl%H^JhK&kgghKPvps%Sc{q4xSNv}BaPZ9D z_}%5<;F$yQBjw@XnZxmW$iu-i6YzV=!@)Dt@q5X`!86C;N6Ev%GbiEqmWP99&cg2_ z4+qaI#_uZ+2hUuIA1x0D&)kULPaY1Qxd*?$JRCgpApQV(ICzGSmo$u#hl6MMm`B5b z@^J7BAH8TeNFENJ;cvMc4wi?5XZR>W!&rGZc!rMzG#nxi2hZe6%pWQb2hUXC50i(3 zXFB4?$-}`j-SCIY!@)DX@xPLXgJ%ZekC2ChXLiINDGvwF?2bQ59uA(_AOCB4ICy3p zzDXVqo@vI9mxqIAj=@imhl6L1$4``pgJ({|Pm+g&XU@S-mWP99mf)M^;ozAo@KfaB z;F)XiQ{~~{ncMKwA1x0D&%AB9uA(_9ee!e^$JTne|ygVE{GZBA+JRCgJfSSmxqIA?!%uU z4+qaYf?p^P2hTi-KT{qKp5d*LhO^}1;2GX#XgFIQ4xZuGf5ReqICzHJ>ka3~!@)D$ z!frTM9uA&q-`@Or@^J9XCiwH^;ozA%`~~uG@Jvtqh4OIlOe6jxc{q4x5Pq>d96U1= zzeFAmp4kO|u{<0+!!4(VOXT6;8E)A$ER~0YXSiL`aH%{TJi{%9hRfvP;2B;*H(V|c z2hZ>_vSFD#96ZCzxrQs`;ouowJ~dn^4+qa&f&Z;M96WOkez`mxJaaStDtS0~<}Up2 z4?8c9uA(_41cpc96Zwxe~UaEJhL_aR(UvhW;lM8JRCf; zH~uzxIC$m|{O$5^@XS&8JLKWunP&W*@^J9X4E$a4aPZ7r{N3_!@XRUrd*tEZnML?} z<>BC&i}Cl#!@)Dl@xPacgJ*8W-!Bgb&)kQ9KpqaBc?AEUJRCgpH2xuZIC$no{KN8a z@C=`sYFI4~2hV(je?%S*p7|XA2YEPn<{SK@@^J9XfAMSN;ozByGV_ng!@)Ck_{Zhp z;F+HIC*FUrHgGxP8-$-}`jC*xn1hl6MM{93~+@^J9X z1^8Fx;ozA|@vq6l!82FkUzdl2XRgP;ArA-7+=~CJJRCf85B^PgIC$n^{9E#H@XS;A zzsbYFGcVxZmWP99{)T@?9uA)Q82_$396a+i{ylj(c;*NE-{s-pnOwQ~f5^kZGZpyv z<>BC&j`$Dc;ozBW_BC&H}Uq@3QTbD%s=soJRCg3XDSF?Hhl6K&;LGIU;F-Soa(Os-W=lL@NMI8jJhLsnQXUST*$Ll49uA(_179T% z2hZ$>-$Wh`o;d_xEe{9J9EGouhl6LD@wM`B@XQQ+M|n7SW*)wiJRCf8GJaEeICzH7 zr8abyhl6J>!Pm*d!82Fm`Eom(;NY1X@m=KM;F&w{UFG56nfvgY$-}`jkKpU&;ozAk z@V(^W;F)Le4f1gC%nSJ5@^J9X8~8r*aPZ7~_`dRR@C=`^Z3yyk@XQzZMtL}R<~w{p zc{q3`sWjhT9uA%>;FnU3F99uA&q#cwAM2hW^>A1V(A z&n&_ZlZS(6F2-*!4+qaI$L}By2hZGq-%%b8p5Zgg4a4Q(;F$;TJITYrGmqo>A`_e7 z;F)#!UF6~5nOE^6&!@)BH@q5d|!86<9_mPK#XGY-nm4}08_Q8*qhl6Lv z;`ft>gJ*t?-(MaMo|%R}KpqaBnS~!C4+qbjfImfqGc{q5c2Y#YF z96Zw(KS>@Ap4k#VSso6a*&g344+qcefuAA|2hSXcpDGUr&m4iDCJzVCOvO)^hl6M4 z;(sF#2hW^}KUy9Ro;eTSA`b`8T!Nn=4+qa&fuAW42hUuCpCu0m&)kfkEe{9J+=V|z z9uA&)5I;vA4xV`oKUW?Oo_Pk}Dh~(Gynvr44+qb@fj?Fr4xV`rf1ErVJo7PrzC0W} z^A-Mhc{q6HXZ#8BaPUm&Cgx9+hl6Ko@F&T`!83fPLBq-NaPUko{3-Hq@JxUFsq%2} z%n0Sso6axe}kc;-?3ZSrvN%#--r<>BC&=ka&Q!@)Cu#os9p2hY5Zze^qtp7|I4 zZh1I(<~#g7@^J7>zQ+8$@^J7>75+YXIC!Rj|GhjMJj367HQX-`2hR+^KOheW&uoi- zP#zAR*$MxUJRCf;2mWDsICy41{AzhPc;*oNBl2+Y%u)D1$iu-i&G<*<;ozCs_%-ry z@XQJL$K>JQnT7br<>BC&3-M3L!@)CG;MdB-!80rIPs+o=Gq>aaC=UnEJb-^n9uA&) z9RIXD96YlQ|BO5wJo5_vPx5f^%-`^TmWP99KESV&hl6K6!#^tz2hV(qe@-3_p2^ml z|BE~vJX48(ULFpfsl&e@4+qcm#J?yH2hVJQe@Pw=p5gmv8eW!%gJ*WbzakF@&y2>u zDh~(G9EyKU9uA%vkAGbr4xTw0|AssqJaa7mukvv4%mVzI@^J9Xx%ju_;ozC2_`k`+ z!83d}PQ%;saPZ6x_;=*t;F&w{@5;l$Gpq6M$-}`je6LQ!-{s-pnV0eZkcWe3-o(Ez z4+qcu6aRrc96YlD|4(^1c;BC&S@^Hy;ozC$@L$Wr!851g|053v&zz0_Mjj5Hxd{KQJRCf8IsQ9&IC$o2 z{P*&3@XU?)ALQZSnLF@5%EQ4k_v3$(hl6Jx#s4f12hTi(|F1k8Jo6WPCY!!4hJ$Bb z!zc1^@XR~-tUMe%^C3Pb4+qbDj?c@(!870BOXT6;ng8P3$-}`j6`jntmxqIA>hPuV zaPUlTe3?8PJTnMiE)NIK?1-96Zwz-%B12p6P~fkcWe3df|J^!@)EC@qOgs;F%%# zzVdMJ%+B~A4+qbT!Z*sp!7~Tp`^m$>Ge_e4%frDle8*SA=JIgx%nbY%@^J9XJp2H8 zIC$n{{Fd@?@XVR`f%0(h%mw&C@^J9XrFi~BA)Daf8NOSrVJmq!c; zBC&XYt#~!@)CrcUi+wc{q6H1N<;~IC$m@{Pyy2@XSy6 z9pvHQ8NT4M)$9uA)AiQics4xVYm?;;Ne&kVwkkcWe3hT?aX zhl6K!!S5yy2hZ$<-(4OKo;d(NQXUSTISjvtJRCgJgx^yh4xX8c-%B12o|%guB@YMB zoQmID9uA&455JE*96WOgeqVVwcxE|%v^*RP+43U++Jqm~x~0X{KVn1zxAjZ2Q&wn>KEAznF}-zZCvXnPv8? zcXvIXfg9aFK*sZ{;U3DYG44H1{e&Cc?`Ayo8T(-q9PB+Rrqk@-(Ep^Ea(GUBGrpVJ zgu@T={8`D+!_+<;dMc9{IQRG&trI5N@76i`JuT9l=9UQqTbt*%W(H24&^jSAaN^v# znSpa=sYvHeZk{-AYSZ+YQ)XEvn&ruHD1z5H`^|JxQCrl$moo#5OYPtPQ*J9?Mn_8Rz2L{( zW^L@>&Yr_D?YDa-^X(2|e#Z4~Z%kiD*gvL4k0hDpn`=AR2XQ<0F^rhn{g z(Y&LInB2_MGMRe7r`X0gtBcp$$6ntJHpl)e^LcF6G4?MmW0<+n+A9D)#d$4O7q>Uo z+8b|<_Uz9GHg3m4aUdf<7^=w136@8*I-9>n+Fj+HISS z{rkPK9j4j#E1hQBMWt6P?00OM-*HSad#UBBPt0WOAwF|yd$m_>%&{pt?3tBAlg#1u zCVh(S(TC#P7<*p&bPU<=m>V=~@OJe@(^lIK9kR`k?S~B>T3^4_;K757er~s&C5H^# zek(07zWmfZM(>#MPrKOheM2{cPWK%ydkWA9{zHeD6M|XAS7t~cLr;ZM1KYsvkbYaIFW8DZhixv=)q7UNMBEF=K_Db{l>vMIsy^N+z{>I9+_Dg(IM|`H7 zZEQ5EU}d>XWoiD}vVE=Q+{@%wwx<~{ZZ7#6=WDwq$6{6aO%AhPX$ML=r(2(LyUGqM zDc`%>Z!E*8&J;?9lyV0yZN6l?j&P=?>F7+!&~#OK%@|sdcHfIm6qR0dqo}TFnx82d zR>94)PMO;L>Gr$)*Y<n#Yt-38e#0D>1ibomHyU-Xid}X zOv%HwX}G3oPNrnF4r)!)ahZ}wQudzwp==jh*mv=xX;D?vG;vC%WKGTHwl3e_kEP4_ zE`B=Q6TXZ8)Pqlt)vJH&dhBgQ9~FP;FvE&|DxNPp+lm1-P4gyZN?uBv9&Ckm^X0Ug z!>q7=zLKtIxR!anh7V+oQ1M0$pSIe)rm4jmcq?sSq~^SnE;CxiyX7y~_KZ>Sk6J!C z%3u4~QT?#;SUY~>RD4{;xpkz9Pts8`In()L%dtdV`h&w=*TGhrp2D`9`M7C2W)*0# zU%sR{Tgv<{lqFNMX+OMb$yV^CV0q1J$#$YDjn!sUm8xcDORuoy`M)!*m08)+@9b$& zCslLQ=3rHGvz@E#qA^6(Jk8_(*|g=3%a-#gg5j!8$fhUs2vsL4Ia1Y0nm0<-$=ObQ zZMo5^7AQGJ)oIx>HgBw|mD%<$ThGRIP1ko*wj(2bRHE|cY%L>sw3oMKE4Q;&-^yz4 z-P!7gtf6tgF`^E8|`QdKfCDII2wtC2mDS_-fBRMk%N_DX8^ zWVM-cevPu2ceVTTC1+;a^T{9u&(0Qj^P0)wmx!F3d&V97pdD%^_ zpk-C(X9t{Rl@EXmvR(N`x^bF!VYV|T%`{aPshX{7v8ws1mSn5>2+{&o7iX(awrY{8 zOSHZfs+MZGm8vdPwMx}xs_s>FxvJHwmZ@5+>I$7g>oVmGAy%F4q%Nvid0MwueL<}2 zGTk?n{4U%6UK48Qnrt@;uddA&)><_`Q_h7HOq=PEDQ8b}GI-r%L&+K09Ovz3HX~DV zWwwGNrQ*751#8s0%WT}I3l%awiPq*Z^_;rt;55<6xHiw@aXsfy9LU2{y@mZOXB-`5 zkT#Unv)htwa%ls-XtiWWt_S~ZqxIUxaG~P>`z0RGalef`xYPKJJiOBh8+pG@7ep>S zva_C!m?-k>OOw&EPSI@$wWdax?a z%jQ-$+JYOa6;^1(S6q;-ons4W#8+IHt$5PbUajOss&t91u+hnS3YvFGwvr9*u4<{O zdR3QcIh{8Z%XO*jr+HUp%ipn$8=&fU*>avO>e5_swJKejD^{qL5lUX8YNV=bRgF?* z1BYJg(p<4pmCnqH>s9H}TycXcou?Hysyb4w+@xx}s+(0!R&|T2X{v5j)uL*ZDxKdI zx2bB?yxUdjY_GUO)k&InXSR}$FD+1YSGM9;b{rO|x?9QfRo$a%v8sDjEmd`&_SrI3 zzgM+f)%~hgsCq!vN>vZ4x=GbTs#d9bSk;}XR%?Cts(M889#HiM&0DSNQB`YHt;yD% zVq5gIs>f74uj+ACud8|@+x=WizN>1jT6tg9liEuksrsX;4XU0}U%plKw5lJ|N79OC zl(cWqvhkIv_>&qf_43cz?w8pbE4^H&aJ84u>R1%Kd`@L|FaM(T)O-27=GsGFx}q0U z_Ve;Zl>@wdRpnqW-%vTk%ePey^YWc+&ugudBfNY!+w&nS{fR`yd)eAgZTO7wxqsIN zj`i{%>f|^t-_Q0sYAbsh=j8{QJKoEGYVKq&Kh)f5UVfw}H!WU%ta7%OpJq4V`9`ak z>s8M8@-vkudHFAu3%vYX%bql9n6m8#18pbJpqF{LA(;-H^c*XXQ#~*)2ZB z7yV*GtSZ`&b8}TZjQfV1r`7m|obUTytz4L^Jl<|rde<+?^;~R~cYSfLnl`=bOLFxO z*oO4ca!YgRX*Iw*yJg=Ktz)(M)9h#3*~JxahfY?cu zkJl0TiWBYht=HOj&37DZ2gnD+9{Kcw>jPrXeED`Z&j-ZbTFwW=K3dKP#C}@N2gLsQ zZa)p)I3NzpcVJ^jXnhCgYlpWDh(ojn9}tJ-OLwz*qxD#Sc)t9l-kHogzn~qF@3@aO z@w}Hu<-6`|<;z}<*CxL1^gqPan(I@okrWxF65gF8CpJ<)^hkRH4g5pUaLinS*mR>a#E<##CJ9g8wM z74a@bylao;8{6Nbi1#gOXLJ$oSG4Q_MSNgU=2u00L=hiVly5HbQ+sTDL0*1zk#8yD z8AZ#srarw}Tv~o&_3gGJ)4QPMC-vY#!Hbi7@R;ClF_fQ@JIiA2$d=~ImzKO|U>k0? zA};I66iqF-95za9Fgg?iOt%kn<9 zi0*@T7+AKs6}k`JVNmH!w#ET!ZE#u)&XnU=!tdzR=C4k>i%vUKHKfOIo1J!OMAdes zJPAmfs2ZA{w_XfOA4IfktF})I?b@mx(&r88YSj*1SYErfYDDSbwyD~+Rl8PiZ97XF zQMG$|OQT-v8L9glD)va59;RZ?v>0xCaj>FD1@_Z@auxgQ zj;V?R(v9&hk4cM4-vI~aXjD7n;Qo7CV`Mk_))r?D*_nmQg`rN2A zQ%|6dFJ$#^o(`K-L+g8@EZOa%|P~vc2uG zM%_PJ$D-!AshO&l;3mg&8oZAj;$Yw+36$I2rWJ*U1X$+)^xv&QgLir zj8<`6`s`zjuCIlP?nyO|c6QjTTRoCWZo_%CnW|FF>zSnO`!%$eZdLQ19UGvnoS$Rk zDl4l_EPH9=R-LS^(#lUskFW34Q_J7Bl0n_(t5|ZQG4g)HmJSx%TC$Y-i6)Iw%zINT~yrO;^Ov}czbH; z;@k*ppt4idrDd;dZ0YiJVQ*B&(6{G6Lv>2?WZ%T_HDsE1TVcwNna_^}tx0QXm zu`72J@2fkDyK+}?SMDzE%00zhxwp70_Z4^L_r+bg{})|(AlG6&u)Xqd*|GI;uRKz` zv;R=sl}C%avZlBzj}>?2@#3yLQQVca#a(&w7hU;d?i;#NTJ=oX4I8`i=i;ucORtmu zxL5UT?sSV;{`s<3H|Ad~&cF1F{L8t!$#<%Ht!zuX5w8RDMsfbHX@7jgznK<30NzT+ ziC-7~md=Ue>h0X$X?Aecdu6w7Z1x|;&Ay*5?9G0V&hcjdnYQH3ewgk-zwm#Q7JB5Y z`Z$gCQ;$DM3xDlg^=WQ09+C|>)&i`V{T@!G#CUi;U@ zYyZzL*8WZIe%3yq>btT98`u6r@!Ee(3t#(BX|ulVKc|JCQ~ynidcCDrl}U2jT65j| zROOPgw~f+kWK~I`mQ}S&(q;0h+N;v_v#K;nce$RtSCu7cr(^5oN$vt#FRkj3l-2f* zt#6_$u&=Ay-z@YV)g-x3Z5eyp$o`n4Q_`Kqx>r}#C1pJIR~NecqJgejsdukilD;2u4jan@qM@JFM7J0=K0>*UGplvM?4%9TXL*rXdLwu(cNuAFBo4o$jpZiE>V zW@oC#B^|kFYR=)wrd$zK9FcTpw5m8Vsq4A1I4Y@|x3OqS3g2xk#wT?geJwK~>B50j zF)^v*c&V6_6xj8?3nwSJOy5{cO?r*7y=c!0?Je4>X-O%svo)fBlhm+-y*fHcUy$py zZBz983Y+o~C=#%sBmNqV<&vZ`50$1Ci)#WYp3lk{e2i>f(E`Ydd=s<}xyuOnLR zOxWGl+enu-nOem=@F`c%-IS+g;@0XbY<7-J#V(BAn)fr)CM$aAmXlYT zsnS5L=&2h*8fF#sx&z~{lzXZ2XL$|z&HC6)1%IX7JHH99f&KPFpS-S!T3=(nZgWcx zP_>1UgH>&*8$$lvqM{}Ji?a6V2J}t3y%M*ewBnR}X{KM?f(7|>XZjYLrW+dhOuzPd zt|%3oCsq9{+n;9iGf6p{{>RldTps(giqC*{xCJYV4?dl<3G56SeT{A;Ux^)`;E{EpCkCF`xTw!coX z|FGNMNa&+#q2~2dbxu;-%jWsPyC|s~VU-`eB}wJ4tQw-^QdPrLU7l3VvU$T*Ez=rC zsQPVEd7;f4sp_hve5F;RR9%ylKV;QtRo5mJZ&)=()peRTR@F*X<5b<4lz(SQoqH8G zC*_-MnaPaTygQTfQC3Y>b$?R6#Hwkko=D0cwyH(dpOW&Qt(vXs)uepufg5iizmt@o zVAXuh`z$HH*{YLNeVbH1Yt;f(KdM@&sx({vnax|&z%{v|B3qstl*yd0c^yHEsy5A*5438TsxH}z-K|=#s#msRzEvw!HD)U>w`!%T0ojV*TXmDFLD|YztXidN zNVc-W;7sODRl8>^53uT9Rb#W2ORRc8)%a|>MXOa!QME=@OSW>YCD*E&pRIh`s;5<* zl&#F!8wcw$^$g)UE}ZEDw_U#&?)41iI_`-?dmWZREX&=~I)2y!4>F4p9mUHChH+cg zVjo}`z_H06Or(EY!rNnY{IC>fcWu7Xiq2e68OG_~*s3Ysk+s>4aW><+ZMMzXGtOaD z#}$o_lHsg|ieLZFGh5HtZkuH-EyXg%W&K{kEhaj{jCak++8(W2W&N^+)|jnlfNK^n zbnAF^8t1>me1?3{d={-slaMv?UqYM->2oK|;^nh$TBLDL_OVd?dH<(mI-~8!#s$;P z#2!76u5y1G;snzw(=Pw-tGt{fC*S{?Y+GAO|NAN*qY2JfHPN=7Hu~j)womdFujjn} zKQHtDYTd(VhbzMWY^QCF#m8%bCDU=pW#fM?!YwrG+8s2>r9)>CZ@B2_UZKPJ67#v3 zXn9UGTk1=*oq2k|r6iqWvdp-itBImM<~B2tM!B-2OPP&6TQXws&)NoXw@HsPS|S z>7h-3{PHkar{0Xqagi%pE={+M#J1(y4i#iAbhHK2&EmrNKU+x8tpBm*|62=(#1^<< z{?8WL)?7R^E{}_FRn;PXb^24B!#iZyEBralf^78|yB6!hd|Gys zqCaUnU4JT4s(EMlU-PJ1sH))4lg`ZM%B+>z{2%QJUTvNh?YXE8uyV!)e~^&gvMkAz z^V*ER8}Pa||Dr8Xe!Us~ZM59$*HgSxbA2DNIVHE+kF?LF6$^5uA6eyn)?4&mot`T& zD{rf30X6YvuE0C*wfTRUs?A?vdqOk1e|@|t&i zK7H=)JNbls&&MrUnW<-i^dYT|Qzku-wtm{I&9k1`{L^+QOP)4NSDCLkGhe;IDm8nK z-h7Q4dTu`VlFidrpP%o_JCC(_Hln25-c75`v!wlvB%+%MdvLUm_jFHKcbt;tPurXU zlu7qS?o(%%w5aUShr^m(GEL=XgGpwWOjg;mA0r{VghxVKw%)@>s_ZrJximaZWkY}d z)F-=StjgYlxGSDrGDcQxkxvFkeHTIuSR@-$W z+sB?q?QF_k>vYcKs&=T@v10p*y*t|2@HwTnt=ncW?Lzviz2{1lE3Hc^DzsQ)p|TFY zXr(+!_U?$U=w%BJs<4CB@fZ0H#ra`2ziJcfk-ab*ny#$6W0I>XZokIzrLmXfYsu5S zj%l={tt)m*scnOXmDp!BHqA8Jaqqlo(%414sw+v?QrNhtZ4|xj;)|x+$XdGoLReef zHg?Px>F(R*We?viUT#*rd?wSgqjhb#^`)M^u*P0P)Y){6yL4fm{eO$;rlyKc^!|mg zPW0(u-DghUV23vp&$idG-eP(@)ndPVvU3G{%XX4?tbadSZ+B~A^Yj2&qgxD2cIgs# z96O4!GNN$VZfQRUloajMtX-7Sk0EF6HxC zK`qlK4%&TmX3(@*GnxlYY?&~9Zu6kY&BqQ(KPkKA)S2_PY@Ic$Wzw_>(`OEvJjec6 zOLMl_ddqn;kDfW}xS3lvw@eu{edeT=d6Sz5&6qH08Xw2~|Ii#Am^x|F|Jv;K1GgSH zI5z(OrO~wa|A#)#J>EW2JTSJ(#ojxLOg^h^aW^7cksTRhyBMdr z^fTF3TRWMOBvXD#Yti$p))6`@;WI_vxX|v|GHqC9BKB>8B_Vm_C(`??c6I$jq+wZwkGP9@8Z*FO#m5l9! zrWwsMGINie(KKn+?Bg>>H_w^b+>)^tCrr-Fo-=ET9ji1o$v!E<-qSuxWZY2t(J>7mQam@waxGv~HWunn3pXX@Nc({XdAw>D?&pl!3Yb+{?r zm)4V}>62}vr%##QJSQ`4g6)twQ>}xo6VeaKH%*v3sdf5{=BA1BrdX$rZEb0unX$8y z?VQfRPWM=5;+$C%CQq7R_h_fK%$hi%#kPG;)9g9TQ?$)9C$vsKw%PhLeWo=uy=AiP zx2c(#^JX-$7iQ10J~hvoD=}fl>=yeteAB#{^X760np$UA*C)-L(>iO$#JM)?CfG(a z%}o1a^P1*1Ps-S6v;MSL&zqa3&Y3>B>A0y)Q|8T_l+lWtjJV%9OI zQAftnF^t)9bWEdT7#(%gQ33U>b@tiSrxEA|@mbUs7sg9s23pcg3r!pOBbQ)EgIO^JwH3Qk6Zcim^Fc8a9 z2orG>{n&xVNL46@Aw$0)P^uI|z@aq}r`1t!o|3w@PWS<37+q|Xj0@e{$x7SNN|rG3 z6{}A&o{ayDMb`Qk=>5i~bNyO*Ud0Q?02?x-J(k$z&&@V-nO+Q(q59XK^q_*+_$f zh`_@TrBOp-~rw0FX1Y!@SjnSLq9o)bYP z+14(8lftHM6FAw<_V%_+N7e*GS8#cf77M*TqNw+7Pq0VMxJ_G}gK$LVFKBR^Anz}UBINj5Vo#0p=b#_bWod43TR*~DC zLz$ngO3XsYtVPVg+5DDF+vScZ3kxbNH90?{k#=QnX1X?{K~zOam=2{|+dC1|NTrmj zCIcG5&+sp`NtYnR5R))qEbf)c$Hovo#{Wmjt)+}$(H3VZyrY2{G=Q0gWvckiH25Xom z#2IYnJmf}&bpX%ZJNkB#tx;B*KL^0MLk^-dNiNx00(Y#XP6ss;Q z#+D=LZJS4|?_t3%y1LS}B%-8U4%juenGm>?M9p4jJC>O#yNWask!f3QSJ1}2Mhfm4 z$*tb3pN%JFhB8Z5_HKDwMy9E*Jf(qYMQT(|&Dh3iRADiU+L-=~qTGp#?Xl}@S@M`c znGi>8uu*nsO^$}Bm^iR{w)(Q>Ie0Qn8w)0-prBd2$U~@-?TIW>K4$k^+GRMgxU(2x z7E!+&H%S!Qv}F8fGJ7&RYtG!6JO`;yL(&LBiR!35Z!oQJmw5H5_Kqg0&CJkDfo^Wd zVm9DuM{@4G>H8)Z%$&Yx!GUuQnweZ^4cgo!huHNZX2{kyyClw75bA~ARDL1c((8q408`e$zU;ioTarn+p&px+s)lpMy4w^iSW#XA!4>6C~CXs z=vJ=LlY22Mb$D*9m{>!C;aXf;g2`Xj$h1dg(5#uzu*kstfvJw;ZPGkWfUt7JMGB~y zK9%M|W!P)hR6Jc_8H`n3bE>8lPue&V=S8|^(=`aIfNyy6!D-Zp692Ixt;UgPGlm`U zm@{j{)+H%3^_o^m{N>g!IANkg%ql*O6EM$YP@A!_R>dZ`!=#v`&Dl=ebp^9LFAeL} zEHY@;p7?m#_H<@hZc(mEOyi{2NJ!2{Q!OdX51gJ&_~%x*uHcrvh-{C~K+f>um$v|Y{Xw0;AwkO+b@T|CGV-1vLVi3sWVY5Q( zeljy>ziE5Vbd~@-m6KN4Ny?sVcLgzt?vnEGYV-|j91?moMN7p)&(qn3N#uP2l@$Qy1c{xKuK9iFC z)|8ZdV`d>UBU3Zx3>xd8rC5L%<=a&>*YGf*Yh7H6$fiYx%j?V)2YbH7%Mi(y`Wkq? zHMJaTd*&mqlTeuvG*0w7%#rR~#hT5^z=>N~=b84HhM6`Y(w5^AMN6$#hf5viLWhxI z8q=}qwH*w8QPrGQpe=Z|p-dUl1I zi=}Onki@@SOHkcN(9`G3>GSr6R<7Q$B;!RL(-HJm@`Px>jXg}hX1G?GLwVVeY1p~S zWoopGX_=!Mnme;ih;^Rg@luK|yk)ktGwshVC38&1%XJfTnKy~+6SyA5g%T>&D=jki zCK9=Gskgj_R|j}n+@&wGHpN1{HjVLP{(z|4vdHAWa8hM^oo(k7$txPQ-Rh({nW&|C zxyw4dD2Ph~SaM-eit`HNRpXCes>vn~oG9TsXIC1)<%o{9<#je*yXV9C^XBZoaOMJg zR?b9?`Q4nd;!0u$ipaJ#cN&!$DViXXD@KIwlB;Vb=(ZZ-X+-z484R(#Vrkv36DMZM z+$uvN&9!ebDwi|$**2_6TI->lPP0a~XU%p6$IDcR3Q=8rl4N&#Rm?7V7&KiAFJy+c zPFy|11xrkvcGl(vDiez~`FP3N=B363CjLNcaK?y50(~V~_e8>QGqTZAoDm>uXzgbS zg_nn%0r^<~GS=Mdm{t{XekqrXkwCs^AV)sW8o#Y2eE!1Yq(5@*SHnlba{X&!0hhfqlIXf@J5FOu zb63o}uJD@^jqY=qu~vuq2Wl6IivYU&c<=oeRZfpgtTdl+RgP`x=xj~xo2f& zbxpfxmc^p!7P8v(?&;?CShR9%W98U}`E#as%R1()gfgKR&1VswtzM^pIa9ThN7s4c zc2CJA@wjV#Mj2zJ1uHeZ5b8WZ*PO$fi=uR}S;cWYAe~Ng`Ck{sIEO)8ne#S#g<4d( zouXd-%2o!Py}I0z#)=akKOltcRQ$6c+WzGQlTutw+PRgVCYZAr1`n2IIMnXT+~7k=2KqJku-F#D-eF7-LvaG<$>-8DnW zM4H0Iu&yhwat6zX9ZOr~lO)rP?8??UxjYQ3`e_QBEjcT9QeKaFzG#koz!tOw<4FoRpxKgN4z@g*y0en8q4r6$*!86r0& zV@@&?seaVRB}vzS$#ROHUb1hTug#TYk*+QrAvB(f8;^6wwlkl(D234X*}U$O$%#d`y;z#|as!rSyeoy8Q_P2ZZUx&p#Rp9zy~FMpf5 z@WCR_CyYP1^yyW<7+3rn&47hndf8uy{iaxaNm5 zCzQ2`l#7S%>jwP@4xbR=^e1ndkk4m+$$<`aJ{qZhH6EjFS1YSNo?1W`qm8K*wV{7l zThwiTkyi(PGHyVTSJ*oeU`(is9|gFVxi660!g$)G=Y8U|=LGQQ@SQMug}svjI?b1( zxFzhJh5xTQ_Ra(6@0-diY@Wk@7X#3|!roPQzth=&1Nb4%{yV@Q#$C+v3VZhhe1ce1 z{uscGy}S5RfHRe%Jud*if!ogH74}{ScnJ3cDt{N?Jf}Y&gY)-^e=LlfmOo z|EGa}@9dugUgzvT0Q}X`E_=KKc`ojPlULZQ0e=L4%G1DaIQ%H!CVYiY_pbzh*YVeC z@L6SD`%eRZGbfv{w;p^Cb4M!6guRQvA8`D0CHOZEzX6=z6_;1oy90cGC!X#Hf6>|h z82E4|Bl8M-Pl12Jo6RkM0em0FzpsPu;MDgnc%`%dWAGWc6;zM^5`4O||9kM8oces+ zo;AqnZy`8;r(Tcm4gQ|vAO2j`Y^Og%z>6LGJA;3oOCw<~0=`kr!GHX@pF*@j?N0+g z(}_Rcez?ME{{i5Oocfo5+n;2F35-8Df0st>rNK{h;)6Fe{^Z2hO7PF{r{z}z-|g5x z4ZN2Vzw5#8aq`JU;H#beSAxfQE1P+Ry&J$go%Y-TeyC&re(-^gza9hM=;V*5!10*> zoV^#oZ*j`M4lZBLW|6S>F8J+^UOomN>BRS!;J!1y--F-gj4!?r=$+^2s}P)zC6-s% z>kWRsNE~|K0|^yVIWgz+ZFx^%(edPXGP{{-QHKy##)+Ghe(3e!X-22jDwk47L6L0)NDb z$8W*cIr)yag+A%%wGf!UccjOcfsc3c(LnHtPJP3`H#z+s3;ww?UrhjSbK-MP@KUG$ z%oX=K#~%QGm{yPRKLq?6{AqjYfFE|^zZv{oXFNK=OC5X1gNK~)I|aOtlRwvizwNa5 zBJgV+yGkAeBzJCGV(;2UK!FQhCAu zcRKz13Vf&&Pg}tkIr_@OzFLg2yuw}ycz>rqxKZ8BCtvIb{-vYugTVbtvCe#y1Rvz+vkClL$Dc=mALjJ;Xz(MQ@m>Qy$MN5p z;QZY{d4;`SgY$P5m0u42oHO3ngCFJa+ri76`tJv~KM4vGVej|g7d!2F8vI&Ek1vBC z?!?#Mz^6I>{s(y1GCJ&i4t~F*zwf|5bo$3%Vp;CQOA+|Pj(+%MoEIH^4gx>c(IX$y zU+(mO9QYGX{+tNDr!&4&!52C9_=6JozJh&)y#?U%>~wAldxwI5?zE>K{B*~EE#Q|s z>-lBii=Fs60sJz@|EGfA?X+h-_$+5U>H9Ywe_Rc|)X~??;Io~0yc_&&C!T)?{=L(m zKZ3V8`Qdr+LPtNZgO@w;`yTkW)*I~qKf!xC@%uISSB`#v03YnEzj|P7k9Eeo7x;-z z|N4P{?2O+K@JpQbjt2kEDIWv>n=`&sz;Ac_KNEbM9sR{E6dmF+3>C}G*xcw?Q_y(Yz zZyY@rgZFXbzYq9_&Ug<7f6nRO2=F#19>;@!<FU*)v-5%5Qy@puwE;KbJp;NuN^R1gcDz9gP-fnR~LZya{PG( z_z6yaz5)C;$Nq1@*J*Rnz6V(zfAR{OSi8*0PtRiCUmbg|f;Tzw@iutEssAJJF;2ey z5`38xKbyhtaE=ec*A-5@gu!oi^4$*LKRNx~5u8sY)%NmtHa~TEHF(%5KNWhz%f8@E4qpg9-pOBwgJ0qB2Jm;Ccx(eNcKWjd{B0*bR)hcG%#WN~Uw7hh1NcqO z{BEx%U!2jUr{YCKM&V2I*_^yus-Ulys z^4(|P^PTwl5BN1s|9%30*@^E0jQyQX{k_2(oc;~~PdnpV1%9s6KgJG!+)MkP06*0k zpFP0WIec&M{hj!n4}ON@&n4i$bNo{a{*%-HrQlPX`a8hSb;kEN@HWRkCxdg1rR_Th zywuU_h2XC{$6pElk<*_W!OwEy^G@(RocMSMe5|AQKY$0c|x!@g+e-^R4lb?SDe!J72M)0E?f3<_B@TdJ*3A~Tf-V?$5I_1v* zzt)MT^T6+S;`1_aJ`zmrT?c-tqYqwN8R^9Lec)3Zy*&oL27h||pMXzw`uh_2Wsdzf z!7p|E{{i?qXT1LfzR-!6Z^0jM#*a@;yvgwwzV_|ygECrw8TjFjo(F>S=fHG7zPapG zILD6#=bA|OPXOmNH067OU*g2uZ16m%z5~FAJNpj-f5e%e>%a#){%Qta;KT=W^%6%< z$Aj}4k=B0-c$K41=7yN#zl*>haq{I=;1&4O<8K1K+!^n?z$1>H9tOY8$!AZ1f9=HQ zpTS$4_WT8Wy%Qhrg2x?ye*#|V=;JH!uN?nw1?OW>wS9Te>a))Hlz^Y(w66mEE63lJ z-~lJTb_V~(@pqKvo%q=ed@pCb`MFup@i*t5lbrq>1m4fdM@jGjPXC&~Z*%HD3j8OB z9}V8q8ILvK!=3h=2|m%$!>_>yJN~#FoX@9L|6C8Aa@x;pqgU!~%=h<$zweCC@4@>z zd!{yvxDwaQ5?B z%IS_jhJ(N1jQ=?B6^{RSZd2&AXDaw%PXFeBf8^A+0Q^5rdk+P_%9$VP!3R0<)B^sz zlV6sB?~6b6{|UesIr=*l{7gr`>%kW}<9RXoO^&^*!5h^a#_MMAL$Ib$`*(x$Cn%Kv z4m{8C*B`+TcjD`L@TpF`a4x>Z>ECeLtkHa(Ie9*YO!rn39?>PNi3(kjj=>D_7pK-?HeDDXHc=`?aMyEX+!9R8U za|igvj-DO>f8H6t$H6x_^*sar8>fA*fb-WrwLNcvhn@W&f`9D9#~0u~I`POK$~nPl zZvbPz)@cuaNazA59{K?DQR!MA=cd`vwDJ+)KRNmv4}OSK-z4zw@TcXc0S|V@dmr%J z@M3%p1dluYI}H3{CmvGZuQ=n=3O*lmgxX&YzR2m{DscHB5|#*ir-6@f{CzI?U`PL# zfPdrk=Nj;*;WK%Ky<5P0JMFs%{8Ies{zrhT9REBCKHu5T+{vHz)AD}>PdoYP@8Fvp zeSFIOPP~5uo@*}p^CS3sPXF^Ump<+AQt;gzfAk06;Pihe_dEUF1^jKt-*ND>QHQp7 zckr=JyzsN*jm~(^121yMe=+zRr~Vr7flmELf}iRfp9N1j`H9zl7diev34Cv-y=Q~( z<>aRez%O;;;|lP}>`=#_4Ym+D|$D4TIn9*yCs4m*)f%_I3n+*Wn|< zKXCF-HTVc^F4{jCe6Z7=y}-vi@< zJ>V;y`uW+{MyEedg5T(j?+f7lo%;U@zQHN~ckr%P&al}Olt=96b_cy&NA3Pn?@N0; z+gKLxy-;qfaNPsvfnT}%d4Jq?Zm=IWx4P0BH&?!lSW{bzTPmx;ryV#eF*&LrrXUW$ zCnT^4Zo?NK$MPm;d!&71Vc3btn>D7UWa9*Rn<#ISYt-YwV7q#}H)?Q4@Tf0$fH)id|tlgNk7qj+a)?Uoo zi>WJ+}0Pj_TtuF+}evzO2 zBh_lTODbwPCzhOAa&n2N<%n9&DJCZw)l5W16H(PfqS|KFO+p<-Q4vN|g%OouM0FU+#i1%OqEd{g79%RgsERSFVvMR7qbkOz ziZQBUjH(!;D#oaaF{)yWsu-g>aYa>(Q59oU#TZpFMpcYa6=PJz7*#PwRg6&;V^qZ$ zRWU|YgHhFBR5ch?4MtUiQPp5nH5gS5Mpc7R)nHUL7*!2MRfAF0U{p02RSiZ}gHhFB zR5ch?4MtUiQPp5nH5gS5Mpc7R)nHUL7*!2MRfAF0U{p02RSiZ}gHhFBR5ch?4MtUi zQPp5nH5gS5Mpc7R)nHUL7*!2MRfAF0U{p02RSiZ}gHhFBR5ch?4MtUiQPp5nH5gS5 zMpc7R)nHUL7*!2MRfAF0U{p02RSiZ}gHhFBR5ch?4MtUiQPp5nH5gS5Mpc7R)nHUL z7*!3%RD&_qU`#a_Qw_#cgE7@$Of?u&4aQW1G1Xv9H5gM3##Dnb)nH6D7*h?#RD&_q zU`#a_Qw_#cgE7@$Of?u&4aQW1G1Xv9H5gM3##Dnb)nH6D7*h?#RD&_qU`#a_Qw_#c zgE7@$Of?u&4aQW1G1Xv9H5gM3##Dnb)nH6D7*h?#RD&_qU`#a_Qw_#cgE7@$Of?u& z4aQW1G1Xv9H5gM3##Dnb)nH6D7*h?#RD&_qU`#a_Qw_#cgE7@$Of?u&4aQW1G1Xv9 zH5gM3##Dnb)nH6D7*h?#RD&_qU`#a_Qw_#cgE7@$Of?u&4aQW1G1Xv9H5gM3##Dnb z)nH6D7*h?#RD&_qU`#a_Qw_#dgK^bhTs0V14aQZ2an)d4H5gY7##MuH)nHsT7*`F( zRfBQWU|cmAR}IEhgK^bhTs0V14aQZ2an)d4H5gY7##MuH)nHsT7*`F(RfBQWU|cmA zR}IEhgK^bhTs0V14aQZ2an)d4H5gY7##MuH)nHsT7*`F(RfBQWU|cmAR}IEhgK^bh zTs0V14aQZ2an)d4H5gY7##MuH)nHsT7*`F(RfBQWU|cmAR}IEhgK^bhTs0V14aQZ2 zan)d4H5gY7##MuH)nHsT7*`F(RfBQWU|cmAR}IEhgK^bhTs0V14aQZ2an)d4H5gY7 z##MuH)nHsT7*`F(RfBQWU|cmAR}IEhgK^bhTs0V14JK5B3DsaiHJDHhCRBq7)nGz3 zm{1KSRD%iCU_v#RPz@$jg9+7OLN%CB4JK5B3DsaiHJDHhCRBq7)nGz3m{1KSRD%iC zU_v#RPz@$jg9+7OLN%CB4JK5B3DsaiHJDHhCRBq7)nGz3m{1KSRD%iCU_v#RPz@$j zg9+7OLN%CB4JK5B3DsaiHJDHhCRBq7)nGz3m{1KSRD%iCU_v#RPz@$jg9+7OLN%CB z4JK5B3DsaiHJDHhCRBq7)nGz3m{1KSRD%iCU_v#RPz@$jg9+7OLN%CB4JK5B3Dsai zHJDHhCRBq7)nGz3m@tx=wHL31%$jMhha^;(2^D5Sg_%%cCX6uUY9t?=RlU83lkk~7 zc(8AhPYdVMD|64v!Zp-(UPsN!4K&0t{PD$0>OQWe^Tm&2e0yD$m*RbU&6RKFi_CcE zC41lA_rQ-Es_Zpp;*oay5SFpm_D2!h>)d0B?KSb;i0$?Iy@>5+7jua1b>#ht?PpGh z5m(|LUN!jhSqWZk`16Mv=q)3z5_}BtFu|u04;OqkvHhTCBk@StehV=hi`S$0lV7#N zJ&eSo@ei*T@#pVip!XK>7{Q+qvvYX;gg<|rfnG5#OZ(#mM~JHh^Lt%>MDSeVsNf{A z9hjxWaoN6{I3aiq@dUx^h$jl>_d)$hg6|=oEckKaT?KzdOvm$uQ1GV+#8=xre|NzH zi1!dYl6X(SapI|hrx8yRyg%_?f)6F0F1U$!hTvtyGX<|Do+X&ydGz-dd^z!K!MqRK zXCUD9H1R%y`JF`V?>~t5mF@iAgs&e4;WJLHYZv1Eq|78@1{7X1iRTIC_x$|%f=?$t zK=1{`3k2Ume4yap5ib<{H1Q(Ae<40dFuyzJA1wIa#ES)wz~?vq62URzLj>sV{@7VY!2tJT_mEaoU)q>lIPZWF{@fyKr5U&+{5%Eca zuO~iP@ZH3x2BREF9 zPB6bq;;$DxkN8}{7ZPs}%zMlH^8~+5Y~zsMtMGp<+j+l&f4<-Yi7ya*1o4G}TZk_b zyps50!TfC5zeMnQ;!6czMtqrIe&@iyT=3n*zY+Wd@fCt!B)(GcJH%HB{*d@;!Mv~E zzeX_c>G7`>JfH~pI>8f&uNOR%c%$G0iEj{GLwuuP-mmZ9B=|Vun+2aie2d_Vh;J2q zJ@IXV?0i0>CX zjrak<^N1f5d^qt#f_Wdi|FGbd#J>}K3h^U?e@*9U@DSoZ2_8@UwBX%|pAoz-@w0-L5I-lF_jmh$ z7TihvykOo_?Y|&+J@Jcze?$C|;9H1a7W^RbD}tXQepT>m#IFhFz1IF;1oNI+|8>EB zPvE}_=CcC)Hv|tRepB!+#D5b!nfNWiydTarWO6yq5Uyf;SMq zFPQf&`yUAA{RRF%1V2jrpr3GkWFiMb%fi}#-T zVZob;dkQWr1uhZXkGPj$e(&73UxuGR+*`Ku9#Owc@IvBp!F9xa1ZRkM5WJeWui$mW z6@qy$r*CiWzLmJYY=4+|fMDLA=?@hA2Js-ln~4Vt4)+G$QSbm_o0CTo+nhXscqb_{ zgSb-g0^%Wpk02f@nD;&URf3Ntwz=qZV%weziEVqXBOWH@?;;*9_;KP9f?pvXDVX;m zYCFFqw(b0hc$AdsSq8kb;DN-p%{vp1mhBUXcM&|3c#Pl!iS3PqyeCj&wVimJlsS=j zyx?`j)^C>++xFZ{d?TX=_t_CwOZg{>d2)l-tHe>k?-R!a|C=~2*eeIN{VE|&$o4_R z69kVYo+x+{@g%{sh$jnPNW81yTH@UVw-Zkhd_3{)g3lzj57fArcu(2Bk$9@$dx)nA z=DorGUV>jFo-X(u;u(VfMLbjRR^nNLi~0cXEw~@?Y{4Ul=Ln7y?<06G;(Z0rC+0~Z zUP4VxB1D^&s&Pg8xKZBlvaVTEQO^*9qQ2Traq=FR=At1+n$vaAF&uG2)bz zpGMpucph=1;KPZV1TQ5{3qG3oNWte5^MoF+Ylv;Vza_TyK1yuseU7+U%D+k6BKQ;H zR>64{!1e(I<;3l>eF*VUg2xkQ1n*9q6}&HThu|f|oq`*QmkI79=7k5m))21{yq?(3 zcfTQCDcf%$K3edD#MTc_5g#Ml|3ZAM;7^E;6Z{>q^+}I@z}6>yh^>j`%{sZNwJ|K8E;W!KV;kBKSOFn=`K@wmI`Q;!CB>Q^Yopy+VAM zY=4jVa>1Vy|3>gu;yncy4gj|KwlA^Gw^hV8-&Pabe7ifb&A0my+q`-(@ocfVl=uq4 zR}fz*_-5j(1m915wcsa+uMzwb@wI~AA-+!VXT;YF-b}nvaQ;Bx8w5v)Zxp;c@lAsF zA--Ag!Nj)+t|zv0f0g(l!F=wE|FGbK!N9*0yaTb-?@;1LWIMkX?>{Pd3h`rt_aXkh;Kjt&w++PB z=N-h4OPLdiHwnIg_z!|_CVoQj{ltG1`~>lnf@d<~(9s*OkQf*jtI8mog6$zaaQYVr%DB z;umH6KZ$MozazFb^L7G$Ny?NFzbtqsVjFK`h+mQIlZjsyJd5}>!3PrmMQ{!A>w=dN z+rF_2@dr}oQ)1iZ?}_c0_80ZMQo3~gt%F@-$48y!S@n>EBFt@-wEDK{Jr4b!+65ajVqZLTt~| zk0G{m@oB`zNSOc#GEy z#0kM~6HgHQ8SzBHTZrw0(+YP6o-Erdh<6n{oOn0EG2$tLrxEWicpmW{f)6LQ52sv8 zJXN-@B<6?7c%4GLm*8I$PZxYO@eILt5YH6+2(i`Fv&6Gx`y0eoUmp`&eSJ&3x0J~n z4Q%yQPHgkZ5MrA*#uMAzvOBTOA^Q^BJhOz@=95NZn@>84XG>jci024iPrQ%dTZs1+ z{2=jM!A}wIC-^mD8_ypQ?=RcGBDN3v;{6EzeA(WM_yEC!i5Cdoh4?_hlZh7!-kW%l z;6=m-39ciyx$Y?9gJt^(#ES(NMSzzG?nk`Q45K%K_z>BSTanOy!Fv%OCinnid+g1` zhs*Zg5&uf?GsISdeTqC%~!EMB~vi&$>d!BLzah+_xh}hbH znYdoIzejA(Q@$il$@U+Kmr9-)83S&R?YKD%S{95On7k_91c4XvNV|O+%cSJk`NTs6 zCyCQizLoe$!N(CV6?`Ufv*1gJTLj-oY|q8+C$@d;fx7)xDTB-8x%+l-c`tY04zb?1 z!=dGKL;0c$h8A?;5q3MP=d3+-Rs4H*WpiJAq#K{&qpkKQ!QV6KAwjIOqcU`?!!li<~!)*LHzNxN#1h*CED;^ zXl&uo{oj?FfHHavjnLjJh%tTXKFG3L`z}TM-o*Nn?c>mD`}P9XV*tI2&|#Z)NOSuZ zIhfl&M?)$J>`QIT2dC|+cKeD4@SG7~*315By=h=Q2GHv@5zlu)oa#&W)nkKeZzJq2 z#5USvSgO5FU>?J|_*y#|@n316`Nw_yTV>z1+;vMl&&mONqzucQZ85j;bsx%25@`Oj zUcOGlpWD8zXy0sXWBc&2WUhUe0Ap<1@n&9Mz}^rgcxRn_@!fHQ*XIyCM+0jfwlRYp ztg94%l(WVPpjW@z^9JL3y1vvN+u@d*@gSaqqlNIU<;G8nPO5ZX_}(DyKA$|PdSYcI zzD-)~{GTvkLS^Lyd^aX;${$g5!pym|^cogT``%YMyX2)`@jt%*ZvKz*cEGQTl>7d7 zRpWa1s2a1nN7d*d`BkGL`BfvPK zqh8)zHRAovRl~mCTs1VbrK+;emZ~wKtyQB#Ti1--w54uce(43sPa96j_ky@lXU+9{ zd-wLmy_Ltj=54?YHyiScy*oc#?$@21AHD!>`EV7=_NewMAolVeJ-iKh&j`3Z?F8eWwl)wpiLX_@U8Nb z^1Irl?azPbhpG`@Z*B9Yrs0FlzvzRb;R8IdYD0bzd~oo8@xd4WOCP+m-9G)Y4@$RN z{(t9#${)oC-jX#V*Z#5(R>B8(5by>(EcVV1C;k^7R0g*lOSX$~_21**{|i2NbT)jj zrEYD0>6(!~`CBEgtSUD? zJEg*_8u#_qApFN%`}gK=KQZyOE-aG|e$&>v3-b$L=Z7`d|B>Umr7rYs-~t@8;p869{B}j&ws{R>jCu7-54i$!E8o{* ze&zcn%&}j3Rh7QC0SmWs{GsfYAacr@5o@;uN38vUzAMMvq4{Z((U;D#{tMc(3fmOWi#DgDx&|_r|4|#Rya}fPOU0&4{AF>@=>+rC7_6@%D zX+w`OzQLThrt-1;;IP&C!JVh&ui4qp4~~AU$C}Zrdjxlx)?>{seh;iQ3K}uj&s?xz z-U8G+@X$!hz(Zq^7W{VNoc#})Hh0d9Nj*}nf%U14D zSzS3|M5X<$KK^#K+qCXwX?)wlL%RC0J)g{*KXbvfg>&ZZ|MPxy?LvF&n&;x%E%P&N z_!-ug$~ycKW~#mtzZ_mU1V6T$smZKly+iD`Vd|6keas^BW4qc7G|l>8>>hNB-QMlj zdYu~ZQ@vOd&$ALQ5a3A>-XJx* zU=Hlp4{LNU5Hfq@n0fu1%_dVSP~hxI_dl6?3Y_Er(f=ZB3Wf6cORIUrfl$}(;0qPk zVpETsxm|vlO?LjuH#ZW_gWwJaZ>XTXf>7w%U>V>Y!rx{Cb$oq!dY;89Nd00uP*THx*4an>T1@ybFc;=Sls_{UFTOjm4u!}6vS@U&45-lLEQTe7Diw!*1~6iBgYhS&=C zGNe@YOgE&DkQs*b6Ef3~K|*F3QfZQySK#N(D|jH+hWSOrwhadqlC0{(R^=UNdSJiN zm3NR~2-YGx_)jQi`n8i7UFYZ37W9OBrNX*0VoU0Ku$Q)D4Ta^{V>{NkBYkly97cOZ zRoKHnYq%`LAL-h`j8j40(FF^@#QZV6i7h!+%)9EbySw6up4{$OAX?{$6%JoUu^$d>CGa z@mnn9;}UA?Fd?6qD5>}QevCtTM1}ds;jZY3N{xi!=1thugS+~noHr_zmkJbce}B@v z#(-&uWzB(NJ_R)-`YD*6{M$h312FWCrFR92_QKvz z1Mn$-PRXYB9>irK#;+NP>7dR?7Y(TIP7357 zjuDZ9rv&0J3Uar>^w}4J0sBRB3c%9W?;<8U^W2G3JmxO zRu;>?vjcr8nkHfA2x}L%PS^@z>jR}NsBe|9a|5Nvft@OBgVcA0u=C`&YlQt;*v-Pu z7j~Dh3xqu+>_TCigk2;Odd4ea2(fD8r2fKLx#9W3&r)9D4f-PQ@<9Gw*dT_k3=AZ( z?5aS&O<*g$A|_HoV`i{dL{C!;mJj|SZ%rUb-QuPo1kA;OVvdxMs{_TXQR*&4+?#{? z$!~go-M=qXhuQP(ZFu=EZ`>z!1}bcyRC| zkP%vq817fjYu19tl<$|r)qRf0;VFHN&f)#~oTa$nu)eY!!G^*Q`>#Nyd3WKTF;@6d z|Ft>%N&j`gfe>oNTY-5qrHXbQ{w?;Dg?_+)6aAs$1A+zpaZPwAemuH(K`_XrnzdOp zdiZ$k$>Z)G{8tuA;J-<@ivz`{AvQrP)&oam224qGj$x%e7kqRirJg-L2IzD}6vwD@{q zhl!Pq!j2GjgRpvGHwtSKc9XDXVK)mCeHY&%tV8zQDooT~e4DUiW#8?A@C#`5Dq(j7 ziVwj!oGR?MQu0h;cM4l4>@H#F3AC)gk37^USU@VyHD6P!tNKgQP=~*ZWi{S zu-k<_B=y}T>|xn=pRnJ_zK4W8BJ5FNj|M7^M~|Kq_L#8eh5cUGUxYm#7<4*Hz9Vdt zSb1OAAH+)^3421=7sCE1ZTU{vlft%|nY8#RDQTY!Q2Zw`S|HPI@za4p=cC53rO!y= zQcItevFK;%b3zAM`e&)9($eQ;FQz^OvRC|q&{3AYD0GaauL`ZU^mUA!@ovh;JIYc2gk=&6=| zDTA`k(ys!ATxVWr>DN;DQcJ%PdWEImOU}8*(#=9QTDmpRw+`O8+0q|m@9mcQL9;fw z%hI6G`z*~D`jDkPgC>DJYH7bi< z68fg4V}mALykqJ3;EuNh2U{5dqb zEc7z|n~qc$pByY`!^fXe{M2q80dqQXda#7kxb4UpQjP7%nb!AWgHQ^mV~f+O$nyAFR9&9T_IaofkB+8e^s4}B`9SZ`);uGKL|4d*Y4_u%-J zg*x#c{p0CpaU@jm5k7mDgJL09YGBTwCqiz7P6(OAV3oh*_Z`JkUu4VvZbV17aUJ&IZJOa-0o_ z{X+wPsLln%0imAk>{O}mz);zgu7Fr1HQ0bSI8?9~_Q}tX6fX%Cy;OxCk+BKw&`|k4 zF!8*lhld920s69~M@Sd{Vrh-E=S@v_>zm1!bXM<9{Bx zXnS)qd0Dzs_mbZZ)z)3kNnnzlaFhY8#^?c7lL(de9Q+J?{$e;a}8Ip$pFyih66 zE^KsM5E@d78-i?fTpa5E9LB&#$0fpSy0|=4+=dac(eWGc@fh*oRiW}nAs`za*M`jM z+s4Cn!fXUwFU*elMq%^C%8enDFBc2DB~-QpT4sfQd&sODj*xwKg!&D^J}dO!3Tv|7 zjST-g{8twG82^n=2NgdUDq!l7gCFkZQ!vM;zw74HM?w`m%=+}vP{jaPus(e(R51d~ z4)^av6%5yYwh6Jp%qKG0#s~9ML~vqo1MCT&^uh_;FLMU!G}8daHo9A+1@xfcS2sY)Y;zb;1=iD4zt}{EiNcJru0@g z(p&{CI(9H81xt<_%sIh+#87m6@MIM0!LkLRqVw|J1whAfDdPN{n4tw5)iwVtUPB&Y+g89n1+vu8J3(WQbggE;`u|xfWe?iXn3Ox#(0w2d~=h&iQI7F_4_Z(L^8bq#x_Z(la5jBnx zYt@ESdqv#FBkUEOve0i#bGg|xs3bmk3U-?YO)Z&Fz(s&DQ8Ll!){;qP5)s#yOg2PZ zTe7QJH%L=UcJ0sO#kD0<3znd(;@XmFrBOIbI#Dv+T+*nNdS=M=4Iwj)=}AIn88QW4 ze;bjCJ$z9C`jfCGXwD$Y1?=Q%KD zEQd=L6&#^!3ok557tX<4Bh6nbW6^tgqgT@G*4|l`GwRE9t=_1$C#bQZ1aET$Mwt<%h z`9q-LDJ8!tJObaMlpkX+E(;E$m3%S9N zNwz6B2H%yY+)~IN!<8bpxxTvHZOR>PQ-13<l4pY_q8Q3QU-)XS{EKe+m%5dIIrv+a?^E(x;aFUV7q7qWmjA11kB#^@ z46y<5ril}q7yf4UXk5J&e2-?UOWrNKDQEWYuG#m^!Pe{tW{)-d4`a!i{m^*OCjO5M zk(smPV^eIDwD=Q4?74HvKZBD|DQf?$aOa`gsn6Zozc6uSYyZ-%{oiiwU%9n^?biN{ zTl;^y)&6bpUe-RQ*1SYLc;QeN&YM;@Qur5@m^Bsn?|ekB0qQ*trwK^^b5*EjNVS`FbD*Qq&{iO;0yBQcDmD=VF^vyYfB>R#*R1S*ulkPoA+@tHbES74>6gL7#m zNd-@YD!2kSi*lV5UdJwJ!_I#2L=g0B7r$_~VcLeV-P$m&ThGS(W>r#PEmZr#9yo4L zs3hta*5oY2tp!^u;Rk24RJdfKUwAdp&};^??_^(c;L!SPhgY(z45IDpZc?k(GsO?K z(n4v;9)96hxq7C`G1hm}y0vsK*=M~qUG{}-i)Q%2+hJw!;*wc@;RKu$j>vSjdL^^{ z^7ApRAzLFX=lFf!&yjuoK5=Z8J#+mXIOz%5&+o%|OUV9yf6g{S=J^Ad?}g0w`!nMT zIl%A7oFwExe*iOykcIw03R}n`e*kqR7a^?uMBuB6c) zG9O;Vst_O1mNfYVJkOShKGN?^2V1t(Hz(wBZd=mqn-g+5w=HQAc7z<)>YJ;L^}^cx z@{6#xXcE@$n~R~%!ZN;Dg|!RI`b9jC=ztQYqu!BhQm@7megbcBX?6!L%LI3nUWDC2 zmMPwIWH~mPE=(;R7%JuGnZ{)CV7cUE*^a^_P>Xkx3qlfR#g%de#-1q;5oT9;Lqj_b z!$k#qrd$>3#dBbL`C(W{GNRNsGE^}dCC3QcMM_o+8!H!t?AoHZ+1yc!C^h&{{C-p~-$_E12~VQUIG_eX^Sj>maG{ z`QknOg0t}5O%z9qr~2k9lV$t(MVDcht#F=SbSIdtaG@|;;S#^-Iqb6))?pd}vqO^h zi@pJ~)gz9`>=mIEQnFHNKi)6ufe#Xf30o`sMhQF3FB^h=cJR*e!&AZR;H~$=hk(VU z?8iE$m9a=mD^~!mjd*Uk95n>}uJ! zP}nuX77M%HFZv!OMSI0J_(eO8^}Hiw-|c?UY_NJ^_xeTa!J33U?iW1>)-3E#e$kI$ z?ZRI5i=yLl7m(lfi;f0cA^Se_i*5irR@irb_*t-3!nO)qE36<;^cnV@I+QuNxHwQ0 z9FLzxmwi2jtrJ!jDDH=S=Ly>(P&5wgLSg*_#nZtq6*eSLyaMbBVIu?K3&5@sHYQMf z57CbNphvN_k^wHec%oauvs2ywHup2+o&7wt!jvR}k)K$IN-%3D*~QamxoBaE+mgdj zsPc?oDrt6f{mUI_8lx?`&s4cT4N+iHrD^i^tGs|EDZcHN?5fS6?N|92O;E97qN|=R z)crvCB!uFX)b%eP^M6$LB-&v{*w#*0jqZ4@LP-;cOdH!C!b@mq+HEw+)FCS32QD(Y z7s+tG#QjVray+GmqrSq{zFZzKm6$!)SO{FnY$8Q%%Suqbu9j*|L=Wg0$Vv^nbFr>m-x=fE|rgC=MW^kYBK(G*2%0f?IfmaryMXW^;U`31z-jHA}S>|~~JU8Qg z1D2PCUc?ba*J2C*a$9+=UzT_$1cyJ2J$X0bpJ{VJ@v30KM_{(i@)5mdCkFd*R|wVf z05S1Kupd8pFAMz(o615L!4tBhf2emKtUAqgRW4Lb^`lTEVJ3pxaqX`xv;b@6vJlk* z_pvl@W;hUFG#8R51gx!&(6A%0(KNBNxHD96J(x6cd8p_i5X)A`XI&xLw=!hb?$*gi zhj#isN`}2k9$==l3QEQdBsDs!gm~EKJ{9EpXED^W!d2RyDYC9&R__xzuod7w*1YO58Y*{DZkP3sxiD69$bHo z<->NO&V%c(uzdIsriH+I^QZ~WA7y+PSU-1M+Vgidr$&MGhauCWsiV#3wt@AFh3;Z5 zOa#_1L|o#R>rrc-ITxZl^g*$L`CS#yL&V5yUlbkJ?)g*7=#;?v`5v4lFR{E|FZv*` zel|Th8mpJG(2*!v#GA!gj|r|`UXP=I`6%w;CFRAzl7S_?{jwgV$aH~WSo!UNP3UM} zFIci`@ovSFi|3Rhn(dwfG&bRJOOFxeE#H>QlX3+WesQrJ#-9c%?Agsqk?+qb=l0?u zICy+9!mPYo`JQh1N!VY~3oSB_TwtB0<$kclwci`%3$&FiU&it*T5gKwbu|SS!MZv$ zDG%Q+*}>z}QTy)TkL)k4!WRyCXusT{=oDMq-yUlE$XW(;+W=bwa}BeH46^;Qbg*@c zr8~OEd)`jvXxbFCrIKx7jYHznSX1Mk{kd-_j$v2LCN`p~+XggZSWh&cdxnp|@Q!eI zz}%6jqGsbI+6va2u61q=kM8H9Y;qoR;Knle=pO{F?o(t z14yG|-DycsvWmyllBq|UcfeO6<{+Lp?_u^OE zf*zmY);E6oTyK0+TT5zuZF5aJn;MTV?Tt4NUK!ii+BvqP zt*yDPsV3bzzCME+)?`mCI<~WQX=~f^*0HJPhVkjvy5`RM)cBT~x+Xr|<$qv~4QQ;Z z+pgKkH#v@yF9kE0oYz0Pw%WcOnW>R<_4mJZex795bltgKK|4@h;L5aHNWP5W>2fn4*f_)h6 zx@LKAZ^JG_P`x2~6!M+yY-{DieNfzP5rm2`EWntJOgZy>A8-avp6|(nxq>77ypmuL z8P(70jf>=b4+aB#$8G+8k03wwCk*8f61m-m@0eRuAgIUxgCk8F{#SKw=g2^=WnHc9 z>WghHDl7ai?fxIy$Sdk${TLLZdBemTd1aR8i+{WK@qb#&C>$Q>5j>8LN8d0;)_RX% zvDsEGwc4@l70feR`&nKtZM3YXZE-K#QtKi_z_vck>#4mfw)NrGVq-Zk*kRs#1bbO7 zQG_SO86LEC+1P+LWdF8xme}(7!H_wQAK9>vCJtpEI5Hn%J=K~`x3y*=v6}j1x}~Nu zMHQwpnPfVftVwostn^yjI?@d*lc{A8VX`6Jn$9+*>b+z(n?5>~?C|Vcmw{v^RoCGq zlaOi+ej~8MYii4OB(u%wx>T|~-BH(seamW^J5zYiHhAsn6{+SVt$0vpvL)5xWtX)i z>)P5^dP`H8)>N|xi#7EgzDeDHA00HM@RjQp{`ep^G}~tLVBOr=$}8}uJ4qz#Rv1b0 zfn6r4cr7(6P_i}KQG*WEWE!(xa(O1*k@ApEVo@|WX;hAuB-8cibh;s(%6LsRa7d;R z4eY2f5C2NmWa~Q8EvaN}X9F6wtfM*A>e+9srzzrX#&9g*K&IVJO{G+!d87uws?8){nGoALCpWM^w5VhuWxY&Gq{zGOC4=OGWm@6Bj=D%qGx*C&@ZCL20i>pZDAxeSBV zmPsy8*LO7GYy0SY^MrVf?UVKaomqxfAX1ohJw!r%TgD88rdoK)YcXADXh>y}HO=Y9 zR`V1yXH<^rOkvPvOpP1qB#aI(ZJlrn z4q>pdjWSI1b|>4=jz+UYGC6<2%!Lb=Bxfz!e>xv7kW5Ml#_E#{IpbpEGzm=3P&FN% zsVmunsZax?t)U^C>hRj}oHxY3G<5zvJZoXvg1wUqm&~7;+<)HwGuaYW-q2iw2+pLA zGDB;6)l}2mkZfSPS{u@h=tw5T;K+1nc-C~TFhS5^w2#>6272GN$c# z>>VY((uizAycQ*z+gcmpf((<6h>9JyPgC$ZGU>)fwA2oQJ9~TGM?cw$C+9&kEwvfw z(`tmqD;exol8lEsEY{#AlZVnR?Va!$+r^;bGG!^_fj@ehNw&3%-=wgq+r(D3v%S47 z(~&g+(iMN6WKP6gb8SuC(j+nsWNQL3mp+UUr!l#aGGXcFP6=SsOon2*1MY3E_p)uB z)VX*H-Nil)W@b{GBfDy7%d9l{1Hx<73}4q$e^gh3&o-ei#(O6DAgMsuS(BSp2+UA) zorIvt+BNtNhe@WkMzq5w@m7X=Gu&H`mbGQ-vq|R-^CA1O5!i%ZYC(S6_ROBw>Bb3@ria<_&IHs`O9QqjK6&{N;i+1 z>4?TmfHX{(^T*iiXYhR2`MY z>B3C2{H>S%DHa*T(28wQePKX$4QmY9_ZsAgPoC#|NOuY}+N#Z9nN_}t20XC^^Iul-bX4+mQ!3rq)M1+2 zl5S5nL%z*OjffU{1Yy)|e33WWYwFTiCw0#|c9LXy)Y&cLa}G_nTFGvA9%cf!GBS%P zvz}q~Tmq=Xf;Io^+bovJH6>RZ%lG_h&Wdi6rbO7J2$EhzFWhm)?2V3_WkA-fjgX%ZmMNLEoaF)6c<_#uBvwOM05u`vVAHsU zMme||4%RE2Ixwt8#!OmE)2UxdS|&9aap=NQjuY)zdq@{qudWj*ueGCjr35IJY*@)H zM>=F9x<4POo0p9zWMp8}F5fR%q)S~;pJ@^nbT}igDDMCt6-A?s2|%njX5l?QIxsTsLP$@*dDuX zm-UeurwMU{3maue+ejD!V^+ax+-l95=XlDTZY-F5gMwzI13x2MCfgHP%nw)!E|0zGQaLrg2o_}TSfeX6~qNoq6G zxfy?+fhA>Sn8nn=)0pJkdDHhzE|@ue(Sif#95gez&>FOPN>YnmTw*$HZL>@4tjS3A zNu0Pec{R&w(#4Ezghp-mG~UXUe{wJ8sSeML7;^@QB*YcIvY7tEt$4J~kvQAZWu7iuSOq-9QyR{+ zMy>ddMQk;WM4K`Ah{~KF_&wN?o~tsuO)qw`Yb!?JijW)AN}Ltb3X3 z8>XoYLw45A^+g$N6Ot>S-6$7Kr1{rQksfb)rSw2%TryJ^#*ev2$1G_krYEKsu#<4! z0w4*UDr2>yZia;9{A#nNVQ<&C&`~*Sauu%0>?!kcYrr0gvnXU{f*bdV_2x)-^kU9t z&~)0c%mPh$Ouah&unfp3vBX-O)mb!V9I2o;!{=-A*tI_$Pko9D&!r)Gwm1fpix+z@1<=wA*(!QJ;&T7@TN<8LpvAFw79I!$(F~)l@3A@WfCI1 z4)b{(=1!f>8vqPdTuL%0hZ>N6#D=-k9x+6lOL&qwl*{n!rk%AllZTyt%Sbl0W?tQN zLIU=Rd}6xnSiV`?|D>W$pfokoMAb2Chb91DY0{=H@}Jt4rT!; zQ#WQ(i>dvj8MvnGZO{eGsY6fyC--Ictn21-Amt*-q(*r%IT_BSc$w8BE=6Ls0TVOK zW^pHCYSq-opXFq`8r*APb+w_>zzRqGocYzZ4L9yRM~^xL4*?xxZ}i!bV-{fUg0X&C ziw0OXr)HjsJQJR#G07qn(Vdtzj1-OLOuX@EeE)+>Y}ZNcI)o0a7)dj85!-`1OT(uB z<)mkF-5ktZW=}>m%`=m0dn0b=d0hEItB^=c^_4bjCsuZ1#75IFJwtCXXI{OB`2^S2 z?5NH)FVhxnhvZdGs+no3z_dTeD%^Bp62ZEX_?LTZ_CDyLX5v-?%Z5zt51kBGoSX~t zhX%-j!CgJIQ6aY=vQV9UH-IaT8}EADTAH<3v@%8HT!(=MEu2_oACLjyw&dQc2Na=+vh zmXo}Oaexyf+_X1CMtr|lPf>|P1+IQnRJNWQ%(ZTUPQS)wYw8yOad9$bVuf>I(QV&&CTRpvh?TN|6 zj9FBZX7ry?GdG!t_Lvs!F?IAIgBx`!=GKH!z*sYHaCkO*9r5K3){YSkH;a3`RhNFn zo%plW@Y>J9v`v>zogW`D_x5HPm342XbgXhj#ys<$g3gI?BZGEgZr<#gwglZCT)oLB z&1M6#>(R4jV6g-5X`o5i(f1FRXwSuzg^jh8rGf1V;`Z7_Xc> z15;==XtZ1`@}eAn7F1?|rgG|RX=dz<>_UvWf3p`HO`H*9->S;=Y>o{FnkDas0Z7Kl zDOfIZ#!oY!Lw~Ky(=r|5`&o4-&90UOWu&Ta(V()WOUm4tPewOy-{{LOk_jqPBv};$ zy3^G^Eab}syP?3Q-?O8#SrM$`EfN+BIq26+nrecAp-+tuM(_nIv8XW#5w};+_r!4L zU}kvetg9DPWzC??m2=)$U@tP2ceUtF`BtLLM$m6z?6>z%4O3Y=?3&w5GpL(x0r#Jk z<3{ie2Xnc2JB*b|fqO3|*c1?RX_gEZ*_R!2thicwe zu<6NKfGLbgmTSZA8$L%4965Rf2XHeJY`k8sGY^c^%ntSZhxs;FUXZ7Bpr(mBh2`R{ zrz4SRvT{!5c1dEq(O7SqC~kCW&2&%Ji`lqkdShzO%&qp+N=;vDdi>0Yi!sKGlluN8 zXB-U|OlC`bOO)rv;n=J-OX%vn5P`-!aZ}?QknKojR;JMOJ$=IlBjkxP*^{BpyfG$o zYMq)-#qvDH7CV(Tr#hn!qf?_$)^4fc+S`U^T156*xXBB{74H_zsdMry3v`Wdr)1FA zq?}2SDF(VOMuPV2W@dvaqj?Vibz|Pp!88mxV2uy=MewzKCdd88L%zO0hqsS#bCbDw zVrVrw(T3YNq&5kkd@{Wi=0la7^4B)>GIBpJ17Id!v_$XV!GrgUcEOm}RR%nMRMhi+ z$L4$Zg?9XIS(>B`(8g}Gj^OYRdxo-GV4@`t=S zX8fMdZ&`#QIc5w^%&n-Lg%_Cqu<^q?x`n*2eplw- zp!sM|gC)pMBsp6!>%(P1e9oxI+0PI9>`CK8x^|QO_~d0HJwl~Desq=|?`WRq7Mw%` zfAJY4li!2Re&)X;OSj0Jw9P+DkImA@X6cPtdS{llKi6qW#QaC#LtU~-e)cE*U=lqs zYyYM!y(>$%&0GdKesq>THcL;=(luFnOP1c9rMuwsWN!J7&C=7e^xQ1HAWLt}((;^r z<{;;j!pGHQ6Fogk*JtSkS$biXzA#I#$kJ=F^oA_m0-u9(%QGZP&&|?nvh?~ay)jEa zo26gQ(%Z81&MdtvOBb5Yi?hU1e=V|f+blgIOOMXdW3%++ERCP^u$$z!HA`>H(%ZB2 zhgo`OmNq{uXL6AA@paKg`L)Q>ZL@TjEZsdzS7hnFS$as89-gH~XX$!JYf1SxnEBN~ zu?8DX%oxlE;bfQ9_)xL41@UMI_9t%ojr-T;X207%nvct8(vbe~!i<*sT$QEQW@)!S z<%i%ir)T@y*R%Y0IJzI$eAmF(B!Bq@4;pOybo$Q&VI9C-W)uI8&i=u$kF|U8u~T!t z-JSickL><>Y1aO$v-G+w?e_1(kzPZ6N`Cey@3BY9@Am&AVO@a#vWb6gR{!me4`bli za6QDoOO}5{md+k8R%Gp8ou$`j>Fn_ZkKMDIoKN<6Q{p+&y#w?vZUhT-*pFMt+WsNuPcy=txzgbV;wx_;X{sXdf_IS1~YyX2;`q?bK zHA{b+rL)Jwj#=Z8J3dyS?7OncKP1b4M3&AT-*#l}|29j9vc?y8Je-ES+h*cNu75?A zzdK&eg8zUl|A|@ta~)j=|M6M=7drb-!u|`h_GgbzHO_c)I{epX`7dzxpN0MI{O>&I z;TeD5y9nCt-J0`-j`1k9FGjdT4jPcOSGH zuMb1J@%cEkJ3reD?atqxgLdQPC1^K3UW2Z8+QU|8cRuzGwA)@kfOgyGC(!PEXD9S} z=lXpG?ar6Jhj!b`FVJp#K$q*e^E-T;+jHkb`OxnCra81b-{7@!=PRwC-TB1c&kWdQhi@Xu7WVj4824rd?XYQUn_4vNKd#a7zQ>=g zcE|hKjrJFK3!!h#)MwaR3_U8-pM<^hp{Hcpci3A7eGtFoYql_+AdW9ZnTMv(5caNv ze%{eHL;vKYcL(%0&E;tNZ-ADED9Q1UKrn3g50)oezD0N~Fi1 zrB6EN*BW}fAKg zdppr)H;59j!kp^KgKITQL-C;#)ImpJX~Qs^&GXR?L8E1^rB^Sc4M z(rLf9L4WG>C-*?V;_QDIdOp8bV>ZM;^ykj?d>;Byr~I!%&vokSE$H8z{@?@X2c7&r zgAO?H^)>WZC;y+Jn>fb@aBUVk{`t@i^C`qX^zTmp)Eau5(|>h$gxt_;Ehu!#xKG;d`WawWU zeJ1o%PW_(`{gD%&mqN2m$QJhaGg?iY{$LIC)z0{G2lW0n-Sgo%Z-I=+4ggv=jP8Cmz0o&U23c4SFx9{o*G|z2;7T8G(M;>0eqw ze~x4Hd^J&`X^2=UnCr=lb@C-t3(3Fz6$k{iC?wY0u-Kr#k0f1^s|?{PEDo zYH@J=>!8cF?7U9Zzc2ur@gO+p5fHztnAPpE$=K1}(p_#T+p| zgMQl?e~yEm@AMZ_p$9s84t12ratnJ4plhA};0)-LQ=jKUpN{{sh0X5(U*lYF#@9haT>ne;WE-r~MuXeV)^w z9SoiCl!t4Xlbq{20r~}}Kb!x>^Wp$9nSt%n}sl;>3FXPo-OPdvpclyyezc}<^ zj{knppF8zG7<#sIeMUeZ=^Q@}`U|K2{|bGg(|)Ewf9bTBxzMlRoMa1oCqWlD*XK;= zW1Q=E0rb;O`&t1VaoYbi&@VdvH$yjxHl%+S^gze|LFjgf3E9Hl6VL;k{GW&J>(u9K z&_z!Fv<>=BJsj8LBj^X6^ZPe+!xr{_fbQy~$1l`xaoP)iH?Y>ZKE==%IoG!hbi%3M zj?gol@vH~*aZbGPw+7j#%NF(yg65n;^>FB9v_T&MJ>03kqoJ>L+IKbd8&3P+qtjIPL9r=p&r+@F_lrJLx?N z{j=l$H|Qsvc=|i^dro<`LT_@e$NSKeo%Zz^^b)6jzk!ZA^|u>(rc+-zNPC@=UNh*o zoar`^o_c)-K=1A7L!hgi`WXZLp1R|F zkAZ&LX)lwZA9VCA=q1j0cp~(7jy@f_k5j&Lq0eyYV;OYH@xKy!jMG2e2;I)9?{(0( zJLA`V(5wSJzsJBgI`#Jq^j0VRm!W@j>hGV>cRBI(0d!|)|L4$GIq~x?H2WCM?^o!a zPJh<~eMz0uewsu7V+q=-mI_L8V^gd2{yP(rf zJpBY+7JwtB16ULw%>PWr8&E1df30DYyie_!aOPCTce`#bg1 zANnGvJq?3C*f~GWz0YvUGamXer@d7{k8|=n9=hTEQQZGSw{WiiLg*<@eVqk;i?jb? z=)0Wux)QqH$!|6EG$%f9g}&8kPxnB#aN5fw^hce_7WOtnf9%BTi_o_?@$v@rb54Ku z9`qqj{j={{>Xhdz=nYQ$_!;^rr@n(YmouIIxDdLJQ~tf6-*d{lH}o#&`gDfQajs7V z^kC<@Rwqp{G>IO!b+JpuohmV(`A$6C30>>d#{1!4*Gh{4&(i+ z&`q7|_cnAtM}G+Yp>sZ8Kp*Mo@1c{<_4*yUhZ7IEXgl9H?WG9%aHl=B20!G)V>$F^ z&hg!$rn@q-zw;Lob<1Ue&1}8A9K4zH@$Dd)_PB zkbX<(C!GEJKreLC?*cu~iKjU9i+VWDXFup#=Xwr?zSik4MnKC$%z04Q8wY*8Q$K%& zE=8GT3wzU`-*Vz{F7yjdeV+t=n-bG@I3zS4=O*PuH&N zztjG?R(>@8t3SEBbG@sfGu4Uuu7N(viSK#PUpn=38gwV8e?JF$wWF6ppX;0-*YdA- z+S?7#w>$B2JM?lV9yUN9>YNYXyDD+&<8RO@r+j~h{>|CH75XHne%^;({|1oRH){P&0E55wv8 z;d`Aar@lr)?{doj7ifM4Lj5bDUvRGHbm+sK>wg0DLMQ)|p;tTkFNVI|IsQWEx1IKT z8T2(yyk84_wNu_(pwD#TYd!Q%r+<0~I^yL2B=iKQzS&ov?Zn6H&@G+z^bYhAM}G{> zI@R<465J}&fWzL8&;?F;e8h6ZxqkW3ZJhC@1o|uIeA`0vGa#Bi=MLXF?Xf5Hzn%R0 zK*yc)9RQu{w9iAJW11Y=%NS_RIW_%bpf@0w6r#@yuABr}q{wG4Go%V1#G}laY z|GCgH=lU#z=I`<8{wtv`ajwUW(5rMe%C`>skxT;*d-p-#>a?fFpgAYh^qzrU<6MuI zp$9nS`zQ2s&hZ~W%a4vQg|Hb*S2*?mE%v|W^f$jk|I10Q34EV)>c2U3fivGIgC1c^ z$MoAnpX|hYH|PyWQ?{^|gywsQst1Z?+oa_ zI_;+x`T?hZIR*Mu=lU&yE^zi=1U=2k|8nSWo%X}`rXF_UX)W}NPQ2a??K}PtLoagb z>nZ4l&G(*zc0d30cj&8~{I^2yaL(s_=!>26{|tJy6JOszpYF7e-O$aQ`p-dK2b}(= z8T8?fE`{#w)K3)p5a)clLc5<&>jmw8-YpI7eqL>V=!Wsz_Xa{g<6N(XYtLHA1hT23 zAbya}-GW}GA=v#z-guf$VYWtP4tOF!vqr14Ug{zsO6$JNO1 z`z+lob8VzNF;^q~l&f+4NLOS37*}Ke(KdZ^z8*Tx><5JO98nR)7v=u&kjkFDd-q9r zJx2_#;7gn@MkYxqzNGomn=gI%(w8s&_!5^x%rS9uP~039H;2V}9IdpGnFLc{0z5v> z1I=;fFmqI#PH}q0=@zG7f_@36lweW`rkMdo@H*L>1ZPQEJ^wN3>Ygrc z!tn}Cxgk_E%|23TApEUqCI*BFayki|91;u>agjkCB0 zT3jP7uAvs!Sc_}0#WmXE8g6lox3~seTq7>7As5$}i)+xuHR|GhwE1b=#WnEa8hLRI zy|~6+T!SyJ(HGb7i);MFH2~upfpHDNxW-^ygD|d97}qe2YaGTk5aSw&aSg?|#$sH9 zF`*O4aS59 zV?u*5p~0BYU`%K*CNvlm8jJ~z!Gy+OLSrzYF__R8OlS-yGzJqIg9(kngvMY(V=$pH zn9vwZXbdJa1``^C35~&o#$ZBYFrhJ+&=^c;3??)N6B>gFjlqP*U_xUsp)r`y7))pk zCNu^U8iNUq!Gy+OLSrzYF__R8OlS-yGzJqIg9(kngvMY(V=$pHn9vwZXbdJa1``^C z35~&o#$ZBYFrhJ+&=^c;3??)N6B>gFjlqP*U_xUsp)r`y7))pkCNu^U8iNUq!Gy+O zLSrzYF__R8OlS-yGzJqIg9(kngvMY(V=$pHnA8|dY78bd29p|tNsYmz#$ZxoFsU(^ z)EG=^3??-OlNy6bjlrbGU{Yf+sWF(;7))vmCN&0=8iPrV!KB7uQe!ZwF__dCOlk}! zH3pL!gGr6Sq{d)UV=$>PnA8|dY78bd29p|tNsYmz#$ZxoFsU(^)EG=^3??-OlNy6b zjlrbGU{Yf+sWF(;7))vmCN&0=8iPrV!KB7uQe!ZwF__dCOlk}!H3pL!gGr6Sq{d)U zV=$>PnA8|dY78bd29p|tNsYmz#$ZxoFsU(^)EG=^3??-OlNy6bjlrbGU{Yf+sWF(; z7))vmCN&0=8iPrV!KB7uQe!ZwF__dCOlk}!H3pL!gGr6Sq{d)UV=$>PnA8|dY78bd z29p|tDUHFD#$ZZgFr_h=(ilu>45l;&QyPOQjlq=0U`k^!r7@V&7))slrZfgq8iOf~ z!IZ{eN@FmkF__XAOlb_JGzL=|gDH){l*V96V=$#Ln9>+bX$+<`22&b?DUHFD#$ZZg zFr_h=(ilu>45l;&QyPOQjlq=0U`k^!r7@V&7))slrZfgq8iOf~!IZ{eN@FmkF__XA zOlb_JGzL=|gDH){l*V96V=$#Ln9>+bX$+<`22&b?DUHFD#$ZZgFr_h=(ilu>45l;& zQyPOQjlq=0U`k^!r7@V&7))slrZfgq8iOf~!IZ{eN@FmkF__XAOlb_JGzL=|gDH){ zl*V96V=$#Ln9>+bX$+<`22&b?DUHFD#$ZZgFr_h=))-7{45l>((;9((;9((;9OV5T)N(;Ap*4a~F#W?BO? zt%2D)6HpqVX%nG?25|*u&`|R_h>I|ThT5f=w253<+vKC8EB^4KCGwcJDU;^$r?DD8 zh1}VNXRqQRw|t8AOnsU%k1!9=telP?dEhgQvwnCCPYBHX49`?~&frx0djWq;dEV@X zv>SfaiN84}5B8PEa^kt3=I1l&X5tBc_2%L4cm_FsEJYpw%180yCw?mV(_;L!ip*oL z&6D#+kE*U2gX8cJy3vvjmf_7aQc4HN8ztkRlQd#G7XQosYS6IS7r|6KQ2fbizYttn zi5F~SwJ!yiO~eZ}vfBAxVX1vTmaO)x!DUr=!A4g5YH;x&$(OA5wcyghVkfJ89k^@~ zUa*nX{vf!8{b2V-a9K58u#wg0b#UoqTJfGJ{;Pc}xNHiocyA8>)xHf}GE~YyR{IXH z=Cu=CHWe?}$m$cqTOFnLgF{9n3D&%Jfy?H} zv1Ik(^NmVR6gye%h2XOJVkfJe?>lNn4+a6i%>%rRg$ZFpJE<0V)A*+28 zSg+A$`YaM3vifWTYuh8MeLMZn5P!1TKLl%gAgg^BSo8W8Ty~}$OIDvkbO+k@$ZC&( z%NC12S?w*rnipB^d}fa36$O_qkz>i~!_TReo+Wm&+AHXPw%EyP=jXb$?UB{qm;UF7 zKUwV@KDF(U)jk}oZI7(>8nCuKvfAf@%g&Yb$!cE#*0x7h`)aVZJ+j)@fXmL4bjWI7 zM}OP)$ZB6t|MSJ4to99HZF^+3Zv<=GBddKAxa~lSA(_fk=4EqtZk31_VwVh%OoAL+8?C9ZF^+3Z>0a_;!jrl zCa|_WvfBAv3T=C2wQm8Jt(0`gYTpXhYqX6%tHg(_K75Xwwmq`if298v;!jrlZm_lo zvfBAPEzPSCTy~`#OI9B~!$jL2S?yiuf0g)?)!rSfd6Cu5=UZrAeZgf{%duqj83Hc7 zM(kv@52ydNVkfJ81pRH>BddKh{jU>$vfBBK3~hU4wNC_V+as%;-yhMoM^^iT;Ih?{ zK3VPCz}oi6YTp6YwntX`PH@@vk`7tz-_qZn%8h} z*)4J`S$!sgOL>!ojjZ;`^uJZ?WVKHRYhGlv&jo8<_29DG_KfaWVO$w|6SrwRy&_XSh`;9WVJ7(|J`CIt9=o;T}f zS?vdai${u`toE_UGIEd2mwd1A1~Ol;eTe@>_Zjp?loVy}1jYVu~WzfOKyID{B4`kU}vvaN>&*a1Zjk!uylo6COm~E_?|2ec{8&9|#{y{+DnS`9ope()%9?pGf{#_!ROd z!kqs4JA^p}^gk6|Oa4rl-GTqP@Fwz3;it)82(ya)e+%<8{4a%>guhGpck)-l1wQy| z;W+slVLofi|5kVe`8(lC^7q0s$v+6sC;uqSXG8iw2`?r8EPN~Z7vcNKyM>=3|0?_q z`8Qz?ap$wJ*znT@9)82XaBH$J+?kBe8*@vMgTe#JA>qTxe1IpmW5`W}r<0ospGfAy z6*l$*zI|BUGBO|biS1f4D-7E@a-r}GTzf_ptk@3rfx03lFQfwcQTMP3! zCw?2@82TB%tuUWg>9-ReNj48H#b=+%`-puSIV#M)%Wp4y2DyXq#pH6~r^y|K*{AuP zgg+q1gm;lU3-h^aJ{S406{7F*y9&1^cN6YH-dDIcxw|mukiPxW&=_)0v2%{+_Y$5> zt`J^GW)NWGcOQKFkkwV>q}XpJr-V5t^wYvml5HD!h1^^0+sS=|za;k+{*ByExFtF` ze?MV9XUpGT_!05}!hD{VwyQVE{l)$fSs#pte$_un?9Ipngxit_3U?z95K8id}coq3C!hD93f0XchWZMpRk~xXM z#%Fr@6NHZ>A1yqQe2nlc^0C4vk&hGR^U3_b3NItGv&41{d7?1CQ{-0(-$$M#%;)>~ z)xximCkt;U+b?E)LY^x2o#bi4zmca4x6TL85bjMrUU(>(9X7Tj$u+`NX=TOUWk-^I0tZDZ)weLg9hrQ-w#7PZK_le7f*V@*?4r$Y%(jLq1dZGV)?!J{!hg zB78UbEaAt=XA8ebK1cX%^0~sFlFt+VfqcGj4kj-C1;Qod3x)Zd7XKpQUgV2~`;#vb zK8(CncmjEu@HFzJ!t=<>g%^`o2rnaFCd_B1_?HXcL0&2R2ziz8bL1<8-y~lt{1N#o z;cv)S3;SX4HNwrw*9!CbCH{57`;u1+_ak2~Je+)k@KNL&g{P9&2+t$mB+Tza`Zo(N zC*LA`19`3R-Q-(^H<51>{yX`0;djaFgufu)A-tP>r*J_t@Lj^K$?Ju?lJ6GoOTI_= zVDi1fe<5!Wooe3;#@hS(wlK_FoY$Bfl!#nf#h?Z}RKHL&^UT z9!q{hxSIT?a4mVO@EPQP3NIzUC43$EZQ(n~+k_t_zazYb{I2lZ@Avk0F03Jdym7@NDwO!VAf^FFK!W%d?7X%fn|0_@9XX z2J#N!r^ufQ|AYLQFu#YY<@}0l$By60pNmhp7`#)M-|g2jcO`!z_CDl)3lAlKDSRY( zmv9x?w$-`huf)!0wfJ8PFD2W0yOwOrvyMDVd>$r$Bm6A+Tj4jz-wA(6{$BWN@(;pZ z3D}+&zxVF{DE7AGpM<-Se-`db{zZ5gdAIOb@~^^^$iE5CCI2pb8ksjb*!UfE-xt1; z91vbh4hr8-4he52=Lo+_ZX&#$+*J7A*aFCv!;??dLBz1a9{e!rFQ{$$=nVmpM~M))XlTj43>cEWY!y@k&p+XsJL zLXL|48ghH#b>t4hkC4lSpC@+|{wKMU@TcUM@GoTE)MCqP3AS}uO15>_iEQgIN$w*4 z{7$cLAIdq3+)eDqk@ppzN#+~Z*iI(*5Wbw;Q+N&8=6es>=DUe(^X2z({a)g~ja(u8 z896S@=Og(E;SzFEn9srYd9#kK7db85pWIvcFmfN^3FN-Q)5!gV=aKglUQFI!cp2ID zA=i-)5c?hE{=$!tZ9P0kK2Ypi$@am~e4dd%KUI zR|)g^F8(Cp-DKO}=Cuaf{5;&DS5v5bR;hjPLNL$K9GE}FrTsJpCWt|d7*2I zy6~6eMZ&pQME1`R-ivJGw*&c1vG*b`7CwNyMEFqhS;FJVwr;1AZJpPX&laCE$>#{K zB%dq1j(nc*L*(;?|32Kh3ve@?dL|B-Cd%-IKg zx%lw+T>O>7`;cvW<8!b4RbuZ)zCw5y`AXp<$yW(ik*^j$k!;U>G1-=XDcR< z8`3VEmu&OhNxnw%^`l^Wj?Kt6-!|lH#itATI^i_g<~xYITI{39 z*9#v@zCm~f`9|US27amNu^)Q-j+rV*ToBr`++kWPgZJ)D*Z0lqh*`E8gWP9%G$m=Ap zC&)IBgi)231oYH zr;_dUts~p?&mi9!FzKu!+v{~R*_LMm+4?_8zAIq-UnZ{?evf>&@b_dpM+%jL?-6?m z`Cj2Dd4q5tvh^QIzEA8&lJ6I;B0nH}BKbk#i^%ratH`~?ek=JQ;RnbM3qMVMMEGa& zM&Y84;75h`A=@_AgKY2h4j?}!K1VwKlgN*Y{W7vWb`5!x*dKBHpL2ZPB-?iT5!tre zZ^=){v1OgWPYQP;KP8+XZx%j?{Iu{0^529fke?BrN`6+jj{KbPBJ%UX7m;5OzLLB} z_!jbu!cUN25`KyNcj33m_8xo(`DL+xM}9>(5Cgv|+?@QHa9i^0!d=P#5bi^MLwE@J zP2nRPt|Z6BK8tMc(@!DWvG_dlf#S20yjA!n@;`;|CGYf2+kS#<$JxJ=-x8k>$!`nq zB5xDkO@2o>w=?)%;TGigggcP83s;ce7e0{uf$#`&H{qkn{}P@~{!sWt@<+l;$R7(| zO5R&|HTe_aJIOXi9wqM(`*Y+^h2L=aL$a-(ugSI!BVE9siGNG-=fZ8tJB2%tzYy+9 z{Ofk@QviA!grH%g&!x|n0k?%C-%3=HoiV3+xYr{oG(5(-M}`!O31c9 zX-~HOMlZ7MTl$l2A95Jk_A?X6wm+Fhw*ARGa)IQvm|Q5lj2sregWOE`5pr|k=g1M^ zH_5g=e?+zqJ^zMWEI$6e;1c2H49J!TnHQDxcCy-l< z{d960;ruw5AGpR=Mz;6wF>*Vx<6C(szwjXPKEg+k?Xl~~QL#TpZZEurY-8{(vW>wn z$sNQeHvuje9!u^hT;=c_awoB$NILMO*smbl^j{};7W)U}MdJSzxr^9;Bli@0 z=OnnR*zr9{#Ii8H%jcEz0|?m2ovnQ!ee9aX5oEhYS4HkF{wI)o2%kajDZGr_OZa;7 zLMg-DWP4sukSoOJWpZ42C%KFG|3XfPJwF9b3b!EReHw19$SJW$$@h!B6FDvR?&Md* zjxU{JeM#*2Vx(8zr-3_L`w05*gBaLG)2CkpceeI%^x04BP2lJ6FN|gW%;%0;fc0}n zWc}RHIGmo}6b5Wn;0}2W9JBTrwC9VR9J4+r&|V;Ra?JX$iaX#vId0^b^*Nh%ybr{U z9J4;0=61k)D%{91>%&`=4m=5Lu^at)3fS)cL8VXOnz zces&b)`!DM2dtZLBgd={yZa7UkKjg*Ss!+V9k4FIjU2N+?4Gz5z>OTUKI}?5;NF!R zS)WhJFzbMOKW^lh^yHSL)HaU;j9&urQ;XW~YVS)T>8W6r^i9J4-W(vGp28#!iuE~Fh}8#i*y z`dm&s#tClZnDtprJNj{M+=xpJ;hFrS)V6p?dxhA^G3)a>?da3Fkz>~9UE0ylawBtG;kJWz^k2#`>+?13DY27d)@L{EX|a=I z)~87b_TFMA$E;5Y?R~^fj#;05Xzwd_a?JX4roEro$uaBGi}wA*PL5fhH0}F~ogA}1 z{b@fy?BtmB8A^M9v6Exgho2eiaG==9G3#?A?FWgS9J4;h&^|!yvJ0IL&Q#wS)X%gA1Zco%=%nH`!KPSW7cOS?FWmU9J4;x z(LP-4S`pT}t*A$D@i`aDDXNU@V+*5~iE zA1-!s%=)}Z`zW!KW7g+A+DD6>9J4;3(0+v2$uaBmCGBIxPL5fhA80>P?BtmB3Fg2) zR_x@M_2F-+b~sk-km1?KdRQ2RTMZKPrtLm$~o|Ee8yq>jlM3}t|U&n`!`R2VmvJ`GS*qUmq zW>1^KLmO;-I;kFl{Jfs{!uzZ#vyqkKG_|&B7QAX_)K#C@v#P$ncE+T6^+@P{utnkP z?8hgJ*7C6%(6qT@NxtWu!;`U_?qfIQo=4f=@ZI~4avrP$Jr9PB z9>XLG(4VZ;LOA=_#9Y672YOxX_A(8Gd}dY z-1@0~Ed0i*z+aY$+cNxj%NO|?zgYtt&$qeV$MW5X|7Zhq@yBdykzRWh_{%)G@vl?; z-WK@n!u2hI{U9X3ydwC|x`fPZ8?VN*>Fs=vMokY*w~^m?l<&UGQ4M~*`lk9soeht| z#8Z>-e9v?=iU*`tIIq2X_l`z;_pRuIKiDSbpFVWNF#W8#tCBIZJZ4z186u%R3PE#+457{ohh5qz6ec%=w}k|s^O3^7k@i?IeuWeVyqDW8j&1()IyfD5@H^|EIqKkt|4;|f|79I`f&W<@RQ!Leg8{!v9V`vA4i?}1 zH}6l|!fB|7-&haLP!DhZhk6+Bf2tm&ovq$u9cx=%-c;+sJC*eiytzq_=Q(x9WNz;f|e#0kTd4~|j7%v3dFTq=$2`=tDWcTuw)4Y3|{(y6N z##`KJ$uI8sv>Z1k)n_&h7{7B$alEP1Ul!kTPB4gL|5fwD&vU#*W-h}t)m}aOhh|zw zL3a#48Fl_M>pUNIew1ImRxQO85^#}IilByPY`ukezP$B+0K^dEb_CjO$pl|(_W{(=lFlx-cLf^ z|HQh_L*4iJ5AA(v&i|$M{@z{MR>LI%VD{Y^sX)Mp#^oMh!KiVi`Vt4tS zrXGI@l2?CX;)H3HpzYI-F~q+n{ns&%{6qS?{*XTBwR5~ph&A*@ix^9rcOy<3T}#@^ z*I~ZfY4dLF!_1r*^J2u_FV*MrIuAj)matsrnzJn|jy@3zV!j>hIxw`js~-w>dm^~F z+Zn;&z5|1c_r<$;-Jb|7?tVr9bMu^Om?sY%GiKBn%sJZ}6Q9-Qm}Gp`;1QLF9R8Pq zBMuo-iPv#Mqiv3Ege8+Y!}{{5qej~g+fE9{->^7okD=rN-X z9y4&HO|em$y36ZgpOxpPcgXA$t7>LUj_R&1)2r&Dv*$!7PdO1!+N+D=S$Z?3&7Lxu zzqP)n^RS6m4jn&q@VK!92aT{N<($(VT<|+(bLK^7&8w@AR#(;3M5}8C&6`m(**=3W zI(0^EU48p#mnkPsnH`-vr&dc>7p*oA{hJ(}KcjwnbkdC3Rkbsw)Uj+Ms*skONSChB z`Q}vWqjmGDaVm9F=hftUhtG*lLRR&egK@I8V(Kwtc2sJ;E(*-lNd5E~bd3K`BZrP0HD-cb4%EdSc3~a7X0SP( z!_1|QR%;HZkvY{>^;4p=rp%gCds3r3wEY}5bj;yHM^qj@aHO`PM%Uck?G3JCxu?#U zJvmxs&rmARG_FqOY|Tm9Q|5Wu_SfUU$tTUOtg4+hkBdrm4J}98Qr8{_nkP5bPMM1G z&#sRi7&S`+J$v@5nK7x?;1RtVpJmT#q;2#0}&f(HflMv<*_>*gvNSZ{9gE0mE>KnHvvhrtk1ot(MdTZiy z<;iOjkb?roUmQl7XXZ5FQxa@$!BMSlr?X@vUNc%fMpLeH;K!{ptk&`rTooG+IuywEL$N8yj~+7jBm{P}q43@YGx2ED@E&<%NqL5Cr|(3+-9#)?~W zzN1ZQCUjenhcyc|KMH?LS#w&N;u~&K7|s+jr@YPa@Zpk)SC*5?<(isFKBsqySzjxv zoayECF=|qXe*_(kVu%rCB8D2#R>UwPqGpzb z$4uso%6&LfhSB+CTZSX@C>FIa=^bg#03SOr>Mus2vF5Xa`F^80uYDxZrGCz&Tz>vR zGOR8(pM?-Hxe3qGp4ikpexkvi*tES_7w4kFm|lK4_VB+=xH!}mVlQ)@a&u13<$H3H z;weRBD;7%fNQ7<2cu&uHIQJ@C_oB+VUd|)M#<{4n*2~!_7qzHzzL)c;VOx^N@=n9S zwu&D&qFGVpq^VxcrXs%AXzTk4bBwLxXH8AmDt^A*J{ZcQQob$i4uR+>;_qSpfO{7a zFXx>D(Y>g0-Xt&QHIsA&1d92(DP~^?l=B}Zp9AEWtwk5%m;oaGS#%A=;G)VJB(TjS zFhuseXO0;mVtf88IG@oX{#E=CDr2mOPYO@O^&2nZ(`JmVV?}&sTFGRu<)=85N0gcu zUhdK`GBqKLYTk@pIo!oJ7rZW^oGF1^?l*4(=S&Nja#&RpDEJAxLb9(W(1I#g)!tNv zqGktjO(cn$6UhAuJyi=)wUTCqsJcMQX6Q6hqUOoIzM|#_^7p~M14Nx1FabS4)G6XQ zMASmrH(b=Iffk)`+z3&N#B;Q$GXi-$y|JR!1e(5%l8rZSZs)8Gl(3}__eI_sC}v9@ zVdWix!rn-ATR`^S6No&Fgtl9`A&@@^d-3VA;!p|fwr|cM7l+t>&6OAo>0AjTO}9}T zYHd6_;kD&ExD>M*d(x!WY!rQX6q{c|YRIP!2Gi@ZU75%Wh`vL$dGHc0c}KtXc$}+w z_r5Tvi=X=qJfu>(`9%~~?dzK+U@v-i-!y?-P2!<=mZ7X@1Xj#S2r=f#1R44UbpE)g|X)KXCkL@f(M zW+A^tqAm?YPK7#G)N;vhwWt+x+!|4riCQP>a#0&ZtrWFU)GAS%MO`5ww8hJ36Jpk; zl3Iyo=0-OaeUa)?ukEg!YXeO;z#s`-A812i)eV8N%}@)xe0HQnlT14=pEb>3u)5u@ zoW+44<92WC@N%vU6!1!kxG_+`93}5Ow0m<Qr%Fs296Ro5LxH!b|ILa8( zhJ1iA?~B)bwxclslTg5GZ}LnAO#&iP!FGJZ7yrJ(HAK`6 zqK1n?t7WNWTnMibCEY^!CQ&jjgl`rlokaK+QO8OuYeh{Ib*re!qHYs4UDWNOYDBFQ zC7nz74pH^8?@m$D)r9X7wNUo04;1oYC5uGe9VmDe*Wp}I_lW0(qV5&7RMZAhD@5HV zb+$^>{i3cG^?<0=q8=2rM$|*1){1&q)H+d*h*~ddqvW?i)T6TRK~ay%zKx!XJ^sAyzujqXs(qn1ll&kQH54+5$A}NFUqwjv+^a8ZLR#fW!Z~y*JSjH z$SzjCDzdwkZ-}h0@}DA8R=z8;ua)lw_Gyhm4zO~2V4nn}oyCOT4;0Tr^BHaTejq0} z*2;fLA;(+!VW9ov2()9Z{7CjrwDM!wJK4%lWbbq!7c&b9LMKyyxZ>aE-< za)Fg!h+JspzeO&x@=K9RtlTB?Tr0nli?YN-Gq+gTUgXPGb`bfxm7PRxwX%!IZC3UOn(kt|mA!&{^8=nctgHx{4sn;2agpCz znGpG-l}VAitxSpZWd0jYiws%WTV$@4eS)SKYhII5kCS2GZf504Ax9)!&v5w$B=wiFZ9?xMbt>ZlO)U9iVL`3q=-s3xH{lR)+=Hx0ExbFep@;apMU z#WPRTv7+)tO%zoiYO<(8QPV|*Mb(IECTgyz=Aky6Jw5RLUsRl(T4%On- zbP&<-&E zl0|51TSY~u06LExmH>A{z#z3L+T8F(q1;huDpIsd8Wj!7DcaITMOzkX!M@uT?b1-m z*GRz@ZFy*~gF0g!$=uBz1Owdw|CTgO$RZ0oo-RPahUR=T8M z*GV1Q)^S6qWDsJ3%Es;z2<90jg~ZT3z@ERyr?@u#r&R-jq&v% zGijJ8`|b{vor--n#_tg|-PUfr6Q7Mz9IC>rsnfRMM?$&mb>!ej8`UY4Q>TwLs?*0q zr98~m>84QWrAWcn=@X&SYoYArelk?b=2~WpkZi}UL~b}!?RXa=oNo6n(i86Ma6iX? zKZo~seEK_lki!GpU9Gphg+m=a%t>d2!y}zzM>%|i<8!pb$2feP<3Gi*PivRC4KJMO z*lQe~J-ea7E4p08Sj2 z=kk5nISa2cEDPXW3eSvukV$%RI}V;U=_Tzrw#aIH;aNt=8hGK^M#vg?;Wh<56OoIBcUeQl7X&0%4RL(I7t;~+i<`x6YY;t(qj zYn|rxS9A)dfi%0abUr*yC8e6T&%F=_m`ZBi*{~H|jF9p+?`njUs(Fw6t8s{|zc=rh zcLRj1zc=rdyOuq>q*h@>g_lnokFYCA#i3G&;t2^tR~Q+W`+X+mqe`2gZZnYPgQ(BG+ zv2{Mzj7bCJ@LF@o5E1pJ28N3`(TEWu=9_uOXz5AI!fpKs$2CTh7jEYla+%Gly+!59 zzI}X?zU?jB%VId+732v>6)p(!db^Pg1%xcmq>v5xFd{4;Ff*Fe}Z$R;+SUy24HAN=ZqMxyp!$ zE#TF`olN$C$aQ&7W|F<$J>eVNWN$RVV^4UE5jNm%a%1dflZW&Tkz0(YklfcAkrHvM z5q)h@ZVL`Z2~dT&ugTa@i zD39cA%@pNPx3V8|i}JWzlud3?o^Xruq+67y+@frDi}G}%qWmp50VOERjXal^i=}v} zxEI`_Y%x8e9pNG`20s-4m-G5&{9kqbUu)$5dawoD(5~LhyCmcPPuKq~Qy$ym-!{TF zfNiFo*nZ(1vq#(2yTKt$wj%O=UKmU8QtW@Z$$n@Kw#j~E_Sj@UHYwR;KQT3EyZ9YO z$QT*<)VOt#q(3vl-XKRl4_+m?f01`VCigGh+;^FFWpn?^&HZaP_ixhY~Sj1qouC6a5~F%tCi z24EI#`p8I*FDZ*^;+tbaqMC}5{xg#6n<|%^xJaIF3azQ<`@t`ndTu1_=hbIYZ!SHs z%`0NxjIXlRGuzkCy9Q<{Lytyf=-KGZdiiGlk!w?^@PpHFT-#72 z;paV-Ng-uZuwH3DcpJS6BYph59K2ywURR6Jx1TS4VEN>_dM~n{Tts`W`%A8x&jEh$ zWu_2`9O&nbLkd#T0dkC00~?ieknFRyHCXl)+7b=%gT+Xt-T25bKW|kGpC_uFH`|L0 z_e*}npo@V6Re6Ztau`U&VSbCtGh&3l7Y9ArGtzItaZAMEek+bPB1ZYG+24y8?YG*R z5l8rC?2}~Ak$!9TBqGN8Z5Y@h#`&!oXCnUMw`Oc~o>ev1i;VY6*lEh13I1N}5k(y1 zw`6M-ajai@Mn)Xxm%f=1m44YVs8Dg6=$G>9i>UHj@j{B2W{H|8$IbT5 zlHz1hbNrGbq&{8LT;HsC)`+V0%`9xLs5(ENcMSE21U}se^@k7nOlx>6wYY9CPRoqF zxIV%Y3ehKgQ0I9lv^j+V;WnWN-?TJIhTF;Fl2v<)l7<@IN0xr1nT4aW)?)98+l#WZ zybhtg&rW3SiOWOHdADm98ajrgN0j_Jhe|JmXLnKiif4tW9s%dwubunnLi8?CT=xJimA`_SuVfiC=gFl)ZS% z{KAb;c4csdsJ?RCO26^nfzD#>AhsH^;_LnVwooHv-wl4j z{!pVu-6;FUidrLTyr^6J{A1uLu@}D8&tC*JQTDC(^KXNiEb0M2{~M_3qMq{e+u^AW zHKLyP^Cv>h74?RnzXGaW)O&vZHmC)nzVP!4dSzCLfAkA`K`oMfyG1P#l^e((g?;Ci zvri5e1oEdqT`2p)qLzv(4iub>eJe!m706!-wMta0K*3E=SBq*ND0mBMwW!X4!k?hl zi0U3FD67Etmqqmo6!w8yCn^;v#81V0>qQL?6y6QBLDbkl;WtnZikcWOXS7k&R8gBm z)dULp1dGk076b|hKs_sJVW4md)D|zwCS1yn(+u3`zu4TPY|5ov{ZMNT3{f^>v2vZX zlrK1-4R^6ctD!dyY{m_~a66b*HegNiII#Kn3f}`OQ*_g&sqLNPX^x}JsWZ}wC60#adeasD@iou z(?E?6M8!_!F^ua!Kjy!c_mxbCJwkRm4LQ2k>jSu(cF1lc`w%Xcp=d?e6=l~UQN*`a zj|7~7x=RpiB_Cu0~8wlIEn`yFRlHGjUqtvGKyB^J+%Gqs;xi_pP zadur!;wA@kY0XRH%Y*{<*W=j9Ima3AhL+fHT*IXzA%%IG0z1a+6ij4g<@|>f9?%rn zVP>b$kh9w~e$qqOtI8p^cj^vS!CHQ9H8%Sz12ibKV?F)9x6!1l+v+_zw9nq~ zEcBv0zzk-k3>I?zH6Yv_Gj~9%;c-BQ1pFN3g{?+@WFukMnyOi?{&)~9+r;F~| zmX|rW>_Mx$l`&w0%Ql>jz8e1B&DwKd*$9z6%u;e-+3=n-@RUEZY7tmA1Z@OA-he#h zd6;P2IC3)j0{fT}{oS#Aezco@=0Zih9F~i}a@eU^NkOn#n`T9RagzwnFwoH}C^)bn zn2VyMy+caSB3gREX8RTFU(m0BGACxNO{`xt)R1+^5r^DTzo0<;efZ~v8y%kS`-ha! zUeF%t^eVuGD{15(cK!Qef3xN&5#HhHWAcrZ_`zmw`bF^1)#A~=nEotjiE+(oC<+#o z8qTC|4!#Srm&YGWXt|f)xs{X(-!tW*Wtl^9QY>vNd#E`_=F+;60co|#6wDsd)}EJ@ z?QFGJxwm^fo=aDPqH#JOWm%YG`;-*c1g5^b}oHsrqWJ7_`gIJn^P zF3rMt^?4Zn|3Bj11Wbw|d;85=8k%kzn+EAZKwFj)7ocl{MnORqLD>XURJ7=oZt2Zl zSQHfn1$PuwbWqVjMMXzP8Fxj+QAZqc#BD@H#a&0-H`M#SapF`5sq=mJ```QAn-5g~ z-jgRIA|v8NMrKt-1u|c#^9EHn)Kv~Dt1Yc*t{jB#X$~^$It`dz-#VbBp`o_Cy0oT# zP(>3y&1JrVH@m!CJQDE%t@U&28|KvysI09TG<0BmVDX@u`tsV=ipu|!L``PpM2xgyp7K^gy7$u%!%{(mVc5A~;o95umF{;y%;3yP@j=9Y?z%Bq3YY^^k?w6(S+ z-LjyuvKcmv{29g*lcq|1H4MCJG&ugu(fsZ(p*QOh5 zOIz?&*E$%`3Ce5bula7J5h#=qnihs`+1XIfrN!WGEkZ~d-@gPSC*x<95QAoa$_jW{ zrW=M12xR5qSu^@qR(tz56bey$!7$ezwumJvEnzISgcVRMVJ%`(yHL;?{=Yo(e_q<~ z|G2b&kSEr4w#l{CP+R@k8bYOZ5WlQQyHGnGkQI`8{~y)2DMwb0)H_l#MaYWSmh5MB zfBRRnwuQ;sA9)5tXPHv$#r&;b$l>;xwEw4Vo3&TFkg4gc{cQRL_Ai!qHhF7#_x9O) z+VjAdAn9jSMEYlzdh1!)?)d+_KAo0mCwaQB&fctC+v7FQtai3+S+=aUZP7v!V{kNQ zTwrTeTh5*v_F>3JG*{L)*EG~OV`wR@NY~Vr&aUK$RN2&&u4zt}rdwJTc=Zh}HB}4J z{EB=_8sF`%X|ArU@Y49Y{%Muz7SH}^OCa4;S>EEM)BI|AEj_9mnp@J%wfL5Qy0NCE zyc+wk6hLbw{x(;6jWzSJ`T$e$(iolaO?0n$Ze6;(p>csHUy}EbVrhkk?{Zhw)QVR* z)*dXauRw8XYi+T4u$o)z`N-a!P8wIKdaiH4H4x2U>eZFbhi83rODRqW-#Bmf(({^X zS}HvZqlq{QoHpYaN|LUrz)9Cs)l@clSgwH1C}2yeSx+%t+FZ^-HeJ?Qg`&@GsjaN{ zWHp0y4aQZeF|Vwtp|qkLiw1bJYa7Z+YjN&P=|+5uUC#M;UqP=gZK;`Ci9*)YBW0{r zfQp>$)wkBASuKqXC}d?*vlvS28f&q-V!E}ywV7>_ZmGk$ls7lEG}M(fQ>82Zr=wK$c^^z5dZiuAnM>8jTHa!)c&&qeDsG^OX&RJ2s5`91e^?cijo zJxM(&oZVcM0$qof9}iulqM^yOpI%*1bzYr0g{rE`rZkp*m|bs{i*%al)YeM$0=xbM z>y@>JCdCP+>l!du@cW|P8X7B`TCfy@hpbJKoY zKK=Og*kdM*nm&H=q;y(3VWJ|Rp~00tG=pcHcq6e zlD(m+MLTF|>wMGdEhhRi%Px2oO{ljfZCrY%rGi<02~u>hYTJuuSJqcH)s$ztP&(a; z9#eu4Dy^tMv}js>zH* zHFb@xs56#}y@->tIqVOOIEkioL!;E2IGempXKHS3Y;0(1X*M0CCDY+N89UL@YRgK? z=cF;#AWlus%M2hU5j#S#Fc?^!5mS1p^iXuanif=PZH3p|(8^$z+QBJ0@xt-bj*M-o za*YoT5{RyP9oNh2Do$-1*0K6XQ;VrFGs0lxK=d}75m`Gwhar|wx}6!TOYwaUGlbe4 zQ4TwFW6hH~^nlYUE6^7knkt$xj8`JbCKz@bX-vjClBKc!EY8lX2UCOryvfsk^+$u0 z=_ovR9egWnRAa>ED1@>iOd4zIXQNi}#&=tnbIL4NEi=TT%@H?d8C|zV%|(cbnNHzU zwG3m8P3TTl94B#lUS<87kSGDZLXB; z+36|_FRhjJW7&SAQg$xwFgRyC;h zhUVR`^enpRfh`R!7_g`~SU0E}`y2X^P zuBI_vi^!~PHl2b;pttPSj2IFcOUr983EF)~u@^l0BhTFib6yW?>TP8H;Wd?GvyB!r zQ!kVF_}T(~3T^|}T9Snhhwm9GIqAhKd;*tw2eV01XJ?JrSa8z?hE zaTy++IdKp=tpPXF7}qe^;mVWQS6hpEFK=w!ZEP_ykLlST1*60@c8kZ!Je&BQ!TT5o2jbx5nb80I8+qh*$Cle<+qm<($jBI+S zR>XTNM!ou$+6B^iF*U=CZ5~EM{~)8yf{{aJW^H4+j8bVkKd>|NTHM|vk-06%*=udY z}jEHlyN+0AQclIvF6;HACQMy?5cUKlZQ zbC9)V)P9GVG&1E7Y4*AoHx|oI(q$@S+GubRU4><{Ep5he1RMtyOucRF+2k3#a``qX znBfMFW-Tf7A`F)4##A#d3%KfMhGh0Gx;s6QBaBwRsV(W0cE~c-X-5Ba^Vsnd#_$HF zq6XoPJ}I3%ZUfPj!i)=c>Q_?)0mYJG#9O*fkXt0Ik?mTIqbZfQ+zX&Gi;IK9l=+SHM>avg8y zaG65LvJ06#&aB+rIoUDXZ*H+`&$Z1lq~lx7dmVNkbI#~6WxEgR^_=9V59ct};<^3E z^g|3noXkskblES=<4Wf#2^tBjAqRi+E=%krsO(3>~n@rkR zD(RG&i4X3$SRrQ0UxPb1&y2Emh{wbhCRB%+NTlr`?{vnt9xjXZ*I_WlDBEoBoV@17 znx?s#8N5bmO)ZMdu}|)BE9)w8LE-h>#6)H~><$Lb?1(qtv$3|n?Tu~cn69sBDDw?r z_y`FCW45`&N2g}pc@+(<_KmQ1Jx#;6_w59_GZFMn0YYn9{5W{PAB z?c7J%-fu1s=CUkPKZE9;(5tF#z#W~e;g{()ymRNt*~58Z`rS1UyKRZuZrjWWW$xHa zACw7Tv)(BB#yvA~>v+j*%+O~hu5QD&v`tGHcpR;r7DY+4wRamw`FKP+d{dpIz`5#jOH2%!g=N9frY&_lN*$ZQnW&S1?!aMYD)c6d@^o|Bj$#Cnj@ z(`;k#o9gCn1ZBa`YS^g^9(UA~)?llNxPka*o&UIt7~p8R=3$Mw zOW@6xjDL1=oatA-;mDT9Mv^>=(72MI;Em!uwnJl8J#PRok>hhBb8@Hw898iVJL5mD z(WVI(m_r*-eD+f3Nt%gBJ0F)BYgKJ)b2a)u?-nt#XC`EFQM4E2-@Vhr-Z{vGUD~|0 zlg8r>JmTWC%BeHy52kl==NxZdDIYFy&IB*p%w|T5xqev<+LYr9g1(^{WBY%(FSBRe z+{jBOABdFgmM4>w>$wy!^Q4Fm9`R%W6EsX^acg2~)zrs-%gGKXxYxq7)V84kPcvE? z=9Sw%y!&`LW%Bq*)5lEZY##sYeLhEUT>i~XFsA!W=!eY>wXG%qO_Z8GCC{CR?gXvv z60zIdi8my>-xr~!?ZZ*qWA%!POK4^iVux<$>4q72Ir*t*ZorhKz5+qjY9`k9KHSdt z_^=C|Ljp2cB3;)`u0#({nUOl{NZX#Y&M^#ocyr#A>5ic4ryJ$ew zl<}i>8(YjR3ZsCrX5Q8CZ1#HLm%CScsc5@*{KMOI8D88OKYI<^z7F#>eOl`Ll9Rc= zH&0Gk_hv4~Dn}@^n)eNKGK?D<^b>OvXCGrr(EWj{x7*6Uc-H_kO}uY`E@4OK-!;)6 zKYB1Dh8tt{O3Jq(%smYI2PS2>(~(XvZQRIMx}pYiXLe}xTm&|H*?$Wv^WY|3RWIF) zgOPne!?(>eNYKR@G4}nb%*f{0aG-h0-F6+4%Vi~=nmLzIb34l)-IB7(ds5~!nitfU z%QIx8s&B)fvSkd)+^APzn78ll`HN(N$`nbSmI2+l>F=K1%gnm1z-FMc7iaTeu$lKp zW_@ow*Dk9vLBY`HTmT=2;0qqaqQ>M}=Z*^cMi_1x%tQ}&edY7bJ3&s7Ov^d%C2$m} z;_WQPPriRBlM;+um;%@vr?wfbz51H_OLJ{E!vbzR)5lEUdkh@5%+ygL*Nijre34fP z490ejR9OpYPE8zn9HOjL9_X6>Zf>r4)E{(nGoYHc5^Q?%Ou!VzB-`xmejT4Sa^jQ; zxQ_qPV>X?D;7ZNxP|w8Vbc`6$=ZE0F2Aa%$#wNkV%}-A|q(ugd1h zvqZ4Y5)p5_6E_vl3$eYRndeoA0LJoMnexe%&b$>SGi#loS7C8?Tw3ge+MHrdGcHcM zMY4`cZB1|cnduPzC*meAT&>JK1LnaPbMVyJoIEGf^59NxG?2GEreYu0&g;&;Oo1?l zaX{1|-b`^Yg*5L8pmxj~JD86l2R!@3+yuUM@Z8aI=%SnKJpiBSqV7 z9a1a92foa(g^5v`w*XCT!;Re0%at&bFS?|6#HdjR7xl-*Z-2S+@e^nr@&7k$0WYvH zkQeku)97rYJ58xRJFqNxd1ys=W!4q#u55o*_Noq7=Zx-{?S;nWK0f-Hj=?FT|26uh z(OXBqJo=T;nQvPBl{;f`|(LruLQ;F zjKBD#mC0|tv!CVJ=F{1kleYQ$^f;fM;?sBe^md=_Xg=@7Ozrvj^aP)t;nVl~^hZA3 zHPZ}|{y3kW?$Z@My~(G)@#!Lbc1|`)f4Wc4^66Ti-t5!6e7ZkAC+DU=)2FL_y2Ym# z`Sf<5&c}!P-1LX}bfZr%^y!s8z1pXD`80py(amp$PhaHIt9*K`Pp|Xo^*(*CPjB?; zO+NjaPjB<-k9>NkPvfTvcRN4xBcaA3{UaZr@s>?=qff8#>CHa9%cryX*(|f!^nE(w z(>;By4ZK?$^IP%zpQJ)pqS;5^}v-WK!dc^!JN= zdbLlx*S8e*Wx~g%_l(cqz5X4Hef=~0CI25XTJm?VkB4Dj+x1!eBhK}1H1#eco8ilEv(JCKqbI?4q0fJpv!CU2uh-L{m;3yC`mVoy zecFHhzR0(Kl~1qpY5(`MC3sYFK+_+DrP^FyDN_KmS;+t={^O<^-x7JtQ(LVo0K7FrGZ}jOcKE2(icloq`{&SFTzT(b@T2S7V zzVgoS`TOTTTYUSs`SfQ#?ar4@Lw-Aa`9*y53wJ)X2>#ibc#!tzZ#T#${l%ScorfJo zKK~YG|g`yBvRx|Jj+#dcgY|w0r;eAoQ?Ie+_t#Lc7<~CwRQG z|L@T5{O2Fg?)~0Bp+{uOAMpMK?Ov~5g?6t;%xik)d;;D((C+=-2hi^I;Ztb$dax7P zy}0ib1>gQ-h)1@!}9@cRUyY?cU#vfp+g_j)ZpauO>scO{fCibZGZ} zgkL9j?^pO+YHoa&L%Z=?4ZY0iZ*|b_e7y4bJ}O zq4#py_hsmFGUIEW_a^ifw5g`|KJ;gf{v7&dEM}(rzlDxF?eh!tl^nFqmS?`M{%vOd zljr4OtXyWkluw5|Z%^pGo&MAd`gljl3ZLY`v0-fcYUlz`7f^+_P(62i2zbEwb&i-D|ZO?BI z|Ipi=_8b6xyHkF~UZqoC!=Zn2;&}}8%}#z3p}%+hkAWWPy`kG@=2Lmze$Z7;{S`z1 z{i~tRaq_D`dR2(oc{JN=%r3Py#al&Q@=Z) z8=dq09Qw~rfBX*mW9NAO{^U1Kf6PW*Z*i`NouMn7`rQk9KS%e0KCGy%yqwF|JL6Ld zdVn)N9SYrwJY~!Cj)1-p|5Z-`Kk3xp@z57L=TipV$I)}3BTjkwtl%N1Kb`?S!fDU* zpgTG3aVhjYPI-8*@`W>>z5)6cr@!3>UFOvHJ<$6)w?j{G&i`ZR%}zXh1wGFhUw?-F&`CcGZhJn6`4sdk1^7e-w z>Xau2-FE+y=N%0Fku#o-g1*)1KNFxobn5>Y=zlx??PTcNoc5ayUF5_QpUphv=mpT1 zJMDW8bl8cH3!#s4;$tOrgEL-T3w@%q|7Pg%PJjFh^!M8RFh1T7op$=~a9pTTcHifNpa7PY>uF zPJiKhXOE#zXgm#oZtt`YfAVyS(|(6R-{bTzzE_sz^#7xwpK$z7fDRY6rC$y`*zvE0 z<{DqJ;r<7Dn3MmR(Bqx>TS|XteBvs*ck1D2kE@~YaL(^W=(a7-yB+#qC%t>2A9wo8 zBhZab`|w(HzSF)hK=*O#_ciE~o$Kp6&__A(_6hWdPXGHFdZknTUC^;2Eg|l2koIt= z{yIV5?DX$K=uJ-lD1tr#|7FYb_6N5;-^ugh&~GCT-G2!5zn%IX4b7#jbpJ%?4bFId zEcA^|e@jCj@06z+dbE??snB0I{-;4d;>6Qp=q>oK`CSBl(P@t>pr<f4n!F<&=LQbgQF>Kp*1xkAUViR`cUn z^@@|rmz@3Up~pJ;Z-6ete?6Z^!OuAT=V|DkPJC~Hp6&FP*P(YhlbMA`$wh#d0soj!rNLLobMjc&pGECfxgMhEIcyPf#D5_(T(|Mk%4JMps)`b4Kb?uIUQ#=8fhPj&jwlhFTh`u}EVJ`>XNz6|}E zlmA=LOP%xm5c&?M{&qs|aL(^X=<}TPf@qtqPW$A7w>g@>6>+`O-+Mu?cIq<<-N_km z2SJxR*IWMh(Irm)y!YSXj5kL@n;+;gCz$6=gFfCFFK0qu;KXYs^nuR#)kFX2oX1ij4Z-{(V@I`MWn^i1b`{sdj@q_-A2?!?m_&{z{H(;k0=KGEr)k3k>doZmCh z8=e04BJ_7o|M)lbBToIk2hDpr+48*4pg(l_!?(~!IQ9K2^zn{vkGg)&@y~}I?Bv%S z`cbETdPD#0oZo@aJDl<)q5tC4*Kp_?(TB8rW1-8P@=k_6((#`G{Uyq%{-w~rIPG@| z^!`O{`!ddwdbBfsodkWA z)1RuK^PT?E06pDl@A=U0I_-Tn^lB$wE`WZ{8P8TgAL`WqYUspIf$E8?9cz*_Zs?)!|gFeiu&)=Yj zJJ+LZocqI0dv}ID20pUod3!-$=bTR;=(f)j<#`7|C!F(3L3eTL|4`_1M;`%woOAt} z0^Q)$=kd_3PCW2gSG`joeD>18@o#~C+bRDU&^KuDQ6J~g-)X-~p$~END(G*W@%0Ai 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

$q%x{`qE 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

vG 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� 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