diff --git a/include/ur.py b/include/ur.py index cb092af4ce..80ecc08f3a 100644 --- a/include/ur.py +++ b/include/ur.py @@ -19,6 +19,225 @@ ############################################################################### __version__ = "1.0" +############################################################################### +## @brief Defines unique stable identifiers for all functions +class ur_function_v(IntEnum): + CONTEXT_CREATE = 1 ## Enumerator for ::urContextCreate + CONTEXT_RETAIN = 2 ## Enumerator for ::urContextRetain + CONTEXT_RELEASE = 3 ## Enumerator for ::urContextRelease + CONTEXT_GET_INFO = 4 ## Enumerator for ::urContextGetInfo + CONTEXT_GET_NATIVE_HANDLE = 5 ## Enumerator for ::urContextGetNativeHandle + CONTEXT_CREATE_WITH_NATIVE_HANDLE = 6 ## Enumerator for ::urContextCreateWithNativeHandle + CONTEXT_SET_EXTENDED_DELETER = 7 ## Enumerator for ::urContextSetExtendedDeleter + DEVICE_GET = 8 ## Enumerator for ::urDeviceGet + DEVICE_GET_INFO = 9 ## Enumerator for ::urDeviceGetInfo + DEVICE_RETAIN = 10 ## Enumerator for ::urDeviceRetain + DEVICE_RELEASE = 11 ## Enumerator for ::urDeviceRelease + DEVICE_PARTITION = 12 ## Enumerator for ::urDevicePartition + DEVICE_SELECT_BINARY = 13 ## Enumerator for ::urDeviceSelectBinary + DEVICE_GET_NATIVE_HANDLE = 14 ## Enumerator for ::urDeviceGetNativeHandle + DEVICE_CREATE_WITH_NATIVE_HANDLE = 15 ## Enumerator for ::urDeviceCreateWithNativeHandle + DEVICE_GET_GLOBAL_TIMESTAMPS = 16 ## Enumerator for ::urDeviceGetGlobalTimestamps + ENQUEUE_KERNEL_LAUNCH = 17 ## Enumerator for ::urEnqueueKernelLaunch + ENQUEUE_EVENTS_WAIT = 18 ## Enumerator for ::urEnqueueEventsWait + ENQUEUE_EVENTS_WAIT_WITH_BARRIER = 19 ## Enumerator for ::urEnqueueEventsWaitWithBarrier + ENQUEUE_MEM_BUFFER_READ = 20 ## Enumerator for ::urEnqueueMemBufferRead + ENQUEUE_MEM_BUFFER_WRITE = 21 ## Enumerator for ::urEnqueueMemBufferWrite + ENQUEUE_MEM_BUFFER_READ_RECT = 22 ## Enumerator for ::urEnqueueMemBufferReadRect + ENQUEUE_MEM_BUFFER_WRITE_RECT = 23 ## Enumerator for ::urEnqueueMemBufferWriteRect + ENQUEUE_MEM_BUFFER_COPY = 24 ## Enumerator for ::urEnqueueMemBufferCopy + ENQUEUE_MEM_BUFFER_COPY_RECT = 25 ## Enumerator for ::urEnqueueMemBufferCopyRect + ENQUEUE_MEM_BUFFER_FILL = 26 ## Enumerator for ::urEnqueueMemBufferFill + ENQUEUE_MEM_IMAGE_READ = 27 ## Enumerator for ::urEnqueueMemImageRead + ENQUEUE_MEM_IMAGE_WRITE = 28 ## Enumerator for ::urEnqueueMemImageWrite + ENQUEUE_MEM_IMAGE_COPY = 29 ## Enumerator for ::urEnqueueMemImageCopy + ENQUEUE_MEM_BUFFER_MAP = 30 ## Enumerator for ::urEnqueueMemBufferMap + ENQUEUE_MEM_UNMAP = 31 ## Enumerator for ::urEnqueueMemUnmap + ENQUEUE_USM_FILL = 32 ## Enumerator for ::urEnqueueUSMFill + ENQUEUE_USM_MEMCPY = 33 ## Enumerator for ::urEnqueueUSMMemcpy + ENQUEUE_USM_PREFETCH = 34 ## Enumerator for ::urEnqueueUSMPrefetch + ENQUEUE_USM_ADVISE = 35 ## Enumerator for ::urEnqueueUSMAdvise + ENQUEUE_DEVICE_GLOBAL_VARIABLE_WRITE = 38 ## Enumerator for ::urEnqueueDeviceGlobalVariableWrite + ENQUEUE_DEVICE_GLOBAL_VARIABLE_READ = 39 ## Enumerator for ::urEnqueueDeviceGlobalVariableRead + EVENT_GET_INFO = 40 ## Enumerator for ::urEventGetInfo + EVENT_GET_PROFILING_INFO = 41 ## Enumerator for ::urEventGetProfilingInfo + EVENT_WAIT = 42 ## Enumerator for ::urEventWait + EVENT_RETAIN = 43 ## Enumerator for ::urEventRetain + EVENT_RELEASE = 44 ## Enumerator for ::urEventRelease + EVENT_GET_NATIVE_HANDLE = 45 ## Enumerator for ::urEventGetNativeHandle + EVENT_CREATE_WITH_NATIVE_HANDLE = 46 ## Enumerator for ::urEventCreateWithNativeHandle + EVENT_SET_CALLBACK = 47 ## Enumerator for ::urEventSetCallback + KERNEL_CREATE = 48 ## Enumerator for ::urKernelCreate + KERNEL_SET_ARG_VALUE = 49 ## Enumerator for ::urKernelSetArgValue + KERNEL_SET_ARG_LOCAL = 50 ## Enumerator for ::urKernelSetArgLocal + KERNEL_GET_INFO = 51 ## Enumerator for ::urKernelGetInfo + KERNEL_GET_GROUP_INFO = 52 ## Enumerator for ::urKernelGetGroupInfo + KERNEL_GET_SUB_GROUP_INFO = 53 ## Enumerator for ::urKernelGetSubGroupInfo + KERNEL_RETAIN = 54 ## Enumerator for ::urKernelRetain + KERNEL_RELEASE = 55 ## Enumerator for ::urKernelRelease + KERNEL_SET_ARG_POINTER = 56 ## Enumerator for ::urKernelSetArgPointer + KERNEL_SET_EXEC_INFO = 57 ## Enumerator for ::urKernelSetExecInfo + KERNEL_SET_ARG_SAMPLER = 58 ## Enumerator for ::urKernelSetArgSampler + KERNEL_SET_ARG_MEM_OBJ = 59 ## Enumerator for ::urKernelSetArgMemObj + KERNEL_SET_SPECIALIZATION_CONSTANTS = 60 ## Enumerator for ::urKernelSetSpecializationConstants + KERNEL_GET_NATIVE_HANDLE = 61 ## Enumerator for ::urKernelGetNativeHandle + KERNEL_CREATE_WITH_NATIVE_HANDLE = 62 ## Enumerator for ::urKernelCreateWithNativeHandle + MEM_IMAGE_CREATE = 63 ## Enumerator for ::urMemImageCreate + MEM_BUFFER_CREATE = 64 ## Enumerator for ::urMemBufferCreate + MEM_RETAIN = 65 ## Enumerator for ::urMemRetain + MEM_RELEASE = 66 ## Enumerator for ::urMemRelease + MEM_BUFFER_PARTITION = 67 ## Enumerator for ::urMemBufferPartition + MEM_GET_NATIVE_HANDLE = 68 ## Enumerator for ::urMemGetNativeHandle + ENQUEUE_READ_HOST_PIPE = 69 ## Enumerator for ::urEnqueueReadHostPipe + MEM_GET_INFO = 70 ## Enumerator for ::urMemGetInfo + MEM_IMAGE_GET_INFO = 71 ## Enumerator for ::urMemImageGetInfo + PLATFORM_GET = 72 ## Enumerator for ::urPlatformGet + PLATFORM_GET_INFO = 73 ## Enumerator for ::urPlatformGetInfo + PLATFORM_GET_API_VERSION = 74 ## Enumerator for ::urPlatformGetApiVersion + PLATFORM_GET_NATIVE_HANDLE = 75 ## Enumerator for ::urPlatformGetNativeHandle + PLATFORM_CREATE_WITH_NATIVE_HANDLE = 76 ## Enumerator for ::urPlatformCreateWithNativeHandle + PROGRAM_CREATE_WITH_IL = 78 ## Enumerator for ::urProgramCreateWithIL + PROGRAM_CREATE_WITH_BINARY = 79 ## Enumerator for ::urProgramCreateWithBinary + PROGRAM_BUILD = 80 ## Enumerator for ::urProgramBuild + PROGRAM_COMPILE = 81 ## Enumerator for ::urProgramCompile + PROGRAM_LINK = 82 ## Enumerator for ::urProgramLink + PROGRAM_RETAIN = 83 ## Enumerator for ::urProgramRetain + PROGRAM_RELEASE = 84 ## Enumerator for ::urProgramRelease + PROGRAM_GET_FUNCTION_POINTER = 85 ## Enumerator for ::urProgramGetFunctionPointer + PROGRAM_GET_INFO = 86 ## Enumerator for ::urProgramGetInfo + PROGRAM_GET_BUILD_INFO = 87 ## Enumerator for ::urProgramGetBuildInfo + PROGRAM_SET_SPECIALIZATION_CONSTANTS = 88 ## Enumerator for ::urProgramSetSpecializationConstants + PROGRAM_GET_NATIVE_HANDLE = 89 ## Enumerator for ::urProgramGetNativeHandle + PROGRAM_CREATE_WITH_NATIVE_HANDLE = 90 ## Enumerator for ::urProgramCreateWithNativeHandle + QUEUE_GET_INFO = 91 ## Enumerator for ::urQueueGetInfo + QUEUE_CREATE = 92 ## Enumerator for ::urQueueCreate + QUEUE_RETAIN = 93 ## Enumerator for ::urQueueRetain + QUEUE_RELEASE = 94 ## Enumerator for ::urQueueRelease + QUEUE_GET_NATIVE_HANDLE = 95 ## Enumerator for ::urQueueGetNativeHandle + QUEUE_CREATE_WITH_NATIVE_HANDLE = 96 ## Enumerator for ::urQueueCreateWithNativeHandle + QUEUE_FINISH = 97 ## Enumerator for ::urQueueFinish + QUEUE_FLUSH = 98 ## Enumerator for ::urQueueFlush + INIT = 99 ## Enumerator for ::urInit + TEAR_DOWN = 100 ## Enumerator for ::urTearDown + SAMPLER_CREATE = 101 ## Enumerator for ::urSamplerCreate + SAMPLER_RETAIN = 102 ## Enumerator for ::urSamplerRetain + SAMPLER_RELEASE = 103 ## Enumerator for ::urSamplerRelease + SAMPLER_GET_INFO = 104 ## Enumerator for ::urSamplerGetInfo + SAMPLER_GET_NATIVE_HANDLE = 105 ## Enumerator for ::urSamplerGetNativeHandle + SAMPLER_CREATE_WITH_NATIVE_HANDLE = 106 ## Enumerator for ::urSamplerCreateWithNativeHandle + USM_HOST_ALLOC = 107 ## Enumerator for ::urUSMHostAlloc + USM_DEVICE_ALLOC = 108 ## Enumerator for ::urUSMDeviceAlloc + USM_SHARED_ALLOC = 109 ## Enumerator for ::urUSMSharedAlloc + USM_FREE = 110 ## Enumerator for ::urUSMFree + USM_GET_MEM_ALLOC_INFO = 111 ## Enumerator for ::urUSMGetMemAllocInfo + USM_POOL_CREATE = 112 ## Enumerator for ::urUSMPoolCreate + COMMAND_BUFFER_CREATE_EXP = 113 ## Enumerator for ::urCommandBufferCreateExp + PLATFORM_GET_BACKEND_OPTION = 114 ## Enumerator for ::urPlatformGetBackendOption + MEM_BUFFER_CREATE_WITH_NATIVE_HANDLE = 115 ## Enumerator for ::urMemBufferCreateWithNativeHandle + MEM_IMAGE_CREATE_WITH_NATIVE_HANDLE = 116 ## Enumerator for ::urMemImageCreateWithNativeHandle + ENQUEUE_WRITE_HOST_PIPE = 117 ## Enumerator for ::urEnqueueWriteHostPipe + USM_POOL_RETAIN = 118 ## Enumerator for ::urUSMPoolRetain + USM_POOL_RELEASE = 119 ## Enumerator for ::urUSMPoolRelease + USM_POOL_GET_INFO = 120 ## Enumerator for ::urUSMPoolGetInfo + COMMAND_BUFFER_RETAIN_EXP = 121 ## Enumerator for ::urCommandBufferRetainExp + COMMAND_BUFFER_RELEASE_EXP = 122 ## Enumerator for ::urCommandBufferReleaseExp + COMMAND_BUFFER_FINALIZE_EXP = 123 ## Enumerator for ::urCommandBufferFinalizeExp + COMMAND_BUFFER_APPEND_KERNEL_LAUNCH_EXP = 125 ## Enumerator for ::urCommandBufferAppendKernelLaunchExp + COMMAND_BUFFER_ENQUEUE_EXP = 128 ## Enumerator for ::urCommandBufferEnqueueExp + COMMAND_BUFFER_APPEND_MEMCPY_USM_EXP = 129 ## Enumerator for ::urCommandBufferAppendMemcpyUSMExp + COMMAND_BUFFER_APPEND_MEMBUFFER_COPY_EXP = 130 ## Enumerator for ::urCommandBufferAppendMembufferCopyExp + COMMAND_BUFFER_APPEND_MEMBUFFER_COPY_RECT_EXP = 131 ## Enumerator for ::urCommandBufferAppendMembufferCopyRectExp + USM_PITCHED_ALLOC_EXP = 132 ## Enumerator for ::urUSMPitchedAllocExp + BINDLESS_IMAGES_UNSAMPLED_IMAGE_HANDLE_DESTROY_EXP = 133## Enumerator for ::urBindlessImagesUnsampledImageHandleDestroyExp + BINDLESS_IMAGES_SAMPLED_IMAGE_HANDLE_DESTROY_EXP = 134 ## Enumerator for ::urBindlessImagesSampledImageHandleDestroyExp + BINDLESS_IMAGES_IMAGE_ALLOCATE_EXP = 135 ## Enumerator for ::urBindlessImagesImageAllocateExp + BINDLESS_IMAGES_IMAGE_FREE_EXP = 136 ## Enumerator for ::urBindlessImagesImageFreeExp + BINDLESS_IMAGES_UNSAMPLED_IMAGE_CREATE_EXP = 137## Enumerator for ::urBindlessImagesUnsampledImageCreateExp + BINDLESS_IMAGES_SAMPLED_IMAGE_CREATE_EXP = 138 ## Enumerator for ::urBindlessImagesSampledImageCreateExp + BINDLESS_IMAGES_IMAGE_COPY_EXP = 139 ## Enumerator for ::urBindlessImagesImageCopyExp + BINDLESS_IMAGES_IMAGE_GET_INFO_EXP = 140 ## Enumerator for ::urBindlessImagesImageGetInfoExp + BINDLESS_IMAGES_MIPMAP_GET_LEVEL_EXP = 141 ## Enumerator for ::urBindlessImagesMipmapGetLevelExp + BINDLESS_IMAGES_MIPMAP_FREE_EXP = 142 ## Enumerator for ::urBindlessImagesMipmapFreeExp + BINDLESS_IMAGES_IMPORT_OPAQUE_FD_EXP = 143 ## Enumerator for ::urBindlessImagesImportOpaqueFDExp + BINDLESS_IMAGES_MAP_EXTERNAL_ARRAY_EXP = 144 ## Enumerator for ::urBindlessImagesMapExternalArrayExp + BINDLESS_IMAGES_RELEASE_INTEROP_EXP = 145 ## Enumerator for ::urBindlessImagesReleaseInteropExp + BINDLESS_IMAGES_IMPORT_EXTERNAL_SEMAPHORE_OPAQUE_FD_EXP = 146 ## Enumerator for ::urBindlessImagesImportExternalSemaphoreOpaqueFDExp + BINDLESS_IMAGES_DESTROY_EXTERNAL_SEMAPHORE_EXP = 147## Enumerator for ::urBindlessImagesDestroyExternalSemaphoreExp + BINDLESS_IMAGES_WAIT_EXTERNAL_SEMAPHORE_EXP = 148 ## Enumerator for ::urBindlessImagesWaitExternalSemaphoreExp + BINDLESS_IMAGES_SIGNAL_EXTERNAL_SEMAPHORE_EXP = 149 ## Enumerator for ::urBindlessImagesSignalExternalSemaphoreExp + PLATFORM_GET_LAST_ERROR = 150 ## Enumerator for ::urPlatformGetLastError + ENQUEUE_USM_FILL_2D = 151 ## Enumerator for ::urEnqueueUSMFill2D + ENQUEUE_USM_MEMCPY_2D = 152 ## Enumerator for ::urEnqueueUSMMemcpy2D + VIRTUAL_MEM_GRANULARITY_GET_INFO = 153 ## Enumerator for ::urVirtualMemGranularityGetInfo + VIRTUAL_MEM_RESERVE = 154 ## Enumerator for ::urVirtualMemReserve + VIRTUAL_MEM_FREE = 155 ## Enumerator for ::urVirtualMemFree + VIRTUAL_MEM_MAP = 156 ## Enumerator for ::urVirtualMemMap + VIRTUAL_MEM_UNMAP = 157 ## Enumerator for ::urVirtualMemUnmap + VIRTUAL_MEM_SET_ACCESS = 158 ## Enumerator for ::urVirtualMemSetAccess + VIRTUAL_MEM_GET_INFO = 159 ## Enumerator for ::urVirtualMemGetInfo + PHYSICAL_MEM_CREATE = 160 ## Enumerator for ::urPhysicalMemCreate + PHYSICAL_MEM_RETAIN = 161 ## Enumerator for ::urPhysicalMemRetain + PHYSICAL_MEM_RELEASE = 162 ## Enumerator for ::urPhysicalMemRelease + USM_IMPORT_EXP = 163 ## Enumerator for ::urUSMImportExp + USM_RELEASE_EXP = 164 ## Enumerator for ::urUSMReleaseExp + USM_P2P_ENABLE_PEER_ACCESS_EXP = 165 ## Enumerator for ::urUsmP2PEnablePeerAccessExp + USM_P2P_DISABLE_PEER_ACCESS_EXP = 166 ## Enumerator for ::urUsmP2PDisablePeerAccessExp + USM_P2P_PEER_ACCESS_GET_INFO_EXP = 167 ## Enumerator for ::urUsmP2PPeerAccessGetInfoExp + COMMAND_BUFFER_APPEND_MEMBUFFER_WRITE_EXP = 168 ## Enumerator for ::urCommandBufferAppendMembufferWriteExp + COMMAND_BUFFER_APPEND_MEMBUFFER_READ_EXP = 169 ## Enumerator for ::urCommandBufferAppendMembufferReadExp + COMMAND_BUFFER_APPEND_MEMBUFFER_WRITE_RECT_EXP = 170## Enumerator for ::urCommandBufferAppendMembufferWriteRectExp + COMMAND_BUFFER_APPEND_MEMBUFFER_READ_RECT_EXP = 171 ## Enumerator for ::urCommandBufferAppendMembufferReadRectExp + +class ur_function_t(c_int): + def __str__(self): + return str(ur_function_v(self.value)) + + +############################################################################### +## @brief Defines structure types +class ur_structure_type_v(IntEnum): + CONTEXT_PROPERTIES = 0 ## ::ur_context_properties_t + IMAGE_DESC = 1 ## ::ur_image_desc_t + BUFFER_PROPERTIES = 2 ## ::ur_buffer_properties_t + BUFFER_REGION = 3 ## ::ur_buffer_region_t + BUFFER_CHANNEL_PROPERTIES = 4 ## ::ur_buffer_channel_properties_t + BUFFER_ALLOC_LOCATION_PROPERTIES = 5 ## ::ur_buffer_alloc_location_properties_t + PROGRAM_PROPERTIES = 6 ## ::ur_program_properties_t + USM_DESC = 7 ## ::ur_usm_desc_t + USM_HOST_DESC = 8 ## ::ur_usm_host_desc_t + USM_DEVICE_DESC = 9 ## ::ur_usm_device_desc_t + USM_POOL_DESC = 10 ## ::ur_usm_pool_desc_t + USM_POOL_LIMITS_DESC = 11 ## ::ur_usm_pool_limits_desc_t + DEVICE_BINARY = 12 ## ::ur_device_binary_t + SAMPLER_DESC = 13 ## ::ur_sampler_desc_t + QUEUE_PROPERTIES = 14 ## ::ur_queue_properties_t + QUEUE_INDEX_PROPERTIES = 15 ## ::ur_queue_index_properties_t + CONTEXT_NATIVE_PROPERTIES = 16 ## ::ur_context_native_properties_t + KERNEL_NATIVE_PROPERTIES = 17 ## ::ur_kernel_native_properties_t + QUEUE_NATIVE_PROPERTIES = 18 ## ::ur_queue_native_properties_t + MEM_NATIVE_PROPERTIES = 19 ## ::ur_mem_native_properties_t + EVENT_NATIVE_PROPERTIES = 20 ## ::ur_event_native_properties_t + PLATFORM_NATIVE_PROPERTIES = 21 ## ::ur_platform_native_properties_t + DEVICE_NATIVE_PROPERTIES = 22 ## ::ur_device_native_properties_t + PROGRAM_NATIVE_PROPERTIES = 23 ## ::ur_program_native_properties_t + SAMPLER_NATIVE_PROPERTIES = 24 ## ::ur_sampler_native_properties_t + QUEUE_NATIVE_DESC = 25 ## ::ur_queue_native_desc_t + DEVICE_PARTITION_PROPERTIES = 26 ## ::ur_device_partition_properties_t + KERNEL_ARG_MEM_OBJ_PROPERTIES = 27 ## ::ur_kernel_arg_mem_obj_properties_t + PHYSICAL_MEM_PROPERTIES = 28 ## ::ur_physical_mem_properties_t + KERNEL_ARG_POINTER_PROPERTIES = 29 ## ::ur_kernel_arg_pointer_properties_t + KERNEL_ARG_SAMPLER_PROPERTIES = 30 ## ::ur_kernel_arg_sampler_properties_t + KERNEL_EXEC_INFO_PROPERTIES = 31 ## ::ur_kernel_exec_info_properties_t + KERNEL_ARG_VALUE_PROPERTIES = 32 ## ::ur_kernel_arg_value_properties_t + KERNEL_ARG_LOCAL_PROPERTIES = 33 ## ::ur_kernel_arg_local_properties_t + EXP_COMMAND_BUFFER_DESC = 0x1000 ## ::ur_exp_command_buffer_desc_t + EXP_SAMPLER_MIP_PROPERTIES = 0x2000 ## ::ur_exp_sampler_mip_properties_t + +class ur_structure_type_t(c_int): + def __str__(self): + return str(ur_structure_type_v(self.value)) + + ############################################################################### ## @brief Generates generic 'oneAPI' API versions def UR_MAKE_VERSION( _major, _minor ): @@ -207,51 +426,6 @@ def __str__(self): return str(ur_result_v(self.value)) -############################################################################### -## @brief Defines structure types -class ur_structure_type_v(IntEnum): - CONTEXT_PROPERTIES = 0 ## ::ur_context_properties_t - IMAGE_DESC = 1 ## ::ur_image_desc_t - BUFFER_PROPERTIES = 2 ## ::ur_buffer_properties_t - BUFFER_REGION = 3 ## ::ur_buffer_region_t - BUFFER_CHANNEL_PROPERTIES = 4 ## ::ur_buffer_channel_properties_t - BUFFER_ALLOC_LOCATION_PROPERTIES = 5 ## ::ur_buffer_alloc_location_properties_t - PROGRAM_PROPERTIES = 6 ## ::ur_program_properties_t - USM_DESC = 7 ## ::ur_usm_desc_t - USM_HOST_DESC = 8 ## ::ur_usm_host_desc_t - USM_DEVICE_DESC = 9 ## ::ur_usm_device_desc_t - USM_POOL_DESC = 10 ## ::ur_usm_pool_desc_t - USM_POOL_LIMITS_DESC = 11 ## ::ur_usm_pool_limits_desc_t - DEVICE_BINARY = 12 ## ::ur_device_binary_t - SAMPLER_DESC = 13 ## ::ur_sampler_desc_t - QUEUE_PROPERTIES = 14 ## ::ur_queue_properties_t - QUEUE_INDEX_PROPERTIES = 15 ## ::ur_queue_properties_t - CONTEXT_NATIVE_PROPERTIES = 16 ## ::ur_context_native_properties_t - KERNEL_NATIVE_PROPERTIES = 17 ## ::ur_kernel_native_properties_t - QUEUE_NATIVE_PROPERTIES = 18 ## ::ur_queue_native_properties_t - MEM_NATIVE_PROPERTIES = 19 ## ::ur_mem_native_properties_t - EVENT_NATIVE_PROPERTIES = 20 ## ::ur_event_native_properties_t - PLATFORM_NATIVE_PROPERTIES = 21 ## ::ur_platform_native_properties_t - DEVICE_NATIVE_PROPERTIES = 22 ## ::ur_device_native_properties_t - PROGRAM_NATIVE_PROPERTIES = 23 ## ::ur_program_native_properties_t - SAMPLER_NATIVE_PROPERTIES = 24 ## ::ur_sampler_native_properties_t - QUEUE_NATIVE_DESC = 25 ## ::ur_queue_native_desc_t - DEVICE_PARTITION_PROPERTIES = 26 ## ::ur_device_partition_properties_t - KERNEL_ARG_MEM_OBJ_PROPERTIES = 27 ## ::ur_kernel_arg_mem_obj_properties_t - PHYSICAL_MEM_PROPERTIES = 28 ## ::ur_physical_mem_properties_t - KERNEL_ARG_POINTER_PROPERTIES = 29 ## ::ur_kernel_arg_pointer_properties_t - KERNEL_ARG_SAMPLER_PROPERTIES = 30 ## ::ur_kernel_arg_sampler_properties_t - KERNEL_EXEC_INFO_PROPERTIES = 31 ## ::ur_kernel_exec_info_properties_t - KERNEL_ARG_VALUE_PROPERTIES = 32 ## ::ur_kernel_arg_value_properties_t - KERNEL_ARG_LOCAL_PROPERTIES = 33 ## ::ur_kernel_arg_local_properties_t - EXP_COMMAND_BUFFER_DESC = 0x1000 ## ::ur_exp_command_buffer_desc_t - EXP_SAMPLER_MIP_PROPERTIES = 0x2000 ## ::ur_exp_sampler_mip_properties_t - -class ur_structure_type_t(c_int): - def __str__(self): - return str(ur_structure_type_v(self.value)) - - ############################################################################### ## @brief Base for all properties types class ur_base_properties_t(Structure): @@ -1866,180 +2040,6 @@ def ur_event_callback_t_wrapper(hEvent, execStatus, pUserData): return user_defined_callback(hEvent, execStatus, pUserData) return ur_event_callback_t_wrapper -############################################################################### -## @brief Defines unique stable identifiers for all functions -class ur_function_v(IntEnum): - CONTEXT_CREATE = 1 ## Enumerator for ::urContextCreate - CONTEXT_RETAIN = 2 ## Enumerator for ::urContextRetain - CONTEXT_RELEASE = 3 ## Enumerator for ::urContextRelease - CONTEXT_GET_INFO = 4 ## Enumerator for ::urContextGetInfo - CONTEXT_GET_NATIVE_HANDLE = 5 ## Enumerator for ::urContextGetNativeHandle - CONTEXT_CREATE_WITH_NATIVE_HANDLE = 6 ## Enumerator for ::urContextCreateWithNativeHandle - CONTEXT_SET_EXTENDED_DELETER = 7 ## Enumerator for ::urContextSetExtendedDeleter - DEVICE_GET = 8 ## Enumerator for ::urDeviceGet - DEVICE_GET_INFO = 9 ## Enumerator for ::urDeviceGetInfo - DEVICE_RETAIN = 10 ## Enumerator for ::urDeviceRetain - DEVICE_RELEASE = 11 ## Enumerator for ::urDeviceRelease - DEVICE_PARTITION = 12 ## Enumerator for ::urDevicePartition - DEVICE_SELECT_BINARY = 13 ## Enumerator for ::urDeviceSelectBinary - DEVICE_GET_NATIVE_HANDLE = 14 ## Enumerator for ::urDeviceGetNativeHandle - DEVICE_CREATE_WITH_NATIVE_HANDLE = 15 ## Enumerator for ::urDeviceCreateWithNativeHandle - DEVICE_GET_GLOBAL_TIMESTAMPS = 16 ## Enumerator for ::urDeviceGetGlobalTimestamps - ENQUEUE_KERNEL_LAUNCH = 17 ## Enumerator for ::urEnqueueKernelLaunch - ENQUEUE_EVENTS_WAIT = 18 ## Enumerator for ::urEnqueueEventsWait - ENQUEUE_EVENTS_WAIT_WITH_BARRIER = 19 ## Enumerator for ::urEnqueueEventsWaitWithBarrier - ENQUEUE_MEM_BUFFER_READ = 20 ## Enumerator for ::urEnqueueMemBufferRead - ENQUEUE_MEM_BUFFER_WRITE = 21 ## Enumerator for ::urEnqueueMemBufferWrite - ENQUEUE_MEM_BUFFER_READ_RECT = 22 ## Enumerator for ::urEnqueueMemBufferReadRect - ENQUEUE_MEM_BUFFER_WRITE_RECT = 23 ## Enumerator for ::urEnqueueMemBufferWriteRect - ENQUEUE_MEM_BUFFER_COPY = 24 ## Enumerator for ::urEnqueueMemBufferCopy - ENQUEUE_MEM_BUFFER_COPY_RECT = 25 ## Enumerator for ::urEnqueueMemBufferCopyRect - ENQUEUE_MEM_BUFFER_FILL = 26 ## Enumerator for ::urEnqueueMemBufferFill - ENQUEUE_MEM_IMAGE_READ = 27 ## Enumerator for ::urEnqueueMemImageRead - ENQUEUE_MEM_IMAGE_WRITE = 28 ## Enumerator for ::urEnqueueMemImageWrite - ENQUEUE_MEM_IMAGE_COPY = 29 ## Enumerator for ::urEnqueueMemImageCopy - ENQUEUE_MEM_BUFFER_MAP = 30 ## Enumerator for ::urEnqueueMemBufferMap - ENQUEUE_MEM_UNMAP = 31 ## Enumerator for ::urEnqueueMemUnmap - ENQUEUE_USM_FILL = 32 ## Enumerator for ::urEnqueueUSMFill - ENQUEUE_USM_MEMCPY = 33 ## Enumerator for ::urEnqueueUSMMemcpy - ENQUEUE_USM_PREFETCH = 34 ## Enumerator for ::urEnqueueUSMPrefetch - ENQUEUE_USM_ADVISE = 35 ## Enumerator for ::urEnqueueUSMAdvise - ENQUEUE_DEVICE_GLOBAL_VARIABLE_WRITE = 38 ## Enumerator for ::urEnqueueDeviceGlobalVariableWrite - ENQUEUE_DEVICE_GLOBAL_VARIABLE_READ = 39 ## Enumerator for ::urEnqueueDeviceGlobalVariableRead - EVENT_GET_INFO = 40 ## Enumerator for ::urEventGetInfo - EVENT_GET_PROFILING_INFO = 41 ## Enumerator for ::urEventGetProfilingInfo - EVENT_WAIT = 42 ## Enumerator for ::urEventWait - EVENT_RETAIN = 43 ## Enumerator for ::urEventRetain - EVENT_RELEASE = 44 ## Enumerator for ::urEventRelease - EVENT_GET_NATIVE_HANDLE = 45 ## Enumerator for ::urEventGetNativeHandle - EVENT_CREATE_WITH_NATIVE_HANDLE = 46 ## Enumerator for ::urEventCreateWithNativeHandle - EVENT_SET_CALLBACK = 47 ## Enumerator for ::urEventSetCallback - KERNEL_CREATE = 48 ## Enumerator for ::urKernelCreate - KERNEL_SET_ARG_VALUE = 49 ## Enumerator for ::urKernelSetArgValue - KERNEL_SET_ARG_LOCAL = 50 ## Enumerator for ::urKernelSetArgLocal - KERNEL_GET_INFO = 51 ## Enumerator for ::urKernelGetInfo - KERNEL_GET_GROUP_INFO = 52 ## Enumerator for ::urKernelGetGroupInfo - KERNEL_GET_SUB_GROUP_INFO = 53 ## Enumerator for ::urKernelGetSubGroupInfo - KERNEL_RETAIN = 54 ## Enumerator for ::urKernelRetain - KERNEL_RELEASE = 55 ## Enumerator for ::urKernelRelease - KERNEL_SET_ARG_POINTER = 56 ## Enumerator for ::urKernelSetArgPointer - KERNEL_SET_EXEC_INFO = 57 ## Enumerator for ::urKernelSetExecInfo - KERNEL_SET_ARG_SAMPLER = 58 ## Enumerator for ::urKernelSetArgSampler - KERNEL_SET_ARG_MEM_OBJ = 59 ## Enumerator for ::urKernelSetArgMemObj - KERNEL_SET_SPECIALIZATION_CONSTANTS = 60 ## Enumerator for ::urKernelSetSpecializationConstants - KERNEL_GET_NATIVE_HANDLE = 61 ## Enumerator for ::urKernelGetNativeHandle - KERNEL_CREATE_WITH_NATIVE_HANDLE = 62 ## Enumerator for ::urKernelCreateWithNativeHandle - MEM_IMAGE_CREATE = 63 ## Enumerator for ::urMemImageCreate - MEM_BUFFER_CREATE = 64 ## Enumerator for ::urMemBufferCreate - MEM_RETAIN = 65 ## Enumerator for ::urMemRetain - MEM_RELEASE = 66 ## Enumerator for ::urMemRelease - MEM_BUFFER_PARTITION = 67 ## Enumerator for ::urMemBufferPartition - MEM_GET_NATIVE_HANDLE = 68 ## Enumerator for ::urMemGetNativeHandle - ENQUEUE_READ_HOST_PIPE = 69 ## Enumerator for ::urEnqueueReadHostPipe - MEM_GET_INFO = 70 ## Enumerator for ::urMemGetInfo - MEM_IMAGE_GET_INFO = 71 ## Enumerator for ::urMemImageGetInfo - PLATFORM_GET = 72 ## Enumerator for ::urPlatformGet - PLATFORM_GET_INFO = 73 ## Enumerator for ::urPlatformGetInfo - PLATFORM_GET_API_VERSION = 74 ## Enumerator for ::urPlatformGetApiVersion - PLATFORM_GET_NATIVE_HANDLE = 75 ## Enumerator for ::urPlatformGetNativeHandle - PLATFORM_CREATE_WITH_NATIVE_HANDLE = 76 ## Enumerator for ::urPlatformCreateWithNativeHandle - PROGRAM_CREATE_WITH_IL = 78 ## Enumerator for ::urProgramCreateWithIL - PROGRAM_CREATE_WITH_BINARY = 79 ## Enumerator for ::urProgramCreateWithBinary - PROGRAM_BUILD = 80 ## Enumerator for ::urProgramBuild - PROGRAM_COMPILE = 81 ## Enumerator for ::urProgramCompile - PROGRAM_LINK = 82 ## Enumerator for ::urProgramLink - PROGRAM_RETAIN = 83 ## Enumerator for ::urProgramRetain - PROGRAM_RELEASE = 84 ## Enumerator for ::urProgramRelease - PROGRAM_GET_FUNCTION_POINTER = 85 ## Enumerator for ::urProgramGetFunctionPointer - PROGRAM_GET_INFO = 86 ## Enumerator for ::urProgramGetInfo - PROGRAM_GET_BUILD_INFO = 87 ## Enumerator for ::urProgramGetBuildInfo - PROGRAM_SET_SPECIALIZATION_CONSTANTS = 88 ## Enumerator for ::urProgramSetSpecializationConstants - PROGRAM_GET_NATIVE_HANDLE = 89 ## Enumerator for ::urProgramGetNativeHandle - PROGRAM_CREATE_WITH_NATIVE_HANDLE = 90 ## Enumerator for ::urProgramCreateWithNativeHandle - QUEUE_GET_INFO = 91 ## Enumerator for ::urQueueGetInfo - QUEUE_CREATE = 92 ## Enumerator for ::urQueueCreate - QUEUE_RETAIN = 93 ## Enumerator for ::urQueueRetain - QUEUE_RELEASE = 94 ## Enumerator for ::urQueueRelease - QUEUE_GET_NATIVE_HANDLE = 95 ## Enumerator for ::urQueueGetNativeHandle - QUEUE_CREATE_WITH_NATIVE_HANDLE = 96 ## Enumerator for ::urQueueCreateWithNativeHandle - QUEUE_FINISH = 97 ## Enumerator for ::urQueueFinish - QUEUE_FLUSH = 98 ## Enumerator for ::urQueueFlush - INIT = 99 ## Enumerator for ::urInit - TEAR_DOWN = 100 ## Enumerator for ::urTearDown - SAMPLER_CREATE = 101 ## Enumerator for ::urSamplerCreate - SAMPLER_RETAIN = 102 ## Enumerator for ::urSamplerRetain - SAMPLER_RELEASE = 103 ## Enumerator for ::urSamplerRelease - SAMPLER_GET_INFO = 104 ## Enumerator for ::urSamplerGetInfo - SAMPLER_GET_NATIVE_HANDLE = 105 ## Enumerator for ::urSamplerGetNativeHandle - SAMPLER_CREATE_WITH_NATIVE_HANDLE = 106 ## Enumerator for ::urSamplerCreateWithNativeHandle - USM_HOST_ALLOC = 107 ## Enumerator for ::urUSMHostAlloc - USM_DEVICE_ALLOC = 108 ## Enumerator for ::urUSMDeviceAlloc - USM_SHARED_ALLOC = 109 ## Enumerator for ::urUSMSharedAlloc - USM_FREE = 110 ## Enumerator for ::urUSMFree - USM_GET_MEM_ALLOC_INFO = 111 ## Enumerator for ::urUSMGetMemAllocInfo - USM_POOL_CREATE = 112 ## Enumerator for ::urUSMPoolCreate - COMMAND_BUFFER_CREATE_EXP = 113 ## Enumerator for ::urCommandBufferCreateExp - PLATFORM_GET_BACKEND_OPTION = 114 ## Enumerator for ::urPlatformGetBackendOption - MEM_BUFFER_CREATE_WITH_NATIVE_HANDLE = 115 ## Enumerator for ::urMemBufferCreateWithNativeHandle - MEM_IMAGE_CREATE_WITH_NATIVE_HANDLE = 116 ## Enumerator for ::urMemImageCreateWithNativeHandle - ENQUEUE_WRITE_HOST_PIPE = 117 ## Enumerator for ::urEnqueueWriteHostPipe - USM_POOL_RETAIN = 118 ## Enumerator for ::urUSMPoolRetain - USM_POOL_RELEASE = 119 ## Enumerator for ::urUSMPoolRelease - USM_POOL_GET_INFO = 120 ## Enumerator for ::urUSMPoolGetInfo - COMMAND_BUFFER_RETAIN_EXP = 121 ## Enumerator for ::urCommandBufferRetainExp - COMMAND_BUFFER_RELEASE_EXP = 122 ## Enumerator for ::urCommandBufferReleaseExp - COMMAND_BUFFER_FINALIZE_EXP = 123 ## Enumerator for ::urCommandBufferFinalizeExp - COMMAND_BUFFER_APPEND_KERNEL_LAUNCH_EXP = 125 ## Enumerator for ::urCommandBufferAppendKernelLaunchExp - COMMAND_BUFFER_ENQUEUE_EXP = 128 ## Enumerator for ::urCommandBufferEnqueueExp - COMMAND_BUFFER_APPEND_MEMCPY_USM_EXP = 129 ## Enumerator for ::urCommandBufferAppendMemcpyUSMExp - COMMAND_BUFFER_APPEND_MEMBUFFER_COPY_EXP = 130 ## Enumerator for ::urCommandBufferAppendMembufferCopyExp - COMMAND_BUFFER_APPEND_MEMBUFFER_COPY_RECT_EXP = 131 ## Enumerator for ::urCommandBufferAppendMembufferCopyRectExp - USM_PITCHED_ALLOC_EXP = 132 ## Enumerator for ::urUSMPitchedAllocExp - BINDLESS_IMAGES_UNSAMPLED_IMAGE_HANDLE_DESTROY_EXP = 133## Enumerator for ::urBindlessImagesUnsampledImageHandleDestroyExp - BINDLESS_IMAGES_SAMPLED_IMAGE_HANDLE_DESTROY_EXP = 134 ## Enumerator for ::urBindlessImagesSampledImageHandleDestroyExp - BINDLESS_IMAGES_IMAGE_ALLOCATE_EXP = 135 ## Enumerator for ::urBindlessImagesImageAllocateExp - BINDLESS_IMAGES_IMAGE_FREE_EXP = 136 ## Enumerator for ::urBindlessImagesImageFreeExp - BINDLESS_IMAGES_UNSAMPLED_IMAGE_CREATE_EXP = 137## Enumerator for ::urBindlessImagesUnsampledImageCreateExp - BINDLESS_IMAGES_SAMPLED_IMAGE_CREATE_EXP = 138 ## Enumerator for ::urBindlessImagesSampledImageCreateExp - BINDLESS_IMAGES_IMAGE_COPY_EXP = 139 ## Enumerator for ::urBindlessImagesImageCopyExp - BINDLESS_IMAGES_IMAGE_GET_INFO_EXP = 140 ## Enumerator for ::urBindlessImagesImageGetInfoExp - BINDLESS_IMAGES_MIPMAP_GET_LEVEL_EXP = 141 ## Enumerator for ::urBindlessImagesMipmapGetLevelExp - BINDLESS_IMAGES_MIPMAP_FREE_EXP = 142 ## Enumerator for ::urBindlessImagesMipmapFreeExp - BINDLESS_IMAGES_IMPORT_OPAQUE_FD_EXP = 143 ## Enumerator for ::urBindlessImagesImportOpaqueFDExp - BINDLESS_IMAGES_MAP_EXTERNAL_ARRAY_EXP = 144 ## Enumerator for ::urBindlessImagesMapExternalArrayExp - BINDLESS_IMAGES_RELEASE_INTEROP_EXP = 145 ## Enumerator for ::urBindlessImagesReleaseInteropExp - BINDLESS_IMAGES_IMPORT_EXTERNAL_SEMAPHORE_OPAQUE_FD_EXP = 146 ## Enumerator for ::urBindlessImagesImportExternalSemaphoreOpaqueFDExp - BINDLESS_IMAGES_DESTROY_EXTERNAL_SEMAPHORE_EXP = 147## Enumerator for ::urBindlessImagesDestroyExternalSemaphoreExp - BINDLESS_IMAGES_WAIT_EXTERNAL_SEMAPHORE_EXP = 148 ## Enumerator for ::urBindlessImagesWaitExternalSemaphoreExp - BINDLESS_IMAGES_SIGNAL_EXTERNAL_SEMAPHORE_EXP = 149 ## Enumerator for ::urBindlessImagesSignalExternalSemaphoreExp - PLATFORM_GET_LAST_ERROR = 150 ## Enumerator for ::urPlatformGetLastError - ENQUEUE_USM_FILL_2D = 151 ## Enumerator for ::urEnqueueUSMFill2D - ENQUEUE_USM_MEMCPY_2D = 152 ## Enumerator for ::urEnqueueUSMMemcpy2D - VIRTUAL_MEM_GRANULARITY_GET_INFO = 153 ## Enumerator for ::urVirtualMemGranularityGetInfo - VIRTUAL_MEM_RESERVE = 154 ## Enumerator for ::urVirtualMemReserve - VIRTUAL_MEM_FREE = 155 ## Enumerator for ::urVirtualMemFree - VIRTUAL_MEM_MAP = 156 ## Enumerator for ::urVirtualMemMap - VIRTUAL_MEM_UNMAP = 157 ## Enumerator for ::urVirtualMemUnmap - VIRTUAL_MEM_SET_ACCESS = 158 ## Enumerator for ::urVirtualMemSetAccess - VIRTUAL_MEM_GET_INFO = 159 ## Enumerator for ::urVirtualMemGetInfo - PHYSICAL_MEM_CREATE = 160 ## Enumerator for ::urPhysicalMemCreate - PHYSICAL_MEM_RETAIN = 161 ## Enumerator for ::urPhysicalMemRetain - PHYSICAL_MEM_RELEASE = 162 ## Enumerator for ::urPhysicalMemRelease - USM_IMPORT_EXP = 163 ## Enumerator for ::urUSMImportExp - USM_RELEASE_EXP = 164 ## Enumerator for ::urUSMReleaseExp - USM_P2P_ENABLE_PEER_ACCESS_EXP = 165 ## Enumerator for ::urUsmP2PEnablePeerAccessExp - USM_P2P_DISABLE_PEER_ACCESS_EXP = 166 ## Enumerator for ::urUsmP2PDisablePeerAccessExp - USM_P2P_PEER_ACCESS_GET_INFO_EXP = 167 ## Enumerator for ::urUsmP2PPeerAccessGetInfoExp - COMMAND_BUFFER_APPEND_MEMBUFFER_WRITE_EXP = 168 ## Enumerator for ::urCommandBufferAppendMembufferWriteExp - COMMAND_BUFFER_APPEND_MEMBUFFER_READ_EXP = 169 ## Enumerator for ::urCommandBufferAppendMembufferReadExp - COMMAND_BUFFER_APPEND_MEMBUFFER_WRITE_RECT_EXP = 170## Enumerator for ::urCommandBufferAppendMembufferWriteRectExp - COMMAND_BUFFER_APPEND_MEMBUFFER_READ_RECT_EXP = 171 ## Enumerator for ::urCommandBufferAppendMembufferReadRectExp - -class ur_function_t(c_int): - def __str__(self): - return str(ur_function_v(self.value)) - - ############################################################################### ## @brief Map flags class ur_map_flags_v(IntEnum): diff --git a/include/ur_api.h b/include/ur_api.h index 67cd0d8beb..6f88c7870a 100644 --- a/include/ur_api.h +++ b/include/ur_api.h @@ -24,6 +24,232 @@ extern "C" { #endif +// Intel 'oneAPI' Unified Runtime function registry +#if !defined(__GNUC__) +#pragma region registry +#endif +/////////////////////////////////////////////////////////////////////////////// +/// @brief Defines unique stable identifiers for all functions +typedef enum ur_function_t { + UR_FUNCTION_CONTEXT_CREATE = 1, ///< Enumerator for ::urContextCreate + UR_FUNCTION_CONTEXT_RETAIN = 2, ///< Enumerator for ::urContextRetain + UR_FUNCTION_CONTEXT_RELEASE = 3, ///< Enumerator for ::urContextRelease + UR_FUNCTION_CONTEXT_GET_INFO = 4, ///< Enumerator for ::urContextGetInfo + UR_FUNCTION_CONTEXT_GET_NATIVE_HANDLE = 5, ///< Enumerator for ::urContextGetNativeHandle + UR_FUNCTION_CONTEXT_CREATE_WITH_NATIVE_HANDLE = 6, ///< Enumerator for ::urContextCreateWithNativeHandle + UR_FUNCTION_CONTEXT_SET_EXTENDED_DELETER = 7, ///< Enumerator for ::urContextSetExtendedDeleter + UR_FUNCTION_DEVICE_GET = 8, ///< Enumerator for ::urDeviceGet + UR_FUNCTION_DEVICE_GET_INFO = 9, ///< Enumerator for ::urDeviceGetInfo + UR_FUNCTION_DEVICE_RETAIN = 10, ///< Enumerator for ::urDeviceRetain + UR_FUNCTION_DEVICE_RELEASE = 11, ///< Enumerator for ::urDeviceRelease + UR_FUNCTION_DEVICE_PARTITION = 12, ///< Enumerator for ::urDevicePartition + UR_FUNCTION_DEVICE_SELECT_BINARY = 13, ///< Enumerator for ::urDeviceSelectBinary + UR_FUNCTION_DEVICE_GET_NATIVE_HANDLE = 14, ///< Enumerator for ::urDeviceGetNativeHandle + UR_FUNCTION_DEVICE_CREATE_WITH_NATIVE_HANDLE = 15, ///< Enumerator for ::urDeviceCreateWithNativeHandle + UR_FUNCTION_DEVICE_GET_GLOBAL_TIMESTAMPS = 16, ///< Enumerator for ::urDeviceGetGlobalTimestamps + UR_FUNCTION_ENQUEUE_KERNEL_LAUNCH = 17, ///< Enumerator for ::urEnqueueKernelLaunch + UR_FUNCTION_ENQUEUE_EVENTS_WAIT = 18, ///< Enumerator for ::urEnqueueEventsWait + UR_FUNCTION_ENQUEUE_EVENTS_WAIT_WITH_BARRIER = 19, ///< Enumerator for ::urEnqueueEventsWaitWithBarrier + UR_FUNCTION_ENQUEUE_MEM_BUFFER_READ = 20, ///< Enumerator for ::urEnqueueMemBufferRead + UR_FUNCTION_ENQUEUE_MEM_BUFFER_WRITE = 21, ///< Enumerator for ::urEnqueueMemBufferWrite + UR_FUNCTION_ENQUEUE_MEM_BUFFER_READ_RECT = 22, ///< Enumerator for ::urEnqueueMemBufferReadRect + UR_FUNCTION_ENQUEUE_MEM_BUFFER_WRITE_RECT = 23, ///< Enumerator for ::urEnqueueMemBufferWriteRect + UR_FUNCTION_ENQUEUE_MEM_BUFFER_COPY = 24, ///< Enumerator for ::urEnqueueMemBufferCopy + UR_FUNCTION_ENQUEUE_MEM_BUFFER_COPY_RECT = 25, ///< Enumerator for ::urEnqueueMemBufferCopyRect + UR_FUNCTION_ENQUEUE_MEM_BUFFER_FILL = 26, ///< Enumerator for ::urEnqueueMemBufferFill + UR_FUNCTION_ENQUEUE_MEM_IMAGE_READ = 27, ///< Enumerator for ::urEnqueueMemImageRead + UR_FUNCTION_ENQUEUE_MEM_IMAGE_WRITE = 28, ///< Enumerator for ::urEnqueueMemImageWrite + UR_FUNCTION_ENQUEUE_MEM_IMAGE_COPY = 29, ///< Enumerator for ::urEnqueueMemImageCopy + UR_FUNCTION_ENQUEUE_MEM_BUFFER_MAP = 30, ///< Enumerator for ::urEnqueueMemBufferMap + UR_FUNCTION_ENQUEUE_MEM_UNMAP = 31, ///< Enumerator for ::urEnqueueMemUnmap + UR_FUNCTION_ENQUEUE_USM_FILL = 32, ///< Enumerator for ::urEnqueueUSMFill + UR_FUNCTION_ENQUEUE_USM_MEMCPY = 33, ///< Enumerator for ::urEnqueueUSMMemcpy + UR_FUNCTION_ENQUEUE_USM_PREFETCH = 34, ///< Enumerator for ::urEnqueueUSMPrefetch + UR_FUNCTION_ENQUEUE_USM_ADVISE = 35, ///< Enumerator for ::urEnqueueUSMAdvise + UR_FUNCTION_ENQUEUE_DEVICE_GLOBAL_VARIABLE_WRITE = 38, ///< Enumerator for ::urEnqueueDeviceGlobalVariableWrite + UR_FUNCTION_ENQUEUE_DEVICE_GLOBAL_VARIABLE_READ = 39, ///< Enumerator for ::urEnqueueDeviceGlobalVariableRead + UR_FUNCTION_EVENT_GET_INFO = 40, ///< Enumerator for ::urEventGetInfo + UR_FUNCTION_EVENT_GET_PROFILING_INFO = 41, ///< Enumerator for ::urEventGetProfilingInfo + UR_FUNCTION_EVENT_WAIT = 42, ///< Enumerator for ::urEventWait + UR_FUNCTION_EVENT_RETAIN = 43, ///< Enumerator for ::urEventRetain + UR_FUNCTION_EVENT_RELEASE = 44, ///< Enumerator for ::urEventRelease + UR_FUNCTION_EVENT_GET_NATIVE_HANDLE = 45, ///< Enumerator for ::urEventGetNativeHandle + UR_FUNCTION_EVENT_CREATE_WITH_NATIVE_HANDLE = 46, ///< Enumerator for ::urEventCreateWithNativeHandle + UR_FUNCTION_EVENT_SET_CALLBACK = 47, ///< Enumerator for ::urEventSetCallback + UR_FUNCTION_KERNEL_CREATE = 48, ///< Enumerator for ::urKernelCreate + UR_FUNCTION_KERNEL_SET_ARG_VALUE = 49, ///< Enumerator for ::urKernelSetArgValue + UR_FUNCTION_KERNEL_SET_ARG_LOCAL = 50, ///< Enumerator for ::urKernelSetArgLocal + UR_FUNCTION_KERNEL_GET_INFO = 51, ///< Enumerator for ::urKernelGetInfo + UR_FUNCTION_KERNEL_GET_GROUP_INFO = 52, ///< Enumerator for ::urKernelGetGroupInfo + UR_FUNCTION_KERNEL_GET_SUB_GROUP_INFO = 53, ///< Enumerator for ::urKernelGetSubGroupInfo + UR_FUNCTION_KERNEL_RETAIN = 54, ///< Enumerator for ::urKernelRetain + UR_FUNCTION_KERNEL_RELEASE = 55, ///< Enumerator for ::urKernelRelease + UR_FUNCTION_KERNEL_SET_ARG_POINTER = 56, ///< Enumerator for ::urKernelSetArgPointer + UR_FUNCTION_KERNEL_SET_EXEC_INFO = 57, ///< Enumerator for ::urKernelSetExecInfo + UR_FUNCTION_KERNEL_SET_ARG_SAMPLER = 58, ///< Enumerator for ::urKernelSetArgSampler + UR_FUNCTION_KERNEL_SET_ARG_MEM_OBJ = 59, ///< Enumerator for ::urKernelSetArgMemObj + UR_FUNCTION_KERNEL_SET_SPECIALIZATION_CONSTANTS = 60, ///< Enumerator for ::urKernelSetSpecializationConstants + UR_FUNCTION_KERNEL_GET_NATIVE_HANDLE = 61, ///< Enumerator for ::urKernelGetNativeHandle + UR_FUNCTION_KERNEL_CREATE_WITH_NATIVE_HANDLE = 62, ///< Enumerator for ::urKernelCreateWithNativeHandle + UR_FUNCTION_MEM_IMAGE_CREATE = 63, ///< Enumerator for ::urMemImageCreate + UR_FUNCTION_MEM_BUFFER_CREATE = 64, ///< Enumerator for ::urMemBufferCreate + UR_FUNCTION_MEM_RETAIN = 65, ///< Enumerator for ::urMemRetain + UR_FUNCTION_MEM_RELEASE = 66, ///< Enumerator for ::urMemRelease + UR_FUNCTION_MEM_BUFFER_PARTITION = 67, ///< Enumerator for ::urMemBufferPartition + UR_FUNCTION_MEM_GET_NATIVE_HANDLE = 68, ///< Enumerator for ::urMemGetNativeHandle + UR_FUNCTION_ENQUEUE_READ_HOST_PIPE = 69, ///< Enumerator for ::urEnqueueReadHostPipe + UR_FUNCTION_MEM_GET_INFO = 70, ///< Enumerator for ::urMemGetInfo + UR_FUNCTION_MEM_IMAGE_GET_INFO = 71, ///< Enumerator for ::urMemImageGetInfo + UR_FUNCTION_PLATFORM_GET = 72, ///< Enumerator for ::urPlatformGet + UR_FUNCTION_PLATFORM_GET_INFO = 73, ///< Enumerator for ::urPlatformGetInfo + UR_FUNCTION_PLATFORM_GET_API_VERSION = 74, ///< Enumerator for ::urPlatformGetApiVersion + UR_FUNCTION_PLATFORM_GET_NATIVE_HANDLE = 75, ///< Enumerator for ::urPlatformGetNativeHandle + UR_FUNCTION_PLATFORM_CREATE_WITH_NATIVE_HANDLE = 76, ///< Enumerator for ::urPlatformCreateWithNativeHandle + UR_FUNCTION_PROGRAM_CREATE_WITH_IL = 78, ///< Enumerator for ::urProgramCreateWithIL + UR_FUNCTION_PROGRAM_CREATE_WITH_BINARY = 79, ///< Enumerator for ::urProgramCreateWithBinary + UR_FUNCTION_PROGRAM_BUILD = 80, ///< Enumerator for ::urProgramBuild + UR_FUNCTION_PROGRAM_COMPILE = 81, ///< Enumerator for ::urProgramCompile + UR_FUNCTION_PROGRAM_LINK = 82, ///< Enumerator for ::urProgramLink + UR_FUNCTION_PROGRAM_RETAIN = 83, ///< Enumerator for ::urProgramRetain + UR_FUNCTION_PROGRAM_RELEASE = 84, ///< Enumerator for ::urProgramRelease + UR_FUNCTION_PROGRAM_GET_FUNCTION_POINTER = 85, ///< Enumerator for ::urProgramGetFunctionPointer + UR_FUNCTION_PROGRAM_GET_INFO = 86, ///< Enumerator for ::urProgramGetInfo + UR_FUNCTION_PROGRAM_GET_BUILD_INFO = 87, ///< Enumerator for ::urProgramGetBuildInfo + UR_FUNCTION_PROGRAM_SET_SPECIALIZATION_CONSTANTS = 88, ///< Enumerator for ::urProgramSetSpecializationConstants + UR_FUNCTION_PROGRAM_GET_NATIVE_HANDLE = 89, ///< Enumerator for ::urProgramGetNativeHandle + UR_FUNCTION_PROGRAM_CREATE_WITH_NATIVE_HANDLE = 90, ///< Enumerator for ::urProgramCreateWithNativeHandle + UR_FUNCTION_QUEUE_GET_INFO = 91, ///< Enumerator for ::urQueueGetInfo + UR_FUNCTION_QUEUE_CREATE = 92, ///< Enumerator for ::urQueueCreate + UR_FUNCTION_QUEUE_RETAIN = 93, ///< Enumerator for ::urQueueRetain + UR_FUNCTION_QUEUE_RELEASE = 94, ///< Enumerator for ::urQueueRelease + UR_FUNCTION_QUEUE_GET_NATIVE_HANDLE = 95, ///< Enumerator for ::urQueueGetNativeHandle + UR_FUNCTION_QUEUE_CREATE_WITH_NATIVE_HANDLE = 96, ///< Enumerator for ::urQueueCreateWithNativeHandle + UR_FUNCTION_QUEUE_FINISH = 97, ///< Enumerator for ::urQueueFinish + UR_FUNCTION_QUEUE_FLUSH = 98, ///< Enumerator for ::urQueueFlush + UR_FUNCTION_INIT = 99, ///< Enumerator for ::urInit + UR_FUNCTION_TEAR_DOWN = 100, ///< Enumerator for ::urTearDown + UR_FUNCTION_SAMPLER_CREATE = 101, ///< Enumerator for ::urSamplerCreate + UR_FUNCTION_SAMPLER_RETAIN = 102, ///< Enumerator for ::urSamplerRetain + UR_FUNCTION_SAMPLER_RELEASE = 103, ///< Enumerator for ::urSamplerRelease + UR_FUNCTION_SAMPLER_GET_INFO = 104, ///< Enumerator for ::urSamplerGetInfo + UR_FUNCTION_SAMPLER_GET_NATIVE_HANDLE = 105, ///< Enumerator for ::urSamplerGetNativeHandle + UR_FUNCTION_SAMPLER_CREATE_WITH_NATIVE_HANDLE = 106, ///< Enumerator for ::urSamplerCreateWithNativeHandle + UR_FUNCTION_USM_HOST_ALLOC = 107, ///< Enumerator for ::urUSMHostAlloc + UR_FUNCTION_USM_DEVICE_ALLOC = 108, ///< Enumerator for ::urUSMDeviceAlloc + UR_FUNCTION_USM_SHARED_ALLOC = 109, ///< Enumerator for ::urUSMSharedAlloc + UR_FUNCTION_USM_FREE = 110, ///< Enumerator for ::urUSMFree + UR_FUNCTION_USM_GET_MEM_ALLOC_INFO = 111, ///< Enumerator for ::urUSMGetMemAllocInfo + UR_FUNCTION_USM_POOL_CREATE = 112, ///< Enumerator for ::urUSMPoolCreate + UR_FUNCTION_COMMAND_BUFFER_CREATE_EXP = 113, ///< Enumerator for ::urCommandBufferCreateExp + UR_FUNCTION_PLATFORM_GET_BACKEND_OPTION = 114, ///< Enumerator for ::urPlatformGetBackendOption + UR_FUNCTION_MEM_BUFFER_CREATE_WITH_NATIVE_HANDLE = 115, ///< Enumerator for ::urMemBufferCreateWithNativeHandle + UR_FUNCTION_MEM_IMAGE_CREATE_WITH_NATIVE_HANDLE = 116, ///< Enumerator for ::urMemImageCreateWithNativeHandle + UR_FUNCTION_ENQUEUE_WRITE_HOST_PIPE = 117, ///< Enumerator for ::urEnqueueWriteHostPipe + UR_FUNCTION_USM_POOL_RETAIN = 118, ///< Enumerator for ::urUSMPoolRetain + UR_FUNCTION_USM_POOL_RELEASE = 119, ///< Enumerator for ::urUSMPoolRelease + UR_FUNCTION_USM_POOL_GET_INFO = 120, ///< Enumerator for ::urUSMPoolGetInfo + UR_FUNCTION_COMMAND_BUFFER_RETAIN_EXP = 121, ///< Enumerator for ::urCommandBufferRetainExp + UR_FUNCTION_COMMAND_BUFFER_RELEASE_EXP = 122, ///< Enumerator for ::urCommandBufferReleaseExp + UR_FUNCTION_COMMAND_BUFFER_FINALIZE_EXP = 123, ///< Enumerator for ::urCommandBufferFinalizeExp + UR_FUNCTION_COMMAND_BUFFER_APPEND_KERNEL_LAUNCH_EXP = 125, ///< Enumerator for ::urCommandBufferAppendKernelLaunchExp + UR_FUNCTION_COMMAND_BUFFER_ENQUEUE_EXP = 128, ///< Enumerator for ::urCommandBufferEnqueueExp + UR_FUNCTION_COMMAND_BUFFER_APPEND_MEMCPY_USM_EXP = 129, ///< Enumerator for ::urCommandBufferAppendMemcpyUSMExp + UR_FUNCTION_COMMAND_BUFFER_APPEND_MEMBUFFER_COPY_EXP = 130, ///< Enumerator for ::urCommandBufferAppendMembufferCopyExp + UR_FUNCTION_COMMAND_BUFFER_APPEND_MEMBUFFER_COPY_RECT_EXP = 131, ///< Enumerator for ::urCommandBufferAppendMembufferCopyRectExp + UR_FUNCTION_USM_PITCHED_ALLOC_EXP = 132, ///< Enumerator for ::urUSMPitchedAllocExp + UR_FUNCTION_BINDLESS_IMAGES_UNSAMPLED_IMAGE_HANDLE_DESTROY_EXP = 133, ///< Enumerator for ::urBindlessImagesUnsampledImageHandleDestroyExp + UR_FUNCTION_BINDLESS_IMAGES_SAMPLED_IMAGE_HANDLE_DESTROY_EXP = 134, ///< Enumerator for ::urBindlessImagesSampledImageHandleDestroyExp + UR_FUNCTION_BINDLESS_IMAGES_IMAGE_ALLOCATE_EXP = 135, ///< Enumerator for ::urBindlessImagesImageAllocateExp + UR_FUNCTION_BINDLESS_IMAGES_IMAGE_FREE_EXP = 136, ///< Enumerator for ::urBindlessImagesImageFreeExp + UR_FUNCTION_BINDLESS_IMAGES_UNSAMPLED_IMAGE_CREATE_EXP = 137, ///< Enumerator for ::urBindlessImagesUnsampledImageCreateExp + UR_FUNCTION_BINDLESS_IMAGES_SAMPLED_IMAGE_CREATE_EXP = 138, ///< Enumerator for ::urBindlessImagesSampledImageCreateExp + UR_FUNCTION_BINDLESS_IMAGES_IMAGE_COPY_EXP = 139, ///< Enumerator for ::urBindlessImagesImageCopyExp + UR_FUNCTION_BINDLESS_IMAGES_IMAGE_GET_INFO_EXP = 140, ///< Enumerator for ::urBindlessImagesImageGetInfoExp + UR_FUNCTION_BINDLESS_IMAGES_MIPMAP_GET_LEVEL_EXP = 141, ///< Enumerator for ::urBindlessImagesMipmapGetLevelExp + UR_FUNCTION_BINDLESS_IMAGES_MIPMAP_FREE_EXP = 142, ///< Enumerator for ::urBindlessImagesMipmapFreeExp + UR_FUNCTION_BINDLESS_IMAGES_IMPORT_OPAQUE_FD_EXP = 143, ///< Enumerator for ::urBindlessImagesImportOpaqueFDExp + UR_FUNCTION_BINDLESS_IMAGES_MAP_EXTERNAL_ARRAY_EXP = 144, ///< Enumerator for ::urBindlessImagesMapExternalArrayExp + UR_FUNCTION_BINDLESS_IMAGES_RELEASE_INTEROP_EXP = 145, ///< Enumerator for ::urBindlessImagesReleaseInteropExp + UR_FUNCTION_BINDLESS_IMAGES_IMPORT_EXTERNAL_SEMAPHORE_OPAQUE_FD_EXP = 146, ///< Enumerator for ::urBindlessImagesImportExternalSemaphoreOpaqueFDExp + UR_FUNCTION_BINDLESS_IMAGES_DESTROY_EXTERNAL_SEMAPHORE_EXP = 147, ///< Enumerator for ::urBindlessImagesDestroyExternalSemaphoreExp + UR_FUNCTION_BINDLESS_IMAGES_WAIT_EXTERNAL_SEMAPHORE_EXP = 148, ///< Enumerator for ::urBindlessImagesWaitExternalSemaphoreExp + UR_FUNCTION_BINDLESS_IMAGES_SIGNAL_EXTERNAL_SEMAPHORE_EXP = 149, ///< Enumerator for ::urBindlessImagesSignalExternalSemaphoreExp + UR_FUNCTION_PLATFORM_GET_LAST_ERROR = 150, ///< Enumerator for ::urPlatformGetLastError + UR_FUNCTION_ENQUEUE_USM_FILL_2D = 151, ///< Enumerator for ::urEnqueueUSMFill2D + UR_FUNCTION_ENQUEUE_USM_MEMCPY_2D = 152, ///< Enumerator for ::urEnqueueUSMMemcpy2D + UR_FUNCTION_VIRTUAL_MEM_GRANULARITY_GET_INFO = 153, ///< Enumerator for ::urVirtualMemGranularityGetInfo + UR_FUNCTION_VIRTUAL_MEM_RESERVE = 154, ///< Enumerator for ::urVirtualMemReserve + UR_FUNCTION_VIRTUAL_MEM_FREE = 155, ///< Enumerator for ::urVirtualMemFree + UR_FUNCTION_VIRTUAL_MEM_MAP = 156, ///< Enumerator for ::urVirtualMemMap + UR_FUNCTION_VIRTUAL_MEM_UNMAP = 157, ///< Enumerator for ::urVirtualMemUnmap + UR_FUNCTION_VIRTUAL_MEM_SET_ACCESS = 158, ///< Enumerator for ::urVirtualMemSetAccess + UR_FUNCTION_VIRTUAL_MEM_GET_INFO = 159, ///< Enumerator for ::urVirtualMemGetInfo + UR_FUNCTION_PHYSICAL_MEM_CREATE = 160, ///< Enumerator for ::urPhysicalMemCreate + UR_FUNCTION_PHYSICAL_MEM_RETAIN = 161, ///< Enumerator for ::urPhysicalMemRetain + UR_FUNCTION_PHYSICAL_MEM_RELEASE = 162, ///< Enumerator for ::urPhysicalMemRelease + UR_FUNCTION_USM_IMPORT_EXP = 163, ///< Enumerator for ::urUSMImportExp + UR_FUNCTION_USM_RELEASE_EXP = 164, ///< Enumerator for ::urUSMReleaseExp + UR_FUNCTION_USM_P2P_ENABLE_PEER_ACCESS_EXP = 165, ///< Enumerator for ::urUsmP2PEnablePeerAccessExp + UR_FUNCTION_USM_P2P_DISABLE_PEER_ACCESS_EXP = 166, ///< Enumerator for ::urUsmP2PDisablePeerAccessExp + UR_FUNCTION_USM_P2P_PEER_ACCESS_GET_INFO_EXP = 167, ///< Enumerator for ::urUsmP2PPeerAccessGetInfoExp + UR_FUNCTION_COMMAND_BUFFER_APPEND_MEMBUFFER_WRITE_EXP = 168, ///< Enumerator for ::urCommandBufferAppendMembufferWriteExp + UR_FUNCTION_COMMAND_BUFFER_APPEND_MEMBUFFER_READ_EXP = 169, ///< Enumerator for ::urCommandBufferAppendMembufferReadExp + UR_FUNCTION_COMMAND_BUFFER_APPEND_MEMBUFFER_WRITE_RECT_EXP = 170, ///< Enumerator for ::urCommandBufferAppendMembufferWriteRectExp + UR_FUNCTION_COMMAND_BUFFER_APPEND_MEMBUFFER_READ_RECT_EXP = 171, ///< Enumerator for ::urCommandBufferAppendMembufferReadRectExp + /// @cond + UR_FUNCTION_FORCE_UINT32 = 0x7fffffff + /// @endcond + +} ur_function_t; + +/////////////////////////////////////////////////////////////////////////////// +/// @brief Defines structure types +typedef enum ur_structure_type_t { + UR_STRUCTURE_TYPE_CONTEXT_PROPERTIES = 0, ///< ::ur_context_properties_t + UR_STRUCTURE_TYPE_IMAGE_DESC = 1, ///< ::ur_image_desc_t + UR_STRUCTURE_TYPE_BUFFER_PROPERTIES = 2, ///< ::ur_buffer_properties_t + UR_STRUCTURE_TYPE_BUFFER_REGION = 3, ///< ::ur_buffer_region_t + UR_STRUCTURE_TYPE_BUFFER_CHANNEL_PROPERTIES = 4, ///< ::ur_buffer_channel_properties_t + UR_STRUCTURE_TYPE_BUFFER_ALLOC_LOCATION_PROPERTIES = 5, ///< ::ur_buffer_alloc_location_properties_t + UR_STRUCTURE_TYPE_PROGRAM_PROPERTIES = 6, ///< ::ur_program_properties_t + UR_STRUCTURE_TYPE_USM_DESC = 7, ///< ::ur_usm_desc_t + UR_STRUCTURE_TYPE_USM_HOST_DESC = 8, ///< ::ur_usm_host_desc_t + UR_STRUCTURE_TYPE_USM_DEVICE_DESC = 9, ///< ::ur_usm_device_desc_t + UR_STRUCTURE_TYPE_USM_POOL_DESC = 10, ///< ::ur_usm_pool_desc_t + UR_STRUCTURE_TYPE_USM_POOL_LIMITS_DESC = 11, ///< ::ur_usm_pool_limits_desc_t + UR_STRUCTURE_TYPE_DEVICE_BINARY = 12, ///< ::ur_device_binary_t + UR_STRUCTURE_TYPE_SAMPLER_DESC = 13, ///< ::ur_sampler_desc_t + UR_STRUCTURE_TYPE_QUEUE_PROPERTIES = 14, ///< ::ur_queue_properties_t + UR_STRUCTURE_TYPE_QUEUE_INDEX_PROPERTIES = 15, ///< ::ur_queue_index_properties_t + UR_STRUCTURE_TYPE_CONTEXT_NATIVE_PROPERTIES = 16, ///< ::ur_context_native_properties_t + UR_STRUCTURE_TYPE_KERNEL_NATIVE_PROPERTIES = 17, ///< ::ur_kernel_native_properties_t + UR_STRUCTURE_TYPE_QUEUE_NATIVE_PROPERTIES = 18, ///< ::ur_queue_native_properties_t + UR_STRUCTURE_TYPE_MEM_NATIVE_PROPERTIES = 19, ///< ::ur_mem_native_properties_t + UR_STRUCTURE_TYPE_EVENT_NATIVE_PROPERTIES = 20, ///< ::ur_event_native_properties_t + UR_STRUCTURE_TYPE_PLATFORM_NATIVE_PROPERTIES = 21, ///< ::ur_platform_native_properties_t + UR_STRUCTURE_TYPE_DEVICE_NATIVE_PROPERTIES = 22, ///< ::ur_device_native_properties_t + UR_STRUCTURE_TYPE_PROGRAM_NATIVE_PROPERTIES = 23, ///< ::ur_program_native_properties_t + UR_STRUCTURE_TYPE_SAMPLER_NATIVE_PROPERTIES = 24, ///< ::ur_sampler_native_properties_t + UR_STRUCTURE_TYPE_QUEUE_NATIVE_DESC = 25, ///< ::ur_queue_native_desc_t + UR_STRUCTURE_TYPE_DEVICE_PARTITION_PROPERTIES = 26, ///< ::ur_device_partition_properties_t + UR_STRUCTURE_TYPE_KERNEL_ARG_MEM_OBJ_PROPERTIES = 27, ///< ::ur_kernel_arg_mem_obj_properties_t + UR_STRUCTURE_TYPE_PHYSICAL_MEM_PROPERTIES = 28, ///< ::ur_physical_mem_properties_t + UR_STRUCTURE_TYPE_KERNEL_ARG_POINTER_PROPERTIES = 29, ///< ::ur_kernel_arg_pointer_properties_t + UR_STRUCTURE_TYPE_KERNEL_ARG_SAMPLER_PROPERTIES = 30, ///< ::ur_kernel_arg_sampler_properties_t + UR_STRUCTURE_TYPE_KERNEL_EXEC_INFO_PROPERTIES = 31, ///< ::ur_kernel_exec_info_properties_t + UR_STRUCTURE_TYPE_KERNEL_ARG_VALUE_PROPERTIES = 32, ///< ::ur_kernel_arg_value_properties_t + UR_STRUCTURE_TYPE_KERNEL_ARG_LOCAL_PROPERTIES = 33, ///< ::ur_kernel_arg_local_properties_t + UR_STRUCTURE_TYPE_EXP_COMMAND_BUFFER_DESC = 0x1000, ///< ::ur_exp_command_buffer_desc_t + UR_STRUCTURE_TYPE_EXP_SAMPLER_MIP_PROPERTIES = 0x2000, ///< ::ur_exp_sampler_mip_properties_t + /// @cond + UR_STRUCTURE_TYPE_FORCE_UINT32 = 0x7fffffff + /// @endcond + +} ur_structure_type_t; + +#if !defined(__GNUC__) +#pragma endregion +#endif // Intel 'oneAPI' Unified Runtime API common types #if !defined(__GNUC__) #pragma region common @@ -230,51 +456,6 @@ typedef enum ur_result_t { } ur_result_t; -/////////////////////////////////////////////////////////////////////////////// -/// @brief Defines structure types -typedef enum ur_structure_type_t { - UR_STRUCTURE_TYPE_CONTEXT_PROPERTIES = 0, ///< ::ur_context_properties_t - UR_STRUCTURE_TYPE_IMAGE_DESC = 1, ///< ::ur_image_desc_t - UR_STRUCTURE_TYPE_BUFFER_PROPERTIES = 2, ///< ::ur_buffer_properties_t - UR_STRUCTURE_TYPE_BUFFER_REGION = 3, ///< ::ur_buffer_region_t - UR_STRUCTURE_TYPE_BUFFER_CHANNEL_PROPERTIES = 4, ///< ::ur_buffer_channel_properties_t - UR_STRUCTURE_TYPE_BUFFER_ALLOC_LOCATION_PROPERTIES = 5, ///< ::ur_buffer_alloc_location_properties_t - UR_STRUCTURE_TYPE_PROGRAM_PROPERTIES = 6, ///< ::ur_program_properties_t - UR_STRUCTURE_TYPE_USM_DESC = 7, ///< ::ur_usm_desc_t - UR_STRUCTURE_TYPE_USM_HOST_DESC = 8, ///< ::ur_usm_host_desc_t - UR_STRUCTURE_TYPE_USM_DEVICE_DESC = 9, ///< ::ur_usm_device_desc_t - UR_STRUCTURE_TYPE_USM_POOL_DESC = 10, ///< ::ur_usm_pool_desc_t - UR_STRUCTURE_TYPE_USM_POOL_LIMITS_DESC = 11, ///< ::ur_usm_pool_limits_desc_t - UR_STRUCTURE_TYPE_DEVICE_BINARY = 12, ///< ::ur_device_binary_t - UR_STRUCTURE_TYPE_SAMPLER_DESC = 13, ///< ::ur_sampler_desc_t - UR_STRUCTURE_TYPE_QUEUE_PROPERTIES = 14, ///< ::ur_queue_properties_t - UR_STRUCTURE_TYPE_QUEUE_INDEX_PROPERTIES = 15, ///< ::ur_queue_properties_t - UR_STRUCTURE_TYPE_CONTEXT_NATIVE_PROPERTIES = 16, ///< ::ur_context_native_properties_t - UR_STRUCTURE_TYPE_KERNEL_NATIVE_PROPERTIES = 17, ///< ::ur_kernel_native_properties_t - UR_STRUCTURE_TYPE_QUEUE_NATIVE_PROPERTIES = 18, ///< ::ur_queue_native_properties_t - UR_STRUCTURE_TYPE_MEM_NATIVE_PROPERTIES = 19, ///< ::ur_mem_native_properties_t - UR_STRUCTURE_TYPE_EVENT_NATIVE_PROPERTIES = 20, ///< ::ur_event_native_properties_t - UR_STRUCTURE_TYPE_PLATFORM_NATIVE_PROPERTIES = 21, ///< ::ur_platform_native_properties_t - UR_STRUCTURE_TYPE_DEVICE_NATIVE_PROPERTIES = 22, ///< ::ur_device_native_properties_t - UR_STRUCTURE_TYPE_PROGRAM_NATIVE_PROPERTIES = 23, ///< ::ur_program_native_properties_t - UR_STRUCTURE_TYPE_SAMPLER_NATIVE_PROPERTIES = 24, ///< ::ur_sampler_native_properties_t - UR_STRUCTURE_TYPE_QUEUE_NATIVE_DESC = 25, ///< ::ur_queue_native_desc_t - UR_STRUCTURE_TYPE_DEVICE_PARTITION_PROPERTIES = 26, ///< ::ur_device_partition_properties_t - UR_STRUCTURE_TYPE_KERNEL_ARG_MEM_OBJ_PROPERTIES = 27, ///< ::ur_kernel_arg_mem_obj_properties_t - UR_STRUCTURE_TYPE_PHYSICAL_MEM_PROPERTIES = 28, ///< ::ur_physical_mem_properties_t - UR_STRUCTURE_TYPE_KERNEL_ARG_POINTER_PROPERTIES = 29, ///< ::ur_kernel_arg_pointer_properties_t - UR_STRUCTURE_TYPE_KERNEL_ARG_SAMPLER_PROPERTIES = 30, ///< ::ur_kernel_arg_sampler_properties_t - UR_STRUCTURE_TYPE_KERNEL_EXEC_INFO_PROPERTIES = 31, ///< ::ur_kernel_exec_info_properties_t - UR_STRUCTURE_TYPE_KERNEL_ARG_VALUE_PROPERTIES = 32, ///< ::ur_kernel_arg_value_properties_t - UR_STRUCTURE_TYPE_KERNEL_ARG_LOCAL_PROPERTIES = 33, ///< ::ur_kernel_arg_local_properties_t - UR_STRUCTURE_TYPE_EXP_COMMAND_BUFFER_DESC = 0x1000, ///< ::ur_exp_command_buffer_desc_t - UR_STRUCTURE_TYPE_EXP_SAMPLER_MIP_PROPERTIES = 0x2000, ///< ::ur_exp_sampler_mip_properties_t - /// @cond - UR_STRUCTURE_TYPE_FORCE_UINT32 = 0x7fffffff - /// @endcond - -} ur_structure_type_t; - /////////////////////////////////////////////////////////////////////////////// /// @brief Base for all properties types typedef struct ur_base_properties_t { @@ -5185,187 +5366,6 @@ urEventSetCallback( void *pUserData ///< [in][out][optional] pointer to data to be passed to callback. ); -#if !defined(__GNUC__) -#pragma endregion -#endif -// Intel 'oneAPI' Unified Runtime function registry -#if !defined(__GNUC__) -#pragma region registry -#endif -/////////////////////////////////////////////////////////////////////////////// -/// @brief Defines unique stable identifiers for all functions -typedef enum ur_function_t { - UR_FUNCTION_CONTEXT_CREATE = 1, ///< Enumerator for ::urContextCreate - UR_FUNCTION_CONTEXT_RETAIN = 2, ///< Enumerator for ::urContextRetain - UR_FUNCTION_CONTEXT_RELEASE = 3, ///< Enumerator for ::urContextRelease - UR_FUNCTION_CONTEXT_GET_INFO = 4, ///< Enumerator for ::urContextGetInfo - UR_FUNCTION_CONTEXT_GET_NATIVE_HANDLE = 5, ///< Enumerator for ::urContextGetNativeHandle - UR_FUNCTION_CONTEXT_CREATE_WITH_NATIVE_HANDLE = 6, ///< Enumerator for ::urContextCreateWithNativeHandle - UR_FUNCTION_CONTEXT_SET_EXTENDED_DELETER = 7, ///< Enumerator for ::urContextSetExtendedDeleter - UR_FUNCTION_DEVICE_GET = 8, ///< Enumerator for ::urDeviceGet - UR_FUNCTION_DEVICE_GET_INFO = 9, ///< Enumerator for ::urDeviceGetInfo - UR_FUNCTION_DEVICE_RETAIN = 10, ///< Enumerator for ::urDeviceRetain - UR_FUNCTION_DEVICE_RELEASE = 11, ///< Enumerator for ::urDeviceRelease - UR_FUNCTION_DEVICE_PARTITION = 12, ///< Enumerator for ::urDevicePartition - UR_FUNCTION_DEVICE_SELECT_BINARY = 13, ///< Enumerator for ::urDeviceSelectBinary - UR_FUNCTION_DEVICE_GET_NATIVE_HANDLE = 14, ///< Enumerator for ::urDeviceGetNativeHandle - UR_FUNCTION_DEVICE_CREATE_WITH_NATIVE_HANDLE = 15, ///< Enumerator for ::urDeviceCreateWithNativeHandle - UR_FUNCTION_DEVICE_GET_GLOBAL_TIMESTAMPS = 16, ///< Enumerator for ::urDeviceGetGlobalTimestamps - UR_FUNCTION_ENQUEUE_KERNEL_LAUNCH = 17, ///< Enumerator for ::urEnqueueKernelLaunch - UR_FUNCTION_ENQUEUE_EVENTS_WAIT = 18, ///< Enumerator for ::urEnqueueEventsWait - UR_FUNCTION_ENQUEUE_EVENTS_WAIT_WITH_BARRIER = 19, ///< Enumerator for ::urEnqueueEventsWaitWithBarrier - UR_FUNCTION_ENQUEUE_MEM_BUFFER_READ = 20, ///< Enumerator for ::urEnqueueMemBufferRead - UR_FUNCTION_ENQUEUE_MEM_BUFFER_WRITE = 21, ///< Enumerator for ::urEnqueueMemBufferWrite - UR_FUNCTION_ENQUEUE_MEM_BUFFER_READ_RECT = 22, ///< Enumerator for ::urEnqueueMemBufferReadRect - UR_FUNCTION_ENQUEUE_MEM_BUFFER_WRITE_RECT = 23, ///< Enumerator for ::urEnqueueMemBufferWriteRect - UR_FUNCTION_ENQUEUE_MEM_BUFFER_COPY = 24, ///< Enumerator for ::urEnqueueMemBufferCopy - UR_FUNCTION_ENQUEUE_MEM_BUFFER_COPY_RECT = 25, ///< Enumerator for ::urEnqueueMemBufferCopyRect - UR_FUNCTION_ENQUEUE_MEM_BUFFER_FILL = 26, ///< Enumerator for ::urEnqueueMemBufferFill - UR_FUNCTION_ENQUEUE_MEM_IMAGE_READ = 27, ///< Enumerator for ::urEnqueueMemImageRead - UR_FUNCTION_ENQUEUE_MEM_IMAGE_WRITE = 28, ///< Enumerator for ::urEnqueueMemImageWrite - UR_FUNCTION_ENQUEUE_MEM_IMAGE_COPY = 29, ///< Enumerator for ::urEnqueueMemImageCopy - UR_FUNCTION_ENQUEUE_MEM_BUFFER_MAP = 30, ///< Enumerator for ::urEnqueueMemBufferMap - UR_FUNCTION_ENQUEUE_MEM_UNMAP = 31, ///< Enumerator for ::urEnqueueMemUnmap - UR_FUNCTION_ENQUEUE_USM_FILL = 32, ///< Enumerator for ::urEnqueueUSMFill - UR_FUNCTION_ENQUEUE_USM_MEMCPY = 33, ///< Enumerator for ::urEnqueueUSMMemcpy - UR_FUNCTION_ENQUEUE_USM_PREFETCH = 34, ///< Enumerator for ::urEnqueueUSMPrefetch - UR_FUNCTION_ENQUEUE_USM_ADVISE = 35, ///< Enumerator for ::urEnqueueUSMAdvise - UR_FUNCTION_ENQUEUE_DEVICE_GLOBAL_VARIABLE_WRITE = 38, ///< Enumerator for ::urEnqueueDeviceGlobalVariableWrite - UR_FUNCTION_ENQUEUE_DEVICE_GLOBAL_VARIABLE_READ = 39, ///< Enumerator for ::urEnqueueDeviceGlobalVariableRead - UR_FUNCTION_EVENT_GET_INFO = 40, ///< Enumerator for ::urEventGetInfo - UR_FUNCTION_EVENT_GET_PROFILING_INFO = 41, ///< Enumerator for ::urEventGetProfilingInfo - UR_FUNCTION_EVENT_WAIT = 42, ///< Enumerator for ::urEventWait - UR_FUNCTION_EVENT_RETAIN = 43, ///< Enumerator for ::urEventRetain - UR_FUNCTION_EVENT_RELEASE = 44, ///< Enumerator for ::urEventRelease - UR_FUNCTION_EVENT_GET_NATIVE_HANDLE = 45, ///< Enumerator for ::urEventGetNativeHandle - UR_FUNCTION_EVENT_CREATE_WITH_NATIVE_HANDLE = 46, ///< Enumerator for ::urEventCreateWithNativeHandle - UR_FUNCTION_EVENT_SET_CALLBACK = 47, ///< Enumerator for ::urEventSetCallback - UR_FUNCTION_KERNEL_CREATE = 48, ///< Enumerator for ::urKernelCreate - UR_FUNCTION_KERNEL_SET_ARG_VALUE = 49, ///< Enumerator for ::urKernelSetArgValue - UR_FUNCTION_KERNEL_SET_ARG_LOCAL = 50, ///< Enumerator for ::urKernelSetArgLocal - UR_FUNCTION_KERNEL_GET_INFO = 51, ///< Enumerator for ::urKernelGetInfo - UR_FUNCTION_KERNEL_GET_GROUP_INFO = 52, ///< Enumerator for ::urKernelGetGroupInfo - UR_FUNCTION_KERNEL_GET_SUB_GROUP_INFO = 53, ///< Enumerator for ::urKernelGetSubGroupInfo - UR_FUNCTION_KERNEL_RETAIN = 54, ///< Enumerator for ::urKernelRetain - UR_FUNCTION_KERNEL_RELEASE = 55, ///< Enumerator for ::urKernelRelease - UR_FUNCTION_KERNEL_SET_ARG_POINTER = 56, ///< Enumerator for ::urKernelSetArgPointer - UR_FUNCTION_KERNEL_SET_EXEC_INFO = 57, ///< Enumerator for ::urKernelSetExecInfo - UR_FUNCTION_KERNEL_SET_ARG_SAMPLER = 58, ///< Enumerator for ::urKernelSetArgSampler - UR_FUNCTION_KERNEL_SET_ARG_MEM_OBJ = 59, ///< Enumerator for ::urKernelSetArgMemObj - UR_FUNCTION_KERNEL_SET_SPECIALIZATION_CONSTANTS = 60, ///< Enumerator for ::urKernelSetSpecializationConstants - UR_FUNCTION_KERNEL_GET_NATIVE_HANDLE = 61, ///< Enumerator for ::urKernelGetNativeHandle - UR_FUNCTION_KERNEL_CREATE_WITH_NATIVE_HANDLE = 62, ///< Enumerator for ::urKernelCreateWithNativeHandle - UR_FUNCTION_MEM_IMAGE_CREATE = 63, ///< Enumerator for ::urMemImageCreate - UR_FUNCTION_MEM_BUFFER_CREATE = 64, ///< Enumerator for ::urMemBufferCreate - UR_FUNCTION_MEM_RETAIN = 65, ///< Enumerator for ::urMemRetain - UR_FUNCTION_MEM_RELEASE = 66, ///< Enumerator for ::urMemRelease - UR_FUNCTION_MEM_BUFFER_PARTITION = 67, ///< Enumerator for ::urMemBufferPartition - UR_FUNCTION_MEM_GET_NATIVE_HANDLE = 68, ///< Enumerator for ::urMemGetNativeHandle - UR_FUNCTION_ENQUEUE_READ_HOST_PIPE = 69, ///< Enumerator for ::urEnqueueReadHostPipe - UR_FUNCTION_MEM_GET_INFO = 70, ///< Enumerator for ::urMemGetInfo - UR_FUNCTION_MEM_IMAGE_GET_INFO = 71, ///< Enumerator for ::urMemImageGetInfo - UR_FUNCTION_PLATFORM_GET = 72, ///< Enumerator for ::urPlatformGet - UR_FUNCTION_PLATFORM_GET_INFO = 73, ///< Enumerator for ::urPlatformGetInfo - UR_FUNCTION_PLATFORM_GET_API_VERSION = 74, ///< Enumerator for ::urPlatformGetApiVersion - UR_FUNCTION_PLATFORM_GET_NATIVE_HANDLE = 75, ///< Enumerator for ::urPlatformGetNativeHandle - UR_FUNCTION_PLATFORM_CREATE_WITH_NATIVE_HANDLE = 76, ///< Enumerator for ::urPlatformCreateWithNativeHandle - UR_FUNCTION_PROGRAM_CREATE_WITH_IL = 78, ///< Enumerator for ::urProgramCreateWithIL - UR_FUNCTION_PROGRAM_CREATE_WITH_BINARY = 79, ///< Enumerator for ::urProgramCreateWithBinary - UR_FUNCTION_PROGRAM_BUILD = 80, ///< Enumerator for ::urProgramBuild - UR_FUNCTION_PROGRAM_COMPILE = 81, ///< Enumerator for ::urProgramCompile - UR_FUNCTION_PROGRAM_LINK = 82, ///< Enumerator for ::urProgramLink - UR_FUNCTION_PROGRAM_RETAIN = 83, ///< Enumerator for ::urProgramRetain - UR_FUNCTION_PROGRAM_RELEASE = 84, ///< Enumerator for ::urProgramRelease - UR_FUNCTION_PROGRAM_GET_FUNCTION_POINTER = 85, ///< Enumerator for ::urProgramGetFunctionPointer - UR_FUNCTION_PROGRAM_GET_INFO = 86, ///< Enumerator for ::urProgramGetInfo - UR_FUNCTION_PROGRAM_GET_BUILD_INFO = 87, ///< Enumerator for ::urProgramGetBuildInfo - UR_FUNCTION_PROGRAM_SET_SPECIALIZATION_CONSTANTS = 88, ///< Enumerator for ::urProgramSetSpecializationConstants - UR_FUNCTION_PROGRAM_GET_NATIVE_HANDLE = 89, ///< Enumerator for ::urProgramGetNativeHandle - UR_FUNCTION_PROGRAM_CREATE_WITH_NATIVE_HANDLE = 90, ///< Enumerator for ::urProgramCreateWithNativeHandle - UR_FUNCTION_QUEUE_GET_INFO = 91, ///< Enumerator for ::urQueueGetInfo - UR_FUNCTION_QUEUE_CREATE = 92, ///< Enumerator for ::urQueueCreate - UR_FUNCTION_QUEUE_RETAIN = 93, ///< Enumerator for ::urQueueRetain - UR_FUNCTION_QUEUE_RELEASE = 94, ///< Enumerator for ::urQueueRelease - UR_FUNCTION_QUEUE_GET_NATIVE_HANDLE = 95, ///< Enumerator for ::urQueueGetNativeHandle - UR_FUNCTION_QUEUE_CREATE_WITH_NATIVE_HANDLE = 96, ///< Enumerator for ::urQueueCreateWithNativeHandle - UR_FUNCTION_QUEUE_FINISH = 97, ///< Enumerator for ::urQueueFinish - UR_FUNCTION_QUEUE_FLUSH = 98, ///< Enumerator for ::urQueueFlush - UR_FUNCTION_INIT = 99, ///< Enumerator for ::urInit - UR_FUNCTION_TEAR_DOWN = 100, ///< Enumerator for ::urTearDown - UR_FUNCTION_SAMPLER_CREATE = 101, ///< Enumerator for ::urSamplerCreate - UR_FUNCTION_SAMPLER_RETAIN = 102, ///< Enumerator for ::urSamplerRetain - UR_FUNCTION_SAMPLER_RELEASE = 103, ///< Enumerator for ::urSamplerRelease - UR_FUNCTION_SAMPLER_GET_INFO = 104, ///< Enumerator for ::urSamplerGetInfo - UR_FUNCTION_SAMPLER_GET_NATIVE_HANDLE = 105, ///< Enumerator for ::urSamplerGetNativeHandle - UR_FUNCTION_SAMPLER_CREATE_WITH_NATIVE_HANDLE = 106, ///< Enumerator for ::urSamplerCreateWithNativeHandle - UR_FUNCTION_USM_HOST_ALLOC = 107, ///< Enumerator for ::urUSMHostAlloc - UR_FUNCTION_USM_DEVICE_ALLOC = 108, ///< Enumerator for ::urUSMDeviceAlloc - UR_FUNCTION_USM_SHARED_ALLOC = 109, ///< Enumerator for ::urUSMSharedAlloc - UR_FUNCTION_USM_FREE = 110, ///< Enumerator for ::urUSMFree - UR_FUNCTION_USM_GET_MEM_ALLOC_INFO = 111, ///< Enumerator for ::urUSMGetMemAllocInfo - UR_FUNCTION_USM_POOL_CREATE = 112, ///< Enumerator for ::urUSMPoolCreate - UR_FUNCTION_COMMAND_BUFFER_CREATE_EXP = 113, ///< Enumerator for ::urCommandBufferCreateExp - UR_FUNCTION_PLATFORM_GET_BACKEND_OPTION = 114, ///< Enumerator for ::urPlatformGetBackendOption - UR_FUNCTION_MEM_BUFFER_CREATE_WITH_NATIVE_HANDLE = 115, ///< Enumerator for ::urMemBufferCreateWithNativeHandle - UR_FUNCTION_MEM_IMAGE_CREATE_WITH_NATIVE_HANDLE = 116, ///< Enumerator for ::urMemImageCreateWithNativeHandle - UR_FUNCTION_ENQUEUE_WRITE_HOST_PIPE = 117, ///< Enumerator for ::urEnqueueWriteHostPipe - UR_FUNCTION_USM_POOL_RETAIN = 118, ///< Enumerator for ::urUSMPoolRetain - UR_FUNCTION_USM_POOL_RELEASE = 119, ///< Enumerator for ::urUSMPoolRelease - UR_FUNCTION_USM_POOL_GET_INFO = 120, ///< Enumerator for ::urUSMPoolGetInfo - UR_FUNCTION_COMMAND_BUFFER_RETAIN_EXP = 121, ///< Enumerator for ::urCommandBufferRetainExp - UR_FUNCTION_COMMAND_BUFFER_RELEASE_EXP = 122, ///< Enumerator for ::urCommandBufferReleaseExp - UR_FUNCTION_COMMAND_BUFFER_FINALIZE_EXP = 123, ///< Enumerator for ::urCommandBufferFinalizeExp - UR_FUNCTION_COMMAND_BUFFER_APPEND_KERNEL_LAUNCH_EXP = 125, ///< Enumerator for ::urCommandBufferAppendKernelLaunchExp - UR_FUNCTION_COMMAND_BUFFER_ENQUEUE_EXP = 128, ///< Enumerator for ::urCommandBufferEnqueueExp - UR_FUNCTION_COMMAND_BUFFER_APPEND_MEMCPY_USM_EXP = 129, ///< Enumerator for ::urCommandBufferAppendMemcpyUSMExp - UR_FUNCTION_COMMAND_BUFFER_APPEND_MEMBUFFER_COPY_EXP = 130, ///< Enumerator for ::urCommandBufferAppendMembufferCopyExp - UR_FUNCTION_COMMAND_BUFFER_APPEND_MEMBUFFER_COPY_RECT_EXP = 131, ///< Enumerator for ::urCommandBufferAppendMembufferCopyRectExp - UR_FUNCTION_USM_PITCHED_ALLOC_EXP = 132, ///< Enumerator for ::urUSMPitchedAllocExp - UR_FUNCTION_BINDLESS_IMAGES_UNSAMPLED_IMAGE_HANDLE_DESTROY_EXP = 133, ///< Enumerator for ::urBindlessImagesUnsampledImageHandleDestroyExp - UR_FUNCTION_BINDLESS_IMAGES_SAMPLED_IMAGE_HANDLE_DESTROY_EXP = 134, ///< Enumerator for ::urBindlessImagesSampledImageHandleDestroyExp - UR_FUNCTION_BINDLESS_IMAGES_IMAGE_ALLOCATE_EXP = 135, ///< Enumerator for ::urBindlessImagesImageAllocateExp - UR_FUNCTION_BINDLESS_IMAGES_IMAGE_FREE_EXP = 136, ///< Enumerator for ::urBindlessImagesImageFreeExp - UR_FUNCTION_BINDLESS_IMAGES_UNSAMPLED_IMAGE_CREATE_EXP = 137, ///< Enumerator for ::urBindlessImagesUnsampledImageCreateExp - UR_FUNCTION_BINDLESS_IMAGES_SAMPLED_IMAGE_CREATE_EXP = 138, ///< Enumerator for ::urBindlessImagesSampledImageCreateExp - UR_FUNCTION_BINDLESS_IMAGES_IMAGE_COPY_EXP = 139, ///< Enumerator for ::urBindlessImagesImageCopyExp - UR_FUNCTION_BINDLESS_IMAGES_IMAGE_GET_INFO_EXP = 140, ///< Enumerator for ::urBindlessImagesImageGetInfoExp - UR_FUNCTION_BINDLESS_IMAGES_MIPMAP_GET_LEVEL_EXP = 141, ///< Enumerator for ::urBindlessImagesMipmapGetLevelExp - UR_FUNCTION_BINDLESS_IMAGES_MIPMAP_FREE_EXP = 142, ///< Enumerator for ::urBindlessImagesMipmapFreeExp - UR_FUNCTION_BINDLESS_IMAGES_IMPORT_OPAQUE_FD_EXP = 143, ///< Enumerator for ::urBindlessImagesImportOpaqueFDExp - UR_FUNCTION_BINDLESS_IMAGES_MAP_EXTERNAL_ARRAY_EXP = 144, ///< Enumerator for ::urBindlessImagesMapExternalArrayExp - UR_FUNCTION_BINDLESS_IMAGES_RELEASE_INTEROP_EXP = 145, ///< Enumerator for ::urBindlessImagesReleaseInteropExp - UR_FUNCTION_BINDLESS_IMAGES_IMPORT_EXTERNAL_SEMAPHORE_OPAQUE_FD_EXP = 146, ///< Enumerator for ::urBindlessImagesImportExternalSemaphoreOpaqueFDExp - UR_FUNCTION_BINDLESS_IMAGES_DESTROY_EXTERNAL_SEMAPHORE_EXP = 147, ///< Enumerator for ::urBindlessImagesDestroyExternalSemaphoreExp - UR_FUNCTION_BINDLESS_IMAGES_WAIT_EXTERNAL_SEMAPHORE_EXP = 148, ///< Enumerator for ::urBindlessImagesWaitExternalSemaphoreExp - UR_FUNCTION_BINDLESS_IMAGES_SIGNAL_EXTERNAL_SEMAPHORE_EXP = 149, ///< Enumerator for ::urBindlessImagesSignalExternalSemaphoreExp - UR_FUNCTION_PLATFORM_GET_LAST_ERROR = 150, ///< Enumerator for ::urPlatformGetLastError - UR_FUNCTION_ENQUEUE_USM_FILL_2D = 151, ///< Enumerator for ::urEnqueueUSMFill2D - UR_FUNCTION_ENQUEUE_USM_MEMCPY_2D = 152, ///< Enumerator for ::urEnqueueUSMMemcpy2D - UR_FUNCTION_VIRTUAL_MEM_GRANULARITY_GET_INFO = 153, ///< Enumerator for ::urVirtualMemGranularityGetInfo - UR_FUNCTION_VIRTUAL_MEM_RESERVE = 154, ///< Enumerator for ::urVirtualMemReserve - UR_FUNCTION_VIRTUAL_MEM_FREE = 155, ///< Enumerator for ::urVirtualMemFree - UR_FUNCTION_VIRTUAL_MEM_MAP = 156, ///< Enumerator for ::urVirtualMemMap - UR_FUNCTION_VIRTUAL_MEM_UNMAP = 157, ///< Enumerator for ::urVirtualMemUnmap - UR_FUNCTION_VIRTUAL_MEM_SET_ACCESS = 158, ///< Enumerator for ::urVirtualMemSetAccess - UR_FUNCTION_VIRTUAL_MEM_GET_INFO = 159, ///< Enumerator for ::urVirtualMemGetInfo - UR_FUNCTION_PHYSICAL_MEM_CREATE = 160, ///< Enumerator for ::urPhysicalMemCreate - UR_FUNCTION_PHYSICAL_MEM_RETAIN = 161, ///< Enumerator for ::urPhysicalMemRetain - UR_FUNCTION_PHYSICAL_MEM_RELEASE = 162, ///< Enumerator for ::urPhysicalMemRelease - UR_FUNCTION_USM_IMPORT_EXP = 163, ///< Enumerator for ::urUSMImportExp - UR_FUNCTION_USM_RELEASE_EXP = 164, ///< Enumerator for ::urUSMReleaseExp - UR_FUNCTION_USM_P2P_ENABLE_PEER_ACCESS_EXP = 165, ///< Enumerator for ::urUsmP2PEnablePeerAccessExp - UR_FUNCTION_USM_P2P_DISABLE_PEER_ACCESS_EXP = 166, ///< Enumerator for ::urUsmP2PDisablePeerAccessExp - UR_FUNCTION_USM_P2P_PEER_ACCESS_GET_INFO_EXP = 167, ///< Enumerator for ::urUsmP2PPeerAccessGetInfoExp - UR_FUNCTION_COMMAND_BUFFER_APPEND_MEMBUFFER_WRITE_EXP = 168, ///< Enumerator for ::urCommandBufferAppendMembufferWriteExp - UR_FUNCTION_COMMAND_BUFFER_APPEND_MEMBUFFER_READ_EXP = 169, ///< Enumerator for ::urCommandBufferAppendMembufferReadExp - UR_FUNCTION_COMMAND_BUFFER_APPEND_MEMBUFFER_WRITE_RECT_EXP = 170, ///< Enumerator for ::urCommandBufferAppendMembufferWriteRectExp - UR_FUNCTION_COMMAND_BUFFER_APPEND_MEMBUFFER_READ_RECT_EXP = 171, ///< Enumerator for ::urCommandBufferAppendMembufferReadRectExp - /// @cond - UR_FUNCTION_FORCE_UINT32 = 0x7fffffff - /// @endcond - -} ur_function_t; - #if !defined(__GNUC__) #pragma endregion #endif diff --git a/scripts/core/common.yml b/scripts/core/common.yml index c2901f7c68..5677727efa 100644 --- a/scripts/core/common.yml +++ b/scripts/core/common.yml @@ -265,79 +265,6 @@ etors: value: "0x7ffffffe" desc: "Unknown or internal error" --- #-------------------------------------------------------------------------- -type: enum -desc: "Defines structure types" -name: $x_structure_type_t -etors: - - name: CONTEXT_PROPERTIES - desc: $x_context_properties_t - - name: IMAGE_DESC - desc: $x_image_desc_t - - name: BUFFER_PROPERTIES - desc: $x_buffer_properties_t - - name: BUFFER_REGION - desc: $x_buffer_region_t - - name: BUFFER_CHANNEL_PROPERTIES - desc: $x_buffer_channel_properties_t - - name: BUFFER_ALLOC_LOCATION_PROPERTIES - desc: $x_buffer_alloc_location_properties_t - - name: PROGRAM_PROPERTIES - desc: $x_program_properties_t - - name: USM_DESC - desc: $x_usm_desc_t - - name: USM_HOST_DESC - desc: $x_usm_host_desc_t - - name: USM_DEVICE_DESC - desc: $x_usm_device_desc_t - - name: USM_POOL_DESC - desc: $x_usm_pool_desc_t - - name: USM_POOL_LIMITS_DESC - desc: $x_usm_pool_limits_desc_t - - name: DEVICE_BINARY - desc: $x_device_binary_t - - name: SAMPLER_DESC - desc: $x_sampler_desc_t - - name: QUEUE_PROPERTIES - desc: $x_queue_properties_t - - name: QUEUE_INDEX_PROPERTIES - desc: $x_queue_properties_t - - name: CONTEXT_NATIVE_PROPERTIES - desc: $x_context_native_properties_t - - name: KERNEL_NATIVE_PROPERTIES - desc: $x_kernel_native_properties_t - - name: QUEUE_NATIVE_PROPERTIES - desc: $x_queue_native_properties_t - - name: MEM_NATIVE_PROPERTIES - desc: $x_mem_native_properties_t - - name: EVENT_NATIVE_PROPERTIES - desc: $x_event_native_properties_t - - name: PLATFORM_NATIVE_PROPERTIES - desc: $x_platform_native_properties_t - - name: DEVICE_NATIVE_PROPERTIES - desc: $x_device_native_properties_t - - name: PROGRAM_NATIVE_PROPERTIES - desc: $x_program_native_properties_t - - name: SAMPLER_NATIVE_PROPERTIES - desc: $x_sampler_native_properties_t - - name: QUEUE_NATIVE_DESC - desc: $x_queue_native_desc_t - - name: DEVICE_PARTITION_PROPERTIES - desc: $x_device_partition_properties_t - - name: KERNEL_ARG_MEM_OBJ_PROPERTIES - desc: $x_kernel_arg_mem_obj_properties_t - - name: PHYSICAL_MEM_PROPERTIES - desc: $x_physical_mem_properties_t - - name: KERNEL_ARG_POINTER_PROPERTIES - desc: $x_kernel_arg_pointer_properties_t - - name: KERNEL_ARG_SAMPLER_PROPERTIES - desc: $x_kernel_arg_sampler_properties_t - - name: KERNEL_EXEC_INFO_PROPERTIES - desc: $x_kernel_exec_info_properties_t - - name: KERNEL_ARG_VALUE_PROPERTIES - desc: $x_kernel_arg_value_properties_t - - name: KERNEL_ARG_LOCAL_PROPERTIES - desc: $x_kernel_arg_local_properties_t ---- #-------------------------------------------------------------------------- type: struct desc: "Base for all properties types" name: $x_base_properties_t diff --git a/scripts/core/registry.yml b/scripts/core/registry.yml index e29203afdc..00096044ce 100644 --- a/scripts/core/registry.yml +++ b/scripts/core/registry.yml @@ -1,7 +1,7 @@ --- type: header desc: "Intel $OneApi Unified Runtime function registry" -ordinal: "9" +ordinal: "-1" --- name: $x_function_t type: enum @@ -502,3 +502,110 @@ etors: - name: COMMAND_BUFFER_APPEND_MEMBUFFER_READ_RECT_EXP desc: Enumerator for $xCommandBufferAppendMembufferReadRectExp value: '171' +--- +type: enum +desc: Defines structure types +name: $x_structure_type_t +etors: +- name: CONTEXT_PROPERTIES + desc: $x_context_properties_t + value: '0' +- name: IMAGE_DESC + desc: $x_image_desc_t + value: '1' +- name: BUFFER_PROPERTIES + desc: $x_buffer_properties_t + value: '2' +- name: BUFFER_REGION + desc: $x_buffer_region_t + value: '3' +- name: BUFFER_CHANNEL_PROPERTIES + desc: $x_buffer_channel_properties_t + value: '4' +- name: BUFFER_ALLOC_LOCATION_PROPERTIES + desc: $x_buffer_alloc_location_properties_t + value: '5' +- name: PROGRAM_PROPERTIES + desc: $x_program_properties_t + value: '6' +- name: USM_DESC + desc: $x_usm_desc_t + value: '7' +- name: USM_HOST_DESC + desc: $x_usm_host_desc_t + value: '8' +- name: USM_DEVICE_DESC + desc: $x_usm_device_desc_t + value: '9' +- name: USM_POOL_DESC + desc: $x_usm_pool_desc_t + value: '10' +- name: USM_POOL_LIMITS_DESC + desc: $x_usm_pool_limits_desc_t + value: '11' +- name: DEVICE_BINARY + desc: $x_device_binary_t + value: '12' +- name: SAMPLER_DESC + desc: $x_sampler_desc_t + value: '13' +- name: QUEUE_PROPERTIES + desc: $x_queue_properties_t + value: '14' +- name: QUEUE_INDEX_PROPERTIES + desc: $x_queue_index_properties_t + value: '15' +- name: CONTEXT_NATIVE_PROPERTIES + desc: $x_context_native_properties_t + value: '16' +- name: KERNEL_NATIVE_PROPERTIES + desc: $x_kernel_native_properties_t + value: '17' +- name: QUEUE_NATIVE_PROPERTIES + desc: $x_queue_native_properties_t + value: '18' +- name: MEM_NATIVE_PROPERTIES + desc: $x_mem_native_properties_t + value: '19' +- name: EVENT_NATIVE_PROPERTIES + desc: $x_event_native_properties_t + value: '20' +- name: PLATFORM_NATIVE_PROPERTIES + desc: $x_platform_native_properties_t + value: '21' +- name: DEVICE_NATIVE_PROPERTIES + desc: $x_device_native_properties_t + value: '22' +- name: PROGRAM_NATIVE_PROPERTIES + desc: $x_program_native_properties_t + value: '23' +- name: SAMPLER_NATIVE_PROPERTIES + desc: $x_sampler_native_properties_t + value: '24' +- name: QUEUE_NATIVE_DESC + desc: $x_queue_native_desc_t + value: '25' +- name: DEVICE_PARTITION_PROPERTIES + desc: $x_device_partition_properties_t + value: '26' +- name: KERNEL_ARG_MEM_OBJ_PROPERTIES + desc: $x_kernel_arg_mem_obj_properties_t + value: '27' +- name: PHYSICAL_MEM_PROPERTIES + desc: $x_physical_mem_properties_t + value: '28' +- name: KERNEL_ARG_POINTER_PROPERTIES + desc: $x_kernel_arg_pointer_properties_t + value: '29' +- name: KERNEL_ARG_SAMPLER_PROPERTIES + desc: $x_kernel_arg_sampler_properties_t + value: '30' +- name: KERNEL_EXEC_INFO_PROPERTIES + desc: $x_kernel_exec_info_properties_t + value: '31' +- name: KERNEL_ARG_VALUE_PROPERTIES + desc: $x_kernel_arg_value_properties_t + value: '32' +- name: KERNEL_ARG_LOCAL_PROPERTIES + desc: $x_kernel_arg_local_properties_t + value: '33' diff --git a/scripts/generate_ids.py b/scripts/generate_ids.py index 26dfd89fb7..0b26b8407d 100644 --- a/scripts/generate_ids.py +++ b/scripts/generate_ids.py @@ -9,6 +9,8 @@ from fileinput import FileInput import util import yaml +import re +import copy ENUM_NAME = '$x_function_t' @@ -18,29 +20,100 @@ class quoted(str): def quoted_presenter(dumper, data): return dumper.represent_scalar('tag:yaml.org,2002:str', data, style='"') -def generate_registry(path, specs): +def get_registry_header(): + return {'type': 'header', 'desc': quoted('Intel $OneApi Unified Runtime function registry'), 'ordinal': quoted(-1)} + +def write_registry(data, path): + with open(path, 'w') as fout: + yaml.add_representer(quoted, quoted_presenter) + yaml.dump_all(data, fout, + default_flow_style=False, + sort_keys=False, + explicit_start=True) + +def find_type_in_specs(specs, type): + return [obj for s in specs for obj in s['objects'] if obj['name'] == type][0] + +def get_max_enum(enum): + return int(max(enum['etors'], key=lambda x : int(x['value']))['value']) + +def copy_and_strip_prefix_from_enums(enum, prefix): + cpy = copy.deepcopy(enum) + for etor in cpy['etors']: + etor['name'] = etor['name'][len(prefix):] + return cpy + + +def generate_function_type(specs, meta, update_fn) -> dict: + existing_function_type = find_type_in_specs(specs, '$x_function_t') + existing_etors = {etor['name'] : etor['value'] for etor in existing_function_type['etors']} + max_etor = get_max_enum(existing_function_type) + functions = [obj['class'][len('$x'):] + obj['name'] for s in specs for obj in s['objects'] if obj['type'] == 'function'] + registry = list() + for fname in functions: + etor_name = "$X_FUNCTION_" + util.to_snake_case(fname).upper() + id = existing_etors.get(etor_name) + if id is None: + max_etor += 1 + id = max_etor + registry.append({ + 'name': etor_name, + 'desc': f'Enumerator for $x{fname}', + 'value': str(id)} + ) + registry = sorted(registry, key=lambda x : int(x['value'])) + existing_function_type['etors'] = registry + update_fn(existing_function_type, meta) + + ## create a copy to write back to registry.yml + return copy_and_strip_prefix_from_enums(existing_function_type, '$X_FUNCTION_') + + +def generate_structure_type(specs, meta, refresh_fn) -> dict: + structure_type = find_type_in_specs(specs, '$x_structure_type_t') + extended_structs = [obj for s in specs for obj in s['objects'] if re.match(r"struct|union", obj['type']) and 'base' in obj] + max_enum = get_max_enum(structure_type) + + structure_type_etors = list() + for struct in extended_structs: + # skip experimental enumerations + if struct['name'].startswith('$x_exp_'): + continue + + etor = [mem for mem in struct['members'] if mem['name'] == 'stype'][0]['init'] + + # try and match the etor + matched_etor = [e for e in structure_type['etors'] if e['name'] == etor] + + out_etor = { + 'name': etor, + 'desc': struct['name'] + } + + # if no match exists we assign it a new value + if len(matched_etor) == 0: + max_enum += 1 + out_etor['value'] = str(max_enum) + else: + out_etor['value'] = matched_etor[0]['value'] + + structure_type_etors.append(out_etor) + + structure_type_etors = sorted(structure_type_etors, key = lambda x : int(x['value'])) + structure_type['etors'] = structure_type_etors + refresh_fn(structure_type, meta) + + ## create a copy to write back to registry.yml + return copy_and_strip_prefix_from_enums(structure_type, '$X_STRUCTURE_TYPE_') + +def generate_registry(path, specs, meta, update_fn): try: - existing_registry = list(util.yamlRead(path))[1]['etors'] - existing_etors = {etor["name"]: etor["value"] for etor in existing_registry} - max_etor = int(max(existing_registry, key = lambda x : int(x["value"]))["value"]) - functions = [obj['class'][len('$x'):] + obj['name'] for s in specs for obj in s['objects'] if obj['type'] == 'function'] - registry = list() - for fname in functions: - etor_name = util.to_snake_case(fname).upper() - id = existing_etors.get(etor_name) - if id is None: - max_etor += 1 - id = max_etor - registry.append({'name': util.to_snake_case(fname).upper(), 'desc': 'Enumerator for $x'+fname, 'value': str(id)}) - registry = sorted(registry, key=lambda x: int(x['value'])) - wrapper = { 'name': ENUM_NAME, 'type': 'enum', 'desc': 'Defines unique stable identifiers for all functions' , 'etors': registry} - header = {'type': 'header', 'desc': quoted('Intel $OneApi Unified Runtime function registry'), 'ordinal': quoted(9)} - with open(path, 'w') as fout: - yaml.add_representer(quoted, quoted_presenter) - yaml.dump_all([header, wrapper], fout, - default_flow_style=False, - sort_keys=False, - explicit_start=True) + write_registry([ + get_registry_header(), + generate_function_type(specs, meta, update_fn), + generate_structure_type(specs, meta, update_fn) + ], path) + except BaseException as e: print("Failed to generate registry.yml... %s", e) raise e diff --git a/scripts/parse_specs.py b/scripts/parse_specs.py index 9a26b0d30a..c6a51b7102 100644 --- a/scripts/parse_specs.py +++ b/scripts/parse_specs.py @@ -763,6 +763,13 @@ def _append(lst, key, val): obj['returns'] = rets return obj + +def _inline_extended_structs(specs, meta): + for s in specs: + for i, obj in enumerate(s['objects']): + obj = _inline_base(obj, meta) + s['objects'][i] = obj + """ generates extra content """ @@ -770,7 +777,6 @@ def _generate_extra(specs, meta): for s in specs: for i, obj in enumerate(s['objects']): obj = _generate_hash(obj) - obj = _inline_base(obj, meta) obj = _generate_returns(obj, meta) s['objects'][i] = obj @@ -809,7 +815,8 @@ def _refresh_enum_meta(obj, meta): if obj.get('class'): meta['class'][obj['class']]['enum'].remove(obj['name']) - del meta['enum'][obj['name']] + if meta['enum'].get(obj['name']): + del meta['enum'][obj['name']] ## re-generate meta meta = _generate_meta(obj, None, meta) @@ -856,13 +863,10 @@ def parse(section, version, tags, meta, ref): specs = [] files = util.findFiles(path, "*.yml") - # make sure registry is last, because it's autogenerated based on the rest of the spec - files = sorted(files, key=lambda f: 1 if f.endswith('registry.yml') else 0) + registry = [f for f in files if f.endswith('registry.yml')][0] enum_extensions = [] for f in files: - if f.endswith('registry.yml'): - generate_ids.generate_registry(f, specs) print("Parsing %s..."%f) docs = util.yamlRead(f) @@ -914,6 +918,8 @@ def parse(section, version, tags, meta, ref): }) specs = sorted(specs, key=lambda s: s['header']['ordinal']) + _inline_extended_structs(specs, meta) + generate_ids.generate_registry(registry, specs, meta, _refresh_enum_meta) _extend_enums(enum_extensions, specs, meta) _generate_extra(specs, meta) diff --git a/source/common/ur_params.hpp b/source/common/ur_params.hpp index 15014813a1..02fc6d8e5e 100644 --- a/source/common/ur_params.hpp +++ b/source/common/ur_params.hpp @@ -181,9 +181,10 @@ inline void serializeTagged(std::ostream &os, const void *ptr, } // namespace ur_params -inline std::ostream &operator<<(std::ostream &os, enum ur_result_t value); +inline std::ostream &operator<<(std::ostream &os, enum ur_function_t value); inline std::ostream &operator<<(std::ostream &os, enum ur_structure_type_t value); +inline std::ostream &operator<<(std::ostream &os, enum ur_result_t value); inline std::ostream &operator<<(std::ostream &os, const struct ur_base_properties_t params); inline std::ostream &operator<<(std::ostream &os, @@ -379,7 +380,6 @@ inline std::ostream & operator<<(std::ostream &os, const struct ur_event_native_properties_t params); inline std::ostream &operator<<(std::ostream &os, enum ur_execution_info_t value); -inline std::ostream &operator<<(std::ostream &os, enum ur_function_t value); inline std::ostream &operator<<(std::ostream &os, enum ur_map_flag_t value); inline std::ostream &operator<<(std::ostream &os, enum ur_usm_migration_flag_t value); @@ -393,1572 +393,1545 @@ operator<<(std::ostream &os, const struct ur_exp_command_buffer_desc_t params); inline std::ostream &operator<<(std::ostream &os, enum ur_exp_peer_info_t value); -inline std::ostream &operator<<(std::ostream &os, enum ur_result_t value) { +inline std::ostream &operator<<(std::ostream &os, enum ur_function_t value) { switch (value) { - case UR_RESULT_SUCCESS: - os << "UR_RESULT_SUCCESS"; + case UR_FUNCTION_CONTEXT_CREATE: + os << "UR_FUNCTION_CONTEXT_CREATE"; break; - case UR_RESULT_ERROR_INVALID_OPERATION: - os << "UR_RESULT_ERROR_INVALID_OPERATION"; + case UR_FUNCTION_CONTEXT_RETAIN: + os << "UR_FUNCTION_CONTEXT_RETAIN"; break; - case UR_RESULT_ERROR_INVALID_QUEUE_PROPERTIES: - os << "UR_RESULT_ERROR_INVALID_QUEUE_PROPERTIES"; + case UR_FUNCTION_CONTEXT_RELEASE: + os << "UR_FUNCTION_CONTEXT_RELEASE"; break; - case UR_RESULT_ERROR_INVALID_QUEUE: - os << "UR_RESULT_ERROR_INVALID_QUEUE"; + case UR_FUNCTION_CONTEXT_GET_INFO: + os << "UR_FUNCTION_CONTEXT_GET_INFO"; break; - case UR_RESULT_ERROR_INVALID_VALUE: - os << "UR_RESULT_ERROR_INVALID_VALUE"; + case UR_FUNCTION_CONTEXT_GET_NATIVE_HANDLE: + os << "UR_FUNCTION_CONTEXT_GET_NATIVE_HANDLE"; break; - case UR_RESULT_ERROR_INVALID_CONTEXT: - os << "UR_RESULT_ERROR_INVALID_CONTEXT"; + case UR_FUNCTION_CONTEXT_CREATE_WITH_NATIVE_HANDLE: + os << "UR_FUNCTION_CONTEXT_CREATE_WITH_NATIVE_HANDLE"; break; - case UR_RESULT_ERROR_INVALID_PLATFORM: - os << "UR_RESULT_ERROR_INVALID_PLATFORM"; + case UR_FUNCTION_CONTEXT_SET_EXTENDED_DELETER: + os << "UR_FUNCTION_CONTEXT_SET_EXTENDED_DELETER"; break; - case UR_RESULT_ERROR_INVALID_BINARY: - os << "UR_RESULT_ERROR_INVALID_BINARY"; + case UR_FUNCTION_DEVICE_GET: + os << "UR_FUNCTION_DEVICE_GET"; break; - case UR_RESULT_ERROR_INVALID_PROGRAM: - os << "UR_RESULT_ERROR_INVALID_PROGRAM"; + case UR_FUNCTION_DEVICE_GET_INFO: + os << "UR_FUNCTION_DEVICE_GET_INFO"; break; - case UR_RESULT_ERROR_INVALID_SAMPLER: - os << "UR_RESULT_ERROR_INVALID_SAMPLER"; + case UR_FUNCTION_DEVICE_RETAIN: + os << "UR_FUNCTION_DEVICE_RETAIN"; break; - case UR_RESULT_ERROR_INVALID_BUFFER_SIZE: - os << "UR_RESULT_ERROR_INVALID_BUFFER_SIZE"; + case UR_FUNCTION_DEVICE_RELEASE: + os << "UR_FUNCTION_DEVICE_RELEASE"; break; - case UR_RESULT_ERROR_INVALID_MEM_OBJECT: - os << "UR_RESULT_ERROR_INVALID_MEM_OBJECT"; + case UR_FUNCTION_DEVICE_PARTITION: + os << "UR_FUNCTION_DEVICE_PARTITION"; break; - case UR_RESULT_ERROR_INVALID_EVENT: - os << "UR_RESULT_ERROR_INVALID_EVENT"; + case UR_FUNCTION_DEVICE_SELECT_BINARY: + os << "UR_FUNCTION_DEVICE_SELECT_BINARY"; break; - case UR_RESULT_ERROR_INVALID_EVENT_WAIT_LIST: - os << "UR_RESULT_ERROR_INVALID_EVENT_WAIT_LIST"; + case UR_FUNCTION_DEVICE_GET_NATIVE_HANDLE: + os << "UR_FUNCTION_DEVICE_GET_NATIVE_HANDLE"; break; - case UR_RESULT_ERROR_MISALIGNED_SUB_BUFFER_OFFSET: - os << "UR_RESULT_ERROR_MISALIGNED_SUB_BUFFER_OFFSET"; + case UR_FUNCTION_DEVICE_CREATE_WITH_NATIVE_HANDLE: + os << "UR_FUNCTION_DEVICE_CREATE_WITH_NATIVE_HANDLE"; break; - case UR_RESULT_ERROR_INVALID_WORK_GROUP_SIZE: - os << "UR_RESULT_ERROR_INVALID_WORK_GROUP_SIZE"; + case UR_FUNCTION_DEVICE_GET_GLOBAL_TIMESTAMPS: + os << "UR_FUNCTION_DEVICE_GET_GLOBAL_TIMESTAMPS"; break; - case UR_RESULT_ERROR_COMPILER_NOT_AVAILABLE: - os << "UR_RESULT_ERROR_COMPILER_NOT_AVAILABLE"; + case UR_FUNCTION_ENQUEUE_KERNEL_LAUNCH: + os << "UR_FUNCTION_ENQUEUE_KERNEL_LAUNCH"; break; - case UR_RESULT_ERROR_PROFILING_INFO_NOT_AVAILABLE: - os << "UR_RESULT_ERROR_PROFILING_INFO_NOT_AVAILABLE"; + case UR_FUNCTION_ENQUEUE_EVENTS_WAIT: + os << "UR_FUNCTION_ENQUEUE_EVENTS_WAIT"; break; - case UR_RESULT_ERROR_DEVICE_NOT_FOUND: - os << "UR_RESULT_ERROR_DEVICE_NOT_FOUND"; + case UR_FUNCTION_ENQUEUE_EVENTS_WAIT_WITH_BARRIER: + os << "UR_FUNCTION_ENQUEUE_EVENTS_WAIT_WITH_BARRIER"; break; - case UR_RESULT_ERROR_INVALID_DEVICE: - os << "UR_RESULT_ERROR_INVALID_DEVICE"; + case UR_FUNCTION_ENQUEUE_MEM_BUFFER_READ: + os << "UR_FUNCTION_ENQUEUE_MEM_BUFFER_READ"; break; - case UR_RESULT_ERROR_DEVICE_LOST: - os << "UR_RESULT_ERROR_DEVICE_LOST"; + case UR_FUNCTION_ENQUEUE_MEM_BUFFER_WRITE: + os << "UR_FUNCTION_ENQUEUE_MEM_BUFFER_WRITE"; break; - case UR_RESULT_ERROR_DEVICE_REQUIRES_RESET: - os << "UR_RESULT_ERROR_DEVICE_REQUIRES_RESET"; + case UR_FUNCTION_ENQUEUE_MEM_BUFFER_READ_RECT: + os << "UR_FUNCTION_ENQUEUE_MEM_BUFFER_READ_RECT"; break; - case UR_RESULT_ERROR_DEVICE_IN_LOW_POWER_STATE: - os << "UR_RESULT_ERROR_DEVICE_IN_LOW_POWER_STATE"; + case UR_FUNCTION_ENQUEUE_MEM_BUFFER_WRITE_RECT: + os << "UR_FUNCTION_ENQUEUE_MEM_BUFFER_WRITE_RECT"; break; - case UR_RESULT_ERROR_DEVICE_PARTITION_FAILED: - os << "UR_RESULT_ERROR_DEVICE_PARTITION_FAILED"; + case UR_FUNCTION_ENQUEUE_MEM_BUFFER_COPY: + os << "UR_FUNCTION_ENQUEUE_MEM_BUFFER_COPY"; break; - case UR_RESULT_ERROR_INVALID_DEVICE_PARTITION_COUNT: - os << "UR_RESULT_ERROR_INVALID_DEVICE_PARTITION_COUNT"; + case UR_FUNCTION_ENQUEUE_MEM_BUFFER_COPY_RECT: + os << "UR_FUNCTION_ENQUEUE_MEM_BUFFER_COPY_RECT"; break; - case UR_RESULT_ERROR_INVALID_WORK_ITEM_SIZE: - os << "UR_RESULT_ERROR_INVALID_WORK_ITEM_SIZE"; + case UR_FUNCTION_ENQUEUE_MEM_BUFFER_FILL: + os << "UR_FUNCTION_ENQUEUE_MEM_BUFFER_FILL"; break; - case UR_RESULT_ERROR_INVALID_WORK_DIMENSION: - os << "UR_RESULT_ERROR_INVALID_WORK_DIMENSION"; + case UR_FUNCTION_ENQUEUE_MEM_IMAGE_READ: + os << "UR_FUNCTION_ENQUEUE_MEM_IMAGE_READ"; break; - case UR_RESULT_ERROR_INVALID_KERNEL_ARGS: - os << "UR_RESULT_ERROR_INVALID_KERNEL_ARGS"; + case UR_FUNCTION_ENQUEUE_MEM_IMAGE_WRITE: + os << "UR_FUNCTION_ENQUEUE_MEM_IMAGE_WRITE"; break; - case UR_RESULT_ERROR_INVALID_KERNEL: - os << "UR_RESULT_ERROR_INVALID_KERNEL"; + case UR_FUNCTION_ENQUEUE_MEM_IMAGE_COPY: + os << "UR_FUNCTION_ENQUEUE_MEM_IMAGE_COPY"; break; - case UR_RESULT_ERROR_INVALID_KERNEL_NAME: - os << "UR_RESULT_ERROR_INVALID_KERNEL_NAME"; + case UR_FUNCTION_ENQUEUE_MEM_BUFFER_MAP: + os << "UR_FUNCTION_ENQUEUE_MEM_BUFFER_MAP"; break; - case UR_RESULT_ERROR_INVALID_KERNEL_ARGUMENT_INDEX: - os << "UR_RESULT_ERROR_INVALID_KERNEL_ARGUMENT_INDEX"; + case UR_FUNCTION_ENQUEUE_MEM_UNMAP: + os << "UR_FUNCTION_ENQUEUE_MEM_UNMAP"; break; - case UR_RESULT_ERROR_INVALID_KERNEL_ARGUMENT_SIZE: - os << "UR_RESULT_ERROR_INVALID_KERNEL_ARGUMENT_SIZE"; + case UR_FUNCTION_ENQUEUE_USM_FILL: + os << "UR_FUNCTION_ENQUEUE_USM_FILL"; break; - case UR_RESULT_ERROR_INVALID_KERNEL_ATTRIBUTE_VALUE: - os << "UR_RESULT_ERROR_INVALID_KERNEL_ATTRIBUTE_VALUE"; + case UR_FUNCTION_ENQUEUE_USM_MEMCPY: + os << "UR_FUNCTION_ENQUEUE_USM_MEMCPY"; break; - case UR_RESULT_ERROR_INVALID_IMAGE_SIZE: - os << "UR_RESULT_ERROR_INVALID_IMAGE_SIZE"; + case UR_FUNCTION_ENQUEUE_USM_PREFETCH: + os << "UR_FUNCTION_ENQUEUE_USM_PREFETCH"; break; - case UR_RESULT_ERROR_INVALID_IMAGE_FORMAT_DESCRIPTOR: - os << "UR_RESULT_ERROR_INVALID_IMAGE_FORMAT_DESCRIPTOR"; + case UR_FUNCTION_ENQUEUE_USM_ADVISE: + os << "UR_FUNCTION_ENQUEUE_USM_ADVISE"; break; - case UR_RESULT_ERROR_IMAGE_FORMAT_NOT_SUPPORTED: - os << "UR_RESULT_ERROR_IMAGE_FORMAT_NOT_SUPPORTED"; + case UR_FUNCTION_ENQUEUE_DEVICE_GLOBAL_VARIABLE_WRITE: + os << "UR_FUNCTION_ENQUEUE_DEVICE_GLOBAL_VARIABLE_WRITE"; break; - case UR_RESULT_ERROR_MEM_OBJECT_ALLOCATION_FAILURE: - os << "UR_RESULT_ERROR_MEM_OBJECT_ALLOCATION_FAILURE"; + case UR_FUNCTION_ENQUEUE_DEVICE_GLOBAL_VARIABLE_READ: + os << "UR_FUNCTION_ENQUEUE_DEVICE_GLOBAL_VARIABLE_READ"; break; - case UR_RESULT_ERROR_INVALID_PROGRAM_EXECUTABLE: - os << "UR_RESULT_ERROR_INVALID_PROGRAM_EXECUTABLE"; + case UR_FUNCTION_EVENT_GET_INFO: + os << "UR_FUNCTION_EVENT_GET_INFO"; break; - case UR_RESULT_ERROR_UNINITIALIZED: - os << "UR_RESULT_ERROR_UNINITIALIZED"; + case UR_FUNCTION_EVENT_GET_PROFILING_INFO: + os << "UR_FUNCTION_EVENT_GET_PROFILING_INFO"; break; - case UR_RESULT_ERROR_OUT_OF_HOST_MEMORY: - os << "UR_RESULT_ERROR_OUT_OF_HOST_MEMORY"; + case UR_FUNCTION_EVENT_WAIT: + os << "UR_FUNCTION_EVENT_WAIT"; break; - case UR_RESULT_ERROR_OUT_OF_DEVICE_MEMORY: - os << "UR_RESULT_ERROR_OUT_OF_DEVICE_MEMORY"; + case UR_FUNCTION_EVENT_RETAIN: + os << "UR_FUNCTION_EVENT_RETAIN"; break; - case UR_RESULT_ERROR_OUT_OF_RESOURCES: - os << "UR_RESULT_ERROR_OUT_OF_RESOURCES"; + case UR_FUNCTION_EVENT_RELEASE: + os << "UR_FUNCTION_EVENT_RELEASE"; break; - case UR_RESULT_ERROR_PROGRAM_BUILD_FAILURE: - os << "UR_RESULT_ERROR_PROGRAM_BUILD_FAILURE"; + case UR_FUNCTION_EVENT_GET_NATIVE_HANDLE: + os << "UR_FUNCTION_EVENT_GET_NATIVE_HANDLE"; break; - case UR_RESULT_ERROR_PROGRAM_LINK_FAILURE: - os << "UR_RESULT_ERROR_PROGRAM_LINK_FAILURE"; + case UR_FUNCTION_EVENT_CREATE_WITH_NATIVE_HANDLE: + os << "UR_FUNCTION_EVENT_CREATE_WITH_NATIVE_HANDLE"; break; - case UR_RESULT_ERROR_UNSUPPORTED_VERSION: - os << "UR_RESULT_ERROR_UNSUPPORTED_VERSION"; + case UR_FUNCTION_EVENT_SET_CALLBACK: + os << "UR_FUNCTION_EVENT_SET_CALLBACK"; break; - case UR_RESULT_ERROR_UNSUPPORTED_FEATURE: - os << "UR_RESULT_ERROR_UNSUPPORTED_FEATURE"; + case UR_FUNCTION_KERNEL_CREATE: + os << "UR_FUNCTION_KERNEL_CREATE"; break; - case UR_RESULT_ERROR_INVALID_ARGUMENT: - os << "UR_RESULT_ERROR_INVALID_ARGUMENT"; + case UR_FUNCTION_KERNEL_SET_ARG_VALUE: + os << "UR_FUNCTION_KERNEL_SET_ARG_VALUE"; break; - case UR_RESULT_ERROR_INVALID_NULL_HANDLE: - os << "UR_RESULT_ERROR_INVALID_NULL_HANDLE"; + case UR_FUNCTION_KERNEL_SET_ARG_LOCAL: + os << "UR_FUNCTION_KERNEL_SET_ARG_LOCAL"; break; - case UR_RESULT_ERROR_HANDLE_OBJECT_IN_USE: - os << "UR_RESULT_ERROR_HANDLE_OBJECT_IN_USE"; + case UR_FUNCTION_KERNEL_GET_INFO: + os << "UR_FUNCTION_KERNEL_GET_INFO"; break; - case UR_RESULT_ERROR_INVALID_NULL_POINTER: - os << "UR_RESULT_ERROR_INVALID_NULL_POINTER"; + case UR_FUNCTION_KERNEL_GET_GROUP_INFO: + os << "UR_FUNCTION_KERNEL_GET_GROUP_INFO"; break; - case UR_RESULT_ERROR_INVALID_SIZE: - os << "UR_RESULT_ERROR_INVALID_SIZE"; + case UR_FUNCTION_KERNEL_GET_SUB_GROUP_INFO: + os << "UR_FUNCTION_KERNEL_GET_SUB_GROUP_INFO"; break; - case UR_RESULT_ERROR_UNSUPPORTED_SIZE: - os << "UR_RESULT_ERROR_UNSUPPORTED_SIZE"; + case UR_FUNCTION_KERNEL_RETAIN: + os << "UR_FUNCTION_KERNEL_RETAIN"; break; - case UR_RESULT_ERROR_UNSUPPORTED_ALIGNMENT: - os << "UR_RESULT_ERROR_UNSUPPORTED_ALIGNMENT"; + case UR_FUNCTION_KERNEL_RELEASE: + os << "UR_FUNCTION_KERNEL_RELEASE"; break; - case UR_RESULT_ERROR_INVALID_SYNCHRONIZATION_OBJECT: - os << "UR_RESULT_ERROR_INVALID_SYNCHRONIZATION_OBJECT"; + case UR_FUNCTION_KERNEL_SET_ARG_POINTER: + os << "UR_FUNCTION_KERNEL_SET_ARG_POINTER"; break; - case UR_RESULT_ERROR_INVALID_ENUMERATION: - os << "UR_RESULT_ERROR_INVALID_ENUMERATION"; + case UR_FUNCTION_KERNEL_SET_EXEC_INFO: + os << "UR_FUNCTION_KERNEL_SET_EXEC_INFO"; break; - case UR_RESULT_ERROR_UNSUPPORTED_ENUMERATION: - os << "UR_RESULT_ERROR_UNSUPPORTED_ENUMERATION"; + case UR_FUNCTION_KERNEL_SET_ARG_SAMPLER: + os << "UR_FUNCTION_KERNEL_SET_ARG_SAMPLER"; break; - case UR_RESULT_ERROR_UNSUPPORTED_IMAGE_FORMAT: - os << "UR_RESULT_ERROR_UNSUPPORTED_IMAGE_FORMAT"; + case UR_FUNCTION_KERNEL_SET_ARG_MEM_OBJ: + os << "UR_FUNCTION_KERNEL_SET_ARG_MEM_OBJ"; break; - case UR_RESULT_ERROR_INVALID_NATIVE_BINARY: - os << "UR_RESULT_ERROR_INVALID_NATIVE_BINARY"; + case UR_FUNCTION_KERNEL_SET_SPECIALIZATION_CONSTANTS: + os << "UR_FUNCTION_KERNEL_SET_SPECIALIZATION_CONSTANTS"; break; - case UR_RESULT_ERROR_INVALID_GLOBAL_NAME: - os << "UR_RESULT_ERROR_INVALID_GLOBAL_NAME"; + case UR_FUNCTION_KERNEL_GET_NATIVE_HANDLE: + os << "UR_FUNCTION_KERNEL_GET_NATIVE_HANDLE"; break; - case UR_RESULT_ERROR_INVALID_FUNCTION_NAME: - os << "UR_RESULT_ERROR_INVALID_FUNCTION_NAME"; + case UR_FUNCTION_KERNEL_CREATE_WITH_NATIVE_HANDLE: + os << "UR_FUNCTION_KERNEL_CREATE_WITH_NATIVE_HANDLE"; break; - case UR_RESULT_ERROR_INVALID_GROUP_SIZE_DIMENSION: - os << "UR_RESULT_ERROR_INVALID_GROUP_SIZE_DIMENSION"; + case UR_FUNCTION_MEM_IMAGE_CREATE: + os << "UR_FUNCTION_MEM_IMAGE_CREATE"; break; - case UR_RESULT_ERROR_INVALID_GLOBAL_WIDTH_DIMENSION: - os << "UR_RESULT_ERROR_INVALID_GLOBAL_WIDTH_DIMENSION"; + case UR_FUNCTION_MEM_BUFFER_CREATE: + os << "UR_FUNCTION_MEM_BUFFER_CREATE"; break; - case UR_RESULT_ERROR_PROGRAM_UNLINKED: - os << "UR_RESULT_ERROR_PROGRAM_UNLINKED"; + case UR_FUNCTION_MEM_RETAIN: + os << "UR_FUNCTION_MEM_RETAIN"; break; - case UR_RESULT_ERROR_OVERLAPPING_REGIONS: - os << "UR_RESULT_ERROR_OVERLAPPING_REGIONS"; + case UR_FUNCTION_MEM_RELEASE: + os << "UR_FUNCTION_MEM_RELEASE"; break; - case UR_RESULT_ERROR_INVALID_HOST_PTR: - os << "UR_RESULT_ERROR_INVALID_HOST_PTR"; + case UR_FUNCTION_MEM_BUFFER_PARTITION: + os << "UR_FUNCTION_MEM_BUFFER_PARTITION"; break; - case UR_RESULT_ERROR_INVALID_USM_SIZE: - os << "UR_RESULT_ERROR_INVALID_USM_SIZE"; + case UR_FUNCTION_MEM_GET_NATIVE_HANDLE: + os << "UR_FUNCTION_MEM_GET_NATIVE_HANDLE"; break; - case UR_RESULT_ERROR_OBJECT_ALLOCATION_FAILURE: - os << "UR_RESULT_ERROR_OBJECT_ALLOCATION_FAILURE"; + case UR_FUNCTION_ENQUEUE_READ_HOST_PIPE: + os << "UR_FUNCTION_ENQUEUE_READ_HOST_PIPE"; break; - case UR_RESULT_ERROR_ADAPTER_SPECIFIC: - os << "UR_RESULT_ERROR_ADAPTER_SPECIFIC"; + case UR_FUNCTION_MEM_GET_INFO: + os << "UR_FUNCTION_MEM_GET_INFO"; break; - case UR_RESULT_ERROR_INVALID_COMMAND_BUFFER_EXP: - os << "UR_RESULT_ERROR_INVALID_COMMAND_BUFFER_EXP"; + case UR_FUNCTION_MEM_IMAGE_GET_INFO: + os << "UR_FUNCTION_MEM_IMAGE_GET_INFO"; break; - case UR_RESULT_ERROR_INVALID_COMMAND_BUFFER_SYNC_POINT_EXP: - os << "UR_RESULT_ERROR_INVALID_COMMAND_BUFFER_SYNC_POINT_EXP"; + case UR_FUNCTION_PLATFORM_GET: + os << "UR_FUNCTION_PLATFORM_GET"; break; - case UR_RESULT_ERROR_INVALID_COMMAND_BUFFER_SYNC_POINT_WAIT_LIST_EXP: - os << "UR_RESULT_ERROR_INVALID_COMMAND_BUFFER_SYNC_POINT_WAIT_LIST_EXP"; + case UR_FUNCTION_PLATFORM_GET_INFO: + os << "UR_FUNCTION_PLATFORM_GET_INFO"; break; - case UR_RESULT_ERROR_UNKNOWN: - os << "UR_RESULT_ERROR_UNKNOWN"; - break; - default: - os << "unknown enumerator"; + case UR_FUNCTION_PLATFORM_GET_API_VERSION: + os << "UR_FUNCTION_PLATFORM_GET_API_VERSION"; break; - } - return os; -} -inline std::ostream &operator<<(std::ostream &os, - enum ur_structure_type_t value) { - switch (value) { - case UR_STRUCTURE_TYPE_CONTEXT_PROPERTIES: - os << "UR_STRUCTURE_TYPE_CONTEXT_PROPERTIES"; + case UR_FUNCTION_PLATFORM_GET_NATIVE_HANDLE: + os << "UR_FUNCTION_PLATFORM_GET_NATIVE_HANDLE"; break; - case UR_STRUCTURE_TYPE_IMAGE_DESC: - os << "UR_STRUCTURE_TYPE_IMAGE_DESC"; + case UR_FUNCTION_PLATFORM_CREATE_WITH_NATIVE_HANDLE: + os << "UR_FUNCTION_PLATFORM_CREATE_WITH_NATIVE_HANDLE"; break; - case UR_STRUCTURE_TYPE_BUFFER_PROPERTIES: - os << "UR_STRUCTURE_TYPE_BUFFER_PROPERTIES"; + case UR_FUNCTION_PROGRAM_CREATE_WITH_IL: + os << "UR_FUNCTION_PROGRAM_CREATE_WITH_IL"; break; - case UR_STRUCTURE_TYPE_BUFFER_REGION: - os << "UR_STRUCTURE_TYPE_BUFFER_REGION"; + case UR_FUNCTION_PROGRAM_CREATE_WITH_BINARY: + os << "UR_FUNCTION_PROGRAM_CREATE_WITH_BINARY"; break; - case UR_STRUCTURE_TYPE_BUFFER_CHANNEL_PROPERTIES: - os << "UR_STRUCTURE_TYPE_BUFFER_CHANNEL_PROPERTIES"; + case UR_FUNCTION_PROGRAM_BUILD: + os << "UR_FUNCTION_PROGRAM_BUILD"; break; - case UR_STRUCTURE_TYPE_BUFFER_ALLOC_LOCATION_PROPERTIES: - os << "UR_STRUCTURE_TYPE_BUFFER_ALLOC_LOCATION_PROPERTIES"; + case UR_FUNCTION_PROGRAM_COMPILE: + os << "UR_FUNCTION_PROGRAM_COMPILE"; break; - case UR_STRUCTURE_TYPE_PROGRAM_PROPERTIES: - os << "UR_STRUCTURE_TYPE_PROGRAM_PROPERTIES"; + case UR_FUNCTION_PROGRAM_LINK: + os << "UR_FUNCTION_PROGRAM_LINK"; break; - case UR_STRUCTURE_TYPE_USM_DESC: - os << "UR_STRUCTURE_TYPE_USM_DESC"; + case UR_FUNCTION_PROGRAM_RETAIN: + os << "UR_FUNCTION_PROGRAM_RETAIN"; break; - case UR_STRUCTURE_TYPE_USM_HOST_DESC: - os << "UR_STRUCTURE_TYPE_USM_HOST_DESC"; + case UR_FUNCTION_PROGRAM_RELEASE: + os << "UR_FUNCTION_PROGRAM_RELEASE"; break; - case UR_STRUCTURE_TYPE_USM_DEVICE_DESC: - os << "UR_STRUCTURE_TYPE_USM_DEVICE_DESC"; + case UR_FUNCTION_PROGRAM_GET_FUNCTION_POINTER: + os << "UR_FUNCTION_PROGRAM_GET_FUNCTION_POINTER"; break; - case UR_STRUCTURE_TYPE_USM_POOL_DESC: - os << "UR_STRUCTURE_TYPE_USM_POOL_DESC"; + case UR_FUNCTION_PROGRAM_GET_INFO: + os << "UR_FUNCTION_PROGRAM_GET_INFO"; break; - case UR_STRUCTURE_TYPE_USM_POOL_LIMITS_DESC: - os << "UR_STRUCTURE_TYPE_USM_POOL_LIMITS_DESC"; + case UR_FUNCTION_PROGRAM_GET_BUILD_INFO: + os << "UR_FUNCTION_PROGRAM_GET_BUILD_INFO"; break; - case UR_STRUCTURE_TYPE_DEVICE_BINARY: - os << "UR_STRUCTURE_TYPE_DEVICE_BINARY"; + case UR_FUNCTION_PROGRAM_SET_SPECIALIZATION_CONSTANTS: + os << "UR_FUNCTION_PROGRAM_SET_SPECIALIZATION_CONSTANTS"; break; - case UR_STRUCTURE_TYPE_SAMPLER_DESC: - os << "UR_STRUCTURE_TYPE_SAMPLER_DESC"; + case UR_FUNCTION_PROGRAM_GET_NATIVE_HANDLE: + os << "UR_FUNCTION_PROGRAM_GET_NATIVE_HANDLE"; break; - case UR_STRUCTURE_TYPE_QUEUE_PROPERTIES: - os << "UR_STRUCTURE_TYPE_QUEUE_PROPERTIES"; + case UR_FUNCTION_PROGRAM_CREATE_WITH_NATIVE_HANDLE: + os << "UR_FUNCTION_PROGRAM_CREATE_WITH_NATIVE_HANDLE"; break; - case UR_STRUCTURE_TYPE_QUEUE_INDEX_PROPERTIES: - os << "UR_STRUCTURE_TYPE_QUEUE_INDEX_PROPERTIES"; + case UR_FUNCTION_QUEUE_GET_INFO: + os << "UR_FUNCTION_QUEUE_GET_INFO"; break; - case UR_STRUCTURE_TYPE_CONTEXT_NATIVE_PROPERTIES: - os << "UR_STRUCTURE_TYPE_CONTEXT_NATIVE_PROPERTIES"; + case UR_FUNCTION_QUEUE_CREATE: + os << "UR_FUNCTION_QUEUE_CREATE"; break; - case UR_STRUCTURE_TYPE_KERNEL_NATIVE_PROPERTIES: - os << "UR_STRUCTURE_TYPE_KERNEL_NATIVE_PROPERTIES"; + case UR_FUNCTION_QUEUE_RETAIN: + os << "UR_FUNCTION_QUEUE_RETAIN"; break; - case UR_STRUCTURE_TYPE_QUEUE_NATIVE_PROPERTIES: - os << "UR_STRUCTURE_TYPE_QUEUE_NATIVE_PROPERTIES"; + case UR_FUNCTION_QUEUE_RELEASE: + os << "UR_FUNCTION_QUEUE_RELEASE"; break; - case UR_STRUCTURE_TYPE_MEM_NATIVE_PROPERTIES: - os << "UR_STRUCTURE_TYPE_MEM_NATIVE_PROPERTIES"; + case UR_FUNCTION_QUEUE_GET_NATIVE_HANDLE: + os << "UR_FUNCTION_QUEUE_GET_NATIVE_HANDLE"; break; - case UR_STRUCTURE_TYPE_EVENT_NATIVE_PROPERTIES: - os << "UR_STRUCTURE_TYPE_EVENT_NATIVE_PROPERTIES"; + case UR_FUNCTION_QUEUE_CREATE_WITH_NATIVE_HANDLE: + os << "UR_FUNCTION_QUEUE_CREATE_WITH_NATIVE_HANDLE"; break; - case UR_STRUCTURE_TYPE_PLATFORM_NATIVE_PROPERTIES: - os << "UR_STRUCTURE_TYPE_PLATFORM_NATIVE_PROPERTIES"; + case UR_FUNCTION_QUEUE_FINISH: + os << "UR_FUNCTION_QUEUE_FINISH"; break; - case UR_STRUCTURE_TYPE_DEVICE_NATIVE_PROPERTIES: - os << "UR_STRUCTURE_TYPE_DEVICE_NATIVE_PROPERTIES"; + case UR_FUNCTION_QUEUE_FLUSH: + os << "UR_FUNCTION_QUEUE_FLUSH"; break; - case UR_STRUCTURE_TYPE_PROGRAM_NATIVE_PROPERTIES: - os << "UR_STRUCTURE_TYPE_PROGRAM_NATIVE_PROPERTIES"; + case UR_FUNCTION_INIT: + os << "UR_FUNCTION_INIT"; break; - case UR_STRUCTURE_TYPE_SAMPLER_NATIVE_PROPERTIES: - os << "UR_STRUCTURE_TYPE_SAMPLER_NATIVE_PROPERTIES"; + case UR_FUNCTION_TEAR_DOWN: + os << "UR_FUNCTION_TEAR_DOWN"; break; - case UR_STRUCTURE_TYPE_QUEUE_NATIVE_DESC: - os << "UR_STRUCTURE_TYPE_QUEUE_NATIVE_DESC"; + case UR_FUNCTION_SAMPLER_CREATE: + os << "UR_FUNCTION_SAMPLER_CREATE"; break; - case UR_STRUCTURE_TYPE_DEVICE_PARTITION_PROPERTIES: - os << "UR_STRUCTURE_TYPE_DEVICE_PARTITION_PROPERTIES"; + case UR_FUNCTION_SAMPLER_RETAIN: + os << "UR_FUNCTION_SAMPLER_RETAIN"; break; - case UR_STRUCTURE_TYPE_KERNEL_ARG_MEM_OBJ_PROPERTIES: - os << "UR_STRUCTURE_TYPE_KERNEL_ARG_MEM_OBJ_PROPERTIES"; + case UR_FUNCTION_SAMPLER_RELEASE: + os << "UR_FUNCTION_SAMPLER_RELEASE"; break; - case UR_STRUCTURE_TYPE_PHYSICAL_MEM_PROPERTIES: - os << "UR_STRUCTURE_TYPE_PHYSICAL_MEM_PROPERTIES"; + case UR_FUNCTION_SAMPLER_GET_INFO: + os << "UR_FUNCTION_SAMPLER_GET_INFO"; break; - case UR_STRUCTURE_TYPE_KERNEL_ARG_POINTER_PROPERTIES: - os << "UR_STRUCTURE_TYPE_KERNEL_ARG_POINTER_PROPERTIES"; + case UR_FUNCTION_SAMPLER_GET_NATIVE_HANDLE: + os << "UR_FUNCTION_SAMPLER_GET_NATIVE_HANDLE"; break; - case UR_STRUCTURE_TYPE_KERNEL_ARG_SAMPLER_PROPERTIES: - os << "UR_STRUCTURE_TYPE_KERNEL_ARG_SAMPLER_PROPERTIES"; + case UR_FUNCTION_SAMPLER_CREATE_WITH_NATIVE_HANDLE: + os << "UR_FUNCTION_SAMPLER_CREATE_WITH_NATIVE_HANDLE"; break; - case UR_STRUCTURE_TYPE_KERNEL_EXEC_INFO_PROPERTIES: - os << "UR_STRUCTURE_TYPE_KERNEL_EXEC_INFO_PROPERTIES"; + case UR_FUNCTION_USM_HOST_ALLOC: + os << "UR_FUNCTION_USM_HOST_ALLOC"; break; - case UR_STRUCTURE_TYPE_KERNEL_ARG_VALUE_PROPERTIES: - os << "UR_STRUCTURE_TYPE_KERNEL_ARG_VALUE_PROPERTIES"; + case UR_FUNCTION_USM_DEVICE_ALLOC: + os << "UR_FUNCTION_USM_DEVICE_ALLOC"; break; - case UR_STRUCTURE_TYPE_KERNEL_ARG_LOCAL_PROPERTIES: - os << "UR_STRUCTURE_TYPE_KERNEL_ARG_LOCAL_PROPERTIES"; + case UR_FUNCTION_USM_SHARED_ALLOC: + os << "UR_FUNCTION_USM_SHARED_ALLOC"; break; - case UR_STRUCTURE_TYPE_EXP_COMMAND_BUFFER_DESC: - os << "UR_STRUCTURE_TYPE_EXP_COMMAND_BUFFER_DESC"; + case UR_FUNCTION_USM_FREE: + os << "UR_FUNCTION_USM_FREE"; break; - case UR_STRUCTURE_TYPE_EXP_SAMPLER_MIP_PROPERTIES: - os << "UR_STRUCTURE_TYPE_EXP_SAMPLER_MIP_PROPERTIES"; + case UR_FUNCTION_USM_GET_MEM_ALLOC_INFO: + os << "UR_FUNCTION_USM_GET_MEM_ALLOC_INFO"; break; - default: - os << "unknown enumerator"; + + case UR_FUNCTION_USM_POOL_CREATE: + os << "UR_FUNCTION_USM_POOL_CREATE"; break; - } - return os; -} -namespace ur_params { -inline void serializeStruct(std::ostream &os, const void *ptr) { - if (ptr == NULL) { - ur_params::serializePtr(os, ptr); - return; - } - enum ur_structure_type_t *value = (enum ur_structure_type_t *)ptr; - switch (*value) { + case UR_FUNCTION_COMMAND_BUFFER_CREATE_EXP: + os << "UR_FUNCTION_COMMAND_BUFFER_CREATE_EXP"; + break; - case UR_STRUCTURE_TYPE_CONTEXT_PROPERTIES: { - const ur_context_properties_t *pstruct = - (const ur_context_properties_t *)ptr; - ur_params::serializePtr(os, pstruct); - } break; + case UR_FUNCTION_PLATFORM_GET_BACKEND_OPTION: + os << "UR_FUNCTION_PLATFORM_GET_BACKEND_OPTION"; + break; - case UR_STRUCTURE_TYPE_IMAGE_DESC: { - const ur_image_desc_t *pstruct = (const ur_image_desc_t *)ptr; - ur_params::serializePtr(os, pstruct); - } break; + case UR_FUNCTION_MEM_BUFFER_CREATE_WITH_NATIVE_HANDLE: + os << "UR_FUNCTION_MEM_BUFFER_CREATE_WITH_NATIVE_HANDLE"; + break; - case UR_STRUCTURE_TYPE_BUFFER_PROPERTIES: { - const ur_buffer_properties_t *pstruct = - (const ur_buffer_properties_t *)ptr; - ur_params::serializePtr(os, pstruct); - } break; + case UR_FUNCTION_MEM_IMAGE_CREATE_WITH_NATIVE_HANDLE: + os << "UR_FUNCTION_MEM_IMAGE_CREATE_WITH_NATIVE_HANDLE"; + break; - case UR_STRUCTURE_TYPE_BUFFER_REGION: { - const ur_buffer_region_t *pstruct = (const ur_buffer_region_t *)ptr; - ur_params::serializePtr(os, pstruct); - } break; + case UR_FUNCTION_ENQUEUE_WRITE_HOST_PIPE: + os << "UR_FUNCTION_ENQUEUE_WRITE_HOST_PIPE"; + break; - case UR_STRUCTURE_TYPE_BUFFER_CHANNEL_PROPERTIES: { - const ur_buffer_channel_properties_t *pstruct = - (const ur_buffer_channel_properties_t *)ptr; - ur_params::serializePtr(os, pstruct); - } break; + case UR_FUNCTION_USM_POOL_RETAIN: + os << "UR_FUNCTION_USM_POOL_RETAIN"; + break; - case UR_STRUCTURE_TYPE_BUFFER_ALLOC_LOCATION_PROPERTIES: { - const ur_buffer_alloc_location_properties_t *pstruct = - (const ur_buffer_alloc_location_properties_t *)ptr; - ur_params::serializePtr(os, pstruct); - } break; + case UR_FUNCTION_USM_POOL_RELEASE: + os << "UR_FUNCTION_USM_POOL_RELEASE"; + break; - case UR_STRUCTURE_TYPE_PROGRAM_PROPERTIES: { - const ur_program_properties_t *pstruct = - (const ur_program_properties_t *)ptr; - ur_params::serializePtr(os, pstruct); - } break; + case UR_FUNCTION_USM_POOL_GET_INFO: + os << "UR_FUNCTION_USM_POOL_GET_INFO"; + break; - case UR_STRUCTURE_TYPE_USM_DESC: { - const ur_usm_desc_t *pstruct = (const ur_usm_desc_t *)ptr; - ur_params::serializePtr(os, pstruct); - } break; + case UR_FUNCTION_COMMAND_BUFFER_RETAIN_EXP: + os << "UR_FUNCTION_COMMAND_BUFFER_RETAIN_EXP"; + break; - case UR_STRUCTURE_TYPE_USM_HOST_DESC: { - const ur_usm_host_desc_t *pstruct = (const ur_usm_host_desc_t *)ptr; - ur_params::serializePtr(os, pstruct); - } break; + case UR_FUNCTION_COMMAND_BUFFER_RELEASE_EXP: + os << "UR_FUNCTION_COMMAND_BUFFER_RELEASE_EXP"; + break; - case UR_STRUCTURE_TYPE_USM_DEVICE_DESC: { - const ur_usm_device_desc_t *pstruct = (const ur_usm_device_desc_t *)ptr; - ur_params::serializePtr(os, pstruct); - } break; + case UR_FUNCTION_COMMAND_BUFFER_FINALIZE_EXP: + os << "UR_FUNCTION_COMMAND_BUFFER_FINALIZE_EXP"; + break; - case UR_STRUCTURE_TYPE_USM_POOL_DESC: { - const ur_usm_pool_desc_t *pstruct = (const ur_usm_pool_desc_t *)ptr; - ur_params::serializePtr(os, pstruct); - } break; + case UR_FUNCTION_COMMAND_BUFFER_APPEND_KERNEL_LAUNCH_EXP: + os << "UR_FUNCTION_COMMAND_BUFFER_APPEND_KERNEL_LAUNCH_EXP"; + break; - case UR_STRUCTURE_TYPE_USM_POOL_LIMITS_DESC: { - const ur_usm_pool_limits_desc_t *pstruct = - (const ur_usm_pool_limits_desc_t *)ptr; - ur_params::serializePtr(os, pstruct); - } break; + case UR_FUNCTION_COMMAND_BUFFER_ENQUEUE_EXP: + os << "UR_FUNCTION_COMMAND_BUFFER_ENQUEUE_EXP"; + break; - case UR_STRUCTURE_TYPE_DEVICE_BINARY: { - const ur_device_binary_t *pstruct = (const ur_device_binary_t *)ptr; - ur_params::serializePtr(os, pstruct); - } break; + case UR_FUNCTION_COMMAND_BUFFER_APPEND_MEMCPY_USM_EXP: + os << "UR_FUNCTION_COMMAND_BUFFER_APPEND_MEMCPY_USM_EXP"; + break; - case UR_STRUCTURE_TYPE_SAMPLER_DESC: { - const ur_sampler_desc_t *pstruct = (const ur_sampler_desc_t *)ptr; - ur_params::serializePtr(os, pstruct); - } break; + case UR_FUNCTION_COMMAND_BUFFER_APPEND_MEMBUFFER_COPY_EXP: + os << "UR_FUNCTION_COMMAND_BUFFER_APPEND_MEMBUFFER_COPY_EXP"; + break; - case UR_STRUCTURE_TYPE_QUEUE_PROPERTIES: { - const ur_queue_properties_t *pstruct = - (const ur_queue_properties_t *)ptr; - ur_params::serializePtr(os, pstruct); - } break; + case UR_FUNCTION_COMMAND_BUFFER_APPEND_MEMBUFFER_COPY_RECT_EXP: + os << "UR_FUNCTION_COMMAND_BUFFER_APPEND_MEMBUFFER_COPY_RECT_EXP"; + break; - case UR_STRUCTURE_TYPE_QUEUE_INDEX_PROPERTIES: { - const ur_queue_properties_t *pstruct = - (const ur_queue_properties_t *)ptr; - ur_params::serializePtr(os, pstruct); - } break; + case UR_FUNCTION_USM_PITCHED_ALLOC_EXP: + os << "UR_FUNCTION_USM_PITCHED_ALLOC_EXP"; + break; - case UR_STRUCTURE_TYPE_CONTEXT_NATIVE_PROPERTIES: { - const ur_context_native_properties_t *pstruct = - (const ur_context_native_properties_t *)ptr; - ur_params::serializePtr(os, pstruct); - } break; + case UR_FUNCTION_BINDLESS_IMAGES_UNSAMPLED_IMAGE_HANDLE_DESTROY_EXP: + os << "UR_FUNCTION_BINDLESS_IMAGES_UNSAMPLED_IMAGE_HANDLE_DESTROY_EXP"; + break; - case UR_STRUCTURE_TYPE_KERNEL_NATIVE_PROPERTIES: { - const ur_kernel_native_properties_t *pstruct = - (const ur_kernel_native_properties_t *)ptr; - ur_params::serializePtr(os, pstruct); - } break; + case UR_FUNCTION_BINDLESS_IMAGES_SAMPLED_IMAGE_HANDLE_DESTROY_EXP: + os << "UR_FUNCTION_BINDLESS_IMAGES_SAMPLED_IMAGE_HANDLE_DESTROY_EXP"; + break; - case UR_STRUCTURE_TYPE_QUEUE_NATIVE_PROPERTIES: { - const ur_queue_native_properties_t *pstruct = - (const ur_queue_native_properties_t *)ptr; - ur_params::serializePtr(os, pstruct); - } break; + case UR_FUNCTION_BINDLESS_IMAGES_IMAGE_ALLOCATE_EXP: + os << "UR_FUNCTION_BINDLESS_IMAGES_IMAGE_ALLOCATE_EXP"; + break; - case UR_STRUCTURE_TYPE_MEM_NATIVE_PROPERTIES: { - const ur_mem_native_properties_t *pstruct = - (const ur_mem_native_properties_t *)ptr; - ur_params::serializePtr(os, pstruct); - } break; + case UR_FUNCTION_BINDLESS_IMAGES_IMAGE_FREE_EXP: + os << "UR_FUNCTION_BINDLESS_IMAGES_IMAGE_FREE_EXP"; + break; - case UR_STRUCTURE_TYPE_EVENT_NATIVE_PROPERTIES: { - const ur_event_native_properties_t *pstruct = - (const ur_event_native_properties_t *)ptr; - ur_params::serializePtr(os, pstruct); - } break; + case UR_FUNCTION_BINDLESS_IMAGES_UNSAMPLED_IMAGE_CREATE_EXP: + os << "UR_FUNCTION_BINDLESS_IMAGES_UNSAMPLED_IMAGE_CREATE_EXP"; + break; - case UR_STRUCTURE_TYPE_PLATFORM_NATIVE_PROPERTIES: { - const ur_platform_native_properties_t *pstruct = - (const ur_platform_native_properties_t *)ptr; - ur_params::serializePtr(os, pstruct); - } break; + case UR_FUNCTION_BINDLESS_IMAGES_SAMPLED_IMAGE_CREATE_EXP: + os << "UR_FUNCTION_BINDLESS_IMAGES_SAMPLED_IMAGE_CREATE_EXP"; + break; - case UR_STRUCTURE_TYPE_DEVICE_NATIVE_PROPERTIES: { - const ur_device_native_properties_t *pstruct = - (const ur_device_native_properties_t *)ptr; - ur_params::serializePtr(os, pstruct); - } break; + case UR_FUNCTION_BINDLESS_IMAGES_IMAGE_COPY_EXP: + os << "UR_FUNCTION_BINDLESS_IMAGES_IMAGE_COPY_EXP"; + break; - case UR_STRUCTURE_TYPE_PROGRAM_NATIVE_PROPERTIES: { - const ur_program_native_properties_t *pstruct = - (const ur_program_native_properties_t *)ptr; - ur_params::serializePtr(os, pstruct); - } break; + case UR_FUNCTION_BINDLESS_IMAGES_IMAGE_GET_INFO_EXP: + os << "UR_FUNCTION_BINDLESS_IMAGES_IMAGE_GET_INFO_EXP"; + break; - case UR_STRUCTURE_TYPE_SAMPLER_NATIVE_PROPERTIES: { - const ur_sampler_native_properties_t *pstruct = - (const ur_sampler_native_properties_t *)ptr; - ur_params::serializePtr(os, pstruct); - } break; + case UR_FUNCTION_BINDLESS_IMAGES_MIPMAP_GET_LEVEL_EXP: + os << "UR_FUNCTION_BINDLESS_IMAGES_MIPMAP_GET_LEVEL_EXP"; + break; - case UR_STRUCTURE_TYPE_QUEUE_NATIVE_DESC: { - const ur_queue_native_desc_t *pstruct = - (const ur_queue_native_desc_t *)ptr; - ur_params::serializePtr(os, pstruct); - } break; + case UR_FUNCTION_BINDLESS_IMAGES_MIPMAP_FREE_EXP: + os << "UR_FUNCTION_BINDLESS_IMAGES_MIPMAP_FREE_EXP"; + break; - case UR_STRUCTURE_TYPE_DEVICE_PARTITION_PROPERTIES: { - const ur_device_partition_properties_t *pstruct = - (const ur_device_partition_properties_t *)ptr; - ur_params::serializePtr(os, pstruct); - } break; + case UR_FUNCTION_BINDLESS_IMAGES_IMPORT_OPAQUE_FD_EXP: + os << "UR_FUNCTION_BINDLESS_IMAGES_IMPORT_OPAQUE_FD_EXP"; + break; - case UR_STRUCTURE_TYPE_KERNEL_ARG_MEM_OBJ_PROPERTIES: { - const ur_kernel_arg_mem_obj_properties_t *pstruct = - (const ur_kernel_arg_mem_obj_properties_t *)ptr; - ur_params::serializePtr(os, pstruct); - } break; + case UR_FUNCTION_BINDLESS_IMAGES_MAP_EXTERNAL_ARRAY_EXP: + os << "UR_FUNCTION_BINDLESS_IMAGES_MAP_EXTERNAL_ARRAY_EXP"; + break; - case UR_STRUCTURE_TYPE_PHYSICAL_MEM_PROPERTIES: { - const ur_physical_mem_properties_t *pstruct = - (const ur_physical_mem_properties_t *)ptr; - ur_params::serializePtr(os, pstruct); - } break; + case UR_FUNCTION_BINDLESS_IMAGES_RELEASE_INTEROP_EXP: + os << "UR_FUNCTION_BINDLESS_IMAGES_RELEASE_INTEROP_EXP"; + break; - case UR_STRUCTURE_TYPE_KERNEL_ARG_POINTER_PROPERTIES: { - const ur_kernel_arg_pointer_properties_t *pstruct = - (const ur_kernel_arg_pointer_properties_t *)ptr; - ur_params::serializePtr(os, pstruct); - } break; + case UR_FUNCTION_BINDLESS_IMAGES_IMPORT_EXTERNAL_SEMAPHORE_OPAQUE_FD_EXP: + os << "UR_FUNCTION_BINDLESS_IMAGES_IMPORT_EXTERNAL_SEMAPHORE_OPAQUE_FD_" + "EXP"; + break; - case UR_STRUCTURE_TYPE_KERNEL_ARG_SAMPLER_PROPERTIES: { - const ur_kernel_arg_sampler_properties_t *pstruct = - (const ur_kernel_arg_sampler_properties_t *)ptr; - ur_params::serializePtr(os, pstruct); - } break; + case UR_FUNCTION_BINDLESS_IMAGES_DESTROY_EXTERNAL_SEMAPHORE_EXP: + os << "UR_FUNCTION_BINDLESS_IMAGES_DESTROY_EXTERNAL_SEMAPHORE_EXP"; + break; - case UR_STRUCTURE_TYPE_KERNEL_EXEC_INFO_PROPERTIES: { - const ur_kernel_exec_info_properties_t *pstruct = - (const ur_kernel_exec_info_properties_t *)ptr; - ur_params::serializePtr(os, pstruct); - } break; + case UR_FUNCTION_BINDLESS_IMAGES_WAIT_EXTERNAL_SEMAPHORE_EXP: + os << "UR_FUNCTION_BINDLESS_IMAGES_WAIT_EXTERNAL_SEMAPHORE_EXP"; + break; - case UR_STRUCTURE_TYPE_KERNEL_ARG_VALUE_PROPERTIES: { - const ur_kernel_arg_value_properties_t *pstruct = - (const ur_kernel_arg_value_properties_t *)ptr; - ur_params::serializePtr(os, pstruct); - } break; + case UR_FUNCTION_BINDLESS_IMAGES_SIGNAL_EXTERNAL_SEMAPHORE_EXP: + os << "UR_FUNCTION_BINDLESS_IMAGES_SIGNAL_EXTERNAL_SEMAPHORE_EXP"; + break; - case UR_STRUCTURE_TYPE_KERNEL_ARG_LOCAL_PROPERTIES: { - const ur_kernel_arg_local_properties_t *pstruct = - (const ur_kernel_arg_local_properties_t *)ptr; - ur_params::serializePtr(os, pstruct); - } break; + case UR_FUNCTION_PLATFORM_GET_LAST_ERROR: + os << "UR_FUNCTION_PLATFORM_GET_LAST_ERROR"; + break; - case UR_STRUCTURE_TYPE_EXP_COMMAND_BUFFER_DESC: { - const ur_exp_command_buffer_desc_t *pstruct = - (const ur_exp_command_buffer_desc_t *)ptr; - ur_params::serializePtr(os, pstruct); - } break; + case UR_FUNCTION_ENQUEUE_USM_FILL_2D: + os << "UR_FUNCTION_ENQUEUE_USM_FILL_2D"; + break; - case UR_STRUCTURE_TYPE_EXP_SAMPLER_MIP_PROPERTIES: { - const ur_exp_sampler_mip_properties_t *pstruct = - (const ur_exp_sampler_mip_properties_t *)ptr; - ur_params::serializePtr(os, pstruct); - } break; - default: - os << "unknown enumerator"; + case UR_FUNCTION_ENQUEUE_USM_MEMCPY_2D: + os << "UR_FUNCTION_ENQUEUE_USM_MEMCPY_2D"; break; - } -} -} // namespace ur_params -inline std::ostream &operator<<(std::ostream &os, - const struct ur_base_properties_t params) { - os << "(struct ur_base_properties_t){"; - os << ".stype = "; + case UR_FUNCTION_VIRTUAL_MEM_GRANULARITY_GET_INFO: + os << "UR_FUNCTION_VIRTUAL_MEM_GRANULARITY_GET_INFO"; + break; - os << (params.stype); + case UR_FUNCTION_VIRTUAL_MEM_RESERVE: + os << "UR_FUNCTION_VIRTUAL_MEM_RESERVE"; + break; - os << ", "; - os << ".pNext = "; + case UR_FUNCTION_VIRTUAL_MEM_FREE: + os << "UR_FUNCTION_VIRTUAL_MEM_FREE"; + break; - ur_params::serializeStruct(os, (params.pNext)); + case UR_FUNCTION_VIRTUAL_MEM_MAP: + os << "UR_FUNCTION_VIRTUAL_MEM_MAP"; + break; - os << "}"; - return os; -} -inline std::ostream &operator<<(std::ostream &os, - const struct ur_base_desc_t params) { - os << "(struct ur_base_desc_t){"; + case UR_FUNCTION_VIRTUAL_MEM_UNMAP: + os << "UR_FUNCTION_VIRTUAL_MEM_UNMAP"; + break; - os << ".stype = "; + case UR_FUNCTION_VIRTUAL_MEM_SET_ACCESS: + os << "UR_FUNCTION_VIRTUAL_MEM_SET_ACCESS"; + break; - os << (params.stype); + case UR_FUNCTION_VIRTUAL_MEM_GET_INFO: + os << "UR_FUNCTION_VIRTUAL_MEM_GET_INFO"; + break; - os << ", "; - os << ".pNext = "; + case UR_FUNCTION_PHYSICAL_MEM_CREATE: + os << "UR_FUNCTION_PHYSICAL_MEM_CREATE"; + break; - ur_params::serializeStruct(os, (params.pNext)); + case UR_FUNCTION_PHYSICAL_MEM_RETAIN: + os << "UR_FUNCTION_PHYSICAL_MEM_RETAIN"; + break; - os << "}"; - return os; -} -inline std::ostream &operator<<(std::ostream &os, - const struct ur_rect_offset_t params) { - os << "(struct ur_rect_offset_t){"; + case UR_FUNCTION_PHYSICAL_MEM_RELEASE: + os << "UR_FUNCTION_PHYSICAL_MEM_RELEASE"; + break; - os << ".x = "; + case UR_FUNCTION_USM_IMPORT_EXP: + os << "UR_FUNCTION_USM_IMPORT_EXP"; + break; - os << (params.x); + case UR_FUNCTION_USM_RELEASE_EXP: + os << "UR_FUNCTION_USM_RELEASE_EXP"; + break; - os << ", "; - os << ".y = "; + case UR_FUNCTION_USM_P2P_ENABLE_PEER_ACCESS_EXP: + os << "UR_FUNCTION_USM_P2P_ENABLE_PEER_ACCESS_EXP"; + break; - os << (params.y); + case UR_FUNCTION_USM_P2P_DISABLE_PEER_ACCESS_EXP: + os << "UR_FUNCTION_USM_P2P_DISABLE_PEER_ACCESS_EXP"; + break; - os << ", "; - os << ".z = "; + case UR_FUNCTION_USM_P2P_PEER_ACCESS_GET_INFO_EXP: + os << "UR_FUNCTION_USM_P2P_PEER_ACCESS_GET_INFO_EXP"; + break; - os << (params.z); + case UR_FUNCTION_COMMAND_BUFFER_APPEND_MEMBUFFER_WRITE_EXP: + os << "UR_FUNCTION_COMMAND_BUFFER_APPEND_MEMBUFFER_WRITE_EXP"; + break; - os << "}"; + case UR_FUNCTION_COMMAND_BUFFER_APPEND_MEMBUFFER_READ_EXP: + os << "UR_FUNCTION_COMMAND_BUFFER_APPEND_MEMBUFFER_READ_EXP"; + break; + + case UR_FUNCTION_COMMAND_BUFFER_APPEND_MEMBUFFER_WRITE_RECT_EXP: + os << "UR_FUNCTION_COMMAND_BUFFER_APPEND_MEMBUFFER_WRITE_RECT_EXP"; + break; + + case UR_FUNCTION_COMMAND_BUFFER_APPEND_MEMBUFFER_READ_RECT_EXP: + os << "UR_FUNCTION_COMMAND_BUFFER_APPEND_MEMBUFFER_READ_RECT_EXP"; + break; + default: + os << "unknown enumerator"; + break; + } return os; } inline std::ostream &operator<<(std::ostream &os, - const struct ur_rect_region_t params) { - os << "(struct ur_rect_region_t){"; + enum ur_structure_type_t value) { + switch (value) { - os << ".width = "; + case UR_STRUCTURE_TYPE_CONTEXT_PROPERTIES: + os << "UR_STRUCTURE_TYPE_CONTEXT_PROPERTIES"; + break; - os << (params.width); + case UR_STRUCTURE_TYPE_IMAGE_DESC: + os << "UR_STRUCTURE_TYPE_IMAGE_DESC"; + break; - os << ", "; - os << ".height = "; + case UR_STRUCTURE_TYPE_BUFFER_PROPERTIES: + os << "UR_STRUCTURE_TYPE_BUFFER_PROPERTIES"; + break; - os << (params.height); + case UR_STRUCTURE_TYPE_BUFFER_REGION: + os << "UR_STRUCTURE_TYPE_BUFFER_REGION"; + break; - os << ", "; - os << ".depth = "; + case UR_STRUCTURE_TYPE_BUFFER_CHANNEL_PROPERTIES: + os << "UR_STRUCTURE_TYPE_BUFFER_CHANNEL_PROPERTIES"; + break; - os << (params.depth); + case UR_STRUCTURE_TYPE_BUFFER_ALLOC_LOCATION_PROPERTIES: + os << "UR_STRUCTURE_TYPE_BUFFER_ALLOC_LOCATION_PROPERTIES"; + break; - os << "}"; - return os; -} -inline std::ostream &operator<<(std::ostream &os, - enum ur_device_init_flag_t value) { - switch (value) { + case UR_STRUCTURE_TYPE_PROGRAM_PROPERTIES: + os << "UR_STRUCTURE_TYPE_PROGRAM_PROPERTIES"; + break; - case UR_DEVICE_INIT_FLAG_GPU: - os << "UR_DEVICE_INIT_FLAG_GPU"; + case UR_STRUCTURE_TYPE_USM_DESC: + os << "UR_STRUCTURE_TYPE_USM_DESC"; break; - case UR_DEVICE_INIT_FLAG_CPU: - os << "UR_DEVICE_INIT_FLAG_CPU"; + case UR_STRUCTURE_TYPE_USM_HOST_DESC: + os << "UR_STRUCTURE_TYPE_USM_HOST_DESC"; break; - case UR_DEVICE_INIT_FLAG_FPGA: - os << "UR_DEVICE_INIT_FLAG_FPGA"; + case UR_STRUCTURE_TYPE_USM_DEVICE_DESC: + os << "UR_STRUCTURE_TYPE_USM_DEVICE_DESC"; break; - case UR_DEVICE_INIT_FLAG_MCA: - os << "UR_DEVICE_INIT_FLAG_MCA"; + case UR_STRUCTURE_TYPE_USM_POOL_DESC: + os << "UR_STRUCTURE_TYPE_USM_POOL_DESC"; break; - case UR_DEVICE_INIT_FLAG_VPU: - os << "UR_DEVICE_INIT_FLAG_VPU"; + case UR_STRUCTURE_TYPE_USM_POOL_LIMITS_DESC: + os << "UR_STRUCTURE_TYPE_USM_POOL_LIMITS_DESC"; break; - default: - os << "unknown enumerator"; + + case UR_STRUCTURE_TYPE_DEVICE_BINARY: + os << "UR_STRUCTURE_TYPE_DEVICE_BINARY"; break; - } - return os; -} -namespace ur_params { -template <> -inline void serializeFlag(std::ostream &os, - uint32_t flag) { - uint32_t val = flag; - bool first = true; + case UR_STRUCTURE_TYPE_SAMPLER_DESC: + os << "UR_STRUCTURE_TYPE_SAMPLER_DESC"; + break; - if ((val & UR_DEVICE_INIT_FLAG_GPU) == (uint32_t)UR_DEVICE_INIT_FLAG_GPU) { - val ^= (uint32_t)UR_DEVICE_INIT_FLAG_GPU; - if (!first) { - os << " | "; - } else { - first = false; - } - os << UR_DEVICE_INIT_FLAG_GPU; - } + case UR_STRUCTURE_TYPE_QUEUE_PROPERTIES: + os << "UR_STRUCTURE_TYPE_QUEUE_PROPERTIES"; + break; - if ((val & UR_DEVICE_INIT_FLAG_CPU) == (uint32_t)UR_DEVICE_INIT_FLAG_CPU) { - val ^= (uint32_t)UR_DEVICE_INIT_FLAG_CPU; - if (!first) { - os << " | "; - } else { - first = false; - } - os << UR_DEVICE_INIT_FLAG_CPU; - } + case UR_STRUCTURE_TYPE_QUEUE_INDEX_PROPERTIES: + os << "UR_STRUCTURE_TYPE_QUEUE_INDEX_PROPERTIES"; + break; - if ((val & UR_DEVICE_INIT_FLAG_FPGA) == - (uint32_t)UR_DEVICE_INIT_FLAG_FPGA) { - val ^= (uint32_t)UR_DEVICE_INIT_FLAG_FPGA; - if (!first) { - os << " | "; - } else { - first = false; - } - os << UR_DEVICE_INIT_FLAG_FPGA; - } + case UR_STRUCTURE_TYPE_CONTEXT_NATIVE_PROPERTIES: + os << "UR_STRUCTURE_TYPE_CONTEXT_NATIVE_PROPERTIES"; + break; - if ((val & UR_DEVICE_INIT_FLAG_MCA) == (uint32_t)UR_DEVICE_INIT_FLAG_MCA) { - val ^= (uint32_t)UR_DEVICE_INIT_FLAG_MCA; - if (!first) { - os << " | "; - } else { - first = false; - } - os << UR_DEVICE_INIT_FLAG_MCA; - } + case UR_STRUCTURE_TYPE_KERNEL_NATIVE_PROPERTIES: + os << "UR_STRUCTURE_TYPE_KERNEL_NATIVE_PROPERTIES"; + break; - if ((val & UR_DEVICE_INIT_FLAG_VPU) == (uint32_t)UR_DEVICE_INIT_FLAG_VPU) { - val ^= (uint32_t)UR_DEVICE_INIT_FLAG_VPU; - if (!first) { - os << " | "; - } else { - first = false; - } - os << UR_DEVICE_INIT_FLAG_VPU; - } - if (val != 0) { - std::bitset<32> bits(val); - if (!first) { - os << " | "; - } - os << "unknown bit flags " << bits; - } else if (first) { - os << "0"; - } -} -} // namespace ur_params -inline std::ostream &operator<<(std::ostream &os, - enum ur_platform_info_t value) { - switch (value) { + case UR_STRUCTURE_TYPE_QUEUE_NATIVE_PROPERTIES: + os << "UR_STRUCTURE_TYPE_QUEUE_NATIVE_PROPERTIES"; + break; - case UR_PLATFORM_INFO_NAME: - os << "UR_PLATFORM_INFO_NAME"; + case UR_STRUCTURE_TYPE_MEM_NATIVE_PROPERTIES: + os << "UR_STRUCTURE_TYPE_MEM_NATIVE_PROPERTIES"; break; - case UR_PLATFORM_INFO_VENDOR_NAME: - os << "UR_PLATFORM_INFO_VENDOR_NAME"; + case UR_STRUCTURE_TYPE_EVENT_NATIVE_PROPERTIES: + os << "UR_STRUCTURE_TYPE_EVENT_NATIVE_PROPERTIES"; break; - case UR_PLATFORM_INFO_VERSION: - os << "UR_PLATFORM_INFO_VERSION"; + case UR_STRUCTURE_TYPE_PLATFORM_NATIVE_PROPERTIES: + os << "UR_STRUCTURE_TYPE_PLATFORM_NATIVE_PROPERTIES"; break; - case UR_PLATFORM_INFO_EXTENSIONS: - os << "UR_PLATFORM_INFO_EXTENSIONS"; + case UR_STRUCTURE_TYPE_DEVICE_NATIVE_PROPERTIES: + os << "UR_STRUCTURE_TYPE_DEVICE_NATIVE_PROPERTIES"; break; - case UR_PLATFORM_INFO_PROFILE: - os << "UR_PLATFORM_INFO_PROFILE"; + case UR_STRUCTURE_TYPE_PROGRAM_NATIVE_PROPERTIES: + os << "UR_STRUCTURE_TYPE_PROGRAM_NATIVE_PROPERTIES"; break; - case UR_PLATFORM_INFO_BACKEND: - os << "UR_PLATFORM_INFO_BACKEND"; + case UR_STRUCTURE_TYPE_SAMPLER_NATIVE_PROPERTIES: + os << "UR_STRUCTURE_TYPE_SAMPLER_NATIVE_PROPERTIES"; break; - default: + + case UR_STRUCTURE_TYPE_QUEUE_NATIVE_DESC: + os << "UR_STRUCTURE_TYPE_QUEUE_NATIVE_DESC"; + break; + + case UR_STRUCTURE_TYPE_DEVICE_PARTITION_PROPERTIES: + os << "UR_STRUCTURE_TYPE_DEVICE_PARTITION_PROPERTIES"; + break; + + case UR_STRUCTURE_TYPE_KERNEL_ARG_MEM_OBJ_PROPERTIES: + os << "UR_STRUCTURE_TYPE_KERNEL_ARG_MEM_OBJ_PROPERTIES"; + break; + + case UR_STRUCTURE_TYPE_PHYSICAL_MEM_PROPERTIES: + os << "UR_STRUCTURE_TYPE_PHYSICAL_MEM_PROPERTIES"; + break; + + case UR_STRUCTURE_TYPE_KERNEL_ARG_POINTER_PROPERTIES: + os << "UR_STRUCTURE_TYPE_KERNEL_ARG_POINTER_PROPERTIES"; + break; + + case UR_STRUCTURE_TYPE_KERNEL_ARG_SAMPLER_PROPERTIES: + os << "UR_STRUCTURE_TYPE_KERNEL_ARG_SAMPLER_PROPERTIES"; + break; + + case UR_STRUCTURE_TYPE_KERNEL_EXEC_INFO_PROPERTIES: + os << "UR_STRUCTURE_TYPE_KERNEL_EXEC_INFO_PROPERTIES"; + break; + + case UR_STRUCTURE_TYPE_KERNEL_ARG_VALUE_PROPERTIES: + os << "UR_STRUCTURE_TYPE_KERNEL_ARG_VALUE_PROPERTIES"; + break; + + case UR_STRUCTURE_TYPE_KERNEL_ARG_LOCAL_PROPERTIES: + os << "UR_STRUCTURE_TYPE_KERNEL_ARG_LOCAL_PROPERTIES"; + break; + + case UR_STRUCTURE_TYPE_EXP_COMMAND_BUFFER_DESC: + os << "UR_STRUCTURE_TYPE_EXP_COMMAND_BUFFER_DESC"; + break; + + case UR_STRUCTURE_TYPE_EXP_SAMPLER_MIP_PROPERTIES: + os << "UR_STRUCTURE_TYPE_EXP_SAMPLER_MIP_PROPERTIES"; + break; + default: os << "unknown enumerator"; break; } return os; } namespace ur_params { -template <> -inline void serializeTagged(std::ostream &os, const void *ptr, - ur_platform_info_t value, size_t size) { +inline void serializeStruct(std::ostream &os, const void *ptr) { if (ptr == NULL) { - serializePtr(os, ptr); + ur_params::serializePtr(os, ptr); return; } - switch (value) { - - case UR_PLATFORM_INFO_NAME: { + enum ur_structure_type_t *value = (enum ur_structure_type_t *)ptr; + switch (*value) { - const char *tptr = (const char *)ptr; - serializePtr(os, tptr); + case UR_STRUCTURE_TYPE_CONTEXT_PROPERTIES: { + const ur_context_properties_t *pstruct = + (const ur_context_properties_t *)ptr; + ur_params::serializePtr(os, pstruct); } break; - case UR_PLATFORM_INFO_VENDOR_NAME: { + case UR_STRUCTURE_TYPE_IMAGE_DESC: { + const ur_image_desc_t *pstruct = (const ur_image_desc_t *)ptr; + ur_params::serializePtr(os, pstruct); + } break; - const char *tptr = (const char *)ptr; - serializePtr(os, tptr); + case UR_STRUCTURE_TYPE_BUFFER_PROPERTIES: { + const ur_buffer_properties_t *pstruct = + (const ur_buffer_properties_t *)ptr; + ur_params::serializePtr(os, pstruct); } break; - case UR_PLATFORM_INFO_VERSION: { + case UR_STRUCTURE_TYPE_BUFFER_REGION: { + const ur_buffer_region_t *pstruct = (const ur_buffer_region_t *)ptr; + ur_params::serializePtr(os, pstruct); + } break; - const char *tptr = (const char *)ptr; - serializePtr(os, tptr); + case UR_STRUCTURE_TYPE_BUFFER_CHANNEL_PROPERTIES: { + const ur_buffer_channel_properties_t *pstruct = + (const ur_buffer_channel_properties_t *)ptr; + ur_params::serializePtr(os, pstruct); } break; - case UR_PLATFORM_INFO_EXTENSIONS: { + case UR_STRUCTURE_TYPE_BUFFER_ALLOC_LOCATION_PROPERTIES: { + const ur_buffer_alloc_location_properties_t *pstruct = + (const ur_buffer_alloc_location_properties_t *)ptr; + ur_params::serializePtr(os, pstruct); + } break; - const char *tptr = (const char *)ptr; - serializePtr(os, tptr); + case UR_STRUCTURE_TYPE_PROGRAM_PROPERTIES: { + const ur_program_properties_t *pstruct = + (const ur_program_properties_t *)ptr; + ur_params::serializePtr(os, pstruct); } break; - case UR_PLATFORM_INFO_PROFILE: { + case UR_STRUCTURE_TYPE_USM_DESC: { + const ur_usm_desc_t *pstruct = (const ur_usm_desc_t *)ptr; + ur_params::serializePtr(os, pstruct); + } break; - const char *tptr = (const char *)ptr; - serializePtr(os, tptr); + case UR_STRUCTURE_TYPE_USM_HOST_DESC: { + const ur_usm_host_desc_t *pstruct = (const ur_usm_host_desc_t *)ptr; + ur_params::serializePtr(os, pstruct); } break; - case UR_PLATFORM_INFO_BACKEND: { - const ur_platform_backend_t *tptr = (const ur_platform_backend_t *)ptr; - if (sizeof(ur_platform_backend_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(ur_platform_backend_t) << ")"; - return; - } - os << (void *)(tptr) << " ("; + case UR_STRUCTURE_TYPE_USM_DEVICE_DESC: { + const ur_usm_device_desc_t *pstruct = (const ur_usm_device_desc_t *)ptr; + ur_params::serializePtr(os, pstruct); + } break; - os << *tptr; + case UR_STRUCTURE_TYPE_USM_POOL_DESC: { + const ur_usm_pool_desc_t *pstruct = (const ur_usm_pool_desc_t *)ptr; + ur_params::serializePtr(os, pstruct); + } break; - os << ")"; + case UR_STRUCTURE_TYPE_USM_POOL_LIMITS_DESC: { + const ur_usm_pool_limits_desc_t *pstruct = + (const ur_usm_pool_limits_desc_t *)ptr; + ur_params::serializePtr(os, pstruct); } break; - default: - os << "unknown enumerator"; - break; - } -} -} // namespace ur_params -inline std::ostream &operator<<(std::ostream &os, enum ur_api_version_t value) { - os << UR_MAJOR_VERSION(value) << "." << UR_MINOR_VERSION(value); - return os; -} -inline std::ostream & -operator<<(std::ostream &os, - const struct ur_platform_native_properties_t params) { - os << "(struct ur_platform_native_properties_t){"; - os << ".stype = "; + case UR_STRUCTURE_TYPE_DEVICE_BINARY: { + const ur_device_binary_t *pstruct = (const ur_device_binary_t *)ptr; + ur_params::serializePtr(os, pstruct); + } break; - os << (params.stype); + case UR_STRUCTURE_TYPE_SAMPLER_DESC: { + const ur_sampler_desc_t *pstruct = (const ur_sampler_desc_t *)ptr; + ur_params::serializePtr(os, pstruct); + } break; - os << ", "; - os << ".pNext = "; + case UR_STRUCTURE_TYPE_QUEUE_PROPERTIES: { + const ur_queue_properties_t *pstruct = + (const ur_queue_properties_t *)ptr; + ur_params::serializePtr(os, pstruct); + } break; - ur_params::serializeStruct(os, (params.pNext)); + case UR_STRUCTURE_TYPE_QUEUE_INDEX_PROPERTIES: { + const ur_queue_index_properties_t *pstruct = + (const ur_queue_index_properties_t *)ptr; + ur_params::serializePtr(os, pstruct); + } break; - os << ", "; - os << ".isNativeHandleOwned = "; + case UR_STRUCTURE_TYPE_CONTEXT_NATIVE_PROPERTIES: { + const ur_context_native_properties_t *pstruct = + (const ur_context_native_properties_t *)ptr; + ur_params::serializePtr(os, pstruct); + } break; - os << (params.isNativeHandleOwned); + case UR_STRUCTURE_TYPE_KERNEL_NATIVE_PROPERTIES: { + const ur_kernel_native_properties_t *pstruct = + (const ur_kernel_native_properties_t *)ptr; + ur_params::serializePtr(os, pstruct); + } break; - os << "}"; - return os; -} -inline std::ostream &operator<<(std::ostream &os, - enum ur_platform_backend_t value) { - switch (value) { + case UR_STRUCTURE_TYPE_QUEUE_NATIVE_PROPERTIES: { + const ur_queue_native_properties_t *pstruct = + (const ur_queue_native_properties_t *)ptr; + ur_params::serializePtr(os, pstruct); + } break; - case UR_PLATFORM_BACKEND_UNKNOWN: - os << "UR_PLATFORM_BACKEND_UNKNOWN"; - break; + case UR_STRUCTURE_TYPE_MEM_NATIVE_PROPERTIES: { + const ur_mem_native_properties_t *pstruct = + (const ur_mem_native_properties_t *)ptr; + ur_params::serializePtr(os, pstruct); + } break; - case UR_PLATFORM_BACKEND_LEVEL_ZERO: - os << "UR_PLATFORM_BACKEND_LEVEL_ZERO"; - break; + case UR_STRUCTURE_TYPE_EVENT_NATIVE_PROPERTIES: { + const ur_event_native_properties_t *pstruct = + (const ur_event_native_properties_t *)ptr; + ur_params::serializePtr(os, pstruct); + } break; - case UR_PLATFORM_BACKEND_OPENCL: - os << "UR_PLATFORM_BACKEND_OPENCL"; - break; + case UR_STRUCTURE_TYPE_PLATFORM_NATIVE_PROPERTIES: { + const ur_platform_native_properties_t *pstruct = + (const ur_platform_native_properties_t *)ptr; + ur_params::serializePtr(os, pstruct); + } break; - case UR_PLATFORM_BACKEND_CUDA: - os << "UR_PLATFORM_BACKEND_CUDA"; - break; + case UR_STRUCTURE_TYPE_DEVICE_NATIVE_PROPERTIES: { + const ur_device_native_properties_t *pstruct = + (const ur_device_native_properties_t *)ptr; + ur_params::serializePtr(os, pstruct); + } break; - case UR_PLATFORM_BACKEND_HIP: - os << "UR_PLATFORM_BACKEND_HIP"; - break; - default: - os << "unknown enumerator"; - break; - } - return os; -} -inline std::ostream &operator<<(std::ostream &os, - const struct ur_device_binary_t params) { - os << "(struct ur_device_binary_t){"; + case UR_STRUCTURE_TYPE_PROGRAM_NATIVE_PROPERTIES: { + const ur_program_native_properties_t *pstruct = + (const ur_program_native_properties_t *)ptr; + ur_params::serializePtr(os, pstruct); + } break; - os << ".stype = "; + case UR_STRUCTURE_TYPE_SAMPLER_NATIVE_PROPERTIES: { + const ur_sampler_native_properties_t *pstruct = + (const ur_sampler_native_properties_t *)ptr; + ur_params::serializePtr(os, pstruct); + } break; - os << (params.stype); + case UR_STRUCTURE_TYPE_QUEUE_NATIVE_DESC: { + const ur_queue_native_desc_t *pstruct = + (const ur_queue_native_desc_t *)ptr; + ur_params::serializePtr(os, pstruct); + } break; - os << ", "; - os << ".pNext = "; + case UR_STRUCTURE_TYPE_DEVICE_PARTITION_PROPERTIES: { + const ur_device_partition_properties_t *pstruct = + (const ur_device_partition_properties_t *)ptr; + ur_params::serializePtr(os, pstruct); + } break; - ur_params::serializeStruct(os, (params.pNext)); - - os << ", "; - os << ".pDeviceTargetSpec = "; - - ur_params::serializePtr(os, (params.pDeviceTargetSpec)); + case UR_STRUCTURE_TYPE_KERNEL_ARG_MEM_OBJ_PROPERTIES: { + const ur_kernel_arg_mem_obj_properties_t *pstruct = + (const ur_kernel_arg_mem_obj_properties_t *)ptr; + ur_params::serializePtr(os, pstruct); + } break; - os << "}"; - return os; -} -inline std::ostream &operator<<(std::ostream &os, enum ur_device_type_t value) { - switch (value) { + case UR_STRUCTURE_TYPE_PHYSICAL_MEM_PROPERTIES: { + const ur_physical_mem_properties_t *pstruct = + (const ur_physical_mem_properties_t *)ptr; + ur_params::serializePtr(os, pstruct); + } break; - case UR_DEVICE_TYPE_DEFAULT: - os << "UR_DEVICE_TYPE_DEFAULT"; - break; + case UR_STRUCTURE_TYPE_KERNEL_ARG_POINTER_PROPERTIES: { + const ur_kernel_arg_pointer_properties_t *pstruct = + (const ur_kernel_arg_pointer_properties_t *)ptr; + ur_params::serializePtr(os, pstruct); + } break; - case UR_DEVICE_TYPE_ALL: - os << "UR_DEVICE_TYPE_ALL"; - break; + case UR_STRUCTURE_TYPE_KERNEL_ARG_SAMPLER_PROPERTIES: { + const ur_kernel_arg_sampler_properties_t *pstruct = + (const ur_kernel_arg_sampler_properties_t *)ptr; + ur_params::serializePtr(os, pstruct); + } break; - case UR_DEVICE_TYPE_GPU: - os << "UR_DEVICE_TYPE_GPU"; - break; + case UR_STRUCTURE_TYPE_KERNEL_EXEC_INFO_PROPERTIES: { + const ur_kernel_exec_info_properties_t *pstruct = + (const ur_kernel_exec_info_properties_t *)ptr; + ur_params::serializePtr(os, pstruct); + } break; - case UR_DEVICE_TYPE_CPU: - os << "UR_DEVICE_TYPE_CPU"; - break; + case UR_STRUCTURE_TYPE_KERNEL_ARG_VALUE_PROPERTIES: { + const ur_kernel_arg_value_properties_t *pstruct = + (const ur_kernel_arg_value_properties_t *)ptr; + ur_params::serializePtr(os, pstruct); + } break; - case UR_DEVICE_TYPE_FPGA: - os << "UR_DEVICE_TYPE_FPGA"; - break; + case UR_STRUCTURE_TYPE_KERNEL_ARG_LOCAL_PROPERTIES: { + const ur_kernel_arg_local_properties_t *pstruct = + (const ur_kernel_arg_local_properties_t *)ptr; + ur_params::serializePtr(os, pstruct); + } break; - case UR_DEVICE_TYPE_MCA: - os << "UR_DEVICE_TYPE_MCA"; - break; + case UR_STRUCTURE_TYPE_EXP_COMMAND_BUFFER_DESC: { + const ur_exp_command_buffer_desc_t *pstruct = + (const ur_exp_command_buffer_desc_t *)ptr; + ur_params::serializePtr(os, pstruct); + } break; - case UR_DEVICE_TYPE_VPU: - os << "UR_DEVICE_TYPE_VPU"; - break; + case UR_STRUCTURE_TYPE_EXP_SAMPLER_MIP_PROPERTIES: { + const ur_exp_sampler_mip_properties_t *pstruct = + (const ur_exp_sampler_mip_properties_t *)ptr; + ur_params::serializePtr(os, pstruct); + } break; default: os << "unknown enumerator"; break; } - return os; } -inline std::ostream &operator<<(std::ostream &os, enum ur_device_info_t value) { +} // namespace ur_params +inline std::ostream &operator<<(std::ostream &os, enum ur_result_t value) { switch (value) { - case UR_DEVICE_INFO_TYPE: - os << "UR_DEVICE_INFO_TYPE"; + case UR_RESULT_SUCCESS: + os << "UR_RESULT_SUCCESS"; break; - case UR_DEVICE_INFO_VENDOR_ID: - os << "UR_DEVICE_INFO_VENDOR_ID"; + case UR_RESULT_ERROR_INVALID_OPERATION: + os << "UR_RESULT_ERROR_INVALID_OPERATION"; break; - case UR_DEVICE_INFO_DEVICE_ID: - os << "UR_DEVICE_INFO_DEVICE_ID"; + case UR_RESULT_ERROR_INVALID_QUEUE_PROPERTIES: + os << "UR_RESULT_ERROR_INVALID_QUEUE_PROPERTIES"; break; - case UR_DEVICE_INFO_MAX_COMPUTE_UNITS: - os << "UR_DEVICE_INFO_MAX_COMPUTE_UNITS"; + case UR_RESULT_ERROR_INVALID_QUEUE: + os << "UR_RESULT_ERROR_INVALID_QUEUE"; break; - case UR_DEVICE_INFO_MAX_WORK_ITEM_DIMENSIONS: - os << "UR_DEVICE_INFO_MAX_WORK_ITEM_DIMENSIONS"; + case UR_RESULT_ERROR_INVALID_VALUE: + os << "UR_RESULT_ERROR_INVALID_VALUE"; break; - case UR_DEVICE_INFO_MAX_WORK_ITEM_SIZES: - os << "UR_DEVICE_INFO_MAX_WORK_ITEM_SIZES"; + case UR_RESULT_ERROR_INVALID_CONTEXT: + os << "UR_RESULT_ERROR_INVALID_CONTEXT"; break; - case UR_DEVICE_INFO_MAX_WORK_GROUP_SIZE: - os << "UR_DEVICE_INFO_MAX_WORK_GROUP_SIZE"; + case UR_RESULT_ERROR_INVALID_PLATFORM: + os << "UR_RESULT_ERROR_INVALID_PLATFORM"; break; - case UR_DEVICE_INFO_SINGLE_FP_CONFIG: - os << "UR_DEVICE_INFO_SINGLE_FP_CONFIG"; + case UR_RESULT_ERROR_INVALID_BINARY: + os << "UR_RESULT_ERROR_INVALID_BINARY"; break; - case UR_DEVICE_INFO_HALF_FP_CONFIG: - os << "UR_DEVICE_INFO_HALF_FP_CONFIG"; + case UR_RESULT_ERROR_INVALID_PROGRAM: + os << "UR_RESULT_ERROR_INVALID_PROGRAM"; break; - case UR_DEVICE_INFO_DOUBLE_FP_CONFIG: - os << "UR_DEVICE_INFO_DOUBLE_FP_CONFIG"; + case UR_RESULT_ERROR_INVALID_SAMPLER: + os << "UR_RESULT_ERROR_INVALID_SAMPLER"; break; - case UR_DEVICE_INFO_QUEUE_PROPERTIES: - os << "UR_DEVICE_INFO_QUEUE_PROPERTIES"; + case UR_RESULT_ERROR_INVALID_BUFFER_SIZE: + os << "UR_RESULT_ERROR_INVALID_BUFFER_SIZE"; break; - case UR_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_CHAR: - os << "UR_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_CHAR"; + case UR_RESULT_ERROR_INVALID_MEM_OBJECT: + os << "UR_RESULT_ERROR_INVALID_MEM_OBJECT"; break; - case UR_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_SHORT: - os << "UR_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_SHORT"; + case UR_RESULT_ERROR_INVALID_EVENT: + os << "UR_RESULT_ERROR_INVALID_EVENT"; break; - case UR_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_INT: - os << "UR_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_INT"; + case UR_RESULT_ERROR_INVALID_EVENT_WAIT_LIST: + os << "UR_RESULT_ERROR_INVALID_EVENT_WAIT_LIST"; break; - case UR_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_LONG: - os << "UR_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_LONG"; + case UR_RESULT_ERROR_MISALIGNED_SUB_BUFFER_OFFSET: + os << "UR_RESULT_ERROR_MISALIGNED_SUB_BUFFER_OFFSET"; break; - case UR_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_FLOAT: - os << "UR_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_FLOAT"; + case UR_RESULT_ERROR_INVALID_WORK_GROUP_SIZE: + os << "UR_RESULT_ERROR_INVALID_WORK_GROUP_SIZE"; break; - case UR_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_DOUBLE: - os << "UR_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_DOUBLE"; + case UR_RESULT_ERROR_COMPILER_NOT_AVAILABLE: + os << "UR_RESULT_ERROR_COMPILER_NOT_AVAILABLE"; break; - case UR_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_HALF: - os << "UR_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_HALF"; + case UR_RESULT_ERROR_PROFILING_INFO_NOT_AVAILABLE: + os << "UR_RESULT_ERROR_PROFILING_INFO_NOT_AVAILABLE"; break; - case UR_DEVICE_INFO_NATIVE_VECTOR_WIDTH_CHAR: - os << "UR_DEVICE_INFO_NATIVE_VECTOR_WIDTH_CHAR"; + case UR_RESULT_ERROR_DEVICE_NOT_FOUND: + os << "UR_RESULT_ERROR_DEVICE_NOT_FOUND"; break; - case UR_DEVICE_INFO_NATIVE_VECTOR_WIDTH_SHORT: - os << "UR_DEVICE_INFO_NATIVE_VECTOR_WIDTH_SHORT"; + case UR_RESULT_ERROR_INVALID_DEVICE: + os << "UR_RESULT_ERROR_INVALID_DEVICE"; break; - case UR_DEVICE_INFO_NATIVE_VECTOR_WIDTH_INT: - os << "UR_DEVICE_INFO_NATIVE_VECTOR_WIDTH_INT"; + case UR_RESULT_ERROR_DEVICE_LOST: + os << "UR_RESULT_ERROR_DEVICE_LOST"; break; - case UR_DEVICE_INFO_NATIVE_VECTOR_WIDTH_LONG: - os << "UR_DEVICE_INFO_NATIVE_VECTOR_WIDTH_LONG"; + case UR_RESULT_ERROR_DEVICE_REQUIRES_RESET: + os << "UR_RESULT_ERROR_DEVICE_REQUIRES_RESET"; break; - case UR_DEVICE_INFO_NATIVE_VECTOR_WIDTH_FLOAT: - os << "UR_DEVICE_INFO_NATIVE_VECTOR_WIDTH_FLOAT"; + case UR_RESULT_ERROR_DEVICE_IN_LOW_POWER_STATE: + os << "UR_RESULT_ERROR_DEVICE_IN_LOW_POWER_STATE"; break; - case UR_DEVICE_INFO_NATIVE_VECTOR_WIDTH_DOUBLE: - os << "UR_DEVICE_INFO_NATIVE_VECTOR_WIDTH_DOUBLE"; + case UR_RESULT_ERROR_DEVICE_PARTITION_FAILED: + os << "UR_RESULT_ERROR_DEVICE_PARTITION_FAILED"; break; - case UR_DEVICE_INFO_NATIVE_VECTOR_WIDTH_HALF: - os << "UR_DEVICE_INFO_NATIVE_VECTOR_WIDTH_HALF"; + case UR_RESULT_ERROR_INVALID_DEVICE_PARTITION_COUNT: + os << "UR_RESULT_ERROR_INVALID_DEVICE_PARTITION_COUNT"; break; - case UR_DEVICE_INFO_MAX_CLOCK_FREQUENCY: - os << "UR_DEVICE_INFO_MAX_CLOCK_FREQUENCY"; + case UR_RESULT_ERROR_INVALID_WORK_ITEM_SIZE: + os << "UR_RESULT_ERROR_INVALID_WORK_ITEM_SIZE"; break; - case UR_DEVICE_INFO_MEMORY_CLOCK_RATE: - os << "UR_DEVICE_INFO_MEMORY_CLOCK_RATE"; + case UR_RESULT_ERROR_INVALID_WORK_DIMENSION: + os << "UR_RESULT_ERROR_INVALID_WORK_DIMENSION"; break; - case UR_DEVICE_INFO_ADDRESS_BITS: - os << "UR_DEVICE_INFO_ADDRESS_BITS"; + case UR_RESULT_ERROR_INVALID_KERNEL_ARGS: + os << "UR_RESULT_ERROR_INVALID_KERNEL_ARGS"; break; - case UR_DEVICE_INFO_MAX_MEM_ALLOC_SIZE: - os << "UR_DEVICE_INFO_MAX_MEM_ALLOC_SIZE"; + case UR_RESULT_ERROR_INVALID_KERNEL: + os << "UR_RESULT_ERROR_INVALID_KERNEL"; break; - case UR_DEVICE_INFO_IMAGE_SUPPORTED: - os << "UR_DEVICE_INFO_IMAGE_SUPPORTED"; + case UR_RESULT_ERROR_INVALID_KERNEL_NAME: + os << "UR_RESULT_ERROR_INVALID_KERNEL_NAME"; break; - case UR_DEVICE_INFO_MAX_READ_IMAGE_ARGS: - os << "UR_DEVICE_INFO_MAX_READ_IMAGE_ARGS"; + case UR_RESULT_ERROR_INVALID_KERNEL_ARGUMENT_INDEX: + os << "UR_RESULT_ERROR_INVALID_KERNEL_ARGUMENT_INDEX"; break; - case UR_DEVICE_INFO_MAX_WRITE_IMAGE_ARGS: - os << "UR_DEVICE_INFO_MAX_WRITE_IMAGE_ARGS"; + case UR_RESULT_ERROR_INVALID_KERNEL_ARGUMENT_SIZE: + os << "UR_RESULT_ERROR_INVALID_KERNEL_ARGUMENT_SIZE"; break; - case UR_DEVICE_INFO_MAX_READ_WRITE_IMAGE_ARGS: - os << "UR_DEVICE_INFO_MAX_READ_WRITE_IMAGE_ARGS"; + case UR_RESULT_ERROR_INVALID_KERNEL_ATTRIBUTE_VALUE: + os << "UR_RESULT_ERROR_INVALID_KERNEL_ATTRIBUTE_VALUE"; break; - case UR_DEVICE_INFO_IMAGE2D_MAX_WIDTH: - os << "UR_DEVICE_INFO_IMAGE2D_MAX_WIDTH"; + case UR_RESULT_ERROR_INVALID_IMAGE_SIZE: + os << "UR_RESULT_ERROR_INVALID_IMAGE_SIZE"; break; - case UR_DEVICE_INFO_IMAGE2D_MAX_HEIGHT: - os << "UR_DEVICE_INFO_IMAGE2D_MAX_HEIGHT"; + case UR_RESULT_ERROR_INVALID_IMAGE_FORMAT_DESCRIPTOR: + os << "UR_RESULT_ERROR_INVALID_IMAGE_FORMAT_DESCRIPTOR"; break; - case UR_DEVICE_INFO_IMAGE3D_MAX_WIDTH: - os << "UR_DEVICE_INFO_IMAGE3D_MAX_WIDTH"; + case UR_RESULT_ERROR_IMAGE_FORMAT_NOT_SUPPORTED: + os << "UR_RESULT_ERROR_IMAGE_FORMAT_NOT_SUPPORTED"; break; - case UR_DEVICE_INFO_IMAGE3D_MAX_HEIGHT: - os << "UR_DEVICE_INFO_IMAGE3D_MAX_HEIGHT"; + case UR_RESULT_ERROR_MEM_OBJECT_ALLOCATION_FAILURE: + os << "UR_RESULT_ERROR_MEM_OBJECT_ALLOCATION_FAILURE"; break; - case UR_DEVICE_INFO_IMAGE3D_MAX_DEPTH: - os << "UR_DEVICE_INFO_IMAGE3D_MAX_DEPTH"; + case UR_RESULT_ERROR_INVALID_PROGRAM_EXECUTABLE: + os << "UR_RESULT_ERROR_INVALID_PROGRAM_EXECUTABLE"; break; - case UR_DEVICE_INFO_IMAGE_MAX_BUFFER_SIZE: - os << "UR_DEVICE_INFO_IMAGE_MAX_BUFFER_SIZE"; + case UR_RESULT_ERROR_UNINITIALIZED: + os << "UR_RESULT_ERROR_UNINITIALIZED"; break; - case UR_DEVICE_INFO_IMAGE_MAX_ARRAY_SIZE: - os << "UR_DEVICE_INFO_IMAGE_MAX_ARRAY_SIZE"; + case UR_RESULT_ERROR_OUT_OF_HOST_MEMORY: + os << "UR_RESULT_ERROR_OUT_OF_HOST_MEMORY"; break; - case UR_DEVICE_INFO_MAX_SAMPLERS: - os << "UR_DEVICE_INFO_MAX_SAMPLERS"; + case UR_RESULT_ERROR_OUT_OF_DEVICE_MEMORY: + os << "UR_RESULT_ERROR_OUT_OF_DEVICE_MEMORY"; break; - case UR_DEVICE_INFO_MAX_PARAMETER_SIZE: - os << "UR_DEVICE_INFO_MAX_PARAMETER_SIZE"; + case UR_RESULT_ERROR_OUT_OF_RESOURCES: + os << "UR_RESULT_ERROR_OUT_OF_RESOURCES"; break; - case UR_DEVICE_INFO_MEM_BASE_ADDR_ALIGN: - os << "UR_DEVICE_INFO_MEM_BASE_ADDR_ALIGN"; + case UR_RESULT_ERROR_PROGRAM_BUILD_FAILURE: + os << "UR_RESULT_ERROR_PROGRAM_BUILD_FAILURE"; break; - case UR_DEVICE_INFO_GLOBAL_MEM_CACHE_TYPE: - os << "UR_DEVICE_INFO_GLOBAL_MEM_CACHE_TYPE"; + case UR_RESULT_ERROR_PROGRAM_LINK_FAILURE: + os << "UR_RESULT_ERROR_PROGRAM_LINK_FAILURE"; break; - case UR_DEVICE_INFO_GLOBAL_MEM_CACHELINE_SIZE: - os << "UR_DEVICE_INFO_GLOBAL_MEM_CACHELINE_SIZE"; + case UR_RESULT_ERROR_UNSUPPORTED_VERSION: + os << "UR_RESULT_ERROR_UNSUPPORTED_VERSION"; break; - case UR_DEVICE_INFO_GLOBAL_MEM_CACHE_SIZE: - os << "UR_DEVICE_INFO_GLOBAL_MEM_CACHE_SIZE"; + case UR_RESULT_ERROR_UNSUPPORTED_FEATURE: + os << "UR_RESULT_ERROR_UNSUPPORTED_FEATURE"; break; - case UR_DEVICE_INFO_GLOBAL_MEM_SIZE: - os << "UR_DEVICE_INFO_GLOBAL_MEM_SIZE"; + case UR_RESULT_ERROR_INVALID_ARGUMENT: + os << "UR_RESULT_ERROR_INVALID_ARGUMENT"; break; - case UR_DEVICE_INFO_GLOBAL_MEM_FREE: - os << "UR_DEVICE_INFO_GLOBAL_MEM_FREE"; + case UR_RESULT_ERROR_INVALID_NULL_HANDLE: + os << "UR_RESULT_ERROR_INVALID_NULL_HANDLE"; break; - case UR_DEVICE_INFO_MAX_CONSTANT_BUFFER_SIZE: - os << "UR_DEVICE_INFO_MAX_CONSTANT_BUFFER_SIZE"; + case UR_RESULT_ERROR_HANDLE_OBJECT_IN_USE: + os << "UR_RESULT_ERROR_HANDLE_OBJECT_IN_USE"; break; - case UR_DEVICE_INFO_MAX_CONSTANT_ARGS: - os << "UR_DEVICE_INFO_MAX_CONSTANT_ARGS"; + case UR_RESULT_ERROR_INVALID_NULL_POINTER: + os << "UR_RESULT_ERROR_INVALID_NULL_POINTER"; break; - case UR_DEVICE_INFO_LOCAL_MEM_TYPE: - os << "UR_DEVICE_INFO_LOCAL_MEM_TYPE"; + case UR_RESULT_ERROR_INVALID_SIZE: + os << "UR_RESULT_ERROR_INVALID_SIZE"; break; - case UR_DEVICE_INFO_LOCAL_MEM_SIZE: - os << "UR_DEVICE_INFO_LOCAL_MEM_SIZE"; + case UR_RESULT_ERROR_UNSUPPORTED_SIZE: + os << "UR_RESULT_ERROR_UNSUPPORTED_SIZE"; break; - case UR_DEVICE_INFO_ERROR_CORRECTION_SUPPORT: - os << "UR_DEVICE_INFO_ERROR_CORRECTION_SUPPORT"; + case UR_RESULT_ERROR_UNSUPPORTED_ALIGNMENT: + os << "UR_RESULT_ERROR_UNSUPPORTED_ALIGNMENT"; break; - case UR_DEVICE_INFO_HOST_UNIFIED_MEMORY: - os << "UR_DEVICE_INFO_HOST_UNIFIED_MEMORY"; + case UR_RESULT_ERROR_INVALID_SYNCHRONIZATION_OBJECT: + os << "UR_RESULT_ERROR_INVALID_SYNCHRONIZATION_OBJECT"; break; - case UR_DEVICE_INFO_PROFILING_TIMER_RESOLUTION: - os << "UR_DEVICE_INFO_PROFILING_TIMER_RESOLUTION"; + case UR_RESULT_ERROR_INVALID_ENUMERATION: + os << "UR_RESULT_ERROR_INVALID_ENUMERATION"; break; - case UR_DEVICE_INFO_ENDIAN_LITTLE: - os << "UR_DEVICE_INFO_ENDIAN_LITTLE"; + case UR_RESULT_ERROR_UNSUPPORTED_ENUMERATION: + os << "UR_RESULT_ERROR_UNSUPPORTED_ENUMERATION"; break; - case UR_DEVICE_INFO_AVAILABLE: - os << "UR_DEVICE_INFO_AVAILABLE"; + case UR_RESULT_ERROR_UNSUPPORTED_IMAGE_FORMAT: + os << "UR_RESULT_ERROR_UNSUPPORTED_IMAGE_FORMAT"; break; - case UR_DEVICE_INFO_COMPILER_AVAILABLE: - os << "UR_DEVICE_INFO_COMPILER_AVAILABLE"; + case UR_RESULT_ERROR_INVALID_NATIVE_BINARY: + os << "UR_RESULT_ERROR_INVALID_NATIVE_BINARY"; break; - case UR_DEVICE_INFO_LINKER_AVAILABLE: - os << "UR_DEVICE_INFO_LINKER_AVAILABLE"; + case UR_RESULT_ERROR_INVALID_GLOBAL_NAME: + os << "UR_RESULT_ERROR_INVALID_GLOBAL_NAME"; break; - case UR_DEVICE_INFO_EXECUTION_CAPABILITIES: - os << "UR_DEVICE_INFO_EXECUTION_CAPABILITIES"; + case UR_RESULT_ERROR_INVALID_FUNCTION_NAME: + os << "UR_RESULT_ERROR_INVALID_FUNCTION_NAME"; break; - case UR_DEVICE_INFO_QUEUE_ON_DEVICE_PROPERTIES: - os << "UR_DEVICE_INFO_QUEUE_ON_DEVICE_PROPERTIES"; + case UR_RESULT_ERROR_INVALID_GROUP_SIZE_DIMENSION: + os << "UR_RESULT_ERROR_INVALID_GROUP_SIZE_DIMENSION"; break; - case UR_DEVICE_INFO_QUEUE_ON_HOST_PROPERTIES: - os << "UR_DEVICE_INFO_QUEUE_ON_HOST_PROPERTIES"; + case UR_RESULT_ERROR_INVALID_GLOBAL_WIDTH_DIMENSION: + os << "UR_RESULT_ERROR_INVALID_GLOBAL_WIDTH_DIMENSION"; break; - case UR_DEVICE_INFO_BUILT_IN_KERNELS: - os << "UR_DEVICE_INFO_BUILT_IN_KERNELS"; + case UR_RESULT_ERROR_PROGRAM_UNLINKED: + os << "UR_RESULT_ERROR_PROGRAM_UNLINKED"; break; - case UR_DEVICE_INFO_PLATFORM: - os << "UR_DEVICE_INFO_PLATFORM"; + case UR_RESULT_ERROR_OVERLAPPING_REGIONS: + os << "UR_RESULT_ERROR_OVERLAPPING_REGIONS"; break; - case UR_DEVICE_INFO_REFERENCE_COUNT: - os << "UR_DEVICE_INFO_REFERENCE_COUNT"; + case UR_RESULT_ERROR_INVALID_HOST_PTR: + os << "UR_RESULT_ERROR_INVALID_HOST_PTR"; break; - case UR_DEVICE_INFO_IL_VERSION: - os << "UR_DEVICE_INFO_IL_VERSION"; + case UR_RESULT_ERROR_INVALID_USM_SIZE: + os << "UR_RESULT_ERROR_INVALID_USM_SIZE"; break; - case UR_DEVICE_INFO_NAME: - os << "UR_DEVICE_INFO_NAME"; + case UR_RESULT_ERROR_OBJECT_ALLOCATION_FAILURE: + os << "UR_RESULT_ERROR_OBJECT_ALLOCATION_FAILURE"; break; - case UR_DEVICE_INFO_VENDOR: - os << "UR_DEVICE_INFO_VENDOR"; + case UR_RESULT_ERROR_ADAPTER_SPECIFIC: + os << "UR_RESULT_ERROR_ADAPTER_SPECIFIC"; break; - case UR_DEVICE_INFO_DRIVER_VERSION: - os << "UR_DEVICE_INFO_DRIVER_VERSION"; + case UR_RESULT_ERROR_INVALID_COMMAND_BUFFER_EXP: + os << "UR_RESULT_ERROR_INVALID_COMMAND_BUFFER_EXP"; break; - case UR_DEVICE_INFO_PROFILE: - os << "UR_DEVICE_INFO_PROFILE"; + case UR_RESULT_ERROR_INVALID_COMMAND_BUFFER_SYNC_POINT_EXP: + os << "UR_RESULT_ERROR_INVALID_COMMAND_BUFFER_SYNC_POINT_EXP"; break; - case UR_DEVICE_INFO_VERSION: - os << "UR_DEVICE_INFO_VERSION"; + case UR_RESULT_ERROR_INVALID_COMMAND_BUFFER_SYNC_POINT_WAIT_LIST_EXP: + os << "UR_RESULT_ERROR_INVALID_COMMAND_BUFFER_SYNC_POINT_WAIT_LIST_EXP"; break; - case UR_DEVICE_INFO_BACKEND_RUNTIME_VERSION: - os << "UR_DEVICE_INFO_BACKEND_RUNTIME_VERSION"; + case UR_RESULT_ERROR_UNKNOWN: + os << "UR_RESULT_ERROR_UNKNOWN"; break; - - case UR_DEVICE_INFO_EXTENSIONS: - os << "UR_DEVICE_INFO_EXTENSIONS"; + default: + os << "unknown enumerator"; break; + } + return os; +} +inline std::ostream &operator<<(std::ostream &os, + const struct ur_base_properties_t params) { + os << "(struct ur_base_properties_t){"; - case UR_DEVICE_INFO_PRINTF_BUFFER_SIZE: - os << "UR_DEVICE_INFO_PRINTF_BUFFER_SIZE"; - break; + os << ".stype = "; - case UR_DEVICE_INFO_PREFERRED_INTEROP_USER_SYNC: - os << "UR_DEVICE_INFO_PREFERRED_INTEROP_USER_SYNC"; - break; + os << (params.stype); - case UR_DEVICE_INFO_PARENT_DEVICE: - os << "UR_DEVICE_INFO_PARENT_DEVICE"; - break; + os << ", "; + os << ".pNext = "; - case UR_DEVICE_INFO_SUPPORTED_PARTITIONS: - os << "UR_DEVICE_INFO_SUPPORTED_PARTITIONS"; - break; + ur_params::serializeStruct(os, (params.pNext)); - case UR_DEVICE_INFO_PARTITION_MAX_SUB_DEVICES: - os << "UR_DEVICE_INFO_PARTITION_MAX_SUB_DEVICES"; - break; + os << "}"; + return os; +} +inline std::ostream &operator<<(std::ostream &os, + const struct ur_base_desc_t params) { + os << "(struct ur_base_desc_t){"; - case UR_DEVICE_INFO_PARTITION_AFFINITY_DOMAIN: - os << "UR_DEVICE_INFO_PARTITION_AFFINITY_DOMAIN"; - break; + os << ".stype = "; - case UR_DEVICE_INFO_PARTITION_TYPE: - os << "UR_DEVICE_INFO_PARTITION_TYPE"; - break; + os << (params.stype); - case UR_DEVICE_INFO_MAX_NUM_SUB_GROUPS: - os << "UR_DEVICE_INFO_MAX_NUM_SUB_GROUPS"; - break; + os << ", "; + os << ".pNext = "; - case UR_DEVICE_INFO_SUB_GROUP_INDEPENDENT_FORWARD_PROGRESS: - os << "UR_DEVICE_INFO_SUB_GROUP_INDEPENDENT_FORWARD_PROGRESS"; - break; + ur_params::serializeStruct(os, (params.pNext)); - case UR_DEVICE_INFO_SUB_GROUP_SIZES_INTEL: - os << "UR_DEVICE_INFO_SUB_GROUP_SIZES_INTEL"; - break; + os << "}"; + return os; +} +inline std::ostream &operator<<(std::ostream &os, + const struct ur_rect_offset_t params) { + os << "(struct ur_rect_offset_t){"; - case UR_DEVICE_INFO_USM_HOST_SUPPORT: - os << "UR_DEVICE_INFO_USM_HOST_SUPPORT"; - break; + os << ".x = "; - case UR_DEVICE_INFO_USM_DEVICE_SUPPORT: - os << "UR_DEVICE_INFO_USM_DEVICE_SUPPORT"; - break; + os << (params.x); - case UR_DEVICE_INFO_USM_SINGLE_SHARED_SUPPORT: - os << "UR_DEVICE_INFO_USM_SINGLE_SHARED_SUPPORT"; - break; + os << ", "; + os << ".y = "; - case UR_DEVICE_INFO_USM_CROSS_SHARED_SUPPORT: - os << "UR_DEVICE_INFO_USM_CROSS_SHARED_SUPPORT"; - break; + os << (params.y); - case UR_DEVICE_INFO_USM_SYSTEM_SHARED_SUPPORT: - os << "UR_DEVICE_INFO_USM_SYSTEM_SHARED_SUPPORT"; - break; + os << ", "; + os << ".z = "; - case UR_DEVICE_INFO_UUID: - os << "UR_DEVICE_INFO_UUID"; - break; + os << (params.z); - case UR_DEVICE_INFO_PCI_ADDRESS: - os << "UR_DEVICE_INFO_PCI_ADDRESS"; - break; + os << "}"; + return os; +} +inline std::ostream &operator<<(std::ostream &os, + const struct ur_rect_region_t params) { + os << "(struct ur_rect_region_t){"; - case UR_DEVICE_INFO_GPU_EU_COUNT: - os << "UR_DEVICE_INFO_GPU_EU_COUNT"; - break; + os << ".width = "; - case UR_DEVICE_INFO_GPU_EU_SIMD_WIDTH: - os << "UR_DEVICE_INFO_GPU_EU_SIMD_WIDTH"; - break; + os << (params.width); - case UR_DEVICE_INFO_GPU_EU_SLICES: - os << "UR_DEVICE_INFO_GPU_EU_SLICES"; - break; + os << ", "; + os << ".height = "; - case UR_DEVICE_INFO_GPU_EU_COUNT_PER_SUBSLICE: - os << "UR_DEVICE_INFO_GPU_EU_COUNT_PER_SUBSLICE"; - break; + os << (params.height); - case UR_DEVICE_INFO_GPU_SUBSLICES_PER_SLICE: - os << "UR_DEVICE_INFO_GPU_SUBSLICES_PER_SLICE"; - break; + os << ", "; + os << ".depth = "; - case UR_DEVICE_INFO_GPU_HW_THREADS_PER_EU: - os << "UR_DEVICE_INFO_GPU_HW_THREADS_PER_EU"; - break; + os << (params.depth); - case UR_DEVICE_INFO_MAX_MEMORY_BANDWIDTH: - os << "UR_DEVICE_INFO_MAX_MEMORY_BANDWIDTH"; + os << "}"; + return os; +} +inline std::ostream &operator<<(std::ostream &os, + enum ur_device_init_flag_t value) { + switch (value) { + + case UR_DEVICE_INIT_FLAG_GPU: + os << "UR_DEVICE_INIT_FLAG_GPU"; break; - case UR_DEVICE_INFO_IMAGE_SRGB: - os << "UR_DEVICE_INFO_IMAGE_SRGB"; + case UR_DEVICE_INIT_FLAG_CPU: + os << "UR_DEVICE_INIT_FLAG_CPU"; break; - case UR_DEVICE_INFO_BUILD_ON_SUBDEVICE: - os << "UR_DEVICE_INFO_BUILD_ON_SUBDEVICE"; + case UR_DEVICE_INIT_FLAG_FPGA: + os << "UR_DEVICE_INIT_FLAG_FPGA"; break; - case UR_DEVICE_INFO_ATOMIC_64: - os << "UR_DEVICE_INFO_ATOMIC_64"; - break; - - case UR_DEVICE_INFO_ATOMIC_MEMORY_ORDER_CAPABILITIES: - os << "UR_DEVICE_INFO_ATOMIC_MEMORY_ORDER_CAPABILITIES"; - break; - - case UR_DEVICE_INFO_ATOMIC_MEMORY_SCOPE_CAPABILITIES: - os << "UR_DEVICE_INFO_ATOMIC_MEMORY_SCOPE_CAPABILITIES"; - break; - - case UR_DEVICE_INFO_ATOMIC_FENCE_ORDER_CAPABILITIES: - os << "UR_DEVICE_INFO_ATOMIC_FENCE_ORDER_CAPABILITIES"; - break; - - case UR_DEVICE_INFO_ATOMIC_FENCE_SCOPE_CAPABILITIES: - os << "UR_DEVICE_INFO_ATOMIC_FENCE_SCOPE_CAPABILITIES"; - break; - - case UR_DEVICE_INFO_BFLOAT16: - os << "UR_DEVICE_INFO_BFLOAT16"; - break; - - case UR_DEVICE_INFO_MAX_COMPUTE_QUEUE_INDICES: - os << "UR_DEVICE_INFO_MAX_COMPUTE_QUEUE_INDICES"; - break; - - case UR_DEVICE_INFO_KERNEL_SET_SPECIALIZATION_CONSTANTS: - os << "UR_DEVICE_INFO_KERNEL_SET_SPECIALIZATION_CONSTANTS"; - break; - - case UR_DEVICE_INFO_MEMORY_BUS_WIDTH: - os << "UR_DEVICE_INFO_MEMORY_BUS_WIDTH"; - break; - - case UR_DEVICE_INFO_MAX_WORK_GROUPS_3D: - os << "UR_DEVICE_INFO_MAX_WORK_GROUPS_3D"; - break; - - case UR_DEVICE_INFO_ASYNC_BARRIER: - os << "UR_DEVICE_INFO_ASYNC_BARRIER"; - break; - - case UR_DEVICE_INFO_MEM_CHANNEL_SUPPORT: - os << "UR_DEVICE_INFO_MEM_CHANNEL_SUPPORT"; - break; - - case UR_DEVICE_INFO_HOST_PIPE_READ_WRITE_SUPPORTED: - os << "UR_DEVICE_INFO_HOST_PIPE_READ_WRITE_SUPPORTED"; - break; - - case UR_DEVICE_INFO_MAX_REGISTERS_PER_WORK_GROUP: - os << "UR_DEVICE_INFO_MAX_REGISTERS_PER_WORK_GROUP"; - break; - - case UR_DEVICE_INFO_IP_VERSION: - os << "UR_DEVICE_INFO_IP_VERSION"; - break; - - case UR_DEVICE_INFO_BINDLESS_IMAGES_SUPPORT_EXP: - os << "UR_DEVICE_INFO_BINDLESS_IMAGES_SUPPORT_EXP"; + case UR_DEVICE_INIT_FLAG_MCA: + os << "UR_DEVICE_INIT_FLAG_MCA"; break; - case UR_DEVICE_INFO_BINDLESS_IMAGES_1D_USM_SUPPORT_EXP: - os << "UR_DEVICE_INFO_BINDLESS_IMAGES_1D_USM_SUPPORT_EXP"; + case UR_DEVICE_INIT_FLAG_VPU: + os << "UR_DEVICE_INIT_FLAG_VPU"; break; - - case UR_DEVICE_INFO_BINDLESS_IMAGES_2D_USM_SUPPORT_EXP: - os << "UR_DEVICE_INFO_BINDLESS_IMAGES_2D_USM_SUPPORT_EXP"; + default: + os << "unknown enumerator"; break; + } + return os; +} +namespace ur_params { - case UR_DEVICE_INFO_IMAGE_PITCH_ALIGN_EXP: - os << "UR_DEVICE_INFO_IMAGE_PITCH_ALIGN_EXP"; - break; +template <> +inline void serializeFlag(std::ostream &os, + uint32_t flag) { + uint32_t val = flag; + bool first = true; - case UR_DEVICE_INFO_MAX_IMAGE_LINEAR_WIDTH_EXP: - os << "UR_DEVICE_INFO_MAX_IMAGE_LINEAR_WIDTH_EXP"; - break; + if ((val & UR_DEVICE_INIT_FLAG_GPU) == (uint32_t)UR_DEVICE_INIT_FLAG_GPU) { + val ^= (uint32_t)UR_DEVICE_INIT_FLAG_GPU; + if (!first) { + os << " | "; + } else { + first = false; + } + os << UR_DEVICE_INIT_FLAG_GPU; + } - case UR_DEVICE_INFO_MAX_IMAGE_LINEAR_HEIGHT_EXP: - os << "UR_DEVICE_INFO_MAX_IMAGE_LINEAR_HEIGHT_EXP"; - break; + if ((val & UR_DEVICE_INIT_FLAG_CPU) == (uint32_t)UR_DEVICE_INIT_FLAG_CPU) { + val ^= (uint32_t)UR_DEVICE_INIT_FLAG_CPU; + if (!first) { + os << " | "; + } else { + first = false; + } + os << UR_DEVICE_INIT_FLAG_CPU; + } - case UR_DEVICE_INFO_MAX_IMAGE_LINEAR_PITCH_EXP: - os << "UR_DEVICE_INFO_MAX_IMAGE_LINEAR_PITCH_EXP"; - break; + if ((val & UR_DEVICE_INIT_FLAG_FPGA) == + (uint32_t)UR_DEVICE_INIT_FLAG_FPGA) { + val ^= (uint32_t)UR_DEVICE_INIT_FLAG_FPGA; + if (!first) { + os << " | "; + } else { + first = false; + } + os << UR_DEVICE_INIT_FLAG_FPGA; + } - case UR_DEVICE_INFO_MIPMAP_SUPPORT_EXP: - os << "UR_DEVICE_INFO_MIPMAP_SUPPORT_EXP"; - break; + if ((val & UR_DEVICE_INIT_FLAG_MCA) == (uint32_t)UR_DEVICE_INIT_FLAG_MCA) { + val ^= (uint32_t)UR_DEVICE_INIT_FLAG_MCA; + if (!first) { + os << " | "; + } else { + first = false; + } + os << UR_DEVICE_INIT_FLAG_MCA; + } - case UR_DEVICE_INFO_MIPMAP_ANISOTROPY_SUPPORT_EXP: - os << "UR_DEVICE_INFO_MIPMAP_ANISOTROPY_SUPPORT_EXP"; - break; + if ((val & UR_DEVICE_INIT_FLAG_VPU) == (uint32_t)UR_DEVICE_INIT_FLAG_VPU) { + val ^= (uint32_t)UR_DEVICE_INIT_FLAG_VPU; + if (!first) { + os << " | "; + } else { + first = false; + } + os << UR_DEVICE_INIT_FLAG_VPU; + } + if (val != 0) { + std::bitset<32> bits(val); + if (!first) { + os << " | "; + } + os << "unknown bit flags " << bits; + } else if (first) { + os << "0"; + } +} +} // namespace ur_params +inline std::ostream &operator<<(std::ostream &os, + enum ur_platform_info_t value) { + switch (value) { - case UR_DEVICE_INFO_MIPMAP_MAX_ANISOTROPY_EXP: - os << "UR_DEVICE_INFO_MIPMAP_MAX_ANISOTROPY_EXP"; + case UR_PLATFORM_INFO_NAME: + os << "UR_PLATFORM_INFO_NAME"; break; - case UR_DEVICE_INFO_MIPMAP_LEVEL_REFERENCE_SUPPORT_EXP: - os << "UR_DEVICE_INFO_MIPMAP_LEVEL_REFERENCE_SUPPORT_EXP"; + case UR_PLATFORM_INFO_VENDOR_NAME: + os << "UR_PLATFORM_INFO_VENDOR_NAME"; break; - case UR_DEVICE_INFO_INTEROP_MEMORY_IMPORT_SUPPORT_EXP: - os << "UR_DEVICE_INFO_INTEROP_MEMORY_IMPORT_SUPPORT_EXP"; + case UR_PLATFORM_INFO_VERSION: + os << "UR_PLATFORM_INFO_VERSION"; break; - case UR_DEVICE_INFO_INTEROP_MEMORY_EXPORT_SUPPORT_EXP: - os << "UR_DEVICE_INFO_INTEROP_MEMORY_EXPORT_SUPPORT_EXP"; + case UR_PLATFORM_INFO_EXTENSIONS: + os << "UR_PLATFORM_INFO_EXTENSIONS"; break; - case UR_DEVICE_INFO_INTEROP_SEMAPHORE_IMPORT_SUPPORT_EXP: - os << "UR_DEVICE_INFO_INTEROP_SEMAPHORE_IMPORT_SUPPORT_EXP"; + case UR_PLATFORM_INFO_PROFILE: + os << "UR_PLATFORM_INFO_PROFILE"; break; - case UR_DEVICE_INFO_INTEROP_SEMAPHORE_EXPORT_SUPPORT_EXP: - os << "UR_DEVICE_INFO_INTEROP_SEMAPHORE_EXPORT_SUPPORT_EXP"; + case UR_PLATFORM_INFO_BACKEND: + os << "UR_PLATFORM_INFO_BACKEND"; break; default: os << "unknown enumerator"; @@ -1969,7 +1942,7 @@ inline std::ostream &operator<<(std::ostream &os, enum ur_device_info_t value) { namespace ur_params { template <> inline void serializeTagged(std::ostream &os, const void *ptr, - ur_device_info_t value, size_t size) { + ur_platform_info_t value, size_t size) { if (ptr == NULL) { serializePtr(os, ptr); return; @@ -1977,67 +1950,41 @@ inline void serializeTagged(std::ostream &os, const void *ptr, switch (value) { - case UR_DEVICE_INFO_TYPE: { - const ur_device_type_t *tptr = (const ur_device_type_t *)ptr; - if (sizeof(ur_device_type_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(ur_device_type_t) << ")"; - return; - } - os << (void *)(tptr) << " ("; - - os << *tptr; + case UR_PLATFORM_INFO_NAME: { - os << ")"; + const char *tptr = (const char *)ptr; + serializePtr(os, tptr); } break; - case UR_DEVICE_INFO_VENDOR_ID: { - const uint32_t *tptr = (const uint32_t *)ptr; - if (sizeof(uint32_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(uint32_t) << ")"; - return; - } - os << (void *)(tptr) << " ("; - - os << *tptr; + case UR_PLATFORM_INFO_VENDOR_NAME: { - os << ")"; + const char *tptr = (const char *)ptr; + serializePtr(os, tptr); } break; - case UR_DEVICE_INFO_DEVICE_ID: { - const uint32_t *tptr = (const uint32_t *)ptr; - if (sizeof(uint32_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(uint32_t) << ")"; - return; - } - os << (void *)(tptr) << " ("; - - os << *tptr; + case UR_PLATFORM_INFO_VERSION: { - os << ")"; + const char *tptr = (const char *)ptr; + serializePtr(os, tptr); } break; - case UR_DEVICE_INFO_MAX_COMPUTE_UNITS: { - const uint32_t *tptr = (const uint32_t *)ptr; - if (sizeof(uint32_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(uint32_t) << ")"; - return; - } - os << (void *)(tptr) << " ("; + case UR_PLATFORM_INFO_EXTENSIONS: { - os << *tptr; + const char *tptr = (const char *)ptr; + serializePtr(os, tptr); + } break; - os << ")"; + case UR_PLATFORM_INFO_PROFILE: { + + const char *tptr = (const char *)ptr; + serializePtr(os, tptr); } break; - case UR_DEVICE_INFO_MAX_WORK_ITEM_DIMENSIONS: { - const uint32_t *tptr = (const uint32_t *)ptr; - if (sizeof(uint32_t) > size) { + case UR_PLATFORM_INFO_BACKEND: { + const ur_platform_backend_t *tptr = (const ur_platform_backend_t *)ptr; + if (sizeof(ur_platform_backend_t) > size) { os << "invalid size (is: " << size - << ", expected: >=" << sizeof(uint32_t) << ")"; + << ", expected: >=" << sizeof(ur_platform_backend_t) << ")"; return; } os << (void *)(tptr) << " ("; @@ -2046,552 +1993,664 @@ inline void serializeTagged(std::ostream &os, const void *ptr, os << ")"; } break; + default: + os << "unknown enumerator"; + break; + } +} +} // namespace ur_params +inline std::ostream &operator<<(std::ostream &os, enum ur_api_version_t value) { + os << UR_MAJOR_VERSION(value) << "." << UR_MINOR_VERSION(value); + return os; +} +inline std::ostream & +operator<<(std::ostream &os, + const struct ur_platform_native_properties_t params) { + os << "(struct ur_platform_native_properties_t){"; - case UR_DEVICE_INFO_MAX_WORK_ITEM_SIZES: { - - const size_t *tptr = (const size_t *)ptr; - os << "{"; - size_t nelems = size / sizeof(size_t); - for (size_t i = 0; i < nelems; ++i) { - if (i != 0) { - os << ", "; - } - - os << tptr[i]; - } - os << "}"; - } break; + os << ".stype = "; - case UR_DEVICE_INFO_MAX_WORK_GROUP_SIZE: { - const size_t *tptr = (const size_t *)ptr; - if (sizeof(size_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(size_t) << ")"; - return; - } - os << (void *)(tptr) << " ("; + os << (params.stype); - os << *tptr; + os << ", "; + os << ".pNext = "; - os << ")"; - } break; + ur_params::serializeStruct(os, (params.pNext)); - case UR_DEVICE_INFO_SINGLE_FP_CONFIG: { - const ur_device_fp_capability_flags_t *tptr = - (const ur_device_fp_capability_flags_t *)ptr; - if (sizeof(ur_device_fp_capability_flags_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(ur_device_fp_capability_flags_t) - << ")"; - return; - } - os << (void *)(tptr) << " ("; + os << ", "; + os << ".isNativeHandleOwned = "; - ur_params::serializeFlag(os, *tptr); + os << (params.isNativeHandleOwned); - os << ")"; - } break; + os << "}"; + return os; +} +inline std::ostream &operator<<(std::ostream &os, + enum ur_platform_backend_t value) { + switch (value) { - case UR_DEVICE_INFO_HALF_FP_CONFIG: { - const ur_device_fp_capability_flags_t *tptr = - (const ur_device_fp_capability_flags_t *)ptr; - if (sizeof(ur_device_fp_capability_flags_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(ur_device_fp_capability_flags_t) - << ")"; - return; - } - os << (void *)(tptr) << " ("; + case UR_PLATFORM_BACKEND_UNKNOWN: + os << "UR_PLATFORM_BACKEND_UNKNOWN"; + break; - ur_params::serializeFlag(os, *tptr); + case UR_PLATFORM_BACKEND_LEVEL_ZERO: + os << "UR_PLATFORM_BACKEND_LEVEL_ZERO"; + break; - os << ")"; - } break; + case UR_PLATFORM_BACKEND_OPENCL: + os << "UR_PLATFORM_BACKEND_OPENCL"; + break; - case UR_DEVICE_INFO_DOUBLE_FP_CONFIG: { - const ur_device_fp_capability_flags_t *tptr = - (const ur_device_fp_capability_flags_t *)ptr; - if (sizeof(ur_device_fp_capability_flags_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(ur_device_fp_capability_flags_t) - << ")"; - return; - } - os << (void *)(tptr) << " ("; + case UR_PLATFORM_BACKEND_CUDA: + os << "UR_PLATFORM_BACKEND_CUDA"; + break; - ur_params::serializeFlag(os, *tptr); + case UR_PLATFORM_BACKEND_HIP: + os << "UR_PLATFORM_BACKEND_HIP"; + break; + default: + os << "unknown enumerator"; + break; + } + return os; +} +inline std::ostream &operator<<(std::ostream &os, + const struct ur_device_binary_t params) { + os << "(struct ur_device_binary_t){"; - os << ")"; - } break; + os << ".stype = "; - case UR_DEVICE_INFO_QUEUE_PROPERTIES: { - const ur_queue_flags_t *tptr = (const ur_queue_flags_t *)ptr; - if (sizeof(ur_queue_flags_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(ur_queue_flags_t) << ")"; - return; - } - os << (void *)(tptr) << " ("; + os << (params.stype); - ur_params::serializeFlag(os, *tptr); + os << ", "; + os << ".pNext = "; - os << ")"; - } break; + ur_params::serializeStruct(os, (params.pNext)); - case UR_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_CHAR: { - const uint32_t *tptr = (const uint32_t *)ptr; - if (sizeof(uint32_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(uint32_t) << ")"; - return; - } - os << (void *)(tptr) << " ("; + os << ", "; + os << ".pDeviceTargetSpec = "; - os << *tptr; + ur_params::serializePtr(os, (params.pDeviceTargetSpec)); - os << ")"; - } break; + os << "}"; + return os; +} +inline std::ostream &operator<<(std::ostream &os, enum ur_device_type_t value) { + switch (value) { - case UR_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_SHORT: { - const uint32_t *tptr = (const uint32_t *)ptr; - if (sizeof(uint32_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(uint32_t) << ")"; - return; - } - os << (void *)(tptr) << " ("; + case UR_DEVICE_TYPE_DEFAULT: + os << "UR_DEVICE_TYPE_DEFAULT"; + break; - os << *tptr; + case UR_DEVICE_TYPE_ALL: + os << "UR_DEVICE_TYPE_ALL"; + break; - os << ")"; - } break; + case UR_DEVICE_TYPE_GPU: + os << "UR_DEVICE_TYPE_GPU"; + break; - case UR_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_INT: { - const uint32_t *tptr = (const uint32_t *)ptr; - if (sizeof(uint32_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(uint32_t) << ")"; - return; - } - os << (void *)(tptr) << " ("; + case UR_DEVICE_TYPE_CPU: + os << "UR_DEVICE_TYPE_CPU"; + break; - os << *tptr; + case UR_DEVICE_TYPE_FPGA: + os << "UR_DEVICE_TYPE_FPGA"; + break; - os << ")"; - } break; + case UR_DEVICE_TYPE_MCA: + os << "UR_DEVICE_TYPE_MCA"; + break; - case UR_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_LONG: { - const uint32_t *tptr = (const uint32_t *)ptr; - if (sizeof(uint32_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(uint32_t) << ")"; - return; - } - os << (void *)(tptr) << " ("; + case UR_DEVICE_TYPE_VPU: + os << "UR_DEVICE_TYPE_VPU"; + break; + default: + os << "unknown enumerator"; + break; + } + return os; +} +inline std::ostream &operator<<(std::ostream &os, enum ur_device_info_t value) { + switch (value) { - os << *tptr; + case UR_DEVICE_INFO_TYPE: + os << "UR_DEVICE_INFO_TYPE"; + break; - os << ")"; - } break; + case UR_DEVICE_INFO_VENDOR_ID: + os << "UR_DEVICE_INFO_VENDOR_ID"; + break; - case UR_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_FLOAT: { - const uint32_t *tptr = (const uint32_t *)ptr; - if (sizeof(uint32_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(uint32_t) << ")"; - return; - } - os << (void *)(tptr) << " ("; + case UR_DEVICE_INFO_DEVICE_ID: + os << "UR_DEVICE_INFO_DEVICE_ID"; + break; - os << *tptr; + case UR_DEVICE_INFO_MAX_COMPUTE_UNITS: + os << "UR_DEVICE_INFO_MAX_COMPUTE_UNITS"; + break; - os << ")"; - } break; + case UR_DEVICE_INFO_MAX_WORK_ITEM_DIMENSIONS: + os << "UR_DEVICE_INFO_MAX_WORK_ITEM_DIMENSIONS"; + break; - case UR_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_DOUBLE: { - const uint32_t *tptr = (const uint32_t *)ptr; - if (sizeof(uint32_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(uint32_t) << ")"; - return; - } - os << (void *)(tptr) << " ("; + case UR_DEVICE_INFO_MAX_WORK_ITEM_SIZES: + os << "UR_DEVICE_INFO_MAX_WORK_ITEM_SIZES"; + break; - os << *tptr; + case UR_DEVICE_INFO_MAX_WORK_GROUP_SIZE: + os << "UR_DEVICE_INFO_MAX_WORK_GROUP_SIZE"; + break; - os << ")"; - } break; + case UR_DEVICE_INFO_SINGLE_FP_CONFIG: + os << "UR_DEVICE_INFO_SINGLE_FP_CONFIG"; + break; - case UR_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_HALF: { - const uint32_t *tptr = (const uint32_t *)ptr; - if (sizeof(uint32_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(uint32_t) << ")"; - return; - } - os << (void *)(tptr) << " ("; + case UR_DEVICE_INFO_HALF_FP_CONFIG: + os << "UR_DEVICE_INFO_HALF_FP_CONFIG"; + break; - os << *tptr; + case UR_DEVICE_INFO_DOUBLE_FP_CONFIG: + os << "UR_DEVICE_INFO_DOUBLE_FP_CONFIG"; + break; - os << ")"; - } break; + case UR_DEVICE_INFO_QUEUE_PROPERTIES: + os << "UR_DEVICE_INFO_QUEUE_PROPERTIES"; + break; - case UR_DEVICE_INFO_NATIVE_VECTOR_WIDTH_CHAR: { - const uint32_t *tptr = (const uint32_t *)ptr; - if (sizeof(uint32_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(uint32_t) << ")"; - return; - } - os << (void *)(tptr) << " ("; + case UR_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_CHAR: + os << "UR_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_CHAR"; + break; - os << *tptr; + case UR_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_SHORT: + os << "UR_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_SHORT"; + break; - os << ")"; - } break; + case UR_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_INT: + os << "UR_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_INT"; + break; - case UR_DEVICE_INFO_NATIVE_VECTOR_WIDTH_SHORT: { - const uint32_t *tptr = (const uint32_t *)ptr; - if (sizeof(uint32_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(uint32_t) << ")"; - return; - } - os << (void *)(tptr) << " ("; + case UR_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_LONG: + os << "UR_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_LONG"; + break; - os << *tptr; + case UR_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_FLOAT: + os << "UR_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_FLOAT"; + break; - os << ")"; - } break; + case UR_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_DOUBLE: + os << "UR_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_DOUBLE"; + break; - case UR_DEVICE_INFO_NATIVE_VECTOR_WIDTH_INT: { - const uint32_t *tptr = (const uint32_t *)ptr; - if (sizeof(uint32_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(uint32_t) << ")"; - return; - } - os << (void *)(tptr) << " ("; + case UR_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_HALF: + os << "UR_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_HALF"; + break; - os << *tptr; + case UR_DEVICE_INFO_NATIVE_VECTOR_WIDTH_CHAR: + os << "UR_DEVICE_INFO_NATIVE_VECTOR_WIDTH_CHAR"; + break; - os << ")"; - } break; + case UR_DEVICE_INFO_NATIVE_VECTOR_WIDTH_SHORT: + os << "UR_DEVICE_INFO_NATIVE_VECTOR_WIDTH_SHORT"; + break; - case UR_DEVICE_INFO_NATIVE_VECTOR_WIDTH_LONG: { - const uint32_t *tptr = (const uint32_t *)ptr; - if (sizeof(uint32_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(uint32_t) << ")"; - return; - } - os << (void *)(tptr) << " ("; + case UR_DEVICE_INFO_NATIVE_VECTOR_WIDTH_INT: + os << "UR_DEVICE_INFO_NATIVE_VECTOR_WIDTH_INT"; + break; - os << *tptr; + case UR_DEVICE_INFO_NATIVE_VECTOR_WIDTH_LONG: + os << "UR_DEVICE_INFO_NATIVE_VECTOR_WIDTH_LONG"; + break; - os << ")"; - } break; + case UR_DEVICE_INFO_NATIVE_VECTOR_WIDTH_FLOAT: + os << "UR_DEVICE_INFO_NATIVE_VECTOR_WIDTH_FLOAT"; + break; - case UR_DEVICE_INFO_NATIVE_VECTOR_WIDTH_FLOAT: { - const uint32_t *tptr = (const uint32_t *)ptr; - if (sizeof(uint32_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(uint32_t) << ")"; - return; - } - os << (void *)(tptr) << " ("; + case UR_DEVICE_INFO_NATIVE_VECTOR_WIDTH_DOUBLE: + os << "UR_DEVICE_INFO_NATIVE_VECTOR_WIDTH_DOUBLE"; + break; - os << *tptr; + case UR_DEVICE_INFO_NATIVE_VECTOR_WIDTH_HALF: + os << "UR_DEVICE_INFO_NATIVE_VECTOR_WIDTH_HALF"; + break; - os << ")"; - } break; + case UR_DEVICE_INFO_MAX_CLOCK_FREQUENCY: + os << "UR_DEVICE_INFO_MAX_CLOCK_FREQUENCY"; + break; - case UR_DEVICE_INFO_NATIVE_VECTOR_WIDTH_DOUBLE: { - const uint32_t *tptr = (const uint32_t *)ptr; - if (sizeof(uint32_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(uint32_t) << ")"; - return; - } - os << (void *)(tptr) << " ("; + case UR_DEVICE_INFO_MEMORY_CLOCK_RATE: + os << "UR_DEVICE_INFO_MEMORY_CLOCK_RATE"; + break; - os << *tptr; + case UR_DEVICE_INFO_ADDRESS_BITS: + os << "UR_DEVICE_INFO_ADDRESS_BITS"; + break; - os << ")"; - } break; + case UR_DEVICE_INFO_MAX_MEM_ALLOC_SIZE: + os << "UR_DEVICE_INFO_MAX_MEM_ALLOC_SIZE"; + break; - case UR_DEVICE_INFO_NATIVE_VECTOR_WIDTH_HALF: { - const uint32_t *tptr = (const uint32_t *)ptr; - if (sizeof(uint32_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(uint32_t) << ")"; - return; - } - os << (void *)(tptr) << " ("; + case UR_DEVICE_INFO_IMAGE_SUPPORTED: + os << "UR_DEVICE_INFO_IMAGE_SUPPORTED"; + break; - os << *tptr; + case UR_DEVICE_INFO_MAX_READ_IMAGE_ARGS: + os << "UR_DEVICE_INFO_MAX_READ_IMAGE_ARGS"; + break; - os << ")"; - } break; + case UR_DEVICE_INFO_MAX_WRITE_IMAGE_ARGS: + os << "UR_DEVICE_INFO_MAX_WRITE_IMAGE_ARGS"; + break; - case UR_DEVICE_INFO_MAX_CLOCK_FREQUENCY: { - const uint32_t *tptr = (const uint32_t *)ptr; - if (sizeof(uint32_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(uint32_t) << ")"; - return; - } - os << (void *)(tptr) << " ("; + case UR_DEVICE_INFO_MAX_READ_WRITE_IMAGE_ARGS: + os << "UR_DEVICE_INFO_MAX_READ_WRITE_IMAGE_ARGS"; + break; - os << *tptr; + case UR_DEVICE_INFO_IMAGE2D_MAX_WIDTH: + os << "UR_DEVICE_INFO_IMAGE2D_MAX_WIDTH"; + break; - os << ")"; - } break; + case UR_DEVICE_INFO_IMAGE2D_MAX_HEIGHT: + os << "UR_DEVICE_INFO_IMAGE2D_MAX_HEIGHT"; + break; - case UR_DEVICE_INFO_MEMORY_CLOCK_RATE: { - const uint32_t *tptr = (const uint32_t *)ptr; - if (sizeof(uint32_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(uint32_t) << ")"; - return; - } - os << (void *)(tptr) << " ("; + case UR_DEVICE_INFO_IMAGE3D_MAX_WIDTH: + os << "UR_DEVICE_INFO_IMAGE3D_MAX_WIDTH"; + break; - os << *tptr; + case UR_DEVICE_INFO_IMAGE3D_MAX_HEIGHT: + os << "UR_DEVICE_INFO_IMAGE3D_MAX_HEIGHT"; + break; - os << ")"; - } break; + case UR_DEVICE_INFO_IMAGE3D_MAX_DEPTH: + os << "UR_DEVICE_INFO_IMAGE3D_MAX_DEPTH"; + break; - case UR_DEVICE_INFO_ADDRESS_BITS: { - const uint32_t *tptr = (const uint32_t *)ptr; - if (sizeof(uint32_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(uint32_t) << ")"; - return; - } - os << (void *)(tptr) << " ("; + case UR_DEVICE_INFO_IMAGE_MAX_BUFFER_SIZE: + os << "UR_DEVICE_INFO_IMAGE_MAX_BUFFER_SIZE"; + break; - os << *tptr; + case UR_DEVICE_INFO_IMAGE_MAX_ARRAY_SIZE: + os << "UR_DEVICE_INFO_IMAGE_MAX_ARRAY_SIZE"; + break; - os << ")"; - } break; + case UR_DEVICE_INFO_MAX_SAMPLERS: + os << "UR_DEVICE_INFO_MAX_SAMPLERS"; + break; - case UR_DEVICE_INFO_MAX_MEM_ALLOC_SIZE: { - const uint64_t *tptr = (const uint64_t *)ptr; - if (sizeof(uint64_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(uint64_t) << ")"; - return; - } - os << (void *)(tptr) << " ("; + case UR_DEVICE_INFO_MAX_PARAMETER_SIZE: + os << "UR_DEVICE_INFO_MAX_PARAMETER_SIZE"; + break; - os << *tptr; + case UR_DEVICE_INFO_MEM_BASE_ADDR_ALIGN: + os << "UR_DEVICE_INFO_MEM_BASE_ADDR_ALIGN"; + break; - os << ")"; - } break; + case UR_DEVICE_INFO_GLOBAL_MEM_CACHE_TYPE: + os << "UR_DEVICE_INFO_GLOBAL_MEM_CACHE_TYPE"; + break; - case UR_DEVICE_INFO_IMAGE_SUPPORTED: { - const ur_bool_t *tptr = (const ur_bool_t *)ptr; - if (sizeof(ur_bool_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(ur_bool_t) << ")"; - return; - } - os << (void *)(tptr) << " ("; + case UR_DEVICE_INFO_GLOBAL_MEM_CACHELINE_SIZE: + os << "UR_DEVICE_INFO_GLOBAL_MEM_CACHELINE_SIZE"; + break; - os << *tptr; + case UR_DEVICE_INFO_GLOBAL_MEM_CACHE_SIZE: + os << "UR_DEVICE_INFO_GLOBAL_MEM_CACHE_SIZE"; + break; - os << ")"; - } break; + case UR_DEVICE_INFO_GLOBAL_MEM_SIZE: + os << "UR_DEVICE_INFO_GLOBAL_MEM_SIZE"; + break; - case UR_DEVICE_INFO_MAX_READ_IMAGE_ARGS: { - const uint32_t *tptr = (const uint32_t *)ptr; - if (sizeof(uint32_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(uint32_t) << ")"; - return; - } - os << (void *)(tptr) << " ("; + case UR_DEVICE_INFO_GLOBAL_MEM_FREE: + os << "UR_DEVICE_INFO_GLOBAL_MEM_FREE"; + break; - os << *tptr; + case UR_DEVICE_INFO_MAX_CONSTANT_BUFFER_SIZE: + os << "UR_DEVICE_INFO_MAX_CONSTANT_BUFFER_SIZE"; + break; - os << ")"; - } break; + case UR_DEVICE_INFO_MAX_CONSTANT_ARGS: + os << "UR_DEVICE_INFO_MAX_CONSTANT_ARGS"; + break; - case UR_DEVICE_INFO_MAX_WRITE_IMAGE_ARGS: { - const uint32_t *tptr = (const uint32_t *)ptr; - if (sizeof(uint32_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(uint32_t) << ")"; - return; - } - os << (void *)(tptr) << " ("; + case UR_DEVICE_INFO_LOCAL_MEM_TYPE: + os << "UR_DEVICE_INFO_LOCAL_MEM_TYPE"; + break; - os << *tptr; + case UR_DEVICE_INFO_LOCAL_MEM_SIZE: + os << "UR_DEVICE_INFO_LOCAL_MEM_SIZE"; + break; - os << ")"; - } break; + case UR_DEVICE_INFO_ERROR_CORRECTION_SUPPORT: + os << "UR_DEVICE_INFO_ERROR_CORRECTION_SUPPORT"; + break; - case UR_DEVICE_INFO_MAX_READ_WRITE_IMAGE_ARGS: { - const uint32_t *tptr = (const uint32_t *)ptr; - if (sizeof(uint32_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(uint32_t) << ")"; - return; - } - os << (void *)(tptr) << " ("; + case UR_DEVICE_INFO_HOST_UNIFIED_MEMORY: + os << "UR_DEVICE_INFO_HOST_UNIFIED_MEMORY"; + break; - os << *tptr; + case UR_DEVICE_INFO_PROFILING_TIMER_RESOLUTION: + os << "UR_DEVICE_INFO_PROFILING_TIMER_RESOLUTION"; + break; - os << ")"; - } break; + case UR_DEVICE_INFO_ENDIAN_LITTLE: + os << "UR_DEVICE_INFO_ENDIAN_LITTLE"; + break; - case UR_DEVICE_INFO_IMAGE2D_MAX_WIDTH: { - const size_t *tptr = (const size_t *)ptr; - if (sizeof(size_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(size_t) << ")"; - return; - } - os << (void *)(tptr) << " ("; + case UR_DEVICE_INFO_AVAILABLE: + os << "UR_DEVICE_INFO_AVAILABLE"; + break; - os << *tptr; + case UR_DEVICE_INFO_COMPILER_AVAILABLE: + os << "UR_DEVICE_INFO_COMPILER_AVAILABLE"; + break; - os << ")"; - } break; + case UR_DEVICE_INFO_LINKER_AVAILABLE: + os << "UR_DEVICE_INFO_LINKER_AVAILABLE"; + break; - case UR_DEVICE_INFO_IMAGE2D_MAX_HEIGHT: { - const size_t *tptr = (const size_t *)ptr; - if (sizeof(size_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(size_t) << ")"; - return; - } - os << (void *)(tptr) << " ("; + case UR_DEVICE_INFO_EXECUTION_CAPABILITIES: + os << "UR_DEVICE_INFO_EXECUTION_CAPABILITIES"; + break; - os << *tptr; + case UR_DEVICE_INFO_QUEUE_ON_DEVICE_PROPERTIES: + os << "UR_DEVICE_INFO_QUEUE_ON_DEVICE_PROPERTIES"; + break; - os << ")"; - } break; + case UR_DEVICE_INFO_QUEUE_ON_HOST_PROPERTIES: + os << "UR_DEVICE_INFO_QUEUE_ON_HOST_PROPERTIES"; + break; - case UR_DEVICE_INFO_IMAGE3D_MAX_WIDTH: { - const size_t *tptr = (const size_t *)ptr; - if (sizeof(size_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(size_t) << ")"; - return; - } - os << (void *)(tptr) << " ("; + case UR_DEVICE_INFO_BUILT_IN_KERNELS: + os << "UR_DEVICE_INFO_BUILT_IN_KERNELS"; + break; - os << *tptr; + case UR_DEVICE_INFO_PLATFORM: + os << "UR_DEVICE_INFO_PLATFORM"; + break; - os << ")"; - } break; + case UR_DEVICE_INFO_REFERENCE_COUNT: + os << "UR_DEVICE_INFO_REFERENCE_COUNT"; + break; - case UR_DEVICE_INFO_IMAGE3D_MAX_HEIGHT: { - const size_t *tptr = (const size_t *)ptr; - if (sizeof(size_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(size_t) << ")"; - return; - } - os << (void *)(tptr) << " ("; + case UR_DEVICE_INFO_IL_VERSION: + os << "UR_DEVICE_INFO_IL_VERSION"; + break; - os << *tptr; + case UR_DEVICE_INFO_NAME: + os << "UR_DEVICE_INFO_NAME"; + break; - os << ")"; - } break; + case UR_DEVICE_INFO_VENDOR: + os << "UR_DEVICE_INFO_VENDOR"; + break; - case UR_DEVICE_INFO_IMAGE3D_MAX_DEPTH: { - const size_t *tptr = (const size_t *)ptr; - if (sizeof(size_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(size_t) << ")"; - return; - } - os << (void *)(tptr) << " ("; + case UR_DEVICE_INFO_DRIVER_VERSION: + os << "UR_DEVICE_INFO_DRIVER_VERSION"; + break; - os << *tptr; + case UR_DEVICE_INFO_PROFILE: + os << "UR_DEVICE_INFO_PROFILE"; + break; - os << ")"; - } break; + case UR_DEVICE_INFO_VERSION: + os << "UR_DEVICE_INFO_VERSION"; + break; - case UR_DEVICE_INFO_IMAGE_MAX_BUFFER_SIZE: { - const size_t *tptr = (const size_t *)ptr; - if (sizeof(size_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(size_t) << ")"; - return; - } - os << (void *)(tptr) << " ("; + case UR_DEVICE_INFO_BACKEND_RUNTIME_VERSION: + os << "UR_DEVICE_INFO_BACKEND_RUNTIME_VERSION"; + break; - os << *tptr; + case UR_DEVICE_INFO_EXTENSIONS: + os << "UR_DEVICE_INFO_EXTENSIONS"; + break; - os << ")"; - } break; + case UR_DEVICE_INFO_PRINTF_BUFFER_SIZE: + os << "UR_DEVICE_INFO_PRINTF_BUFFER_SIZE"; + break; - case UR_DEVICE_INFO_IMAGE_MAX_ARRAY_SIZE: { - const size_t *tptr = (const size_t *)ptr; - if (sizeof(size_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(size_t) << ")"; - return; - } - os << (void *)(tptr) << " ("; + case UR_DEVICE_INFO_PREFERRED_INTEROP_USER_SYNC: + os << "UR_DEVICE_INFO_PREFERRED_INTEROP_USER_SYNC"; + break; - os << *tptr; + case UR_DEVICE_INFO_PARENT_DEVICE: + os << "UR_DEVICE_INFO_PARENT_DEVICE"; + break; - os << ")"; - } break; + case UR_DEVICE_INFO_SUPPORTED_PARTITIONS: + os << "UR_DEVICE_INFO_SUPPORTED_PARTITIONS"; + break; - case UR_DEVICE_INFO_MAX_SAMPLERS: { - const uint32_t *tptr = (const uint32_t *)ptr; - if (sizeof(uint32_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(uint32_t) << ")"; - return; - } - os << (void *)(tptr) << " ("; + case UR_DEVICE_INFO_PARTITION_MAX_SUB_DEVICES: + os << "UR_DEVICE_INFO_PARTITION_MAX_SUB_DEVICES"; + break; - os << *tptr; + case UR_DEVICE_INFO_PARTITION_AFFINITY_DOMAIN: + os << "UR_DEVICE_INFO_PARTITION_AFFINITY_DOMAIN"; + break; - os << ")"; - } break; + case UR_DEVICE_INFO_PARTITION_TYPE: + os << "UR_DEVICE_INFO_PARTITION_TYPE"; + break; - case UR_DEVICE_INFO_MAX_PARAMETER_SIZE: { - const size_t *tptr = (const size_t *)ptr; - if (sizeof(size_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(size_t) << ")"; - return; - } - os << (void *)(tptr) << " ("; + case UR_DEVICE_INFO_MAX_NUM_SUB_GROUPS: + os << "UR_DEVICE_INFO_MAX_NUM_SUB_GROUPS"; + break; - os << *tptr; + case UR_DEVICE_INFO_SUB_GROUP_INDEPENDENT_FORWARD_PROGRESS: + os << "UR_DEVICE_INFO_SUB_GROUP_INDEPENDENT_FORWARD_PROGRESS"; + break; - os << ")"; - } break; + case UR_DEVICE_INFO_SUB_GROUP_SIZES_INTEL: + os << "UR_DEVICE_INFO_SUB_GROUP_SIZES_INTEL"; + break; - case UR_DEVICE_INFO_MEM_BASE_ADDR_ALIGN: { - const uint32_t *tptr = (const uint32_t *)ptr; - if (sizeof(uint32_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(uint32_t) << ")"; - return; - } - os << (void *)(tptr) << " ("; + case UR_DEVICE_INFO_USM_HOST_SUPPORT: + os << "UR_DEVICE_INFO_USM_HOST_SUPPORT"; + break; - os << *tptr; + case UR_DEVICE_INFO_USM_DEVICE_SUPPORT: + os << "UR_DEVICE_INFO_USM_DEVICE_SUPPORT"; + break; - os << ")"; - } break; + case UR_DEVICE_INFO_USM_SINGLE_SHARED_SUPPORT: + os << "UR_DEVICE_INFO_USM_SINGLE_SHARED_SUPPORT"; + break; - case UR_DEVICE_INFO_GLOBAL_MEM_CACHE_TYPE: { - const ur_device_mem_cache_type_t *tptr = - (const ur_device_mem_cache_type_t *)ptr; - if (sizeof(ur_device_mem_cache_type_t) > size) { + case UR_DEVICE_INFO_USM_CROSS_SHARED_SUPPORT: + os << "UR_DEVICE_INFO_USM_CROSS_SHARED_SUPPORT"; + break; + + case UR_DEVICE_INFO_USM_SYSTEM_SHARED_SUPPORT: + os << "UR_DEVICE_INFO_USM_SYSTEM_SHARED_SUPPORT"; + break; + + case UR_DEVICE_INFO_UUID: + os << "UR_DEVICE_INFO_UUID"; + break; + + case UR_DEVICE_INFO_PCI_ADDRESS: + os << "UR_DEVICE_INFO_PCI_ADDRESS"; + break; + + case UR_DEVICE_INFO_GPU_EU_COUNT: + os << "UR_DEVICE_INFO_GPU_EU_COUNT"; + break; + + case UR_DEVICE_INFO_GPU_EU_SIMD_WIDTH: + os << "UR_DEVICE_INFO_GPU_EU_SIMD_WIDTH"; + break; + + case UR_DEVICE_INFO_GPU_EU_SLICES: + os << "UR_DEVICE_INFO_GPU_EU_SLICES"; + break; + + case UR_DEVICE_INFO_GPU_EU_COUNT_PER_SUBSLICE: + os << "UR_DEVICE_INFO_GPU_EU_COUNT_PER_SUBSLICE"; + break; + + case UR_DEVICE_INFO_GPU_SUBSLICES_PER_SLICE: + os << "UR_DEVICE_INFO_GPU_SUBSLICES_PER_SLICE"; + break; + + case UR_DEVICE_INFO_GPU_HW_THREADS_PER_EU: + os << "UR_DEVICE_INFO_GPU_HW_THREADS_PER_EU"; + break; + + case UR_DEVICE_INFO_MAX_MEMORY_BANDWIDTH: + os << "UR_DEVICE_INFO_MAX_MEMORY_BANDWIDTH"; + break; + + case UR_DEVICE_INFO_IMAGE_SRGB: + os << "UR_DEVICE_INFO_IMAGE_SRGB"; + break; + + case UR_DEVICE_INFO_BUILD_ON_SUBDEVICE: + os << "UR_DEVICE_INFO_BUILD_ON_SUBDEVICE"; + break; + + case UR_DEVICE_INFO_ATOMIC_64: + os << "UR_DEVICE_INFO_ATOMIC_64"; + break; + + case UR_DEVICE_INFO_ATOMIC_MEMORY_ORDER_CAPABILITIES: + os << "UR_DEVICE_INFO_ATOMIC_MEMORY_ORDER_CAPABILITIES"; + break; + + case UR_DEVICE_INFO_ATOMIC_MEMORY_SCOPE_CAPABILITIES: + os << "UR_DEVICE_INFO_ATOMIC_MEMORY_SCOPE_CAPABILITIES"; + break; + + case UR_DEVICE_INFO_ATOMIC_FENCE_ORDER_CAPABILITIES: + os << "UR_DEVICE_INFO_ATOMIC_FENCE_ORDER_CAPABILITIES"; + break; + + case UR_DEVICE_INFO_ATOMIC_FENCE_SCOPE_CAPABILITIES: + os << "UR_DEVICE_INFO_ATOMIC_FENCE_SCOPE_CAPABILITIES"; + break; + + case UR_DEVICE_INFO_BFLOAT16: + os << "UR_DEVICE_INFO_BFLOAT16"; + break; + + case UR_DEVICE_INFO_MAX_COMPUTE_QUEUE_INDICES: + os << "UR_DEVICE_INFO_MAX_COMPUTE_QUEUE_INDICES"; + break; + + case UR_DEVICE_INFO_KERNEL_SET_SPECIALIZATION_CONSTANTS: + os << "UR_DEVICE_INFO_KERNEL_SET_SPECIALIZATION_CONSTANTS"; + break; + + case UR_DEVICE_INFO_MEMORY_BUS_WIDTH: + os << "UR_DEVICE_INFO_MEMORY_BUS_WIDTH"; + break; + + case UR_DEVICE_INFO_MAX_WORK_GROUPS_3D: + os << "UR_DEVICE_INFO_MAX_WORK_GROUPS_3D"; + break; + + case UR_DEVICE_INFO_ASYNC_BARRIER: + os << "UR_DEVICE_INFO_ASYNC_BARRIER"; + break; + + case UR_DEVICE_INFO_MEM_CHANNEL_SUPPORT: + os << "UR_DEVICE_INFO_MEM_CHANNEL_SUPPORT"; + break; + + case UR_DEVICE_INFO_HOST_PIPE_READ_WRITE_SUPPORTED: + os << "UR_DEVICE_INFO_HOST_PIPE_READ_WRITE_SUPPORTED"; + break; + + case UR_DEVICE_INFO_MAX_REGISTERS_PER_WORK_GROUP: + os << "UR_DEVICE_INFO_MAX_REGISTERS_PER_WORK_GROUP"; + break; + + case UR_DEVICE_INFO_IP_VERSION: + os << "UR_DEVICE_INFO_IP_VERSION"; + break; + + case UR_DEVICE_INFO_BINDLESS_IMAGES_SUPPORT_EXP: + os << "UR_DEVICE_INFO_BINDLESS_IMAGES_SUPPORT_EXP"; + break; + + case UR_DEVICE_INFO_BINDLESS_IMAGES_1D_USM_SUPPORT_EXP: + os << "UR_DEVICE_INFO_BINDLESS_IMAGES_1D_USM_SUPPORT_EXP"; + break; + + case UR_DEVICE_INFO_BINDLESS_IMAGES_2D_USM_SUPPORT_EXP: + os << "UR_DEVICE_INFO_BINDLESS_IMAGES_2D_USM_SUPPORT_EXP"; + break; + + case UR_DEVICE_INFO_IMAGE_PITCH_ALIGN_EXP: + os << "UR_DEVICE_INFO_IMAGE_PITCH_ALIGN_EXP"; + break; + + case UR_DEVICE_INFO_MAX_IMAGE_LINEAR_WIDTH_EXP: + os << "UR_DEVICE_INFO_MAX_IMAGE_LINEAR_WIDTH_EXP"; + break; + + case UR_DEVICE_INFO_MAX_IMAGE_LINEAR_HEIGHT_EXP: + os << "UR_DEVICE_INFO_MAX_IMAGE_LINEAR_HEIGHT_EXP"; + break; + + case UR_DEVICE_INFO_MAX_IMAGE_LINEAR_PITCH_EXP: + os << "UR_DEVICE_INFO_MAX_IMAGE_LINEAR_PITCH_EXP"; + break; + + case UR_DEVICE_INFO_MIPMAP_SUPPORT_EXP: + os << "UR_DEVICE_INFO_MIPMAP_SUPPORT_EXP"; + break; + + case UR_DEVICE_INFO_MIPMAP_ANISOTROPY_SUPPORT_EXP: + os << "UR_DEVICE_INFO_MIPMAP_ANISOTROPY_SUPPORT_EXP"; + break; + + case UR_DEVICE_INFO_MIPMAP_MAX_ANISOTROPY_EXP: + os << "UR_DEVICE_INFO_MIPMAP_MAX_ANISOTROPY_EXP"; + break; + + case UR_DEVICE_INFO_MIPMAP_LEVEL_REFERENCE_SUPPORT_EXP: + os << "UR_DEVICE_INFO_MIPMAP_LEVEL_REFERENCE_SUPPORT_EXP"; + break; + + case UR_DEVICE_INFO_INTEROP_MEMORY_IMPORT_SUPPORT_EXP: + os << "UR_DEVICE_INFO_INTEROP_MEMORY_IMPORT_SUPPORT_EXP"; + break; + + case UR_DEVICE_INFO_INTEROP_MEMORY_EXPORT_SUPPORT_EXP: + os << "UR_DEVICE_INFO_INTEROP_MEMORY_EXPORT_SUPPORT_EXP"; + break; + + case UR_DEVICE_INFO_INTEROP_SEMAPHORE_IMPORT_SUPPORT_EXP: + os << "UR_DEVICE_INFO_INTEROP_SEMAPHORE_IMPORT_SUPPORT_EXP"; + break; + + case UR_DEVICE_INFO_INTEROP_SEMAPHORE_EXPORT_SUPPORT_EXP: + os << "UR_DEVICE_INFO_INTEROP_SEMAPHORE_EXPORT_SUPPORT_EXP"; + break; + default: + os << "unknown enumerator"; + break; + } + return os; +} +namespace ur_params { +template <> +inline void serializeTagged(std::ostream &os, const void *ptr, + ur_device_info_t value, size_t size) { + if (ptr == NULL) { + serializePtr(os, ptr); + return; + } + + switch (value) { + + case UR_DEVICE_INFO_TYPE: { + const ur_device_type_t *tptr = (const ur_device_type_t *)ptr; + if (sizeof(ur_device_type_t) > size) { os << "invalid size (is: " << size - << ", expected: >=" << sizeof(ur_device_mem_cache_type_t) << ")"; + << ", expected: >=" << sizeof(ur_device_type_t) << ")"; return; } os << (void *)(tptr) << " ("; @@ -2601,7 +2660,7 @@ inline void serializeTagged(std::ostream &os, const void *ptr, os << ")"; } break; - case UR_DEVICE_INFO_GLOBAL_MEM_CACHELINE_SIZE: { + case UR_DEVICE_INFO_VENDOR_ID: { const uint32_t *tptr = (const uint32_t *)ptr; if (sizeof(uint32_t) > size) { os << "invalid size (is: " << size @@ -2615,11 +2674,11 @@ inline void serializeTagged(std::ostream &os, const void *ptr, os << ")"; } break; - case UR_DEVICE_INFO_GLOBAL_MEM_CACHE_SIZE: { - const uint64_t *tptr = (const uint64_t *)ptr; - if (sizeof(uint64_t) > size) { + case UR_DEVICE_INFO_DEVICE_ID: { + const uint32_t *tptr = (const uint32_t *)ptr; + if (sizeof(uint32_t) > size) { os << "invalid size (is: " << size - << ", expected: >=" << sizeof(uint64_t) << ")"; + << ", expected: >=" << sizeof(uint32_t) << ")"; return; } os << (void *)(tptr) << " ("; @@ -2629,11 +2688,11 @@ inline void serializeTagged(std::ostream &os, const void *ptr, os << ")"; } break; - case UR_DEVICE_INFO_GLOBAL_MEM_SIZE: { - const uint64_t *tptr = (const uint64_t *)ptr; - if (sizeof(uint64_t) > size) { + case UR_DEVICE_INFO_MAX_COMPUTE_UNITS: { + const uint32_t *tptr = (const uint32_t *)ptr; + if (sizeof(uint32_t) > size) { os << "invalid size (is: " << size - << ", expected: >=" << sizeof(uint64_t) << ")"; + << ", expected: >=" << sizeof(uint32_t) << ")"; return; } os << (void *)(tptr) << " ("; @@ -2643,11 +2702,11 @@ inline void serializeTagged(std::ostream &os, const void *ptr, os << ")"; } break; - case UR_DEVICE_INFO_GLOBAL_MEM_FREE: { - const uint64_t *tptr = (const uint64_t *)ptr; - if (sizeof(uint64_t) > size) { + case UR_DEVICE_INFO_MAX_WORK_ITEM_DIMENSIONS: { + const uint32_t *tptr = (const uint32_t *)ptr; + if (sizeof(uint32_t) > size) { os << "invalid size (is: " << size - << ", expected: >=" << sizeof(uint64_t) << ")"; + << ", expected: >=" << sizeof(uint32_t) << ")"; return; } os << (void *)(tptr) << " ("; @@ -2657,11 +2716,26 @@ inline void serializeTagged(std::ostream &os, const void *ptr, os << ")"; } break; - case UR_DEVICE_INFO_MAX_CONSTANT_BUFFER_SIZE: { - const uint64_t *tptr = (const uint64_t *)ptr; - if (sizeof(uint64_t) > size) { + case UR_DEVICE_INFO_MAX_WORK_ITEM_SIZES: { + + const size_t *tptr = (const size_t *)ptr; + os << "{"; + size_t nelems = size / sizeof(size_t); + for (size_t i = 0; i < nelems; ++i) { + if (i != 0) { + os << ", "; + } + + os << tptr[i]; + } + os << "}"; + } break; + + case UR_DEVICE_INFO_MAX_WORK_GROUP_SIZE: { + const size_t *tptr = (const size_t *)ptr; + if (sizeof(size_t) > size) { os << "invalid size (is: " << size - << ", expected: >=" << sizeof(uint64_t) << ")"; + << ", expected: >=" << sizeof(size_t) << ")"; return; } os << (void *)(tptr) << " ("; @@ -2671,68 +2745,73 @@ inline void serializeTagged(std::ostream &os, const void *ptr, os << ")"; } break; - case UR_DEVICE_INFO_MAX_CONSTANT_ARGS: { - const uint32_t *tptr = (const uint32_t *)ptr; - if (sizeof(uint32_t) > size) { + case UR_DEVICE_INFO_SINGLE_FP_CONFIG: { + const ur_device_fp_capability_flags_t *tptr = + (const ur_device_fp_capability_flags_t *)ptr; + if (sizeof(ur_device_fp_capability_flags_t) > size) { os << "invalid size (is: " << size - << ", expected: >=" << sizeof(uint32_t) << ")"; + << ", expected: >=" << sizeof(ur_device_fp_capability_flags_t) + << ")"; return; } os << (void *)(tptr) << " ("; - os << *tptr; + ur_params::serializeFlag(os, *tptr); os << ")"; } break; - case UR_DEVICE_INFO_LOCAL_MEM_TYPE: { - const ur_device_local_mem_type_t *tptr = - (const ur_device_local_mem_type_t *)ptr; - if (sizeof(ur_device_local_mem_type_t) > size) { + case UR_DEVICE_INFO_HALF_FP_CONFIG: { + const ur_device_fp_capability_flags_t *tptr = + (const ur_device_fp_capability_flags_t *)ptr; + if (sizeof(ur_device_fp_capability_flags_t) > size) { os << "invalid size (is: " << size - << ", expected: >=" << sizeof(ur_device_local_mem_type_t) << ")"; + << ", expected: >=" << sizeof(ur_device_fp_capability_flags_t) + << ")"; return; } os << (void *)(tptr) << " ("; - os << *tptr; + ur_params::serializeFlag(os, *tptr); os << ")"; } break; - case UR_DEVICE_INFO_LOCAL_MEM_SIZE: { - const uint64_t *tptr = (const uint64_t *)ptr; - if (sizeof(uint64_t) > size) { + case UR_DEVICE_INFO_DOUBLE_FP_CONFIG: { + const ur_device_fp_capability_flags_t *tptr = + (const ur_device_fp_capability_flags_t *)ptr; + if (sizeof(ur_device_fp_capability_flags_t) > size) { os << "invalid size (is: " << size - << ", expected: >=" << sizeof(uint64_t) << ")"; + << ", expected: >=" << sizeof(ur_device_fp_capability_flags_t) + << ")"; return; } os << (void *)(tptr) << " ("; - os << *tptr; + ur_params::serializeFlag(os, *tptr); os << ")"; } break; - case UR_DEVICE_INFO_ERROR_CORRECTION_SUPPORT: { - const ur_bool_t *tptr = (const ur_bool_t *)ptr; - if (sizeof(ur_bool_t) > size) { + case UR_DEVICE_INFO_QUEUE_PROPERTIES: { + const ur_queue_flags_t *tptr = (const ur_queue_flags_t *)ptr; + if (sizeof(ur_queue_flags_t) > size) { os << "invalid size (is: " << size - << ", expected: >=" << sizeof(ur_bool_t) << ")"; + << ", expected: >=" << sizeof(ur_queue_flags_t) << ")"; return; } os << (void *)(tptr) << " ("; - os << *tptr; + ur_params::serializeFlag(os, *tptr); os << ")"; } break; - case UR_DEVICE_INFO_HOST_UNIFIED_MEMORY: { - const ur_bool_t *tptr = (const ur_bool_t *)ptr; - if (sizeof(ur_bool_t) > size) { + case UR_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_CHAR: { + const uint32_t *tptr = (const uint32_t *)ptr; + if (sizeof(uint32_t) > size) { os << "invalid size (is: " << size - << ", expected: >=" << sizeof(ur_bool_t) << ")"; + << ", expected: >=" << sizeof(uint32_t) << ")"; return; } os << (void *)(tptr) << " ("; @@ -2742,11 +2821,11 @@ inline void serializeTagged(std::ostream &os, const void *ptr, os << ")"; } break; - case UR_DEVICE_INFO_PROFILING_TIMER_RESOLUTION: { - const size_t *tptr = (const size_t *)ptr; - if (sizeof(size_t) > size) { + case UR_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_SHORT: { + const uint32_t *tptr = (const uint32_t *)ptr; + if (sizeof(uint32_t) > size) { os << "invalid size (is: " << size - << ", expected: >=" << sizeof(size_t) << ")"; + << ", expected: >=" << sizeof(uint32_t) << ")"; return; } os << (void *)(tptr) << " ("; @@ -2756,11 +2835,11 @@ inline void serializeTagged(std::ostream &os, const void *ptr, os << ")"; } break; - case UR_DEVICE_INFO_ENDIAN_LITTLE: { - const ur_bool_t *tptr = (const ur_bool_t *)ptr; - if (sizeof(ur_bool_t) > size) { + case UR_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_INT: { + const uint32_t *tptr = (const uint32_t *)ptr; + if (sizeof(uint32_t) > size) { os << "invalid size (is: " << size - << ", expected: >=" << sizeof(ur_bool_t) << ")"; + << ", expected: >=" << sizeof(uint32_t) << ")"; return; } os << (void *)(tptr) << " ("; @@ -2770,11 +2849,11 @@ inline void serializeTagged(std::ostream &os, const void *ptr, os << ")"; } break; - case UR_DEVICE_INFO_AVAILABLE: { - const ur_bool_t *tptr = (const ur_bool_t *)ptr; - if (sizeof(ur_bool_t) > size) { + case UR_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_LONG: { + const uint32_t *tptr = (const uint32_t *)ptr; + if (sizeof(uint32_t) > size) { os << "invalid size (is: " << size - << ", expected: >=" << sizeof(ur_bool_t) << ")"; + << ", expected: >=" << sizeof(uint32_t) << ")"; return; } os << (void *)(tptr) << " ("; @@ -2784,11 +2863,11 @@ inline void serializeTagged(std::ostream &os, const void *ptr, os << ")"; } break; - case UR_DEVICE_INFO_COMPILER_AVAILABLE: { - const ur_bool_t *tptr = (const ur_bool_t *)ptr; - if (sizeof(ur_bool_t) > size) { + case UR_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_FLOAT: { + const uint32_t *tptr = (const uint32_t *)ptr; + if (sizeof(uint32_t) > size) { os << "invalid size (is: " << size - << ", expected: >=" << sizeof(ur_bool_t) << ")"; + << ", expected: >=" << sizeof(uint32_t) << ")"; return; } os << (void *)(tptr) << " ("; @@ -2798,11 +2877,11 @@ inline void serializeTagged(std::ostream &os, const void *ptr, os << ")"; } break; - case UR_DEVICE_INFO_LINKER_AVAILABLE: { - const ur_bool_t *tptr = (const ur_bool_t *)ptr; - if (sizeof(ur_bool_t) > size) { + case UR_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_DOUBLE: { + const uint32_t *tptr = (const uint32_t *)ptr; + if (sizeof(uint32_t) > size) { os << "invalid size (is: " << size - << ", expected: >=" << sizeof(ur_bool_t) << ")"; + << ", expected: >=" << sizeof(uint32_t) << ")"; return; } os << (void *)(tptr) << " ("; @@ -2812,71 +2891,63 @@ inline void serializeTagged(std::ostream &os, const void *ptr, os << ")"; } break; - case UR_DEVICE_INFO_EXECUTION_CAPABILITIES: { - const ur_device_exec_capability_flags_t *tptr = - (const ur_device_exec_capability_flags_t *)ptr; - if (sizeof(ur_device_exec_capability_flags_t) > size) { + case UR_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_HALF: { + const uint32_t *tptr = (const uint32_t *)ptr; + if (sizeof(uint32_t) > size) { os << "invalid size (is: " << size - << ", expected: >=" << sizeof(ur_device_exec_capability_flags_t) - << ")"; + << ", expected: >=" << sizeof(uint32_t) << ")"; return; } os << (void *)(tptr) << " ("; - ur_params::serializeFlag(os, *tptr); + os << *tptr; os << ")"; } break; - case UR_DEVICE_INFO_QUEUE_ON_DEVICE_PROPERTIES: { - const ur_queue_flags_t *tptr = (const ur_queue_flags_t *)ptr; - if (sizeof(ur_queue_flags_t) > size) { + case UR_DEVICE_INFO_NATIVE_VECTOR_WIDTH_CHAR: { + const uint32_t *tptr = (const uint32_t *)ptr; + if (sizeof(uint32_t) > size) { os << "invalid size (is: " << size - << ", expected: >=" << sizeof(ur_queue_flags_t) << ")"; + << ", expected: >=" << sizeof(uint32_t) << ")"; return; } os << (void *)(tptr) << " ("; - ur_params::serializeFlag(os, *tptr); + os << *tptr; os << ")"; } break; - case UR_DEVICE_INFO_QUEUE_ON_HOST_PROPERTIES: { - const ur_queue_flags_t *tptr = (const ur_queue_flags_t *)ptr; - if (sizeof(ur_queue_flags_t) > size) { + case UR_DEVICE_INFO_NATIVE_VECTOR_WIDTH_SHORT: { + const uint32_t *tptr = (const uint32_t *)ptr; + if (sizeof(uint32_t) > size) { os << "invalid size (is: " << size - << ", expected: >=" << sizeof(ur_queue_flags_t) << ")"; + << ", expected: >=" << sizeof(uint32_t) << ")"; return; } os << (void *)(tptr) << " ("; - ur_params::serializeFlag(os, *tptr); + os << *tptr; os << ")"; } break; - case UR_DEVICE_INFO_BUILT_IN_KERNELS: { - - const char *tptr = (const char *)ptr; - serializePtr(os, tptr); - } break; - - case UR_DEVICE_INFO_PLATFORM: { - const ur_platform_handle_t *tptr = (const ur_platform_handle_t *)ptr; - if (sizeof(ur_platform_handle_t) > size) { + case UR_DEVICE_INFO_NATIVE_VECTOR_WIDTH_INT: { + const uint32_t *tptr = (const uint32_t *)ptr; + if (sizeof(uint32_t) > size) { os << "invalid size (is: " << size - << ", expected: >=" << sizeof(ur_platform_handle_t) << ")"; + << ", expected: >=" << sizeof(uint32_t) << ")"; return; } os << (void *)(tptr) << " ("; - ur_params::serializePtr(os, *tptr); + os << *tptr; os << ")"; } break; - case UR_DEVICE_INFO_REFERENCE_COUNT: { + case UR_DEVICE_INFO_NATIVE_VECTOR_WIDTH_LONG: { const uint32_t *tptr = (const uint32_t *)ptr; if (sizeof(uint32_t) > size) { os << "invalid size (is: " << size @@ -2890,59 +2961,11 @@ inline void serializeTagged(std::ostream &os, const void *ptr, os << ")"; } break; - case UR_DEVICE_INFO_IL_VERSION: { - - const char *tptr = (const char *)ptr; - serializePtr(os, tptr); - } break; - - case UR_DEVICE_INFO_NAME: { - - const char *tptr = (const char *)ptr; - serializePtr(os, tptr); - } break; - - case UR_DEVICE_INFO_VENDOR: { - - const char *tptr = (const char *)ptr; - serializePtr(os, tptr); - } break; - - case UR_DEVICE_INFO_DRIVER_VERSION: { - - const char *tptr = (const char *)ptr; - serializePtr(os, tptr); - } break; - - case UR_DEVICE_INFO_PROFILE: { - - const char *tptr = (const char *)ptr; - serializePtr(os, tptr); - } break; - - case UR_DEVICE_INFO_VERSION: { - - const char *tptr = (const char *)ptr; - serializePtr(os, tptr); - } break; - - case UR_DEVICE_INFO_BACKEND_RUNTIME_VERSION: { - - const char *tptr = (const char *)ptr; - serializePtr(os, tptr); - } break; - - case UR_DEVICE_INFO_EXTENSIONS: { - - const char *tptr = (const char *)ptr; - serializePtr(os, tptr); - } break; - - case UR_DEVICE_INFO_PRINTF_BUFFER_SIZE: { - const size_t *tptr = (const size_t *)ptr; - if (sizeof(size_t) > size) { + case UR_DEVICE_INFO_NATIVE_VECTOR_WIDTH_FLOAT: { + const uint32_t *tptr = (const uint32_t *)ptr; + if (sizeof(uint32_t) > size) { os << "invalid size (is: " << size - << ", expected: >=" << sizeof(size_t) << ")"; + << ", expected: >=" << sizeof(uint32_t) << ")"; return; } os << (void *)(tptr) << " ("; @@ -2952,11 +2975,11 @@ inline void serializeTagged(std::ostream &os, const void *ptr, os << ")"; } break; - case UR_DEVICE_INFO_PREFERRED_INTEROP_USER_SYNC: { - const ur_bool_t *tptr = (const ur_bool_t *)ptr; - if (sizeof(ur_bool_t) > size) { + case UR_DEVICE_INFO_NATIVE_VECTOR_WIDTH_DOUBLE: { + const uint32_t *tptr = (const uint32_t *)ptr; + if (sizeof(uint32_t) > size) { os << "invalid size (is: " << size - << ", expected: >=" << sizeof(ur_bool_t) << ")"; + << ", expected: >=" << sizeof(uint32_t) << ")"; return; } os << (void *)(tptr) << " ("; @@ -2966,36 +2989,35 @@ inline void serializeTagged(std::ostream &os, const void *ptr, os << ")"; } break; - case UR_DEVICE_INFO_PARENT_DEVICE: { - const ur_device_handle_t *tptr = (const ur_device_handle_t *)ptr; - if (sizeof(ur_device_handle_t) > size) { + case UR_DEVICE_INFO_NATIVE_VECTOR_WIDTH_HALF: { + const uint32_t *tptr = (const uint32_t *)ptr; + if (sizeof(uint32_t) > size) { os << "invalid size (is: " << size - << ", expected: >=" << sizeof(ur_device_handle_t) << ")"; + << ", expected: >=" << sizeof(uint32_t) << ")"; return; } os << (void *)(tptr) << " ("; - ur_params::serializePtr(os, *tptr); + os << *tptr; os << ")"; } break; - case UR_DEVICE_INFO_SUPPORTED_PARTITIONS: { + case UR_DEVICE_INFO_MAX_CLOCK_FREQUENCY: { + const uint32_t *tptr = (const uint32_t *)ptr; + if (sizeof(uint32_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(uint32_t) << ")"; + return; + } + os << (void *)(tptr) << " ("; - const ur_device_partition_t *tptr = (const ur_device_partition_t *)ptr; - os << "{"; - size_t nelems = size / sizeof(ur_device_partition_t); - for (size_t i = 0; i < nelems; ++i) { - if (i != 0) { - os << ", "; - } + os << *tptr; - os << tptr[i]; - } - os << "}"; + os << ")"; } break; - case UR_DEVICE_INFO_PARTITION_MAX_SUB_DEVICES: { + case UR_DEVICE_INFO_MEMORY_CLOCK_RATE: { const uint32_t *tptr = (const uint32_t *)ptr; if (sizeof(uint32_t) > size) { os << "invalid size (is: " << size @@ -3009,43 +3031,25 @@ inline void serializeTagged(std::ostream &os, const void *ptr, os << ")"; } break; - case UR_DEVICE_INFO_PARTITION_AFFINITY_DOMAIN: { - const ur_device_affinity_domain_flags_t *tptr = - (const ur_device_affinity_domain_flags_t *)ptr; - if (sizeof(ur_device_affinity_domain_flags_t) > size) { + case UR_DEVICE_INFO_ADDRESS_BITS: { + const uint32_t *tptr = (const uint32_t *)ptr; + if (sizeof(uint32_t) > size) { os << "invalid size (is: " << size - << ", expected: >=" << sizeof(ur_device_affinity_domain_flags_t) - << ")"; + << ", expected: >=" << sizeof(uint32_t) << ")"; return; } os << (void *)(tptr) << " ("; - ur_params::serializeFlag(os, *tptr); + os << *tptr; os << ")"; } break; - case UR_DEVICE_INFO_PARTITION_TYPE: { - - const ur_device_partition_property_t *tptr = - (const ur_device_partition_property_t *)ptr; - os << "{"; - size_t nelems = size / sizeof(ur_device_partition_property_t); - for (size_t i = 0; i < nelems; ++i) { - if (i != 0) { - os << ", "; - } - - os << tptr[i]; - } - os << "}"; - } break; - - case UR_DEVICE_INFO_MAX_NUM_SUB_GROUPS: { - const uint32_t *tptr = (const uint32_t *)ptr; - if (sizeof(uint32_t) > size) { + case UR_DEVICE_INFO_MAX_MEM_ALLOC_SIZE: { + const uint64_t *tptr = (const uint64_t *)ptr; + if (sizeof(uint64_t) > size) { os << "invalid size (is: " << size - << ", expected: >=" << sizeof(uint32_t) << ")"; + << ", expected: >=" << sizeof(uint64_t) << ")"; return; } os << (void *)(tptr) << " ("; @@ -3055,7 +3059,7 @@ inline void serializeTagged(std::ostream &os, const void *ptr, os << ")"; } break; - case UR_DEVICE_INFO_SUB_GROUP_INDEPENDENT_FORWARD_PROGRESS: { + case UR_DEVICE_INFO_IMAGE_SUPPORTED: { const ur_bool_t *tptr = (const ur_bool_t *)ptr; if (sizeof(ur_bool_t) > size) { os << "invalid size (is: " << size @@ -3069,118 +3073,123 @@ inline void serializeTagged(std::ostream &os, const void *ptr, os << ")"; } break; - case UR_DEVICE_INFO_SUB_GROUP_SIZES_INTEL: { - + case UR_DEVICE_INFO_MAX_READ_IMAGE_ARGS: { const uint32_t *tptr = (const uint32_t *)ptr; - os << "{"; - size_t nelems = size / sizeof(uint32_t); - for (size_t i = 0; i < nelems; ++i) { - if (i != 0) { - os << ", "; - } - - os << tptr[i]; + if (sizeof(uint32_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(uint32_t) << ")"; + return; } - os << "}"; + os << (void *)(tptr) << " ("; + + os << *tptr; + + os << ")"; } break; - case UR_DEVICE_INFO_USM_HOST_SUPPORT: { - const ur_device_usm_access_capability_flags_t *tptr = - (const ur_device_usm_access_capability_flags_t *)ptr; - if (sizeof(ur_device_usm_access_capability_flags_t) > size) { - os << "invalid size (is: " << size << ", expected: >=" - << sizeof(ur_device_usm_access_capability_flags_t) << ")"; + case UR_DEVICE_INFO_MAX_WRITE_IMAGE_ARGS: { + const uint32_t *tptr = (const uint32_t *)ptr; + if (sizeof(uint32_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(uint32_t) << ")"; return; } os << (void *)(tptr) << " ("; - ur_params::serializeFlag(os, - *tptr); + os << *tptr; os << ")"; } break; - case UR_DEVICE_INFO_USM_DEVICE_SUPPORT: { - const ur_device_usm_access_capability_flags_t *tptr = - (const ur_device_usm_access_capability_flags_t *)ptr; - if (sizeof(ur_device_usm_access_capability_flags_t) > size) { - os << "invalid size (is: " << size << ", expected: >=" - << sizeof(ur_device_usm_access_capability_flags_t) << ")"; + case UR_DEVICE_INFO_MAX_READ_WRITE_IMAGE_ARGS: { + const uint32_t *tptr = (const uint32_t *)ptr; + if (sizeof(uint32_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(uint32_t) << ")"; return; } os << (void *)(tptr) << " ("; - ur_params::serializeFlag(os, - *tptr); + os << *tptr; os << ")"; } break; - case UR_DEVICE_INFO_USM_SINGLE_SHARED_SUPPORT: { - const ur_device_usm_access_capability_flags_t *tptr = - (const ur_device_usm_access_capability_flags_t *)ptr; - if (sizeof(ur_device_usm_access_capability_flags_t) > size) { - os << "invalid size (is: " << size << ", expected: >=" - << sizeof(ur_device_usm_access_capability_flags_t) << ")"; + case UR_DEVICE_INFO_IMAGE2D_MAX_WIDTH: { + const size_t *tptr = (const size_t *)ptr; + if (sizeof(size_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(size_t) << ")"; return; } os << (void *)(tptr) << " ("; - ur_params::serializeFlag(os, - *tptr); + os << *tptr; os << ")"; } break; - case UR_DEVICE_INFO_USM_CROSS_SHARED_SUPPORT: { - const ur_device_usm_access_capability_flags_t *tptr = - (const ur_device_usm_access_capability_flags_t *)ptr; - if (sizeof(ur_device_usm_access_capability_flags_t) > size) { - os << "invalid size (is: " << size << ", expected: >=" - << sizeof(ur_device_usm_access_capability_flags_t) << ")"; + case UR_DEVICE_INFO_IMAGE2D_MAX_HEIGHT: { + const size_t *tptr = (const size_t *)ptr; + if (sizeof(size_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(size_t) << ")"; return; } os << (void *)(tptr) << " ("; - ur_params::serializeFlag(os, - *tptr); + os << *tptr; os << ")"; } break; - case UR_DEVICE_INFO_USM_SYSTEM_SHARED_SUPPORT: { - const ur_device_usm_access_capability_flags_t *tptr = - (const ur_device_usm_access_capability_flags_t *)ptr; - if (sizeof(ur_device_usm_access_capability_flags_t) > size) { - os << "invalid size (is: " << size << ", expected: >=" - << sizeof(ur_device_usm_access_capability_flags_t) << ")"; + case UR_DEVICE_INFO_IMAGE3D_MAX_WIDTH: { + const size_t *tptr = (const size_t *)ptr; + if (sizeof(size_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(size_t) << ")"; return; } os << (void *)(tptr) << " ("; - ur_params::serializeFlag(os, - *tptr); + os << *tptr; os << ")"; } break; - case UR_DEVICE_INFO_UUID: { + case UR_DEVICE_INFO_IMAGE3D_MAX_HEIGHT: { + const size_t *tptr = (const size_t *)ptr; + if (sizeof(size_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(size_t) << ")"; + return; + } + os << (void *)(tptr) << " ("; - const char *tptr = (const char *)ptr; - serializePtr(os, tptr); + os << *tptr; + + os << ")"; } break; - case UR_DEVICE_INFO_PCI_ADDRESS: { + case UR_DEVICE_INFO_IMAGE3D_MAX_DEPTH: { + const size_t *tptr = (const size_t *)ptr; + if (sizeof(size_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(size_t) << ")"; + return; + } + os << (void *)(tptr) << " ("; - const char *tptr = (const char *)ptr; - serializePtr(os, tptr); + os << *tptr; + + os << ")"; } break; - case UR_DEVICE_INFO_GPU_EU_COUNT: { - const uint32_t *tptr = (const uint32_t *)ptr; - if (sizeof(uint32_t) > size) { + case UR_DEVICE_INFO_IMAGE_MAX_BUFFER_SIZE: { + const size_t *tptr = (const size_t *)ptr; + if (sizeof(size_t) > size) { os << "invalid size (is: " << size - << ", expected: >=" << sizeof(uint32_t) << ")"; + << ", expected: >=" << sizeof(size_t) << ")"; return; } os << (void *)(tptr) << " ("; @@ -3190,11 +3199,11 @@ inline void serializeTagged(std::ostream &os, const void *ptr, os << ")"; } break; - case UR_DEVICE_INFO_GPU_EU_SIMD_WIDTH: { - const uint32_t *tptr = (const uint32_t *)ptr; - if (sizeof(uint32_t) > size) { + case UR_DEVICE_INFO_IMAGE_MAX_ARRAY_SIZE: { + const size_t *tptr = (const size_t *)ptr; + if (sizeof(size_t) > size) { os << "invalid size (is: " << size - << ", expected: >=" << sizeof(uint32_t) << ")"; + << ", expected: >=" << sizeof(size_t) << ")"; return; } os << (void *)(tptr) << " ("; @@ -3204,7 +3213,7 @@ inline void serializeTagged(std::ostream &os, const void *ptr, os << ")"; } break; - case UR_DEVICE_INFO_GPU_EU_SLICES: { + case UR_DEVICE_INFO_MAX_SAMPLERS: { const uint32_t *tptr = (const uint32_t *)ptr; if (sizeof(uint32_t) > size) { os << "invalid size (is: " << size @@ -3218,11 +3227,11 @@ inline void serializeTagged(std::ostream &os, const void *ptr, os << ")"; } break; - case UR_DEVICE_INFO_GPU_EU_COUNT_PER_SUBSLICE: { - const uint32_t *tptr = (const uint32_t *)ptr; - if (sizeof(uint32_t) > size) { + case UR_DEVICE_INFO_MAX_PARAMETER_SIZE: { + const size_t *tptr = (const size_t *)ptr; + if (sizeof(size_t) > size) { os << "invalid size (is: " << size - << ", expected: >=" << sizeof(uint32_t) << ")"; + << ", expected: >=" << sizeof(size_t) << ")"; return; } os << (void *)(tptr) << " ("; @@ -3232,7 +3241,7 @@ inline void serializeTagged(std::ostream &os, const void *ptr, os << ")"; } break; - case UR_DEVICE_INFO_GPU_SUBSLICES_PER_SLICE: { + case UR_DEVICE_INFO_MEM_BASE_ADDR_ALIGN: { const uint32_t *tptr = (const uint32_t *)ptr; if (sizeof(uint32_t) > size) { os << "invalid size (is: " << size @@ -3246,11 +3255,12 @@ inline void serializeTagged(std::ostream &os, const void *ptr, os << ")"; } break; - case UR_DEVICE_INFO_GPU_HW_THREADS_PER_EU: { - const uint32_t *tptr = (const uint32_t *)ptr; - if (sizeof(uint32_t) > size) { + case UR_DEVICE_INFO_GLOBAL_MEM_CACHE_TYPE: { + const ur_device_mem_cache_type_t *tptr = + (const ur_device_mem_cache_type_t *)ptr; + if (sizeof(ur_device_mem_cache_type_t) > size) { os << "invalid size (is: " << size - << ", expected: >=" << sizeof(uint32_t) << ")"; + << ", expected: >=" << sizeof(ur_device_mem_cache_type_t) << ")"; return; } os << (void *)(tptr) << " ("; @@ -3260,7 +3270,7 @@ inline void serializeTagged(std::ostream &os, const void *ptr, os << ")"; } break; - case UR_DEVICE_INFO_MAX_MEMORY_BANDWIDTH: { + case UR_DEVICE_INFO_GLOBAL_MEM_CACHELINE_SIZE: { const uint32_t *tptr = (const uint32_t *)ptr; if (sizeof(uint32_t) > size) { os << "invalid size (is: " << size @@ -3274,11 +3284,11 @@ inline void serializeTagged(std::ostream &os, const void *ptr, os << ")"; } break; - case UR_DEVICE_INFO_IMAGE_SRGB: { - const ur_bool_t *tptr = (const ur_bool_t *)ptr; - if (sizeof(ur_bool_t) > size) { + case UR_DEVICE_INFO_GLOBAL_MEM_CACHE_SIZE: { + const uint64_t *tptr = (const uint64_t *)ptr; + if (sizeof(uint64_t) > size) { os << "invalid size (is: " << size - << ", expected: >=" << sizeof(ur_bool_t) << ")"; + << ", expected: >=" << sizeof(uint64_t) << ")"; return; } os << (void *)(tptr) << " ("; @@ -3288,11 +3298,11 @@ inline void serializeTagged(std::ostream &os, const void *ptr, os << ")"; } break; - case UR_DEVICE_INFO_BUILD_ON_SUBDEVICE: { - const ur_bool_t *tptr = (const ur_bool_t *)ptr; - if (sizeof(ur_bool_t) > size) { + case UR_DEVICE_INFO_GLOBAL_MEM_SIZE: { + const uint64_t *tptr = (const uint64_t *)ptr; + if (sizeof(uint64_t) > size) { os << "invalid size (is: " << size - << ", expected: >=" << sizeof(ur_bool_t) << ")"; + << ", expected: >=" << sizeof(uint64_t) << ")"; return; } os << (void *)(tptr) << " ("; @@ -3302,11 +3312,11 @@ inline void serializeTagged(std::ostream &os, const void *ptr, os << ")"; } break; - case UR_DEVICE_INFO_ATOMIC_64: { - const ur_bool_t *tptr = (const ur_bool_t *)ptr; - if (sizeof(ur_bool_t) > size) { + case UR_DEVICE_INFO_GLOBAL_MEM_FREE: { + const uint64_t *tptr = (const uint64_t *)ptr; + if (sizeof(uint64_t) > size) { os << "invalid size (is: " << size - << ", expected: >=" << sizeof(ur_bool_t) << ")"; + << ", expected: >=" << sizeof(uint64_t) << ")"; return; } os << (void *)(tptr) << " ("; @@ -3316,71 +3326,64 @@ inline void serializeTagged(std::ostream &os, const void *ptr, os << ")"; } break; - case UR_DEVICE_INFO_ATOMIC_MEMORY_ORDER_CAPABILITIES: { - const ur_memory_order_capability_flags_t *tptr = - (const ur_memory_order_capability_flags_t *)ptr; - if (sizeof(ur_memory_order_capability_flags_t) > size) { + case UR_DEVICE_INFO_MAX_CONSTANT_BUFFER_SIZE: { + const uint64_t *tptr = (const uint64_t *)ptr; + if (sizeof(uint64_t) > size) { os << "invalid size (is: " << size - << ", expected: >=" << sizeof(ur_memory_order_capability_flags_t) - << ")"; + << ", expected: >=" << sizeof(uint64_t) << ")"; return; } os << (void *)(tptr) << " ("; - ur_params::serializeFlag(os, *tptr); + os << *tptr; os << ")"; } break; - case UR_DEVICE_INFO_ATOMIC_MEMORY_SCOPE_CAPABILITIES: { - const ur_memory_scope_capability_flags_t *tptr = - (const ur_memory_scope_capability_flags_t *)ptr; - if (sizeof(ur_memory_scope_capability_flags_t) > size) { + case UR_DEVICE_INFO_MAX_CONSTANT_ARGS: { + const uint32_t *tptr = (const uint32_t *)ptr; + if (sizeof(uint32_t) > size) { os << "invalid size (is: " << size - << ", expected: >=" << sizeof(ur_memory_scope_capability_flags_t) - << ")"; + << ", expected: >=" << sizeof(uint32_t) << ")"; return; } os << (void *)(tptr) << " ("; - ur_params::serializeFlag(os, *tptr); + os << *tptr; os << ")"; } break; - case UR_DEVICE_INFO_ATOMIC_FENCE_ORDER_CAPABILITIES: { - const ur_memory_order_capability_flags_t *tptr = - (const ur_memory_order_capability_flags_t *)ptr; - if (sizeof(ur_memory_order_capability_flags_t) > size) { + case UR_DEVICE_INFO_LOCAL_MEM_TYPE: { + const ur_device_local_mem_type_t *tptr = + (const ur_device_local_mem_type_t *)ptr; + if (sizeof(ur_device_local_mem_type_t) > size) { os << "invalid size (is: " << size - << ", expected: >=" << sizeof(ur_memory_order_capability_flags_t) - << ")"; + << ", expected: >=" << sizeof(ur_device_local_mem_type_t) << ")"; return; } os << (void *)(tptr) << " ("; - ur_params::serializeFlag(os, *tptr); + os << *tptr; os << ")"; } break; - case UR_DEVICE_INFO_ATOMIC_FENCE_SCOPE_CAPABILITIES: { - const ur_memory_scope_capability_flags_t *tptr = - (const ur_memory_scope_capability_flags_t *)ptr; - if (sizeof(ur_memory_scope_capability_flags_t) > size) { + case UR_DEVICE_INFO_LOCAL_MEM_SIZE: { + const uint64_t *tptr = (const uint64_t *)ptr; + if (sizeof(uint64_t) > size) { os << "invalid size (is: " << size - << ", expected: >=" << sizeof(ur_memory_scope_capability_flags_t) - << ")"; + << ", expected: >=" << sizeof(uint64_t) << ")"; return; } os << (void *)(tptr) << " ("; - ur_params::serializeFlag(os, *tptr); + os << *tptr; os << ")"; } break; - case UR_DEVICE_INFO_BFLOAT16: { + case UR_DEVICE_INFO_ERROR_CORRECTION_SUPPORT: { const ur_bool_t *tptr = (const ur_bool_t *)ptr; if (sizeof(ur_bool_t) > size) { os << "invalid size (is: " << size @@ -3394,21 +3397,7 @@ inline void serializeTagged(std::ostream &os, const void *ptr, os << ")"; } break; - case UR_DEVICE_INFO_MAX_COMPUTE_QUEUE_INDICES: { - const uint32_t *tptr = (const uint32_t *)ptr; - if (sizeof(uint32_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(uint32_t) << ")"; - return; - } - os << (void *)(tptr) << " ("; - - os << *tptr; - - os << ")"; - } break; - - case UR_DEVICE_INFO_KERNEL_SET_SPECIALIZATION_CONSTANTS: { + case UR_DEVICE_INFO_HOST_UNIFIED_MEMORY: { const ur_bool_t *tptr = (const ur_bool_t *)ptr; if (sizeof(ur_bool_t) > size) { os << "invalid size (is: " << size @@ -3422,11 +3411,11 @@ inline void serializeTagged(std::ostream &os, const void *ptr, os << ")"; } break; - case UR_DEVICE_INFO_MEMORY_BUS_WIDTH: { - const uint32_t *tptr = (const uint32_t *)ptr; - if (sizeof(uint32_t) > size) { + case UR_DEVICE_INFO_PROFILING_TIMER_RESOLUTION: { + const size_t *tptr = (const size_t *)ptr; + if (sizeof(size_t) > size) { os << "invalid size (is: " << size - << ", expected: >=" << sizeof(uint32_t) << ")"; + << ", expected: >=" << sizeof(size_t) << ")"; return; } os << (void *)(tptr) << " ("; @@ -3436,22 +3425,7 @@ inline void serializeTagged(std::ostream &os, const void *ptr, os << ")"; } break; - case UR_DEVICE_INFO_MAX_WORK_GROUPS_3D: { - - const size_t *tptr = (const size_t *)ptr; - os << "{"; - size_t nelems = size / sizeof(size_t); - for (size_t i = 0; i < nelems; ++i) { - if (i != 0) { - os << ", "; - } - - os << tptr[i]; - } - os << "}"; - } break; - - case UR_DEVICE_INFO_ASYNC_BARRIER: { + case UR_DEVICE_INFO_ENDIAN_LITTLE: { const ur_bool_t *tptr = (const ur_bool_t *)ptr; if (sizeof(ur_bool_t) > size) { os << "invalid size (is: " << size @@ -3465,7 +3439,7 @@ inline void serializeTagged(std::ostream &os, const void *ptr, os << ")"; } break; - case UR_DEVICE_INFO_MEM_CHANNEL_SUPPORT: { + case UR_DEVICE_INFO_AVAILABLE: { const ur_bool_t *tptr = (const ur_bool_t *)ptr; if (sizeof(ur_bool_t) > size) { os << "invalid size (is: " << size @@ -3479,7 +3453,7 @@ inline void serializeTagged(std::ostream &os, const void *ptr, os << ")"; } break; - case UR_DEVICE_INFO_HOST_PIPE_READ_WRITE_SUPPORTED: { + case UR_DEVICE_INFO_COMPILER_AVAILABLE: { const ur_bool_t *tptr = (const ur_bool_t *)ptr; if (sizeof(ur_bool_t) > size) { os << "invalid size (is: " << size @@ -3493,11 +3467,11 @@ inline void serializeTagged(std::ostream &os, const void *ptr, os << ")"; } break; - case UR_DEVICE_INFO_MAX_REGISTERS_PER_WORK_GROUP: { - const uint32_t *tptr = (const uint32_t *)ptr; - if (sizeof(uint32_t) > size) { + case UR_DEVICE_INFO_LINKER_AVAILABLE: { + const ur_bool_t *tptr = (const ur_bool_t *)ptr; + if (sizeof(ur_bool_t) > size) { os << "invalid size (is: " << size - << ", expected: >=" << sizeof(uint32_t) << ")"; + << ", expected: >=" << sizeof(ur_bool_t) << ")"; return; } os << (void *)(tptr) << " ("; @@ -3507,63 +3481,71 @@ inline void serializeTagged(std::ostream &os, const void *ptr, os << ")"; } break; - case UR_DEVICE_INFO_IP_VERSION: { - const uint32_t *tptr = (const uint32_t *)ptr; - if (sizeof(uint32_t) > size) { + case UR_DEVICE_INFO_EXECUTION_CAPABILITIES: { + const ur_device_exec_capability_flags_t *tptr = + (const ur_device_exec_capability_flags_t *)ptr; + if (sizeof(ur_device_exec_capability_flags_t) > size) { os << "invalid size (is: " << size - << ", expected: >=" << sizeof(uint32_t) << ")"; + << ", expected: >=" << sizeof(ur_device_exec_capability_flags_t) + << ")"; return; } os << (void *)(tptr) << " ("; - os << *tptr; + ur_params::serializeFlag(os, *tptr); os << ")"; } break; - case UR_DEVICE_INFO_BINDLESS_IMAGES_SUPPORT_EXP: { - const ur_bool_t *tptr = (const ur_bool_t *)ptr; - if (sizeof(ur_bool_t) > size) { + case UR_DEVICE_INFO_QUEUE_ON_DEVICE_PROPERTIES: { + const ur_queue_flags_t *tptr = (const ur_queue_flags_t *)ptr; + if (sizeof(ur_queue_flags_t) > size) { os << "invalid size (is: " << size - << ", expected: >=" << sizeof(ur_bool_t) << ")"; + << ", expected: >=" << sizeof(ur_queue_flags_t) << ")"; return; } os << (void *)(tptr) << " ("; - os << *tptr; + ur_params::serializeFlag(os, *tptr); os << ")"; } break; - case UR_DEVICE_INFO_BINDLESS_IMAGES_1D_USM_SUPPORT_EXP: { - const ur_bool_t *tptr = (const ur_bool_t *)ptr; - if (sizeof(ur_bool_t) > size) { + case UR_DEVICE_INFO_QUEUE_ON_HOST_PROPERTIES: { + const ur_queue_flags_t *tptr = (const ur_queue_flags_t *)ptr; + if (sizeof(ur_queue_flags_t) > size) { os << "invalid size (is: " << size - << ", expected: >=" << sizeof(ur_bool_t) << ")"; + << ", expected: >=" << sizeof(ur_queue_flags_t) << ")"; return; } os << (void *)(tptr) << " ("; - os << *tptr; + ur_params::serializeFlag(os, *tptr); os << ")"; } break; - case UR_DEVICE_INFO_BINDLESS_IMAGES_2D_USM_SUPPORT_EXP: { - const ur_bool_t *tptr = (const ur_bool_t *)ptr; - if (sizeof(ur_bool_t) > size) { + case UR_DEVICE_INFO_BUILT_IN_KERNELS: { + + const char *tptr = (const char *)ptr; + serializePtr(os, tptr); + } break; + + case UR_DEVICE_INFO_PLATFORM: { + const ur_platform_handle_t *tptr = (const ur_platform_handle_t *)ptr; + if (sizeof(ur_platform_handle_t) > size) { os << "invalid size (is: " << size - << ", expected: >=" << sizeof(ur_bool_t) << ")"; + << ", expected: >=" << sizeof(ur_platform_handle_t) << ")"; return; } os << (void *)(tptr) << " ("; - os << *tptr; + ur_params::serializePtr(os, *tptr); os << ")"; } break; - case UR_DEVICE_INFO_IMAGE_PITCH_ALIGN_EXP: { + case UR_DEVICE_INFO_REFERENCE_COUNT: { const uint32_t *tptr = (const uint32_t *)ptr; if (sizeof(uint32_t) > size) { os << "invalid size (is: " << size @@ -3577,35 +3559,55 @@ inline void serializeTagged(std::ostream &os, const void *ptr, os << ")"; } break; - case UR_DEVICE_INFO_MAX_IMAGE_LINEAR_WIDTH_EXP: { - const size_t *tptr = (const size_t *)ptr; - if (sizeof(size_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(size_t) << ")"; - return; - } - os << (void *)(tptr) << " ("; + case UR_DEVICE_INFO_IL_VERSION: { - os << *tptr; + const char *tptr = (const char *)ptr; + serializePtr(os, tptr); + } break; - os << ")"; + case UR_DEVICE_INFO_NAME: { + + const char *tptr = (const char *)ptr; + serializePtr(os, tptr); } break; - case UR_DEVICE_INFO_MAX_IMAGE_LINEAR_HEIGHT_EXP: { - const size_t *tptr = (const size_t *)ptr; - if (sizeof(size_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(size_t) << ")"; - return; - } - os << (void *)(tptr) << " ("; + case UR_DEVICE_INFO_VENDOR: { - os << *tptr; + const char *tptr = (const char *)ptr; + serializePtr(os, tptr); + } break; - os << ")"; + case UR_DEVICE_INFO_DRIVER_VERSION: { + + const char *tptr = (const char *)ptr; + serializePtr(os, tptr); } break; - case UR_DEVICE_INFO_MAX_IMAGE_LINEAR_PITCH_EXP: { + case UR_DEVICE_INFO_PROFILE: { + + const char *tptr = (const char *)ptr; + serializePtr(os, tptr); + } break; + + case UR_DEVICE_INFO_VERSION: { + + const char *tptr = (const char *)ptr; + serializePtr(os, tptr); + } break; + + case UR_DEVICE_INFO_BACKEND_RUNTIME_VERSION: { + + const char *tptr = (const char *)ptr; + serializePtr(os, tptr); + } break; + + case UR_DEVICE_INFO_EXTENSIONS: { + + const char *tptr = (const char *)ptr; + serializePtr(os, tptr); + } break; + + case UR_DEVICE_INFO_PRINTF_BUFFER_SIZE: { const size_t *tptr = (const size_t *)ptr; if (sizeof(size_t) > size) { os << "invalid size (is: " << size @@ -3619,7 +3621,7 @@ inline void serializeTagged(std::ostream &os, const void *ptr, os << ")"; } break; - case UR_DEVICE_INFO_MIPMAP_SUPPORT_EXP: { + case UR_DEVICE_INFO_PREFERRED_INTEROP_USER_SYNC: { const ur_bool_t *tptr = (const ur_bool_t *)ptr; if (sizeof(ur_bool_t) > size) { os << "invalid size (is: " << size @@ -3633,21 +3635,36 @@ inline void serializeTagged(std::ostream &os, const void *ptr, os << ")"; } break; - case UR_DEVICE_INFO_MIPMAP_ANISOTROPY_SUPPORT_EXP: { - const ur_bool_t *tptr = (const ur_bool_t *)ptr; - if (sizeof(ur_bool_t) > size) { + case UR_DEVICE_INFO_PARENT_DEVICE: { + const ur_device_handle_t *tptr = (const ur_device_handle_t *)ptr; + if (sizeof(ur_device_handle_t) > size) { os << "invalid size (is: " << size - << ", expected: >=" << sizeof(ur_bool_t) << ")"; + << ", expected: >=" << sizeof(ur_device_handle_t) << ")"; return; } os << (void *)(tptr) << " ("; - os << *tptr; + ur_params::serializePtr(os, *tptr); os << ")"; } break; - case UR_DEVICE_INFO_MIPMAP_MAX_ANISOTROPY_EXP: { + case UR_DEVICE_INFO_SUPPORTED_PARTITIONS: { + + const ur_device_partition_t *tptr = (const ur_device_partition_t *)ptr; + os << "{"; + size_t nelems = size / sizeof(ur_device_partition_t); + for (size_t i = 0; i < nelems; ++i) { + if (i != 0) { + os << ", "; + } + + os << tptr[i]; + } + os << "}"; + } break; + + case UR_DEVICE_INFO_PARTITION_MAX_SUB_DEVICES: { const uint32_t *tptr = (const uint32_t *)ptr; if (sizeof(uint32_t) > size) { os << "invalid size (is: " << size @@ -3661,39 +3678,43 @@ inline void serializeTagged(std::ostream &os, const void *ptr, os << ")"; } break; - case UR_DEVICE_INFO_MIPMAP_LEVEL_REFERENCE_SUPPORT_EXP: { - const ur_bool_t *tptr = (const ur_bool_t *)ptr; - if (sizeof(ur_bool_t) > size) { + case UR_DEVICE_INFO_PARTITION_AFFINITY_DOMAIN: { + const ur_device_affinity_domain_flags_t *tptr = + (const ur_device_affinity_domain_flags_t *)ptr; + if (sizeof(ur_device_affinity_domain_flags_t) > size) { os << "invalid size (is: " << size - << ", expected: >=" << sizeof(ur_bool_t) << ")"; + << ", expected: >=" << sizeof(ur_device_affinity_domain_flags_t) + << ")"; return; } os << (void *)(tptr) << " ("; - os << *tptr; + ur_params::serializeFlag(os, *tptr); os << ")"; } break; - case UR_DEVICE_INFO_INTEROP_MEMORY_IMPORT_SUPPORT_EXP: { - const ur_bool_t *tptr = (const ur_bool_t *)ptr; - if (sizeof(ur_bool_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(ur_bool_t) << ")"; - return; - } - os << (void *)(tptr) << " ("; + case UR_DEVICE_INFO_PARTITION_TYPE: { - os << *tptr; + const ur_device_partition_property_t *tptr = + (const ur_device_partition_property_t *)ptr; + os << "{"; + size_t nelems = size / sizeof(ur_device_partition_property_t); + for (size_t i = 0; i < nelems; ++i) { + if (i != 0) { + os << ", "; + } - os << ")"; + os << tptr[i]; + } + os << "}"; } break; - case UR_DEVICE_INFO_INTEROP_MEMORY_EXPORT_SUPPORT_EXP: { - const ur_bool_t *tptr = (const ur_bool_t *)ptr; - if (sizeof(ur_bool_t) > size) { + case UR_DEVICE_INFO_MAX_NUM_SUB_GROUPS: { + const uint32_t *tptr = (const uint32_t *)ptr; + if (sizeof(uint32_t) > size) { os << "invalid size (is: " << size - << ", expected: >=" << sizeof(ur_bool_t) << ")"; + << ", expected: >=" << sizeof(uint32_t) << ")"; return; } os << (void *)(tptr) << " ("; @@ -3703,7 +3724,7 @@ inline void serializeTagged(std::ostream &os, const void *ptr, os << ")"; } break; - case UR_DEVICE_INFO_INTEROP_SEMAPHORE_IMPORT_SUPPORT_EXP: { + case UR_DEVICE_INFO_SUB_GROUP_INDEPENDENT_FORWARD_PROGRESS: { const ur_bool_t *tptr = (const ur_bool_t *)ptr; if (sizeof(ur_bool_t) > size) { os << "invalid size (is: " << size @@ -3717,416 +3738,699 @@ inline void serializeTagged(std::ostream &os, const void *ptr, os << ")"; } break; - case UR_DEVICE_INFO_INTEROP_SEMAPHORE_EXPORT_SUPPORT_EXP: { - const ur_bool_t *tptr = (const ur_bool_t *)ptr; - if (sizeof(ur_bool_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(ur_bool_t) << ")"; - return; - } - os << (void *)(tptr) << " ("; + case UR_DEVICE_INFO_SUB_GROUP_SIZES_INTEL: { - os << *tptr; + const uint32_t *tptr = (const uint32_t *)ptr; + os << "{"; + size_t nelems = size / sizeof(uint32_t); + for (size_t i = 0; i < nelems; ++i) { + if (i != 0) { + os << ", "; + } - os << ")"; - } break; - default: - os << "unknown enumerator"; - break; - } -} -} // namespace ur_params -inline std::ostream &operator<<(std::ostream &os, - enum ur_device_affinity_domain_flag_t value) { - switch (value) { - - case UR_DEVICE_AFFINITY_DOMAIN_FLAG_NUMA: - os << "UR_DEVICE_AFFINITY_DOMAIN_FLAG_NUMA"; - break; + os << tptr[i]; + } + os << "}"; + } break; - case UR_DEVICE_AFFINITY_DOMAIN_FLAG_L4_CACHE: - os << "UR_DEVICE_AFFINITY_DOMAIN_FLAG_L4_CACHE"; - break; + case UR_DEVICE_INFO_USM_HOST_SUPPORT: { + const ur_device_usm_access_capability_flags_t *tptr = + (const ur_device_usm_access_capability_flags_t *)ptr; + if (sizeof(ur_device_usm_access_capability_flags_t) > size) { + os << "invalid size (is: " << size << ", expected: >=" + << sizeof(ur_device_usm_access_capability_flags_t) << ")"; + return; + } + os << (void *)(tptr) << " ("; - case UR_DEVICE_AFFINITY_DOMAIN_FLAG_L3_CACHE: - os << "UR_DEVICE_AFFINITY_DOMAIN_FLAG_L3_CACHE"; - break; + ur_params::serializeFlag(os, + *tptr); - case UR_DEVICE_AFFINITY_DOMAIN_FLAG_L2_CACHE: - os << "UR_DEVICE_AFFINITY_DOMAIN_FLAG_L2_CACHE"; - break; + os << ")"; + } break; - case UR_DEVICE_AFFINITY_DOMAIN_FLAG_L1_CACHE: - os << "UR_DEVICE_AFFINITY_DOMAIN_FLAG_L1_CACHE"; - break; + case UR_DEVICE_INFO_USM_DEVICE_SUPPORT: { + const ur_device_usm_access_capability_flags_t *tptr = + (const ur_device_usm_access_capability_flags_t *)ptr; + if (sizeof(ur_device_usm_access_capability_flags_t) > size) { + os << "invalid size (is: " << size << ", expected: >=" + << sizeof(ur_device_usm_access_capability_flags_t) << ")"; + return; + } + os << (void *)(tptr) << " ("; - case UR_DEVICE_AFFINITY_DOMAIN_FLAG_NEXT_PARTITIONABLE: - os << "UR_DEVICE_AFFINITY_DOMAIN_FLAG_NEXT_PARTITIONABLE"; - break; - default: - os << "unknown enumerator"; - break; - } - return os; -} -namespace ur_params { + ur_params::serializeFlag(os, + *tptr); -template <> -inline void serializeFlag(std::ostream &os, - uint32_t flag) { - uint32_t val = flag; - bool first = true; + os << ")"; + } break; - if ((val & UR_DEVICE_AFFINITY_DOMAIN_FLAG_NUMA) == - (uint32_t)UR_DEVICE_AFFINITY_DOMAIN_FLAG_NUMA) { - val ^= (uint32_t)UR_DEVICE_AFFINITY_DOMAIN_FLAG_NUMA; - if (!first) { - os << " | "; - } else { - first = false; + case UR_DEVICE_INFO_USM_SINGLE_SHARED_SUPPORT: { + const ur_device_usm_access_capability_flags_t *tptr = + (const ur_device_usm_access_capability_flags_t *)ptr; + if (sizeof(ur_device_usm_access_capability_flags_t) > size) { + os << "invalid size (is: " << size << ", expected: >=" + << sizeof(ur_device_usm_access_capability_flags_t) << ")"; + return; } - os << UR_DEVICE_AFFINITY_DOMAIN_FLAG_NUMA; - } + os << (void *)(tptr) << " ("; - if ((val & UR_DEVICE_AFFINITY_DOMAIN_FLAG_L4_CACHE) == - (uint32_t)UR_DEVICE_AFFINITY_DOMAIN_FLAG_L4_CACHE) { - val ^= (uint32_t)UR_DEVICE_AFFINITY_DOMAIN_FLAG_L4_CACHE; - if (!first) { - os << " | "; - } else { - first = false; - } - os << UR_DEVICE_AFFINITY_DOMAIN_FLAG_L4_CACHE; - } + ur_params::serializeFlag(os, + *tptr); - if ((val & UR_DEVICE_AFFINITY_DOMAIN_FLAG_L3_CACHE) == - (uint32_t)UR_DEVICE_AFFINITY_DOMAIN_FLAG_L3_CACHE) { - val ^= (uint32_t)UR_DEVICE_AFFINITY_DOMAIN_FLAG_L3_CACHE; - if (!first) { - os << " | "; - } else { - first = false; - } - os << UR_DEVICE_AFFINITY_DOMAIN_FLAG_L3_CACHE; - } + os << ")"; + } break; - if ((val & UR_DEVICE_AFFINITY_DOMAIN_FLAG_L2_CACHE) == - (uint32_t)UR_DEVICE_AFFINITY_DOMAIN_FLAG_L2_CACHE) { - val ^= (uint32_t)UR_DEVICE_AFFINITY_DOMAIN_FLAG_L2_CACHE; - if (!first) { - os << " | "; - } else { - first = false; + case UR_DEVICE_INFO_USM_CROSS_SHARED_SUPPORT: { + const ur_device_usm_access_capability_flags_t *tptr = + (const ur_device_usm_access_capability_flags_t *)ptr; + if (sizeof(ur_device_usm_access_capability_flags_t) > size) { + os << "invalid size (is: " << size << ", expected: >=" + << sizeof(ur_device_usm_access_capability_flags_t) << ")"; + return; } - os << UR_DEVICE_AFFINITY_DOMAIN_FLAG_L2_CACHE; - } + os << (void *)(tptr) << " ("; - if ((val & UR_DEVICE_AFFINITY_DOMAIN_FLAG_L1_CACHE) == - (uint32_t)UR_DEVICE_AFFINITY_DOMAIN_FLAG_L1_CACHE) { - val ^= (uint32_t)UR_DEVICE_AFFINITY_DOMAIN_FLAG_L1_CACHE; - if (!first) { - os << " | "; - } else { - first = false; - } - os << UR_DEVICE_AFFINITY_DOMAIN_FLAG_L1_CACHE; - } + ur_params::serializeFlag(os, + *tptr); - if ((val & UR_DEVICE_AFFINITY_DOMAIN_FLAG_NEXT_PARTITIONABLE) == - (uint32_t)UR_DEVICE_AFFINITY_DOMAIN_FLAG_NEXT_PARTITIONABLE) { - val ^= (uint32_t)UR_DEVICE_AFFINITY_DOMAIN_FLAG_NEXT_PARTITIONABLE; - if (!first) { - os << " | "; - } else { - first = false; - } - os << UR_DEVICE_AFFINITY_DOMAIN_FLAG_NEXT_PARTITIONABLE; - } - if (val != 0) { - std::bitset<32> bits(val); - if (!first) { - os << " | "; + os << ")"; + } break; + + case UR_DEVICE_INFO_USM_SYSTEM_SHARED_SUPPORT: { + const ur_device_usm_access_capability_flags_t *tptr = + (const ur_device_usm_access_capability_flags_t *)ptr; + if (sizeof(ur_device_usm_access_capability_flags_t) > size) { + os << "invalid size (is: " << size << ", expected: >=" + << sizeof(ur_device_usm_access_capability_flags_t) << ")"; + return; } - os << "unknown bit flags " << bits; - } else if (first) { - os << "0"; - } -} -} // namespace ur_params -inline std::ostream &operator<<(std::ostream &os, - enum ur_device_partition_t value) { - switch (value) { + os << (void *)(tptr) << " ("; - case UR_DEVICE_PARTITION_EQUALLY: - os << "UR_DEVICE_PARTITION_EQUALLY"; - break; + ur_params::serializeFlag(os, + *tptr); - case UR_DEVICE_PARTITION_BY_COUNTS: - os << "UR_DEVICE_PARTITION_BY_COUNTS"; - break; + os << ")"; + } break; - case UR_DEVICE_PARTITION_BY_AFFINITY_DOMAIN: - os << "UR_DEVICE_PARTITION_BY_AFFINITY_DOMAIN"; - break; + case UR_DEVICE_INFO_UUID: { - case UR_DEVICE_PARTITION_BY_CSLICE: - os << "UR_DEVICE_PARTITION_BY_CSLICE"; - break; - default: - os << "unknown enumerator"; - break; - } - return os; -} -inline std::ostream & -operator<<(std::ostream &os, const union ur_device_partition_value_t params) { - os << "(union ur_device_partition_value_t){"; + const char *tptr = (const char *)ptr; + serializePtr(os, tptr); + } break; - os << ".equally = "; + case UR_DEVICE_INFO_PCI_ADDRESS: { - os << (params.equally); + const char *tptr = (const char *)ptr; + serializePtr(os, tptr); + } break; - os << ", "; - os << ".count = "; + case UR_DEVICE_INFO_GPU_EU_COUNT: { + const uint32_t *tptr = (const uint32_t *)ptr; + if (sizeof(uint32_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(uint32_t) << ")"; + return; + } + os << (void *)(tptr) << " ("; - os << (params.count); + os << *tptr; - os << ", "; - os << ".affinity_domain = "; + os << ")"; + } break; - ur_params::serializeFlag( - os, (params.affinity_domain)); + case UR_DEVICE_INFO_GPU_EU_SIMD_WIDTH: { + const uint32_t *tptr = (const uint32_t *)ptr; + if (sizeof(uint32_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(uint32_t) << ")"; + return; + } + os << (void *)(tptr) << " ("; - os << "}"; - return os; -} -inline std::ostream & -operator<<(std::ostream &os, - const struct ur_device_partition_property_t params) { - os << "(struct ur_device_partition_property_t){"; + os << *tptr; - os << ".type = "; + os << ")"; + } break; - os << (params.type); + case UR_DEVICE_INFO_GPU_EU_SLICES: { + const uint32_t *tptr = (const uint32_t *)ptr; + if (sizeof(uint32_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(uint32_t) << ")"; + return; + } + os << (void *)(tptr) << " ("; - os << ", "; - os << ".value = "; - - os << (params.value); + os << *tptr; - os << "}"; - return os; -} -inline std::ostream & -operator<<(std::ostream &os, - const struct ur_device_partition_properties_t params) { - os << "(struct ur_device_partition_properties_t){"; + os << ")"; + } break; - os << ".stype = "; + case UR_DEVICE_INFO_GPU_EU_COUNT_PER_SUBSLICE: { + const uint32_t *tptr = (const uint32_t *)ptr; + if (sizeof(uint32_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(uint32_t) << ")"; + return; + } + os << (void *)(tptr) << " ("; - os << (params.stype); + os << *tptr; - os << ", "; - os << ".pNext = "; + os << ")"; + } break; - ur_params::serializeStruct(os, (params.pNext)); + case UR_DEVICE_INFO_GPU_SUBSLICES_PER_SLICE: { + const uint32_t *tptr = (const uint32_t *)ptr; + if (sizeof(uint32_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(uint32_t) << ")"; + return; + } + os << (void *)(tptr) << " ("; - os << ", "; - os << ".pProperties = "; + os << *tptr; - ur_params::serializePtr(os, (params.pProperties)); + os << ")"; + } break; - os << ", "; - os << ".PropCount = "; + case UR_DEVICE_INFO_GPU_HW_THREADS_PER_EU: { + const uint32_t *tptr = (const uint32_t *)ptr; + if (sizeof(uint32_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(uint32_t) << ")"; + return; + } + os << (void *)(tptr) << " ("; - os << (params.PropCount); + os << *tptr; - os << "}"; - return os; -} -inline std::ostream &operator<<(std::ostream &os, - enum ur_device_fp_capability_flag_t value) { - switch (value) { + os << ")"; + } break; - case UR_DEVICE_FP_CAPABILITY_FLAG_CORRECTLY_ROUNDED_DIVIDE_SQRT: - os << "UR_DEVICE_FP_CAPABILITY_FLAG_CORRECTLY_ROUNDED_DIVIDE_SQRT"; - break; + case UR_DEVICE_INFO_MAX_MEMORY_BANDWIDTH: { + const uint32_t *tptr = (const uint32_t *)ptr; + if (sizeof(uint32_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(uint32_t) << ")"; + return; + } + os << (void *)(tptr) << " ("; - case UR_DEVICE_FP_CAPABILITY_FLAG_ROUND_TO_NEAREST: - os << "UR_DEVICE_FP_CAPABILITY_FLAG_ROUND_TO_NEAREST"; - break; + os << *tptr; - case UR_DEVICE_FP_CAPABILITY_FLAG_ROUND_TO_ZERO: - os << "UR_DEVICE_FP_CAPABILITY_FLAG_ROUND_TO_ZERO"; - break; + os << ")"; + } break; - case UR_DEVICE_FP_CAPABILITY_FLAG_ROUND_TO_INF: - os << "UR_DEVICE_FP_CAPABILITY_FLAG_ROUND_TO_INF"; - break; + case UR_DEVICE_INFO_IMAGE_SRGB: { + const ur_bool_t *tptr = (const ur_bool_t *)ptr; + if (sizeof(ur_bool_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(ur_bool_t) << ")"; + return; + } + os << (void *)(tptr) << " ("; - case UR_DEVICE_FP_CAPABILITY_FLAG_INF_NAN: - os << "UR_DEVICE_FP_CAPABILITY_FLAG_INF_NAN"; - break; + os << *tptr; - case UR_DEVICE_FP_CAPABILITY_FLAG_DENORM: - os << "UR_DEVICE_FP_CAPABILITY_FLAG_DENORM"; - break; + os << ")"; + } break; - case UR_DEVICE_FP_CAPABILITY_FLAG_FMA: - os << "UR_DEVICE_FP_CAPABILITY_FLAG_FMA"; - break; + case UR_DEVICE_INFO_BUILD_ON_SUBDEVICE: { + const ur_bool_t *tptr = (const ur_bool_t *)ptr; + if (sizeof(ur_bool_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(ur_bool_t) << ")"; + return; + } + os << (void *)(tptr) << " ("; - case UR_DEVICE_FP_CAPABILITY_FLAG_SOFT_FLOAT: - os << "UR_DEVICE_FP_CAPABILITY_FLAG_SOFT_FLOAT"; - break; - default: - os << "unknown enumerator"; - break; - } - return os; -} -namespace ur_params { + os << *tptr; -template <> -inline void serializeFlag(std::ostream &os, - uint32_t flag) { - uint32_t val = flag; - bool first = true; + os << ")"; + } break; - if ((val & UR_DEVICE_FP_CAPABILITY_FLAG_CORRECTLY_ROUNDED_DIVIDE_SQRT) == - (uint32_t)UR_DEVICE_FP_CAPABILITY_FLAG_CORRECTLY_ROUNDED_DIVIDE_SQRT) { - val ^= (uint32_t) - UR_DEVICE_FP_CAPABILITY_FLAG_CORRECTLY_ROUNDED_DIVIDE_SQRT; - if (!first) { - os << " | "; - } else { - first = false; + case UR_DEVICE_INFO_ATOMIC_64: { + const ur_bool_t *tptr = (const ur_bool_t *)ptr; + if (sizeof(ur_bool_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(ur_bool_t) << ")"; + return; } - os << UR_DEVICE_FP_CAPABILITY_FLAG_CORRECTLY_ROUNDED_DIVIDE_SQRT; - } + os << (void *)(tptr) << " ("; - if ((val & UR_DEVICE_FP_CAPABILITY_FLAG_ROUND_TO_NEAREST) == - (uint32_t)UR_DEVICE_FP_CAPABILITY_FLAG_ROUND_TO_NEAREST) { - val ^= (uint32_t)UR_DEVICE_FP_CAPABILITY_FLAG_ROUND_TO_NEAREST; - if (!first) { - os << " | "; - } else { - first = false; - } - os << UR_DEVICE_FP_CAPABILITY_FLAG_ROUND_TO_NEAREST; - } + os << *tptr; - if ((val & UR_DEVICE_FP_CAPABILITY_FLAG_ROUND_TO_ZERO) == - (uint32_t)UR_DEVICE_FP_CAPABILITY_FLAG_ROUND_TO_ZERO) { - val ^= (uint32_t)UR_DEVICE_FP_CAPABILITY_FLAG_ROUND_TO_ZERO; - if (!first) { - os << " | "; - } else { - first = false; - } - os << UR_DEVICE_FP_CAPABILITY_FLAG_ROUND_TO_ZERO; - } + os << ")"; + } break; - if ((val & UR_DEVICE_FP_CAPABILITY_FLAG_ROUND_TO_INF) == - (uint32_t)UR_DEVICE_FP_CAPABILITY_FLAG_ROUND_TO_INF) { - val ^= (uint32_t)UR_DEVICE_FP_CAPABILITY_FLAG_ROUND_TO_INF; - if (!first) { - os << " | "; - } else { - first = false; + case UR_DEVICE_INFO_ATOMIC_MEMORY_ORDER_CAPABILITIES: { + const ur_memory_order_capability_flags_t *tptr = + (const ur_memory_order_capability_flags_t *)ptr; + if (sizeof(ur_memory_order_capability_flags_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(ur_memory_order_capability_flags_t) + << ")"; + return; } - os << UR_DEVICE_FP_CAPABILITY_FLAG_ROUND_TO_INF; - } + os << (void *)(tptr) << " ("; - if ((val & UR_DEVICE_FP_CAPABILITY_FLAG_INF_NAN) == - (uint32_t)UR_DEVICE_FP_CAPABILITY_FLAG_INF_NAN) { - val ^= (uint32_t)UR_DEVICE_FP_CAPABILITY_FLAG_INF_NAN; - if (!first) { - os << " | "; - } else { - first = false; - } - os << UR_DEVICE_FP_CAPABILITY_FLAG_INF_NAN; - } + ur_params::serializeFlag(os, *tptr); - if ((val & UR_DEVICE_FP_CAPABILITY_FLAG_DENORM) == - (uint32_t)UR_DEVICE_FP_CAPABILITY_FLAG_DENORM) { - val ^= (uint32_t)UR_DEVICE_FP_CAPABILITY_FLAG_DENORM; - if (!first) { - os << " | "; - } else { - first = false; - } - os << UR_DEVICE_FP_CAPABILITY_FLAG_DENORM; - } + os << ")"; + } break; - if ((val & UR_DEVICE_FP_CAPABILITY_FLAG_FMA) == - (uint32_t)UR_DEVICE_FP_CAPABILITY_FLAG_FMA) { - val ^= (uint32_t)UR_DEVICE_FP_CAPABILITY_FLAG_FMA; - if (!first) { - os << " | "; - } else { - first = false; + case UR_DEVICE_INFO_ATOMIC_MEMORY_SCOPE_CAPABILITIES: { + const ur_memory_scope_capability_flags_t *tptr = + (const ur_memory_scope_capability_flags_t *)ptr; + if (sizeof(ur_memory_scope_capability_flags_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(ur_memory_scope_capability_flags_t) + << ")"; + return; } - os << UR_DEVICE_FP_CAPABILITY_FLAG_FMA; - } + os << (void *)(tptr) << " ("; - if ((val & UR_DEVICE_FP_CAPABILITY_FLAG_SOFT_FLOAT) == - (uint32_t)UR_DEVICE_FP_CAPABILITY_FLAG_SOFT_FLOAT) { - val ^= (uint32_t)UR_DEVICE_FP_CAPABILITY_FLAG_SOFT_FLOAT; - if (!first) { - os << " | "; - } else { - first = false; - } - os << UR_DEVICE_FP_CAPABILITY_FLAG_SOFT_FLOAT; - } - if (val != 0) { - std::bitset<32> bits(val); - if (!first) { - os << " | "; - } - os << "unknown bit flags " << bits; - } else if (first) { - os << "0"; - } -} -} // namespace ur_params -inline std::ostream &operator<<(std::ostream &os, - enum ur_device_mem_cache_type_t value) { - switch (value) { + ur_params::serializeFlag(os, *tptr); - case UR_DEVICE_MEM_CACHE_TYPE_NONE: - os << "UR_DEVICE_MEM_CACHE_TYPE_NONE"; - break; + os << ")"; + } break; - case UR_DEVICE_MEM_CACHE_TYPE_READ_ONLY_CACHE: - os << "UR_DEVICE_MEM_CACHE_TYPE_READ_ONLY_CACHE"; - break; + case UR_DEVICE_INFO_ATOMIC_FENCE_ORDER_CAPABILITIES: { + const ur_memory_order_capability_flags_t *tptr = + (const ur_memory_order_capability_flags_t *)ptr; + if (sizeof(ur_memory_order_capability_flags_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(ur_memory_order_capability_flags_t) + << ")"; + return; + } + os << (void *)(tptr) << " ("; - case UR_DEVICE_MEM_CACHE_TYPE_READ_WRITE_CACHE: - os << "UR_DEVICE_MEM_CACHE_TYPE_READ_WRITE_CACHE"; - break; + ur_params::serializeFlag(os, *tptr); + + os << ")"; + } break; + + case UR_DEVICE_INFO_ATOMIC_FENCE_SCOPE_CAPABILITIES: { + const ur_memory_scope_capability_flags_t *tptr = + (const ur_memory_scope_capability_flags_t *)ptr; + if (sizeof(ur_memory_scope_capability_flags_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(ur_memory_scope_capability_flags_t) + << ")"; + return; + } + os << (void *)(tptr) << " ("; + + ur_params::serializeFlag(os, *tptr); + + os << ")"; + } break; + + case UR_DEVICE_INFO_BFLOAT16: { + const ur_bool_t *tptr = (const ur_bool_t *)ptr; + if (sizeof(ur_bool_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(ur_bool_t) << ")"; + return; + } + os << (void *)(tptr) << " ("; + + os << *tptr; + + os << ")"; + } break; + + case UR_DEVICE_INFO_MAX_COMPUTE_QUEUE_INDICES: { + const uint32_t *tptr = (const uint32_t *)ptr; + if (sizeof(uint32_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(uint32_t) << ")"; + return; + } + os << (void *)(tptr) << " ("; + + os << *tptr; + + os << ")"; + } break; + + case UR_DEVICE_INFO_KERNEL_SET_SPECIALIZATION_CONSTANTS: { + const ur_bool_t *tptr = (const ur_bool_t *)ptr; + if (sizeof(ur_bool_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(ur_bool_t) << ")"; + return; + } + os << (void *)(tptr) << " ("; + + os << *tptr; + + os << ")"; + } break; + + case UR_DEVICE_INFO_MEMORY_BUS_WIDTH: { + const uint32_t *tptr = (const uint32_t *)ptr; + if (sizeof(uint32_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(uint32_t) << ")"; + return; + } + os << (void *)(tptr) << " ("; + + os << *tptr; + + os << ")"; + } break; + + case UR_DEVICE_INFO_MAX_WORK_GROUPS_3D: { + + const size_t *tptr = (const size_t *)ptr; + os << "{"; + size_t nelems = size / sizeof(size_t); + for (size_t i = 0; i < nelems; ++i) { + if (i != 0) { + os << ", "; + } + + os << tptr[i]; + } + os << "}"; + } break; + + case UR_DEVICE_INFO_ASYNC_BARRIER: { + const ur_bool_t *tptr = (const ur_bool_t *)ptr; + if (sizeof(ur_bool_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(ur_bool_t) << ")"; + return; + } + os << (void *)(tptr) << " ("; + + os << *tptr; + + os << ")"; + } break; + + case UR_DEVICE_INFO_MEM_CHANNEL_SUPPORT: { + const ur_bool_t *tptr = (const ur_bool_t *)ptr; + if (sizeof(ur_bool_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(ur_bool_t) << ")"; + return; + } + os << (void *)(tptr) << " ("; + + os << *tptr; + + os << ")"; + } break; + + case UR_DEVICE_INFO_HOST_PIPE_READ_WRITE_SUPPORTED: { + const ur_bool_t *tptr = (const ur_bool_t *)ptr; + if (sizeof(ur_bool_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(ur_bool_t) << ")"; + return; + } + os << (void *)(tptr) << " ("; + + os << *tptr; + + os << ")"; + } break; + + case UR_DEVICE_INFO_MAX_REGISTERS_PER_WORK_GROUP: { + const uint32_t *tptr = (const uint32_t *)ptr; + if (sizeof(uint32_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(uint32_t) << ")"; + return; + } + os << (void *)(tptr) << " ("; + + os << *tptr; + + os << ")"; + } break; + + case UR_DEVICE_INFO_IP_VERSION: { + const uint32_t *tptr = (const uint32_t *)ptr; + if (sizeof(uint32_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(uint32_t) << ")"; + return; + } + os << (void *)(tptr) << " ("; + + os << *tptr; + + os << ")"; + } break; + + case UR_DEVICE_INFO_BINDLESS_IMAGES_SUPPORT_EXP: { + const ur_bool_t *tptr = (const ur_bool_t *)ptr; + if (sizeof(ur_bool_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(ur_bool_t) << ")"; + return; + } + os << (void *)(tptr) << " ("; + + os << *tptr; + + os << ")"; + } break; + + case UR_DEVICE_INFO_BINDLESS_IMAGES_1D_USM_SUPPORT_EXP: { + const ur_bool_t *tptr = (const ur_bool_t *)ptr; + if (sizeof(ur_bool_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(ur_bool_t) << ")"; + return; + } + os << (void *)(tptr) << " ("; + + os << *tptr; + + os << ")"; + } break; + + case UR_DEVICE_INFO_BINDLESS_IMAGES_2D_USM_SUPPORT_EXP: { + const ur_bool_t *tptr = (const ur_bool_t *)ptr; + if (sizeof(ur_bool_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(ur_bool_t) << ")"; + return; + } + os << (void *)(tptr) << " ("; + + os << *tptr; + + os << ")"; + } break; + + case UR_DEVICE_INFO_IMAGE_PITCH_ALIGN_EXP: { + const uint32_t *tptr = (const uint32_t *)ptr; + if (sizeof(uint32_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(uint32_t) << ")"; + return; + } + os << (void *)(tptr) << " ("; + + os << *tptr; + + os << ")"; + } break; + + case UR_DEVICE_INFO_MAX_IMAGE_LINEAR_WIDTH_EXP: { + const size_t *tptr = (const size_t *)ptr; + if (sizeof(size_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(size_t) << ")"; + return; + } + os << (void *)(tptr) << " ("; + + os << *tptr; + + os << ")"; + } break; + + case UR_DEVICE_INFO_MAX_IMAGE_LINEAR_HEIGHT_EXP: { + const size_t *tptr = (const size_t *)ptr; + if (sizeof(size_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(size_t) << ")"; + return; + } + os << (void *)(tptr) << " ("; + + os << *tptr; + + os << ")"; + } break; + + case UR_DEVICE_INFO_MAX_IMAGE_LINEAR_PITCH_EXP: { + const size_t *tptr = (const size_t *)ptr; + if (sizeof(size_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(size_t) << ")"; + return; + } + os << (void *)(tptr) << " ("; + + os << *tptr; + + os << ")"; + } break; + + case UR_DEVICE_INFO_MIPMAP_SUPPORT_EXP: { + const ur_bool_t *tptr = (const ur_bool_t *)ptr; + if (sizeof(ur_bool_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(ur_bool_t) << ")"; + return; + } + os << (void *)(tptr) << " ("; + + os << *tptr; + + os << ")"; + } break; + + case UR_DEVICE_INFO_MIPMAP_ANISOTROPY_SUPPORT_EXP: { + const ur_bool_t *tptr = (const ur_bool_t *)ptr; + if (sizeof(ur_bool_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(ur_bool_t) << ")"; + return; + } + os << (void *)(tptr) << " ("; + + os << *tptr; + + os << ")"; + } break; + + case UR_DEVICE_INFO_MIPMAP_MAX_ANISOTROPY_EXP: { + const uint32_t *tptr = (const uint32_t *)ptr; + if (sizeof(uint32_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(uint32_t) << ")"; + return; + } + os << (void *)(tptr) << " ("; + + os << *tptr; + + os << ")"; + } break; + + case UR_DEVICE_INFO_MIPMAP_LEVEL_REFERENCE_SUPPORT_EXP: { + const ur_bool_t *tptr = (const ur_bool_t *)ptr; + if (sizeof(ur_bool_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(ur_bool_t) << ")"; + return; + } + os << (void *)(tptr) << " ("; + + os << *tptr; + + os << ")"; + } break; + + case UR_DEVICE_INFO_INTEROP_MEMORY_IMPORT_SUPPORT_EXP: { + const ur_bool_t *tptr = (const ur_bool_t *)ptr; + if (sizeof(ur_bool_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(ur_bool_t) << ")"; + return; + } + os << (void *)(tptr) << " ("; + + os << *tptr; + + os << ")"; + } break; + + case UR_DEVICE_INFO_INTEROP_MEMORY_EXPORT_SUPPORT_EXP: { + const ur_bool_t *tptr = (const ur_bool_t *)ptr; + if (sizeof(ur_bool_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(ur_bool_t) << ")"; + return; + } + os << (void *)(tptr) << " ("; + + os << *tptr; + + os << ")"; + } break; + + case UR_DEVICE_INFO_INTEROP_SEMAPHORE_IMPORT_SUPPORT_EXP: { + const ur_bool_t *tptr = (const ur_bool_t *)ptr; + if (sizeof(ur_bool_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(ur_bool_t) << ")"; + return; + } + os << (void *)(tptr) << " ("; + + os << *tptr; + + os << ")"; + } break; + + case UR_DEVICE_INFO_INTEROP_SEMAPHORE_EXPORT_SUPPORT_EXP: { + const ur_bool_t *tptr = (const ur_bool_t *)ptr; + if (sizeof(ur_bool_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(ur_bool_t) << ")"; + return; + } + os << (void *)(tptr) << " ("; + + os << *tptr; + + os << ")"; + } break; default: os << "unknown enumerator"; break; } - return os; } +} // namespace ur_params inline std::ostream &operator<<(std::ostream &os, - enum ur_device_local_mem_type_t value) { + enum ur_device_affinity_domain_flag_t value) { switch (value) { - case UR_DEVICE_LOCAL_MEM_TYPE_NONE: - os << "UR_DEVICE_LOCAL_MEM_TYPE_NONE"; + case UR_DEVICE_AFFINITY_DOMAIN_FLAG_NUMA: + os << "UR_DEVICE_AFFINITY_DOMAIN_FLAG_NUMA"; break; - case UR_DEVICE_LOCAL_MEM_TYPE_LOCAL: - os << "UR_DEVICE_LOCAL_MEM_TYPE_LOCAL"; + case UR_DEVICE_AFFINITY_DOMAIN_FLAG_L4_CACHE: + os << "UR_DEVICE_AFFINITY_DOMAIN_FLAG_L4_CACHE"; break; - case UR_DEVICE_LOCAL_MEM_TYPE_GLOBAL: - os << "UR_DEVICE_LOCAL_MEM_TYPE_GLOBAL"; + case UR_DEVICE_AFFINITY_DOMAIN_FLAG_L3_CACHE: + os << "UR_DEVICE_AFFINITY_DOMAIN_FLAG_L3_CACHE"; + break; + + case UR_DEVICE_AFFINITY_DOMAIN_FLAG_L2_CACHE: + os << "UR_DEVICE_AFFINITY_DOMAIN_FLAG_L2_CACHE"; + break; + + case UR_DEVICE_AFFINITY_DOMAIN_FLAG_L1_CACHE: + os << "UR_DEVICE_AFFINITY_DOMAIN_FLAG_L1_CACHE"; + break; + + case UR_DEVICE_AFFINITY_DOMAIN_FLAG_NEXT_PARTITIONABLE: + os << "UR_DEVICE_AFFINITY_DOMAIN_FLAG_NEXT_PARTITIONABLE"; break; default: os << "unknown enumerator"; @@ -4134,51 +4438,78 @@ inline std::ostream &operator<<(std::ostream &os, } return os; } -inline std::ostream &operator<<(std::ostream &os, - enum ur_device_exec_capability_flag_t value) { - switch (value) { +namespace ur_params { - case UR_DEVICE_EXEC_CAPABILITY_FLAG_KERNEL: - os << "UR_DEVICE_EXEC_CAPABILITY_FLAG_KERNEL"; - break; +template <> +inline void serializeFlag(std::ostream &os, + uint32_t flag) { + uint32_t val = flag; + bool first = true; + + if ((val & UR_DEVICE_AFFINITY_DOMAIN_FLAG_NUMA) == + (uint32_t)UR_DEVICE_AFFINITY_DOMAIN_FLAG_NUMA) { + val ^= (uint32_t)UR_DEVICE_AFFINITY_DOMAIN_FLAG_NUMA; + if (!first) { + os << " | "; + } else { + first = false; + } + os << UR_DEVICE_AFFINITY_DOMAIN_FLAG_NUMA; + } + + if ((val & UR_DEVICE_AFFINITY_DOMAIN_FLAG_L4_CACHE) == + (uint32_t)UR_DEVICE_AFFINITY_DOMAIN_FLAG_L4_CACHE) { + val ^= (uint32_t)UR_DEVICE_AFFINITY_DOMAIN_FLAG_L4_CACHE; + if (!first) { + os << " | "; + } else { + first = false; + } + os << UR_DEVICE_AFFINITY_DOMAIN_FLAG_L4_CACHE; + } - case UR_DEVICE_EXEC_CAPABILITY_FLAG_NATIVE_KERNEL: - os << "UR_DEVICE_EXEC_CAPABILITY_FLAG_NATIVE_KERNEL"; - break; - default: - os << "unknown enumerator"; - break; + if ((val & UR_DEVICE_AFFINITY_DOMAIN_FLAG_L3_CACHE) == + (uint32_t)UR_DEVICE_AFFINITY_DOMAIN_FLAG_L3_CACHE) { + val ^= (uint32_t)UR_DEVICE_AFFINITY_DOMAIN_FLAG_L3_CACHE; + if (!first) { + os << " | "; + } else { + first = false; + } + os << UR_DEVICE_AFFINITY_DOMAIN_FLAG_L3_CACHE; } - return os; -} -namespace ur_params { -template <> -inline void serializeFlag(std::ostream &os, - uint32_t flag) { - uint32_t val = flag; - bool first = true; + if ((val & UR_DEVICE_AFFINITY_DOMAIN_FLAG_L2_CACHE) == + (uint32_t)UR_DEVICE_AFFINITY_DOMAIN_FLAG_L2_CACHE) { + val ^= (uint32_t)UR_DEVICE_AFFINITY_DOMAIN_FLAG_L2_CACHE; + if (!first) { + os << " | "; + } else { + first = false; + } + os << UR_DEVICE_AFFINITY_DOMAIN_FLAG_L2_CACHE; + } - if ((val & UR_DEVICE_EXEC_CAPABILITY_FLAG_KERNEL) == - (uint32_t)UR_DEVICE_EXEC_CAPABILITY_FLAG_KERNEL) { - val ^= (uint32_t)UR_DEVICE_EXEC_CAPABILITY_FLAG_KERNEL; + if ((val & UR_DEVICE_AFFINITY_DOMAIN_FLAG_L1_CACHE) == + (uint32_t)UR_DEVICE_AFFINITY_DOMAIN_FLAG_L1_CACHE) { + val ^= (uint32_t)UR_DEVICE_AFFINITY_DOMAIN_FLAG_L1_CACHE; if (!first) { os << " | "; } else { first = false; } - os << UR_DEVICE_EXEC_CAPABILITY_FLAG_KERNEL; + os << UR_DEVICE_AFFINITY_DOMAIN_FLAG_L1_CACHE; } - if ((val & UR_DEVICE_EXEC_CAPABILITY_FLAG_NATIVE_KERNEL) == - (uint32_t)UR_DEVICE_EXEC_CAPABILITY_FLAG_NATIVE_KERNEL) { - val ^= (uint32_t)UR_DEVICE_EXEC_CAPABILITY_FLAG_NATIVE_KERNEL; + if ((val & UR_DEVICE_AFFINITY_DOMAIN_FLAG_NEXT_PARTITIONABLE) == + (uint32_t)UR_DEVICE_AFFINITY_DOMAIN_FLAG_NEXT_PARTITIONABLE) { + val ^= (uint32_t)UR_DEVICE_AFFINITY_DOMAIN_FLAG_NEXT_PARTITIONABLE; if (!first) { os << " | "; } else { first = false; } - os << UR_DEVICE_EXEC_CAPABILITY_FLAG_NATIVE_KERNEL; + os << UR_DEVICE_AFFINITY_DOMAIN_FLAG_NEXT_PARTITIONABLE; } if (val != 0) { std::bitset<32> bits(val); @@ -4191,10 +4522,74 @@ inline void serializeFlag(std::ostream &os, } } } // namespace ur_params +inline std::ostream &operator<<(std::ostream &os, + enum ur_device_partition_t value) { + switch (value) { + + case UR_DEVICE_PARTITION_EQUALLY: + os << "UR_DEVICE_PARTITION_EQUALLY"; + break; + + case UR_DEVICE_PARTITION_BY_COUNTS: + os << "UR_DEVICE_PARTITION_BY_COUNTS"; + break; + + case UR_DEVICE_PARTITION_BY_AFFINITY_DOMAIN: + os << "UR_DEVICE_PARTITION_BY_AFFINITY_DOMAIN"; + break; + + case UR_DEVICE_PARTITION_BY_CSLICE: + os << "UR_DEVICE_PARTITION_BY_CSLICE"; + break; + default: + os << "unknown enumerator"; + break; + } + return os; +} +inline std::ostream & +operator<<(std::ostream &os, const union ur_device_partition_value_t params) { + os << "(union ur_device_partition_value_t){"; + + os << ".equally = "; + + os << (params.equally); + + os << ", "; + os << ".count = "; + + os << (params.count); + + os << ", "; + os << ".affinity_domain = "; + + ur_params::serializeFlag( + os, (params.affinity_domain)); + + os << "}"; + return os; +} inline std::ostream & operator<<(std::ostream &os, - const struct ur_device_native_properties_t params) { - os << "(struct ur_device_native_properties_t){"; + const struct ur_device_partition_property_t params) { + os << "(struct ur_device_partition_property_t){"; + + os << ".type = "; + + os << (params.type); + + os << ", "; + os << ".value = "; + + os << (params.value); + + os << "}"; + return os; +} +inline std::ostream & +operator<<(std::ostream &os, + const struct ur_device_partition_properties_t params) { + os << "(struct ur_device_partition_properties_t){"; os << ".stype = "; @@ -4206,35 +4601,52 @@ operator<<(std::ostream &os, ur_params::serializeStruct(os, (params.pNext)); os << ", "; - os << ".isNativeHandleOwned = "; + os << ".pProperties = "; - os << (params.isNativeHandleOwned); + ur_params::serializePtr(os, (params.pProperties)); + + os << ", "; + os << ".PropCount = "; + + os << (params.PropCount); os << "}"; return os; } inline std::ostream &operator<<(std::ostream &os, - enum ur_memory_order_capability_flag_t value) { + enum ur_device_fp_capability_flag_t value) { switch (value) { - case UR_MEMORY_ORDER_CAPABILITY_FLAG_RELAXED: - os << "UR_MEMORY_ORDER_CAPABILITY_FLAG_RELAXED"; + case UR_DEVICE_FP_CAPABILITY_FLAG_CORRECTLY_ROUNDED_DIVIDE_SQRT: + os << "UR_DEVICE_FP_CAPABILITY_FLAG_CORRECTLY_ROUNDED_DIVIDE_SQRT"; break; - case UR_MEMORY_ORDER_CAPABILITY_FLAG_ACQUIRE: - os << "UR_MEMORY_ORDER_CAPABILITY_FLAG_ACQUIRE"; + case UR_DEVICE_FP_CAPABILITY_FLAG_ROUND_TO_NEAREST: + os << "UR_DEVICE_FP_CAPABILITY_FLAG_ROUND_TO_NEAREST"; break; - case UR_MEMORY_ORDER_CAPABILITY_FLAG_RELEASE: - os << "UR_MEMORY_ORDER_CAPABILITY_FLAG_RELEASE"; + case UR_DEVICE_FP_CAPABILITY_FLAG_ROUND_TO_ZERO: + os << "UR_DEVICE_FP_CAPABILITY_FLAG_ROUND_TO_ZERO"; break; - case UR_MEMORY_ORDER_CAPABILITY_FLAG_ACQ_REL: - os << "UR_MEMORY_ORDER_CAPABILITY_FLAG_ACQ_REL"; + case UR_DEVICE_FP_CAPABILITY_FLAG_ROUND_TO_INF: + os << "UR_DEVICE_FP_CAPABILITY_FLAG_ROUND_TO_INF"; break; - case UR_MEMORY_ORDER_CAPABILITY_FLAG_SEQ_CST: - os << "UR_MEMORY_ORDER_CAPABILITY_FLAG_SEQ_CST"; + case UR_DEVICE_FP_CAPABILITY_FLAG_INF_NAN: + os << "UR_DEVICE_FP_CAPABILITY_FLAG_INF_NAN"; + break; + + case UR_DEVICE_FP_CAPABILITY_FLAG_DENORM: + os << "UR_DEVICE_FP_CAPABILITY_FLAG_DENORM"; + break; + + case UR_DEVICE_FP_CAPABILITY_FLAG_FMA: + os << "UR_DEVICE_FP_CAPABILITY_FLAG_FMA"; + break; + + case UR_DEVICE_FP_CAPABILITY_FLAG_SOFT_FLOAT: + os << "UR_DEVICE_FP_CAPABILITY_FLAG_SOFT_FLOAT"; break; default: os << "unknown enumerator"; @@ -4245,64 +4657,98 @@ inline std::ostream &operator<<(std::ostream &os, namespace ur_params { template <> -inline void serializeFlag(std::ostream &os, - uint32_t flag) { +inline void serializeFlag(std::ostream &os, + uint32_t flag) { uint32_t val = flag; bool first = true; - if ((val & UR_MEMORY_ORDER_CAPABILITY_FLAG_RELAXED) == - (uint32_t)UR_MEMORY_ORDER_CAPABILITY_FLAG_RELAXED) { - val ^= (uint32_t)UR_MEMORY_ORDER_CAPABILITY_FLAG_RELAXED; + if ((val & UR_DEVICE_FP_CAPABILITY_FLAG_CORRECTLY_ROUNDED_DIVIDE_SQRT) == + (uint32_t)UR_DEVICE_FP_CAPABILITY_FLAG_CORRECTLY_ROUNDED_DIVIDE_SQRT) { + val ^= (uint32_t) + UR_DEVICE_FP_CAPABILITY_FLAG_CORRECTLY_ROUNDED_DIVIDE_SQRT; if (!first) { os << " | "; } else { first = false; } - os << UR_MEMORY_ORDER_CAPABILITY_FLAG_RELAXED; + os << UR_DEVICE_FP_CAPABILITY_FLAG_CORRECTLY_ROUNDED_DIVIDE_SQRT; } - if ((val & UR_MEMORY_ORDER_CAPABILITY_FLAG_ACQUIRE) == - (uint32_t)UR_MEMORY_ORDER_CAPABILITY_FLAG_ACQUIRE) { - val ^= (uint32_t)UR_MEMORY_ORDER_CAPABILITY_FLAG_ACQUIRE; + if ((val & UR_DEVICE_FP_CAPABILITY_FLAG_ROUND_TO_NEAREST) == + (uint32_t)UR_DEVICE_FP_CAPABILITY_FLAG_ROUND_TO_NEAREST) { + val ^= (uint32_t)UR_DEVICE_FP_CAPABILITY_FLAG_ROUND_TO_NEAREST; if (!first) { os << " | "; } else { first = false; } - os << UR_MEMORY_ORDER_CAPABILITY_FLAG_ACQUIRE; + os << UR_DEVICE_FP_CAPABILITY_FLAG_ROUND_TO_NEAREST; } - if ((val & UR_MEMORY_ORDER_CAPABILITY_FLAG_RELEASE) == - (uint32_t)UR_MEMORY_ORDER_CAPABILITY_FLAG_RELEASE) { - val ^= (uint32_t)UR_MEMORY_ORDER_CAPABILITY_FLAG_RELEASE; + if ((val & UR_DEVICE_FP_CAPABILITY_FLAG_ROUND_TO_ZERO) == + (uint32_t)UR_DEVICE_FP_CAPABILITY_FLAG_ROUND_TO_ZERO) { + val ^= (uint32_t)UR_DEVICE_FP_CAPABILITY_FLAG_ROUND_TO_ZERO; if (!first) { os << " | "; } else { first = false; } - os << UR_MEMORY_ORDER_CAPABILITY_FLAG_RELEASE; + os << UR_DEVICE_FP_CAPABILITY_FLAG_ROUND_TO_ZERO; } - if ((val & UR_MEMORY_ORDER_CAPABILITY_FLAG_ACQ_REL) == - (uint32_t)UR_MEMORY_ORDER_CAPABILITY_FLAG_ACQ_REL) { - val ^= (uint32_t)UR_MEMORY_ORDER_CAPABILITY_FLAG_ACQ_REL; + if ((val & UR_DEVICE_FP_CAPABILITY_FLAG_ROUND_TO_INF) == + (uint32_t)UR_DEVICE_FP_CAPABILITY_FLAG_ROUND_TO_INF) { + val ^= (uint32_t)UR_DEVICE_FP_CAPABILITY_FLAG_ROUND_TO_INF; if (!first) { os << " | "; } else { first = false; } - os << UR_MEMORY_ORDER_CAPABILITY_FLAG_ACQ_REL; + os << UR_DEVICE_FP_CAPABILITY_FLAG_ROUND_TO_INF; } - if ((val & UR_MEMORY_ORDER_CAPABILITY_FLAG_SEQ_CST) == - (uint32_t)UR_MEMORY_ORDER_CAPABILITY_FLAG_SEQ_CST) { - val ^= (uint32_t)UR_MEMORY_ORDER_CAPABILITY_FLAG_SEQ_CST; + if ((val & UR_DEVICE_FP_CAPABILITY_FLAG_INF_NAN) == + (uint32_t)UR_DEVICE_FP_CAPABILITY_FLAG_INF_NAN) { + val ^= (uint32_t)UR_DEVICE_FP_CAPABILITY_FLAG_INF_NAN; if (!first) { os << " | "; } else { first = false; } - os << UR_MEMORY_ORDER_CAPABILITY_FLAG_SEQ_CST; + os << UR_DEVICE_FP_CAPABILITY_FLAG_INF_NAN; + } + + if ((val & UR_DEVICE_FP_CAPABILITY_FLAG_DENORM) == + (uint32_t)UR_DEVICE_FP_CAPABILITY_FLAG_DENORM) { + val ^= (uint32_t)UR_DEVICE_FP_CAPABILITY_FLAG_DENORM; + if (!first) { + os << " | "; + } else { + first = false; + } + os << UR_DEVICE_FP_CAPABILITY_FLAG_DENORM; + } + + if ((val & UR_DEVICE_FP_CAPABILITY_FLAG_FMA) == + (uint32_t)UR_DEVICE_FP_CAPABILITY_FLAG_FMA) { + val ^= (uint32_t)UR_DEVICE_FP_CAPABILITY_FLAG_FMA; + if (!first) { + os << " | "; + } else { + first = false; + } + os << UR_DEVICE_FP_CAPABILITY_FLAG_FMA; + } + + if ((val & UR_DEVICE_FP_CAPABILITY_FLAG_SOFT_FLOAT) == + (uint32_t)UR_DEVICE_FP_CAPABILITY_FLAG_SOFT_FLOAT) { + val ^= (uint32_t)UR_DEVICE_FP_CAPABILITY_FLAG_SOFT_FLOAT; + if (!first) { + os << " | "; + } else { + first = false; + } + os << UR_DEVICE_FP_CAPABILITY_FLAG_SOFT_FLOAT; } if (val != 0) { std::bitset<32> bits(val); @@ -4314,29 +4760,59 @@ inline void serializeFlag(std::ostream &os, os << "0"; } } -} // namespace ur_params +} // namespace ur_params +inline std::ostream &operator<<(std::ostream &os, + enum ur_device_mem_cache_type_t value) { + switch (value) { + + case UR_DEVICE_MEM_CACHE_TYPE_NONE: + os << "UR_DEVICE_MEM_CACHE_TYPE_NONE"; + break; + + case UR_DEVICE_MEM_CACHE_TYPE_READ_ONLY_CACHE: + os << "UR_DEVICE_MEM_CACHE_TYPE_READ_ONLY_CACHE"; + break; + + case UR_DEVICE_MEM_CACHE_TYPE_READ_WRITE_CACHE: + os << "UR_DEVICE_MEM_CACHE_TYPE_READ_WRITE_CACHE"; + break; + default: + os << "unknown enumerator"; + break; + } + return os; +} inline std::ostream &operator<<(std::ostream &os, - enum ur_memory_scope_capability_flag_t value) { + enum ur_device_local_mem_type_t value) { switch (value) { - case UR_MEMORY_SCOPE_CAPABILITY_FLAG_WORK_ITEM: - os << "UR_MEMORY_SCOPE_CAPABILITY_FLAG_WORK_ITEM"; + case UR_DEVICE_LOCAL_MEM_TYPE_NONE: + os << "UR_DEVICE_LOCAL_MEM_TYPE_NONE"; break; - case UR_MEMORY_SCOPE_CAPABILITY_FLAG_SUB_GROUP: - os << "UR_MEMORY_SCOPE_CAPABILITY_FLAG_SUB_GROUP"; + case UR_DEVICE_LOCAL_MEM_TYPE_LOCAL: + os << "UR_DEVICE_LOCAL_MEM_TYPE_LOCAL"; break; - case UR_MEMORY_SCOPE_CAPABILITY_FLAG_WORK_GROUP: - os << "UR_MEMORY_SCOPE_CAPABILITY_FLAG_WORK_GROUP"; + case UR_DEVICE_LOCAL_MEM_TYPE_GLOBAL: + os << "UR_DEVICE_LOCAL_MEM_TYPE_GLOBAL"; + break; + default: + os << "unknown enumerator"; break; + } + return os; +} +inline std::ostream &operator<<(std::ostream &os, + enum ur_device_exec_capability_flag_t value) { + switch (value) { - case UR_MEMORY_SCOPE_CAPABILITY_FLAG_DEVICE: - os << "UR_MEMORY_SCOPE_CAPABILITY_FLAG_DEVICE"; + case UR_DEVICE_EXEC_CAPABILITY_FLAG_KERNEL: + os << "UR_DEVICE_EXEC_CAPABILITY_FLAG_KERNEL"; break; - case UR_MEMORY_SCOPE_CAPABILITY_FLAG_SYSTEM: - os << "UR_MEMORY_SCOPE_CAPABILITY_FLAG_SYSTEM"; + case UR_DEVICE_EXEC_CAPABILITY_FLAG_NATIVE_KERNEL: + os << "UR_DEVICE_EXEC_CAPABILITY_FLAG_NATIVE_KERNEL"; break; default: os << "unknown enumerator"; @@ -4347,64 +4823,31 @@ inline std::ostream &operator<<(std::ostream &os, namespace ur_params { template <> -inline void serializeFlag(std::ostream &os, - uint32_t flag) { +inline void serializeFlag(std::ostream &os, + uint32_t flag) { uint32_t val = flag; bool first = true; - if ((val & UR_MEMORY_SCOPE_CAPABILITY_FLAG_WORK_ITEM) == - (uint32_t)UR_MEMORY_SCOPE_CAPABILITY_FLAG_WORK_ITEM) { - val ^= (uint32_t)UR_MEMORY_SCOPE_CAPABILITY_FLAG_WORK_ITEM; - if (!first) { - os << " | "; - } else { - first = false; - } - os << UR_MEMORY_SCOPE_CAPABILITY_FLAG_WORK_ITEM; - } - - if ((val & UR_MEMORY_SCOPE_CAPABILITY_FLAG_SUB_GROUP) == - (uint32_t)UR_MEMORY_SCOPE_CAPABILITY_FLAG_SUB_GROUP) { - val ^= (uint32_t)UR_MEMORY_SCOPE_CAPABILITY_FLAG_SUB_GROUP; - if (!first) { - os << " | "; - } else { - first = false; - } - os << UR_MEMORY_SCOPE_CAPABILITY_FLAG_SUB_GROUP; - } - - if ((val & UR_MEMORY_SCOPE_CAPABILITY_FLAG_WORK_GROUP) == - (uint32_t)UR_MEMORY_SCOPE_CAPABILITY_FLAG_WORK_GROUP) { - val ^= (uint32_t)UR_MEMORY_SCOPE_CAPABILITY_FLAG_WORK_GROUP; - if (!first) { - os << " | "; - } else { - first = false; - } - os << UR_MEMORY_SCOPE_CAPABILITY_FLAG_WORK_GROUP; - } - - if ((val & UR_MEMORY_SCOPE_CAPABILITY_FLAG_DEVICE) == - (uint32_t)UR_MEMORY_SCOPE_CAPABILITY_FLAG_DEVICE) { - val ^= (uint32_t)UR_MEMORY_SCOPE_CAPABILITY_FLAG_DEVICE; + if ((val & UR_DEVICE_EXEC_CAPABILITY_FLAG_KERNEL) == + (uint32_t)UR_DEVICE_EXEC_CAPABILITY_FLAG_KERNEL) { + val ^= (uint32_t)UR_DEVICE_EXEC_CAPABILITY_FLAG_KERNEL; if (!first) { os << " | "; } else { first = false; } - os << UR_MEMORY_SCOPE_CAPABILITY_FLAG_DEVICE; + os << UR_DEVICE_EXEC_CAPABILITY_FLAG_KERNEL; } - if ((val & UR_MEMORY_SCOPE_CAPABILITY_FLAG_SYSTEM) == - (uint32_t)UR_MEMORY_SCOPE_CAPABILITY_FLAG_SYSTEM) { - val ^= (uint32_t)UR_MEMORY_SCOPE_CAPABILITY_FLAG_SYSTEM; + if ((val & UR_DEVICE_EXEC_CAPABILITY_FLAG_NATIVE_KERNEL) == + (uint32_t)UR_DEVICE_EXEC_CAPABILITY_FLAG_NATIVE_KERNEL) { + val ^= (uint32_t)UR_DEVICE_EXEC_CAPABILITY_FLAG_NATIVE_KERNEL; if (!first) { os << " | "; } else { first = false; } - os << UR_MEMORY_SCOPE_CAPABILITY_FLAG_SYSTEM; + os << UR_DEVICE_EXEC_CAPABILITY_FLAG_NATIVE_KERNEL; } if (val != 0) { std::bitset<32> bits(val); @@ -4419,23 +4862,48 @@ inline void serializeFlag(std::ostream &os, } // namespace ur_params inline std::ostream & operator<<(std::ostream &os, - enum ur_device_usm_access_capability_flag_t value) { + const struct ur_device_native_properties_t params) { + os << "(struct ur_device_native_properties_t){"; + + os << ".stype = "; + + os << (params.stype); + + os << ", "; + os << ".pNext = "; + + ur_params::serializeStruct(os, (params.pNext)); + + os << ", "; + os << ".isNativeHandleOwned = "; + + os << (params.isNativeHandleOwned); + + os << "}"; + return os; +} +inline std::ostream &operator<<(std::ostream &os, + enum ur_memory_order_capability_flag_t value) { switch (value) { - case UR_DEVICE_USM_ACCESS_CAPABILITY_FLAG_ACCESS: - os << "UR_DEVICE_USM_ACCESS_CAPABILITY_FLAG_ACCESS"; + case UR_MEMORY_ORDER_CAPABILITY_FLAG_RELAXED: + os << "UR_MEMORY_ORDER_CAPABILITY_FLAG_RELAXED"; break; - case UR_DEVICE_USM_ACCESS_CAPABILITY_FLAG_ATOMIC_ACCESS: - os << "UR_DEVICE_USM_ACCESS_CAPABILITY_FLAG_ATOMIC_ACCESS"; + case UR_MEMORY_ORDER_CAPABILITY_FLAG_ACQUIRE: + os << "UR_MEMORY_ORDER_CAPABILITY_FLAG_ACQUIRE"; break; - case UR_DEVICE_USM_ACCESS_CAPABILITY_FLAG_CONCURRENT_ACCESS: - os << "UR_DEVICE_USM_ACCESS_CAPABILITY_FLAG_CONCURRENT_ACCESS"; + case UR_MEMORY_ORDER_CAPABILITY_FLAG_RELEASE: + os << "UR_MEMORY_ORDER_CAPABILITY_FLAG_RELEASE"; break; - case UR_DEVICE_USM_ACCESS_CAPABILITY_FLAG_ATOMIC_CONCURRENT_ACCESS: - os << "UR_DEVICE_USM_ACCESS_CAPABILITY_FLAG_ATOMIC_CONCURRENT_ACCESS"; + case UR_MEMORY_ORDER_CAPABILITY_FLAG_ACQ_REL: + os << "UR_MEMORY_ORDER_CAPABILITY_FLAG_ACQ_REL"; + break; + + case UR_MEMORY_ORDER_CAPABILITY_FLAG_SEQ_CST: + os << "UR_MEMORY_ORDER_CAPABILITY_FLAG_SEQ_CST"; break; default: os << "unknown enumerator"; @@ -4446,96 +4914,64 @@ operator<<(std::ostream &os, namespace ur_params { template <> -inline void -serializeFlag(std::ostream &os, - uint32_t flag) { +inline void serializeFlag(std::ostream &os, + uint32_t flag) { uint32_t val = flag; bool first = true; - if ((val & UR_DEVICE_USM_ACCESS_CAPABILITY_FLAG_ACCESS) == - (uint32_t)UR_DEVICE_USM_ACCESS_CAPABILITY_FLAG_ACCESS) { - val ^= (uint32_t)UR_DEVICE_USM_ACCESS_CAPABILITY_FLAG_ACCESS; + if ((val & UR_MEMORY_ORDER_CAPABILITY_FLAG_RELAXED) == + (uint32_t)UR_MEMORY_ORDER_CAPABILITY_FLAG_RELAXED) { + val ^= (uint32_t)UR_MEMORY_ORDER_CAPABILITY_FLAG_RELAXED; if (!first) { os << " | "; } else { first = false; } - os << UR_DEVICE_USM_ACCESS_CAPABILITY_FLAG_ACCESS; + os << UR_MEMORY_ORDER_CAPABILITY_FLAG_RELAXED; } - if ((val & UR_DEVICE_USM_ACCESS_CAPABILITY_FLAG_ATOMIC_ACCESS) == - (uint32_t)UR_DEVICE_USM_ACCESS_CAPABILITY_FLAG_ATOMIC_ACCESS) { - val ^= (uint32_t)UR_DEVICE_USM_ACCESS_CAPABILITY_FLAG_ATOMIC_ACCESS; + if ((val & UR_MEMORY_ORDER_CAPABILITY_FLAG_ACQUIRE) == + (uint32_t)UR_MEMORY_ORDER_CAPABILITY_FLAG_ACQUIRE) { + val ^= (uint32_t)UR_MEMORY_ORDER_CAPABILITY_FLAG_ACQUIRE; if (!first) { os << " | "; } else { first = false; } - os << UR_DEVICE_USM_ACCESS_CAPABILITY_FLAG_ATOMIC_ACCESS; + os << UR_MEMORY_ORDER_CAPABILITY_FLAG_ACQUIRE; } - if ((val & UR_DEVICE_USM_ACCESS_CAPABILITY_FLAG_CONCURRENT_ACCESS) == - (uint32_t)UR_DEVICE_USM_ACCESS_CAPABILITY_FLAG_CONCURRENT_ACCESS) { - val ^= (uint32_t)UR_DEVICE_USM_ACCESS_CAPABILITY_FLAG_CONCURRENT_ACCESS; + if ((val & UR_MEMORY_ORDER_CAPABILITY_FLAG_RELEASE) == + (uint32_t)UR_MEMORY_ORDER_CAPABILITY_FLAG_RELEASE) { + val ^= (uint32_t)UR_MEMORY_ORDER_CAPABILITY_FLAG_RELEASE; if (!first) { os << " | "; } else { first = false; } - os << UR_DEVICE_USM_ACCESS_CAPABILITY_FLAG_CONCURRENT_ACCESS; + os << UR_MEMORY_ORDER_CAPABILITY_FLAG_RELEASE; } - if ((val & UR_DEVICE_USM_ACCESS_CAPABILITY_FLAG_ATOMIC_CONCURRENT_ACCESS) == - (uint32_t) - UR_DEVICE_USM_ACCESS_CAPABILITY_FLAG_ATOMIC_CONCURRENT_ACCESS) { - val ^= (uint32_t) - UR_DEVICE_USM_ACCESS_CAPABILITY_FLAG_ATOMIC_CONCURRENT_ACCESS; + if ((val & UR_MEMORY_ORDER_CAPABILITY_FLAG_ACQ_REL) == + (uint32_t)UR_MEMORY_ORDER_CAPABILITY_FLAG_ACQ_REL) { + val ^= (uint32_t)UR_MEMORY_ORDER_CAPABILITY_FLAG_ACQ_REL; if (!first) { os << " | "; } else { first = false; } - os << UR_DEVICE_USM_ACCESS_CAPABILITY_FLAG_ATOMIC_CONCURRENT_ACCESS; - } - if (val != 0) { - std::bitset<32> bits(val); - if (!first) { - os << " | "; - } - os << "unknown bit flags " << bits; - } else if (first) { - os << "0"; - } -} -} // namespace ur_params -inline std::ostream &operator<<(std::ostream &os, - enum ur_context_flag_t value) { - switch (value) { - - case UR_CONTEXT_FLAG_TBD: - os << "UR_CONTEXT_FLAG_TBD"; - break; - default: - os << "unknown enumerator"; - break; + os << UR_MEMORY_ORDER_CAPABILITY_FLAG_ACQ_REL; } - return os; -} -namespace ur_params { - -template <> -inline void serializeFlag(std::ostream &os, uint32_t flag) { - uint32_t val = flag; - bool first = true; - if ((val & UR_CONTEXT_FLAG_TBD) == (uint32_t)UR_CONTEXT_FLAG_TBD) { - val ^= (uint32_t)UR_CONTEXT_FLAG_TBD; + if ((val & UR_MEMORY_ORDER_CAPABILITY_FLAG_SEQ_CST) == + (uint32_t)UR_MEMORY_ORDER_CAPABILITY_FLAG_SEQ_CST) { + val ^= (uint32_t)UR_MEMORY_ORDER_CAPABILITY_FLAG_SEQ_CST; if (!first) { os << " | "; } else { first = false; } - os << UR_CONTEXT_FLAG_TBD; + os << UR_MEMORY_ORDER_CAPABILITY_FLAG_SEQ_CST; } if (val != 0) { std::bitset<32> bits(val); @@ -4549,64 +4985,27 @@ inline void serializeFlag(std::ostream &os, uint32_t flag) { } } // namespace ur_params inline std::ostream &operator<<(std::ostream &os, - const struct ur_context_properties_t params) { - os << "(struct ur_context_properties_t){"; - - os << ".stype = "; - - os << (params.stype); - - os << ", "; - os << ".pNext = "; - - ur_params::serializeStruct(os, (params.pNext)); - - os << ", "; - os << ".flags = "; - - ur_params::serializeFlag(os, (params.flags)); - - os << "}"; - return os; -} -inline std::ostream &operator<<(std::ostream &os, - enum ur_context_info_t value) { + enum ur_memory_scope_capability_flag_t value) { switch (value) { - - case UR_CONTEXT_INFO_NUM_DEVICES: - os << "UR_CONTEXT_INFO_NUM_DEVICES"; - break; - - case UR_CONTEXT_INFO_DEVICES: - os << "UR_CONTEXT_INFO_DEVICES"; - break; - - case UR_CONTEXT_INFO_REFERENCE_COUNT: - os << "UR_CONTEXT_INFO_REFERENCE_COUNT"; - break; - - case UR_CONTEXT_INFO_USM_MEMCPY2D_SUPPORT: - os << "UR_CONTEXT_INFO_USM_MEMCPY2D_SUPPORT"; - break; - - case UR_CONTEXT_INFO_USM_FILL2D_SUPPORT: - os << "UR_CONTEXT_INFO_USM_FILL2D_SUPPORT"; + + case UR_MEMORY_SCOPE_CAPABILITY_FLAG_WORK_ITEM: + os << "UR_MEMORY_SCOPE_CAPABILITY_FLAG_WORK_ITEM"; break; - case UR_CONTEXT_INFO_ATOMIC_MEMORY_ORDER_CAPABILITIES: - os << "UR_CONTEXT_INFO_ATOMIC_MEMORY_ORDER_CAPABILITIES"; + case UR_MEMORY_SCOPE_CAPABILITY_FLAG_SUB_GROUP: + os << "UR_MEMORY_SCOPE_CAPABILITY_FLAG_SUB_GROUP"; break; - case UR_CONTEXT_INFO_ATOMIC_MEMORY_SCOPE_CAPABILITIES: - os << "UR_CONTEXT_INFO_ATOMIC_MEMORY_SCOPE_CAPABILITIES"; + case UR_MEMORY_SCOPE_CAPABILITY_FLAG_WORK_GROUP: + os << "UR_MEMORY_SCOPE_CAPABILITY_FLAG_WORK_GROUP"; break; - case UR_CONTEXT_INFO_ATOMIC_FENCE_ORDER_CAPABILITIES: - os << "UR_CONTEXT_INFO_ATOMIC_FENCE_ORDER_CAPABILITIES"; + case UR_MEMORY_SCOPE_CAPABILITY_FLAG_DEVICE: + os << "UR_MEMORY_SCOPE_CAPABILITY_FLAG_DEVICE"; break; - case UR_CONTEXT_INFO_ATOMIC_FENCE_SCOPE_CAPABILITIES: - os << "UR_CONTEXT_INFO_ATOMIC_FENCE_SCOPE_CAPABILITIES"; + case UR_MEMORY_SCOPE_CAPABILITY_FLAG_SYSTEM: + os << "UR_MEMORY_SCOPE_CAPABILITY_FLAG_SYSTEM"; break; default: os << "unknown enumerator"; @@ -4615,203 +5014,97 @@ inline std::ostream &operator<<(std::ostream &os, return os; } namespace ur_params { -template <> -inline void serializeTagged(std::ostream &os, const void *ptr, - ur_context_info_t value, size_t size) { - if (ptr == NULL) { - serializePtr(os, ptr); - return; - } - - switch (value) { - - case UR_CONTEXT_INFO_NUM_DEVICES: { - const uint32_t *tptr = (const uint32_t *)ptr; - if (sizeof(uint32_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(uint32_t) << ")"; - return; - } - os << (void *)(tptr) << " ("; - - os << *tptr; - - os << ")"; - } break; - - case UR_CONTEXT_INFO_DEVICES: { - - const ur_device_handle_t *tptr = (const ur_device_handle_t *)ptr; - os << "{"; - size_t nelems = size / sizeof(ur_device_handle_t); - for (size_t i = 0; i < nelems; ++i) { - if (i != 0) { - os << ", "; - } - - ur_params::serializePtr(os, tptr[i]); - } - os << "}"; - } break; - - case UR_CONTEXT_INFO_REFERENCE_COUNT: { - const uint32_t *tptr = (const uint32_t *)ptr; - if (sizeof(uint32_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(uint32_t) << ")"; - return; - } - os << (void *)(tptr) << " ("; - - os << *tptr; - os << ")"; - } break; +template <> +inline void serializeFlag(std::ostream &os, + uint32_t flag) { + uint32_t val = flag; + bool first = true; - case UR_CONTEXT_INFO_USM_MEMCPY2D_SUPPORT: { - const ur_bool_t *tptr = (const ur_bool_t *)ptr; - if (sizeof(ur_bool_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(ur_bool_t) << ")"; - return; + if ((val & UR_MEMORY_SCOPE_CAPABILITY_FLAG_WORK_ITEM) == + (uint32_t)UR_MEMORY_SCOPE_CAPABILITY_FLAG_WORK_ITEM) { + val ^= (uint32_t)UR_MEMORY_SCOPE_CAPABILITY_FLAG_WORK_ITEM; + if (!first) { + os << " | "; + } else { + first = false; } - os << (void *)(tptr) << " ("; - - os << *tptr; - - os << ")"; - } break; + os << UR_MEMORY_SCOPE_CAPABILITY_FLAG_WORK_ITEM; + } - case UR_CONTEXT_INFO_USM_FILL2D_SUPPORT: { - const ur_bool_t *tptr = (const ur_bool_t *)ptr; - if (sizeof(ur_bool_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(ur_bool_t) << ")"; - return; + if ((val & UR_MEMORY_SCOPE_CAPABILITY_FLAG_SUB_GROUP) == + (uint32_t)UR_MEMORY_SCOPE_CAPABILITY_FLAG_SUB_GROUP) { + val ^= (uint32_t)UR_MEMORY_SCOPE_CAPABILITY_FLAG_SUB_GROUP; + if (!first) { + os << " | "; + } else { + first = false; } - os << (void *)(tptr) << " ("; - - os << *tptr; - - os << ")"; - } break; + os << UR_MEMORY_SCOPE_CAPABILITY_FLAG_SUB_GROUP; + } - case UR_CONTEXT_INFO_ATOMIC_MEMORY_ORDER_CAPABILITIES: { - const ur_memory_order_capability_flags_t *tptr = - (const ur_memory_order_capability_flags_t *)ptr; - if (sizeof(ur_memory_order_capability_flags_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(ur_memory_order_capability_flags_t) - << ")"; - return; + if ((val & UR_MEMORY_SCOPE_CAPABILITY_FLAG_WORK_GROUP) == + (uint32_t)UR_MEMORY_SCOPE_CAPABILITY_FLAG_WORK_GROUP) { + val ^= (uint32_t)UR_MEMORY_SCOPE_CAPABILITY_FLAG_WORK_GROUP; + if (!first) { + os << " | "; + } else { + first = false; } - os << (void *)(tptr) << " ("; - - ur_params::serializeFlag(os, *tptr); - - os << ")"; - } break; + os << UR_MEMORY_SCOPE_CAPABILITY_FLAG_WORK_GROUP; + } - case UR_CONTEXT_INFO_ATOMIC_MEMORY_SCOPE_CAPABILITIES: { - const ur_memory_scope_capability_flags_t *tptr = - (const ur_memory_scope_capability_flags_t *)ptr; - if (sizeof(ur_memory_scope_capability_flags_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(ur_memory_scope_capability_flags_t) - << ")"; - return; + if ((val & UR_MEMORY_SCOPE_CAPABILITY_FLAG_DEVICE) == + (uint32_t)UR_MEMORY_SCOPE_CAPABILITY_FLAG_DEVICE) { + val ^= (uint32_t)UR_MEMORY_SCOPE_CAPABILITY_FLAG_DEVICE; + if (!first) { + os << " | "; + } else { + first = false; } - os << (void *)(tptr) << " ("; - - ur_params::serializeFlag(os, *tptr); - - os << ")"; - } break; + os << UR_MEMORY_SCOPE_CAPABILITY_FLAG_DEVICE; + } - case UR_CONTEXT_INFO_ATOMIC_FENCE_ORDER_CAPABILITIES: { - const ur_memory_order_capability_flags_t *tptr = - (const ur_memory_order_capability_flags_t *)ptr; - if (sizeof(ur_memory_order_capability_flags_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(ur_memory_order_capability_flags_t) - << ")"; - return; + if ((val & UR_MEMORY_SCOPE_CAPABILITY_FLAG_SYSTEM) == + (uint32_t)UR_MEMORY_SCOPE_CAPABILITY_FLAG_SYSTEM) { + val ^= (uint32_t)UR_MEMORY_SCOPE_CAPABILITY_FLAG_SYSTEM; + if (!first) { + os << " | "; + } else { + first = false; } - os << (void *)(tptr) << " ("; - - ur_params::serializeFlag(os, *tptr); - - os << ")"; - } break; - - case UR_CONTEXT_INFO_ATOMIC_FENCE_SCOPE_CAPABILITIES: { - const ur_memory_scope_capability_flags_t *tptr = - (const ur_memory_scope_capability_flags_t *)ptr; - if (sizeof(ur_memory_scope_capability_flags_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(ur_memory_scope_capability_flags_t) - << ")"; - return; + os << UR_MEMORY_SCOPE_CAPABILITY_FLAG_SYSTEM; + } + if (val != 0) { + std::bitset<32> bits(val); + if (!first) { + os << " | "; } - os << (void *)(tptr) << " ("; - - ur_params::serializeFlag(os, *tptr); - - os << ")"; - } break; - default: - os << "unknown enumerator"; - break; + os << "unknown bit flags " << bits; + } else if (first) { + os << "0"; } } } // namespace ur_params inline std::ostream & operator<<(std::ostream &os, - const struct ur_context_native_properties_t params) { - os << "(struct ur_context_native_properties_t){"; - - os << ".stype = "; - - os << (params.stype); - - os << ", "; - os << ".pNext = "; - - ur_params::serializeStruct(os, (params.pNext)); - - os << ", "; - os << ".isNativeHandleOwned = "; - - os << (params.isNativeHandleOwned); - - os << "}"; - return os; -} -inline std::ostream &operator<<(std::ostream &os, enum ur_mem_flag_t value) { + enum ur_device_usm_access_capability_flag_t value) { switch (value) { - case UR_MEM_FLAG_READ_WRITE: - os << "UR_MEM_FLAG_READ_WRITE"; - break; - - case UR_MEM_FLAG_WRITE_ONLY: - os << "UR_MEM_FLAG_WRITE_ONLY"; - break; - - case UR_MEM_FLAG_READ_ONLY: - os << "UR_MEM_FLAG_READ_ONLY"; + case UR_DEVICE_USM_ACCESS_CAPABILITY_FLAG_ACCESS: + os << "UR_DEVICE_USM_ACCESS_CAPABILITY_FLAG_ACCESS"; break; - case UR_MEM_FLAG_USE_HOST_POINTER: - os << "UR_MEM_FLAG_USE_HOST_POINTER"; + case UR_DEVICE_USM_ACCESS_CAPABILITY_FLAG_ATOMIC_ACCESS: + os << "UR_DEVICE_USM_ACCESS_CAPABILITY_FLAG_ATOMIC_ACCESS"; break; - case UR_MEM_FLAG_ALLOC_HOST_POINTER: - os << "UR_MEM_FLAG_ALLOC_HOST_POINTER"; + case UR_DEVICE_USM_ACCESS_CAPABILITY_FLAG_CONCURRENT_ACCESS: + os << "UR_DEVICE_USM_ACCESS_CAPABILITY_FLAG_CONCURRENT_ACCESS"; break; - case UR_MEM_FLAG_ALLOC_COPY_HOST_POINTER: - os << "UR_MEM_FLAG_ALLOC_COPY_HOST_POINTER"; + case UR_DEVICE_USM_ACCESS_CAPABILITY_FLAG_ATOMIC_CONCURRENT_ACCESS: + os << "UR_DEVICE_USM_ACCESS_CAPABILITY_FLAG_ATOMIC_CONCURRENT_ACCESS"; break; default: os << "unknown enumerator"; @@ -4822,71 +5115,56 @@ inline std::ostream &operator<<(std::ostream &os, enum ur_mem_flag_t value) { namespace ur_params { template <> -inline void serializeFlag(std::ostream &os, uint32_t flag) { +inline void +serializeFlag(std::ostream &os, + uint32_t flag) { uint32_t val = flag; bool first = true; - if ((val & UR_MEM_FLAG_READ_WRITE) == (uint32_t)UR_MEM_FLAG_READ_WRITE) { - val ^= (uint32_t)UR_MEM_FLAG_READ_WRITE; - if (!first) { - os << " | "; - } else { - first = false; - } - os << UR_MEM_FLAG_READ_WRITE; - } - - if ((val & UR_MEM_FLAG_WRITE_ONLY) == (uint32_t)UR_MEM_FLAG_WRITE_ONLY) { - val ^= (uint32_t)UR_MEM_FLAG_WRITE_ONLY; - if (!first) { - os << " | "; - } else { - first = false; - } - os << UR_MEM_FLAG_WRITE_ONLY; - } - - if ((val & UR_MEM_FLAG_READ_ONLY) == (uint32_t)UR_MEM_FLAG_READ_ONLY) { - val ^= (uint32_t)UR_MEM_FLAG_READ_ONLY; + if ((val & UR_DEVICE_USM_ACCESS_CAPABILITY_FLAG_ACCESS) == + (uint32_t)UR_DEVICE_USM_ACCESS_CAPABILITY_FLAG_ACCESS) { + val ^= (uint32_t)UR_DEVICE_USM_ACCESS_CAPABILITY_FLAG_ACCESS; if (!first) { os << " | "; } else { first = false; } - os << UR_MEM_FLAG_READ_ONLY; + os << UR_DEVICE_USM_ACCESS_CAPABILITY_FLAG_ACCESS; } - if ((val & UR_MEM_FLAG_USE_HOST_POINTER) == - (uint32_t)UR_MEM_FLAG_USE_HOST_POINTER) { - val ^= (uint32_t)UR_MEM_FLAG_USE_HOST_POINTER; + if ((val & UR_DEVICE_USM_ACCESS_CAPABILITY_FLAG_ATOMIC_ACCESS) == + (uint32_t)UR_DEVICE_USM_ACCESS_CAPABILITY_FLAG_ATOMIC_ACCESS) { + val ^= (uint32_t)UR_DEVICE_USM_ACCESS_CAPABILITY_FLAG_ATOMIC_ACCESS; if (!first) { os << " | "; } else { first = false; } - os << UR_MEM_FLAG_USE_HOST_POINTER; + os << UR_DEVICE_USM_ACCESS_CAPABILITY_FLAG_ATOMIC_ACCESS; } - if ((val & UR_MEM_FLAG_ALLOC_HOST_POINTER) == - (uint32_t)UR_MEM_FLAG_ALLOC_HOST_POINTER) { - val ^= (uint32_t)UR_MEM_FLAG_ALLOC_HOST_POINTER; + if ((val & UR_DEVICE_USM_ACCESS_CAPABILITY_FLAG_CONCURRENT_ACCESS) == + (uint32_t)UR_DEVICE_USM_ACCESS_CAPABILITY_FLAG_CONCURRENT_ACCESS) { + val ^= (uint32_t)UR_DEVICE_USM_ACCESS_CAPABILITY_FLAG_CONCURRENT_ACCESS; if (!first) { os << " | "; } else { first = false; } - os << UR_MEM_FLAG_ALLOC_HOST_POINTER; + os << UR_DEVICE_USM_ACCESS_CAPABILITY_FLAG_CONCURRENT_ACCESS; } - if ((val & UR_MEM_FLAG_ALLOC_COPY_HOST_POINTER) == - (uint32_t)UR_MEM_FLAG_ALLOC_COPY_HOST_POINTER) { - val ^= (uint32_t)UR_MEM_FLAG_ALLOC_COPY_HOST_POINTER; + if ((val & UR_DEVICE_USM_ACCESS_CAPABILITY_FLAG_ATOMIC_CONCURRENT_ACCESS) == + (uint32_t) + UR_DEVICE_USM_ACCESS_CAPABILITY_FLAG_ATOMIC_CONCURRENT_ACCESS) { + val ^= (uint32_t) + UR_DEVICE_USM_ACCESS_CAPABILITY_FLAG_ATOMIC_CONCURRENT_ACCESS; if (!first) { os << " | "; } else { first = false; } - os << UR_MEM_FLAG_ALLOC_COPY_HOST_POINTER; + os << UR_DEVICE_USM_ACCESS_CAPABILITY_FLAG_ATOMIC_CONCURRENT_ACCESS; } if (val != 0) { std::bitset<32> bits(val); @@ -4899,51 +5177,12 @@ inline void serializeFlag(std::ostream &os, uint32_t flag) { } } } // namespace ur_params -inline std::ostream &operator<<(std::ostream &os, enum ur_mem_type_t value) { - switch (value) { - - case UR_MEM_TYPE_BUFFER: - os << "UR_MEM_TYPE_BUFFER"; - break; - - case UR_MEM_TYPE_IMAGE2D: - os << "UR_MEM_TYPE_IMAGE2D"; - break; - - case UR_MEM_TYPE_IMAGE3D: - os << "UR_MEM_TYPE_IMAGE3D"; - break; - - case UR_MEM_TYPE_IMAGE2D_ARRAY: - os << "UR_MEM_TYPE_IMAGE2D_ARRAY"; - break; - - case UR_MEM_TYPE_IMAGE1D: - os << "UR_MEM_TYPE_IMAGE1D"; - break; - - case UR_MEM_TYPE_IMAGE1D_ARRAY: - os << "UR_MEM_TYPE_IMAGE1D_ARRAY"; - break; - - case UR_MEM_TYPE_IMAGE1D_BUFFER: - os << "UR_MEM_TYPE_IMAGE1D_BUFFER"; - break; - default: - os << "unknown enumerator"; - break; - } - return os; -} -inline std::ostream &operator<<(std::ostream &os, enum ur_mem_info_t value) { +inline std::ostream &operator<<(std::ostream &os, + enum ur_context_flag_t value) { switch (value) { - case UR_MEM_INFO_SIZE: - os << "UR_MEM_INFO_SIZE"; - break; - - case UR_MEM_INFO_CONTEXT: - os << "UR_MEM_INFO_CONTEXT"; + case UR_CONTEXT_FLAG_TBD: + os << "UR_CONTEXT_FLAG_TBD"; break; default: os << "unknown enumerator"; @@ -4952,216 +5191,91 @@ inline std::ostream &operator<<(std::ostream &os, enum ur_mem_info_t value) { return os; } namespace ur_params { -template <> -inline void serializeTagged(std::ostream &os, const void *ptr, - ur_mem_info_t value, size_t size) { - if (ptr == NULL) { - serializePtr(os, ptr); - return; - } - switch (value) { - - case UR_MEM_INFO_SIZE: { - const size_t *tptr = (const size_t *)ptr; - if (sizeof(size_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(size_t) << ")"; - return; - } - os << (void *)(tptr) << " ("; - - os << *tptr; - - os << ")"; - } break; +template <> +inline void serializeFlag(std::ostream &os, uint32_t flag) { + uint32_t val = flag; + bool first = true; - case UR_MEM_INFO_CONTEXT: { - const ur_context_handle_t *tptr = (const ur_context_handle_t *)ptr; - if (sizeof(ur_context_handle_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(ur_context_handle_t) << ")"; - return; + if ((val & UR_CONTEXT_FLAG_TBD) == (uint32_t)UR_CONTEXT_FLAG_TBD) { + val ^= (uint32_t)UR_CONTEXT_FLAG_TBD; + if (!first) { + os << " | "; + } else { + first = false; } - os << (void *)(tptr) << " ("; - - ur_params::serializePtr(os, *tptr); - - os << ")"; - } break; - default: - os << "unknown enumerator"; - break; - } -} -} // namespace ur_params -inline std::ostream &operator<<(std::ostream &os, - enum ur_image_channel_order_t value) { - switch (value) { - - case UR_IMAGE_CHANNEL_ORDER_A: - os << "UR_IMAGE_CHANNEL_ORDER_A"; - break; - - case UR_IMAGE_CHANNEL_ORDER_R: - os << "UR_IMAGE_CHANNEL_ORDER_R"; - break; - - case UR_IMAGE_CHANNEL_ORDER_RG: - os << "UR_IMAGE_CHANNEL_ORDER_RG"; - break; - - case UR_IMAGE_CHANNEL_ORDER_RA: - os << "UR_IMAGE_CHANNEL_ORDER_RA"; - break; - - case UR_IMAGE_CHANNEL_ORDER_RGB: - os << "UR_IMAGE_CHANNEL_ORDER_RGB"; - break; - - case UR_IMAGE_CHANNEL_ORDER_RGBA: - os << "UR_IMAGE_CHANNEL_ORDER_RGBA"; - break; - - case UR_IMAGE_CHANNEL_ORDER_BGRA: - os << "UR_IMAGE_CHANNEL_ORDER_BGRA"; - break; - - case UR_IMAGE_CHANNEL_ORDER_ARGB: - os << "UR_IMAGE_CHANNEL_ORDER_ARGB"; - break; - - case UR_IMAGE_CHANNEL_ORDER_ABGR: - os << "UR_IMAGE_CHANNEL_ORDER_ABGR"; - break; - - case UR_IMAGE_CHANNEL_ORDER_INTENSITY: - os << "UR_IMAGE_CHANNEL_ORDER_INTENSITY"; - break; - - case UR_IMAGE_CHANNEL_ORDER_LUMINANCE: - os << "UR_IMAGE_CHANNEL_ORDER_LUMINANCE"; - break; - - case UR_IMAGE_CHANNEL_ORDER_RX: - os << "UR_IMAGE_CHANNEL_ORDER_RX"; - break; - - case UR_IMAGE_CHANNEL_ORDER_RGX: - os << "UR_IMAGE_CHANNEL_ORDER_RGX"; - break; - - case UR_IMAGE_CHANNEL_ORDER_RGBX: - os << "UR_IMAGE_CHANNEL_ORDER_RGBX"; - break; - - case UR_IMAGE_CHANNEL_ORDER_SRGBA: - os << "UR_IMAGE_CHANNEL_ORDER_SRGBA"; - break; - default: - os << "unknown enumerator"; - break; + os << UR_CONTEXT_FLAG_TBD; } - return os; -} -inline std::ostream &operator<<(std::ostream &os, - enum ur_image_channel_type_t value) { - switch (value) { - - case UR_IMAGE_CHANNEL_TYPE_SNORM_INT8: - os << "UR_IMAGE_CHANNEL_TYPE_SNORM_INT8"; - break; - - case UR_IMAGE_CHANNEL_TYPE_SNORM_INT16: - os << "UR_IMAGE_CHANNEL_TYPE_SNORM_INT16"; - break; - - case UR_IMAGE_CHANNEL_TYPE_UNORM_INT8: - os << "UR_IMAGE_CHANNEL_TYPE_UNORM_INT8"; - break; - - case UR_IMAGE_CHANNEL_TYPE_UNORM_INT16: - os << "UR_IMAGE_CHANNEL_TYPE_UNORM_INT16"; - break; - - case UR_IMAGE_CHANNEL_TYPE_UNORM_SHORT_565: - os << "UR_IMAGE_CHANNEL_TYPE_UNORM_SHORT_565"; - break; - - case UR_IMAGE_CHANNEL_TYPE_UNORM_SHORT_555: - os << "UR_IMAGE_CHANNEL_TYPE_UNORM_SHORT_555"; - break; + if (val != 0) { + std::bitset<32> bits(val); + if (!first) { + os << " | "; + } + os << "unknown bit flags " << bits; + } else if (first) { + os << "0"; + } +} +} // namespace ur_params +inline std::ostream &operator<<(std::ostream &os, + const struct ur_context_properties_t params) { + os << "(struct ur_context_properties_t){"; - case UR_IMAGE_CHANNEL_TYPE_INT_101010: - os << "UR_IMAGE_CHANNEL_TYPE_INT_101010"; - break; + os << ".stype = "; - case UR_IMAGE_CHANNEL_TYPE_SIGNED_INT8: - os << "UR_IMAGE_CHANNEL_TYPE_SIGNED_INT8"; - break; + os << (params.stype); - case UR_IMAGE_CHANNEL_TYPE_SIGNED_INT16: - os << "UR_IMAGE_CHANNEL_TYPE_SIGNED_INT16"; - break; + os << ", "; + os << ".pNext = "; - case UR_IMAGE_CHANNEL_TYPE_SIGNED_INT32: - os << "UR_IMAGE_CHANNEL_TYPE_SIGNED_INT32"; - break; + ur_params::serializeStruct(os, (params.pNext)); - case UR_IMAGE_CHANNEL_TYPE_UNSIGNED_INT8: - os << "UR_IMAGE_CHANNEL_TYPE_UNSIGNED_INT8"; - break; + os << ", "; + os << ".flags = "; - case UR_IMAGE_CHANNEL_TYPE_UNSIGNED_INT16: - os << "UR_IMAGE_CHANNEL_TYPE_UNSIGNED_INT16"; - break; + ur_params::serializeFlag(os, (params.flags)); - case UR_IMAGE_CHANNEL_TYPE_UNSIGNED_INT32: - os << "UR_IMAGE_CHANNEL_TYPE_UNSIGNED_INT32"; - break; + os << "}"; + return os; +} +inline std::ostream &operator<<(std::ostream &os, + enum ur_context_info_t value) { + switch (value) { - case UR_IMAGE_CHANNEL_TYPE_HALF_FLOAT: - os << "UR_IMAGE_CHANNEL_TYPE_HALF_FLOAT"; + case UR_CONTEXT_INFO_NUM_DEVICES: + os << "UR_CONTEXT_INFO_NUM_DEVICES"; break; - case UR_IMAGE_CHANNEL_TYPE_FLOAT: - os << "UR_IMAGE_CHANNEL_TYPE_FLOAT"; - break; - default: - os << "unknown enumerator"; + case UR_CONTEXT_INFO_DEVICES: + os << "UR_CONTEXT_INFO_DEVICES"; break; - } - return os; -} -inline std::ostream &operator<<(std::ostream &os, enum ur_image_info_t value) { - switch (value) { - case UR_IMAGE_INFO_FORMAT: - os << "UR_IMAGE_INFO_FORMAT"; + case UR_CONTEXT_INFO_REFERENCE_COUNT: + os << "UR_CONTEXT_INFO_REFERENCE_COUNT"; break; - case UR_IMAGE_INFO_ELEMENT_SIZE: - os << "UR_IMAGE_INFO_ELEMENT_SIZE"; + case UR_CONTEXT_INFO_USM_MEMCPY2D_SUPPORT: + os << "UR_CONTEXT_INFO_USM_MEMCPY2D_SUPPORT"; break; - case UR_IMAGE_INFO_ROW_PITCH: - os << "UR_IMAGE_INFO_ROW_PITCH"; + case UR_CONTEXT_INFO_USM_FILL2D_SUPPORT: + os << "UR_CONTEXT_INFO_USM_FILL2D_SUPPORT"; break; - case UR_IMAGE_INFO_SLICE_PITCH: - os << "UR_IMAGE_INFO_SLICE_PITCH"; + case UR_CONTEXT_INFO_ATOMIC_MEMORY_ORDER_CAPABILITIES: + os << "UR_CONTEXT_INFO_ATOMIC_MEMORY_ORDER_CAPABILITIES"; break; - case UR_IMAGE_INFO_WIDTH: - os << "UR_IMAGE_INFO_WIDTH"; + case UR_CONTEXT_INFO_ATOMIC_MEMORY_SCOPE_CAPABILITIES: + os << "UR_CONTEXT_INFO_ATOMIC_MEMORY_SCOPE_CAPABILITIES"; break; - case UR_IMAGE_INFO_HEIGHT: - os << "UR_IMAGE_INFO_HEIGHT"; + case UR_CONTEXT_INFO_ATOMIC_FENCE_ORDER_CAPABILITIES: + os << "UR_CONTEXT_INFO_ATOMIC_FENCE_ORDER_CAPABILITIES"; break; - case UR_IMAGE_INFO_DEPTH: - os << "UR_IMAGE_INFO_DEPTH"; + case UR_CONTEXT_INFO_ATOMIC_FENCE_SCOPE_CAPABILITIES: + os << "UR_CONTEXT_INFO_ATOMIC_FENCE_SCOPE_CAPABILITIES"; break; default: os << "unknown enumerator"; @@ -5172,7 +5286,7 @@ inline std::ostream &operator<<(std::ostream &os, enum ur_image_info_t value) { namespace ur_params { template <> inline void serializeTagged(std::ostream &os, const void *ptr, - ur_image_info_t value, size_t size) { + ur_context_info_t value, size_t size) { if (ptr == NULL) { serializePtr(os, ptr); return; @@ -5180,67 +5294,11 @@ inline void serializeTagged(std::ostream &os, const void *ptr, switch (value) { - case UR_IMAGE_INFO_FORMAT: { - const ur_image_format_t *tptr = (const ur_image_format_t *)ptr; - if (sizeof(ur_image_format_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(ur_image_format_t) << ")"; - return; - } - os << (void *)(tptr) << " ("; - - os << *tptr; - - os << ")"; - } break; - - case UR_IMAGE_INFO_ELEMENT_SIZE: { - const size_t *tptr = (const size_t *)ptr; - if (sizeof(size_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(size_t) << ")"; - return; - } - os << (void *)(tptr) << " ("; - - os << *tptr; - - os << ")"; - } break; - - case UR_IMAGE_INFO_ROW_PITCH: { - const size_t *tptr = (const size_t *)ptr; - if (sizeof(size_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(size_t) << ")"; - return; - } - os << (void *)(tptr) << " ("; - - os << *tptr; - - os << ")"; - } break; - - case UR_IMAGE_INFO_SLICE_PITCH: { - const size_t *tptr = (const size_t *)ptr; - if (sizeof(size_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(size_t) << ")"; - return; - } - os << (void *)(tptr) << " ("; - - os << *tptr; - - os << ")"; - } break; - - case UR_IMAGE_INFO_WIDTH: { - const size_t *tptr = (const size_t *)ptr; - if (sizeof(size_t) > size) { + case UR_CONTEXT_INFO_NUM_DEVICES: { + const uint32_t *tptr = (const uint32_t *)ptr; + if (sizeof(uint32_t) > size) { os << "invalid size (is: " << size - << ", expected: >=" << sizeof(size_t) << ")"; + << ", expected: >=" << sizeof(uint32_t) << ")"; return; } os << (void *)(tptr) << " ("; @@ -5250,163 +5308,136 @@ inline void serializeTagged(std::ostream &os, const void *ptr, os << ")"; } break; - case UR_IMAGE_INFO_HEIGHT: { - const size_t *tptr = (const size_t *)ptr; - if (sizeof(size_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(size_t) << ")"; - return; - } - os << (void *)(tptr) << " ("; - - os << *tptr; + case UR_CONTEXT_INFO_DEVICES: { - os << ")"; - } break; + const ur_device_handle_t *tptr = (const ur_device_handle_t *)ptr; + os << "{"; + size_t nelems = size / sizeof(ur_device_handle_t); + for (size_t i = 0; i < nelems; ++i) { + if (i != 0) { + os << ", "; + } - case UR_IMAGE_INFO_DEPTH: { - const size_t *tptr = (const size_t *)ptr; - if (sizeof(size_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(size_t) << ")"; - return; + ur_params::serializePtr(os, tptr[i]); } - os << (void *)(tptr) << " ("; - - os << *tptr; - - os << ")"; + os << "}"; } break; - default: - os << "unknown enumerator"; - break; - } -} -} // namespace ur_params -inline std::ostream &operator<<(std::ostream &os, - const struct ur_image_format_t params) { - os << "(struct ur_image_format_t){"; - - os << ".channelOrder = "; - - os << (params.channelOrder); - - os << ", "; - os << ".channelType = "; - - os << (params.channelType); - - os << "}"; - return os; -} -inline std::ostream &operator<<(std::ostream &os, - const struct ur_image_desc_t params) { - os << "(struct ur_image_desc_t){"; - - os << ".stype = "; - - os << (params.stype); - - os << ", "; - os << ".pNext = "; - - ur_params::serializeStruct(os, (params.pNext)); - - os << ", "; - os << ".type = "; - os << (params.type); - - os << ", "; - os << ".width = "; - - os << (params.width); - - os << ", "; - os << ".height = "; - - os << (params.height); - - os << ", "; - os << ".depth = "; - - os << (params.depth); - - os << ", "; - os << ".arraySize = "; - - os << (params.arraySize); - - os << ", "; - os << ".rowPitch = "; - - os << (params.rowPitch); - - os << ", "; - os << ".slicePitch = "; + case UR_CONTEXT_INFO_REFERENCE_COUNT: { + const uint32_t *tptr = (const uint32_t *)ptr; + if (sizeof(uint32_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(uint32_t) << ")"; + return; + } + os << (void *)(tptr) << " ("; - os << (params.slicePitch); + os << *tptr; - os << ", "; - os << ".numMipLevel = "; + os << ")"; + } break; - os << (params.numMipLevel); + case UR_CONTEXT_INFO_USM_MEMCPY2D_SUPPORT: { + const ur_bool_t *tptr = (const ur_bool_t *)ptr; + if (sizeof(ur_bool_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(ur_bool_t) << ")"; + return; + } + os << (void *)(tptr) << " ("; - os << ", "; - os << ".numSamples = "; + os << *tptr; - os << (params.numSamples); + os << ")"; + } break; - os << "}"; - return os; -} -inline std::ostream &operator<<(std::ostream &os, - const struct ur_buffer_properties_t params) { - os << "(struct ur_buffer_properties_t){"; + case UR_CONTEXT_INFO_USM_FILL2D_SUPPORT: { + const ur_bool_t *tptr = (const ur_bool_t *)ptr; + if (sizeof(ur_bool_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(ur_bool_t) << ")"; + return; + } + os << (void *)(tptr) << " ("; - os << ".stype = "; + os << *tptr; - os << (params.stype); + os << ")"; + } break; - os << ", "; - os << ".pNext = "; + case UR_CONTEXT_INFO_ATOMIC_MEMORY_ORDER_CAPABILITIES: { + const ur_memory_order_capability_flags_t *tptr = + (const ur_memory_order_capability_flags_t *)ptr; + if (sizeof(ur_memory_order_capability_flags_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(ur_memory_order_capability_flags_t) + << ")"; + return; + } + os << (void *)(tptr) << " ("; - ur_params::serializeStruct(os, (params.pNext)); + ur_params::serializeFlag(os, *tptr); - os << ", "; - os << ".pHost = "; + os << ")"; + } break; - ur_params::serializePtr(os, (params.pHost)); + case UR_CONTEXT_INFO_ATOMIC_MEMORY_SCOPE_CAPABILITIES: { + const ur_memory_scope_capability_flags_t *tptr = + (const ur_memory_scope_capability_flags_t *)ptr; + if (sizeof(ur_memory_scope_capability_flags_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(ur_memory_scope_capability_flags_t) + << ")"; + return; + } + os << (void *)(tptr) << " ("; - os << "}"; - return os; -} -inline std::ostream & -operator<<(std::ostream &os, - const struct ur_buffer_channel_properties_t params) { - os << "(struct ur_buffer_channel_properties_t){"; + ur_params::serializeFlag(os, *tptr); - os << ".stype = "; + os << ")"; + } break; - os << (params.stype); + case UR_CONTEXT_INFO_ATOMIC_FENCE_ORDER_CAPABILITIES: { + const ur_memory_order_capability_flags_t *tptr = + (const ur_memory_order_capability_flags_t *)ptr; + if (sizeof(ur_memory_order_capability_flags_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(ur_memory_order_capability_flags_t) + << ")"; + return; + } + os << (void *)(tptr) << " ("; - os << ", "; - os << ".pNext = "; + ur_params::serializeFlag(os, *tptr); - ur_params::serializeStruct(os, (params.pNext)); + os << ")"; + } break; - os << ", "; - os << ".channel = "; + case UR_CONTEXT_INFO_ATOMIC_FENCE_SCOPE_CAPABILITIES: { + const ur_memory_scope_capability_flags_t *tptr = + (const ur_memory_scope_capability_flags_t *)ptr; + if (sizeof(ur_memory_scope_capability_flags_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(ur_memory_scope_capability_flags_t) + << ")"; + return; + } + os << (void *)(tptr) << " ("; - os << (params.channel); + ur_params::serializeFlag(os, *tptr); - os << "}"; - return os; + os << ")"; + } break; + default: + os << "unknown enumerator"; + break; + } } +} // namespace ur_params inline std::ostream & operator<<(std::ostream &os, - const struct ur_buffer_alloc_location_properties_t params) { - os << "(struct ur_buffer_alloc_location_properties_t){"; + const struct ur_context_native_properties_t params) { + os << "(struct ur_context_native_properties_t){"; os << ".stype = "; @@ -5418,45 +5449,38 @@ operator<<(std::ostream &os, ur_params::serializeStruct(os, (params.pNext)); os << ", "; - os << ".location = "; + os << ".isNativeHandleOwned = "; - os << (params.location); + os << (params.isNativeHandleOwned); os << "}"; return os; } -inline std::ostream &operator<<(std::ostream &os, - const struct ur_buffer_region_t params) { - os << "(struct ur_buffer_region_t){"; - - os << ".stype = "; - - os << (params.stype); - - os << ", "; - os << ".pNext = "; - - ur_params::serializeStruct(os, (params.pNext)); +inline std::ostream &operator<<(std::ostream &os, enum ur_mem_flag_t value) { + switch (value) { - os << ", "; - os << ".origin = "; + case UR_MEM_FLAG_READ_WRITE: + os << "UR_MEM_FLAG_READ_WRITE"; + break; - os << (params.origin); + case UR_MEM_FLAG_WRITE_ONLY: + os << "UR_MEM_FLAG_WRITE_ONLY"; + break; - os << ", "; - os << ".size = "; + case UR_MEM_FLAG_READ_ONLY: + os << "UR_MEM_FLAG_READ_ONLY"; + break; - os << (params.size); + case UR_MEM_FLAG_USE_HOST_POINTER: + os << "UR_MEM_FLAG_USE_HOST_POINTER"; + break; - os << "}"; - return os; -} -inline std::ostream &operator<<(std::ostream &os, - enum ur_buffer_create_type_t value) { - switch (value) { + case UR_MEM_FLAG_ALLOC_HOST_POINTER: + os << "UR_MEM_FLAG_ALLOC_HOST_POINTER"; + break; - case UR_BUFFER_CREATE_TYPE_REGION: - os << "UR_BUFFER_CREATE_TYPE_REGION"; + case UR_MEM_FLAG_ALLOC_COPY_HOST_POINTER: + os << "UR_MEM_FLAG_ALLOC_COPY_HOST_POINTER"; break; default: os << "unknown enumerator"; @@ -5464,66 +5488,115 @@ inline std::ostream &operator<<(std::ostream &os, } return os; } -inline std::ostream & -operator<<(std::ostream &os, const struct ur_mem_native_properties_t params) { - os << "(struct ur_mem_native_properties_t){"; +namespace ur_params { - os << ".stype = "; +template <> +inline void serializeFlag(std::ostream &os, uint32_t flag) { + uint32_t val = flag; + bool first = true; - os << (params.stype); + if ((val & UR_MEM_FLAG_READ_WRITE) == (uint32_t)UR_MEM_FLAG_READ_WRITE) { + val ^= (uint32_t)UR_MEM_FLAG_READ_WRITE; + if (!first) { + os << " | "; + } else { + first = false; + } + os << UR_MEM_FLAG_READ_WRITE; + } - os << ", "; - os << ".pNext = "; + if ((val & UR_MEM_FLAG_WRITE_ONLY) == (uint32_t)UR_MEM_FLAG_WRITE_ONLY) { + val ^= (uint32_t)UR_MEM_FLAG_WRITE_ONLY; + if (!first) { + os << " | "; + } else { + first = false; + } + os << UR_MEM_FLAG_WRITE_ONLY; + } - ur_params::serializeStruct(os, (params.pNext)); + if ((val & UR_MEM_FLAG_READ_ONLY) == (uint32_t)UR_MEM_FLAG_READ_ONLY) { + val ^= (uint32_t)UR_MEM_FLAG_READ_ONLY; + if (!first) { + os << " | "; + } else { + first = false; + } + os << UR_MEM_FLAG_READ_ONLY; + } - os << ", "; - os << ".isNativeHandleOwned = "; + if ((val & UR_MEM_FLAG_USE_HOST_POINTER) == + (uint32_t)UR_MEM_FLAG_USE_HOST_POINTER) { + val ^= (uint32_t)UR_MEM_FLAG_USE_HOST_POINTER; + if (!first) { + os << " | "; + } else { + first = false; + } + os << UR_MEM_FLAG_USE_HOST_POINTER; + } - os << (params.isNativeHandleOwned); + if ((val & UR_MEM_FLAG_ALLOC_HOST_POINTER) == + (uint32_t)UR_MEM_FLAG_ALLOC_HOST_POINTER) { + val ^= (uint32_t)UR_MEM_FLAG_ALLOC_HOST_POINTER; + if (!first) { + os << " | "; + } else { + first = false; + } + os << UR_MEM_FLAG_ALLOC_HOST_POINTER; + } - os << "}"; - return os; + if ((val & UR_MEM_FLAG_ALLOC_COPY_HOST_POINTER) == + (uint32_t)UR_MEM_FLAG_ALLOC_COPY_HOST_POINTER) { + val ^= (uint32_t)UR_MEM_FLAG_ALLOC_COPY_HOST_POINTER; + if (!first) { + os << " | "; + } else { + first = false; + } + os << UR_MEM_FLAG_ALLOC_COPY_HOST_POINTER; + } + if (val != 0) { + std::bitset<32> bits(val); + if (!first) { + os << " | "; + } + os << "unknown bit flags " << bits; + } else if (first) { + os << "0"; + } } -inline std::ostream &operator<<(std::ostream &os, - enum ur_sampler_filter_mode_t value) { +} // namespace ur_params +inline std::ostream &operator<<(std::ostream &os, enum ur_mem_type_t value) { switch (value) { - case UR_SAMPLER_FILTER_MODE_NEAREST: - os << "UR_SAMPLER_FILTER_MODE_NEAREST"; + case UR_MEM_TYPE_BUFFER: + os << "UR_MEM_TYPE_BUFFER"; break; - case UR_SAMPLER_FILTER_MODE_LINEAR: - os << "UR_SAMPLER_FILTER_MODE_LINEAR"; - break; - default: - os << "unknown enumerator"; + case UR_MEM_TYPE_IMAGE2D: + os << "UR_MEM_TYPE_IMAGE2D"; break; - } - return os; -} -inline std::ostream &operator<<(std::ostream &os, - enum ur_sampler_addressing_mode_t value) { - switch (value) { - case UR_SAMPLER_ADDRESSING_MODE_NONE: - os << "UR_SAMPLER_ADDRESSING_MODE_NONE"; + case UR_MEM_TYPE_IMAGE3D: + os << "UR_MEM_TYPE_IMAGE3D"; break; - case UR_SAMPLER_ADDRESSING_MODE_CLAMP_TO_EDGE: - os << "UR_SAMPLER_ADDRESSING_MODE_CLAMP_TO_EDGE"; + case UR_MEM_TYPE_IMAGE2D_ARRAY: + os << "UR_MEM_TYPE_IMAGE2D_ARRAY"; break; - case UR_SAMPLER_ADDRESSING_MODE_CLAMP: - os << "UR_SAMPLER_ADDRESSING_MODE_CLAMP"; + case UR_MEM_TYPE_IMAGE1D: + os << "UR_MEM_TYPE_IMAGE1D"; break; - case UR_SAMPLER_ADDRESSING_MODE_REPEAT: - os << "UR_SAMPLER_ADDRESSING_MODE_REPEAT"; + case UR_MEM_TYPE_IMAGE1D_ARRAY: + os << "UR_MEM_TYPE_IMAGE1D_ARRAY"; break; - case UR_SAMPLER_ADDRESSING_MODE_MIRRORED_REPEAT: - os << "UR_SAMPLER_ADDRESSING_MODE_MIRRORED_REPEAT"; + case UR_MEM_TYPE_IMAGE1D_BUFFER: + os << "UR_MEM_TYPE_IMAGE1D_BUFFER"; break; default: os << "unknown enumerator"; @@ -5531,28 +5604,15 @@ inline std::ostream &operator<<(std::ostream &os, } return os; } -inline std::ostream &operator<<(std::ostream &os, - enum ur_sampler_info_t value) { +inline std::ostream &operator<<(std::ostream &os, enum ur_mem_info_t value) { switch (value) { - case UR_SAMPLER_INFO_REFERENCE_COUNT: - os << "UR_SAMPLER_INFO_REFERENCE_COUNT"; - break; - - case UR_SAMPLER_INFO_CONTEXT: - os << "UR_SAMPLER_INFO_CONTEXT"; - break; - - case UR_SAMPLER_INFO_NORMALIZED_COORDS: - os << "UR_SAMPLER_INFO_NORMALIZED_COORDS"; - break; - - case UR_SAMPLER_INFO_ADDRESSING_MODE: - os << "UR_SAMPLER_INFO_ADDRESSING_MODE"; + case UR_MEM_INFO_SIZE: + os << "UR_MEM_INFO_SIZE"; break; - case UR_SAMPLER_INFO_FILTER_MODE: - os << "UR_SAMPLER_INFO_FILTER_MODE"; + case UR_MEM_INFO_CONTEXT: + os << "UR_MEM_INFO_CONTEXT"; break; default: os << "unknown enumerator"; @@ -5563,7 +5623,7 @@ inline std::ostream &operator<<(std::ostream &os, namespace ur_params { template <> inline void serializeTagged(std::ostream &os, const void *ptr, - ur_sampler_info_t value, size_t size) { + ur_mem_info_t value, size_t size) { if (ptr == NULL) { serializePtr(os, ptr); return; @@ -5571,11 +5631,11 @@ inline void serializeTagged(std::ostream &os, const void *ptr, switch (value) { - case UR_SAMPLER_INFO_REFERENCE_COUNT: { - const uint32_t *tptr = (const uint32_t *)ptr; - if (sizeof(uint32_t) > size) { + case UR_MEM_INFO_SIZE: { + const size_t *tptr = (const size_t *)ptr; + if (sizeof(size_t) > size) { os << "invalid size (is: " << size - << ", expected: >=" << sizeof(uint32_t) << ")"; + << ", expected: >=" << sizeof(size_t) << ")"; return; } os << (void *)(tptr) << " ("; @@ -5585,7 +5645,7 @@ inline void serializeTagged(std::ostream &os, const void *ptr, os << ")"; } break; - case UR_SAMPLER_INFO_CONTEXT: { + case UR_MEM_INFO_CONTEXT: { const ur_context_handle_t *tptr = (const ur_context_handle_t *)ptr; if (sizeof(ur_context_handle_t) > size) { os << "invalid size (is: " << size @@ -5598,51 +5658,6 @@ inline void serializeTagged(std::ostream &os, const void *ptr, os << ")"; } break; - - case UR_SAMPLER_INFO_NORMALIZED_COORDS: { - const ur_bool_t *tptr = (const ur_bool_t *)ptr; - if (sizeof(ur_bool_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(ur_bool_t) << ")"; - return; - } - os << (void *)(tptr) << " ("; - - os << *tptr; - - os << ")"; - } break; - - case UR_SAMPLER_INFO_ADDRESSING_MODE: { - const ur_sampler_addressing_mode_t *tptr = - (const ur_sampler_addressing_mode_t *)ptr; - if (sizeof(ur_sampler_addressing_mode_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(ur_sampler_addressing_mode_t) - << ")"; - return; - } - os << (void *)(tptr) << " ("; - - os << *tptr; - - os << ")"; - } break; - - case UR_SAMPLER_INFO_FILTER_MODE: { - const ur_sampler_filter_mode_t *tptr = - (const ur_sampler_filter_mode_t *)ptr; - if (sizeof(ur_sampler_filter_mode_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(ur_sampler_filter_mode_t) << ")"; - return; - } - os << (void *)(tptr) << " ("; - - os << *tptr; - - os << ")"; - } break; default: os << "unknown enumerator"; break; @@ -5650,114 +5665,67 @@ inline void serializeTagged(std::ostream &os, const void *ptr, } } // namespace ur_params inline std::ostream &operator<<(std::ostream &os, - const struct ur_sampler_desc_t params) { - os << "(struct ur_sampler_desc_t){"; - - os << ".stype = "; - - os << (params.stype); - - os << ", "; - os << ".pNext = "; - - ur_params::serializeStruct(os, (params.pNext)); - - os << ", "; - os << ".normalizedCoords = "; - - os << (params.normalizedCoords); - - os << ", "; - os << ".addressingMode = "; - - os << (params.addressingMode); - - os << ", "; - os << ".filterMode = "; - - os << (params.filterMode); + enum ur_image_channel_order_t value) { + switch (value) { - os << "}"; - return os; -} -inline std::ostream & -operator<<(std::ostream &os, - const struct ur_sampler_native_properties_t params) { - os << "(struct ur_sampler_native_properties_t){"; + case UR_IMAGE_CHANNEL_ORDER_A: + os << "UR_IMAGE_CHANNEL_ORDER_A"; + break; - os << ".stype = "; + case UR_IMAGE_CHANNEL_ORDER_R: + os << "UR_IMAGE_CHANNEL_ORDER_R"; + break; - os << (params.stype); + case UR_IMAGE_CHANNEL_ORDER_RG: + os << "UR_IMAGE_CHANNEL_ORDER_RG"; + break; - os << ", "; - os << ".pNext = "; + case UR_IMAGE_CHANNEL_ORDER_RA: + os << "UR_IMAGE_CHANNEL_ORDER_RA"; + break; - ur_params::serializeStruct(os, (params.pNext)); + case UR_IMAGE_CHANNEL_ORDER_RGB: + os << "UR_IMAGE_CHANNEL_ORDER_RGB"; + break; - os << ", "; - os << ".isNativeHandleOwned = "; + case UR_IMAGE_CHANNEL_ORDER_RGBA: + os << "UR_IMAGE_CHANNEL_ORDER_RGBA"; + break; - os << (params.isNativeHandleOwned); + case UR_IMAGE_CHANNEL_ORDER_BGRA: + os << "UR_IMAGE_CHANNEL_ORDER_BGRA"; + break; - os << "}"; - return os; -} -inline std::ostream &operator<<(std::ostream &os, - enum ur_usm_host_mem_flag_t value) { - switch (value) { + case UR_IMAGE_CHANNEL_ORDER_ARGB: + os << "UR_IMAGE_CHANNEL_ORDER_ARGB"; + break; - case UR_USM_HOST_MEM_FLAG_INITIAL_PLACEMENT: - os << "UR_USM_HOST_MEM_FLAG_INITIAL_PLACEMENT"; + case UR_IMAGE_CHANNEL_ORDER_ABGR: + os << "UR_IMAGE_CHANNEL_ORDER_ABGR"; break; - default: - os << "unknown enumerator"; + + case UR_IMAGE_CHANNEL_ORDER_INTENSITY: + os << "UR_IMAGE_CHANNEL_ORDER_INTENSITY"; break; - } - return os; -} -namespace ur_params { -template <> -inline void serializeFlag(std::ostream &os, - uint32_t flag) { - uint32_t val = flag; - bool first = true; + case UR_IMAGE_CHANNEL_ORDER_LUMINANCE: + os << "UR_IMAGE_CHANNEL_ORDER_LUMINANCE"; + break; - if ((val & UR_USM_HOST_MEM_FLAG_INITIAL_PLACEMENT) == - (uint32_t)UR_USM_HOST_MEM_FLAG_INITIAL_PLACEMENT) { - val ^= (uint32_t)UR_USM_HOST_MEM_FLAG_INITIAL_PLACEMENT; - if (!first) { - os << " | "; - } else { - first = false; - } - os << UR_USM_HOST_MEM_FLAG_INITIAL_PLACEMENT; - } - if (val != 0) { - std::bitset<32> bits(val); - if (!first) { - os << " | "; - } - os << "unknown bit flags " << bits; - } else if (first) { - os << "0"; - } -} -} // namespace ur_params -inline std::ostream &operator<<(std::ostream &os, - enum ur_usm_device_mem_flag_t value) { - switch (value) { + case UR_IMAGE_CHANNEL_ORDER_RX: + os << "UR_IMAGE_CHANNEL_ORDER_RX"; + break; - case UR_USM_DEVICE_MEM_FLAG_WRITE_COMBINED: - os << "UR_USM_DEVICE_MEM_FLAG_WRITE_COMBINED"; + case UR_IMAGE_CHANNEL_ORDER_RGX: + os << "UR_IMAGE_CHANNEL_ORDER_RGX"; break; - case UR_USM_DEVICE_MEM_FLAG_INITIAL_PLACEMENT: - os << "UR_USM_DEVICE_MEM_FLAG_INITIAL_PLACEMENT"; + case UR_IMAGE_CHANNEL_ORDER_RGBX: + os << "UR_IMAGE_CHANNEL_ORDER_RGBX"; break; - case UR_USM_DEVICE_MEM_FLAG_DEVICE_READ_ONLY: - os << "UR_USM_DEVICE_MEM_FLAG_DEVICE_READ_ONLY"; + case UR_IMAGE_CHANNEL_ORDER_SRGBA: + os << "UR_IMAGE_CHANNEL_ORDER_SRGBA"; break; default: os << "unknown enumerator"; @@ -5765,115 +5733,68 @@ inline std::ostream &operator<<(std::ostream &os, } return os; } -namespace ur_params { +inline std::ostream &operator<<(std::ostream &os, + enum ur_image_channel_type_t value) { + switch (value) { -template <> -inline void serializeFlag(std::ostream &os, - uint32_t flag) { - uint32_t val = flag; - bool first = true; + case UR_IMAGE_CHANNEL_TYPE_SNORM_INT8: + os << "UR_IMAGE_CHANNEL_TYPE_SNORM_INT8"; + break; - if ((val & UR_USM_DEVICE_MEM_FLAG_WRITE_COMBINED) == - (uint32_t)UR_USM_DEVICE_MEM_FLAG_WRITE_COMBINED) { - val ^= (uint32_t)UR_USM_DEVICE_MEM_FLAG_WRITE_COMBINED; - if (!first) { - os << " | "; - } else { - first = false; - } - os << UR_USM_DEVICE_MEM_FLAG_WRITE_COMBINED; - } + case UR_IMAGE_CHANNEL_TYPE_SNORM_INT16: + os << "UR_IMAGE_CHANNEL_TYPE_SNORM_INT16"; + break; - if ((val & UR_USM_DEVICE_MEM_FLAG_INITIAL_PLACEMENT) == - (uint32_t)UR_USM_DEVICE_MEM_FLAG_INITIAL_PLACEMENT) { - val ^= (uint32_t)UR_USM_DEVICE_MEM_FLAG_INITIAL_PLACEMENT; - if (!first) { - os << " | "; - } else { - first = false; - } - os << UR_USM_DEVICE_MEM_FLAG_INITIAL_PLACEMENT; - } + case UR_IMAGE_CHANNEL_TYPE_UNORM_INT8: + os << "UR_IMAGE_CHANNEL_TYPE_UNORM_INT8"; + break; - if ((val & UR_USM_DEVICE_MEM_FLAG_DEVICE_READ_ONLY) == - (uint32_t)UR_USM_DEVICE_MEM_FLAG_DEVICE_READ_ONLY) { - val ^= (uint32_t)UR_USM_DEVICE_MEM_FLAG_DEVICE_READ_ONLY; - if (!first) { - os << " | "; - } else { - first = false; - } - os << UR_USM_DEVICE_MEM_FLAG_DEVICE_READ_ONLY; - } - if (val != 0) { - std::bitset<32> bits(val); - if (!first) { - os << " | "; - } - os << "unknown bit flags " << bits; - } else if (first) { - os << "0"; - } -} -} // namespace ur_params -inline std::ostream &operator<<(std::ostream &os, - enum ur_usm_pool_flag_t value) { - switch (value) { + case UR_IMAGE_CHANNEL_TYPE_UNORM_INT16: + os << "UR_IMAGE_CHANNEL_TYPE_UNORM_INT16"; + break; - case UR_USM_POOL_FLAG_ZERO_INITIALIZE_BLOCK: - os << "UR_USM_POOL_FLAG_ZERO_INITIALIZE_BLOCK"; + case UR_IMAGE_CHANNEL_TYPE_UNORM_SHORT_565: + os << "UR_IMAGE_CHANNEL_TYPE_UNORM_SHORT_565"; break; - default: - os << "unknown enumerator"; + + case UR_IMAGE_CHANNEL_TYPE_UNORM_SHORT_555: + os << "UR_IMAGE_CHANNEL_TYPE_UNORM_SHORT_555"; break; - } - return os; -} -namespace ur_params { -template <> -inline void serializeFlag(std::ostream &os, uint32_t flag) { - uint32_t val = flag; - bool first = true; + case UR_IMAGE_CHANNEL_TYPE_INT_101010: + os << "UR_IMAGE_CHANNEL_TYPE_INT_101010"; + break; - if ((val & UR_USM_POOL_FLAG_ZERO_INITIALIZE_BLOCK) == - (uint32_t)UR_USM_POOL_FLAG_ZERO_INITIALIZE_BLOCK) { - val ^= (uint32_t)UR_USM_POOL_FLAG_ZERO_INITIALIZE_BLOCK; - if (!first) { - os << " | "; - } else { - first = false; - } - os << UR_USM_POOL_FLAG_ZERO_INITIALIZE_BLOCK; - } - if (val != 0) { - std::bitset<32> bits(val); - if (!first) { - os << " | "; - } - os << "unknown bit flags " << bits; - } else if (first) { - os << "0"; - } -} -} // namespace ur_params -inline std::ostream &operator<<(std::ostream &os, enum ur_usm_type_t value) { - switch (value) { + case UR_IMAGE_CHANNEL_TYPE_SIGNED_INT8: + os << "UR_IMAGE_CHANNEL_TYPE_SIGNED_INT8"; + break; - case UR_USM_TYPE_UNKNOWN: - os << "UR_USM_TYPE_UNKNOWN"; + case UR_IMAGE_CHANNEL_TYPE_SIGNED_INT16: + os << "UR_IMAGE_CHANNEL_TYPE_SIGNED_INT16"; break; - case UR_USM_TYPE_HOST: - os << "UR_USM_TYPE_HOST"; + case UR_IMAGE_CHANNEL_TYPE_SIGNED_INT32: + os << "UR_IMAGE_CHANNEL_TYPE_SIGNED_INT32"; break; - case UR_USM_TYPE_DEVICE: - os << "UR_USM_TYPE_DEVICE"; + case UR_IMAGE_CHANNEL_TYPE_UNSIGNED_INT8: + os << "UR_IMAGE_CHANNEL_TYPE_UNSIGNED_INT8"; break; - case UR_USM_TYPE_SHARED: - os << "UR_USM_TYPE_SHARED"; + case UR_IMAGE_CHANNEL_TYPE_UNSIGNED_INT16: + os << "UR_IMAGE_CHANNEL_TYPE_UNSIGNED_INT16"; + break; + + case UR_IMAGE_CHANNEL_TYPE_UNSIGNED_INT32: + os << "UR_IMAGE_CHANNEL_TYPE_UNSIGNED_INT32"; + break; + + case UR_IMAGE_CHANNEL_TYPE_HALF_FLOAT: + os << "UR_IMAGE_CHANNEL_TYPE_HALF_FLOAT"; + break; + + case UR_IMAGE_CHANNEL_TYPE_FLOAT: + os << "UR_IMAGE_CHANNEL_TYPE_FLOAT"; break; default: os << "unknown enumerator"; @@ -5881,28 +5802,35 @@ inline std::ostream &operator<<(std::ostream &os, enum ur_usm_type_t value) { } return os; } -inline std::ostream &operator<<(std::ostream &os, - enum ur_usm_alloc_info_t value) { +inline std::ostream &operator<<(std::ostream &os, enum ur_image_info_t value) { switch (value) { - case UR_USM_ALLOC_INFO_TYPE: - os << "UR_USM_ALLOC_INFO_TYPE"; + case UR_IMAGE_INFO_FORMAT: + os << "UR_IMAGE_INFO_FORMAT"; break; - case UR_USM_ALLOC_INFO_BASE_PTR: - os << "UR_USM_ALLOC_INFO_BASE_PTR"; + case UR_IMAGE_INFO_ELEMENT_SIZE: + os << "UR_IMAGE_INFO_ELEMENT_SIZE"; break; - case UR_USM_ALLOC_INFO_SIZE: - os << "UR_USM_ALLOC_INFO_SIZE"; + case UR_IMAGE_INFO_ROW_PITCH: + os << "UR_IMAGE_INFO_ROW_PITCH"; break; - case UR_USM_ALLOC_INFO_DEVICE: - os << "UR_USM_ALLOC_INFO_DEVICE"; + case UR_IMAGE_INFO_SLICE_PITCH: + os << "UR_IMAGE_INFO_SLICE_PITCH"; break; - case UR_USM_ALLOC_INFO_POOL: - os << "UR_USM_ALLOC_INFO_POOL"; + case UR_IMAGE_INFO_WIDTH: + os << "UR_IMAGE_INFO_WIDTH"; + break; + + case UR_IMAGE_INFO_HEIGHT: + os << "UR_IMAGE_INFO_HEIGHT"; + break; + + case UR_IMAGE_INFO_DEPTH: + os << "UR_IMAGE_INFO_DEPTH"; break; default: os << "unknown enumerator"; @@ -5913,7 +5841,7 @@ inline std::ostream &operator<<(std::ostream &os, namespace ur_params { template <> inline void serializeTagged(std::ostream &os, const void *ptr, - ur_usm_alloc_info_t value, size_t size) { + ur_image_info_t value, size_t size) { if (ptr == NULL) { serializePtr(os, ptr); return; @@ -5921,11 +5849,11 @@ inline void serializeTagged(std::ostream &os, const void *ptr, switch (value) { - case UR_USM_ALLOC_INFO_TYPE: { - const ur_usm_type_t *tptr = (const ur_usm_type_t *)ptr; - if (sizeof(ur_usm_type_t) > size) { + case UR_IMAGE_INFO_FORMAT: { + const ur_image_format_t *tptr = (const ur_image_format_t *)ptr; + if (sizeof(ur_image_format_t) > size) { os << "invalid size (is: " << size - << ", expected: >=" << sizeof(ur_usm_type_t) << ")"; + << ", expected: >=" << sizeof(ur_image_format_t) << ")"; return; } os << (void *)(tptr) << " ("; @@ -5935,11 +5863,11 @@ inline void serializeTagged(std::ostream &os, const void *ptr, os << ")"; } break; - case UR_USM_ALLOC_INFO_BASE_PTR: { - const void **tptr = (const void **)ptr; - if (sizeof(void *) > size) { + case UR_IMAGE_INFO_ELEMENT_SIZE: { + const size_t *tptr = (const size_t *)ptr; + if (sizeof(size_t) > size) { os << "invalid size (is: " << size - << ", expected: >=" << sizeof(void *) << ")"; + << ", expected: >=" << sizeof(size_t) << ")"; return; } os << (void *)(tptr) << " ("; @@ -5949,7 +5877,7 @@ inline void serializeTagged(std::ostream &os, const void *ptr, os << ")"; } break; - case UR_USM_ALLOC_INFO_SIZE: { + case UR_IMAGE_INFO_ROW_PITCH: { const size_t *tptr = (const size_t *)ptr; if (sizeof(size_t) > size) { os << "invalid size (is: " << size @@ -5963,294 +5891,147 @@ inline void serializeTagged(std::ostream &os, const void *ptr, os << ")"; } break; - case UR_USM_ALLOC_INFO_DEVICE: { - const ur_device_handle_t *tptr = (const ur_device_handle_t *)ptr; - if (sizeof(ur_device_handle_t) > size) { + case UR_IMAGE_INFO_SLICE_PITCH: { + const size_t *tptr = (const size_t *)ptr; + if (sizeof(size_t) > size) { os << "invalid size (is: " << size - << ", expected: >=" << sizeof(ur_device_handle_t) << ")"; + << ", expected: >=" << sizeof(size_t) << ")"; return; } os << (void *)(tptr) << " ("; - ur_params::serializePtr(os, *tptr); + os << *tptr; os << ")"; } break; - case UR_USM_ALLOC_INFO_POOL: { - const ur_usm_pool_handle_t *tptr = (const ur_usm_pool_handle_t *)ptr; - if (sizeof(ur_usm_pool_handle_t) > size) { + case UR_IMAGE_INFO_WIDTH: { + const size_t *tptr = (const size_t *)ptr; + if (sizeof(size_t) > size) { os << "invalid size (is: " << size - << ", expected: >=" << sizeof(ur_usm_pool_handle_t) << ")"; + << ", expected: >=" << sizeof(size_t) << ")"; return; } os << (void *)(tptr) << " ("; - ur_params::serializePtr(os, *tptr); + os << *tptr; os << ")"; } break; - default: - os << "unknown enumerator"; - break; - } -} -} // namespace ur_params -inline std::ostream &operator<<(std::ostream &os, - enum ur_usm_advice_flag_t value) { - switch (value) { - case UR_USM_ADVICE_FLAG_DEFAULT: - os << "UR_USM_ADVICE_FLAG_DEFAULT"; - break; + case UR_IMAGE_INFO_HEIGHT: { + const size_t *tptr = (const size_t *)ptr; + if (sizeof(size_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(size_t) << ")"; + return; + } + os << (void *)(tptr) << " ("; - case UR_USM_ADVICE_FLAG_SET_READ_MOSTLY: - os << "UR_USM_ADVICE_FLAG_SET_READ_MOSTLY"; - break; + os << *tptr; - case UR_USM_ADVICE_FLAG_CLEAR_READ_MOSTLY: - os << "UR_USM_ADVICE_FLAG_CLEAR_READ_MOSTLY"; - break; + os << ")"; + } break; - case UR_USM_ADVICE_FLAG_SET_PREFERRED_LOCATION: - os << "UR_USM_ADVICE_FLAG_SET_PREFERRED_LOCATION"; - break; + case UR_IMAGE_INFO_DEPTH: { + const size_t *tptr = (const size_t *)ptr; + if (sizeof(size_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(size_t) << ")"; + return; + } + os << (void *)(tptr) << " ("; + + os << *tptr; - case UR_USM_ADVICE_FLAG_CLEAR_PREFERRED_LOCATION: - os << "UR_USM_ADVICE_FLAG_CLEAR_PREFERRED_LOCATION"; + os << ")"; + } break; + default: + os << "unknown enumerator"; break; + } +} +} // namespace ur_params +inline std::ostream &operator<<(std::ostream &os, + const struct ur_image_format_t params) { + os << "(struct ur_image_format_t){"; - case UR_USM_ADVICE_FLAG_SET_NON_ATOMIC_MOSTLY: - os << "UR_USM_ADVICE_FLAG_SET_NON_ATOMIC_MOSTLY"; - break; + os << ".channelOrder = "; - case UR_USM_ADVICE_FLAG_CLEAR_NON_ATOMIC_MOSTLY: - os << "UR_USM_ADVICE_FLAG_CLEAR_NON_ATOMIC_MOSTLY"; - break; + os << (params.channelOrder); - case UR_USM_ADVICE_FLAG_BIAS_CACHED: - os << "UR_USM_ADVICE_FLAG_BIAS_CACHED"; - break; + os << ", "; + os << ".channelType = "; - case UR_USM_ADVICE_FLAG_BIAS_UNCACHED: - os << "UR_USM_ADVICE_FLAG_BIAS_UNCACHED"; - break; + os << (params.channelType); - case UR_USM_ADVICE_FLAG_SET_ACCESSED_BY_DEVICE: - os << "UR_USM_ADVICE_FLAG_SET_ACCESSED_BY_DEVICE"; - break; + os << "}"; + return os; +} +inline std::ostream &operator<<(std::ostream &os, + const struct ur_image_desc_t params) { + os << "(struct ur_image_desc_t){"; - case UR_USM_ADVICE_FLAG_CLEAR_ACCESSED_BY_DEVICE: - os << "UR_USM_ADVICE_FLAG_CLEAR_ACCESSED_BY_DEVICE"; - break; + os << ".stype = "; - case UR_USM_ADVICE_FLAG_SET_ACCESSED_BY_HOST: - os << "UR_USM_ADVICE_FLAG_SET_ACCESSED_BY_HOST"; - break; + os << (params.stype); - case UR_USM_ADVICE_FLAG_CLEAR_ACCESSED_BY_HOST: - os << "UR_USM_ADVICE_FLAG_CLEAR_ACCESSED_BY_HOST"; - break; + os << ", "; + os << ".pNext = "; - case UR_USM_ADVICE_FLAG_SET_PREFERRED_LOCATION_HOST: - os << "UR_USM_ADVICE_FLAG_SET_PREFERRED_LOCATION_HOST"; - break; + ur_params::serializeStruct(os, (params.pNext)); - case UR_USM_ADVICE_FLAG_CLEAR_PREFERRED_LOCATION_HOST: - os << "UR_USM_ADVICE_FLAG_CLEAR_PREFERRED_LOCATION_HOST"; - break; - default: - os << "unknown enumerator"; - break; - } - return os; -} -namespace ur_params { + os << ", "; + os << ".type = "; -template <> -inline void serializeFlag(std::ostream &os, - uint32_t flag) { - uint32_t val = flag; - bool first = true; + os << (params.type); - if ((val & UR_USM_ADVICE_FLAG_DEFAULT) == - (uint32_t)UR_USM_ADVICE_FLAG_DEFAULT) { - val ^= (uint32_t)UR_USM_ADVICE_FLAG_DEFAULT; - if (!first) { - os << " | "; - } else { - first = false; - } - os << UR_USM_ADVICE_FLAG_DEFAULT; - } + os << ", "; + os << ".width = "; - if ((val & UR_USM_ADVICE_FLAG_SET_READ_MOSTLY) == - (uint32_t)UR_USM_ADVICE_FLAG_SET_READ_MOSTLY) { - val ^= (uint32_t)UR_USM_ADVICE_FLAG_SET_READ_MOSTLY; - if (!first) { - os << " | "; - } else { - first = false; - } - os << UR_USM_ADVICE_FLAG_SET_READ_MOSTLY; - } + os << (params.width); - if ((val & UR_USM_ADVICE_FLAG_CLEAR_READ_MOSTLY) == - (uint32_t)UR_USM_ADVICE_FLAG_CLEAR_READ_MOSTLY) { - val ^= (uint32_t)UR_USM_ADVICE_FLAG_CLEAR_READ_MOSTLY; - if (!first) { - os << " | "; - } else { - first = false; - } - os << UR_USM_ADVICE_FLAG_CLEAR_READ_MOSTLY; - } + os << ", "; + os << ".height = "; - if ((val & UR_USM_ADVICE_FLAG_SET_PREFERRED_LOCATION) == - (uint32_t)UR_USM_ADVICE_FLAG_SET_PREFERRED_LOCATION) { - val ^= (uint32_t)UR_USM_ADVICE_FLAG_SET_PREFERRED_LOCATION; - if (!first) { - os << " | "; - } else { - first = false; - } - os << UR_USM_ADVICE_FLAG_SET_PREFERRED_LOCATION; - } + os << (params.height); - if ((val & UR_USM_ADVICE_FLAG_CLEAR_PREFERRED_LOCATION) == - (uint32_t)UR_USM_ADVICE_FLAG_CLEAR_PREFERRED_LOCATION) { - val ^= (uint32_t)UR_USM_ADVICE_FLAG_CLEAR_PREFERRED_LOCATION; - if (!first) { - os << " | "; - } else { - first = false; - } - os << UR_USM_ADVICE_FLAG_CLEAR_PREFERRED_LOCATION; - } + os << ", "; + os << ".depth = "; - if ((val & UR_USM_ADVICE_FLAG_SET_NON_ATOMIC_MOSTLY) == - (uint32_t)UR_USM_ADVICE_FLAG_SET_NON_ATOMIC_MOSTLY) { - val ^= (uint32_t)UR_USM_ADVICE_FLAG_SET_NON_ATOMIC_MOSTLY; - if (!first) { - os << " | "; - } else { - first = false; - } - os << UR_USM_ADVICE_FLAG_SET_NON_ATOMIC_MOSTLY; - } + os << (params.depth); - if ((val & UR_USM_ADVICE_FLAG_CLEAR_NON_ATOMIC_MOSTLY) == - (uint32_t)UR_USM_ADVICE_FLAG_CLEAR_NON_ATOMIC_MOSTLY) { - val ^= (uint32_t)UR_USM_ADVICE_FLAG_CLEAR_NON_ATOMIC_MOSTLY; - if (!first) { - os << " | "; - } else { - first = false; - } - os << UR_USM_ADVICE_FLAG_CLEAR_NON_ATOMIC_MOSTLY; - } + os << ", "; + os << ".arraySize = "; - if ((val & UR_USM_ADVICE_FLAG_BIAS_CACHED) == - (uint32_t)UR_USM_ADVICE_FLAG_BIAS_CACHED) { - val ^= (uint32_t)UR_USM_ADVICE_FLAG_BIAS_CACHED; - if (!first) { - os << " | "; - } else { - first = false; - } - os << UR_USM_ADVICE_FLAG_BIAS_CACHED; - } + os << (params.arraySize); - if ((val & UR_USM_ADVICE_FLAG_BIAS_UNCACHED) == - (uint32_t)UR_USM_ADVICE_FLAG_BIAS_UNCACHED) { - val ^= (uint32_t)UR_USM_ADVICE_FLAG_BIAS_UNCACHED; - if (!first) { - os << " | "; - } else { - first = false; - } - os << UR_USM_ADVICE_FLAG_BIAS_UNCACHED; - } + os << ", "; + os << ".rowPitch = "; - if ((val & UR_USM_ADVICE_FLAG_SET_ACCESSED_BY_DEVICE) == - (uint32_t)UR_USM_ADVICE_FLAG_SET_ACCESSED_BY_DEVICE) { - val ^= (uint32_t)UR_USM_ADVICE_FLAG_SET_ACCESSED_BY_DEVICE; - if (!first) { - os << " | "; - } else { - first = false; - } - os << UR_USM_ADVICE_FLAG_SET_ACCESSED_BY_DEVICE; - } + os << (params.rowPitch); - if ((val & UR_USM_ADVICE_FLAG_CLEAR_ACCESSED_BY_DEVICE) == - (uint32_t)UR_USM_ADVICE_FLAG_CLEAR_ACCESSED_BY_DEVICE) { - val ^= (uint32_t)UR_USM_ADVICE_FLAG_CLEAR_ACCESSED_BY_DEVICE; - if (!first) { - os << " | "; - } else { - first = false; - } - os << UR_USM_ADVICE_FLAG_CLEAR_ACCESSED_BY_DEVICE; - } + os << ", "; + os << ".slicePitch = "; - if ((val & UR_USM_ADVICE_FLAG_SET_ACCESSED_BY_HOST) == - (uint32_t)UR_USM_ADVICE_FLAG_SET_ACCESSED_BY_HOST) { - val ^= (uint32_t)UR_USM_ADVICE_FLAG_SET_ACCESSED_BY_HOST; - if (!first) { - os << " | "; - } else { - first = false; - } - os << UR_USM_ADVICE_FLAG_SET_ACCESSED_BY_HOST; - } + os << (params.slicePitch); - if ((val & UR_USM_ADVICE_FLAG_CLEAR_ACCESSED_BY_HOST) == - (uint32_t)UR_USM_ADVICE_FLAG_CLEAR_ACCESSED_BY_HOST) { - val ^= (uint32_t)UR_USM_ADVICE_FLAG_CLEAR_ACCESSED_BY_HOST; - if (!first) { - os << " | "; - } else { - first = false; - } - os << UR_USM_ADVICE_FLAG_CLEAR_ACCESSED_BY_HOST; - } + os << ", "; + os << ".numMipLevel = "; - if ((val & UR_USM_ADVICE_FLAG_SET_PREFERRED_LOCATION_HOST) == - (uint32_t)UR_USM_ADVICE_FLAG_SET_PREFERRED_LOCATION_HOST) { - val ^= (uint32_t)UR_USM_ADVICE_FLAG_SET_PREFERRED_LOCATION_HOST; - if (!first) { - os << " | "; - } else { - first = false; - } - os << UR_USM_ADVICE_FLAG_SET_PREFERRED_LOCATION_HOST; - } + os << (params.numMipLevel); - if ((val & UR_USM_ADVICE_FLAG_CLEAR_PREFERRED_LOCATION_HOST) == - (uint32_t)UR_USM_ADVICE_FLAG_CLEAR_PREFERRED_LOCATION_HOST) { - val ^= (uint32_t)UR_USM_ADVICE_FLAG_CLEAR_PREFERRED_LOCATION_HOST; - if (!first) { - os << " | "; - } else { - first = false; - } - os << UR_USM_ADVICE_FLAG_CLEAR_PREFERRED_LOCATION_HOST; - } - if (val != 0) { - std::bitset<32> bits(val); - if (!first) { - os << " | "; - } - os << "unknown bit flags " << bits; - } else if (first) { - os << "0"; - } + os << ", "; + os << ".numSamples = "; + + os << (params.numSamples); + + os << "}"; + return os; } -} // namespace ur_params inline std::ostream &operator<<(std::ostream &os, - const struct ur_usm_desc_t params) { - os << "(struct ur_usm_desc_t){"; + const struct ur_buffer_properties_t params) { + os << "(struct ur_buffer_properties_t){"; os << ".stype = "; @@ -6262,21 +6043,17 @@ inline std::ostream &operator<<(std::ostream &os, ur_params::serializeStruct(os, (params.pNext)); os << ", "; - os << ".hints = "; - - ur_params::serializeFlag(os, (params.hints)); - - os << ", "; - os << ".align = "; + os << ".pHost = "; - os << (params.align); + ur_params::serializePtr(os, (params.pHost)); os << "}"; return os; } -inline std::ostream &operator<<(std::ostream &os, - const struct ur_usm_host_desc_t params) { - os << "(struct ur_usm_host_desc_t){"; +inline std::ostream & +operator<<(std::ostream &os, + const struct ur_buffer_channel_properties_t params) { + os << "(struct ur_buffer_channel_properties_t){"; os << ".stype = "; @@ -6288,16 +6065,17 @@ inline std::ostream &operator<<(std::ostream &os, ur_params::serializeStruct(os, (params.pNext)); os << ", "; - os << ".flags = "; + os << ".channel = "; - ur_params::serializeFlag(os, (params.flags)); + os << (params.channel); os << "}"; return os; } -inline std::ostream &operator<<(std::ostream &os, - const struct ur_usm_device_desc_t params) { - os << "(struct ur_usm_device_desc_t){"; +inline std::ostream & +operator<<(std::ostream &os, + const struct ur_buffer_alloc_location_properties_t params) { + os << "(struct ur_buffer_alloc_location_properties_t){"; os << ".stype = "; @@ -6309,16 +6087,16 @@ inline std::ostream &operator<<(std::ostream &os, ur_params::serializeStruct(os, (params.pNext)); os << ", "; - os << ".flags = "; + os << ".location = "; - ur_params::serializeFlag(os, (params.flags)); + os << (params.location); os << "}"; return os; } inline std::ostream &operator<<(std::ostream &os, - const struct ur_usm_pool_desc_t params) { - os << "(struct ur_usm_pool_desc_t){"; + const struct ur_buffer_region_t params) { + os << "(struct ur_buffer_region_t){"; os << ".stype = "; @@ -6330,16 +6108,34 @@ inline std::ostream &operator<<(std::ostream &os, ur_params::serializeStruct(os, (params.pNext)); os << ", "; - os << ".flags = "; + os << ".origin = "; - ur_params::serializeFlag(os, (params.flags)); + os << (params.origin); + + os << ", "; + os << ".size = "; + + os << (params.size); os << "}"; return os; } inline std::ostream &operator<<(std::ostream &os, - const struct ur_usm_pool_limits_desc_t params) { - os << "(struct ur_usm_pool_limits_desc_t){"; + enum ur_buffer_create_type_t value) { + switch (value) { + + case UR_BUFFER_CREATE_TYPE_REGION: + os << "UR_BUFFER_CREATE_TYPE_REGION"; + break; + default: + os << "unknown enumerator"; + break; + } + return os; +} +inline std::ostream & +operator<<(std::ostream &os, const struct ur_mem_native_properties_t params) { + os << "(struct ur_mem_native_properties_t){"; os << ".stype = "; @@ -6351,28 +6147,23 @@ inline std::ostream &operator<<(std::ostream &os, ur_params::serializeStruct(os, (params.pNext)); os << ", "; - os << ".maxPoolableSize = "; - - os << (params.maxPoolableSize); - - os << ", "; - os << ".minDriverAllocSize = "; + os << ".isNativeHandleOwned = "; - os << (params.minDriverAllocSize); + os << (params.isNativeHandleOwned); os << "}"; return os; } inline std::ostream &operator<<(std::ostream &os, - enum ur_usm_pool_info_t value) { + enum ur_sampler_filter_mode_t value) { switch (value) { - case UR_USM_POOL_INFO_REFERENCE_COUNT: - os << "UR_USM_POOL_INFO_REFERENCE_COUNT"; + case UR_SAMPLER_FILTER_MODE_NEAREST: + os << "UR_SAMPLER_FILTER_MODE_NEAREST"; break; - case UR_USM_POOL_INFO_CONTEXT: - os << "UR_USM_POOL_INFO_CONTEXT"; + case UR_SAMPLER_FILTER_MODE_LINEAR: + os << "UR_SAMPLER_FILTER_MODE_LINEAR"; break; default: os << "unknown enumerator"; @@ -6380,60 +6171,57 @@ inline std::ostream &operator<<(std::ostream &os, } return os; } -namespace ur_params { -template <> -inline void serializeTagged(std::ostream &os, const void *ptr, - ur_usm_pool_info_t value, size_t size) { - if (ptr == NULL) { - serializePtr(os, ptr); - return; - } - +inline std::ostream &operator<<(std::ostream &os, + enum ur_sampler_addressing_mode_t value) { switch (value) { - case UR_USM_POOL_INFO_REFERENCE_COUNT: { - const uint32_t *tptr = (const uint32_t *)ptr; - if (sizeof(uint32_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(uint32_t) << ")"; - return; - } - os << (void *)(tptr) << " ("; - - os << *tptr; + case UR_SAMPLER_ADDRESSING_MODE_NONE: + os << "UR_SAMPLER_ADDRESSING_MODE_NONE"; + break; - os << ")"; - } break; + case UR_SAMPLER_ADDRESSING_MODE_CLAMP_TO_EDGE: + os << "UR_SAMPLER_ADDRESSING_MODE_CLAMP_TO_EDGE"; + break; - case UR_USM_POOL_INFO_CONTEXT: { - const ur_context_handle_t *tptr = (const ur_context_handle_t *)ptr; - if (sizeof(ur_context_handle_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(ur_context_handle_t) << ")"; - return; - } - os << (void *)(tptr) << " ("; + case UR_SAMPLER_ADDRESSING_MODE_CLAMP: + os << "UR_SAMPLER_ADDRESSING_MODE_CLAMP"; + break; - ur_params::serializePtr(os, *tptr); + case UR_SAMPLER_ADDRESSING_MODE_REPEAT: + os << "UR_SAMPLER_ADDRESSING_MODE_REPEAT"; + break; - os << ")"; - } break; + case UR_SAMPLER_ADDRESSING_MODE_MIRRORED_REPEAT: + os << "UR_SAMPLER_ADDRESSING_MODE_MIRRORED_REPEAT"; + break; default: os << "unknown enumerator"; break; } + return os; } -} // namespace ur_params inline std::ostream &operator<<(std::ostream &os, - enum ur_virtual_mem_granularity_info_t value) { + enum ur_sampler_info_t value) { switch (value) { - case UR_VIRTUAL_MEM_GRANULARITY_INFO_MINIMUM: - os << "UR_VIRTUAL_MEM_GRANULARITY_INFO_MINIMUM"; + case UR_SAMPLER_INFO_REFERENCE_COUNT: + os << "UR_SAMPLER_INFO_REFERENCE_COUNT"; break; - case UR_VIRTUAL_MEM_GRANULARITY_INFO_RECOMMENDED: - os << "UR_VIRTUAL_MEM_GRANULARITY_INFO_RECOMMENDED"; + case UR_SAMPLER_INFO_CONTEXT: + os << "UR_SAMPLER_INFO_CONTEXT"; + break; + + case UR_SAMPLER_INFO_NORMALIZED_COORDS: + os << "UR_SAMPLER_INFO_NORMALIZED_COORDS"; + break; + + case UR_SAMPLER_INFO_ADDRESSING_MODE: + os << "UR_SAMPLER_INFO_ADDRESSING_MODE"; + break; + + case UR_SAMPLER_INFO_FILTER_MODE: + os << "UR_SAMPLER_INFO_FILTER_MODE"; break; default: os << "unknown enumerator"; @@ -6444,8 +6232,7 @@ inline std::ostream &operator<<(std::ostream &os, namespace ur_params { template <> inline void serializeTagged(std::ostream &os, const void *ptr, - ur_virtual_mem_granularity_info_t value, - size_t size) { + ur_sampler_info_t value, size_t size) { if (ptr == NULL) { serializePtr(os, ptr); return; @@ -6453,11 +6240,11 @@ inline void serializeTagged(std::ostream &os, const void *ptr, switch (value) { - case UR_VIRTUAL_MEM_GRANULARITY_INFO_MINIMUM: { - const size_t *tptr = (const size_t *)ptr; - if (sizeof(size_t) > size) { + case UR_SAMPLER_INFO_REFERENCE_COUNT: { + const uint32_t *tptr = (const uint32_t *)ptr; + if (sizeof(uint32_t) > size) { os << "invalid size (is: " << size - << ", expected: >=" << sizeof(size_t) << ")"; + << ", expected: >=" << sizeof(uint32_t) << ")"; return; } os << (void *)(tptr) << " ("; @@ -6467,133 +6254,61 @@ inline void serializeTagged(std::ostream &os, const void *ptr, os << ")"; } break; - case UR_VIRTUAL_MEM_GRANULARITY_INFO_RECOMMENDED: { - const size_t *tptr = (const size_t *)ptr; - if (sizeof(size_t) > size) { + case UR_SAMPLER_INFO_CONTEXT: { + const ur_context_handle_t *tptr = (const ur_context_handle_t *)ptr; + if (sizeof(ur_context_handle_t) > size) { os << "invalid size (is: " << size - << ", expected: >=" << sizeof(size_t) << ")"; + << ", expected: >=" << sizeof(ur_context_handle_t) << ")"; return; } os << (void *)(tptr) << " ("; - os << *tptr; - - os << ")"; - } break; - default: - os << "unknown enumerator"; - break; - } -} -} // namespace ur_params -inline std::ostream &operator<<(std::ostream &os, - enum ur_virtual_mem_access_flag_t value) { - switch (value) { - - case UR_VIRTUAL_MEM_ACCESS_FLAG_NONE: - os << "UR_VIRTUAL_MEM_ACCESS_FLAG_NONE"; - break; - - case UR_VIRTUAL_MEM_ACCESS_FLAG_READ_WRITE: - os << "UR_VIRTUAL_MEM_ACCESS_FLAG_READ_WRITE"; - break; - - case UR_VIRTUAL_MEM_ACCESS_FLAG_READ_ONLY: - os << "UR_VIRTUAL_MEM_ACCESS_FLAG_READ_ONLY"; - break; - default: - os << "unknown enumerator"; - break; - } - return os; -} -namespace ur_params { - -template <> -inline void serializeFlag(std::ostream &os, - uint32_t flag) { - uint32_t val = flag; - bool first = true; - - if ((val & UR_VIRTUAL_MEM_ACCESS_FLAG_NONE) == - (uint32_t)UR_VIRTUAL_MEM_ACCESS_FLAG_NONE) { - val ^= (uint32_t)UR_VIRTUAL_MEM_ACCESS_FLAG_NONE; - if (!first) { - os << " | "; - } else { - first = false; - } - os << UR_VIRTUAL_MEM_ACCESS_FLAG_NONE; - } - - if ((val & UR_VIRTUAL_MEM_ACCESS_FLAG_READ_WRITE) == - (uint32_t)UR_VIRTUAL_MEM_ACCESS_FLAG_READ_WRITE) { - val ^= (uint32_t)UR_VIRTUAL_MEM_ACCESS_FLAG_READ_WRITE; - if (!first) { - os << " | "; - } else { - first = false; - } - os << UR_VIRTUAL_MEM_ACCESS_FLAG_READ_WRITE; - } + ur_params::serializePtr(os, *tptr); - if ((val & UR_VIRTUAL_MEM_ACCESS_FLAG_READ_ONLY) == - (uint32_t)UR_VIRTUAL_MEM_ACCESS_FLAG_READ_ONLY) { - val ^= (uint32_t)UR_VIRTUAL_MEM_ACCESS_FLAG_READ_ONLY; - if (!first) { - os << " | "; - } else { - first = false; - } - os << UR_VIRTUAL_MEM_ACCESS_FLAG_READ_ONLY; - } - if (val != 0) { - std::bitset<32> bits(val); - if (!first) { - os << " | "; + os << ")"; + } break; + + case UR_SAMPLER_INFO_NORMALIZED_COORDS: { + const ur_bool_t *tptr = (const ur_bool_t *)ptr; + if (sizeof(ur_bool_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(ur_bool_t) << ")"; + return; } - os << "unknown bit flags " << bits; - } else if (first) { - os << "0"; - } -} -} // namespace ur_params -inline std::ostream &operator<<(std::ostream &os, - enum ur_virtual_mem_info_t value) { - switch (value) { + os << (void *)(tptr) << " ("; - case UR_VIRTUAL_MEM_INFO_ACCESS_MODE: - os << "UR_VIRTUAL_MEM_INFO_ACCESS_MODE"; - break; - default: - os << "unknown enumerator"; - break; - } - return os; -} -namespace ur_params { -template <> -inline void serializeTagged(std::ostream &os, const void *ptr, - ur_virtual_mem_info_t value, size_t size) { - if (ptr == NULL) { - serializePtr(os, ptr); - return; - } + os << *tptr; - switch (value) { + os << ")"; + } break; - case UR_VIRTUAL_MEM_INFO_ACCESS_MODE: { - const ur_virtual_mem_access_flags_t *tptr = - (const ur_virtual_mem_access_flags_t *)ptr; - if (sizeof(ur_virtual_mem_access_flags_t) > size) { + case UR_SAMPLER_INFO_ADDRESSING_MODE: { + const ur_sampler_addressing_mode_t *tptr = + (const ur_sampler_addressing_mode_t *)ptr; + if (sizeof(ur_sampler_addressing_mode_t) > size) { os << "invalid size (is: " << size - << ", expected: >=" << sizeof(ur_virtual_mem_access_flags_t) + << ", expected: >=" << sizeof(ur_sampler_addressing_mode_t) << ")"; return; } os << (void *)(tptr) << " ("; - ur_params::serializeFlag(os, *tptr); + os << *tptr; + + os << ")"; + } break; + + case UR_SAMPLER_INFO_FILTER_MODE: { + const ur_sampler_filter_mode_t *tptr = + (const ur_sampler_filter_mode_t *)ptr; + if (sizeof(ur_sampler_filter_mode_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(ur_sampler_filter_mode_t) << ")"; + return; + } + os << (void *)(tptr) << " ("; + + os << *tptr; os << ")"; } break; @@ -6604,11 +6319,64 @@ inline void serializeTagged(std::ostream &os, const void *ptr, } } // namespace ur_params inline std::ostream &operator<<(std::ostream &os, - enum ur_physical_mem_flag_t value) { + const struct ur_sampler_desc_t params) { + os << "(struct ur_sampler_desc_t){"; + + os << ".stype = "; + + os << (params.stype); + + os << ", "; + os << ".pNext = "; + + ur_params::serializeStruct(os, (params.pNext)); + + os << ", "; + os << ".normalizedCoords = "; + + os << (params.normalizedCoords); + + os << ", "; + os << ".addressingMode = "; + + os << (params.addressingMode); + + os << ", "; + os << ".filterMode = "; + + os << (params.filterMode); + + os << "}"; + return os; +} +inline std::ostream & +operator<<(std::ostream &os, + const struct ur_sampler_native_properties_t params) { + os << "(struct ur_sampler_native_properties_t){"; + + os << ".stype = "; + + os << (params.stype); + + os << ", "; + os << ".pNext = "; + + ur_params::serializeStruct(os, (params.pNext)); + + os << ", "; + os << ".isNativeHandleOwned = "; + + os << (params.isNativeHandleOwned); + + os << "}"; + return os; +} +inline std::ostream &operator<<(std::ostream &os, + enum ur_usm_host_mem_flag_t value) { switch (value) { - case UR_PHYSICAL_MEM_FLAG_TBD: - os << "UR_PHYSICAL_MEM_FLAG_TBD"; + case UR_USM_HOST_MEM_FLAG_INITIAL_PLACEMENT: + os << "UR_USM_HOST_MEM_FLAG_INITIAL_PLACEMENT"; break; default: os << "unknown enumerator"; @@ -6619,20 +6387,20 @@ inline std::ostream &operator<<(std::ostream &os, namespace ur_params { template <> -inline void serializeFlag(std::ostream &os, +inline void serializeFlag(std::ostream &os, uint32_t flag) { uint32_t val = flag; bool first = true; - if ((val & UR_PHYSICAL_MEM_FLAG_TBD) == - (uint32_t)UR_PHYSICAL_MEM_FLAG_TBD) { - val ^= (uint32_t)UR_PHYSICAL_MEM_FLAG_TBD; + if ((val & UR_USM_HOST_MEM_FLAG_INITIAL_PLACEMENT) == + (uint32_t)UR_USM_HOST_MEM_FLAG_INITIAL_PLACEMENT) { + val ^= (uint32_t)UR_USM_HOST_MEM_FLAG_INITIAL_PLACEMENT; if (!first) { os << " | "; } else { first = false; } - os << UR_PHYSICAL_MEM_FLAG_TBD; + os << UR_USM_HOST_MEM_FLAG_INITIAL_PLACEMENT; } if (val != 0) { std::bitset<32> bits(val); @@ -6645,45 +6413,20 @@ inline void serializeFlag(std::ostream &os, } } } // namespace ur_params -inline std::ostream & -operator<<(std::ostream &os, const struct ur_physical_mem_properties_t params) { - os << "(struct ur_physical_mem_properties_t){"; - - os << ".stype = "; - - os << (params.stype); - - os << ", "; - os << ".pNext = "; - - ur_params::serializeStruct(os, (params.pNext)); - - os << ", "; - os << ".flags = "; - - ur_params::serializeFlag(os, (params.flags)); - - os << "}"; - return os; -} inline std::ostream &operator<<(std::ostream &os, - enum ur_program_metadata_type_t value) { + enum ur_usm_device_mem_flag_t value) { switch (value) { - case UR_PROGRAM_METADATA_TYPE_UINT32: - os << "UR_PROGRAM_METADATA_TYPE_UINT32"; - break; - - case UR_PROGRAM_METADATA_TYPE_UINT64: - os << "UR_PROGRAM_METADATA_TYPE_UINT64"; + case UR_USM_DEVICE_MEM_FLAG_WRITE_COMBINED: + os << "UR_USM_DEVICE_MEM_FLAG_WRITE_COMBINED"; break; - case UR_PROGRAM_METADATA_TYPE_BYTE_ARRAY: - os << "UR_PROGRAM_METADATA_TYPE_BYTE_ARRAY"; + case UR_USM_DEVICE_MEM_FLAG_INITIAL_PLACEMENT: + os << "UR_USM_DEVICE_MEM_FLAG_INITIAL_PLACEMENT"; break; - case UR_PROGRAM_METADATA_TYPE_STRING: - os << "UR_PROGRAM_METADATA_TYPE_STRING"; + case UR_USM_DEVICE_MEM_FLAG_DEVICE_READ_ONLY: + os << "UR_USM_DEVICE_MEM_FLAG_DEVICE_READ_ONLY"; break; default: os << "unknown enumerator"; @@ -6691,128 +6434,144 @@ inline std::ostream &operator<<(std::ostream &os, } return os; } -inline std::ostream & -operator<<(std::ostream &os, const union ur_program_metadata_value_t params) { - os << "(union ur_program_metadata_value_t){"; - - os << ".data32 = "; - - os << (params.data32); - - os << ", "; - os << ".data64 = "; - - os << (params.data64); - - os << ", "; - os << ".pString = "; - - ur_params::serializePtr(os, (params.pString)); - - os << ", "; - os << ".pData = "; - - ur_params::serializePtr(os, (params.pData)); - - os << "}"; - return os; -} -inline std::ostream &operator<<(std::ostream &os, - const struct ur_program_metadata_t params) { - os << "(struct ur_program_metadata_t){"; - - os << ".pName = "; - - ur_params::serializePtr(os, (params.pName)); - - os << ", "; - os << ".type = "; - - os << (params.type); - - os << ", "; - os << ".size = "; +namespace ur_params { - os << (params.size); +template <> +inline void serializeFlag(std::ostream &os, + uint32_t flag) { + uint32_t val = flag; + bool first = true; - os << ", "; - os << ".value = "; + if ((val & UR_USM_DEVICE_MEM_FLAG_WRITE_COMBINED) == + (uint32_t)UR_USM_DEVICE_MEM_FLAG_WRITE_COMBINED) { + val ^= (uint32_t)UR_USM_DEVICE_MEM_FLAG_WRITE_COMBINED; + if (!first) { + os << " | "; + } else { + first = false; + } + os << UR_USM_DEVICE_MEM_FLAG_WRITE_COMBINED; + } - os << (params.value); + if ((val & UR_USM_DEVICE_MEM_FLAG_INITIAL_PLACEMENT) == + (uint32_t)UR_USM_DEVICE_MEM_FLAG_INITIAL_PLACEMENT) { + val ^= (uint32_t)UR_USM_DEVICE_MEM_FLAG_INITIAL_PLACEMENT; + if (!first) { + os << " | "; + } else { + first = false; + } + os << UR_USM_DEVICE_MEM_FLAG_INITIAL_PLACEMENT; + } - os << "}"; - return os; + if ((val & UR_USM_DEVICE_MEM_FLAG_DEVICE_READ_ONLY) == + (uint32_t)UR_USM_DEVICE_MEM_FLAG_DEVICE_READ_ONLY) { + val ^= (uint32_t)UR_USM_DEVICE_MEM_FLAG_DEVICE_READ_ONLY; + if (!first) { + os << " | "; + } else { + first = false; + } + os << UR_USM_DEVICE_MEM_FLAG_DEVICE_READ_ONLY; + } + if (val != 0) { + std::bitset<32> bits(val); + if (!first) { + os << " | "; + } + os << "unknown bit flags " << bits; + } else if (first) { + os << "0"; + } } +} // namespace ur_params inline std::ostream &operator<<(std::ostream &os, - const struct ur_program_properties_t params) { - os << "(struct ur_program_properties_t){"; - - os << ".stype = "; - - os << (params.stype); - - os << ", "; - os << ".pNext = "; - - ur_params::serializeStruct(os, (params.pNext)); + enum ur_usm_pool_flag_t value) { + switch (value) { - os << ", "; - os << ".count = "; + case UR_USM_POOL_FLAG_ZERO_INITIALIZE_BLOCK: + os << "UR_USM_POOL_FLAG_ZERO_INITIALIZE_BLOCK"; + break; + default: + os << "unknown enumerator"; + break; + } + return os; +} +namespace ur_params { - os << (params.count); +template <> +inline void serializeFlag(std::ostream &os, uint32_t flag) { + uint32_t val = flag; + bool first = true; - os << ", "; - os << ".pMetadatas = {"; - for (size_t i = 0; (params.pMetadatas) != NULL && i < params.count; ++i) { - if (i != 0) { - os << ", "; + if ((val & UR_USM_POOL_FLAG_ZERO_INITIALIZE_BLOCK) == + (uint32_t)UR_USM_POOL_FLAG_ZERO_INITIALIZE_BLOCK) { + val ^= (uint32_t)UR_USM_POOL_FLAG_ZERO_INITIALIZE_BLOCK; + if (!first) { + os << " | "; + } else { + first = false; } - - os << ((params.pMetadatas))[i]; + os << UR_USM_POOL_FLAG_ZERO_INITIALIZE_BLOCK; + } + if (val != 0) { + std::bitset<32> bits(val); + if (!first) { + os << " | "; + } + os << "unknown bit flags " << bits; + } else if (first) { + os << "0"; } - os << "}"; - - os << "}"; - return os; } -inline std::ostream &operator<<(std::ostream &os, - enum ur_program_info_t value) { +} // namespace ur_params +inline std::ostream &operator<<(std::ostream &os, enum ur_usm_type_t value) { switch (value) { - case UR_PROGRAM_INFO_REFERENCE_COUNT: - os << "UR_PROGRAM_INFO_REFERENCE_COUNT"; + case UR_USM_TYPE_UNKNOWN: + os << "UR_USM_TYPE_UNKNOWN"; break; - case UR_PROGRAM_INFO_CONTEXT: - os << "UR_PROGRAM_INFO_CONTEXT"; + case UR_USM_TYPE_HOST: + os << "UR_USM_TYPE_HOST"; break; - case UR_PROGRAM_INFO_NUM_DEVICES: - os << "UR_PROGRAM_INFO_NUM_DEVICES"; + case UR_USM_TYPE_DEVICE: + os << "UR_USM_TYPE_DEVICE"; break; - case UR_PROGRAM_INFO_DEVICES: - os << "UR_PROGRAM_INFO_DEVICES"; + case UR_USM_TYPE_SHARED: + os << "UR_USM_TYPE_SHARED"; + break; + default: + os << "unknown enumerator"; break; + } + return os; +} +inline std::ostream &operator<<(std::ostream &os, + enum ur_usm_alloc_info_t value) { + switch (value) { - case UR_PROGRAM_INFO_SOURCE: - os << "UR_PROGRAM_INFO_SOURCE"; + case UR_USM_ALLOC_INFO_TYPE: + os << "UR_USM_ALLOC_INFO_TYPE"; break; - case UR_PROGRAM_INFO_BINARY_SIZES: - os << "UR_PROGRAM_INFO_BINARY_SIZES"; + case UR_USM_ALLOC_INFO_BASE_PTR: + os << "UR_USM_ALLOC_INFO_BASE_PTR"; break; - case UR_PROGRAM_INFO_BINARIES: - os << "UR_PROGRAM_INFO_BINARIES"; + case UR_USM_ALLOC_INFO_SIZE: + os << "UR_USM_ALLOC_INFO_SIZE"; break; - case UR_PROGRAM_INFO_NUM_KERNELS: - os << "UR_PROGRAM_INFO_NUM_KERNELS"; + case UR_USM_ALLOC_INFO_DEVICE: + os << "UR_USM_ALLOC_INFO_DEVICE"; break; - case UR_PROGRAM_INFO_KERNEL_NAMES: - os << "UR_PROGRAM_INFO_KERNEL_NAMES"; + case UR_USM_ALLOC_INFO_POOL: + os << "UR_USM_ALLOC_INFO_POOL"; break; default: os << "unknown enumerator"; @@ -6823,7 +6582,7 @@ inline std::ostream &operator<<(std::ostream &os, namespace ur_params { template <> inline void serializeTagged(std::ostream &os, const void *ptr, - ur_program_info_t value, size_t size) { + ur_usm_alloc_info_t value, size_t size) { if (ptr == NULL) { serializePtr(os, ptr); return; @@ -6831,11 +6590,11 @@ inline void serializeTagged(std::ostream &os, const void *ptr, switch (value) { - case UR_PROGRAM_INFO_REFERENCE_COUNT: { - const uint32_t *tptr = (const uint32_t *)ptr; - if (sizeof(uint32_t) > size) { + case UR_USM_ALLOC_INFO_TYPE: { + const ur_usm_type_t *tptr = (const ur_usm_type_t *)ptr; + if (sizeof(ur_usm_type_t) > size) { os << "invalid size (is: " << size - << ", expected: >=" << sizeof(uint32_t) << ")"; + << ", expected: >=" << sizeof(ur_usm_type_t) << ")"; return; } os << (void *)(tptr) << " ("; @@ -6845,25 +6604,25 @@ inline void serializeTagged(std::ostream &os, const void *ptr, os << ")"; } break; - case UR_PROGRAM_INFO_CONTEXT: { - const ur_context_handle_t *tptr = (const ur_context_handle_t *)ptr; - if (sizeof(ur_context_handle_t) > size) { + case UR_USM_ALLOC_INFO_BASE_PTR: { + const void **tptr = (const void **)ptr; + if (sizeof(void *) > size) { os << "invalid size (is: " << size - << ", expected: >=" << sizeof(ur_context_handle_t) << ")"; + << ", expected: >=" << sizeof(void *) << ")"; return; } os << (void *)(tptr) << " ("; - ur_params::serializePtr(os, *tptr); + os << *tptr; os << ")"; } break; - case UR_PROGRAM_INFO_NUM_DEVICES: { - const uint32_t *tptr = (const uint32_t *)ptr; - if (sizeof(uint32_t) > size) { + case UR_USM_ALLOC_INFO_SIZE: { + const size_t *tptr = (const size_t *)ptr; + if (sizeof(size_t) > size) { os << "invalid size (is: " << size - << ", expected: >=" << sizeof(uint32_t) << ")"; + << ", expected: >=" << sizeof(size_t) << ")"; return; } os << (void *)(tptr) << " ("; @@ -6873,67 +6632,33 @@ inline void serializeTagged(std::ostream &os, const void *ptr, os << ")"; } break; - case UR_PROGRAM_INFO_DEVICES: { - + case UR_USM_ALLOC_INFO_DEVICE: { const ur_device_handle_t *tptr = (const ur_device_handle_t *)ptr; - os << "{"; - size_t nelems = size / sizeof(ur_device_handle_t); - for (size_t i = 0; i < nelems; ++i) { - if (i != 0) { - os << ", "; - } - - ur_params::serializePtr(os, tptr[i]); - } - os << "}"; - } break; - - case UR_PROGRAM_INFO_SOURCE: { - - const char *tptr = (const char *)ptr; - serializePtr(os, tptr); - } break; - - case UR_PROGRAM_INFO_BINARY_SIZES: { - - const size_t *tptr = (const size_t *)ptr; - os << "{"; - size_t nelems = size / sizeof(size_t); - for (size_t i = 0; i < nelems; ++i) { - if (i != 0) { - os << ", "; - } - - os << tptr[i]; + if (sizeof(ur_device_handle_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(ur_device_handle_t) << ")"; + return; } - os << "}"; - } break; + os << (void *)(tptr) << " ("; - case UR_PROGRAM_INFO_BINARIES: { + ur_params::serializePtr(os, *tptr); - const unsigned char *tptr = (const unsigned char *)ptr; - serializePtr(os, tptr); + os << ")"; } break; - case UR_PROGRAM_INFO_NUM_KERNELS: { - const size_t *tptr = (const size_t *)ptr; - if (sizeof(size_t) > size) { + case UR_USM_ALLOC_INFO_POOL: { + const ur_usm_pool_handle_t *tptr = (const ur_usm_pool_handle_t *)ptr; + if (sizeof(ur_usm_pool_handle_t) > size) { os << "invalid size (is: " << size - << ", expected: >=" << sizeof(size_t) << ")"; + << ", expected: >=" << sizeof(ur_usm_pool_handle_t) << ")"; return; } os << (void *)(tptr) << " ("; - os << *tptr; + ur_params::serializePtr(os, *tptr); os << ")"; } break; - - case UR_PROGRAM_INFO_KERNEL_NAMES: { - - const char *tptr = (const char *)ptr; - serializePtr(os, tptr); - } break; default: os << "unknown enumerator"; break; @@ -6941,73 +6666,67 @@ inline void serializeTagged(std::ostream &os, const void *ptr, } } // namespace ur_params inline std::ostream &operator<<(std::ostream &os, - enum ur_program_build_status_t value) { + enum ur_usm_advice_flag_t value) { switch (value) { - case UR_PROGRAM_BUILD_STATUS_NONE: - os << "UR_PROGRAM_BUILD_STATUS_NONE"; + case UR_USM_ADVICE_FLAG_DEFAULT: + os << "UR_USM_ADVICE_FLAG_DEFAULT"; break; - case UR_PROGRAM_BUILD_STATUS_ERROR: - os << "UR_PROGRAM_BUILD_STATUS_ERROR"; + case UR_USM_ADVICE_FLAG_SET_READ_MOSTLY: + os << "UR_USM_ADVICE_FLAG_SET_READ_MOSTLY"; break; - case UR_PROGRAM_BUILD_STATUS_SUCCESS: - os << "UR_PROGRAM_BUILD_STATUS_SUCCESS"; + case UR_USM_ADVICE_FLAG_CLEAR_READ_MOSTLY: + os << "UR_USM_ADVICE_FLAG_CLEAR_READ_MOSTLY"; break; - case UR_PROGRAM_BUILD_STATUS_IN_PROGRESS: - os << "UR_PROGRAM_BUILD_STATUS_IN_PROGRESS"; + case UR_USM_ADVICE_FLAG_SET_PREFERRED_LOCATION: + os << "UR_USM_ADVICE_FLAG_SET_PREFERRED_LOCATION"; break; - default: - os << "unknown enumerator"; + + case UR_USM_ADVICE_FLAG_CLEAR_PREFERRED_LOCATION: + os << "UR_USM_ADVICE_FLAG_CLEAR_PREFERRED_LOCATION"; break; - } - return os; -} -inline std::ostream &operator<<(std::ostream &os, - enum ur_program_binary_type_t value) { - switch (value) { - case UR_PROGRAM_BINARY_TYPE_NONE: - os << "UR_PROGRAM_BINARY_TYPE_NONE"; + case UR_USM_ADVICE_FLAG_SET_NON_ATOMIC_MOSTLY: + os << "UR_USM_ADVICE_FLAG_SET_NON_ATOMIC_MOSTLY"; break; - case UR_PROGRAM_BINARY_TYPE_COMPILED_OBJECT: - os << "UR_PROGRAM_BINARY_TYPE_COMPILED_OBJECT"; + case UR_USM_ADVICE_FLAG_CLEAR_NON_ATOMIC_MOSTLY: + os << "UR_USM_ADVICE_FLAG_CLEAR_NON_ATOMIC_MOSTLY"; break; - case UR_PROGRAM_BINARY_TYPE_LIBRARY: - os << "UR_PROGRAM_BINARY_TYPE_LIBRARY"; + case UR_USM_ADVICE_FLAG_BIAS_CACHED: + os << "UR_USM_ADVICE_FLAG_BIAS_CACHED"; + break; + + case UR_USM_ADVICE_FLAG_BIAS_UNCACHED: + os << "UR_USM_ADVICE_FLAG_BIAS_UNCACHED"; + break; + + case UR_USM_ADVICE_FLAG_SET_ACCESSED_BY_DEVICE: + os << "UR_USM_ADVICE_FLAG_SET_ACCESSED_BY_DEVICE"; break; - case UR_PROGRAM_BINARY_TYPE_EXECUTABLE: - os << "UR_PROGRAM_BINARY_TYPE_EXECUTABLE"; - break; - default: - os << "unknown enumerator"; + case UR_USM_ADVICE_FLAG_CLEAR_ACCESSED_BY_DEVICE: + os << "UR_USM_ADVICE_FLAG_CLEAR_ACCESSED_BY_DEVICE"; break; - } - return os; -} -inline std::ostream &operator<<(std::ostream &os, - enum ur_program_build_info_t value) { - switch (value) { - case UR_PROGRAM_BUILD_INFO_STATUS: - os << "UR_PROGRAM_BUILD_INFO_STATUS"; + case UR_USM_ADVICE_FLAG_SET_ACCESSED_BY_HOST: + os << "UR_USM_ADVICE_FLAG_SET_ACCESSED_BY_HOST"; break; - case UR_PROGRAM_BUILD_INFO_OPTIONS: - os << "UR_PROGRAM_BUILD_INFO_OPTIONS"; + case UR_USM_ADVICE_FLAG_CLEAR_ACCESSED_BY_HOST: + os << "UR_USM_ADVICE_FLAG_CLEAR_ACCESSED_BY_HOST"; break; - case UR_PROGRAM_BUILD_INFO_LOG: - os << "UR_PROGRAM_BUILD_INFO_LOG"; + case UR_USM_ADVICE_FLAG_SET_PREFERRED_LOCATION_HOST: + os << "UR_USM_ADVICE_FLAG_SET_PREFERRED_LOCATION_HOST"; break; - case UR_PROGRAM_BUILD_INFO_BINARY_TYPE: - os << "UR_PROGRAM_BUILD_INFO_BINARY_TYPE"; + case UR_USM_ADVICE_FLAG_CLEAR_PREFERRED_LOCATION_HOST: + os << "UR_USM_ADVICE_FLAG_CLEAR_PREFERRED_LOCATION_HOST"; break; default: os << "unknown enumerator"; @@ -7016,89 +6735,191 @@ inline std::ostream &operator<<(std::ostream &os, return os; } namespace ur_params { -template <> -inline void serializeTagged(std::ostream &os, const void *ptr, - ur_program_build_info_t value, size_t size) { - if (ptr == NULL) { - serializePtr(os, ptr); - return; - } - switch (value) { +template <> +inline void serializeFlag(std::ostream &os, + uint32_t flag) { + uint32_t val = flag; + bool first = true; - case UR_PROGRAM_BUILD_INFO_STATUS: { - const ur_program_build_status_t *tptr = - (const ur_program_build_status_t *)ptr; - if (sizeof(ur_program_build_status_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(ur_program_build_status_t) << ")"; - return; + if ((val & UR_USM_ADVICE_FLAG_DEFAULT) == + (uint32_t)UR_USM_ADVICE_FLAG_DEFAULT) { + val ^= (uint32_t)UR_USM_ADVICE_FLAG_DEFAULT; + if (!first) { + os << " | "; + } else { + first = false; } - os << (void *)(tptr) << " ("; - - os << *tptr; - - os << ")"; - } break; + os << UR_USM_ADVICE_FLAG_DEFAULT; + } - case UR_PROGRAM_BUILD_INFO_OPTIONS: { + if ((val & UR_USM_ADVICE_FLAG_SET_READ_MOSTLY) == + (uint32_t)UR_USM_ADVICE_FLAG_SET_READ_MOSTLY) { + val ^= (uint32_t)UR_USM_ADVICE_FLAG_SET_READ_MOSTLY; + if (!first) { + os << " | "; + } else { + first = false; + } + os << UR_USM_ADVICE_FLAG_SET_READ_MOSTLY; + } - const char *tptr = (const char *)ptr; - serializePtr(os, tptr); - } break; + if ((val & UR_USM_ADVICE_FLAG_CLEAR_READ_MOSTLY) == + (uint32_t)UR_USM_ADVICE_FLAG_CLEAR_READ_MOSTLY) { + val ^= (uint32_t)UR_USM_ADVICE_FLAG_CLEAR_READ_MOSTLY; + if (!first) { + os << " | "; + } else { + first = false; + } + os << UR_USM_ADVICE_FLAG_CLEAR_READ_MOSTLY; + } - case UR_PROGRAM_BUILD_INFO_LOG: { + if ((val & UR_USM_ADVICE_FLAG_SET_PREFERRED_LOCATION) == + (uint32_t)UR_USM_ADVICE_FLAG_SET_PREFERRED_LOCATION) { + val ^= (uint32_t)UR_USM_ADVICE_FLAG_SET_PREFERRED_LOCATION; + if (!first) { + os << " | "; + } else { + first = false; + } + os << UR_USM_ADVICE_FLAG_SET_PREFERRED_LOCATION; + } - const char *tptr = (const char *)ptr; - serializePtr(os, tptr); - } break; + if ((val & UR_USM_ADVICE_FLAG_CLEAR_PREFERRED_LOCATION) == + (uint32_t)UR_USM_ADVICE_FLAG_CLEAR_PREFERRED_LOCATION) { + val ^= (uint32_t)UR_USM_ADVICE_FLAG_CLEAR_PREFERRED_LOCATION; + if (!first) { + os << " | "; + } else { + first = false; + } + os << UR_USM_ADVICE_FLAG_CLEAR_PREFERRED_LOCATION; + } - case UR_PROGRAM_BUILD_INFO_BINARY_TYPE: { - const ur_program_binary_type_t *tptr = - (const ur_program_binary_type_t *)ptr; - if (sizeof(ur_program_binary_type_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(ur_program_binary_type_t) << ")"; - return; + if ((val & UR_USM_ADVICE_FLAG_SET_NON_ATOMIC_MOSTLY) == + (uint32_t)UR_USM_ADVICE_FLAG_SET_NON_ATOMIC_MOSTLY) { + val ^= (uint32_t)UR_USM_ADVICE_FLAG_SET_NON_ATOMIC_MOSTLY; + if (!first) { + os << " | "; + } else { + first = false; } - os << (void *)(tptr) << " ("; + os << UR_USM_ADVICE_FLAG_SET_NON_ATOMIC_MOSTLY; + } - os << *tptr; + if ((val & UR_USM_ADVICE_FLAG_CLEAR_NON_ATOMIC_MOSTLY) == + (uint32_t)UR_USM_ADVICE_FLAG_CLEAR_NON_ATOMIC_MOSTLY) { + val ^= (uint32_t)UR_USM_ADVICE_FLAG_CLEAR_NON_ATOMIC_MOSTLY; + if (!first) { + os << " | "; + } else { + first = false; + } + os << UR_USM_ADVICE_FLAG_CLEAR_NON_ATOMIC_MOSTLY; + } - os << ")"; - } break; - default: - os << "unknown enumerator"; - break; + if ((val & UR_USM_ADVICE_FLAG_BIAS_CACHED) == + (uint32_t)UR_USM_ADVICE_FLAG_BIAS_CACHED) { + val ^= (uint32_t)UR_USM_ADVICE_FLAG_BIAS_CACHED; + if (!first) { + os << " | "; + } else { + first = false; + } + os << UR_USM_ADVICE_FLAG_BIAS_CACHED; } -} -} // namespace ur_params -inline std::ostream & -operator<<(std::ostream &os, - const struct ur_specialization_constant_info_t params) { - os << "(struct ur_specialization_constant_info_t){"; - os << ".id = "; + if ((val & UR_USM_ADVICE_FLAG_BIAS_UNCACHED) == + (uint32_t)UR_USM_ADVICE_FLAG_BIAS_UNCACHED) { + val ^= (uint32_t)UR_USM_ADVICE_FLAG_BIAS_UNCACHED; + if (!first) { + os << " | "; + } else { + first = false; + } + os << UR_USM_ADVICE_FLAG_BIAS_UNCACHED; + } - os << (params.id); + if ((val & UR_USM_ADVICE_FLAG_SET_ACCESSED_BY_DEVICE) == + (uint32_t)UR_USM_ADVICE_FLAG_SET_ACCESSED_BY_DEVICE) { + val ^= (uint32_t)UR_USM_ADVICE_FLAG_SET_ACCESSED_BY_DEVICE; + if (!first) { + os << " | "; + } else { + first = false; + } + os << UR_USM_ADVICE_FLAG_SET_ACCESSED_BY_DEVICE; + } - os << ", "; - os << ".size = "; + if ((val & UR_USM_ADVICE_FLAG_CLEAR_ACCESSED_BY_DEVICE) == + (uint32_t)UR_USM_ADVICE_FLAG_CLEAR_ACCESSED_BY_DEVICE) { + val ^= (uint32_t)UR_USM_ADVICE_FLAG_CLEAR_ACCESSED_BY_DEVICE; + if (!first) { + os << " | "; + } else { + first = false; + } + os << UR_USM_ADVICE_FLAG_CLEAR_ACCESSED_BY_DEVICE; + } - os << (params.size); + if ((val & UR_USM_ADVICE_FLAG_SET_ACCESSED_BY_HOST) == + (uint32_t)UR_USM_ADVICE_FLAG_SET_ACCESSED_BY_HOST) { + val ^= (uint32_t)UR_USM_ADVICE_FLAG_SET_ACCESSED_BY_HOST; + if (!first) { + os << " | "; + } else { + first = false; + } + os << UR_USM_ADVICE_FLAG_SET_ACCESSED_BY_HOST; + } - os << ", "; - os << ".pValue = "; + if ((val & UR_USM_ADVICE_FLAG_CLEAR_ACCESSED_BY_HOST) == + (uint32_t)UR_USM_ADVICE_FLAG_CLEAR_ACCESSED_BY_HOST) { + val ^= (uint32_t)UR_USM_ADVICE_FLAG_CLEAR_ACCESSED_BY_HOST; + if (!first) { + os << " | "; + } else { + first = false; + } + os << UR_USM_ADVICE_FLAG_CLEAR_ACCESSED_BY_HOST; + } - ur_params::serializePtr(os, (params.pValue)); + if ((val & UR_USM_ADVICE_FLAG_SET_PREFERRED_LOCATION_HOST) == + (uint32_t)UR_USM_ADVICE_FLAG_SET_PREFERRED_LOCATION_HOST) { + val ^= (uint32_t)UR_USM_ADVICE_FLAG_SET_PREFERRED_LOCATION_HOST; + if (!first) { + os << " | "; + } else { + first = false; + } + os << UR_USM_ADVICE_FLAG_SET_PREFERRED_LOCATION_HOST; + } - os << "}"; - return os; + if ((val & UR_USM_ADVICE_FLAG_CLEAR_PREFERRED_LOCATION_HOST) == + (uint32_t)UR_USM_ADVICE_FLAG_CLEAR_PREFERRED_LOCATION_HOST) { + val ^= (uint32_t)UR_USM_ADVICE_FLAG_CLEAR_PREFERRED_LOCATION_HOST; + if (!first) { + os << " | "; + } else { + first = false; + } + os << UR_USM_ADVICE_FLAG_CLEAR_PREFERRED_LOCATION_HOST; + } + if (val != 0) { + std::bitset<32> bits(val); + if (!first) { + os << " | "; + } + os << "unknown bit flags " << bits; + } else if (first) { + os << "0"; + } } -inline std::ostream & -operator<<(std::ostream &os, - const struct ur_program_native_properties_t params) { - os << "(struct ur_program_native_properties_t){"; +} // namespace ur_params +inline std::ostream &operator<<(std::ostream &os, + const struct ur_usm_desc_t params) { + os << "(struct ur_usm_desc_t){"; os << ".stype = "; @@ -7110,17 +6931,21 @@ operator<<(std::ostream &os, ur_params::serializeStruct(os, (params.pNext)); os << ", "; - os << ".isNativeHandleOwned = "; + os << ".hints = "; - os << (params.isNativeHandleOwned); + ur_params::serializeFlag(os, (params.hints)); + + os << ", "; + os << ".align = "; + + os << (params.align); os << "}"; return os; } -inline std::ostream & -operator<<(std::ostream &os, - const struct ur_kernel_arg_value_properties_t params) { - os << "(struct ur_kernel_arg_value_properties_t){"; +inline std::ostream &operator<<(std::ostream &os, + const struct ur_usm_host_desc_t params) { + os << "(struct ur_usm_host_desc_t){"; os << ".stype = "; @@ -7131,13 +6956,17 @@ operator<<(std::ostream &os, ur_params::serializeStruct(os, (params.pNext)); + os << ", "; + os << ".flags = "; + + ur_params::serializeFlag(os, (params.flags)); + os << "}"; return os; } -inline std::ostream & -operator<<(std::ostream &os, - const struct ur_kernel_arg_local_properties_t params) { - os << "(struct ur_kernel_arg_local_properties_t){"; +inline std::ostream &operator<<(std::ostream &os, + const struct ur_usm_device_desc_t params) { + os << "(struct ur_usm_device_desc_t){"; os << ".stype = "; @@ -7148,296 +6977,71 @@ operator<<(std::ostream &os, ur_params::serializeStruct(os, (params.pNext)); - os << "}"; - return os; -} -inline std::ostream &operator<<(std::ostream &os, enum ur_kernel_info_t value) { - switch (value) { - - case UR_KERNEL_INFO_FUNCTION_NAME: - os << "UR_KERNEL_INFO_FUNCTION_NAME"; - break; - - case UR_KERNEL_INFO_NUM_ARGS: - os << "UR_KERNEL_INFO_NUM_ARGS"; - break; - - case UR_KERNEL_INFO_REFERENCE_COUNT: - os << "UR_KERNEL_INFO_REFERENCE_COUNT"; - break; - - case UR_KERNEL_INFO_CONTEXT: - os << "UR_KERNEL_INFO_CONTEXT"; - break; - - case UR_KERNEL_INFO_PROGRAM: - os << "UR_KERNEL_INFO_PROGRAM"; - break; + os << ", "; + os << ".flags = "; - case UR_KERNEL_INFO_ATTRIBUTES: - os << "UR_KERNEL_INFO_ATTRIBUTES"; - break; + ur_params::serializeFlag(os, (params.flags)); - case UR_KERNEL_INFO_NUM_REGS: - os << "UR_KERNEL_INFO_NUM_REGS"; - break; - default: - os << "unknown enumerator"; - break; - } + os << "}"; return os; } -namespace ur_params { -template <> -inline void serializeTagged(std::ostream &os, const void *ptr, - ur_kernel_info_t value, size_t size) { - if (ptr == NULL) { - serializePtr(os, ptr); - return; - } - - switch (value) { - - case UR_KERNEL_INFO_FUNCTION_NAME: { - - const char *tptr = (const char *)ptr; - serializePtr(os, tptr); - } break; - - case UR_KERNEL_INFO_NUM_ARGS: { - const size_t *tptr = (const size_t *)ptr; - if (sizeof(size_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(size_t) << ")"; - return; - } - os << (void *)(tptr) << " ("; - - os << *tptr; - - os << ")"; - } break; - - case UR_KERNEL_INFO_REFERENCE_COUNT: { - const uint32_t *tptr = (const uint32_t *)ptr; - if (sizeof(uint32_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(uint32_t) << ")"; - return; - } - os << (void *)(tptr) << " ("; - - os << *tptr; - - os << ")"; - } break; - - case UR_KERNEL_INFO_CONTEXT: { - const ur_context_handle_t *tptr = (const ur_context_handle_t *)ptr; - if (sizeof(ur_context_handle_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(ur_context_handle_t) << ")"; - return; - } - os << (void *)(tptr) << " ("; - - ur_params::serializePtr(os, *tptr); - - os << ")"; - } break; - - case UR_KERNEL_INFO_PROGRAM: { - const ur_program_handle_t *tptr = (const ur_program_handle_t *)ptr; - if (sizeof(ur_program_handle_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(ur_program_handle_t) << ")"; - return; - } - os << (void *)(tptr) << " ("; - - ur_params::serializePtr(os, *tptr); - - os << ")"; - } break; - - case UR_KERNEL_INFO_ATTRIBUTES: { - - const char *tptr = (const char *)ptr; - serializePtr(os, tptr); - } break; - - case UR_KERNEL_INFO_NUM_REGS: { - const uint32_t *tptr = (const uint32_t *)ptr; - if (sizeof(uint32_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(uint32_t) << ")"; - return; - } - os << (void *)(tptr) << " ("; - - os << *tptr; - - os << ")"; - } break; - default: - os << "unknown enumerator"; - break; - } -} -} // namespace ur_params inline std::ostream &operator<<(std::ostream &os, - enum ur_kernel_group_info_t value) { - switch (value) { + const struct ur_usm_pool_desc_t params) { + os << "(struct ur_usm_pool_desc_t){"; - case UR_KERNEL_GROUP_INFO_GLOBAL_WORK_SIZE: - os << "UR_KERNEL_GROUP_INFO_GLOBAL_WORK_SIZE"; - break; + os << ".stype = "; - case UR_KERNEL_GROUP_INFO_WORK_GROUP_SIZE: - os << "UR_KERNEL_GROUP_INFO_WORK_GROUP_SIZE"; - break; + os << (params.stype); - case UR_KERNEL_GROUP_INFO_COMPILE_WORK_GROUP_SIZE: - os << "UR_KERNEL_GROUP_INFO_COMPILE_WORK_GROUP_SIZE"; - break; + os << ", "; + os << ".pNext = "; - case UR_KERNEL_GROUP_INFO_LOCAL_MEM_SIZE: - os << "UR_KERNEL_GROUP_INFO_LOCAL_MEM_SIZE"; - break; + ur_params::serializeStruct(os, (params.pNext)); - case UR_KERNEL_GROUP_INFO_PREFERRED_WORK_GROUP_SIZE_MULTIPLE: - os << "UR_KERNEL_GROUP_INFO_PREFERRED_WORK_GROUP_SIZE_MULTIPLE"; - break; + os << ", "; + os << ".flags = "; - case UR_KERNEL_GROUP_INFO_PRIVATE_MEM_SIZE: - os << "UR_KERNEL_GROUP_INFO_PRIVATE_MEM_SIZE"; - break; - default: - os << "unknown enumerator"; - break; - } + ur_params::serializeFlag(os, (params.flags)); + + os << "}"; return os; } -namespace ur_params { -template <> -inline void serializeTagged(std::ostream &os, const void *ptr, - ur_kernel_group_info_t value, size_t size) { - if (ptr == NULL) { - serializePtr(os, ptr); - return; - } - - switch (value) { - - case UR_KERNEL_GROUP_INFO_GLOBAL_WORK_SIZE: { - - const size_t *tptr = (const size_t *)ptr; - os << "{"; - size_t nelems = size / sizeof(size_t); - for (size_t i = 0; i < nelems; ++i) { - if (i != 0) { - os << ", "; - } - - os << tptr[i]; - } - os << "}"; - } break; - - case UR_KERNEL_GROUP_INFO_WORK_GROUP_SIZE: { - const size_t *tptr = (const size_t *)ptr; - if (sizeof(size_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(size_t) << ")"; - return; - } - os << (void *)(tptr) << " ("; - - os << *tptr; - - os << ")"; - } break; - - case UR_KERNEL_GROUP_INFO_COMPILE_WORK_GROUP_SIZE: { - - const size_t *tptr = (const size_t *)ptr; - os << "{"; - size_t nelems = size / sizeof(size_t); - for (size_t i = 0; i < nelems; ++i) { - if (i != 0) { - os << ", "; - } - - os << tptr[i]; - } - os << "}"; - } break; +inline std::ostream &operator<<(std::ostream &os, + const struct ur_usm_pool_limits_desc_t params) { + os << "(struct ur_usm_pool_limits_desc_t){"; - case UR_KERNEL_GROUP_INFO_LOCAL_MEM_SIZE: { - const size_t *tptr = (const size_t *)ptr; - if (sizeof(size_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(size_t) << ")"; - return; - } - os << (void *)(tptr) << " ("; + os << ".stype = "; - os << *tptr; + os << (params.stype); - os << ")"; - } break; + os << ", "; + os << ".pNext = "; - case UR_KERNEL_GROUP_INFO_PREFERRED_WORK_GROUP_SIZE_MULTIPLE: { - const size_t *tptr = (const size_t *)ptr; - if (sizeof(size_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(size_t) << ")"; - return; - } - os << (void *)(tptr) << " ("; + ur_params::serializeStruct(os, (params.pNext)); - os << *tptr; + os << ", "; + os << ".maxPoolableSize = "; - os << ")"; - } break; + os << (params.maxPoolableSize); - case UR_KERNEL_GROUP_INFO_PRIVATE_MEM_SIZE: { - const size_t *tptr = (const size_t *)ptr; - if (sizeof(size_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(size_t) << ")"; - return; - } - os << (void *)(tptr) << " ("; + os << ", "; + os << ".minDriverAllocSize = "; - os << *tptr; + os << (params.minDriverAllocSize); - os << ")"; - } break; - default: - os << "unknown enumerator"; - break; - } + os << "}"; + return os; } -} // namespace ur_params inline std::ostream &operator<<(std::ostream &os, - enum ur_kernel_sub_group_info_t value) { + enum ur_usm_pool_info_t value) { switch (value) { - case UR_KERNEL_SUB_GROUP_INFO_MAX_SUB_GROUP_SIZE: - os << "UR_KERNEL_SUB_GROUP_INFO_MAX_SUB_GROUP_SIZE"; - break; - - case UR_KERNEL_SUB_GROUP_INFO_MAX_NUM_SUB_GROUPS: - os << "UR_KERNEL_SUB_GROUP_INFO_MAX_NUM_SUB_GROUPS"; - break; - - case UR_KERNEL_SUB_GROUP_INFO_COMPILE_NUM_SUB_GROUPS: - os << "UR_KERNEL_SUB_GROUP_INFO_COMPILE_NUM_SUB_GROUPS"; + case UR_USM_POOL_INFO_REFERENCE_COUNT: + os << "UR_USM_POOL_INFO_REFERENCE_COUNT"; break; - case UR_KERNEL_SUB_GROUP_INFO_SUB_GROUP_SIZE_INTEL: - os << "UR_KERNEL_SUB_GROUP_INFO_SUB_GROUP_SIZE_INTEL"; + case UR_USM_POOL_INFO_CONTEXT: + os << "UR_USM_POOL_INFO_CONTEXT"; break; default: os << "unknown enumerator"; @@ -7448,7 +7052,7 @@ inline std::ostream &operator<<(std::ostream &os, namespace ur_params { template <> inline void serializeTagged(std::ostream &os, const void *ptr, - ur_kernel_sub_group_info_t value, size_t size) { + ur_usm_pool_info_t value, size_t size) { if (ptr == NULL) { serializePtr(os, ptr); return; @@ -7456,7 +7060,7 @@ inline void serializeTagged(std::ostream &os, const void *ptr, switch (value) { - case UR_KERNEL_SUB_GROUP_INFO_MAX_SUB_GROUP_SIZE: { + case UR_USM_POOL_INFO_REFERENCE_COUNT: { const uint32_t *tptr = (const uint32_t *)ptr; if (sizeof(uint32_t) > size) { os << "invalid size (is: " << size @@ -7470,25 +7074,59 @@ inline void serializeTagged(std::ostream &os, const void *ptr, os << ")"; } break; - case UR_KERNEL_SUB_GROUP_INFO_MAX_NUM_SUB_GROUPS: { - const uint32_t *tptr = (const uint32_t *)ptr; - if (sizeof(uint32_t) > size) { + case UR_USM_POOL_INFO_CONTEXT: { + const ur_context_handle_t *tptr = (const ur_context_handle_t *)ptr; + if (sizeof(ur_context_handle_t) > size) { os << "invalid size (is: " << size - << ", expected: >=" << sizeof(uint32_t) << ")"; + << ", expected: >=" << sizeof(ur_context_handle_t) << ")"; return; } os << (void *)(tptr) << " ("; - os << *tptr; + ur_params::serializePtr(os, *tptr); os << ")"; } break; + default: + os << "unknown enumerator"; + break; + } +} +} // namespace ur_params +inline std::ostream &operator<<(std::ostream &os, + enum ur_virtual_mem_granularity_info_t value) { + switch (value) { - case UR_KERNEL_SUB_GROUP_INFO_COMPILE_NUM_SUB_GROUPS: { - const uint32_t *tptr = (const uint32_t *)ptr; - if (sizeof(uint32_t) > size) { + case UR_VIRTUAL_MEM_GRANULARITY_INFO_MINIMUM: + os << "UR_VIRTUAL_MEM_GRANULARITY_INFO_MINIMUM"; + break; + + case UR_VIRTUAL_MEM_GRANULARITY_INFO_RECOMMENDED: + os << "UR_VIRTUAL_MEM_GRANULARITY_INFO_RECOMMENDED"; + break; + default: + os << "unknown enumerator"; + break; + } + return os; +} +namespace ur_params { +template <> +inline void serializeTagged(std::ostream &os, const void *ptr, + ur_virtual_mem_granularity_info_t value, + size_t size) { + if (ptr == NULL) { + serializePtr(os, ptr); + return; + } + + switch (value) { + + case UR_VIRTUAL_MEM_GRANULARITY_INFO_MINIMUM: { + const size_t *tptr = (const size_t *)ptr; + if (sizeof(size_t) > size) { os << "invalid size (is: " << size - << ", expected: >=" << sizeof(uint32_t) << ")"; + << ", expected: >=" << sizeof(size_t) << ")"; return; } os << (void *)(tptr) << " ("; @@ -7498,11 +7136,11 @@ inline void serializeTagged(std::ostream &os, const void *ptr, os << ")"; } break; - case UR_KERNEL_SUB_GROUP_INFO_SUB_GROUP_SIZE_INTEL: { - const uint32_t *tptr = (const uint32_t *)ptr; - if (sizeof(uint32_t) > size) { + case UR_VIRTUAL_MEM_GRANULARITY_INFO_RECOMMENDED: { + const size_t *tptr = (const size_t *)ptr; + if (sizeof(size_t) > size) { os << "invalid size (is: " << size - << ", expected: >=" << sizeof(uint32_t) << ")"; + << ", expected: >=" << sizeof(size_t) << ")"; return; } os << (void *)(tptr) << " ("; @@ -7518,19 +7156,19 @@ inline void serializeTagged(std::ostream &os, const void *ptr, } } // namespace ur_params inline std::ostream &operator<<(std::ostream &os, - enum ur_kernel_cache_config_t value) { + enum ur_virtual_mem_access_flag_t value) { switch (value) { - case UR_KERNEL_CACHE_CONFIG_DEFAULT: - os << "UR_KERNEL_CACHE_CONFIG_DEFAULT"; + case UR_VIRTUAL_MEM_ACCESS_FLAG_NONE: + os << "UR_VIRTUAL_MEM_ACCESS_FLAG_NONE"; break; - case UR_KERNEL_CACHE_CONFIG_LARGE_SLM: - os << "UR_KERNEL_CACHE_CONFIG_LARGE_SLM"; + case UR_VIRTUAL_MEM_ACCESS_FLAG_READ_WRITE: + os << "UR_VIRTUAL_MEM_ACCESS_FLAG_READ_WRITE"; break; - case UR_KERNEL_CACHE_CONFIG_LARGE_DATA: - os << "UR_KERNEL_CACHE_CONFIG_LARGE_DATA"; + case UR_VIRTUAL_MEM_ACCESS_FLAG_READ_ONLY: + os << "UR_VIRTUAL_MEM_ACCESS_FLAG_READ_ONLY"; break; default: os << "unknown enumerator"; @@ -7538,20 +7176,63 @@ inline std::ostream &operator<<(std::ostream &os, } return os; } -inline std::ostream &operator<<(std::ostream &os, - enum ur_kernel_exec_info_t value) { - switch (value) { +namespace ur_params { - case UR_KERNEL_EXEC_INFO_USM_INDIRECT_ACCESS: - os << "UR_KERNEL_EXEC_INFO_USM_INDIRECT_ACCESS"; - break; +template <> +inline void serializeFlag(std::ostream &os, + uint32_t flag) { + uint32_t val = flag; + bool first = true; - case UR_KERNEL_EXEC_INFO_USM_PTRS: - os << "UR_KERNEL_EXEC_INFO_USM_PTRS"; - break; + if ((val & UR_VIRTUAL_MEM_ACCESS_FLAG_NONE) == + (uint32_t)UR_VIRTUAL_MEM_ACCESS_FLAG_NONE) { + val ^= (uint32_t)UR_VIRTUAL_MEM_ACCESS_FLAG_NONE; + if (!first) { + os << " | "; + } else { + first = false; + } + os << UR_VIRTUAL_MEM_ACCESS_FLAG_NONE; + } - case UR_KERNEL_EXEC_INFO_CACHE_CONFIG: - os << "UR_KERNEL_EXEC_INFO_CACHE_CONFIG"; + if ((val & UR_VIRTUAL_MEM_ACCESS_FLAG_READ_WRITE) == + (uint32_t)UR_VIRTUAL_MEM_ACCESS_FLAG_READ_WRITE) { + val ^= (uint32_t)UR_VIRTUAL_MEM_ACCESS_FLAG_READ_WRITE; + if (!first) { + os << " | "; + } else { + first = false; + } + os << UR_VIRTUAL_MEM_ACCESS_FLAG_READ_WRITE; + } + + if ((val & UR_VIRTUAL_MEM_ACCESS_FLAG_READ_ONLY) == + (uint32_t)UR_VIRTUAL_MEM_ACCESS_FLAG_READ_ONLY) { + val ^= (uint32_t)UR_VIRTUAL_MEM_ACCESS_FLAG_READ_ONLY; + if (!first) { + os << " | "; + } else { + first = false; + } + os << UR_VIRTUAL_MEM_ACCESS_FLAG_READ_ONLY; + } + if (val != 0) { + std::bitset<32> bits(val); + if (!first) { + os << " | "; + } + os << "unknown bit flags " << bits; + } else if (first) { + os << "0"; + } +} +} // namespace ur_params +inline std::ostream &operator<<(std::ostream &os, + enum ur_virtual_mem_info_t value) { + switch (value) { + + case UR_VIRTUAL_MEM_INFO_ACCESS_MODE: + os << "UR_VIRTUAL_MEM_INFO_ACCESS_MODE"; break; default: os << "unknown enumerator"; @@ -7562,7 +7243,7 @@ inline std::ostream &operator<<(std::ostream &os, namespace ur_params { template <> inline void serializeTagged(std::ostream &os, const void *ptr, - ur_kernel_exec_info_t value, size_t size) { + ur_virtual_mem_info_t value, size_t size) { if (ptr == NULL) { serializePtr(os, ptr); return; @@ -7570,46 +7251,18 @@ inline void serializeTagged(std::ostream &os, const void *ptr, switch (value) { - case UR_KERNEL_EXEC_INFO_USM_INDIRECT_ACCESS: { - const ur_bool_t *tptr = (const ur_bool_t *)ptr; - if (sizeof(ur_bool_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(ur_bool_t) << ")"; - return; - } - os << (void *)(tptr) << " ("; - - os << *tptr; - - os << ")"; - } break; - - case UR_KERNEL_EXEC_INFO_USM_PTRS: { - - const void **tptr = (const void **)ptr; - os << "{"; - size_t nelems = size / sizeof(void *); - for (size_t i = 0; i < nelems; ++i) { - if (i != 0) { - os << ", "; - } - - os << tptr[i]; - } - os << "}"; - } break; - - case UR_KERNEL_EXEC_INFO_CACHE_CONFIG: { - const ur_kernel_cache_config_t *tptr = - (const ur_kernel_cache_config_t *)ptr; - if (sizeof(ur_kernel_cache_config_t) > size) { + case UR_VIRTUAL_MEM_INFO_ACCESS_MODE: { + const ur_virtual_mem_access_flags_t *tptr = + (const ur_virtual_mem_access_flags_t *)ptr; + if (sizeof(ur_virtual_mem_access_flags_t) > size) { os << "invalid size (is: " << size - << ", expected: >=" << sizeof(ur_kernel_cache_config_t) << ")"; + << ", expected: >=" << sizeof(ur_virtual_mem_access_flags_t) + << ")"; return; } os << (void *)(tptr) << " ("; - os << *tptr; + ur_params::serializeFlag(os, *tptr); os << ")"; } break; @@ -7619,10 +7272,51 @@ inline void serializeTagged(std::ostream &os, const void *ptr, } } } // namespace ur_params +inline std::ostream &operator<<(std::ostream &os, + enum ur_physical_mem_flag_t value) { + switch (value) { + + case UR_PHYSICAL_MEM_FLAG_TBD: + os << "UR_PHYSICAL_MEM_FLAG_TBD"; + break; + default: + os << "unknown enumerator"; + break; + } + return os; +} +namespace ur_params { + +template <> +inline void serializeFlag(std::ostream &os, + uint32_t flag) { + uint32_t val = flag; + bool first = true; + + if ((val & UR_PHYSICAL_MEM_FLAG_TBD) == + (uint32_t)UR_PHYSICAL_MEM_FLAG_TBD) { + val ^= (uint32_t)UR_PHYSICAL_MEM_FLAG_TBD; + if (!first) { + os << " | "; + } else { + first = false; + } + os << UR_PHYSICAL_MEM_FLAG_TBD; + } + if (val != 0) { + std::bitset<32> bits(val); + if (!first) { + os << " | "; + } + os << "unknown bit flags " << bits; + } else if (first) { + os << "0"; + } +} +} // namespace ur_params inline std::ostream & -operator<<(std::ostream &os, - const struct ur_kernel_arg_pointer_properties_t params) { - os << "(struct ur_kernel_arg_pointer_properties_t){"; +operator<<(std::ostream &os, const struct ur_physical_mem_properties_t params) { + os << "(struct ur_physical_mem_properties_t){"; os << ".stype = "; @@ -7633,69 +7327,94 @@ operator<<(std::ostream &os, ur_params::serializeStruct(os, (params.pNext)); + os << ", "; + os << ".flags = "; + + ur_params::serializeFlag(os, (params.flags)); + os << "}"; return os; } -inline std::ostream & -operator<<(std::ostream &os, - const struct ur_kernel_exec_info_properties_t params) { - os << "(struct ur_kernel_exec_info_properties_t){"; - - os << ".stype = "; +inline std::ostream &operator<<(std::ostream &os, + enum ur_program_metadata_type_t value) { + switch (value) { - os << (params.stype); + case UR_PROGRAM_METADATA_TYPE_UINT32: + os << "UR_PROGRAM_METADATA_TYPE_UINT32"; + break; - os << ", "; - os << ".pNext = "; + case UR_PROGRAM_METADATA_TYPE_UINT64: + os << "UR_PROGRAM_METADATA_TYPE_UINT64"; + break; - ur_params::serializeStruct(os, (params.pNext)); + case UR_PROGRAM_METADATA_TYPE_BYTE_ARRAY: + os << "UR_PROGRAM_METADATA_TYPE_BYTE_ARRAY"; + break; - os << "}"; + case UR_PROGRAM_METADATA_TYPE_STRING: + os << "UR_PROGRAM_METADATA_TYPE_STRING"; + break; + default: + os << "unknown enumerator"; + break; + } return os; } inline std::ostream & -operator<<(std::ostream &os, - const struct ur_kernel_arg_sampler_properties_t params) { - os << "(struct ur_kernel_arg_sampler_properties_t){"; +operator<<(std::ostream &os, const union ur_program_metadata_value_t params) { + os << "(union ur_program_metadata_value_t){"; - os << ".stype = "; + os << ".data32 = "; - os << (params.stype); + os << (params.data32); os << ", "; - os << ".pNext = "; + os << ".data64 = "; - ur_params::serializeStruct(os, (params.pNext)); + os << (params.data64); + + os << ", "; + os << ".pString = "; + + ur_params::serializePtr(os, (params.pString)); + + os << ", "; + os << ".pData = "; + + ur_params::serializePtr(os, (params.pData)); os << "}"; return os; } -inline std::ostream & -operator<<(std::ostream &os, - const struct ur_kernel_arg_mem_obj_properties_t params) { - os << "(struct ur_kernel_arg_mem_obj_properties_t){"; +inline std::ostream &operator<<(std::ostream &os, + const struct ur_program_metadata_t params) { + os << "(struct ur_program_metadata_t){"; - os << ".stype = "; + os << ".pName = "; - os << (params.stype); + ur_params::serializePtr(os, (params.pName)); os << ", "; - os << ".pNext = "; + os << ".type = "; - ur_params::serializeStruct(os, (params.pNext)); + os << (params.type); os << ", "; - os << ".memoryAccess = "; + os << ".size = "; - ur_params::serializeFlag(os, (params.memoryAccess)); + os << (params.size); + + os << ", "; + os << ".value = "; + + os << (params.value); os << "}"; return os; } -inline std::ostream & -operator<<(std::ostream &os, - const struct ur_kernel_native_properties_t params) { - os << "(struct ur_kernel_native_properties_t){"; +inline std::ostream &operator<<(std::ostream &os, + const struct ur_program_properties_t params) { + os << "(struct ur_program_properties_t){"; os << ".stype = "; @@ -7707,42 +7426,62 @@ operator<<(std::ostream &os, ur_params::serializeStruct(os, (params.pNext)); os << ", "; - os << ".isNativeHandleOwned = "; + os << ".count = "; - os << (params.isNativeHandleOwned); + os << (params.count); + + os << ", "; + os << ".pMetadatas = {"; + for (size_t i = 0; (params.pMetadatas) != NULL && i < params.count; ++i) { + if (i != 0) { + os << ", "; + } + + os << ((params.pMetadatas))[i]; + } + os << "}"; os << "}"; return os; } -inline std::ostream &operator<<(std::ostream &os, enum ur_queue_info_t value) { +inline std::ostream &operator<<(std::ostream &os, + enum ur_program_info_t value) { switch (value) { - case UR_QUEUE_INFO_CONTEXT: - os << "UR_QUEUE_INFO_CONTEXT"; + case UR_PROGRAM_INFO_REFERENCE_COUNT: + os << "UR_PROGRAM_INFO_REFERENCE_COUNT"; break; - case UR_QUEUE_INFO_DEVICE: - os << "UR_QUEUE_INFO_DEVICE"; + case UR_PROGRAM_INFO_CONTEXT: + os << "UR_PROGRAM_INFO_CONTEXT"; break; - case UR_QUEUE_INFO_DEVICE_DEFAULT: - os << "UR_QUEUE_INFO_DEVICE_DEFAULT"; + case UR_PROGRAM_INFO_NUM_DEVICES: + os << "UR_PROGRAM_INFO_NUM_DEVICES"; break; - case UR_QUEUE_INFO_FLAGS: - os << "UR_QUEUE_INFO_FLAGS"; + case UR_PROGRAM_INFO_DEVICES: + os << "UR_PROGRAM_INFO_DEVICES"; break; - case UR_QUEUE_INFO_REFERENCE_COUNT: - os << "UR_QUEUE_INFO_REFERENCE_COUNT"; + case UR_PROGRAM_INFO_SOURCE: + os << "UR_PROGRAM_INFO_SOURCE"; break; - case UR_QUEUE_INFO_SIZE: - os << "UR_QUEUE_INFO_SIZE"; + case UR_PROGRAM_INFO_BINARY_SIZES: + os << "UR_PROGRAM_INFO_BINARY_SIZES"; break; - case UR_QUEUE_INFO_EMPTY: - os << "UR_QUEUE_INFO_EMPTY"; + case UR_PROGRAM_INFO_BINARIES: + os << "UR_PROGRAM_INFO_BINARIES"; + break; + + case UR_PROGRAM_INFO_NUM_KERNELS: + os << "UR_PROGRAM_INFO_NUM_KERNELS"; + break; + + case UR_PROGRAM_INFO_KERNEL_NAMES: + os << "UR_PROGRAM_INFO_KERNEL_NAMES"; break; default: os << "unknown enumerator"; @@ -7753,7 +7492,7 @@ inline std::ostream &operator<<(std::ostream &os, enum ur_queue_info_t value) { namespace ur_params { template <> inline void serializeTagged(std::ostream &os, const void *ptr, - ur_queue_info_t value, size_t size) { + ur_program_info_t value, size_t size) { if (ptr == NULL) { serializePtr(os, ptr); return; @@ -7761,25 +7500,25 @@ inline void serializeTagged(std::ostream &os, const void *ptr, switch (value) { - case UR_QUEUE_INFO_CONTEXT: { - const ur_queue_handle_t *tptr = (const ur_queue_handle_t *)ptr; - if (sizeof(ur_queue_handle_t) > size) { + case UR_PROGRAM_INFO_REFERENCE_COUNT: { + const uint32_t *tptr = (const uint32_t *)ptr; + if (sizeof(uint32_t) > size) { os << "invalid size (is: " << size - << ", expected: >=" << sizeof(ur_queue_handle_t) << ")"; + << ", expected: >=" << sizeof(uint32_t) << ")"; return; } os << (void *)(tptr) << " ("; - ur_params::serializePtr(os, *tptr); + os << *tptr; os << ")"; } break; - case UR_QUEUE_INFO_DEVICE: { - const ur_device_handle_t *tptr = (const ur_device_handle_t *)ptr; - if (sizeof(ur_device_handle_t) > size) { + case UR_PROGRAM_INFO_CONTEXT: { + const ur_context_handle_t *tptr = (const ur_context_handle_t *)ptr; + if (sizeof(ur_context_handle_t) > size) { os << "invalid size (is: " << size - << ", expected: >=" << sizeof(ur_device_handle_t) << ")"; + << ", expected: >=" << sizeof(ur_context_handle_t) << ")"; return; } os << (void *)(tptr) << " ("; @@ -7789,53 +7528,67 @@ inline void serializeTagged(std::ostream &os, const void *ptr, os << ")"; } break; - case UR_QUEUE_INFO_DEVICE_DEFAULT: { - const ur_queue_handle_t *tptr = (const ur_queue_handle_t *)ptr; - if (sizeof(ur_queue_handle_t) > size) { + case UR_PROGRAM_INFO_NUM_DEVICES: { + const uint32_t *tptr = (const uint32_t *)ptr; + if (sizeof(uint32_t) > size) { os << "invalid size (is: " << size - << ", expected: >=" << sizeof(ur_queue_handle_t) << ")"; + << ", expected: >=" << sizeof(uint32_t) << ")"; return; } os << (void *)(tptr) << " ("; - ur_params::serializePtr(os, *tptr); + os << *tptr; os << ")"; } break; - case UR_QUEUE_INFO_FLAGS: { - const ur_queue_flags_t *tptr = (const ur_queue_flags_t *)ptr; - if (sizeof(ur_queue_flags_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(ur_queue_flags_t) << ")"; - return; + case UR_PROGRAM_INFO_DEVICES: { + + const ur_device_handle_t *tptr = (const ur_device_handle_t *)ptr; + os << "{"; + size_t nelems = size / sizeof(ur_device_handle_t); + for (size_t i = 0; i < nelems; ++i) { + if (i != 0) { + os << ", "; + } + + ur_params::serializePtr(os, tptr[i]); } - os << (void *)(tptr) << " ("; + os << "}"; + } break; - ur_params::serializeFlag(os, *tptr); + case UR_PROGRAM_INFO_SOURCE: { - os << ")"; + const char *tptr = (const char *)ptr; + serializePtr(os, tptr); } break; - case UR_QUEUE_INFO_REFERENCE_COUNT: { - const uint32_t *tptr = (const uint32_t *)ptr; - if (sizeof(uint32_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(uint32_t) << ")"; - return; + case UR_PROGRAM_INFO_BINARY_SIZES: { + + const size_t *tptr = (const size_t *)ptr; + os << "{"; + size_t nelems = size / sizeof(size_t); + for (size_t i = 0; i < nelems; ++i) { + if (i != 0) { + os << ", "; + } + + os << tptr[i]; } - os << (void *)(tptr) << " ("; + os << "}"; + } break; - os << *tptr; + case UR_PROGRAM_INFO_BINARIES: { - os << ")"; + const unsigned char *tptr = (const unsigned char *)ptr; + serializePtr(os, tptr); } break; - case UR_QUEUE_INFO_SIZE: { - const uint32_t *tptr = (const uint32_t *)ptr; - if (sizeof(uint32_t) > size) { + case UR_PROGRAM_INFO_NUM_KERNELS: { + const size_t *tptr = (const size_t *)ptr; + if (sizeof(size_t) > size) { os << "invalid size (is: " << size - << ", expected: >=" << sizeof(uint32_t) << ")"; + << ", expected: >=" << sizeof(size_t) << ")"; return; } os << (void *)(tptr) << " ("; @@ -7845,18 +7598,10 @@ inline void serializeTagged(std::ostream &os, const void *ptr, os << ")"; } break; - case UR_QUEUE_INFO_EMPTY: { - const ur_bool_t *tptr = (const ur_bool_t *)ptr; - if (sizeof(ur_bool_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(ur_bool_t) << ")"; - return; - } - os << (void *)(tptr) << " ("; - - os << *tptr; + case UR_PROGRAM_INFO_KERNEL_NAMES: { - os << ")"; + const char *tptr = (const char *)ptr; + serializePtr(os, tptr); } break; default: os << "unknown enumerator"; @@ -7864,51 +7609,74 @@ inline void serializeTagged(std::ostream &os, const void *ptr, } } } // namespace ur_params -inline std::ostream &operator<<(std::ostream &os, enum ur_queue_flag_t value) { +inline std::ostream &operator<<(std::ostream &os, + enum ur_program_build_status_t value) { switch (value) { - case UR_QUEUE_FLAG_OUT_OF_ORDER_EXEC_MODE_ENABLE: - os << "UR_QUEUE_FLAG_OUT_OF_ORDER_EXEC_MODE_ENABLE"; + case UR_PROGRAM_BUILD_STATUS_NONE: + os << "UR_PROGRAM_BUILD_STATUS_NONE"; break; - case UR_QUEUE_FLAG_PROFILING_ENABLE: - os << "UR_QUEUE_FLAG_PROFILING_ENABLE"; + case UR_PROGRAM_BUILD_STATUS_ERROR: + os << "UR_PROGRAM_BUILD_STATUS_ERROR"; break; - case UR_QUEUE_FLAG_ON_DEVICE: - os << "UR_QUEUE_FLAG_ON_DEVICE"; + case UR_PROGRAM_BUILD_STATUS_SUCCESS: + os << "UR_PROGRAM_BUILD_STATUS_SUCCESS"; break; - case UR_QUEUE_FLAG_ON_DEVICE_DEFAULT: - os << "UR_QUEUE_FLAG_ON_DEVICE_DEFAULT"; + case UR_PROGRAM_BUILD_STATUS_IN_PROGRESS: + os << "UR_PROGRAM_BUILD_STATUS_IN_PROGRESS"; + break; + default: + os << "unknown enumerator"; + break; + } + return os; +} +inline std::ostream &operator<<(std::ostream &os, + enum ur_program_binary_type_t value) { + switch (value) { + + case UR_PROGRAM_BINARY_TYPE_NONE: + os << "UR_PROGRAM_BINARY_TYPE_NONE"; break; - case UR_QUEUE_FLAG_DISCARD_EVENTS: - os << "UR_QUEUE_FLAG_DISCARD_EVENTS"; + case UR_PROGRAM_BINARY_TYPE_COMPILED_OBJECT: + os << "UR_PROGRAM_BINARY_TYPE_COMPILED_OBJECT"; break; - case UR_QUEUE_FLAG_PRIORITY_LOW: - os << "UR_QUEUE_FLAG_PRIORITY_LOW"; + case UR_PROGRAM_BINARY_TYPE_LIBRARY: + os << "UR_PROGRAM_BINARY_TYPE_LIBRARY"; break; - case UR_QUEUE_FLAG_PRIORITY_HIGH: - os << "UR_QUEUE_FLAG_PRIORITY_HIGH"; + case UR_PROGRAM_BINARY_TYPE_EXECUTABLE: + os << "UR_PROGRAM_BINARY_TYPE_EXECUTABLE"; + break; + default: + os << "unknown enumerator"; break; + } + return os; +} +inline std::ostream &operator<<(std::ostream &os, + enum ur_program_build_info_t value) { + switch (value) { - case UR_QUEUE_FLAG_SUBMISSION_BATCHED: - os << "UR_QUEUE_FLAG_SUBMISSION_BATCHED"; + case UR_PROGRAM_BUILD_INFO_STATUS: + os << "UR_PROGRAM_BUILD_INFO_STATUS"; break; - case UR_QUEUE_FLAG_SUBMISSION_IMMEDIATE: - os << "UR_QUEUE_FLAG_SUBMISSION_IMMEDIATE"; + case UR_PROGRAM_BUILD_INFO_OPTIONS: + os << "UR_PROGRAM_BUILD_INFO_OPTIONS"; break; - case UR_QUEUE_FLAG_USE_DEFAULT_STREAM: - os << "UR_QUEUE_FLAG_USE_DEFAULT_STREAM"; + case UR_PROGRAM_BUILD_INFO_LOG: + os << "UR_PROGRAM_BUILD_INFO_LOG"; break; - case UR_QUEUE_FLAG_SYNC_WITH_DEFAULT_STREAM: - os << "UR_QUEUE_FLAG_SYNC_WITH_DEFAULT_STREAM"; + case UR_PROGRAM_BUILD_INFO_BINARY_TYPE: + os << "UR_PROGRAM_BUILD_INFO_BINARY_TYPE"; break; default: os << "unknown enumerator"; @@ -7917,166 +7685,89 @@ inline std::ostream &operator<<(std::ostream &os, enum ur_queue_flag_t value) { return os; } namespace ur_params { - template <> -inline void serializeFlag(std::ostream &os, uint32_t flag) { - uint32_t val = flag; - bool first = true; - - if ((val & UR_QUEUE_FLAG_OUT_OF_ORDER_EXEC_MODE_ENABLE) == - (uint32_t)UR_QUEUE_FLAG_OUT_OF_ORDER_EXEC_MODE_ENABLE) { - val ^= (uint32_t)UR_QUEUE_FLAG_OUT_OF_ORDER_EXEC_MODE_ENABLE; - if (!first) { - os << " | "; - } else { - first = false; - } - os << UR_QUEUE_FLAG_OUT_OF_ORDER_EXEC_MODE_ENABLE; - } - - if ((val & UR_QUEUE_FLAG_PROFILING_ENABLE) == - (uint32_t)UR_QUEUE_FLAG_PROFILING_ENABLE) { - val ^= (uint32_t)UR_QUEUE_FLAG_PROFILING_ENABLE; - if (!first) { - os << " | "; - } else { - first = false; - } - os << UR_QUEUE_FLAG_PROFILING_ENABLE; +inline void serializeTagged(std::ostream &os, const void *ptr, + ur_program_build_info_t value, size_t size) { + if (ptr == NULL) { + serializePtr(os, ptr); + return; } - if ((val & UR_QUEUE_FLAG_ON_DEVICE) == (uint32_t)UR_QUEUE_FLAG_ON_DEVICE) { - val ^= (uint32_t)UR_QUEUE_FLAG_ON_DEVICE; - if (!first) { - os << " | "; - } else { - first = false; - } - os << UR_QUEUE_FLAG_ON_DEVICE; - } + switch (value) { - if ((val & UR_QUEUE_FLAG_ON_DEVICE_DEFAULT) == - (uint32_t)UR_QUEUE_FLAG_ON_DEVICE_DEFAULT) { - val ^= (uint32_t)UR_QUEUE_FLAG_ON_DEVICE_DEFAULT; - if (!first) { - os << " | "; - } else { - first = false; + case UR_PROGRAM_BUILD_INFO_STATUS: { + const ur_program_build_status_t *tptr = + (const ur_program_build_status_t *)ptr; + if (sizeof(ur_program_build_status_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(ur_program_build_status_t) << ")"; + return; } - os << UR_QUEUE_FLAG_ON_DEVICE_DEFAULT; - } + os << (void *)(tptr) << " ("; - if ((val & UR_QUEUE_FLAG_DISCARD_EVENTS) == - (uint32_t)UR_QUEUE_FLAG_DISCARD_EVENTS) { - val ^= (uint32_t)UR_QUEUE_FLAG_DISCARD_EVENTS; - if (!first) { - os << " | "; - } else { - first = false; - } - os << UR_QUEUE_FLAG_DISCARD_EVENTS; - } + os << *tptr; - if ((val & UR_QUEUE_FLAG_PRIORITY_LOW) == - (uint32_t)UR_QUEUE_FLAG_PRIORITY_LOW) { - val ^= (uint32_t)UR_QUEUE_FLAG_PRIORITY_LOW; - if (!first) { - os << " | "; - } else { - first = false; - } - os << UR_QUEUE_FLAG_PRIORITY_LOW; - } + os << ")"; + } break; - if ((val & UR_QUEUE_FLAG_PRIORITY_HIGH) == - (uint32_t)UR_QUEUE_FLAG_PRIORITY_HIGH) { - val ^= (uint32_t)UR_QUEUE_FLAG_PRIORITY_HIGH; - if (!first) { - os << " | "; - } else { - first = false; - } - os << UR_QUEUE_FLAG_PRIORITY_HIGH; - } + case UR_PROGRAM_BUILD_INFO_OPTIONS: { - if ((val & UR_QUEUE_FLAG_SUBMISSION_BATCHED) == - (uint32_t)UR_QUEUE_FLAG_SUBMISSION_BATCHED) { - val ^= (uint32_t)UR_QUEUE_FLAG_SUBMISSION_BATCHED; - if (!first) { - os << " | "; - } else { - first = false; - } - os << UR_QUEUE_FLAG_SUBMISSION_BATCHED; - } + const char *tptr = (const char *)ptr; + serializePtr(os, tptr); + } break; - if ((val & UR_QUEUE_FLAG_SUBMISSION_IMMEDIATE) == - (uint32_t)UR_QUEUE_FLAG_SUBMISSION_IMMEDIATE) { - val ^= (uint32_t)UR_QUEUE_FLAG_SUBMISSION_IMMEDIATE; - if (!first) { - os << " | "; - } else { - first = false; - } - os << UR_QUEUE_FLAG_SUBMISSION_IMMEDIATE; - } + case UR_PROGRAM_BUILD_INFO_LOG: { - if ((val & UR_QUEUE_FLAG_USE_DEFAULT_STREAM) == - (uint32_t)UR_QUEUE_FLAG_USE_DEFAULT_STREAM) { - val ^= (uint32_t)UR_QUEUE_FLAG_USE_DEFAULT_STREAM; - if (!first) { - os << " | "; - } else { - first = false; - } - os << UR_QUEUE_FLAG_USE_DEFAULT_STREAM; - } + const char *tptr = (const char *)ptr; + serializePtr(os, tptr); + } break; - if ((val & UR_QUEUE_FLAG_SYNC_WITH_DEFAULT_STREAM) == - (uint32_t)UR_QUEUE_FLAG_SYNC_WITH_DEFAULT_STREAM) { - val ^= (uint32_t)UR_QUEUE_FLAG_SYNC_WITH_DEFAULT_STREAM; - if (!first) { - os << " | "; - } else { - first = false; - } - os << UR_QUEUE_FLAG_SYNC_WITH_DEFAULT_STREAM; - } - if (val != 0) { - std::bitset<32> bits(val); - if (!first) { - os << " | "; + case UR_PROGRAM_BUILD_INFO_BINARY_TYPE: { + const ur_program_binary_type_t *tptr = + (const ur_program_binary_type_t *)ptr; + if (sizeof(ur_program_binary_type_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(ur_program_binary_type_t) << ")"; + return; } - os << "unknown bit flags " << bits; - } else if (first) { - os << "0"; + os << (void *)(tptr) << " ("; + + os << *tptr; + + os << ")"; + } break; + default: + os << "unknown enumerator"; + break; } } } // namespace ur_params -inline std::ostream &operator<<(std::ostream &os, - const struct ur_queue_properties_t params) { - os << "(struct ur_queue_properties_t){"; +inline std::ostream & +operator<<(std::ostream &os, + const struct ur_specialization_constant_info_t params) { + os << "(struct ur_specialization_constant_info_t){"; - os << ".stype = "; + os << ".id = "; - os << (params.stype); + os << (params.id); os << ", "; - os << ".pNext = "; + os << ".size = "; - ur_params::serializeStruct(os, (params.pNext)); + os << (params.size); os << ", "; - os << ".flags = "; + os << ".pValue = "; - ur_params::serializeFlag(os, (params.flags)); + ur_params::serializePtr(os, (params.pValue)); os << "}"; return os; } inline std::ostream & -operator<<(std::ostream &os, const struct ur_queue_index_properties_t params) { - os << "(struct ur_queue_index_properties_t){"; +operator<<(std::ostream &os, + const struct ur_program_native_properties_t params) { + os << "(struct ur_program_native_properties_t){"; os << ".stype = "; @@ -8088,16 +7779,17 @@ operator<<(std::ostream &os, const struct ur_queue_index_properties_t params) { ur_params::serializeStruct(os, (params.pNext)); os << ", "; - os << ".computeIndex = "; + os << ".isNativeHandleOwned = "; - os << (params.computeIndex); + os << (params.isNativeHandleOwned); os << "}"; return os; } -inline std::ostream &operator<<(std::ostream &os, - const struct ur_queue_native_desc_t params) { - os << "(struct ur_queue_native_desc_t){"; +inline std::ostream & +operator<<(std::ostream &os, + const struct ur_kernel_arg_value_properties_t params) { + os << "(struct ur_kernel_arg_value_properties_t){"; os << ".stype = "; @@ -8108,201 +7800,427 @@ inline std::ostream &operator<<(std::ostream &os, ur_params::serializeStruct(os, (params.pNext)); - os << ", "; - os << ".pNativeData = "; - - ur_params::serializePtr(os, (params.pNativeData)); - os << "}"; return os; } inline std::ostream & -operator<<(std::ostream &os, const struct ur_queue_native_properties_t params) { - os << "(struct ur_queue_native_properties_t){"; +operator<<(std::ostream &os, + const struct ur_kernel_arg_local_properties_t params) { + os << "(struct ur_kernel_arg_local_properties_t){"; os << ".stype = "; os << (params.stype); - os << ", "; - os << ".pNext = "; + os << ", "; + os << ".pNext = "; + + ur_params::serializeStruct(os, (params.pNext)); + + os << "}"; + return os; +} +inline std::ostream &operator<<(std::ostream &os, enum ur_kernel_info_t value) { + switch (value) { + + case UR_KERNEL_INFO_FUNCTION_NAME: + os << "UR_KERNEL_INFO_FUNCTION_NAME"; + break; + + case UR_KERNEL_INFO_NUM_ARGS: + os << "UR_KERNEL_INFO_NUM_ARGS"; + break; + + case UR_KERNEL_INFO_REFERENCE_COUNT: + os << "UR_KERNEL_INFO_REFERENCE_COUNT"; + break; + + case UR_KERNEL_INFO_CONTEXT: + os << "UR_KERNEL_INFO_CONTEXT"; + break; + + case UR_KERNEL_INFO_PROGRAM: + os << "UR_KERNEL_INFO_PROGRAM"; + break; + + case UR_KERNEL_INFO_ATTRIBUTES: + os << "UR_KERNEL_INFO_ATTRIBUTES"; + break; + + case UR_KERNEL_INFO_NUM_REGS: + os << "UR_KERNEL_INFO_NUM_REGS"; + break; + default: + os << "unknown enumerator"; + break; + } + return os; +} +namespace ur_params { +template <> +inline void serializeTagged(std::ostream &os, const void *ptr, + ur_kernel_info_t value, size_t size) { + if (ptr == NULL) { + serializePtr(os, ptr); + return; + } + + switch (value) { + + case UR_KERNEL_INFO_FUNCTION_NAME: { + + const char *tptr = (const char *)ptr; + serializePtr(os, tptr); + } break; + + case UR_KERNEL_INFO_NUM_ARGS: { + const size_t *tptr = (const size_t *)ptr; + if (sizeof(size_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(size_t) << ")"; + return; + } + os << (void *)(tptr) << " ("; + + os << *tptr; + + os << ")"; + } break; + + case UR_KERNEL_INFO_REFERENCE_COUNT: { + const uint32_t *tptr = (const uint32_t *)ptr; + if (sizeof(uint32_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(uint32_t) << ")"; + return; + } + os << (void *)(tptr) << " ("; + + os << *tptr; + + os << ")"; + } break; + + case UR_KERNEL_INFO_CONTEXT: { + const ur_context_handle_t *tptr = (const ur_context_handle_t *)ptr; + if (sizeof(ur_context_handle_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(ur_context_handle_t) << ")"; + return; + } + os << (void *)(tptr) << " ("; + + ur_params::serializePtr(os, *tptr); + + os << ")"; + } break; + + case UR_KERNEL_INFO_PROGRAM: { + const ur_program_handle_t *tptr = (const ur_program_handle_t *)ptr; + if (sizeof(ur_program_handle_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(ur_program_handle_t) << ")"; + return; + } + os << (void *)(tptr) << " ("; + + ur_params::serializePtr(os, *tptr); + + os << ")"; + } break; + + case UR_KERNEL_INFO_ATTRIBUTES: { + + const char *tptr = (const char *)ptr; + serializePtr(os, tptr); + } break; + + case UR_KERNEL_INFO_NUM_REGS: { + const uint32_t *tptr = (const uint32_t *)ptr; + if (sizeof(uint32_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(uint32_t) << ")"; + return; + } + os << (void *)(tptr) << " ("; + + os << *tptr; + + os << ")"; + } break; + default: + os << "unknown enumerator"; + break; + } +} +} // namespace ur_params +inline std::ostream &operator<<(std::ostream &os, + enum ur_kernel_group_info_t value) { + switch (value) { + + case UR_KERNEL_GROUP_INFO_GLOBAL_WORK_SIZE: + os << "UR_KERNEL_GROUP_INFO_GLOBAL_WORK_SIZE"; + break; + + case UR_KERNEL_GROUP_INFO_WORK_GROUP_SIZE: + os << "UR_KERNEL_GROUP_INFO_WORK_GROUP_SIZE"; + break; + + case UR_KERNEL_GROUP_INFO_COMPILE_WORK_GROUP_SIZE: + os << "UR_KERNEL_GROUP_INFO_COMPILE_WORK_GROUP_SIZE"; + break; + + case UR_KERNEL_GROUP_INFO_LOCAL_MEM_SIZE: + os << "UR_KERNEL_GROUP_INFO_LOCAL_MEM_SIZE"; + break; + + case UR_KERNEL_GROUP_INFO_PREFERRED_WORK_GROUP_SIZE_MULTIPLE: + os << "UR_KERNEL_GROUP_INFO_PREFERRED_WORK_GROUP_SIZE_MULTIPLE"; + break; + + case UR_KERNEL_GROUP_INFO_PRIVATE_MEM_SIZE: + os << "UR_KERNEL_GROUP_INFO_PRIVATE_MEM_SIZE"; + break; + default: + os << "unknown enumerator"; + break; + } + return os; +} +namespace ur_params { +template <> +inline void serializeTagged(std::ostream &os, const void *ptr, + ur_kernel_group_info_t value, size_t size) { + if (ptr == NULL) { + serializePtr(os, ptr); + return; + } + + switch (value) { + + case UR_KERNEL_GROUP_INFO_GLOBAL_WORK_SIZE: { + + const size_t *tptr = (const size_t *)ptr; + os << "{"; + size_t nelems = size / sizeof(size_t); + for (size_t i = 0; i < nelems; ++i) { + if (i != 0) { + os << ", "; + } + + os << tptr[i]; + } + os << "}"; + } break; + + case UR_KERNEL_GROUP_INFO_WORK_GROUP_SIZE: { + const size_t *tptr = (const size_t *)ptr; + if (sizeof(size_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(size_t) << ")"; + return; + } + os << (void *)(tptr) << " ("; - ur_params::serializeStruct(os, (params.pNext)); + os << *tptr; - os << ", "; - os << ".isNativeHandleOwned = "; + os << ")"; + } break; - os << (params.isNativeHandleOwned); + case UR_KERNEL_GROUP_INFO_COMPILE_WORK_GROUP_SIZE: { - os << "}"; - return os; -} -inline std::ostream &operator<<(std::ostream &os, enum ur_command_t value) { - switch (value) { + const size_t *tptr = (const size_t *)ptr; + os << "{"; + size_t nelems = size / sizeof(size_t); + for (size_t i = 0; i < nelems; ++i) { + if (i != 0) { + os << ", "; + } - case UR_COMMAND_KERNEL_LAUNCH: - os << "UR_COMMAND_KERNEL_LAUNCH"; - break; + os << tptr[i]; + } + os << "}"; + } break; - case UR_COMMAND_EVENTS_WAIT: - os << "UR_COMMAND_EVENTS_WAIT"; - break; + case UR_KERNEL_GROUP_INFO_LOCAL_MEM_SIZE: { + const size_t *tptr = (const size_t *)ptr; + if (sizeof(size_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(size_t) << ")"; + return; + } + os << (void *)(tptr) << " ("; - case UR_COMMAND_EVENTS_WAIT_WITH_BARRIER: - os << "UR_COMMAND_EVENTS_WAIT_WITH_BARRIER"; - break; + os << *tptr; - case UR_COMMAND_MEM_BUFFER_READ: - os << "UR_COMMAND_MEM_BUFFER_READ"; - break; + os << ")"; + } break; - case UR_COMMAND_MEM_BUFFER_WRITE: - os << "UR_COMMAND_MEM_BUFFER_WRITE"; - break; + case UR_KERNEL_GROUP_INFO_PREFERRED_WORK_GROUP_SIZE_MULTIPLE: { + const size_t *tptr = (const size_t *)ptr; + if (sizeof(size_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(size_t) << ")"; + return; + } + os << (void *)(tptr) << " ("; - case UR_COMMAND_MEM_BUFFER_READ_RECT: - os << "UR_COMMAND_MEM_BUFFER_READ_RECT"; - break; + os << *tptr; - case UR_COMMAND_MEM_BUFFER_WRITE_RECT: - os << "UR_COMMAND_MEM_BUFFER_WRITE_RECT"; - break; + os << ")"; + } break; - case UR_COMMAND_MEM_BUFFER_COPY: - os << "UR_COMMAND_MEM_BUFFER_COPY"; - break; + case UR_KERNEL_GROUP_INFO_PRIVATE_MEM_SIZE: { + const size_t *tptr = (const size_t *)ptr; + if (sizeof(size_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(size_t) << ")"; + return; + } + os << (void *)(tptr) << " ("; - case UR_COMMAND_MEM_BUFFER_COPY_RECT: - os << "UR_COMMAND_MEM_BUFFER_COPY_RECT"; - break; + os << *tptr; - case UR_COMMAND_MEM_BUFFER_FILL: - os << "UR_COMMAND_MEM_BUFFER_FILL"; + os << ")"; + } break; + default: + os << "unknown enumerator"; break; + } +} +} // namespace ur_params +inline std::ostream &operator<<(std::ostream &os, + enum ur_kernel_sub_group_info_t value) { + switch (value) { - case UR_COMMAND_MEM_IMAGE_READ: - os << "UR_COMMAND_MEM_IMAGE_READ"; + case UR_KERNEL_SUB_GROUP_INFO_MAX_SUB_GROUP_SIZE: + os << "UR_KERNEL_SUB_GROUP_INFO_MAX_SUB_GROUP_SIZE"; break; - case UR_COMMAND_MEM_IMAGE_WRITE: - os << "UR_COMMAND_MEM_IMAGE_WRITE"; + case UR_KERNEL_SUB_GROUP_INFO_MAX_NUM_SUB_GROUPS: + os << "UR_KERNEL_SUB_GROUP_INFO_MAX_NUM_SUB_GROUPS"; break; - case UR_COMMAND_MEM_IMAGE_COPY: - os << "UR_COMMAND_MEM_IMAGE_COPY"; + case UR_KERNEL_SUB_GROUP_INFO_COMPILE_NUM_SUB_GROUPS: + os << "UR_KERNEL_SUB_GROUP_INFO_COMPILE_NUM_SUB_GROUPS"; break; - case UR_COMMAND_MEM_BUFFER_MAP: - os << "UR_COMMAND_MEM_BUFFER_MAP"; + case UR_KERNEL_SUB_GROUP_INFO_SUB_GROUP_SIZE_INTEL: + os << "UR_KERNEL_SUB_GROUP_INFO_SUB_GROUP_SIZE_INTEL"; break; - - case UR_COMMAND_MEM_UNMAP: - os << "UR_COMMAND_MEM_UNMAP"; + default: + os << "unknown enumerator"; break; + } + return os; +} +namespace ur_params { +template <> +inline void serializeTagged(std::ostream &os, const void *ptr, + ur_kernel_sub_group_info_t value, size_t size) { + if (ptr == NULL) { + serializePtr(os, ptr); + return; + } - case UR_COMMAND_USM_FILL: - os << "UR_COMMAND_USM_FILL"; - break; + switch (value) { - case UR_COMMAND_USM_MEMCPY: - os << "UR_COMMAND_USM_MEMCPY"; - break; + case UR_KERNEL_SUB_GROUP_INFO_MAX_SUB_GROUP_SIZE: { + const uint32_t *tptr = (const uint32_t *)ptr; + if (sizeof(uint32_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(uint32_t) << ")"; + return; + } + os << (void *)(tptr) << " ("; - case UR_COMMAND_USM_PREFETCH: - os << "UR_COMMAND_USM_PREFETCH"; - break; + os << *tptr; - case UR_COMMAND_USM_ADVISE: - os << "UR_COMMAND_USM_ADVISE"; - break; + os << ")"; + } break; - case UR_COMMAND_USM_FILL_2D: - os << "UR_COMMAND_USM_FILL_2D"; - break; + case UR_KERNEL_SUB_GROUP_INFO_MAX_NUM_SUB_GROUPS: { + const uint32_t *tptr = (const uint32_t *)ptr; + if (sizeof(uint32_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(uint32_t) << ")"; + return; + } + os << (void *)(tptr) << " ("; - case UR_COMMAND_USM_MEMCPY_2D: - os << "UR_COMMAND_USM_MEMCPY_2D"; - break; + os << *tptr; - case UR_COMMAND_DEVICE_GLOBAL_VARIABLE_WRITE: - os << "UR_COMMAND_DEVICE_GLOBAL_VARIABLE_WRITE"; - break; + os << ")"; + } break; - case UR_COMMAND_DEVICE_GLOBAL_VARIABLE_READ: - os << "UR_COMMAND_DEVICE_GLOBAL_VARIABLE_READ"; - break; + case UR_KERNEL_SUB_GROUP_INFO_COMPILE_NUM_SUB_GROUPS: { + const uint32_t *tptr = (const uint32_t *)ptr; + if (sizeof(uint32_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(uint32_t) << ")"; + return; + } + os << (void *)(tptr) << " ("; - case UR_COMMAND_READ_HOST_PIPE: - os << "UR_COMMAND_READ_HOST_PIPE"; - break; + os << *tptr; - case UR_COMMAND_WRITE_HOST_PIPE: - os << "UR_COMMAND_WRITE_HOST_PIPE"; - break; + os << ")"; + } break; - case UR_COMMAND_COMMAND_BUFFER_ENQUEUE_EXP: - os << "UR_COMMAND_COMMAND_BUFFER_ENQUEUE_EXP"; - break; + case UR_KERNEL_SUB_GROUP_INFO_SUB_GROUP_SIZE_INTEL: { + const uint32_t *tptr = (const uint32_t *)ptr; + if (sizeof(uint32_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(uint32_t) << ")"; + return; + } + os << (void *)(tptr) << " ("; - case UR_COMMAND_INTEROP_SEMAPHORE_WAIT_EXP: - os << "UR_COMMAND_INTEROP_SEMAPHORE_WAIT_EXP"; - break; + os << *tptr; - case UR_COMMAND_INTEROP_SEMAPHORE_SIGNAL_EXP: - os << "UR_COMMAND_INTEROP_SEMAPHORE_SIGNAL_EXP"; - break; + os << ")"; + } break; default: os << "unknown enumerator"; break; } - return os; } +} // namespace ur_params inline std::ostream &operator<<(std::ostream &os, - enum ur_event_status_t value) { + enum ur_kernel_cache_config_t value) { switch (value) { - case UR_EVENT_STATUS_COMPLETE: - os << "UR_EVENT_STATUS_COMPLETE"; - break; - - case UR_EVENT_STATUS_RUNNING: - os << "UR_EVENT_STATUS_RUNNING"; + case UR_KERNEL_CACHE_CONFIG_DEFAULT: + os << "UR_KERNEL_CACHE_CONFIG_DEFAULT"; break; - case UR_EVENT_STATUS_SUBMITTED: - os << "UR_EVENT_STATUS_SUBMITTED"; + case UR_KERNEL_CACHE_CONFIG_LARGE_SLM: + os << "UR_KERNEL_CACHE_CONFIG_LARGE_SLM"; break; - case UR_EVENT_STATUS_QUEUED: - os << "UR_EVENT_STATUS_QUEUED"; + case UR_KERNEL_CACHE_CONFIG_LARGE_DATA: + os << "UR_KERNEL_CACHE_CONFIG_LARGE_DATA"; break; default: os << "unknown enumerator"; break; - } - return os; -} -inline std::ostream &operator<<(std::ostream &os, enum ur_event_info_t value) { - switch (value) { - - case UR_EVENT_INFO_COMMAND_QUEUE: - os << "UR_EVENT_INFO_COMMAND_QUEUE"; - break; - - case UR_EVENT_INFO_CONTEXT: - os << "UR_EVENT_INFO_CONTEXT"; - break; + } + return os; +} +inline std::ostream &operator<<(std::ostream &os, + enum ur_kernel_exec_info_t value) { + switch (value) { - case UR_EVENT_INFO_COMMAND_TYPE: - os << "UR_EVENT_INFO_COMMAND_TYPE"; + case UR_KERNEL_EXEC_INFO_USM_INDIRECT_ACCESS: + os << "UR_KERNEL_EXEC_INFO_USM_INDIRECT_ACCESS"; break; - case UR_EVENT_INFO_COMMAND_EXECUTION_STATUS: - os << "UR_EVENT_INFO_COMMAND_EXECUTION_STATUS"; + case UR_KERNEL_EXEC_INFO_USM_PTRS: + os << "UR_KERNEL_EXEC_INFO_USM_PTRS"; break; - case UR_EVENT_INFO_REFERENCE_COUNT: - os << "UR_EVENT_INFO_REFERENCE_COUNT"; + case UR_KERNEL_EXEC_INFO_CACHE_CONFIG: + os << "UR_KERNEL_EXEC_INFO_CACHE_CONFIG"; break; default: os << "unknown enumerator"; @@ -8313,7 +8231,7 @@ inline std::ostream &operator<<(std::ostream &os, enum ur_event_info_t value) { namespace ur_params { template <> inline void serializeTagged(std::ostream &os, const void *ptr, - ur_event_info_t value, size_t size) { + ur_kernel_exec_info_t value, size_t size) { if (ptr == NULL) { serializePtr(os, ptr); return; @@ -8321,39 +8239,11 @@ inline void serializeTagged(std::ostream &os, const void *ptr, switch (value) { - case UR_EVENT_INFO_COMMAND_QUEUE: { - const ur_queue_handle_t *tptr = (const ur_queue_handle_t *)ptr; - if (sizeof(ur_queue_handle_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(ur_queue_handle_t) << ")"; - return; - } - os << (void *)(tptr) << " ("; - - ur_params::serializePtr(os, *tptr); - - os << ")"; - } break; - - case UR_EVENT_INFO_CONTEXT: { - const ur_context_handle_t *tptr = (const ur_context_handle_t *)ptr; - if (sizeof(ur_context_handle_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(ur_context_handle_t) << ")"; - return; - } - os << (void *)(tptr) << " ("; - - ur_params::serializePtr(os, *tptr); - - os << ")"; - } break; - - case UR_EVENT_INFO_COMMAND_TYPE: { - const ur_command_t *tptr = (const ur_command_t *)ptr; - if (sizeof(ur_command_t) > size) { + case UR_KERNEL_EXEC_INFO_USM_INDIRECT_ACCESS: { + const ur_bool_t *tptr = (const ur_bool_t *)ptr; + if (sizeof(ur_bool_t) > size) { os << "invalid size (is: " << size - << ", expected: >=" << sizeof(ur_command_t) << ")"; + << ", expected: >=" << sizeof(ur_bool_t) << ")"; return; } os << (void *)(tptr) << " ("; @@ -8363,25 +8253,27 @@ inline void serializeTagged(std::ostream &os, const void *ptr, os << ")"; } break; - case UR_EVENT_INFO_COMMAND_EXECUTION_STATUS: { - const ur_event_status_t *tptr = (const ur_event_status_t *)ptr; - if (sizeof(ur_event_status_t) > size) { - os << "invalid size (is: " << size - << ", expected: >=" << sizeof(ur_event_status_t) << ")"; - return; - } - os << (void *)(tptr) << " ("; + case UR_KERNEL_EXEC_INFO_USM_PTRS: { - os << *tptr; + const void **tptr = (const void **)ptr; + os << "{"; + size_t nelems = size / sizeof(void *); + for (size_t i = 0; i < nelems; ++i) { + if (i != 0) { + os << ", "; + } - os << ")"; + os << tptr[i]; + } + os << "}"; } break; - case UR_EVENT_INFO_REFERENCE_COUNT: { - const uint32_t *tptr = (const uint32_t *)ptr; - if (sizeof(uint32_t) > size) { + case UR_KERNEL_EXEC_INFO_CACHE_CONFIG: { + const ur_kernel_cache_config_t *tptr = + (const ur_kernel_cache_config_t *)ptr; + if (sizeof(ur_kernel_cache_config_t) > size) { os << "invalid size (is: " << size - << ", expected: >=" << sizeof(uint32_t) << ")"; + << ", expected: >=" << sizeof(ur_kernel_cache_config_t) << ")"; return; } os << (void *)(tptr) << " ("; @@ -8396,28 +8288,130 @@ inline void serializeTagged(std::ostream &os, const void *ptr, } } } // namespace ur_params -inline std::ostream &operator<<(std::ostream &os, - enum ur_profiling_info_t value) { +inline std::ostream & +operator<<(std::ostream &os, + const struct ur_kernel_arg_pointer_properties_t params) { + os << "(struct ur_kernel_arg_pointer_properties_t){"; + + os << ".stype = "; + + os << (params.stype); + + os << ", "; + os << ".pNext = "; + + ur_params::serializeStruct(os, (params.pNext)); + + os << "}"; + return os; +} +inline std::ostream & +operator<<(std::ostream &os, + const struct ur_kernel_exec_info_properties_t params) { + os << "(struct ur_kernel_exec_info_properties_t){"; + + os << ".stype = "; + + os << (params.stype); + + os << ", "; + os << ".pNext = "; + + ur_params::serializeStruct(os, (params.pNext)); + + os << "}"; + return os; +} +inline std::ostream & +operator<<(std::ostream &os, + const struct ur_kernel_arg_sampler_properties_t params) { + os << "(struct ur_kernel_arg_sampler_properties_t){"; + + os << ".stype = "; + + os << (params.stype); + + os << ", "; + os << ".pNext = "; + + ur_params::serializeStruct(os, (params.pNext)); + + os << "}"; + return os; +} +inline std::ostream & +operator<<(std::ostream &os, + const struct ur_kernel_arg_mem_obj_properties_t params) { + os << "(struct ur_kernel_arg_mem_obj_properties_t){"; + + os << ".stype = "; + + os << (params.stype); + + os << ", "; + os << ".pNext = "; + + ur_params::serializeStruct(os, (params.pNext)); + + os << ", "; + os << ".memoryAccess = "; + + ur_params::serializeFlag(os, (params.memoryAccess)); + + os << "}"; + return os; +} +inline std::ostream & +operator<<(std::ostream &os, + const struct ur_kernel_native_properties_t params) { + os << "(struct ur_kernel_native_properties_t){"; + + os << ".stype = "; + + os << (params.stype); + + os << ", "; + os << ".pNext = "; + + ur_params::serializeStruct(os, (params.pNext)); + + os << ", "; + os << ".isNativeHandleOwned = "; + + os << (params.isNativeHandleOwned); + + os << "}"; + return os; +} +inline std::ostream &operator<<(std::ostream &os, enum ur_queue_info_t value) { switch (value) { - case UR_PROFILING_INFO_COMMAND_QUEUED: - os << "UR_PROFILING_INFO_COMMAND_QUEUED"; + case UR_QUEUE_INFO_CONTEXT: + os << "UR_QUEUE_INFO_CONTEXT"; break; - case UR_PROFILING_INFO_COMMAND_SUBMIT: - os << "UR_PROFILING_INFO_COMMAND_SUBMIT"; + case UR_QUEUE_INFO_DEVICE: + os << "UR_QUEUE_INFO_DEVICE"; break; - case UR_PROFILING_INFO_COMMAND_START: - os << "UR_PROFILING_INFO_COMMAND_START"; + case UR_QUEUE_INFO_DEVICE_DEFAULT: + os << "UR_QUEUE_INFO_DEVICE_DEFAULT"; break; - case UR_PROFILING_INFO_COMMAND_END: - os << "UR_PROFILING_INFO_COMMAND_END"; + case UR_QUEUE_INFO_FLAGS: + os << "UR_QUEUE_INFO_FLAGS"; break; - case UR_PROFILING_INFO_COMMAND_COMPLETE: - os << "UR_PROFILING_INFO_COMMAND_COMPLETE"; + case UR_QUEUE_INFO_REFERENCE_COUNT: + os << "UR_QUEUE_INFO_REFERENCE_COUNT"; + break; + + case UR_QUEUE_INFO_SIZE: + os << "UR_QUEUE_INFO_SIZE"; + break; + + case UR_QUEUE_INFO_EMPTY: + os << "UR_QUEUE_INFO_EMPTY"; break; default: os << "unknown enumerator"; @@ -8428,7 +8422,7 @@ inline std::ostream &operator<<(std::ostream &os, namespace ur_params { template <> inline void serializeTagged(std::ostream &os, const void *ptr, - ur_profiling_info_t value, size_t size) { + ur_queue_info_t value, size_t size) { if (ptr == NULL) { serializePtr(os, ptr); return; @@ -8436,39 +8430,67 @@ inline void serializeTagged(std::ostream &os, const void *ptr, switch (value) { - case UR_PROFILING_INFO_COMMAND_QUEUED: { - const uint64_t *tptr = (const uint64_t *)ptr; - if (sizeof(uint64_t) > size) { + case UR_QUEUE_INFO_CONTEXT: { + const ur_queue_handle_t *tptr = (const ur_queue_handle_t *)ptr; + if (sizeof(ur_queue_handle_t) > size) { os << "invalid size (is: " << size - << ", expected: >=" << sizeof(uint64_t) << ")"; + << ", expected: >=" << sizeof(ur_queue_handle_t) << ")"; return; } os << (void *)(tptr) << " ("; - os << *tptr; + ur_params::serializePtr(os, *tptr); os << ")"; } break; - case UR_PROFILING_INFO_COMMAND_SUBMIT: { - const uint64_t *tptr = (const uint64_t *)ptr; - if (sizeof(uint64_t) > size) { + case UR_QUEUE_INFO_DEVICE: { + const ur_device_handle_t *tptr = (const ur_device_handle_t *)ptr; + if (sizeof(ur_device_handle_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(ur_device_handle_t) << ")"; + return; + } + os << (void *)(tptr) << " ("; + + ur_params::serializePtr(os, *tptr); + + os << ")"; + } break; + + case UR_QUEUE_INFO_DEVICE_DEFAULT: { + const ur_queue_handle_t *tptr = (const ur_queue_handle_t *)ptr; + if (sizeof(ur_queue_handle_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(ur_queue_handle_t) << ")"; + return; + } + os << (void *)(tptr) << " ("; + + ur_params::serializePtr(os, *tptr); + + os << ")"; + } break; + + case UR_QUEUE_INFO_FLAGS: { + const ur_queue_flags_t *tptr = (const ur_queue_flags_t *)ptr; + if (sizeof(ur_queue_flags_t) > size) { os << "invalid size (is: " << size - << ", expected: >=" << sizeof(uint64_t) << ")"; + << ", expected: >=" << sizeof(ur_queue_flags_t) << ")"; return; } os << (void *)(tptr) << " ("; - os << *tptr; + ur_params::serializeFlag(os, *tptr); os << ")"; } break; - case UR_PROFILING_INFO_COMMAND_START: { - const uint64_t *tptr = (const uint64_t *)ptr; - if (sizeof(uint64_t) > size) { + case UR_QUEUE_INFO_REFERENCE_COUNT: { + const uint32_t *tptr = (const uint32_t *)ptr; + if (sizeof(uint32_t) > size) { os << "invalid size (is: " << size - << ", expected: >=" << sizeof(uint64_t) << ")"; + << ", expected: >=" << sizeof(uint32_t) << ")"; return; } os << (void *)(tptr) << " ("; @@ -8478,11 +8500,11 @@ inline void serializeTagged(std::ostream &os, const void *ptr, os << ")"; } break; - case UR_PROFILING_INFO_COMMAND_END: { - const uint64_t *tptr = (const uint64_t *)ptr; - if (sizeof(uint64_t) > size) { + case UR_QUEUE_INFO_SIZE: { + const uint32_t *tptr = (const uint32_t *)ptr; + if (sizeof(uint32_t) > size) { os << "invalid size (is: " << size - << ", expected: >=" << sizeof(uint64_t) << ")"; + << ", expected: >=" << sizeof(uint32_t) << ")"; return; } os << (void *)(tptr) << " ("; @@ -8492,11 +8514,11 @@ inline void serializeTagged(std::ostream &os, const void *ptr, os << ")"; } break; - case UR_PROFILING_INFO_COMMAND_COMPLETE: { - const uint64_t *tptr = (const uint64_t *)ptr; - if (sizeof(uint64_t) > size) { + case UR_QUEUE_INFO_EMPTY: { + const ur_bool_t *tptr = (const ur_bool_t *)ptr; + if (sizeof(ur_bool_t) > size) { os << "invalid size (is: " << size - << ", expected: >=" << sizeof(uint64_t) << ")"; + << ", expected: >=" << sizeof(ur_bool_t) << ")"; return; } os << (void *)(tptr) << " ("; @@ -8511,714 +8533,692 @@ inline void serializeTagged(std::ostream &os, const void *ptr, } } } // namespace ur_params -inline std::ostream & -operator<<(std::ostream &os, const struct ur_event_native_properties_t params) { - os << "(struct ur_event_native_properties_t){"; - - os << ".stype = "; - - os << (params.stype); - - os << ", "; - os << ".pNext = "; - - ur_params::serializeStruct(os, (params.pNext)); - - os << ", "; - os << ".isNativeHandleOwned = "; - - os << (params.isNativeHandleOwned); - - os << "}"; - return os; -} -inline std::ostream &operator<<(std::ostream &os, - enum ur_execution_info_t value) { - switch (value) { - - case UR_EXECUTION_INFO_EXECUTION_INFO_COMPLETE: - os << "UR_EXECUTION_INFO_EXECUTION_INFO_COMPLETE"; - break; - - case UR_EXECUTION_INFO_EXECUTION_INFO_RUNNING: - os << "UR_EXECUTION_INFO_EXECUTION_INFO_RUNNING"; - break; - - case UR_EXECUTION_INFO_EXECUTION_INFO_SUBMITTED: - os << "UR_EXECUTION_INFO_EXECUTION_INFO_SUBMITTED"; - break; - - case UR_EXECUTION_INFO_EXECUTION_INFO_QUEUED: - os << "UR_EXECUTION_INFO_EXECUTION_INFO_QUEUED"; - break; - default: - os << "unknown enumerator"; - break; - } - return os; -} -inline std::ostream &operator<<(std::ostream &os, enum ur_function_t value) { +inline std::ostream &operator<<(std::ostream &os, enum ur_queue_flag_t value) { switch (value) { - case UR_FUNCTION_CONTEXT_CREATE: - os << "UR_FUNCTION_CONTEXT_CREATE"; - break; - - case UR_FUNCTION_CONTEXT_RETAIN: - os << "UR_FUNCTION_CONTEXT_RETAIN"; - break; - - case UR_FUNCTION_CONTEXT_RELEASE: - os << "UR_FUNCTION_CONTEXT_RELEASE"; - break; - - case UR_FUNCTION_CONTEXT_GET_INFO: - os << "UR_FUNCTION_CONTEXT_GET_INFO"; - break; - - case UR_FUNCTION_CONTEXT_GET_NATIVE_HANDLE: - os << "UR_FUNCTION_CONTEXT_GET_NATIVE_HANDLE"; - break; - - case UR_FUNCTION_CONTEXT_CREATE_WITH_NATIVE_HANDLE: - os << "UR_FUNCTION_CONTEXT_CREATE_WITH_NATIVE_HANDLE"; - break; - - case UR_FUNCTION_CONTEXT_SET_EXTENDED_DELETER: - os << "UR_FUNCTION_CONTEXT_SET_EXTENDED_DELETER"; - break; - - case UR_FUNCTION_DEVICE_GET: - os << "UR_FUNCTION_DEVICE_GET"; - break; - - case UR_FUNCTION_DEVICE_GET_INFO: - os << "UR_FUNCTION_DEVICE_GET_INFO"; - break; - - case UR_FUNCTION_DEVICE_RETAIN: - os << "UR_FUNCTION_DEVICE_RETAIN"; - break; - - case UR_FUNCTION_DEVICE_RELEASE: - os << "UR_FUNCTION_DEVICE_RELEASE"; - break; - - case UR_FUNCTION_DEVICE_PARTITION: - os << "UR_FUNCTION_DEVICE_PARTITION"; - break; - - case UR_FUNCTION_DEVICE_SELECT_BINARY: - os << "UR_FUNCTION_DEVICE_SELECT_BINARY"; - break; - - case UR_FUNCTION_DEVICE_GET_NATIVE_HANDLE: - os << "UR_FUNCTION_DEVICE_GET_NATIVE_HANDLE"; - break; - - case UR_FUNCTION_DEVICE_CREATE_WITH_NATIVE_HANDLE: - os << "UR_FUNCTION_DEVICE_CREATE_WITH_NATIVE_HANDLE"; - break; - - case UR_FUNCTION_DEVICE_GET_GLOBAL_TIMESTAMPS: - os << "UR_FUNCTION_DEVICE_GET_GLOBAL_TIMESTAMPS"; - break; - - case UR_FUNCTION_ENQUEUE_KERNEL_LAUNCH: - os << "UR_FUNCTION_ENQUEUE_KERNEL_LAUNCH"; - break; - - case UR_FUNCTION_ENQUEUE_EVENTS_WAIT: - os << "UR_FUNCTION_ENQUEUE_EVENTS_WAIT"; - break; - - case UR_FUNCTION_ENQUEUE_EVENTS_WAIT_WITH_BARRIER: - os << "UR_FUNCTION_ENQUEUE_EVENTS_WAIT_WITH_BARRIER"; - break; - - case UR_FUNCTION_ENQUEUE_MEM_BUFFER_READ: - os << "UR_FUNCTION_ENQUEUE_MEM_BUFFER_READ"; - break; - - case UR_FUNCTION_ENQUEUE_MEM_BUFFER_WRITE: - os << "UR_FUNCTION_ENQUEUE_MEM_BUFFER_WRITE"; - break; - - case UR_FUNCTION_ENQUEUE_MEM_BUFFER_READ_RECT: - os << "UR_FUNCTION_ENQUEUE_MEM_BUFFER_READ_RECT"; - break; - - case UR_FUNCTION_ENQUEUE_MEM_BUFFER_WRITE_RECT: - os << "UR_FUNCTION_ENQUEUE_MEM_BUFFER_WRITE_RECT"; - break; - - case UR_FUNCTION_ENQUEUE_MEM_BUFFER_COPY: - os << "UR_FUNCTION_ENQUEUE_MEM_BUFFER_COPY"; - break; - - case UR_FUNCTION_ENQUEUE_MEM_BUFFER_COPY_RECT: - os << "UR_FUNCTION_ENQUEUE_MEM_BUFFER_COPY_RECT"; + case UR_QUEUE_FLAG_OUT_OF_ORDER_EXEC_MODE_ENABLE: + os << "UR_QUEUE_FLAG_OUT_OF_ORDER_EXEC_MODE_ENABLE"; break; - case UR_FUNCTION_ENQUEUE_MEM_BUFFER_FILL: - os << "UR_FUNCTION_ENQUEUE_MEM_BUFFER_FILL"; + case UR_QUEUE_FLAG_PROFILING_ENABLE: + os << "UR_QUEUE_FLAG_PROFILING_ENABLE"; break; - case UR_FUNCTION_ENQUEUE_MEM_IMAGE_READ: - os << "UR_FUNCTION_ENQUEUE_MEM_IMAGE_READ"; + case UR_QUEUE_FLAG_ON_DEVICE: + os << "UR_QUEUE_FLAG_ON_DEVICE"; break; - case UR_FUNCTION_ENQUEUE_MEM_IMAGE_WRITE: - os << "UR_FUNCTION_ENQUEUE_MEM_IMAGE_WRITE"; + case UR_QUEUE_FLAG_ON_DEVICE_DEFAULT: + os << "UR_QUEUE_FLAG_ON_DEVICE_DEFAULT"; break; - case UR_FUNCTION_ENQUEUE_MEM_IMAGE_COPY: - os << "UR_FUNCTION_ENQUEUE_MEM_IMAGE_COPY"; + case UR_QUEUE_FLAG_DISCARD_EVENTS: + os << "UR_QUEUE_FLAG_DISCARD_EVENTS"; break; - case UR_FUNCTION_ENQUEUE_MEM_BUFFER_MAP: - os << "UR_FUNCTION_ENQUEUE_MEM_BUFFER_MAP"; + case UR_QUEUE_FLAG_PRIORITY_LOW: + os << "UR_QUEUE_FLAG_PRIORITY_LOW"; break; - case UR_FUNCTION_ENQUEUE_MEM_UNMAP: - os << "UR_FUNCTION_ENQUEUE_MEM_UNMAP"; + case UR_QUEUE_FLAG_PRIORITY_HIGH: + os << "UR_QUEUE_FLAG_PRIORITY_HIGH"; break; - case UR_FUNCTION_ENQUEUE_USM_FILL: - os << "UR_FUNCTION_ENQUEUE_USM_FILL"; + case UR_QUEUE_FLAG_SUBMISSION_BATCHED: + os << "UR_QUEUE_FLAG_SUBMISSION_BATCHED"; break; - case UR_FUNCTION_ENQUEUE_USM_MEMCPY: - os << "UR_FUNCTION_ENQUEUE_USM_MEMCPY"; + case UR_QUEUE_FLAG_SUBMISSION_IMMEDIATE: + os << "UR_QUEUE_FLAG_SUBMISSION_IMMEDIATE"; break; - case UR_FUNCTION_ENQUEUE_USM_PREFETCH: - os << "UR_FUNCTION_ENQUEUE_USM_PREFETCH"; + case UR_QUEUE_FLAG_USE_DEFAULT_STREAM: + os << "UR_QUEUE_FLAG_USE_DEFAULT_STREAM"; break; - case UR_FUNCTION_ENQUEUE_USM_ADVISE: - os << "UR_FUNCTION_ENQUEUE_USM_ADVISE"; + case UR_QUEUE_FLAG_SYNC_WITH_DEFAULT_STREAM: + os << "UR_QUEUE_FLAG_SYNC_WITH_DEFAULT_STREAM"; break; - - case UR_FUNCTION_ENQUEUE_DEVICE_GLOBAL_VARIABLE_WRITE: - os << "UR_FUNCTION_ENQUEUE_DEVICE_GLOBAL_VARIABLE_WRITE"; + default: + os << "unknown enumerator"; break; + } + return os; +} +namespace ur_params { - case UR_FUNCTION_ENQUEUE_DEVICE_GLOBAL_VARIABLE_READ: - os << "UR_FUNCTION_ENQUEUE_DEVICE_GLOBAL_VARIABLE_READ"; - break; +template <> +inline void serializeFlag(std::ostream &os, uint32_t flag) { + uint32_t val = flag; + bool first = true; - case UR_FUNCTION_EVENT_GET_INFO: - os << "UR_FUNCTION_EVENT_GET_INFO"; - break; + if ((val & UR_QUEUE_FLAG_OUT_OF_ORDER_EXEC_MODE_ENABLE) == + (uint32_t)UR_QUEUE_FLAG_OUT_OF_ORDER_EXEC_MODE_ENABLE) { + val ^= (uint32_t)UR_QUEUE_FLAG_OUT_OF_ORDER_EXEC_MODE_ENABLE; + if (!first) { + os << " | "; + } else { + first = false; + } + os << UR_QUEUE_FLAG_OUT_OF_ORDER_EXEC_MODE_ENABLE; + } - case UR_FUNCTION_EVENT_GET_PROFILING_INFO: - os << "UR_FUNCTION_EVENT_GET_PROFILING_INFO"; - break; + if ((val & UR_QUEUE_FLAG_PROFILING_ENABLE) == + (uint32_t)UR_QUEUE_FLAG_PROFILING_ENABLE) { + val ^= (uint32_t)UR_QUEUE_FLAG_PROFILING_ENABLE; + if (!first) { + os << " | "; + } else { + first = false; + } + os << UR_QUEUE_FLAG_PROFILING_ENABLE; + } - case UR_FUNCTION_EVENT_WAIT: - os << "UR_FUNCTION_EVENT_WAIT"; - break; + if ((val & UR_QUEUE_FLAG_ON_DEVICE) == (uint32_t)UR_QUEUE_FLAG_ON_DEVICE) { + val ^= (uint32_t)UR_QUEUE_FLAG_ON_DEVICE; + if (!first) { + os << " | "; + } else { + first = false; + } + os << UR_QUEUE_FLAG_ON_DEVICE; + } - case UR_FUNCTION_EVENT_RETAIN: - os << "UR_FUNCTION_EVENT_RETAIN"; - break; + if ((val & UR_QUEUE_FLAG_ON_DEVICE_DEFAULT) == + (uint32_t)UR_QUEUE_FLAG_ON_DEVICE_DEFAULT) { + val ^= (uint32_t)UR_QUEUE_FLAG_ON_DEVICE_DEFAULT; + if (!first) { + os << " | "; + } else { + first = false; + } + os << UR_QUEUE_FLAG_ON_DEVICE_DEFAULT; + } - case UR_FUNCTION_EVENT_RELEASE: - os << "UR_FUNCTION_EVENT_RELEASE"; - break; + if ((val & UR_QUEUE_FLAG_DISCARD_EVENTS) == + (uint32_t)UR_QUEUE_FLAG_DISCARD_EVENTS) { + val ^= (uint32_t)UR_QUEUE_FLAG_DISCARD_EVENTS; + if (!first) { + os << " | "; + } else { + first = false; + } + os << UR_QUEUE_FLAG_DISCARD_EVENTS; + } - case UR_FUNCTION_EVENT_GET_NATIVE_HANDLE: - os << "UR_FUNCTION_EVENT_GET_NATIVE_HANDLE"; - break; + if ((val & UR_QUEUE_FLAG_PRIORITY_LOW) == + (uint32_t)UR_QUEUE_FLAG_PRIORITY_LOW) { + val ^= (uint32_t)UR_QUEUE_FLAG_PRIORITY_LOW; + if (!first) { + os << " | "; + } else { + first = false; + } + os << UR_QUEUE_FLAG_PRIORITY_LOW; + } - case UR_FUNCTION_EVENT_CREATE_WITH_NATIVE_HANDLE: - os << "UR_FUNCTION_EVENT_CREATE_WITH_NATIVE_HANDLE"; - break; + if ((val & UR_QUEUE_FLAG_PRIORITY_HIGH) == + (uint32_t)UR_QUEUE_FLAG_PRIORITY_HIGH) { + val ^= (uint32_t)UR_QUEUE_FLAG_PRIORITY_HIGH; + if (!first) { + os << " | "; + } else { + first = false; + } + os << UR_QUEUE_FLAG_PRIORITY_HIGH; + } - case UR_FUNCTION_EVENT_SET_CALLBACK: - os << "UR_FUNCTION_EVENT_SET_CALLBACK"; - break; + if ((val & UR_QUEUE_FLAG_SUBMISSION_BATCHED) == + (uint32_t)UR_QUEUE_FLAG_SUBMISSION_BATCHED) { + val ^= (uint32_t)UR_QUEUE_FLAG_SUBMISSION_BATCHED; + if (!first) { + os << " | "; + } else { + first = false; + } + os << UR_QUEUE_FLAG_SUBMISSION_BATCHED; + } - case UR_FUNCTION_KERNEL_CREATE: - os << "UR_FUNCTION_KERNEL_CREATE"; - break; + if ((val & UR_QUEUE_FLAG_SUBMISSION_IMMEDIATE) == + (uint32_t)UR_QUEUE_FLAG_SUBMISSION_IMMEDIATE) { + val ^= (uint32_t)UR_QUEUE_FLAG_SUBMISSION_IMMEDIATE; + if (!first) { + os << " | "; + } else { + first = false; + } + os << UR_QUEUE_FLAG_SUBMISSION_IMMEDIATE; + } - case UR_FUNCTION_KERNEL_SET_ARG_VALUE: - os << "UR_FUNCTION_KERNEL_SET_ARG_VALUE"; - break; + if ((val & UR_QUEUE_FLAG_USE_DEFAULT_STREAM) == + (uint32_t)UR_QUEUE_FLAG_USE_DEFAULT_STREAM) { + val ^= (uint32_t)UR_QUEUE_FLAG_USE_DEFAULT_STREAM; + if (!first) { + os << " | "; + } else { + first = false; + } + os << UR_QUEUE_FLAG_USE_DEFAULT_STREAM; + } - case UR_FUNCTION_KERNEL_SET_ARG_LOCAL: - os << "UR_FUNCTION_KERNEL_SET_ARG_LOCAL"; - break; + if ((val & UR_QUEUE_FLAG_SYNC_WITH_DEFAULT_STREAM) == + (uint32_t)UR_QUEUE_FLAG_SYNC_WITH_DEFAULT_STREAM) { + val ^= (uint32_t)UR_QUEUE_FLAG_SYNC_WITH_DEFAULT_STREAM; + if (!first) { + os << " | "; + } else { + first = false; + } + os << UR_QUEUE_FLAG_SYNC_WITH_DEFAULT_STREAM; + } + if (val != 0) { + std::bitset<32> bits(val); + if (!first) { + os << " | "; + } + os << "unknown bit flags " << bits; + } else if (first) { + os << "0"; + } +} +} // namespace ur_params +inline std::ostream &operator<<(std::ostream &os, + const struct ur_queue_properties_t params) { + os << "(struct ur_queue_properties_t){"; - case UR_FUNCTION_KERNEL_GET_INFO: - os << "UR_FUNCTION_KERNEL_GET_INFO"; - break; + os << ".stype = "; - case UR_FUNCTION_KERNEL_GET_GROUP_INFO: - os << "UR_FUNCTION_KERNEL_GET_GROUP_INFO"; - break; + os << (params.stype); - case UR_FUNCTION_KERNEL_GET_SUB_GROUP_INFO: - os << "UR_FUNCTION_KERNEL_GET_SUB_GROUP_INFO"; - break; + os << ", "; + os << ".pNext = "; - case UR_FUNCTION_KERNEL_RETAIN: - os << "UR_FUNCTION_KERNEL_RETAIN"; - break; + ur_params::serializeStruct(os, (params.pNext)); - case UR_FUNCTION_KERNEL_RELEASE: - os << "UR_FUNCTION_KERNEL_RELEASE"; - break; + os << ", "; + os << ".flags = "; - case UR_FUNCTION_KERNEL_SET_ARG_POINTER: - os << "UR_FUNCTION_KERNEL_SET_ARG_POINTER"; - break; + ur_params::serializeFlag(os, (params.flags)); - case UR_FUNCTION_KERNEL_SET_EXEC_INFO: - os << "UR_FUNCTION_KERNEL_SET_EXEC_INFO"; - break; + os << "}"; + return os; +} +inline std::ostream & +operator<<(std::ostream &os, const struct ur_queue_index_properties_t params) { + os << "(struct ur_queue_index_properties_t){"; - case UR_FUNCTION_KERNEL_SET_ARG_SAMPLER: - os << "UR_FUNCTION_KERNEL_SET_ARG_SAMPLER"; - break; + os << ".stype = "; - case UR_FUNCTION_KERNEL_SET_ARG_MEM_OBJ: - os << "UR_FUNCTION_KERNEL_SET_ARG_MEM_OBJ"; - break; + os << (params.stype); - case UR_FUNCTION_KERNEL_SET_SPECIALIZATION_CONSTANTS: - os << "UR_FUNCTION_KERNEL_SET_SPECIALIZATION_CONSTANTS"; - break; + os << ", "; + os << ".pNext = "; - case UR_FUNCTION_KERNEL_GET_NATIVE_HANDLE: - os << "UR_FUNCTION_KERNEL_GET_NATIVE_HANDLE"; - break; + ur_params::serializeStruct(os, (params.pNext)); - case UR_FUNCTION_KERNEL_CREATE_WITH_NATIVE_HANDLE: - os << "UR_FUNCTION_KERNEL_CREATE_WITH_NATIVE_HANDLE"; - break; + os << ", "; + os << ".computeIndex = "; - case UR_FUNCTION_MEM_IMAGE_CREATE: - os << "UR_FUNCTION_MEM_IMAGE_CREATE"; - break; + os << (params.computeIndex); - case UR_FUNCTION_MEM_BUFFER_CREATE: - os << "UR_FUNCTION_MEM_BUFFER_CREATE"; - break; + os << "}"; + return os; +} +inline std::ostream &operator<<(std::ostream &os, + const struct ur_queue_native_desc_t params) { + os << "(struct ur_queue_native_desc_t){"; - case UR_FUNCTION_MEM_RETAIN: - os << "UR_FUNCTION_MEM_RETAIN"; - break; + os << ".stype = "; - case UR_FUNCTION_MEM_RELEASE: - os << "UR_FUNCTION_MEM_RELEASE"; - break; + os << (params.stype); - case UR_FUNCTION_MEM_BUFFER_PARTITION: - os << "UR_FUNCTION_MEM_BUFFER_PARTITION"; - break; + os << ", "; + os << ".pNext = "; - case UR_FUNCTION_MEM_GET_NATIVE_HANDLE: - os << "UR_FUNCTION_MEM_GET_NATIVE_HANDLE"; - break; + ur_params::serializeStruct(os, (params.pNext)); - case UR_FUNCTION_ENQUEUE_READ_HOST_PIPE: - os << "UR_FUNCTION_ENQUEUE_READ_HOST_PIPE"; - break; + os << ", "; + os << ".pNativeData = "; - case UR_FUNCTION_MEM_GET_INFO: - os << "UR_FUNCTION_MEM_GET_INFO"; - break; + ur_params::serializePtr(os, (params.pNativeData)); - case UR_FUNCTION_MEM_IMAGE_GET_INFO: - os << "UR_FUNCTION_MEM_IMAGE_GET_INFO"; - break; + os << "}"; + return os; +} +inline std::ostream & +operator<<(std::ostream &os, const struct ur_queue_native_properties_t params) { + os << "(struct ur_queue_native_properties_t){"; - case UR_FUNCTION_PLATFORM_GET: - os << "UR_FUNCTION_PLATFORM_GET"; - break; + os << ".stype = "; - case UR_FUNCTION_PLATFORM_GET_INFO: - os << "UR_FUNCTION_PLATFORM_GET_INFO"; - break; + os << (params.stype); - case UR_FUNCTION_PLATFORM_GET_API_VERSION: - os << "UR_FUNCTION_PLATFORM_GET_API_VERSION"; - break; + os << ", "; + os << ".pNext = "; - case UR_FUNCTION_PLATFORM_GET_NATIVE_HANDLE: - os << "UR_FUNCTION_PLATFORM_GET_NATIVE_HANDLE"; - break; + ur_params::serializeStruct(os, (params.pNext)); - case UR_FUNCTION_PLATFORM_CREATE_WITH_NATIVE_HANDLE: - os << "UR_FUNCTION_PLATFORM_CREATE_WITH_NATIVE_HANDLE"; - break; + os << ", "; + os << ".isNativeHandleOwned = "; - case UR_FUNCTION_PROGRAM_CREATE_WITH_IL: - os << "UR_FUNCTION_PROGRAM_CREATE_WITH_IL"; - break; + os << (params.isNativeHandleOwned); - case UR_FUNCTION_PROGRAM_CREATE_WITH_BINARY: - os << "UR_FUNCTION_PROGRAM_CREATE_WITH_BINARY"; - break; + os << "}"; + return os; +} +inline std::ostream &operator<<(std::ostream &os, enum ur_command_t value) { + switch (value) { - case UR_FUNCTION_PROGRAM_BUILD: - os << "UR_FUNCTION_PROGRAM_BUILD"; + case UR_COMMAND_KERNEL_LAUNCH: + os << "UR_COMMAND_KERNEL_LAUNCH"; break; - case UR_FUNCTION_PROGRAM_COMPILE: - os << "UR_FUNCTION_PROGRAM_COMPILE"; + case UR_COMMAND_EVENTS_WAIT: + os << "UR_COMMAND_EVENTS_WAIT"; break; - case UR_FUNCTION_PROGRAM_LINK: - os << "UR_FUNCTION_PROGRAM_LINK"; + case UR_COMMAND_EVENTS_WAIT_WITH_BARRIER: + os << "UR_COMMAND_EVENTS_WAIT_WITH_BARRIER"; break; - case UR_FUNCTION_PROGRAM_RETAIN: - os << "UR_FUNCTION_PROGRAM_RETAIN"; + case UR_COMMAND_MEM_BUFFER_READ: + os << "UR_COMMAND_MEM_BUFFER_READ"; break; - case UR_FUNCTION_PROGRAM_RELEASE: - os << "UR_FUNCTION_PROGRAM_RELEASE"; + case UR_COMMAND_MEM_BUFFER_WRITE: + os << "UR_COMMAND_MEM_BUFFER_WRITE"; break; - case UR_FUNCTION_PROGRAM_GET_FUNCTION_POINTER: - os << "UR_FUNCTION_PROGRAM_GET_FUNCTION_POINTER"; + case UR_COMMAND_MEM_BUFFER_READ_RECT: + os << "UR_COMMAND_MEM_BUFFER_READ_RECT"; break; - case UR_FUNCTION_PROGRAM_GET_INFO: - os << "UR_FUNCTION_PROGRAM_GET_INFO"; + case UR_COMMAND_MEM_BUFFER_WRITE_RECT: + os << "UR_COMMAND_MEM_BUFFER_WRITE_RECT"; break; - case UR_FUNCTION_PROGRAM_GET_BUILD_INFO: - os << "UR_FUNCTION_PROGRAM_GET_BUILD_INFO"; + case UR_COMMAND_MEM_BUFFER_COPY: + os << "UR_COMMAND_MEM_BUFFER_COPY"; break; - case UR_FUNCTION_PROGRAM_SET_SPECIALIZATION_CONSTANTS: - os << "UR_FUNCTION_PROGRAM_SET_SPECIALIZATION_CONSTANTS"; + case UR_COMMAND_MEM_BUFFER_COPY_RECT: + os << "UR_COMMAND_MEM_BUFFER_COPY_RECT"; break; - case UR_FUNCTION_PROGRAM_GET_NATIVE_HANDLE: - os << "UR_FUNCTION_PROGRAM_GET_NATIVE_HANDLE"; + case UR_COMMAND_MEM_BUFFER_FILL: + os << "UR_COMMAND_MEM_BUFFER_FILL"; break; - case UR_FUNCTION_PROGRAM_CREATE_WITH_NATIVE_HANDLE: - os << "UR_FUNCTION_PROGRAM_CREATE_WITH_NATIVE_HANDLE"; + case UR_COMMAND_MEM_IMAGE_READ: + os << "UR_COMMAND_MEM_IMAGE_READ"; break; - case UR_FUNCTION_QUEUE_GET_INFO: - os << "UR_FUNCTION_QUEUE_GET_INFO"; + case UR_COMMAND_MEM_IMAGE_WRITE: + os << "UR_COMMAND_MEM_IMAGE_WRITE"; break; - case UR_FUNCTION_QUEUE_CREATE: - os << "UR_FUNCTION_QUEUE_CREATE"; + case UR_COMMAND_MEM_IMAGE_COPY: + os << "UR_COMMAND_MEM_IMAGE_COPY"; break; - case UR_FUNCTION_QUEUE_RETAIN: - os << "UR_FUNCTION_QUEUE_RETAIN"; + case UR_COMMAND_MEM_BUFFER_MAP: + os << "UR_COMMAND_MEM_BUFFER_MAP"; break; - case UR_FUNCTION_QUEUE_RELEASE: - os << "UR_FUNCTION_QUEUE_RELEASE"; + case UR_COMMAND_MEM_UNMAP: + os << "UR_COMMAND_MEM_UNMAP"; break; - case UR_FUNCTION_QUEUE_GET_NATIVE_HANDLE: - os << "UR_FUNCTION_QUEUE_GET_NATIVE_HANDLE"; + case UR_COMMAND_USM_FILL: + os << "UR_COMMAND_USM_FILL"; break; - case UR_FUNCTION_QUEUE_CREATE_WITH_NATIVE_HANDLE: - os << "UR_FUNCTION_QUEUE_CREATE_WITH_NATIVE_HANDLE"; + case UR_COMMAND_USM_MEMCPY: + os << "UR_COMMAND_USM_MEMCPY"; break; - case UR_FUNCTION_QUEUE_FINISH: - os << "UR_FUNCTION_QUEUE_FINISH"; + case UR_COMMAND_USM_PREFETCH: + os << "UR_COMMAND_USM_PREFETCH"; break; - case UR_FUNCTION_QUEUE_FLUSH: - os << "UR_FUNCTION_QUEUE_FLUSH"; + case UR_COMMAND_USM_ADVISE: + os << "UR_COMMAND_USM_ADVISE"; break; - case UR_FUNCTION_INIT: - os << "UR_FUNCTION_INIT"; + case UR_COMMAND_USM_FILL_2D: + os << "UR_COMMAND_USM_FILL_2D"; break; - case UR_FUNCTION_TEAR_DOWN: - os << "UR_FUNCTION_TEAR_DOWN"; + case UR_COMMAND_USM_MEMCPY_2D: + os << "UR_COMMAND_USM_MEMCPY_2D"; break; - case UR_FUNCTION_SAMPLER_CREATE: - os << "UR_FUNCTION_SAMPLER_CREATE"; + case UR_COMMAND_DEVICE_GLOBAL_VARIABLE_WRITE: + os << "UR_COMMAND_DEVICE_GLOBAL_VARIABLE_WRITE"; break; - case UR_FUNCTION_SAMPLER_RETAIN: - os << "UR_FUNCTION_SAMPLER_RETAIN"; + case UR_COMMAND_DEVICE_GLOBAL_VARIABLE_READ: + os << "UR_COMMAND_DEVICE_GLOBAL_VARIABLE_READ"; break; - case UR_FUNCTION_SAMPLER_RELEASE: - os << "UR_FUNCTION_SAMPLER_RELEASE"; + case UR_COMMAND_READ_HOST_PIPE: + os << "UR_COMMAND_READ_HOST_PIPE"; break; - case UR_FUNCTION_SAMPLER_GET_INFO: - os << "UR_FUNCTION_SAMPLER_GET_INFO"; + case UR_COMMAND_WRITE_HOST_PIPE: + os << "UR_COMMAND_WRITE_HOST_PIPE"; break; - case UR_FUNCTION_SAMPLER_GET_NATIVE_HANDLE: - os << "UR_FUNCTION_SAMPLER_GET_NATIVE_HANDLE"; + case UR_COMMAND_COMMAND_BUFFER_ENQUEUE_EXP: + os << "UR_COMMAND_COMMAND_BUFFER_ENQUEUE_EXP"; break; - case UR_FUNCTION_SAMPLER_CREATE_WITH_NATIVE_HANDLE: - os << "UR_FUNCTION_SAMPLER_CREATE_WITH_NATIVE_HANDLE"; + case UR_COMMAND_INTEROP_SEMAPHORE_WAIT_EXP: + os << "UR_COMMAND_INTEROP_SEMAPHORE_WAIT_EXP"; break; - case UR_FUNCTION_USM_HOST_ALLOC: - os << "UR_FUNCTION_USM_HOST_ALLOC"; + case UR_COMMAND_INTEROP_SEMAPHORE_SIGNAL_EXP: + os << "UR_COMMAND_INTEROP_SEMAPHORE_SIGNAL_EXP"; break; - - case UR_FUNCTION_USM_DEVICE_ALLOC: - os << "UR_FUNCTION_USM_DEVICE_ALLOC"; + default: + os << "unknown enumerator"; break; + } + return os; +} +inline std::ostream &operator<<(std::ostream &os, + enum ur_event_status_t value) { + switch (value) { - case UR_FUNCTION_USM_SHARED_ALLOC: - os << "UR_FUNCTION_USM_SHARED_ALLOC"; + case UR_EVENT_STATUS_COMPLETE: + os << "UR_EVENT_STATUS_COMPLETE"; break; - case UR_FUNCTION_USM_FREE: - os << "UR_FUNCTION_USM_FREE"; + case UR_EVENT_STATUS_RUNNING: + os << "UR_EVENT_STATUS_RUNNING"; break; - case UR_FUNCTION_USM_GET_MEM_ALLOC_INFO: - os << "UR_FUNCTION_USM_GET_MEM_ALLOC_INFO"; + case UR_EVENT_STATUS_SUBMITTED: + os << "UR_EVENT_STATUS_SUBMITTED"; break; - case UR_FUNCTION_USM_POOL_CREATE: - os << "UR_FUNCTION_USM_POOL_CREATE"; + case UR_EVENT_STATUS_QUEUED: + os << "UR_EVENT_STATUS_QUEUED"; break; - - case UR_FUNCTION_COMMAND_BUFFER_CREATE_EXP: - os << "UR_FUNCTION_COMMAND_BUFFER_CREATE_EXP"; + default: + os << "unknown enumerator"; break; + } + return os; +} +inline std::ostream &operator<<(std::ostream &os, enum ur_event_info_t value) { + switch (value) { - case UR_FUNCTION_PLATFORM_GET_BACKEND_OPTION: - os << "UR_FUNCTION_PLATFORM_GET_BACKEND_OPTION"; + case UR_EVENT_INFO_COMMAND_QUEUE: + os << "UR_EVENT_INFO_COMMAND_QUEUE"; break; - case UR_FUNCTION_MEM_BUFFER_CREATE_WITH_NATIVE_HANDLE: - os << "UR_FUNCTION_MEM_BUFFER_CREATE_WITH_NATIVE_HANDLE"; + case UR_EVENT_INFO_CONTEXT: + os << "UR_EVENT_INFO_CONTEXT"; break; - case UR_FUNCTION_MEM_IMAGE_CREATE_WITH_NATIVE_HANDLE: - os << "UR_FUNCTION_MEM_IMAGE_CREATE_WITH_NATIVE_HANDLE"; + case UR_EVENT_INFO_COMMAND_TYPE: + os << "UR_EVENT_INFO_COMMAND_TYPE"; break; - case UR_FUNCTION_ENQUEUE_WRITE_HOST_PIPE: - os << "UR_FUNCTION_ENQUEUE_WRITE_HOST_PIPE"; + case UR_EVENT_INFO_COMMAND_EXECUTION_STATUS: + os << "UR_EVENT_INFO_COMMAND_EXECUTION_STATUS"; break; - case UR_FUNCTION_USM_POOL_RETAIN: - os << "UR_FUNCTION_USM_POOL_RETAIN"; + case UR_EVENT_INFO_REFERENCE_COUNT: + os << "UR_EVENT_INFO_REFERENCE_COUNT"; break; - - case UR_FUNCTION_USM_POOL_RELEASE: - os << "UR_FUNCTION_USM_POOL_RELEASE"; + default: + os << "unknown enumerator"; break; + } + return os; +} +namespace ur_params { +template <> +inline void serializeTagged(std::ostream &os, const void *ptr, + ur_event_info_t value, size_t size) { + if (ptr == NULL) { + serializePtr(os, ptr); + return; + } - case UR_FUNCTION_USM_POOL_GET_INFO: - os << "UR_FUNCTION_USM_POOL_GET_INFO"; - break; + switch (value) { - case UR_FUNCTION_COMMAND_BUFFER_RETAIN_EXP: - os << "UR_FUNCTION_COMMAND_BUFFER_RETAIN_EXP"; - break; + case UR_EVENT_INFO_COMMAND_QUEUE: { + const ur_queue_handle_t *tptr = (const ur_queue_handle_t *)ptr; + if (sizeof(ur_queue_handle_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(ur_queue_handle_t) << ")"; + return; + } + os << (void *)(tptr) << " ("; - case UR_FUNCTION_COMMAND_BUFFER_RELEASE_EXP: - os << "UR_FUNCTION_COMMAND_BUFFER_RELEASE_EXP"; - break; + ur_params::serializePtr(os, *tptr); - case UR_FUNCTION_COMMAND_BUFFER_FINALIZE_EXP: - os << "UR_FUNCTION_COMMAND_BUFFER_FINALIZE_EXP"; - break; + os << ")"; + } break; - case UR_FUNCTION_COMMAND_BUFFER_APPEND_KERNEL_LAUNCH_EXP: - os << "UR_FUNCTION_COMMAND_BUFFER_APPEND_KERNEL_LAUNCH_EXP"; - break; + case UR_EVENT_INFO_CONTEXT: { + const ur_context_handle_t *tptr = (const ur_context_handle_t *)ptr; + if (sizeof(ur_context_handle_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(ur_context_handle_t) << ")"; + return; + } + os << (void *)(tptr) << " ("; - case UR_FUNCTION_COMMAND_BUFFER_ENQUEUE_EXP: - os << "UR_FUNCTION_COMMAND_BUFFER_ENQUEUE_EXP"; - break; + ur_params::serializePtr(os, *tptr); - case UR_FUNCTION_COMMAND_BUFFER_APPEND_MEMCPY_USM_EXP: - os << "UR_FUNCTION_COMMAND_BUFFER_APPEND_MEMCPY_USM_EXP"; - break; + os << ")"; + } break; - case UR_FUNCTION_COMMAND_BUFFER_APPEND_MEMBUFFER_COPY_EXP: - os << "UR_FUNCTION_COMMAND_BUFFER_APPEND_MEMBUFFER_COPY_EXP"; - break; + case UR_EVENT_INFO_COMMAND_TYPE: { + const ur_command_t *tptr = (const ur_command_t *)ptr; + if (sizeof(ur_command_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(ur_command_t) << ")"; + return; + } + os << (void *)(tptr) << " ("; - case UR_FUNCTION_COMMAND_BUFFER_APPEND_MEMBUFFER_COPY_RECT_EXP: - os << "UR_FUNCTION_COMMAND_BUFFER_APPEND_MEMBUFFER_COPY_RECT_EXP"; - break; + os << *tptr; - case UR_FUNCTION_USM_PITCHED_ALLOC_EXP: - os << "UR_FUNCTION_USM_PITCHED_ALLOC_EXP"; - break; + os << ")"; + } break; - case UR_FUNCTION_BINDLESS_IMAGES_UNSAMPLED_IMAGE_HANDLE_DESTROY_EXP: - os << "UR_FUNCTION_BINDLESS_IMAGES_UNSAMPLED_IMAGE_HANDLE_DESTROY_EXP"; - break; + case UR_EVENT_INFO_COMMAND_EXECUTION_STATUS: { + const ur_event_status_t *tptr = (const ur_event_status_t *)ptr; + if (sizeof(ur_event_status_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(ur_event_status_t) << ")"; + return; + } + os << (void *)(tptr) << " ("; - case UR_FUNCTION_BINDLESS_IMAGES_SAMPLED_IMAGE_HANDLE_DESTROY_EXP: - os << "UR_FUNCTION_BINDLESS_IMAGES_SAMPLED_IMAGE_HANDLE_DESTROY_EXP"; - break; + os << *tptr; - case UR_FUNCTION_BINDLESS_IMAGES_IMAGE_ALLOCATE_EXP: - os << "UR_FUNCTION_BINDLESS_IMAGES_IMAGE_ALLOCATE_EXP"; - break; + os << ")"; + } break; - case UR_FUNCTION_BINDLESS_IMAGES_IMAGE_FREE_EXP: - os << "UR_FUNCTION_BINDLESS_IMAGES_IMAGE_FREE_EXP"; - break; + case UR_EVENT_INFO_REFERENCE_COUNT: { + const uint32_t *tptr = (const uint32_t *)ptr; + if (sizeof(uint32_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(uint32_t) << ")"; + return; + } + os << (void *)(tptr) << " ("; - case UR_FUNCTION_BINDLESS_IMAGES_UNSAMPLED_IMAGE_CREATE_EXP: - os << "UR_FUNCTION_BINDLESS_IMAGES_UNSAMPLED_IMAGE_CREATE_EXP"; - break; + os << *tptr; - case UR_FUNCTION_BINDLESS_IMAGES_SAMPLED_IMAGE_CREATE_EXP: - os << "UR_FUNCTION_BINDLESS_IMAGES_SAMPLED_IMAGE_CREATE_EXP"; + os << ")"; + } break; + default: + os << "unknown enumerator"; break; + } +} +} // namespace ur_params +inline std::ostream &operator<<(std::ostream &os, + enum ur_profiling_info_t value) { + switch (value) { - case UR_FUNCTION_BINDLESS_IMAGES_IMAGE_COPY_EXP: - os << "UR_FUNCTION_BINDLESS_IMAGES_IMAGE_COPY_EXP"; + case UR_PROFILING_INFO_COMMAND_QUEUED: + os << "UR_PROFILING_INFO_COMMAND_QUEUED"; break; - case UR_FUNCTION_BINDLESS_IMAGES_IMAGE_GET_INFO_EXP: - os << "UR_FUNCTION_BINDLESS_IMAGES_IMAGE_GET_INFO_EXP"; + case UR_PROFILING_INFO_COMMAND_SUBMIT: + os << "UR_PROFILING_INFO_COMMAND_SUBMIT"; break; - case UR_FUNCTION_BINDLESS_IMAGES_MIPMAP_GET_LEVEL_EXP: - os << "UR_FUNCTION_BINDLESS_IMAGES_MIPMAP_GET_LEVEL_EXP"; + case UR_PROFILING_INFO_COMMAND_START: + os << "UR_PROFILING_INFO_COMMAND_START"; break; - case UR_FUNCTION_BINDLESS_IMAGES_MIPMAP_FREE_EXP: - os << "UR_FUNCTION_BINDLESS_IMAGES_MIPMAP_FREE_EXP"; + case UR_PROFILING_INFO_COMMAND_END: + os << "UR_PROFILING_INFO_COMMAND_END"; break; - case UR_FUNCTION_BINDLESS_IMAGES_IMPORT_OPAQUE_FD_EXP: - os << "UR_FUNCTION_BINDLESS_IMAGES_IMPORT_OPAQUE_FD_EXP"; + case UR_PROFILING_INFO_COMMAND_COMPLETE: + os << "UR_PROFILING_INFO_COMMAND_COMPLETE"; break; - - case UR_FUNCTION_BINDLESS_IMAGES_MAP_EXTERNAL_ARRAY_EXP: - os << "UR_FUNCTION_BINDLESS_IMAGES_MAP_EXTERNAL_ARRAY_EXP"; + default: + os << "unknown enumerator"; break; + } + return os; +} +namespace ur_params { +template <> +inline void serializeTagged(std::ostream &os, const void *ptr, + ur_profiling_info_t value, size_t size) { + if (ptr == NULL) { + serializePtr(os, ptr); + return; + } - case UR_FUNCTION_BINDLESS_IMAGES_RELEASE_INTEROP_EXP: - os << "UR_FUNCTION_BINDLESS_IMAGES_RELEASE_INTEROP_EXP"; - break; + switch (value) { - case UR_FUNCTION_BINDLESS_IMAGES_IMPORT_EXTERNAL_SEMAPHORE_OPAQUE_FD_EXP: - os << "UR_FUNCTION_BINDLESS_IMAGES_IMPORT_EXTERNAL_SEMAPHORE_OPAQUE_FD_" - "EXP"; - break; + case UR_PROFILING_INFO_COMMAND_QUEUED: { + const uint64_t *tptr = (const uint64_t *)ptr; + if (sizeof(uint64_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(uint64_t) << ")"; + return; + } + os << (void *)(tptr) << " ("; - case UR_FUNCTION_BINDLESS_IMAGES_DESTROY_EXTERNAL_SEMAPHORE_EXP: - os << "UR_FUNCTION_BINDLESS_IMAGES_DESTROY_EXTERNAL_SEMAPHORE_EXP"; - break; + os << *tptr; - case UR_FUNCTION_BINDLESS_IMAGES_WAIT_EXTERNAL_SEMAPHORE_EXP: - os << "UR_FUNCTION_BINDLESS_IMAGES_WAIT_EXTERNAL_SEMAPHORE_EXP"; - break; + os << ")"; + } break; - case UR_FUNCTION_BINDLESS_IMAGES_SIGNAL_EXTERNAL_SEMAPHORE_EXP: - os << "UR_FUNCTION_BINDLESS_IMAGES_SIGNAL_EXTERNAL_SEMAPHORE_EXP"; - break; + case UR_PROFILING_INFO_COMMAND_SUBMIT: { + const uint64_t *tptr = (const uint64_t *)ptr; + if (sizeof(uint64_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(uint64_t) << ")"; + return; + } + os << (void *)(tptr) << " ("; - case UR_FUNCTION_PLATFORM_GET_LAST_ERROR: - os << "UR_FUNCTION_PLATFORM_GET_LAST_ERROR"; - break; + os << *tptr; - case UR_FUNCTION_ENQUEUE_USM_FILL_2D: - os << "UR_FUNCTION_ENQUEUE_USM_FILL_2D"; - break; + os << ")"; + } break; - case UR_FUNCTION_ENQUEUE_USM_MEMCPY_2D: - os << "UR_FUNCTION_ENQUEUE_USM_MEMCPY_2D"; - break; + case UR_PROFILING_INFO_COMMAND_START: { + const uint64_t *tptr = (const uint64_t *)ptr; + if (sizeof(uint64_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(uint64_t) << ")"; + return; + } + os << (void *)(tptr) << " ("; - case UR_FUNCTION_VIRTUAL_MEM_GRANULARITY_GET_INFO: - os << "UR_FUNCTION_VIRTUAL_MEM_GRANULARITY_GET_INFO"; - break; + os << *tptr; - case UR_FUNCTION_VIRTUAL_MEM_RESERVE: - os << "UR_FUNCTION_VIRTUAL_MEM_RESERVE"; - break; + os << ")"; + } break; - case UR_FUNCTION_VIRTUAL_MEM_FREE: - os << "UR_FUNCTION_VIRTUAL_MEM_FREE"; - break; + case UR_PROFILING_INFO_COMMAND_END: { + const uint64_t *tptr = (const uint64_t *)ptr; + if (sizeof(uint64_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(uint64_t) << ")"; + return; + } + os << (void *)(tptr) << " ("; - case UR_FUNCTION_VIRTUAL_MEM_MAP: - os << "UR_FUNCTION_VIRTUAL_MEM_MAP"; - break; + os << *tptr; - case UR_FUNCTION_VIRTUAL_MEM_UNMAP: - os << "UR_FUNCTION_VIRTUAL_MEM_UNMAP"; - break; + os << ")"; + } break; - case UR_FUNCTION_VIRTUAL_MEM_SET_ACCESS: - os << "UR_FUNCTION_VIRTUAL_MEM_SET_ACCESS"; - break; + case UR_PROFILING_INFO_COMMAND_COMPLETE: { + const uint64_t *tptr = (const uint64_t *)ptr; + if (sizeof(uint64_t) > size) { + os << "invalid size (is: " << size + << ", expected: >=" << sizeof(uint64_t) << ")"; + return; + } + os << (void *)(tptr) << " ("; - case UR_FUNCTION_VIRTUAL_MEM_GET_INFO: - os << "UR_FUNCTION_VIRTUAL_MEM_GET_INFO"; - break; + os << *tptr; - case UR_FUNCTION_PHYSICAL_MEM_CREATE: - os << "UR_FUNCTION_PHYSICAL_MEM_CREATE"; + os << ")"; + } break; + default: + os << "unknown enumerator"; break; + } +} +} // namespace ur_params +inline std::ostream & +operator<<(std::ostream &os, const struct ur_event_native_properties_t params) { + os << "(struct ur_event_native_properties_t){"; - case UR_FUNCTION_PHYSICAL_MEM_RETAIN: - os << "UR_FUNCTION_PHYSICAL_MEM_RETAIN"; - break; + os << ".stype = "; - case UR_FUNCTION_PHYSICAL_MEM_RELEASE: - os << "UR_FUNCTION_PHYSICAL_MEM_RELEASE"; - break; + os << (params.stype); - case UR_FUNCTION_USM_IMPORT_EXP: - os << "UR_FUNCTION_USM_IMPORT_EXP"; - break; + os << ", "; + os << ".pNext = "; - case UR_FUNCTION_USM_RELEASE_EXP: - os << "UR_FUNCTION_USM_RELEASE_EXP"; - break; + ur_params::serializeStruct(os, (params.pNext)); - case UR_FUNCTION_USM_P2P_ENABLE_PEER_ACCESS_EXP: - os << "UR_FUNCTION_USM_P2P_ENABLE_PEER_ACCESS_EXP"; - break; + os << ", "; + os << ".isNativeHandleOwned = "; - case UR_FUNCTION_USM_P2P_DISABLE_PEER_ACCESS_EXP: - os << "UR_FUNCTION_USM_P2P_DISABLE_PEER_ACCESS_EXP"; - break; + os << (params.isNativeHandleOwned); - case UR_FUNCTION_USM_P2P_PEER_ACCESS_GET_INFO_EXP: - os << "UR_FUNCTION_USM_P2P_PEER_ACCESS_GET_INFO_EXP"; - break; + os << "}"; + return os; +} +inline std::ostream &operator<<(std::ostream &os, + enum ur_execution_info_t value) { + switch (value) { - case UR_FUNCTION_COMMAND_BUFFER_APPEND_MEMBUFFER_WRITE_EXP: - os << "UR_FUNCTION_COMMAND_BUFFER_APPEND_MEMBUFFER_WRITE_EXP"; + case UR_EXECUTION_INFO_EXECUTION_INFO_COMPLETE: + os << "UR_EXECUTION_INFO_EXECUTION_INFO_COMPLETE"; break; - case UR_FUNCTION_COMMAND_BUFFER_APPEND_MEMBUFFER_READ_EXP: - os << "UR_FUNCTION_COMMAND_BUFFER_APPEND_MEMBUFFER_READ_EXP"; + case UR_EXECUTION_INFO_EXECUTION_INFO_RUNNING: + os << "UR_EXECUTION_INFO_EXECUTION_INFO_RUNNING"; break; - case UR_FUNCTION_COMMAND_BUFFER_APPEND_MEMBUFFER_WRITE_RECT_EXP: - os << "UR_FUNCTION_COMMAND_BUFFER_APPEND_MEMBUFFER_WRITE_RECT_EXP"; + case UR_EXECUTION_INFO_EXECUTION_INFO_SUBMITTED: + os << "UR_EXECUTION_INFO_EXECUTION_INFO_SUBMITTED"; break; - case UR_FUNCTION_COMMAND_BUFFER_APPEND_MEMBUFFER_READ_RECT_EXP: - os << "UR_FUNCTION_COMMAND_BUFFER_APPEND_MEMBUFFER_READ_RECT_EXP"; + case UR_EXECUTION_INFO_EXECUTION_INFO_QUEUED: + os << "UR_EXECUTION_INFO_EXECUTION_INFO_QUEUED"; break; default: os << "unknown enumerator";