aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--level_zero-sys/README8
-rw-r--r--level_zero-sys/include/level_zero/.gitignore1
-rw-r--r--level_zero-sys/include/ze_api.h8918
-rw-r--r--level_zero-sys/include/ze_exp_ext.h68
-rw-r--r--level_zero-sys/src/ze_api.rs13865
5 files changed, 22766 insertions, 94 deletions
diff --git a/level_zero-sys/README b/level_zero-sys/README
index ff5978a..127955d 100644
--- a/level_zero-sys/README
+++ b/level_zero-sys/README
@@ -1,4 +1,4 @@
-sed 's/^typedef uint32_t ze_.*flags_t;$//g' /usr/local/include/level_zero/ze_api.h > ze_api.h
-sed -i -r 's/ze_(.*)_flag_t/ze_\1_flags_t/g' ze_api.h
-bindgen --size_t-is-usize --default-enum-style=newtype --bitfield-enum ".*flags_t" --whitelist-function "ze.*" ze_api.h -o ze_api.rs
-sed -i 's/pub struct _ze_result_t/#[must_use]\npub struct _ze_result_t/g' ze_api.rs \ No newline at end of file
+sed 's/^typedef uint32_t ze_.*flags_t;$//g' include/ze_api.h > include/level_zero/ze_api.h
+sed -i -r 's/ze_(.*)_flag_t/ze_\1_flags_t/g' include/level_zero/ze_api.h
+bindgen --size_t-is-usize --default-enum-style=newtype --bitfield-enum ".*flags_t" --whitelist-function "ze.*" --whitelist-type "ze.*" include/ze_exp_ext.h -o src/ze_api.rs -- -Iinclude
+sed -i 's/pub struct _ze_result_t/#[must_use]\npub struct _ze_result_t/g' src/ze_api.rs
diff --git a/level_zero-sys/include/level_zero/.gitignore b/level_zero-sys/include/level_zero/.gitignore
new file mode 100644
index 0000000..d9e8bb7
--- /dev/null
+++ b/level_zero-sys/include/level_zero/.gitignore
@@ -0,0 +1 @@
+ze_api.h \ No newline at end of file
diff --git a/level_zero-sys/include/ze_api.h b/level_zero-sys/include/ze_api.h
new file mode 100644
index 0000000..982a2b0
--- /dev/null
+++ b/level_zero-sys/include/ze_api.h
@@ -0,0 +1,8918 @@
+/*
+ *
+ * Copyright (C) 2019 Intel Corporation
+ *
+ * SPDX-License-Identifier: MIT
+ *
+ * @file ze_api.h
+ * @version v1.0-r1.0.4.8
+ *
+ */
+#ifndef _ZE_API_H
+#define _ZE_API_H
+#if defined(__cplusplus)
+#pragma once
+#endif
+
+// standard headers
+#include <stdint.h>
+#include <stddef.h>
+
+#if defined(__cplusplus)
+extern "C" {
+#endif
+
+// Intel 'oneAPI' Level-Zero API common types
+#if !defined(__GNUC__)
+#pragma region common
+#endif
+///////////////////////////////////////////////////////////////////////////////
+#ifndef ZE_MAKE_VERSION
+/// @brief Generates generic 'oneAPI' API versions
+#define ZE_MAKE_VERSION( _major, _minor ) (( _major << 16 )|( _minor & 0x0000ffff))
+#endif // ZE_MAKE_VERSION
+
+///////////////////////////////////////////////////////////////////////////////
+#ifndef ZE_MAJOR_VERSION
+/// @brief Extracts 'oneAPI' API major version
+#define ZE_MAJOR_VERSION( _ver ) ( _ver >> 16 )
+#endif // ZE_MAJOR_VERSION
+
+///////////////////////////////////////////////////////////////////////////////
+#ifndef ZE_MINOR_VERSION
+/// @brief Extracts 'oneAPI' API minor version
+#define ZE_MINOR_VERSION( _ver ) ( _ver & 0x0000ffff )
+#endif // ZE_MINOR_VERSION
+
+///////////////////////////////////////////////////////////////////////////////
+#ifndef ZE_APICALL
+#if defined(_WIN32)
+/// @brief Calling convention for all API functions
+#define ZE_APICALL __cdecl
+#else
+#define ZE_APICALL
+#endif // defined(_WIN32)
+#endif // ZE_APICALL
+
+///////////////////////////////////////////////////////////////////////////////
+#ifndef ZE_APIEXPORT
+#if defined(_WIN32)
+/// @brief Microsoft-specific dllexport storage-class attribute
+#define ZE_APIEXPORT __declspec(dllexport)
+#else
+#define ZE_APIEXPORT
+#endif // defined(_WIN32)
+#endif // ZE_APIEXPORT
+
+///////////////////////////////////////////////////////////////////////////////
+#ifndef ZE_DLLEXPORT
+#if defined(_WIN32)
+/// @brief Microsoft-specific dllexport storage-class attribute
+#define ZE_DLLEXPORT __declspec(dllexport)
+#endif // defined(_WIN32)
+#endif // ZE_DLLEXPORT
+
+///////////////////////////////////////////////////////////////////////////////
+#ifndef ZE_DLLEXPORT
+#if __GNUC__ >= 4
+/// @brief GCC-specific dllexport storage-class attribute
+#define ZE_DLLEXPORT __attribute__ ((visibility ("default")))
+#else
+#define ZE_DLLEXPORT
+#endif // __GNUC__ >= 4
+#endif // ZE_DLLEXPORT
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief compiler-independent type
+typedef uint8_t ze_bool_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Handle of a driver instance
+typedef struct _ze_driver_handle_t *ze_driver_handle_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Handle of driver's device object
+typedef struct _ze_device_handle_t *ze_device_handle_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Handle of driver's context object
+typedef struct _ze_context_handle_t *ze_context_handle_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Handle of driver's command queue object
+typedef struct _ze_command_queue_handle_t *ze_command_queue_handle_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Handle of driver's command list object
+typedef struct _ze_command_list_handle_t *ze_command_list_handle_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Handle of driver's fence object
+typedef struct _ze_fence_handle_t *ze_fence_handle_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Handle of driver's event pool object
+typedef struct _ze_event_pool_handle_t *ze_event_pool_handle_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Handle of driver's event object
+typedef struct _ze_event_handle_t *ze_event_handle_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Handle of driver's image object
+typedef struct _ze_image_handle_t *ze_image_handle_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Handle of driver's module object
+typedef struct _ze_module_handle_t *ze_module_handle_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Handle of module's build log object
+typedef struct _ze_module_build_log_handle_t *ze_module_build_log_handle_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Handle of driver's kernel object
+typedef struct _ze_kernel_handle_t *ze_kernel_handle_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Handle of driver's sampler object
+typedef struct _ze_sampler_handle_t *ze_sampler_handle_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Handle of physical memory object
+typedef struct _ze_physical_mem_handle_t *ze_physical_mem_handle_t;
+
+///////////////////////////////////////////////////////////////////////////////
+#ifndef ZE_MAX_IPC_HANDLE_SIZE
+/// @brief Maximum IPC handle size
+#define ZE_MAX_IPC_HANDLE_SIZE 64
+#endif // ZE_MAX_IPC_HANDLE_SIZE
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief IPC handle to a memory allocation
+typedef struct _ze_ipc_mem_handle_t
+{
+ char data[ZE_MAX_IPC_HANDLE_SIZE]; ///< [out] Opaque data representing an IPC handle
+
+} ze_ipc_mem_handle_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief IPC handle to a event pool allocation
+typedef struct _ze_ipc_event_pool_handle_t
+{
+ char data[ZE_MAX_IPC_HANDLE_SIZE]; ///< [out] Opaque data representing an IPC handle
+
+} ze_ipc_event_pool_handle_t;
+
+///////////////////////////////////////////////////////////////////////////////
+#ifndef ZE_BIT
+/// @brief Generic macro for enumerator bit masks
+#define ZE_BIT( _i ) ( 1 << _i )
+#endif // ZE_BIT
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Defines Return/Error codes
+typedef enum _ze_result_t
+{
+ ZE_RESULT_SUCCESS = 0, ///< [Core] success
+ ZE_RESULT_NOT_READY = 1, ///< [Core] synchronization primitive not signaled
+ ZE_RESULT_ERROR_DEVICE_LOST = 0x70000001, ///< [Core] device hung, reset, was removed, or driver update occurred
+ ZE_RESULT_ERROR_OUT_OF_HOST_MEMORY = 0x70000002,///< [Core] insufficient host memory to satisfy call
+ ZE_RESULT_ERROR_OUT_OF_DEVICE_MEMORY = 0x70000003, ///< [Core] insufficient device memory to satisfy call
+ ZE_RESULT_ERROR_MODULE_BUILD_FAILURE = 0x70000004, ///< [Core] error occurred when building module, see build log for details
+ ZE_RESULT_ERROR_MODULE_LINK_FAILURE = 0x70000005, ///< [Core] error occurred when linking modules, see build log for details
+ ZE_RESULT_ERROR_INSUFFICIENT_PERMISSIONS = 0x70010000, ///< [Sysman] access denied due to permission level
+ ZE_RESULT_ERROR_NOT_AVAILABLE = 0x70010001, ///< [Sysman] resource already in use and simultaneous access not allowed
+ ///< or resource was removed
+ ZE_RESULT_ERROR_DEPENDENCY_UNAVAILABLE = 0x70020000,///< [Tools] external required dependency is unavailable or missing
+ ZE_RESULT_ERROR_UNINITIALIZED = 0x78000001, ///< [Validation] driver is not initialized
+ ZE_RESULT_ERROR_UNSUPPORTED_VERSION = 0x78000002, ///< [Validation] generic error code for unsupported versions
+ ZE_RESULT_ERROR_UNSUPPORTED_FEATURE = 0x78000003, ///< [Validation] generic error code for unsupported features
+ ZE_RESULT_ERROR_INVALID_ARGUMENT = 0x78000004, ///< [Validation] generic error code for invalid arguments
+ ZE_RESULT_ERROR_INVALID_NULL_HANDLE = 0x78000005, ///< [Validation] handle argument is not valid
+ ZE_RESULT_ERROR_HANDLE_OBJECT_IN_USE = 0x78000006, ///< [Validation] object pointed to by handle still in-use by device
+ ZE_RESULT_ERROR_INVALID_NULL_POINTER = 0x78000007, ///< [Validation] pointer argument may not be nullptr
+ ZE_RESULT_ERROR_INVALID_SIZE = 0x78000008, ///< [Validation] size argument is invalid (e.g., must not be zero)
+ ZE_RESULT_ERROR_UNSUPPORTED_SIZE = 0x78000009, ///< [Validation] size argument is not supported by the device (e.g., too
+ ///< large)
+ ZE_RESULT_ERROR_UNSUPPORTED_ALIGNMENT = 0x7800000a, ///< [Validation] alignment argument is not supported by the device (e.g.,
+ ///< too small)
+ ZE_RESULT_ERROR_INVALID_SYNCHRONIZATION_OBJECT = 0x7800000b,///< [Validation] synchronization object in invalid state
+ ZE_RESULT_ERROR_INVALID_ENUMERATION = 0x7800000c, ///< [Validation] enumerator argument is not valid
+ ZE_RESULT_ERROR_UNSUPPORTED_ENUMERATION = 0x7800000d, ///< [Validation] enumerator argument is not supported by the device
+ ZE_RESULT_ERROR_UNSUPPORTED_IMAGE_FORMAT = 0x7800000e, ///< [Validation] image format is not supported by the device
+ ZE_RESULT_ERROR_INVALID_NATIVE_BINARY = 0x7800000f, ///< [Validation] native binary is not supported by the device
+ ZE_RESULT_ERROR_INVALID_GLOBAL_NAME = 0x78000010, ///< [Validation] global variable is not found in the module
+ ZE_RESULT_ERROR_INVALID_KERNEL_NAME = 0x78000011, ///< [Validation] kernel name is not found in the module
+ ZE_RESULT_ERROR_INVALID_FUNCTION_NAME = 0x78000012, ///< [Validation] function name is not found in the module
+ ZE_RESULT_ERROR_INVALID_GROUP_SIZE_DIMENSION = 0x78000013, ///< [Validation] group size dimension is not valid for the kernel or
+ ///< device
+ ZE_RESULT_ERROR_INVALID_GLOBAL_WIDTH_DIMENSION = 0x78000014,///< [Validation] global width dimension is not valid for the kernel or
+ ///< device
+ ZE_RESULT_ERROR_INVALID_KERNEL_ARGUMENT_INDEX = 0x78000015, ///< [Validation] kernel argument index is not valid for kernel
+ ZE_RESULT_ERROR_INVALID_KERNEL_ARGUMENT_SIZE = 0x78000016, ///< [Validation] kernel argument size does not match kernel
+ ZE_RESULT_ERROR_INVALID_KERNEL_ATTRIBUTE_VALUE = 0x78000017,///< [Validation] value of kernel attribute is not valid for the kernel or
+ ///< device
+ ZE_RESULT_ERROR_INVALID_MODULE_UNLINKED = 0x78000018, ///< [Validation] module with imports needs to be linked before kernels can
+ ///< be created from it.
+ ZE_RESULT_ERROR_INVALID_COMMAND_LIST_TYPE = 0x78000019, ///< [Validation] command list type does not match command queue type
+ ZE_RESULT_ERROR_OVERLAPPING_REGIONS = 0x7800001a, ///< [Validation] copy operations do not support overlapping regions of
+ ///< memory
+ ZE_RESULT_ERROR_UNKNOWN = 0x7ffffffe, ///< [Core] unknown or internal error
+ ZE_RESULT_FORCE_UINT32 = 0x7fffffff
+
+} ze_result_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Defines structure types
+typedef enum _ze_structure_type_t
+{
+ ZE_STRUCTURE_TYPE_DRIVER_PROPERTIES = 0x1, ///< ::ze_driver_properties_t
+ ZE_STRUCTURE_TYPE_DRIVER_IPC_PROPERTIES = 0x2, ///< ::ze_driver_ipc_properties_t
+ ZE_STRUCTURE_TYPE_DEVICE_PROPERTIES = 0x3, ///< ::ze_device_properties_t
+ ZE_STRUCTURE_TYPE_DEVICE_COMPUTE_PROPERTIES = 0x4, ///< ::ze_device_compute_properties_t
+ ZE_STRUCTURE_TYPE_DEVICE_MODULE_PROPERTIES = 0x5, ///< ::ze_device_module_properties_t
+ ZE_STRUCTURE_TYPE_COMMAND_QUEUE_GROUP_PROPERTIES = 0x6, ///< ::ze_command_queue_group_properties_t
+ ZE_STRUCTURE_TYPE_DEVICE_MEMORY_PROPERTIES = 0x7, ///< ::ze_device_memory_properties_t
+ ZE_STRUCTURE_TYPE_DEVICE_MEMORY_ACCESS_PROPERTIES = 0x8,///< ::ze_device_memory_access_properties_t
+ ZE_STRUCTURE_TYPE_DEVICE_CACHE_PROPERTIES = 0x9,///< ::ze_device_cache_properties_t
+ ZE_STRUCTURE_TYPE_DEVICE_IMAGE_PROPERTIES = 0xa,///< ::ze_device_image_properties_t
+ ZE_STRUCTURE_TYPE_DEVICE_P2P_PROPERTIES = 0xb, ///< ::ze_device_p2p_properties_t
+ ZE_STRUCTURE_TYPE_DEVICE_EXTERNAL_MEMORY_PROPERTIES = 0xc, ///< ::ze_device_external_memory_properties_t
+ ZE_STRUCTURE_TYPE_CONTEXT_DESC = 0xd, ///< ::ze_context_desc_t
+ ZE_STRUCTURE_TYPE_COMMAND_QUEUE_DESC = 0xe, ///< ::ze_command_queue_desc_t
+ ZE_STRUCTURE_TYPE_COMMAND_LIST_DESC = 0xf, ///< ::ze_command_list_desc_t
+ ZE_STRUCTURE_TYPE_EVENT_POOL_DESC = 0x10, ///< ::ze_event_pool_desc_t
+ ZE_STRUCTURE_TYPE_EVENT_DESC = 0x11, ///< ::ze_event_desc_t
+ ZE_STRUCTURE_TYPE_FENCE_DESC = 0x12, ///< ::ze_fence_desc_t
+ ZE_STRUCTURE_TYPE_IMAGE_DESC = 0x13, ///< ::ze_image_desc_t
+ ZE_STRUCTURE_TYPE_IMAGE_PROPERTIES = 0x14, ///< ::ze_image_properties_t
+ ZE_STRUCTURE_TYPE_DEVICE_MEM_ALLOC_DESC = 0x15, ///< ::ze_device_mem_alloc_desc_t
+ ZE_STRUCTURE_TYPE_HOST_MEM_ALLOC_DESC = 0x16, ///< ::ze_host_mem_alloc_desc_t
+ ZE_STRUCTURE_TYPE_MEMORY_ALLOCATION_PROPERTIES = 0x17, ///< ::ze_memory_allocation_properties_t
+ ZE_STRUCTURE_TYPE_EXTERNAL_MEMORY_EXPORT_DESC = 0x18, ///< ::ze_external_memory_export_desc_t
+ ZE_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMPORT_FD = 0x19, ///< ::ze_external_memory_import_fd_t
+ ZE_STRUCTURE_TYPE_EXTERNAL_MEMORY_EXPORT_FD = 0x1a, ///< ::ze_external_memory_export_fd_t
+ ZE_STRUCTURE_TYPE_MODULE_DESC = 0x1b, ///< ::ze_module_desc_t
+ ZE_STRUCTURE_TYPE_MODULE_PROPERTIES = 0x1c, ///< ::ze_module_properties_t
+ ZE_STRUCTURE_TYPE_KERNEL_DESC = 0x1d, ///< ::ze_kernel_desc_t
+ ZE_STRUCTURE_TYPE_KERNEL_PROPERTIES = 0x1e, ///< ::ze_kernel_properties_t
+ ZE_STRUCTURE_TYPE_SAMPLER_DESC = 0x1f, ///< ::ze_sampler_desc_t
+ ZE_STRUCTURE_TYPE_PHYSICAL_MEM_DESC = 0x20, ///< ::ze_physical_mem_desc_t
+ ZE_STRUCTURE_TYPE_RAYTRACING_MEM_ALLOC_EXT_DESC = 0x00010001, ///< ::ze_raytracing_mem_alloc_ext_desc_t
+ ZE_STRUCTURE_TYPE_FORCE_UINT32 = 0x7fffffff
+
+} ze_structure_type_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief External memory type flags
+typedef uint32_t ze_external_memory_type_flags_t;
+typedef enum _ze_external_memory_type_flag_t
+{
+ ZE_EXTERNAL_MEMORY_TYPE_FLAG_OPAQUE_FD = ZE_BIT(0), ///< an opaque POSIX file descriptor handle
+ ZE_EXTERNAL_MEMORY_TYPE_FLAG_DMA_BUF = ZE_BIT(1), ///< a file descriptor handle for a Linux dma_buf
+ ZE_EXTERNAL_MEMORY_TYPE_FLAG_FORCE_UINT32 = 0x7fffffff
+
+} ze_external_memory_type_flag_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Base for all properties types
+typedef struct _ze_base_properties_t
+{
+ ze_structure_type_t stype; ///< [in] type of this structure
+ void* pNext; ///< [in,out][optional] pointer to extension-specific structure
+
+} ze_base_properties_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Base for all descriptor types
+typedef struct _ze_base_desc_t
+{
+ ze_structure_type_t stype; ///< [in] type of this structure
+ const void* pNext; ///< [in][optional] pointer to extension-specific structure
+
+} ze_base_desc_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Forces driver to only report devices (and sub-devices) as specified by
+/// values
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Forces driver to report devices from lowest to highest PCI bus ID
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Forces all shared allocations into device memory
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Forward-declare ze_ipc_mem_handle_t
+typedef struct _ze_ipc_mem_handle_t ze_ipc_mem_handle_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Forward-declare ze_ipc_event_pool_handle_t
+typedef struct _ze_ipc_event_pool_handle_t ze_ipc_event_pool_handle_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Forward-declare ze_base_properties_t
+typedef struct _ze_base_properties_t ze_base_properties_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Forward-declare ze_base_desc_t
+typedef struct _ze_base_desc_t ze_base_desc_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Forward-declare ze_driver_uuid_t
+typedef struct _ze_driver_uuid_t ze_driver_uuid_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Forward-declare ze_driver_properties_t
+typedef struct _ze_driver_properties_t ze_driver_properties_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Forward-declare ze_driver_ipc_properties_t
+typedef struct _ze_driver_ipc_properties_t ze_driver_ipc_properties_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Forward-declare ze_driver_extension_properties_t
+typedef struct _ze_driver_extension_properties_t ze_driver_extension_properties_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Forward-declare ze_device_uuid_t
+typedef struct _ze_device_uuid_t ze_device_uuid_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Forward-declare ze_device_properties_t
+typedef struct _ze_device_properties_t ze_device_properties_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Forward-declare ze_device_thread_t
+typedef struct _ze_device_thread_t ze_device_thread_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Forward-declare ze_device_compute_properties_t
+typedef struct _ze_device_compute_properties_t ze_device_compute_properties_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Forward-declare ze_native_kernel_uuid_t
+typedef struct _ze_native_kernel_uuid_t ze_native_kernel_uuid_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Forward-declare ze_device_module_properties_t
+typedef struct _ze_device_module_properties_t ze_device_module_properties_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Forward-declare ze_command_queue_group_properties_t
+typedef struct _ze_command_queue_group_properties_t ze_command_queue_group_properties_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Forward-declare ze_device_memory_properties_t
+typedef struct _ze_device_memory_properties_t ze_device_memory_properties_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Forward-declare ze_device_memory_access_properties_t
+typedef struct _ze_device_memory_access_properties_t ze_device_memory_access_properties_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Forward-declare ze_device_cache_properties_t
+typedef struct _ze_device_cache_properties_t ze_device_cache_properties_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Forward-declare ze_device_image_properties_t
+typedef struct _ze_device_image_properties_t ze_device_image_properties_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Forward-declare ze_device_external_memory_properties_t
+typedef struct _ze_device_external_memory_properties_t ze_device_external_memory_properties_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Forward-declare ze_device_p2p_properties_t
+typedef struct _ze_device_p2p_properties_t ze_device_p2p_properties_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Forward-declare ze_context_desc_t
+typedef struct _ze_context_desc_t ze_context_desc_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Forward-declare ze_command_queue_desc_t
+typedef struct _ze_command_queue_desc_t ze_command_queue_desc_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Forward-declare ze_command_list_desc_t
+typedef struct _ze_command_list_desc_t ze_command_list_desc_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Forward-declare ze_copy_region_t
+typedef struct _ze_copy_region_t ze_copy_region_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Forward-declare ze_image_region_t
+typedef struct _ze_image_region_t ze_image_region_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Forward-declare ze_event_pool_desc_t
+typedef struct _ze_event_pool_desc_t ze_event_pool_desc_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Forward-declare ze_event_desc_t
+typedef struct _ze_event_desc_t ze_event_desc_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Forward-declare ze_kernel_timestamp_data_t
+typedef struct _ze_kernel_timestamp_data_t ze_kernel_timestamp_data_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Forward-declare ze_kernel_timestamp_result_t
+typedef struct _ze_kernel_timestamp_result_t ze_kernel_timestamp_result_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Forward-declare ze_fence_desc_t
+typedef struct _ze_fence_desc_t ze_fence_desc_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Forward-declare ze_image_format_t
+typedef struct _ze_image_format_t ze_image_format_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Forward-declare ze_image_desc_t
+typedef struct _ze_image_desc_t ze_image_desc_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Forward-declare ze_image_properties_t
+typedef struct _ze_image_properties_t ze_image_properties_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Forward-declare ze_device_mem_alloc_desc_t
+typedef struct _ze_device_mem_alloc_desc_t ze_device_mem_alloc_desc_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Forward-declare ze_host_mem_alloc_desc_t
+typedef struct _ze_host_mem_alloc_desc_t ze_host_mem_alloc_desc_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Forward-declare ze_memory_allocation_properties_t
+typedef struct _ze_memory_allocation_properties_t ze_memory_allocation_properties_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Forward-declare ze_external_memory_export_desc_t
+typedef struct _ze_external_memory_export_desc_t ze_external_memory_export_desc_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Forward-declare ze_external_memory_import_fd_t
+typedef struct _ze_external_memory_import_fd_t ze_external_memory_import_fd_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Forward-declare ze_external_memory_export_fd_t
+typedef struct _ze_external_memory_export_fd_t ze_external_memory_export_fd_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Forward-declare ze_module_constants_t
+typedef struct _ze_module_constants_t ze_module_constants_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Forward-declare ze_module_desc_t
+typedef struct _ze_module_desc_t ze_module_desc_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Forward-declare ze_module_properties_t
+typedef struct _ze_module_properties_t ze_module_properties_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Forward-declare ze_kernel_desc_t
+typedef struct _ze_kernel_desc_t ze_kernel_desc_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Forward-declare ze_kernel_uuid_t
+typedef struct _ze_kernel_uuid_t ze_kernel_uuid_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Forward-declare ze_kernel_properties_t
+typedef struct _ze_kernel_properties_t ze_kernel_properties_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Forward-declare ze_group_count_t
+typedef struct _ze_group_count_t ze_group_count_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Forward-declare ze_raytracing_mem_alloc_ext_desc_t
+typedef struct _ze_raytracing_mem_alloc_ext_desc_t ze_raytracing_mem_alloc_ext_desc_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Forward-declare ze_sampler_desc_t
+typedef struct _ze_sampler_desc_t ze_sampler_desc_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Forward-declare ze_physical_mem_desc_t
+typedef struct _ze_physical_mem_desc_t ze_physical_mem_desc_t;
+
+
+#if !defined(__GNUC__)
+#pragma endregion
+#endif
+// Intel 'oneAPI' Level-Zero APIs
+#if !defined(__GNUC__)
+#pragma region driver
+#endif
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Supported initialization flags
+typedef uint32_t ze_init_flags_t;
+typedef enum _ze_init_flag_t
+{
+ ZE_INIT_FLAG_GPU_ONLY = ZE_BIT(0), ///< only initialize GPU drivers
+ ZE_INIT_FLAG_FORCE_UINT32 = 0x7fffffff
+
+} ze_init_flag_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Initialize the 'oneAPI' driver(s)
+///
+/// @details
+/// - This function must be called before any other API function.
+/// - If this function is not called then all other functions will return
+/// ::ZE_RESULT_ERROR_UNINITIALIZED.
+/// - Only one instance of each driver will be initialized per process.
+/// - This function is thread-safe for scenarios where multiple libraries
+/// may initialize the driver(s) simultaneously.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_ENUMERATION
+/// + `0x1 < flags`
+/// - ::ZE_RESULT_ERROR_OUT_OF_HOST_MEMORY
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeInit(
+ ze_init_flags_t flags ///< [in] initialization flags.
+ ///< must be 0 (default) or a combination of ::ze_init_flag_t.
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Retrieves driver instances
+///
+/// @details
+/// - A driver represents a collection of physical devices.
+/// - Multiple calls to this function will return identical driver handles,
+/// in the same order.
+/// - The application may pass nullptr for pDrivers when only querying the
+/// number of drivers.
+/// - The application may call this function from simultaneous threads.
+/// - The implementation of this function should be lock-free.
+///
+/// @remarks
+/// _Analogues_
+/// - clGetPlatformIDs
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == pCount`
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeDriverGet(
+ uint32_t* pCount, ///< [in,out] pointer to the number of driver instances.
+ ///< if count is zero, then the loader will update the value with the total
+ ///< number of drivers available.
+ ///< if count is non-zero, then the loader will only retrieve that number
+ ///< of drivers.
+ ///< if count is larger than the number of drivers available, then the
+ ///< loader will update the value with the correct number of drivers available.
+ ze_driver_handle_t* phDrivers ///< [in,out][optional][range(0, *pCount)] array of driver instance handles
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Supported API versions
+///
+/// @details
+/// - API versions contain major and minor attributes, use
+/// ::ZE_MAJOR_VERSION and ::ZE_MINOR_VERSION
+typedef enum _ze_api_version_t
+{
+ ZE_API_VERSION_1_0 = ZE_MAKE_VERSION( 1, 0 ), ///< version 1.0
+ ZE_API_VERSION_CURRENT = ZE_MAKE_VERSION( 1, 0 ), ///< latest known version
+ ZE_API_VERSION_FORCE_UINT32 = 0x7fffffff
+
+} ze_api_version_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Returns the API version supported by the specified driver
+///
+/// @details
+/// - The application may call this function from simultaneous threads.
+/// - The implementation of this function should be lock-free.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hDriver`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == version`
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeDriverGetApiVersion(
+ ze_driver_handle_t hDriver, ///< [in] handle of the driver instance
+ ze_api_version_t* version ///< [out] api version
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+#ifndef ZE_MAX_DRIVER_UUID_SIZE
+/// @brief Maximum driver universal unique id (UUID) size in bytes
+#define ZE_MAX_DRIVER_UUID_SIZE 16
+#endif // ZE_MAX_DRIVER_UUID_SIZE
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Driver universal unique id (UUID)
+typedef struct _ze_driver_uuid_t
+{
+ uint8_t id[ZE_MAX_DRIVER_UUID_SIZE]; ///< [out] opaque data representing a driver UUID
+
+} ze_driver_uuid_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Driver properties queried using ::zeDriverGetProperties
+typedef struct _ze_driver_properties_t
+{
+ ze_structure_type_t stype; ///< [in] type of this structure
+ void* pNext; ///< [in,out][optional] pointer to extension-specific structure
+ ze_driver_uuid_t uuid; ///< [out] universal unique identifier.
+ uint32_t driverVersion; ///< [out] driver version
+ ///< The driver version is a non-zero, monotonically increasing value where
+ ///< higher values always indicate a more recent version.
+
+} ze_driver_properties_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Retrieves properties of the driver.
+///
+/// @details
+/// - The application may call this function from simultaneous threads.
+/// - The implementation of this function should be lock-free.
+///
+/// @remarks
+/// _Analogues_
+/// - **clGetPlatformInfo**
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hDriver`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == pDriverProperties`
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeDriverGetProperties(
+ ze_driver_handle_t hDriver, ///< [in] handle of the driver instance
+ ze_driver_properties_t* pDriverProperties ///< [in,out] query result for driver properties
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Supported IPC property flags
+typedef uint32_t ze_ipc_property_flags_t;
+typedef enum _ze_ipc_property_flag_t
+{
+ ZE_IPC_PROPERTY_FLAG_MEMORY = ZE_BIT(0), ///< Supports passing memory allocations between processes. See
+ ///< ::zeMemGetIpcHandle.
+ ZE_IPC_PROPERTY_FLAG_EVENT_POOL = ZE_BIT(1), ///< Supports passing event pools between processes. See
+ ///< ::zeEventPoolGetIpcHandle.
+ ZE_IPC_PROPERTY_FLAG_FORCE_UINT32 = 0x7fffffff
+
+} ze_ipc_property_flag_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief IPC properties queried using ::zeDriverGetIpcProperties
+typedef struct _ze_driver_ipc_properties_t
+{
+ ze_structure_type_t stype; ///< [in] type of this structure
+ void* pNext; ///< [in,out][optional] pointer to extension-specific structure
+ ze_ipc_property_flags_t flags; ///< [out] 0 (none) or a valid combination of ::ze_ipc_property_flag_t
+
+} ze_driver_ipc_properties_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Retrieves IPC attributes of the driver
+///
+/// @details
+/// - The application may call this function from simultaneous threads.
+/// - The implementation of this function should be lock-free.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hDriver`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == pIpcProperties`
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeDriverGetIpcProperties(
+ ze_driver_handle_t hDriver, ///< [in] handle of the driver instance
+ ze_driver_ipc_properties_t* pIpcProperties ///< [out] query result for IPC properties
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+#ifndef ZE_MAX_EXTENSION_NAME
+/// @brief Maximum extension name string size
+#define ZE_MAX_EXTENSION_NAME 256
+#endif // ZE_MAX_EXTENSION_NAME
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Extension properties queried using ::zeDriverGetExtensionProperties
+typedef struct _ze_driver_extension_properties_t
+{
+ char name[ZE_MAX_EXTENSION_NAME]; ///< [out] extension name
+ uint32_t version; ///< [out] extension version using ::ZE_MAKE_VERSION
+
+} ze_driver_extension_properties_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Retrieves extension properties
+///
+/// @details
+/// - The application may call this function from simultaneous threads.
+/// - The implementation of this function should be lock-free.
+///
+/// @remarks
+/// _Analogues_
+/// - **vkEnumerateInstanceExtensionProperties**
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hDriver`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == pCount`
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeDriverGetExtensionProperties(
+ ze_driver_handle_t hDriver, ///< [in] handle of the driver instance
+ uint32_t* pCount, ///< [in,out] pointer to the number of extension properties.
+ ///< if count is zero, then the driver will update the value with the total
+ ///< number of extension properties available.
+ ///< if count is non-zero, then driver will only retrieve that number of
+ ///< extension properties.
+ ///< if count is larger than the number of extension properties available,
+ ///< then the driver will update the value with the correct number of
+ ///< extension properties available.
+ ze_driver_extension_properties_t* pExtensionProperties ///< [in,out][optional][range(0, *pCount)] array of query results for
+ ///< extension properties
+ );
+
+#if !defined(__GNUC__)
+#pragma endregion
+#endif
+// Intel 'oneAPI' Level-Zero APIs for Device
+#if !defined(__GNUC__)
+#pragma region device
+#endif
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Retrieves devices within a driver
+///
+/// @details
+/// - Multiple calls to this function will return identical device handles,
+/// in the same order.
+/// - The number and order of handles returned from this function is
+/// affected by the ::ZE_AFFINITY_MASK and ::ZE_ENABLE_PCI_ID_DEVICE_ORDER
+/// environment variables.
+/// - The application may call this function from simultaneous threads.
+/// - The implementation of this function should be lock-free.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hDriver`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == pCount`
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeDeviceGet(
+ ze_driver_handle_t hDriver, ///< [in] handle of the driver instance
+ uint32_t* pCount, ///< [in,out] pointer to the number of devices.
+ ///< if count is zero, then the driver will update the value with the total
+ ///< number of devices available.
+ ///< if count is non-zero, then driver will only retrieve that number of devices.
+ ///< if count is larger than the number of devices available, then the
+ ///< driver will update the value with the correct number of devices available.
+ ze_device_handle_t* phDevices ///< [in,out][optional][range(0, *pCount)] array of handle of devices
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Retrieves a sub-device from a device
+///
+/// @details
+/// - Multiple calls to this function will return identical device handles,
+/// in the same order.
+/// - The number of handles returned from this function is affected by the
+/// ::ZE_AFFINITY_MASK environment variable.
+/// - The application may call this function from simultaneous threads.
+/// - The implementation of this function should be lock-free.
+///
+/// @remarks
+/// _Analogues_
+/// - clCreateSubDevices
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hDevice`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == pCount`
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeDeviceGetSubDevices(
+ ze_device_handle_t hDevice, ///< [in] handle of the device object
+ uint32_t* pCount, ///< [in,out] pointer to the number of sub-devices.
+ ///< if count is zero, then the driver will update the value with the total
+ ///< number of sub-devices available.
+ ///< if count is non-zero, then driver will only retrieve that number of sub-devices.
+ ///< if count is larger than the number of sub-devices available, then the
+ ///< driver will update the value with the correct number of sub-devices available.
+ ze_device_handle_t* phSubdevices ///< [in,out][optional][range(0, *pCount)] array of handle of sub-devices
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Supported device types
+typedef enum _ze_device_type_t
+{
+ ZE_DEVICE_TYPE_GPU = 1, ///< Graphics Processing Unit
+ ZE_DEVICE_TYPE_CPU = 2, ///< Central Processing Unit
+ ZE_DEVICE_TYPE_FPGA = 3, ///< Field Programmable Gate Array
+ ZE_DEVICE_TYPE_MCA = 4, ///< Memory Copy Accelerator
+ ZE_DEVICE_TYPE_FORCE_UINT32 = 0x7fffffff
+
+} ze_device_type_t;
+
+///////////////////////////////////////////////////////////////////////////////
+#ifndef ZE_MAX_DEVICE_UUID_SIZE
+/// @brief Maximum device universal unique id (UUID) size in bytes
+#define ZE_MAX_DEVICE_UUID_SIZE 16
+#endif // ZE_MAX_DEVICE_UUID_SIZE
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Device universal unique id (UUID)
+typedef struct _ze_device_uuid_t
+{
+ uint8_t id[ZE_MAX_DEVICE_UUID_SIZE]; ///< [out] opaque data representing a device UUID
+
+} ze_device_uuid_t;
+
+///////////////////////////////////////////////////////////////////////////////
+#ifndef ZE_MAX_DEVICE_NAME
+/// @brief Maximum device name string size
+#define ZE_MAX_DEVICE_NAME 256
+#endif // ZE_MAX_DEVICE_NAME
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Supported device property flags
+typedef uint32_t ze_device_property_flags_t;
+typedef enum _ze_device_property_flag_t
+{
+ ZE_DEVICE_PROPERTY_FLAG_INTEGRATED = ZE_BIT(0), ///< Device is integrated with the Host.
+ ZE_DEVICE_PROPERTY_FLAG_SUBDEVICE = ZE_BIT(1), ///< Device handle used for query represents a sub-device.
+ ZE_DEVICE_PROPERTY_FLAG_ECC = ZE_BIT(2), ///< Device supports error correction memory access.
+ ZE_DEVICE_PROPERTY_FLAG_ONDEMANDPAGING = ZE_BIT(3), ///< Device supports on-demand page-faulting.
+ ZE_DEVICE_PROPERTY_FLAG_FORCE_UINT32 = 0x7fffffff
+
+} ze_device_property_flag_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Device properties queried using ::zeDeviceGetProperties
+typedef struct _ze_device_properties_t
+{
+ ze_structure_type_t stype; ///< [in] type of this structure
+ void* pNext; ///< [in,out][optional] pointer to extension-specific structure
+ ze_device_type_t type; ///< [out] generic device type
+ uint32_t vendorId; ///< [out] vendor id from PCI configuration
+ uint32_t deviceId; ///< [out] device id from PCI configuration
+ ze_device_property_flags_t flags; ///< [out] 0 (none) or a valid combination of ::ze_device_property_flag_t
+ uint32_t subdeviceId; ///< [out] sub-device id. Only valid if ::ZE_DEVICE_PROPERTY_FLAG_SUBDEVICE
+ ///< is set.
+ uint32_t coreClockRate; ///< [out] Clock rate for device core.
+ uint64_t maxMemAllocSize; ///< [out] Maximum memory allocation size.
+ uint32_t maxHardwareContexts; ///< [out] Maximum number of logical hardware contexts.
+ uint32_t maxCommandQueuePriority; ///< [out] Maximum priority for command queues. Higher value is higher
+ ///< priority.
+ uint32_t numThreadsPerEU; ///< [out] Number of threads per EU.
+ uint32_t physicalEUSimdWidth; ///< [out] The physical EU simd width.
+ uint32_t numEUsPerSubslice; ///< [out] Number of EUs per sub-slice.
+ uint32_t numSubslicesPerSlice; ///< [out] Number of sub-slices per slice.
+ uint32_t numSlices; ///< [out] Number of slices.
+ uint64_t timerResolution; ///< [out] Returns the resolution of device timer in nanoseconds used for
+ ///< profiling, timestamps, etc.
+ uint32_t timestampValidBits; ///< [out] Returns the number of valid bits in the timestamp value.
+ uint32_t kernelTimestampValidBits; ///< [out] Returns the number of valid bits in the kernel timestamp values
+ ze_device_uuid_t uuid; ///< [out] universal unique identifier. Note: Subdevices will have their
+ ///< own uuid.
+ char name[ZE_MAX_DEVICE_NAME]; ///< [out] Device name
+
+} ze_device_properties_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Device thread identifier.
+typedef struct _ze_device_thread_t
+{
+ uint32_t slice; ///< [in,out] the slice number.
+ ///< Must be UINT32_MAX (all) or less than ::ze_device_properties_t.numSlices.
+ uint32_t subslice; ///< [in,out] the sub-slice number within its slice.
+ ///< Must be UINT32_MAX (all) or less than ::ze_device_properties_t.numSubslicesPerSlice.
+ uint32_t eu; ///< [in,out] the EU number within its sub-slice.
+ ///< Must be UINT32_MAX (all) or less than ::ze_device_properties_t.numEUsPerSubslice.
+ uint32_t thread; ///< [in,out] the thread number within its EU.
+ ///< Must be UINT32_MAX (all) or less than ::ze_device_properties_t.numThreadsPerEU.
+
+} ze_device_thread_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Retrieves properties of the device.
+///
+/// @details
+/// - The application may call this function from simultaneous threads.
+/// - The implementation of this function should be lock-free.
+///
+/// @remarks
+/// _Analogues_
+/// - clGetDeviceInfo
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hDevice`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == pDeviceProperties`
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeDeviceGetProperties(
+ ze_device_handle_t hDevice, ///< [in] handle of the device
+ ze_device_properties_t* pDeviceProperties ///< [in,out] query result for device properties
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+#ifndef ZE_SUBGROUPSIZE_COUNT
+/// @brief Maximum number of subgroup sizes supported.
+#define ZE_SUBGROUPSIZE_COUNT 8
+#endif // ZE_SUBGROUPSIZE_COUNT
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Device compute properties queried using ::zeDeviceGetComputeProperties
+typedef struct _ze_device_compute_properties_t
+{
+ ze_structure_type_t stype; ///< [in] type of this structure
+ void* pNext; ///< [in,out][optional] pointer to extension-specific structure
+ uint32_t maxTotalGroupSize; ///< [out] Maximum items per compute group. (groupSizeX * groupSizeY *
+ ///< groupSizeZ) <= maxTotalGroupSize
+ uint32_t maxGroupSizeX; ///< [out] Maximum items for X dimension in group
+ uint32_t maxGroupSizeY; ///< [out] Maximum items for Y dimension in group
+ uint32_t maxGroupSizeZ; ///< [out] Maximum items for Z dimension in group
+ uint32_t maxGroupCountX; ///< [out] Maximum groups that can be launched for x dimension
+ uint32_t maxGroupCountY; ///< [out] Maximum groups that can be launched for y dimension
+ uint32_t maxGroupCountZ; ///< [out] Maximum groups that can be launched for z dimension
+ uint32_t maxSharedLocalMemory; ///< [out] Maximum shared local memory per group.
+ uint32_t numSubGroupSizes; ///< [out] Number of subgroup sizes supported. This indicates number of
+ ///< entries in subGroupSizes.
+ uint32_t subGroupSizes[ZE_SUBGROUPSIZE_COUNT]; ///< [out] Size group sizes supported.
+
+} ze_device_compute_properties_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Retrieves compute properties of the device.
+///
+/// @details
+/// - The application may call this function from simultaneous threads.
+/// - The implementation of this function should be lock-free.
+///
+/// @remarks
+/// _Analogues_
+/// - clGetDeviceInfo
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hDevice`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == pComputeProperties`
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeDeviceGetComputeProperties(
+ ze_device_handle_t hDevice, ///< [in] handle of the device
+ ze_device_compute_properties_t* pComputeProperties ///< [in,out] query result for compute properties
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+#ifndef ZE_MAX_NATIVE_KERNEL_UUID_SIZE
+/// @brief Maximum native kernel universal unique id (UUID) size in bytes
+#define ZE_MAX_NATIVE_KERNEL_UUID_SIZE 16
+#endif // ZE_MAX_NATIVE_KERNEL_UUID_SIZE
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Native kernel universal unique id (UUID)
+typedef struct _ze_native_kernel_uuid_t
+{
+ uint8_t id[ZE_MAX_NATIVE_KERNEL_UUID_SIZE]; ///< [out] opaque data representing a native kernel UUID
+
+} ze_native_kernel_uuid_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Supported device module flags
+typedef uint32_t ze_device_module_flags_t;
+typedef enum _ze_device_module_flag_t
+{
+ ZE_DEVICE_MODULE_FLAG_FP16 = ZE_BIT(0), ///< Device supports 16-bit floating-point operations
+ ZE_DEVICE_MODULE_FLAG_FP64 = ZE_BIT(1), ///< Device supports 64-bit floating-point operations
+ ZE_DEVICE_MODULE_FLAG_INT64_ATOMICS = ZE_BIT(2),///< Device supports 64-bit atomic operations
+ ZE_DEVICE_MODULE_FLAG_DP4A = ZE_BIT(3), ///< Device supports four component dot product and accumulate operations
+ ZE_DEVICE_MODULE_FLAG_FORCE_UINT32 = 0x7fffffff
+
+} ze_device_module_flag_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Supported floating-Point capability flags
+typedef uint32_t ze_device_fp_flags_t;
+typedef enum _ze_device_fp_flag_t
+{
+ ZE_DEVICE_FP_FLAG_DENORM = ZE_BIT(0), ///< Supports denorms
+ ZE_DEVICE_FP_FLAG_INF_NAN = ZE_BIT(1), ///< Supports INF and quiet NaNs
+ ZE_DEVICE_FP_FLAG_ROUND_TO_NEAREST = ZE_BIT(2), ///< Supports rounding to nearest even rounding mode
+ ZE_DEVICE_FP_FLAG_ROUND_TO_ZERO = ZE_BIT(3), ///< Supports rounding to zero.
+ ZE_DEVICE_FP_FLAG_ROUND_TO_INF = ZE_BIT(4), ///< Supports rounding to both positive and negative INF.
+ ZE_DEVICE_FP_FLAG_FMA = ZE_BIT(5), ///< Supports IEEE754-2008 fused multiply-add.
+ ZE_DEVICE_FP_FLAG_ROUNDED_DIVIDE_SQRT = ZE_BIT(6), ///< Supports rounding as defined by IEEE754 for divide and sqrt
+ ///< operations.
+ ZE_DEVICE_FP_FLAG_SOFT_FLOAT = ZE_BIT(7), ///< Uses software implementation for basic floating-point operations.
+ ZE_DEVICE_FP_FLAG_FORCE_UINT32 = 0x7fffffff
+
+} ze_device_fp_flag_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Device module properties queried using ::zeDeviceGetModuleProperties
+typedef struct _ze_device_module_properties_t
+{
+ ze_structure_type_t stype; ///< [in] type of this structure
+ void* pNext; ///< [in,out][optional] pointer to extension-specific structure
+ uint32_t spirvVersionSupported; ///< [out] Maximum supported SPIR-V version.
+ ///< Returns zero if SPIR-V is not supported.
+ ///< Contains major and minor attributes, use ::ZE_MAJOR_VERSION and ::ZE_MINOR_VERSION.
+ ze_device_module_flags_t flags; ///< [out] 0 or a valid combination of ::ze_device_module_flag_t
+ ze_device_fp_flags_t fp16flags; ///< [out] Capabilities for half-precision floating-point operations.
+ ///< returns 0 (if ::ZE_DEVICE_MODULE_FLAG_FP16 is not set) or a
+ ///< combination of ::ze_device_fp_flag_t.
+ ze_device_fp_flags_t fp32flags; ///< [out] Capabilities for single-precision floating-point operations.
+ ///< returns a combination of ::ze_device_fp_flag_t.
+ ze_device_fp_flags_t fp64flags; ///< [out] Capabilities for double-precision floating-point operations.
+ ///< returns 0 (if ::ZE_DEVICE_MODULE_FLAG_FP64 is not set) or a
+ ///< combination of ::ze_device_fp_flag_t.
+ uint32_t maxArgumentsSize; ///< [out] Maximum kernel argument size that is supported.
+ uint32_t printfBufferSize; ///< [out] Maximum size of internal buffer that holds output of printf
+ ///< calls from kernel.
+ ze_native_kernel_uuid_t nativeKernelSupported; ///< [out] Compatibility UUID of supported native kernel.
+ ///< UUID may or may not be the same across driver release, devices, or
+ ///< operating systems.
+ ///< Application is responsible for ensuring UUID matches before creating
+ ///< module using
+ ///< previously created native kernel.
+
+} ze_device_module_properties_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Retrieves module properties of the device
+///
+/// @details
+/// - The application may call this function from simultaneous threads.
+/// - The implementation of this function should be lock-free.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hDevice`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == pModuleProperties`
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeDeviceGetModuleProperties(
+ ze_device_handle_t hDevice, ///< [in] handle of the device
+ ze_device_module_properties_t* pModuleProperties///< [in,out] query result for module properties
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Supported command queue group property flags
+typedef uint32_t ze_command_queue_group_property_flags_t;
+typedef enum _ze_command_queue_group_property_flag_t
+{
+ ZE_COMMAND_QUEUE_GROUP_PROPERTY_FLAG_COMPUTE = ZE_BIT(0), ///< Command queue group supports enqueing compute commands.
+ ZE_COMMAND_QUEUE_GROUP_PROPERTY_FLAG_COPY = ZE_BIT(1), ///< Command queue group supports enqueing copy commands.
+ ZE_COMMAND_QUEUE_GROUP_PROPERTY_FLAG_COOPERATIVE_KERNELS = ZE_BIT(2), ///< Command queue group supports cooperative kernels.
+ ///< See ::zeCommandListAppendLaunchCooperativeKernel for more details.
+ ZE_COMMAND_QUEUE_GROUP_PROPERTY_FLAG_METRICS = ZE_BIT(3), ///< Command queue groups supports metric streamers and queries.
+ ZE_COMMAND_QUEUE_GROUP_PROPERTY_FLAG_FORCE_UINT32 = 0x7fffffff
+
+} ze_command_queue_group_property_flag_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Command queue group properties queried using
+/// ::zeDeviceGetCommandQueueGroupProperties
+typedef struct _ze_command_queue_group_properties_t
+{
+ ze_structure_type_t stype; ///< [in] type of this structure
+ void* pNext; ///< [in,out][optional] pointer to extension-specific structure
+ ze_command_queue_group_property_flags_t flags; ///< [out] 0 (none) or a valid combination of
+ ///< ::ze_command_queue_group_property_flag_t
+ size_t maxMemoryFillPatternSize; ///< [out] maximum `pattern_size` supported by command queue group.
+ ///< See ::zeCommandListAppendMemoryFill for more details.
+ uint32_t numQueues; ///< [out] the number of physical command queues within the group.
+
+} ze_command_queue_group_properties_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Retrieves command queue group properties of the device.
+///
+/// @details
+/// - Properties are reported for each physical command queue type supported
+/// by the device.
+/// - Multiple calls to this function will return properties in the same
+/// order.
+/// - The order in which the properties are returned defines the command
+/// queue group's ordinal.
+/// - The application may call this function from simultaneous threads.
+/// - The implementation of this function should be lock-free.
+///
+/// @remarks
+/// _Analogues_
+/// - **vkGetPhysicalDeviceQueueFamilyProperties**
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hDevice`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == pCount`
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeDeviceGetCommandQueueGroupProperties(
+ ze_device_handle_t hDevice, ///< [in] handle of the device
+ uint32_t* pCount, ///< [in,out] pointer to the number of command queue group properties.
+ ///< if count is zero, then the driver will update the value with the total
+ ///< number of command queue group properties available.
+ ///< if count is non-zero, then driver will only retrieve that number of
+ ///< command queue group properties.
+ ///< if count is larger than the number of command queue group properties
+ ///< available, then the driver will update the value with the correct
+ ///< number of command queue group properties available.
+ ze_command_queue_group_properties_t* pCommandQueueGroupProperties ///< [in,out][optional][range(0, *pCount)] array of query results for
+ ///< command queue group properties
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Supported device memory property flags
+typedef uint32_t ze_device_memory_property_flags_t;
+typedef enum _ze_device_memory_property_flag_t
+{
+ ZE_DEVICE_MEMORY_PROPERTY_FLAG_TBD = ZE_BIT(0), ///< reserved for future use
+ ZE_DEVICE_MEMORY_PROPERTY_FLAG_FORCE_UINT32 = 0x7fffffff
+
+} ze_device_memory_property_flag_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Device local memory properties queried using
+/// ::zeDeviceGetMemoryProperties
+typedef struct _ze_device_memory_properties_t
+{
+ ze_structure_type_t stype; ///< [in] type of this structure
+ void* pNext; ///< [in,out][optional] pointer to extension-specific structure
+ ze_device_memory_property_flags_t flags; ///< [out] 0 (none) or a valid combination of
+ ///< ::ze_device_memory_property_flag_t
+ uint32_t maxClockRate; ///< [out] Maximum clock rate for device memory.
+ uint32_t maxBusWidth; ///< [out] Maximum bus width between device and memory.
+ uint64_t totalSize; ///< [out] Total memory size in bytes that is available to the device.
+ char name[ZE_MAX_DEVICE_NAME]; ///< [out] Memory name
+
+} ze_device_memory_properties_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Retrieves local memory properties of the device.
+///
+/// @details
+/// - Properties are reported for each physical memory type supported by the
+/// device.
+/// - Multiple calls to this function will return properties in the same
+/// order.
+/// - The order in which the properties are returned defines the device's
+/// local memory ordinal.
+/// - The application may call this function from simultaneous threads.
+/// - The implementation of this function should be lock-free.
+///
+/// @remarks
+/// _Analogues_
+/// - clGetDeviceInfo
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hDevice`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == pCount`
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeDeviceGetMemoryProperties(
+ ze_device_handle_t hDevice, ///< [in] handle of the device
+ uint32_t* pCount, ///< [in,out] pointer to the number of memory properties.
+ ///< if count is zero, then the driver will update the value with the total
+ ///< number of memory properties available.
+ ///< if count is non-zero, then driver will only retrieve that number of
+ ///< memory properties.
+ ///< if count is larger than the number of memory properties available,
+ ///< then the driver will update the value with the correct number of
+ ///< memory properties available.
+ ze_device_memory_properties_t* pMemProperties ///< [in,out][optional][range(0, *pCount)] array of query results for
+ ///< memory properties
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Memory access capability flags
+///
+/// @details
+/// - Supported access capabilities for different types of memory
+/// allocations
+typedef uint32_t ze_memory_access_cap_flags_t;
+typedef enum _ze_memory_access_cap_flag_t
+{
+ ZE_MEMORY_ACCESS_CAP_FLAG_RW = ZE_BIT(0), ///< Supports load/store access
+ ZE_MEMORY_ACCESS_CAP_FLAG_ATOMIC = ZE_BIT(1), ///< Supports atomic access
+ ZE_MEMORY_ACCESS_CAP_FLAG_CONCURRENT = ZE_BIT(2), ///< Supports concurrent access
+ ZE_MEMORY_ACCESS_CAP_FLAG_CONCURRENT_ATOMIC = ZE_BIT(3),///< Supports concurrent atomic access
+ ZE_MEMORY_ACCESS_CAP_FLAG_FORCE_UINT32 = 0x7fffffff
+
+} ze_memory_access_cap_flag_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Device memory access properties queried using
+/// ::zeDeviceGetMemoryAccessProperties
+typedef struct _ze_device_memory_access_properties_t
+{
+ ze_structure_type_t stype; ///< [in] type of this structure
+ void* pNext; ///< [in,out][optional] pointer to extension-specific structure
+ ze_memory_access_cap_flags_t hostAllocCapabilities; ///< [out] host memory capabilities.
+ ///< returns 0 (unsupported) or a combination of ::ze_memory_access_cap_flag_t.
+ ze_memory_access_cap_flags_t deviceAllocCapabilities; ///< [out] device memory capabilities.
+ ///< returns 0 (unsupported) or a combination of ::ze_memory_access_cap_flag_t.
+ ze_memory_access_cap_flags_t sharedSingleDeviceAllocCapabilities; ///< [out] shared, single-device memory capabilities.
+ ///< returns 0 (unsupported) or a combination of ::ze_memory_access_cap_flag_t.
+ ze_memory_access_cap_flags_t sharedCrossDeviceAllocCapabilities;///< [out] shared, cross-device memory capabilities.
+ ///< returns 0 (unsupported) or a combination of ::ze_memory_access_cap_flag_t.
+ ze_memory_access_cap_flags_t sharedSystemAllocCapabilities; ///< [out] shared, system memory capabilities.
+ ///< returns 0 (unsupported) or a combination of ::ze_memory_access_cap_flag_t.
+
+} ze_device_memory_access_properties_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Retrieves memory access properties of the device.
+///
+/// @details
+/// - The application may call this function from simultaneous threads.
+/// - The implementation of this function should be lock-free.
+///
+/// @remarks
+/// _Analogues_
+/// - clGetDeviceInfo
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hDevice`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == pMemAccessProperties`
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeDeviceGetMemoryAccessProperties(
+ ze_device_handle_t hDevice, ///< [in] handle of the device
+ ze_device_memory_access_properties_t* pMemAccessProperties ///< [in,out] query result for memory access properties
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Supported cache control property flags
+typedef uint32_t ze_device_cache_property_flags_t;
+typedef enum _ze_device_cache_property_flag_t
+{
+ ZE_DEVICE_CACHE_PROPERTY_FLAG_USER_CONTROL = ZE_BIT(0), ///< Device support User Cache Control (i.e. SLM section vs Generic Cache)
+ ZE_DEVICE_CACHE_PROPERTY_FLAG_FORCE_UINT32 = 0x7fffffff
+
+} ze_device_cache_property_flag_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Device cache properties queried using ::zeDeviceGetCacheProperties
+typedef struct _ze_device_cache_properties_t
+{
+ ze_structure_type_t stype; ///< [in] type of this structure
+ void* pNext; ///< [in,out][optional] pointer to extension-specific structure
+ ze_device_cache_property_flags_t flags; ///< [out] 0 (none) or a valid combination of
+ ///< ::ze_device_cache_property_flag_t
+ size_t cacheSize; ///< [out] Per-cache size, in bytes
+
+} ze_device_cache_properties_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Retrieves cache properties of the device
+///
+/// @details
+/// - The application may call this function from simultaneous threads.
+/// - The implementation of this function should be lock-free.
+///
+/// @remarks
+/// _Analogues_
+/// - clGetDeviceInfo
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hDevice`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == pCount`
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeDeviceGetCacheProperties(
+ ze_device_handle_t hDevice, ///< [in] handle of the device
+ uint32_t* pCount, ///< [in,out] pointer to the number of cache properties.
+ ///< if count is zero, then the driver will update the value with the total
+ ///< number of cache properties available.
+ ///< if count is non-zero, then driver will only retrieve that number of
+ ///< cache properties.
+ ///< if count is larger than the number of cache properties available, then
+ ///< the driver will update the value with the correct number of cache
+ ///< properties available.
+ ze_device_cache_properties_t* pCacheProperties ///< [in,out][optional][range(0, *pCount)] array of query results for cache
+ ///< properties
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Device image properties queried using ::zeDeviceGetImageProperties
+typedef struct _ze_device_image_properties_t
+{
+ ze_structure_type_t stype; ///< [in] type of this structure
+ void* pNext; ///< [in,out][optional] pointer to extension-specific structure
+ uint32_t maxImageDims1D; ///< [out] Maximum image dimensions for 1D resources. if 0, then 1D images
+ ///< are unsupported.
+ uint32_t maxImageDims2D; ///< [out] Maximum image dimensions for 2D resources. if 0, then 2D images
+ ///< are unsupported.
+ uint32_t maxImageDims3D; ///< [out] Maximum image dimensions for 3D resources. if 0, then 3D images
+ ///< are unsupported.
+ uint64_t maxImageBufferSize; ///< [out] Maximum image buffer size in bytes. if 0, then buffer images are
+ ///< unsupported.
+ uint32_t maxImageArraySlices; ///< [out] Maximum image array slices. if 0, then image arrays are
+ ///< unsupported.
+ uint32_t maxSamplers; ///< [out] Max samplers that can be used in kernel. if 0, then sampling is
+ ///< unsupported.
+ uint32_t maxReadImageArgs; ///< [out] Returns the maximum number of simultaneous image objects that
+ ///< can be read from by a kernel. if 0, then reading images is
+ ///< unsupported.
+ uint32_t maxWriteImageArgs; ///< [out] Returns the maximum number of simultaneous image objects that
+ ///< can be written to by a kernel. if 0, then writing images is
+ ///< unsupported.
+
+} ze_device_image_properties_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Retrieves image properties of the device
+///
+/// @details
+/// - See ::zeImageGetProperties for format-specific capabilities.
+/// - The application may call this function from simultaneous threads.
+/// - The implementation of this function should be lock-free.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hDevice`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == pImageProperties`
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeDeviceGetImageProperties(
+ ze_device_handle_t hDevice, ///< [in] handle of the device
+ ze_device_image_properties_t* pImageProperties ///< [in,out] query result for image properties
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Device external memory import and export properties
+typedef struct _ze_device_external_memory_properties_t
+{
+ ze_structure_type_t stype; ///< [in] type of this structure
+ void* pNext; ///< [in,out][optional] pointer to extension-specific structure
+ ze_external_memory_type_flags_t memoryAllocationImportTypes;///< [out] Supported external memory import types for memory allocations.
+ ze_external_memory_type_flags_t memoryAllocationExportTypes;///< [out] Supported external memory export types for memory allocations.
+ ze_external_memory_type_flags_t imageImportTypes; ///< [out] Supported external memory import types for images.
+ ze_external_memory_type_flags_t imageExportTypes; ///< [out] Supported external memory export types for images.
+
+} ze_device_external_memory_properties_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Retrieves external memory import and export of the device
+///
+/// @details
+/// - The application may call this function from simultaneous threads.
+/// - The implementation of this function should be lock-free.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hDevice`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == pExternalMemoryProperties`
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeDeviceGetExternalMemoryProperties(
+ ze_device_handle_t hDevice, ///< [in] handle of the device
+ ze_device_external_memory_properties_t* pExternalMemoryProperties ///< [in,out] query result for external memory properties
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Supported device peer-to-peer property flags
+typedef uint32_t ze_device_p2p_property_flags_t;
+typedef enum _ze_device_p2p_property_flag_t
+{
+ ZE_DEVICE_P2P_PROPERTY_FLAG_ACCESS = ZE_BIT(0), ///< Device supports access between peer devices.
+ ZE_DEVICE_P2P_PROPERTY_FLAG_ATOMICS = ZE_BIT(1),///< Device supports atomics between peer devices.
+ ZE_DEVICE_P2P_PROPERTY_FLAG_FORCE_UINT32 = 0x7fffffff
+
+} ze_device_p2p_property_flag_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Device peer-to-peer properties queried using
+/// ::zeDeviceGetP2PProperties
+typedef struct _ze_device_p2p_properties_t
+{
+ ze_structure_type_t stype; ///< [in] type of this structure
+ void* pNext; ///< [in,out][optional] pointer to extension-specific structure
+ ze_device_p2p_property_flags_t flags; ///< [out] 0 (none) or a valid combination of
+ ///< ::ze_device_p2p_property_flag_t
+
+} ze_device_p2p_properties_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Retrieves peer-to-peer properties between one device and a peer
+/// devices
+///
+/// @details
+/// - The application may call this function from simultaneous threads.
+/// - The implementation of this function should be lock-free.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hDevice`
+/// + `nullptr == hPeerDevice`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == pP2PProperties`
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeDeviceGetP2PProperties(
+ ze_device_handle_t hDevice, ///< [in] handle of the device performing the access
+ ze_device_handle_t hPeerDevice, ///< [in] handle of the peer device with the allocation
+ ze_device_p2p_properties_t* pP2PProperties ///< [in,out] Peer-to-Peer properties between source and peer device
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Queries if one device can directly access peer device allocations
+///
+/// @details
+/// - Any device can access any other device within a node through a
+/// scale-up fabric.
+/// - The following are conditions for CanAccessPeer query.
+/// + If both device and peer device are the same then return true.
+/// + If both sub-device and peer sub-device are the same then return
+/// true.
+/// + If both are sub-devices and share the same parent device then
+/// return true.
+/// + If both device and remote device are connected by a direct or
+/// indirect scale-up fabric or over PCIe (same root complex or shared
+/// PCIe switch) then true.
+/// + If both sub-device and remote parent device (and vice-versa) are
+/// connected by a direct or indirect scale-up fabric or over PCIe
+/// (same root complex or shared PCIe switch) then true.
+/// - The application may call this function from simultaneous threads.
+/// - The implementation of this function should be lock-free.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hDevice`
+/// + `nullptr == hPeerDevice`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == value`
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeDeviceCanAccessPeer(
+ ze_device_handle_t hDevice, ///< [in] handle of the device performing the access
+ ze_device_handle_t hPeerDevice, ///< [in] handle of the peer device with the allocation
+ ze_bool_t* value ///< [out] returned access capability
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Returns current status of the device.
+///
+/// @details
+/// - Once a device is reset, this call will update the OS handle attached
+/// to the device handle.
+/// - The application may call this function from simultaneous threads with
+/// the same device handle.
+/// - The implementation of this function must be thread-safe.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hDevice`
+/// - ::ZE_RESULT_SUCCESS
+/// + Device is available for use.
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// + Device is lost; must be reset for use.
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeDeviceGetStatus(
+ ze_device_handle_t hDevice ///< [in] handle of the device
+ );
+
+#if !defined(__GNUC__)
+#pragma endregion
+#endif
+// Intel 'oneAPI' Level-Zero APIs for Context
+#if !defined(__GNUC__)
+#pragma region context
+#endif
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Supported context creation flags
+typedef uint32_t ze_context_flags_t;
+typedef enum _ze_context_flag_t
+{
+ ZE_CONTEXT_FLAG_TBD = ZE_BIT(0), ///< reserved for future use
+ ZE_CONTEXT_FLAG_FORCE_UINT32 = 0x7fffffff
+
+} ze_context_flag_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Context descriptor
+typedef struct _ze_context_desc_t
+{
+ ze_structure_type_t stype; ///< [in] type of this structure
+ const void* pNext; ///< [in][optional] pointer to extension-specific structure
+ ze_context_flags_t flags; ///< [in] creation flags.
+ ///< must be 0 (default) or a valid combination of ::ze_context_flag_t;
+ ///< default behavior may use implicit driver-based heuristics.
+
+} ze_context_desc_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Creates a context for the driver.
+///
+/// @details
+/// - The application must only use the context for the driver which was
+/// provided during creation.
+/// - The application may call this function from simultaneous threads.
+/// - The implementation of this function must be thread-safe.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hDriver`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == desc`
+/// + `nullptr == phContext`
+/// - ::ZE_RESULT_ERROR_INVALID_ENUMERATION
+/// + `0x1 < desc->flags`
+/// - ::ZE_RESULT_ERROR_OUT_OF_HOST_MEMORY
+/// - ::ZE_RESULT_ERROR_OUT_OF_DEVICE_MEMORY
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeContextCreate(
+ ze_driver_handle_t hDriver, ///< [in] handle of the driver object
+ const ze_context_desc_t* desc, ///< [in] pointer to context descriptor
+ ze_context_handle_t* phContext ///< [out] pointer to handle of context object created
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Destroys a context.
+///
+/// @details
+/// - The application must ensure the device is not currently referencing
+/// the context before it is deleted.
+/// - The implementation of this function may immediately free all Host and
+/// Device allocations associated with this context.
+/// - The application must **not** call this function from simultaneous
+/// threads with the same context handle.
+/// - The implementation of this function must be thread-safe.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hContext`
+/// - ::ZE_RESULT_ERROR_HANDLE_OBJECT_IN_USE
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeContextDestroy(
+ ze_context_handle_t hContext ///< [in][release] handle of context object to destroy
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Returns current status of the context.
+///
+/// @details
+/// - The application may call this function from simultaneous threads with
+/// the same context handle.
+/// - The implementation of this function should be lock-free.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hContext`
+/// - ::ZE_RESULT_SUCCESS
+/// + Context is available for use.
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// + Context is invalid; due to device lost or reset.
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeContextGetStatus(
+ ze_context_handle_t hContext ///< [in] handle of context object
+ );
+
+#if !defined(__GNUC__)
+#pragma endregion
+#endif
+// Intel 'oneAPI' Level-Zero APIs for Command Queue
+#if !defined(__GNUC__)
+#pragma region cmdqueue
+#endif
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Supported command queue flags
+typedef uint32_t ze_command_queue_flags_t;
+typedef enum _ze_command_queue_flag_t
+{
+ ZE_COMMAND_QUEUE_FLAG_EXPLICIT_ONLY = ZE_BIT(0),///< command queue should be optimized for submission to a single device engine.
+ ///< driver **must** disable any implicit optimizations for distributing
+ ///< work across multiple engines.
+ ///< this flag should be used when applications want full control over
+ ///< multi-engine submission and scheduling.
+ ZE_COMMAND_QUEUE_FLAG_FORCE_UINT32 = 0x7fffffff
+
+} ze_command_queue_flag_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Supported command queue modes
+typedef enum _ze_command_queue_mode_t
+{
+ ZE_COMMAND_QUEUE_MODE_DEFAULT = 0, ///< implicit default behavior; uses driver-based heuristics
+ ZE_COMMAND_QUEUE_MODE_SYNCHRONOUS = 1, ///< Device execution always completes immediately on execute;
+ ///< Host thread is blocked using wait on implicit synchronization object
+ ZE_COMMAND_QUEUE_MODE_ASYNCHRONOUS = 2, ///< Device execution is scheduled and will complete in future;
+ ///< explicit synchronization object must be used to determine completeness
+ ZE_COMMAND_QUEUE_MODE_FORCE_UINT32 = 0x7fffffff
+
+} ze_command_queue_mode_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Supported command queue priorities
+typedef enum _ze_command_queue_priority_t
+{
+ ZE_COMMAND_QUEUE_PRIORITY_NORMAL = 0, ///< [default] normal priority
+ ZE_COMMAND_QUEUE_PRIORITY_PRIORITY_LOW = 1, ///< lower priority than normal
+ ZE_COMMAND_QUEUE_PRIORITY_PRIORITY_HIGH = 2, ///< higher priority than normal
+ ZE_COMMAND_QUEUE_PRIORITY_FORCE_UINT32 = 0x7fffffff
+
+} ze_command_queue_priority_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Command Queue descriptor
+typedef struct _ze_command_queue_desc_t
+{
+ ze_structure_type_t stype; ///< [in] type of this structure
+ const void* pNext; ///< [in][optional] pointer to extension-specific structure
+ uint32_t ordinal; ///< [in] command queue group ordinal
+ uint32_t index; ///< [in] command queue index within the group;
+ ///< must be zero if ::ZE_COMMAND_QUEUE_FLAG_EXPLICIT_ONLY is not set
+ ze_command_queue_flags_t flags; ///< [in] usage flags.
+ ///< must be 0 (default) or a valid combination of ::ze_command_queue_flag_t;
+ ///< default behavior may use implicit driver-based heuristics to balance
+ ///< latency and throughput.
+ ze_command_queue_mode_t mode; ///< [in] operation mode
+ ze_command_queue_priority_t priority; ///< [in] priority
+
+} ze_command_queue_desc_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Creates a command queue on the context.
+///
+/// @details
+/// - A command queue represents a logical input stream to the device, tied
+/// to a physical input stream.
+/// - The application must only use the command queue for the device, or its
+/// sub-devices, which was provided during creation.
+/// - The application may call this function from simultaneous threads.
+/// - The implementation of this function must be thread-safe.
+///
+/// @remarks
+/// _Analogues_
+/// - **clCreateCommandQueue**
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hContext`
+/// + `nullptr == hDevice`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == desc`
+/// + `nullptr == phCommandQueue`
+/// - ::ZE_RESULT_ERROR_INVALID_ENUMERATION
+/// + `0x1 < desc->flags`
+/// + `::ZE_COMMAND_QUEUE_MODE_ASYNCHRONOUS < desc->mode`
+/// + `::ZE_COMMAND_QUEUE_PRIORITY_PRIORITY_HIGH < desc->priority`
+/// - ::ZE_RESULT_ERROR_OUT_OF_HOST_MEMORY
+/// - ::ZE_RESULT_ERROR_OUT_OF_DEVICE_MEMORY
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeCommandQueueCreate(
+ ze_context_handle_t hContext, ///< [in] handle of the context object
+ ze_device_handle_t hDevice, ///< [in] handle of the device object
+ const ze_command_queue_desc_t* desc, ///< [in] pointer to command queue descriptor
+ ze_command_queue_handle_t* phCommandQueue ///< [out] pointer to handle of command queue object created
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Destroys a command queue.
+///
+/// @details
+/// - The application must destroy all fence handles created from the
+/// command queue before destroying the command queue itself
+/// - The application must ensure the device is not currently referencing
+/// the command queue before it is deleted
+/// - The implementation of this function may immediately free all Host and
+/// Device allocations associated with this command queue
+/// - The application must **not** call this function from simultaneous
+/// threads with the same command queue handle.
+/// - The implementation of this function must be thread-safe.
+///
+/// @remarks
+/// _Analogues_
+/// - **clReleaseCommandQueue**
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hCommandQueue`
+/// - ::ZE_RESULT_ERROR_HANDLE_OBJECT_IN_USE
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeCommandQueueDestroy(
+ ze_command_queue_handle_t hCommandQueue ///< [in][release] handle of command queue object to destroy
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Executes a command list in a command queue.
+///
+/// @details
+/// - The application must ensure the command lists are accessible by the
+/// device on which the command queue was created.
+/// - The application must only execute command lists created with an
+/// identical command queue group ordinal to the command queue.
+/// - The application must use a fence created using the same command queue.
+/// - The application must ensure the command queue, command list and fence
+/// were created on the same context.
+/// - The application may call this function from simultaneous threads.
+/// - The implementation of this function should be lock-free.
+///
+/// @remarks
+/// _Analogues_
+/// - vkQueueSubmit
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hCommandQueue`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == phCommandLists`
+/// - ::ZE_RESULT_ERROR_INVALID_SIZE
+/// + `0 == numCommandLists`
+/// - ::ZE_RESULT_ERROR_INVALID_COMMAND_LIST_TYPE
+/// - ::ZE_RESULT_ERROR_INVALID_SYNCHRONIZATION_OBJECT
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeCommandQueueExecuteCommandLists(
+ ze_command_queue_handle_t hCommandQueue, ///< [in] handle of the command queue
+ uint32_t numCommandLists, ///< [in] number of command lists to execute
+ ze_command_list_handle_t* phCommandLists, ///< [in][range(0, numCommandLists)] list of handles of the command lists
+ ///< to execute
+ ze_fence_handle_t hFence ///< [in][optional] handle of the fence to signal on completion
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Synchronizes a command queue by waiting on the host.
+///
+/// @details
+/// - The application may call this function from simultaneous threads.
+/// - The implementation of this function should be lock-free.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hCommandQueue`
+/// - ::ZE_RESULT_NOT_READY
+/// + timeout expired
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeCommandQueueSynchronize(
+ ze_command_queue_handle_t hCommandQueue, ///< [in] handle of the command queue
+ uint64_t timeout ///< [in] if non-zero, then indicates the maximum time (in nanoseconds) to
+ ///< yield before returning ::ZE_RESULT_SUCCESS or ::ZE_RESULT_NOT_READY;
+ ///< if zero, then immediately returns the status of the command queue;
+ ///< if UINT64_MAX, then function will not return until complete or device
+ ///< is lost.
+ ///< Due to external dependencies, timeout may be rounded to the closest
+ ///< value allowed by the accuracy of those dependencies.
+ );
+
+#if !defined(__GNUC__)
+#pragma endregion
+#endif
+// Intel 'oneAPI' Level-Zero APIs for Command List
+#if !defined(__GNUC__)
+#pragma region cmdlist
+#endif
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Supported command list creation flags
+typedef uint32_t ze_command_list_flags_t;
+typedef enum _ze_command_list_flag_t
+{
+ ZE_COMMAND_LIST_FLAG_RELAXED_ORDERING = ZE_BIT(0), ///< driver may reorder commands (e.g., kernels, copies) between barriers
+ ///< and synchronization primitives.
+ ///< using this flag may increase Host overhead of ::zeCommandListClose.
+ ///< therefore, this flag should **not** be set for low-latency usage-models.
+ ZE_COMMAND_LIST_FLAG_MAXIMIZE_THROUGHPUT = ZE_BIT(1), ///< driver may perform additional optimizations that increase execution
+ ///< throughput.
+ ///< using this flag may increase Host overhead of ::zeCommandListClose and ::zeCommandQueueExecuteCommandLists.
+ ///< therefore, this flag should **not** be set for low-latency usage-models.
+ ZE_COMMAND_LIST_FLAG_EXPLICIT_ONLY = ZE_BIT(2), ///< command list should be optimized for submission to a single command
+ ///< queue and device engine.
+ ///< driver **must** disable any implicit optimizations for distributing
+ ///< work across multiple engines.
+ ///< this flag should be used when applications want full control over
+ ///< multi-engine submission and scheduling.
+ ZE_COMMAND_LIST_FLAG_FORCE_UINT32 = 0x7fffffff
+
+} ze_command_list_flag_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Command List descriptor
+typedef struct _ze_command_list_desc_t
+{
+ ze_structure_type_t stype; ///< [in] type of this structure
+ const void* pNext; ///< [in][optional] pointer to extension-specific structure
+ uint32_t commandQueueGroupOrdinal; ///< [in] command queue group ordinal to which this command list will be
+ ///< submitted
+ ze_command_list_flags_t flags; ///< [in] usage flags.
+ ///< must be 0 (default) or a valid combination of ::ze_command_list_flag_t;
+ ///< default behavior may use implicit driver-based heuristics to balance
+ ///< latency and throughput.
+
+} ze_command_list_desc_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Creates a command list on the context.
+///
+/// @details
+/// - A command list represents a sequence of commands for execution on a
+/// command queue.
+/// - The command list is created in the 'open' state.
+/// - The application must only use the command list for the device, or its
+/// sub-devices, which was provided during creation.
+/// - The application may call this function from simultaneous threads.
+/// - The implementation of this function must be thread-safe.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hContext`
+/// + `nullptr == hDevice`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == desc`
+/// + `nullptr == phCommandList`
+/// - ::ZE_RESULT_ERROR_INVALID_ENUMERATION
+/// + `0x7 < desc->flags`
+/// - ::ZE_RESULT_ERROR_OUT_OF_HOST_MEMORY
+/// - ::ZE_RESULT_ERROR_OUT_OF_DEVICE_MEMORY
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeCommandListCreate(
+ ze_context_handle_t hContext, ///< [in] handle of the context object
+ ze_device_handle_t hDevice, ///< [in] handle of the device object
+ const ze_command_list_desc_t* desc, ///< [in] pointer to command list descriptor
+ ze_command_list_handle_t* phCommandList ///< [out] pointer to handle of command list object created
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Creates an immediate command list on the context.
+///
+/// @details
+/// - An immediate command list is used for low-latency submission of
+/// commands.
+/// - An immediate command list creates an implicit command queue.
+/// - The command list is created in the 'open' state and never needs to be
+/// closed.
+/// - The application must only use the command list for the device, or its
+/// sub-devices, which was provided during creation.
+/// - The application may call this function from simultaneous threads.
+/// - The implementation of this function must be thread-safe.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hContext`
+/// + `nullptr == hDevice`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == altdesc`
+/// + `nullptr == phCommandList`
+/// - ::ZE_RESULT_ERROR_INVALID_ENUMERATION
+/// + `0x1 < altdesc->flags`
+/// + `::ZE_COMMAND_QUEUE_MODE_ASYNCHRONOUS < altdesc->mode`
+/// + `::ZE_COMMAND_QUEUE_PRIORITY_PRIORITY_HIGH < altdesc->priority`
+/// - ::ZE_RESULT_ERROR_OUT_OF_HOST_MEMORY
+/// - ::ZE_RESULT_ERROR_OUT_OF_DEVICE_MEMORY
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeCommandListCreateImmediate(
+ ze_context_handle_t hContext, ///< [in] handle of the context object
+ ze_device_handle_t hDevice, ///< [in] handle of the device object
+ const ze_command_queue_desc_t* altdesc, ///< [in] pointer to command queue descriptor
+ ze_command_list_handle_t* phCommandList ///< [out] pointer to handle of command list object created
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Destroys a command list.
+///
+/// @details
+/// - The application must ensure the device is not currently referencing
+/// the command list before it is deleted.
+/// - The implementation of this function may immediately free all Host and
+/// Device allocations associated with this command list.
+/// - The application must **not** call this function from simultaneous
+/// threads with the same command list handle.
+/// - The implementation of this function must be thread-safe.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hCommandList`
+/// - ::ZE_RESULT_ERROR_HANDLE_OBJECT_IN_USE
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeCommandListDestroy(
+ ze_command_list_handle_t hCommandList ///< [in][release] handle of command list object to destroy
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Closes a command list; ready to be executed by a command queue.
+///
+/// @details
+/// - The application must **not** call this function from simultaneous
+/// threads with the same command list handle.
+/// - The implementation of this function should be lock-free.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hCommandList`
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeCommandListClose(
+ ze_command_list_handle_t hCommandList ///< [in] handle of command list object to close
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Reset a command list to initial (empty) state; ready for appending
+/// commands.
+///
+/// @details
+/// - The application must ensure the device is not currently referencing
+/// the command list before it is reset
+/// - The application must **not** call this function from simultaneous
+/// threads with the same command list handle.
+/// - The implementation of this function should be lock-free.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hCommandList`
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeCommandListReset(
+ ze_command_list_handle_t hCommandList ///< [in] handle of command list object to reset
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Appends a memory write of the device's global timestamp value into a
+/// command list.
+///
+/// @details
+/// - The application must ensure the events are accessible by the device on
+/// which the command list was created.
+/// - The timestamp frequency can be queried from
+/// ::ze_device_properties_t.timerResolution.
+/// - The number of valid bits in the timestamp value can be queried from
+/// ::ze_device_properties_t.timestampValidBits.
+/// - The application must ensure the memory pointed to by dstptr is
+/// accessible by the device on which the command list was created.
+/// - The application must ensure the command list and events were created,
+/// and the memory was allocated, on the same context.
+/// - The application must **not** call this function from simultaneous
+/// threads with the same command list handle.
+/// - The implementation of this function should be lock-free.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hCommandList`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == dstptr`
+/// - ::ZE_RESULT_ERROR_INVALID_SYNCHRONIZATION_OBJECT
+/// - ::ZE_RESULT_ERROR_INVALID_SIZE
+/// + `(nullptr == phWaitEvents) && (0 < numWaitEvents)`
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeCommandListAppendWriteGlobalTimestamp(
+ ze_command_list_handle_t hCommandList, ///< [in] handle of the command list
+ uint64_t* dstptr, ///< [in,out] pointer to memory where timestamp value will be written; must
+ ///< be 8byte-aligned.
+ ze_event_handle_t hSignalEvent, ///< [in][optional] handle of the event to signal on completion
+ uint32_t numWaitEvents, ///< [in][optional] number of events to wait on before executing query;
+ ///< must be 0 if `nullptr == phWaitEvents`
+ ze_event_handle_t* phWaitEvents ///< [in][optional][range(0, numWaitEvents)] handle of the events to wait
+ ///< on before executing query
+ );
+
+#if !defined(__GNUC__)
+#pragma endregion
+#endif
+// Intel 'oneAPI' Level-Zero APIs for Barrier
+#if !defined(__GNUC__)
+#pragma region barrier
+#endif
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Appends an execution and global memory barrier into a command list.
+///
+/// @details
+/// - The application must ensure the events are accessible by the device on
+/// which the command list was created.
+/// - If numWaitEvents is zero, then all previous commands are completed
+/// prior to the execution of the barrier.
+/// - If numWaitEvents is non-zero, then then all phWaitEvents must be
+/// signaled prior to the execution of the barrier.
+/// - This command blocks all following commands from beginning until the
+/// execution of the barrier completes.
+/// - The application must **not** call this function from simultaneous
+/// threads with the same command list handle.
+/// - The implementation of this function should be lock-free.
+///
+/// @remarks
+/// _Analogues_
+/// - **vkCmdPipelineBarrier**
+/// - clEnqueueBarrierWithWaitList
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hCommandList`
+/// - ::ZE_RESULT_ERROR_INVALID_SYNCHRONIZATION_OBJECT
+/// - ::ZE_RESULT_ERROR_INVALID_SIZE
+/// + `(nullptr == phWaitEvents) && (0 < numWaitEvents)`
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeCommandListAppendBarrier(
+ ze_command_list_handle_t hCommandList, ///< [in] handle of the command list
+ ze_event_handle_t hSignalEvent, ///< [in][optional] handle of the event to signal on completion
+ uint32_t numWaitEvents, ///< [in][optional] number of events to wait on before executing barrier;
+ ///< must be 0 if `nullptr == phWaitEvents`
+ ze_event_handle_t* phWaitEvents ///< [in][optional][range(0, numWaitEvents)] handle of the events to wait
+ ///< on before executing barrier
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Appends a global memory ranges barrier into a command list.
+///
+/// @details
+/// - The application must ensure the events are accessible by the device on
+/// which the command list was created.
+/// - If numWaitEvents is zero, then all previous commands are completed
+/// prior to the execution of the barrier.
+/// - If numWaitEvents is non-zero, then then all phWaitEvents must be
+/// signaled prior to the execution of the barrier.
+/// - This command blocks all following commands from beginning until the
+/// execution of the barrier completes.
+/// - The application must **not** call this function from simultaneous
+/// threads with the same command list handle.
+/// - The implementation of this function should be lock-free.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hCommandList`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == pRangeSizes`
+/// + `nullptr == pRanges`
+/// - ::ZE_RESULT_ERROR_INVALID_SYNCHRONIZATION_OBJECT
+/// - ::ZE_RESULT_ERROR_INVALID_SIZE
+/// + `(nullptr == phWaitEvents) && (0 < numWaitEvents)`
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeCommandListAppendMemoryRangesBarrier(
+ ze_command_list_handle_t hCommandList, ///< [in] handle of the command list
+ uint32_t numRanges, ///< [in] number of memory ranges
+ const size_t* pRangeSizes, ///< [in][range(0, numRanges)] array of sizes of memory range
+ const void** pRanges, ///< [in][range(0, numRanges)] array of memory ranges
+ ze_event_handle_t hSignalEvent, ///< [in][optional] handle of the event to signal on completion
+ uint32_t numWaitEvents, ///< [in][optional] number of events to wait on before executing barrier;
+ ///< must be 0 if `nullptr == phWaitEvents`
+ ze_event_handle_t* phWaitEvents ///< [in][optional][range(0, numWaitEvents)] handle of the events to wait
+ ///< on before executing barrier
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Ensures in-bound writes to the device are globally observable.
+///
+/// @details
+/// - This is a special-case system level barrier that can be used to ensure
+/// global observability of writes;
+/// typically needed after a producer (e.g., NIC) performs direct writes
+/// to the device's memory (e.g., Direct RDMA writes).
+/// This is typically required when the memory corresponding to the writes
+/// is subsequently accessed from a remote device.
+/// - The application may call this function from simultaneous threads.
+/// - The implementation of this function should be lock-free.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hContext`
+/// + `nullptr == hDevice`
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeContextSystemBarrier(
+ ze_context_handle_t hContext, ///< [in] handle of context object
+ ze_device_handle_t hDevice ///< [in] handle of the device
+ );
+
+#if !defined(__GNUC__)
+#pragma endregion
+#endif
+// Intel 'oneAPI' Level-Zero APIs for Copies
+#if !defined(__GNUC__)
+#pragma region copy
+#endif
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Copies host, device, or shared memory.
+///
+/// @details
+/// - The application must ensure the memory pointed to by dstptr and srcptr
+/// is accessible by the device on which the command list was created.
+/// - The implementation must not access the memory pointed to by dstptr and
+/// srcptr as they are free to be modified by either the Host or device up
+/// until execution.
+/// - The application must ensure the events are accessible by the device on
+/// which the command list was created.
+/// - The application must ensure the command list and events were created,
+/// and the memory was allocated, on the same context.
+/// - The application must **not** call this function from simultaneous
+/// threads with the same command list handle.
+/// - The implementation of this function should be lock-free.
+///
+/// @remarks
+/// _Analogues_
+/// - **clEnqueueCopyBuffer**
+/// - **clEnqueueReadBuffer**
+/// - **clEnqueueWriteBuffer**
+/// - **clEnqueueSVMMemcpy**
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hCommandList`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == dstptr`
+/// + `nullptr == srcptr`
+/// - ::ZE_RESULT_ERROR_INVALID_SYNCHRONIZATION_OBJECT
+/// - ::ZE_RESULT_ERROR_INVALID_SIZE
+/// + `(nullptr == phWaitEvents) && (0 < numWaitEvents)`
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeCommandListAppendMemoryCopy(
+ ze_command_list_handle_t hCommandList, ///< [in] handle of command list
+ void* dstptr, ///< [in] pointer to destination memory to copy to
+ const void* srcptr, ///< [in] pointer to source memory to copy from
+ size_t size, ///< [in] size in bytes to copy
+ ze_event_handle_t hSignalEvent, ///< [in][optional] handle of the event to signal on completion
+ uint32_t numWaitEvents, ///< [in][optional] number of events to wait on before launching; must be 0
+ ///< if `nullptr == phWaitEvents`
+ ze_event_handle_t* phWaitEvents ///< [in][optional][range(0, numWaitEvents)] handle of the events to wait
+ ///< on before launching
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Initializes host, device, or shared memory.
+///
+/// @details
+/// - The application must ensure the memory pointed to by dstptr is
+/// accessible by the device on which the command list was created.
+/// - The implementation must not access the memory pointed to by dstptr as
+/// it is free to be modified by either the Host or device up until
+/// execution.
+/// - The value to initialize memory to is described by the pattern and the
+/// pattern size.
+/// - The pattern size must be a power-of-two and less than
+/// ::ze_command_queue_group_properties_t.maxMemoryFillPatternSize.
+/// - The application must ensure the events are accessible by the device on
+/// which the command list was created.
+/// - The application must enusre the command list and events were created,
+/// and the memory was allocated, on the same context.
+/// - The application must **not** call this function from simultaneous
+/// threads with the same command list handle.
+/// - The implementation of this function should be lock-free.
+///
+/// @remarks
+/// _Analogues_
+/// - **clEnqueueFillBuffer**
+/// - **clEnqueueSVMMemFill**
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hCommandList`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == ptr`
+/// + `nullptr == pattern`
+/// - ::ZE_RESULT_ERROR_INVALID_SYNCHRONIZATION_OBJECT
+/// - ::ZE_RESULT_ERROR_INVALID_SIZE
+/// + `(nullptr == phWaitEvents) && (0 < numWaitEvents)`
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeCommandListAppendMemoryFill(
+ ze_command_list_handle_t hCommandList, ///< [in] handle of command list
+ void* ptr, ///< [in] pointer to memory to initialize
+ const void* pattern, ///< [in] pointer to value to initialize memory to
+ size_t pattern_size, ///< [in] size in bytes of the value to initialize memory to
+ size_t size, ///< [in] size in bytes to initialize
+ ze_event_handle_t hSignalEvent, ///< [in][optional] handle of the event to signal on completion
+ uint32_t numWaitEvents, ///< [in][optional] number of events to wait on before launching; must be 0
+ ///< if `nullptr == phWaitEvents`
+ ze_event_handle_t* phWaitEvents ///< [in][optional][range(0, numWaitEvents)] handle of the events to wait
+ ///< on before launching
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Copy region descriptor
+typedef struct _ze_copy_region_t
+{
+ uint32_t originX; ///< [in] The origin x offset for region in bytes
+ uint32_t originY; ///< [in] The origin y offset for region in rows
+ uint32_t originZ; ///< [in] The origin z offset for region in slices
+ uint32_t width; ///< [in] The region width relative to origin in bytes
+ uint32_t height; ///< [in] The region height relative to origin in rows
+ uint32_t depth; ///< [in] The region depth relative to origin in slices. Set this to 0 for
+ ///< 2D copy.
+
+} ze_copy_region_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Copies a region from a 2D or 3D array of host, device, or shared
+/// memory.
+///
+/// @details
+/// - The application must ensure the memory pointed to by dstptr and srcptr
+/// is accessible by the device on which the command list was created.
+/// - The implementation must not access the memory pointed to by dstptr and
+/// srcptr as they are free to be modified by either the Host or device up
+/// until execution.
+/// - The region width, height, and depth for both src and dst must be same.
+/// The origins can be different.
+/// - The src and dst regions cannot be overlapping.
+/// - The application must ensure the events are accessible by the device on
+/// which the command list was created.
+/// - The application must ensure the command list and events were created,
+/// and the memory was allocated, on the same context.
+/// - The application must **not** call this function from simultaneous
+/// threads with the same command list handle.
+/// - The implementation of this function should be lock-free.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hCommandList`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == dstptr`
+/// + `nullptr == dstRegion`
+/// + `nullptr == srcptr`
+/// + `nullptr == srcRegion`
+/// - ::ZE_RESULT_ERROR_OVERLAPPING_REGIONS
+/// - ::ZE_RESULT_ERROR_INVALID_SYNCHRONIZATION_OBJECT
+/// - ::ZE_RESULT_ERROR_INVALID_SIZE
+/// + `(nullptr == phWaitEvents) && (0 < numWaitEvents)`
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeCommandListAppendMemoryCopyRegion(
+ ze_command_list_handle_t hCommandList, ///< [in] handle of command list
+ void* dstptr, ///< [in] pointer to destination memory to copy to
+ const ze_copy_region_t* dstRegion, ///< [in] pointer to destination region to copy to
+ uint32_t dstPitch, ///< [in] destination pitch in bytes
+ uint32_t dstSlicePitch, ///< [in] destination slice pitch in bytes. This is required for 3D region
+ ///< copies where ::ze_copy_region_t.depth is not 0, otherwise it's
+ ///< ignored.
+ const void* srcptr, ///< [in] pointer to source memory to copy from
+ const ze_copy_region_t* srcRegion, ///< [in] pointer to source region to copy from
+ uint32_t srcPitch, ///< [in] source pitch in bytes
+ uint32_t srcSlicePitch, ///< [in] source slice pitch in bytes. This is required for 3D region
+ ///< copies where ::ze_copy_region_t.depth is not 0, otherwise it's
+ ///< ignored.
+ ze_event_handle_t hSignalEvent, ///< [in][optional] handle of the event to signal on completion
+ uint32_t numWaitEvents, ///< [in][optional] number of events to wait on before launching; must be 0
+ ///< if `nullptr == phWaitEvents`
+ ze_event_handle_t* phWaitEvents ///< [in][optional][range(0, numWaitEvents)] handle of the events to wait
+ ///< on before launching
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Copies host, device, or shared memory from another context.
+///
+/// @details
+/// - The current active and source context must be from the same driver.
+/// - The application must ensure the memory pointed to by dstptr and srcptr
+/// is accessible by the device on which the command list was created.
+/// - The implementation must not access the memory pointed to by dstptr and
+/// srcptr as they are free to be modified by either the Host or device up
+/// until execution.
+/// - The application must ensure the events are accessible by the device on
+/// which the command list was created.
+/// - The application must ensure the command list and events were created,
+/// and the memory was allocated, on the same context.
+/// - The application must **not** call this function from simultaneous
+/// threads with the same command list handle.
+/// - The implementation of this function should be lock-free.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hCommandList`
+/// + `nullptr == hContextSrc`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == dstptr`
+/// + `nullptr == srcptr`
+/// - ::ZE_RESULT_ERROR_INVALID_SYNCHRONIZATION_OBJECT
+/// - ::ZE_RESULT_ERROR_INVALID_SIZE
+/// + `(nullptr == phWaitEvents) && (0 < numWaitEvents)`
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeCommandListAppendMemoryCopyFromContext(
+ ze_command_list_handle_t hCommandList, ///< [in] handle of command list
+ void* dstptr, ///< [in] pointer to destination memory to copy to
+ ze_context_handle_t hContextSrc, ///< [in] handle of source context object
+ const void* srcptr, ///< [in] pointer to source memory to copy from
+ size_t size, ///< [in] size in bytes to copy
+ ze_event_handle_t hSignalEvent, ///< [in][optional] handle of the event to signal on completion
+ uint32_t numWaitEvents, ///< [in][optional] number of events to wait on before launching; must be 0
+ ///< if `nullptr == phWaitEvents`
+ ze_event_handle_t* phWaitEvents ///< [in][optional][range(0, numWaitEvents)] handle of the events to wait
+ ///< on before launching
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Copies an image.
+///
+/// @details
+/// - The application must ensure the image and events are accessible by the
+/// device on which the command list was created.
+/// - The application must ensure the image format descriptors for both
+/// source and destination images are the same.
+/// - The application must ensure the command list, images and events were
+/// created on the same context.
+/// - The application must **not** call this function from simultaneous
+/// threads with the same command list handle.
+/// - The implementation of this function should be lock-free.
+///
+/// @remarks
+/// _Analogues_
+/// - **clEnqueueCopyImage**
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hCommandList`
+/// + `nullptr == hDstImage`
+/// + `nullptr == hSrcImage`
+/// - ::ZE_RESULT_ERROR_INVALID_SYNCHRONIZATION_OBJECT
+/// - ::ZE_RESULT_ERROR_INVALID_SIZE
+/// + `(nullptr == phWaitEvents) && (0 < numWaitEvents)`
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeCommandListAppendImageCopy(
+ ze_command_list_handle_t hCommandList, ///< [in] handle of command list
+ ze_image_handle_t hDstImage, ///< [in] handle of destination image to copy to
+ ze_image_handle_t hSrcImage, ///< [in] handle of source image to copy from
+ ze_event_handle_t hSignalEvent, ///< [in][optional] handle of the event to signal on completion
+ uint32_t numWaitEvents, ///< [in][optional] number of events to wait on before launching; must be 0
+ ///< if `nullptr == phWaitEvents`
+ ze_event_handle_t* phWaitEvents ///< [in][optional][range(0, numWaitEvents)] handle of the events to wait
+ ///< on before launching
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Region descriptor
+typedef struct _ze_image_region_t
+{
+ uint32_t originX; ///< [in] The origin x offset for region in pixels
+ uint32_t originY; ///< [in] The origin y offset for region in pixels
+ uint32_t originZ; ///< [in] The origin z offset for region in pixels
+ uint32_t width; ///< [in] The region width relative to origin in pixels
+ uint32_t height; ///< [in] The region height relative to origin in pixels
+ uint32_t depth; ///< [in] The region depth relative to origin. For 1D or 2D images, set
+ ///< this to 1.
+
+} ze_image_region_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Copies a region of an image to another image.
+///
+/// @details
+/// - The application must ensure the image and events are accessible by the
+/// device on which the command list was created.
+/// - The region width and height for both src and dst must be same. The
+/// origins can be different.
+/// - The src and dst regions cannot be overlapping.
+/// - The application must ensure the image format descriptors for both
+/// source and destination images are the same.
+/// - The application must ensure the command list, images and events were
+/// created, and the memory was allocated, on the same context.
+/// - The application must **not** call this function from simultaneous
+/// threads with the same command list handle.
+/// - The implementation of this function should be lock-free.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hCommandList`
+/// + `nullptr == hDstImage`
+/// + `nullptr == hSrcImage`
+/// - ::ZE_RESULT_ERROR_INVALID_SYNCHRONIZATION_OBJECT
+/// - ::ZE_RESULT_ERROR_OVERLAPPING_REGIONS
+/// - ::ZE_RESULT_ERROR_INVALID_SIZE
+/// + `(nullptr == phWaitEvents) && (0 < numWaitEvents)`
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeCommandListAppendImageCopyRegion(
+ ze_command_list_handle_t hCommandList, ///< [in] handle of command list
+ ze_image_handle_t hDstImage, ///< [in] handle of destination image to copy to
+ ze_image_handle_t hSrcImage, ///< [in] handle of source image to copy from
+ const ze_image_region_t* pDstRegion, ///< [in][optional] destination region descriptor
+ const ze_image_region_t* pSrcRegion, ///< [in][optional] source region descriptor
+ ze_event_handle_t hSignalEvent, ///< [in][optional] handle of the event to signal on completion
+ uint32_t numWaitEvents, ///< [in][optional] number of events to wait on before launching; must be 0
+ ///< if `nullptr == phWaitEvents`
+ ze_event_handle_t* phWaitEvents ///< [in][optional][range(0, numWaitEvents)] handle of the events to wait
+ ///< on before launching
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Copies from an image to device or shared memory.
+///
+/// @details
+/// - The application must ensure the memory pointed to by dstptr is
+/// accessible by the device on which the command list was created.
+/// - The implementation must not access the memory pointed to by dstptr as
+/// it is free to be modified by either the Host or device up until
+/// execution.
+/// - The application must ensure the image and events are accessible by the
+/// device on which the command list was created.
+/// - The application must ensure the image format descriptor for the source
+/// image is not a media format.
+/// - The application must ensure the command list, image and events were
+/// created, and the memory was allocated, on the same context.
+/// - The application must **not** call this function from simultaneous
+/// threads with the same command list handle.
+/// - The implementation of this function should be lock-free.
+///
+/// @remarks
+/// _Analogues_
+/// - clEnqueueReadImage
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hCommandList`
+/// + `nullptr == hSrcImage`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == dstptr`
+/// - ::ZE_RESULT_ERROR_INVALID_SYNCHRONIZATION_OBJECT
+/// - ::ZE_RESULT_ERROR_INVALID_SIZE
+/// + `(nullptr == phWaitEvents) && (0 < numWaitEvents)`
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeCommandListAppendImageCopyToMemory(
+ ze_command_list_handle_t hCommandList, ///< [in] handle of command list
+ void* dstptr, ///< [in] pointer to destination memory to copy to
+ ze_image_handle_t hSrcImage, ///< [in] handle of source image to copy from
+ const ze_image_region_t* pSrcRegion, ///< [in][optional] source region descriptor
+ ze_event_handle_t hSignalEvent, ///< [in][optional] handle of the event to signal on completion
+ uint32_t numWaitEvents, ///< [in][optional] number of events to wait on before launching; must be 0
+ ///< if `nullptr == phWaitEvents`
+ ze_event_handle_t* phWaitEvents ///< [in][optional][range(0, numWaitEvents)] handle of the events to wait
+ ///< on before launching
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Copies to an image from device or shared memory.
+///
+/// @details
+/// - The application must ensure the memory pointed to by srcptr is
+/// accessible by the device on which the command list was created.
+/// - The implementation must not access the memory pointed to by srcptr as
+/// it is free to be modified by either the Host or device up until
+/// execution.
+/// - The application must ensure the image and events are accessible by the
+/// device on which the command list was created.
+/// - The application must ensure the image format descriptor for the
+/// destination image is not a media format.
+/// - The application must ensure the command list, image and events were
+/// created, and the memory was allocated, on the same context.
+/// - The application must **not** call this function from simultaneous
+/// threads with the same command list handle.
+/// - The implementation of this function should be lock-free.
+///
+/// @remarks
+/// _Analogues_
+/// - clEnqueueWriteImage
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hCommandList`
+/// + `nullptr == hDstImage`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == srcptr`
+/// - ::ZE_RESULT_ERROR_INVALID_SYNCHRONIZATION_OBJECT
+/// - ::ZE_RESULT_ERROR_INVALID_SIZE
+/// + `(nullptr == phWaitEvents) && (0 < numWaitEvents)`
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeCommandListAppendImageCopyFromMemory(
+ ze_command_list_handle_t hCommandList, ///< [in] handle of command list
+ ze_image_handle_t hDstImage, ///< [in] handle of destination image to copy to
+ const void* srcptr, ///< [in] pointer to source memory to copy from
+ const ze_image_region_t* pDstRegion, ///< [in][optional] destination region descriptor
+ ze_event_handle_t hSignalEvent, ///< [in][optional] handle of the event to signal on completion
+ uint32_t numWaitEvents, ///< [in][optional] number of events to wait on before launching; must be 0
+ ///< if `nullptr == phWaitEvents`
+ ze_event_handle_t* phWaitEvents ///< [in][optional][range(0, numWaitEvents)] handle of the events to wait
+ ///< on before launching
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Asynchronously prefetches shared memory to the device associated with
+/// the specified command list
+///
+/// @details
+/// - This is a hint to improve performance only and is not required for
+/// correctness.
+/// - Only prefetching to the device associated with the specified command
+/// list is supported.
+/// Prefetching to the host or to a peer device is not supported.
+/// - Prefetching may not be supported for all allocation types for all devices.
+/// If memory prefetching is not supported for the specified memory range
+/// the prefetch hint may be ignored.
+/// - Prefetching may only be supported at a device-specific granularity,
+/// such as at a page boundary.
+/// In this case, the memory range may be expanded such that the start and
+/// end of the range satisfy granularity requirements.
+/// - The application must ensure the memory pointed to by ptr is accessible
+/// by the device on which the command list was created.
+/// - The application must ensure the command list was created, and the
+/// memory was allocated, on the same context.
+/// - The application must **not** call this function from simultaneous
+/// threads with the same command list handle.
+/// - The implementation of this function should be lock-free.
+///
+/// @remarks
+/// _Analogues_
+/// - clEnqueueSVMMigrateMem
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hCommandList`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == ptr`
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeCommandListAppendMemoryPrefetch(
+ ze_command_list_handle_t hCommandList, ///< [in] handle of command list
+ const void* ptr, ///< [in] pointer to start of the memory range to prefetch
+ size_t size ///< [in] size in bytes of the memory range to prefetch
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Supported memory advice hints
+typedef enum _ze_memory_advice_t
+{
+ ZE_MEMORY_ADVICE_SET_READ_MOSTLY = 0, ///< hint that memory will be read from frequently and written to rarely
+ ZE_MEMORY_ADVICE_CLEAR_READ_MOSTLY = 1, ///< removes the affect of ::ZE_MEMORY_ADVICE_SET_READ_MOSTLY
+ ZE_MEMORY_ADVICE_SET_PREFERRED_LOCATION = 2, ///< hint that the preferred memory location is the specified device
+ ZE_MEMORY_ADVICE_CLEAR_PREFERRED_LOCATION = 3, ///< removes the affect of ::ZE_MEMORY_ADVICE_SET_PREFERRED_LOCATION
+ ZE_MEMORY_ADVICE_SET_NON_ATOMIC_MOSTLY = 4, ///< hints that memory will mostly be accessed non-atomically
+ ZE_MEMORY_ADVICE_CLEAR_NON_ATOMIC_MOSTLY = 5, ///< removes the affect of ::ZE_MEMORY_ADVICE_SET_NON_ATOMIC_MOSTLY
+ ZE_MEMORY_ADVICE_BIAS_CACHED = 6, ///< hints that memory should be cached
+ ZE_MEMORY_ADVICE_BIAS_UNCACHED = 7, ///< hints that memory should be not be cached
+ ZE_MEMORY_ADVICE_FORCE_UINT32 = 0x7fffffff
+
+} ze_memory_advice_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Provides advice about the use of a shared memory range
+///
+/// @details
+/// - Memory advice is a performance hint only and is not required for
+/// functional correctness.
+/// - Memory advice can be used to override driver heuristics to explicitly
+/// control shared memory behavior.
+/// - Not all memory advice hints may be supported for all allocation types
+/// for all devices.
+/// If a memory advice hint is not supported by the device it will be ignored.
+/// - Memory advice may only be supported at a device-specific granularity,
+/// such as at a page boundary.
+/// In this case, the memory range may be expanded such that the start and
+/// end of the range satisfy granularity requirements.
+/// - The application must ensure the memory pointed to by ptr is accessible
+/// by the device on which the command list was created.
+/// - The application must ensure the command list was created, and memory
+/// was allocated, on the same context.
+/// - The application must **not** call this function from simultaneous
+/// threads with the same command list handle, and the memory was
+/// allocated.
+/// - The implementation of this function should be lock-free.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hCommandList`
+/// + `nullptr == hDevice`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == ptr`
+/// - ::ZE_RESULT_ERROR_INVALID_ENUMERATION
+/// + `::ZE_MEMORY_ADVICE_BIAS_UNCACHED < advice`
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeCommandListAppendMemAdvise(
+ ze_command_list_handle_t hCommandList, ///< [in] handle of command list
+ ze_device_handle_t hDevice, ///< [in] device associated with the memory advice
+ const void* ptr, ///< [in] Pointer to the start of the memory range
+ size_t size, ///< [in] Size in bytes of the memory range
+ ze_memory_advice_t advice ///< [in] Memory advice for the memory range
+ );
+
+#if !defined(__GNUC__)
+#pragma endregion
+#endif
+// Intel 'oneAPI' Level-Zero APIs for Event
+#if !defined(__GNUC__)
+#pragma region event
+#endif
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Supported event pool creation flags
+typedef uint32_t ze_event_pool_flags_t;
+typedef enum _ze_event_pool_flag_t
+{
+ ZE_EVENT_POOL_FLAG_HOST_VISIBLE = ZE_BIT(0), ///< signals and waits are also visible to host
+ ZE_EVENT_POOL_FLAG_IPC = ZE_BIT(1), ///< signals and waits may be shared across processes
+ ZE_EVENT_POOL_FLAG_KERNEL_TIMESTAMP = ZE_BIT(2),///< Indicates all events in pool will contain kernel timestamps; cannot be
+ ///< combined with ::ZE_EVENT_POOL_FLAG_IPC
+ ZE_EVENT_POOL_FLAG_FORCE_UINT32 = 0x7fffffff
+
+} ze_event_pool_flag_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Event pool descriptor
+typedef struct _ze_event_pool_desc_t
+{
+ ze_structure_type_t stype; ///< [in] type of this structure
+ const void* pNext; ///< [in][optional] pointer to extension-specific structure
+ ze_event_pool_flags_t flags; ///< [in] creation flags.
+ ///< must be 0 (default) or a valid combination of ::ze_event_pool_flag_t;
+ ///< default behavior is signals and waits are visible to the entire device
+ ///< and peer devices.
+ uint32_t count; ///< [in] number of events within the pool; must be greater than 0
+
+} ze_event_pool_desc_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Creates a pool of events on the context.
+///
+/// @details
+/// - The application must only use events within the pool for the
+/// device(s), or their sub-devices, which were provided during creation.
+/// - The application may call this function from simultaneous threads.
+/// - The implementation of this function must be thread-safe.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hContext`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == desc`
+/// + `nullptr == phEventPool`
+/// - ::ZE_RESULT_ERROR_INVALID_ENUMERATION
+/// + `0x7 < desc->flags`
+/// - ::ZE_RESULT_ERROR_OUT_OF_HOST_MEMORY
+/// - ::ZE_RESULT_ERROR_OUT_OF_DEVICE_MEMORY
+/// - ::ZE_RESULT_ERROR_INVALID_SIZE
+/// + `0 < desc->count`
+/// + `(nullptr == phDevices) && (0 < numDevices)`
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeEventPoolCreate(
+ ze_context_handle_t hContext, ///< [in] handle of the context object
+ const ze_event_pool_desc_t* desc, ///< [in] pointer to event pool descriptor
+ uint32_t numDevices, ///< [in][optional] number of device handles; must be 0 if `nullptr ==
+ ///< phDevices`
+ ze_device_handle_t* phDevices, ///< [in][optional][range(0, numDevices)] array of device handles which
+ ///< have visibility to the event pool.
+ ///< if nullptr, then event pool is visible to all devices supported by the
+ ///< driver instance.
+ ze_event_pool_handle_t* phEventPool ///< [out] pointer handle of event pool object created
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Deletes an event pool object.
+///
+/// @details
+/// - The application must destroy all event handles created from the pool
+/// before destroying the pool itself.
+/// - The application must ensure the device is not currently referencing
+/// the any event within the pool before it is deleted.
+/// - The implementation of this function may immediately free all Host and
+/// Device allocations associated with this event pool.
+/// - The application must **not** call this function from simultaneous
+/// threads with the same event pool handle.
+/// - The implementation of this function must be thread-safe.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hEventPool`
+/// - ::ZE_RESULT_ERROR_HANDLE_OBJECT_IN_USE
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeEventPoolDestroy(
+ ze_event_pool_handle_t hEventPool ///< [in][release] handle of event pool object to destroy
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Supported event scope flags
+typedef uint32_t ze_event_scope_flags_t;
+typedef enum _ze_event_scope_flag_t
+{
+ ZE_EVENT_SCOPE_FLAG_SUBDEVICE = ZE_BIT(0), ///< cache hierarchies are flushed or invalidated sufficient for local
+ ///< sub-device access
+ ZE_EVENT_SCOPE_FLAG_DEVICE = ZE_BIT(1), ///< cache hierarchies are flushed or invalidated sufficient for global
+ ///< device access and peer device access
+ ZE_EVENT_SCOPE_FLAG_HOST = ZE_BIT(2), ///< cache hierarchies are flushed or invalidated sufficient for device and
+ ///< host access
+ ZE_EVENT_SCOPE_FLAG_FORCE_UINT32 = 0x7fffffff
+
+} ze_event_scope_flag_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Event descriptor
+typedef struct _ze_event_desc_t
+{
+ ze_structure_type_t stype; ///< [in] type of this structure
+ const void* pNext; ///< [in][optional] pointer to extension-specific structure
+ uint32_t index; ///< [in] index of the event within the pool; must be less-than the count
+ ///< specified during pool creation
+ ze_event_scope_flags_t signal; ///< [in] defines the scope of relevant cache hierarchies to flush on a
+ ///< signal action before the event is triggered.
+ ///< must be 0 (default) or a valid combination of ::ze_event_scope_flag_t;
+ ///< default behavior is execution synchronization only, no cache
+ ///< hierarchies are flushed.
+ ze_event_scope_flags_t wait; ///< [in] defines the scope of relevant cache hierarchies to invalidate on
+ ///< a wait action after the event is complete.
+ ///< must be 0 (default) or a valid combination of ::ze_event_scope_flag_t;
+ ///< default behavior is execution synchronization only, no cache
+ ///< hierarchies are invalidated.
+
+} ze_event_desc_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Creates an event from the pool.
+///
+/// @details
+/// - An event is used to communicate fine-grain host-to-device,
+/// device-to-host or device-to-device dependencies have completed.
+/// - The application must ensure the location in the pool is not being used
+/// by another event.
+/// - The application must **not** call this function from simultaneous
+/// threads with the same event pool handle.
+/// - The implementation of this function should be lock-free.
+///
+/// @remarks
+/// _Analogues_
+/// - **clCreateUserEvent**
+/// - vkCreateEvent
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hEventPool`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == desc`
+/// + `nullptr == phEvent`
+/// - ::ZE_RESULT_ERROR_INVALID_ENUMERATION
+/// + `0x7 < desc->signal`
+/// + `0x7 < desc->wait`
+/// - ::ZE_RESULT_ERROR_OUT_OF_HOST_MEMORY
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeEventCreate(
+ ze_event_pool_handle_t hEventPool, ///< [in] handle of the event pool
+ const ze_event_desc_t* desc, ///< [in] pointer to event descriptor
+ ze_event_handle_t* phEvent ///< [out] pointer to handle of event object created
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Deletes an event object.
+///
+/// @details
+/// - The application must ensure the device is not currently referencing
+/// the event before it is deleted.
+/// - The implementation of this function may immediately free all Host and
+/// Device allocations associated with this event.
+/// - The application must **not** call this function from simultaneous
+/// threads with the same event handle.
+/// - The implementation of this function should be lock-free.
+///
+/// @remarks
+/// _Analogues_
+/// - **clReleaseEvent**
+/// - vkDestroyEvent
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hEvent`
+/// - ::ZE_RESULT_ERROR_HANDLE_OBJECT_IN_USE
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeEventDestroy(
+ ze_event_handle_t hEvent ///< [in][release] handle of event object to destroy
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Gets an IPC event pool handle for the specified event handle that can
+/// be shared with another process.
+///
+/// @details
+/// - Event pool must have been created with ::ZE_EVENT_POOL_FLAG_IPC.
+/// - The application may call this function from simultaneous threads.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hEventPool`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == phIpc`
+/// - ::ZE_RESULT_ERROR_INVALID_SYNCHRONIZATION_OBJECT
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeEventPoolGetIpcHandle(
+ ze_event_pool_handle_t hEventPool, ///< [in] handle of event pool object
+ ze_ipc_event_pool_handle_t* phIpc ///< [out] Returned IPC event handle
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Opens an IPC event pool handle to retrieve an event pool handle from
+/// another process.
+///
+/// @details
+/// - Multiple calls to this function with the same IPC handle will return
+/// unique event pool handles.
+/// - The event handle in this process should not be freed with
+/// ::zeEventPoolDestroy, but rather with ::zeEventPoolCloseIpcHandle.
+/// - The application may call this function from simultaneous threads.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hContext`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == phEventPool`
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeEventPoolOpenIpcHandle(
+ ze_context_handle_t hContext, ///< [in] handle of the context object to associate with the IPC event pool
+ ///< handle
+ ze_ipc_event_pool_handle_t hIpc, ///< [in] IPC event pool handle
+ ze_event_pool_handle_t* phEventPool ///< [out] pointer handle of event pool object created
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Closes an IPC event handle in the current process.
+///
+/// @details
+/// - Closes an IPC event handle by destroying events that were opened in
+/// this process using ::zeEventPoolOpenIpcHandle.
+/// - The application must **not** call this function from simultaneous
+/// threads with the same event pool handle.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hEventPool`
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeEventPoolCloseIpcHandle(
+ ze_event_pool_handle_t hEventPool ///< [in][release] handle of event pool object
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Appends a signal of the event from the device into a command list.
+///
+/// @details
+/// - The application must ensure the events are accessible by the device on
+/// which the command list was created.
+/// - The duration of an event created from an event pool that was created
+/// using ::ZE_EVENT_POOL_FLAG_KERNEL_TIMESTAMP flag is undefined.
+/// However, for consistency and orthogonality the event will report
+/// correctly as signaled when used by other event API functionality.
+/// - The application must ensure the command list and events were created
+/// on the same context.
+/// - The application must **not** call this function from simultaneous
+/// threads with the same command list handle.
+/// - The implementation of this function should be lock-free.
+///
+/// @remarks
+/// _Analogues_
+/// - **clSetUserEventStatus**
+/// - vkCmdSetEvent
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hCommandList`
+/// + `nullptr == hEvent`
+/// - ::ZE_RESULT_ERROR_INVALID_SYNCHRONIZATION_OBJECT
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeCommandListAppendSignalEvent(
+ ze_command_list_handle_t hCommandList, ///< [in] handle of the command list
+ ze_event_handle_t hEvent ///< [in] handle of the event
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Appends wait on event(s) on the device into a command list.
+///
+/// @details
+/// - The application must ensure the events are accessible by the device on
+/// which the command list was created.
+/// - The application must ensure the command list and events were created
+/// on the same context.
+/// - The application must **not** call this function from simultaneous
+/// threads with the same command list handle.
+/// - The implementation of this function should be lock-free.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hCommandList`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == phEvents`
+/// - ::ZE_RESULT_ERROR_INVALID_SYNCHRONIZATION_OBJECT
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeCommandListAppendWaitOnEvents(
+ ze_command_list_handle_t hCommandList, ///< [in] handle of the command list
+ uint32_t numEvents, ///< [in] number of events to wait on before continuing
+ ze_event_handle_t* phEvents ///< [in][range(0, numEvents)] handles of the events to wait on before
+ ///< continuing
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Signals a event from host.
+///
+/// @details
+/// - The duration of an event created from an event pool that was created
+/// using ::ZE_EVENT_POOL_FLAG_KERNEL_TIMESTAMP flag is undefined.
+/// However, for consistency and orthogonality the event will report
+/// correctly as signaled when used by other event API functionality.
+/// - The application may call this function from simultaneous threads.
+/// - The implementation of this function should be lock-free.
+///
+/// @remarks
+/// _Analogues_
+/// - clSetUserEventStatus
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hEvent`
+/// - ::ZE_RESULT_ERROR_INVALID_SYNCHRONIZATION_OBJECT
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeEventHostSignal(
+ ze_event_handle_t hEvent ///< [in] handle of the event
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief The current host thread waits on an event to be signaled.
+///
+/// @details
+/// - The application may call this function from simultaneous threads.
+/// - The implementation of this function should be lock-free.
+///
+/// @remarks
+/// _Analogues_
+/// - clWaitForEvents
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hEvent`
+/// - ::ZE_RESULT_ERROR_INVALID_SYNCHRONIZATION_OBJECT
+/// - ::ZE_RESULT_NOT_READY
+/// + timeout expired
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeEventHostSynchronize(
+ ze_event_handle_t hEvent, ///< [in] handle of the event
+ uint64_t timeout ///< [in] if non-zero, then indicates the maximum time (in nanoseconds) to
+ ///< yield before returning ::ZE_RESULT_SUCCESS or ::ZE_RESULT_NOT_READY;
+ ///< if zero, then operates exactly like ::zeEventQueryStatus;
+ ///< if UINT64_MAX, then function will not return until complete or device
+ ///< is lost.
+ ///< Due to external dependencies, timeout may be rounded to the closest
+ ///< value allowed by the accuracy of those dependencies.
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Queries an event object's status on the host.
+///
+/// @details
+/// - The application may call this function from simultaneous threads.
+/// - The implementation of this function should be lock-free.
+///
+/// @remarks
+/// _Analogues_
+/// - **clGetEventInfo**
+/// - vkGetEventStatus
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hEvent`
+/// - ::ZE_RESULT_ERROR_INVALID_SYNCHRONIZATION_OBJECT
+/// - ::ZE_RESULT_NOT_READY
+/// + not signaled
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeEventQueryStatus(
+ ze_event_handle_t hEvent ///< [in] handle of the event
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Appends a reset of an event back to not signaled state into a command
+/// list.
+///
+/// @details
+/// - The application must ensure the events are accessible by the device on
+/// which the command list was created.
+/// - The application must ensure the command list and events were created
+/// on the same context.
+/// - The application must **not** call this function from simultaneous
+/// threads with the same command list handle.
+/// - The implementation of this function should be lock-free.
+///
+/// @remarks
+/// _Analogues_
+/// - vkResetEvent
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hCommandList`
+/// + `nullptr == hEvent`
+/// - ::ZE_RESULT_ERROR_INVALID_SYNCHRONIZATION_OBJECT
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeCommandListAppendEventReset(
+ ze_command_list_handle_t hCommandList, ///< [in] handle of the command list
+ ze_event_handle_t hEvent ///< [in] handle of the event
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief The current host thread resets an event back to not signaled state.
+///
+/// @details
+/// - The application may call this function from simultaneous threads.
+/// - The implementation of this function should be lock-free.
+///
+/// @remarks
+/// _Analogues_
+/// - vkResetEvent
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hEvent`
+/// - ::ZE_RESULT_ERROR_INVALID_SYNCHRONIZATION_OBJECT
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeEventHostReset(
+ ze_event_handle_t hEvent ///< [in] handle of the event
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Kernel timestamp clock data
+///
+/// @details
+/// - The timestamp frequency can be queried from
+/// ::ze_device_properties_t.timerResolution.
+/// - The number of valid bits in the timestamp value can be queried from
+/// ::ze_device_properties_t.kernelTimestampValidBits.
+typedef struct _ze_kernel_timestamp_data_t
+{
+ uint64_t kernelStart; ///< [out] device clock at start of kernel execution
+ uint64_t kernelEnd; ///< [out] device clock at end of kernel execution
+
+} ze_kernel_timestamp_data_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Kernel timestamp result
+typedef struct _ze_kernel_timestamp_result_t
+{
+ ze_kernel_timestamp_data_t global; ///< [out] wall-clock data
+ ze_kernel_timestamp_data_t context; ///< [out] context-active data; only includes clocks while device context
+ ///< was actively executing.
+
+} ze_kernel_timestamp_result_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Queries an event's timestamp value on the host.
+///
+/// @details
+/// - The application must ensure the event was created from an event pool
+/// that was created using ::ZE_EVENT_POOL_FLAG_KERNEL_TIMESTAMP flag.
+/// - The destination memory will be unmodified if the event has not been
+/// signaled.
+/// - The application may call this function from simultaneous threads.
+/// - The implementation of this function should be lock-free.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hEvent`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == dstptr`
+/// - ::ZE_RESULT_ERROR_INVALID_SYNCHRONIZATION_OBJECT
+/// - ::ZE_RESULT_NOT_READY
+/// + not signaled
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeEventQueryKernelTimestamp(
+ ze_event_handle_t hEvent, ///< [in] handle of the event
+ ze_kernel_timestamp_result_t* dstptr ///< [in,out] pointer to memory for where timestamp result will be written.
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Appends a query of an events' timestamp value(s) into a command list.
+///
+/// @details
+/// - The application must ensure the events are accessible by the device on
+/// which the command list was created.
+/// - The application must ensure the events were created from an event pool
+/// that was created using ::ZE_EVENT_POOL_FLAG_KERNEL_TIMESTAMP flag.
+/// - The application must ensure the memory pointed to by both dstptr and
+/// pOffsets is accessible by the device on which the command list was
+/// created.
+/// - The value(s) written to the destination buffer are undefined if any
+/// timestamp event has not been signaled.
+/// - If pOffsets is nullptr, then multiple results will be appended
+/// sequentially into memory in the same order as phEvents.
+/// - The application must ensure the command list and events were created,
+/// and the memory was allocated, on the same context.
+/// - The application must **not** call this function from simultaneous
+/// threads with the same command list handle.
+/// - The implementation of this function should be lock-free.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hCommandList`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == phEvents`
+/// + `nullptr == dstptr`
+/// - ::ZE_RESULT_ERROR_INVALID_SYNCHRONIZATION_OBJECT
+/// - ::ZE_RESULT_ERROR_INVALID_SIZE
+/// + `(nullptr == phWaitEvents) && (0 < numWaitEvents)`
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeCommandListAppendQueryKernelTimestamps(
+ ze_command_list_handle_t hCommandList, ///< [in] handle of the command list
+ uint32_t numEvents, ///< [in] the number of timestamp events to query
+ ze_event_handle_t* phEvents, ///< [in][range(0, numEvents)] handles of timestamp events to query
+ void* dstptr, ///< [in,out] pointer to memory where ::ze_kernel_timestamp_result_t will
+ ///< be written; must be size-aligned.
+ const size_t* pOffsets, ///< [in][optional][range(0, numEvents)] offset, in bytes, to write
+ ///< results; address must be 4byte-aligned and offsets must be
+ ///< size-aligned.
+ ze_event_handle_t hSignalEvent, ///< [in][optional] handle of the event to signal on completion
+ uint32_t numWaitEvents, ///< [in][optional] number of events to wait on before executing query;
+ ///< must be 0 if `nullptr == phWaitEvents`
+ ze_event_handle_t* phWaitEvents ///< [in][optional][range(0, numWaitEvents)] handle of the events to wait
+ ///< on before executing query
+ );
+
+#if !defined(__GNUC__)
+#pragma endregion
+#endif
+// Intel 'oneAPI' Level-Zero APIs for Fence
+#if !defined(__GNUC__)
+#pragma region fence
+#endif
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Supported fence creation flags
+typedef uint32_t ze_fence_flags_t;
+typedef enum _ze_fence_flag_t
+{
+ ZE_FENCE_FLAG_SIGNALED = ZE_BIT(0), ///< fence is created in the signaled state, otherwise not signaled.
+ ZE_FENCE_FLAG_FORCE_UINT32 = 0x7fffffff
+
+} ze_fence_flag_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Fence descriptor
+typedef struct _ze_fence_desc_t
+{
+ ze_structure_type_t stype; ///< [in] type of this structure
+ const void* pNext; ///< [in][optional] pointer to extension-specific structure
+ ze_fence_flags_t flags; ///< [in] creation flags.
+ ///< must be 0 (default) or a valid combination of ::ze_fence_flag_t.
+
+} ze_fence_desc_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Creates a fence for the command queue.
+///
+/// @details
+/// - A fence is a heavyweight synchronization primitive used to communicate
+/// to the host that command list execution has completed.
+/// - The application must only use the fence for the command queue which
+/// was provided during creation.
+/// - The application may call this function from simultaneous threads.
+/// - The implementation of this function must be thread-safe.
+///
+/// @remarks
+/// _Analogues_
+/// - **vkCreateFence**
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hCommandQueue`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == desc`
+/// + `nullptr == phFence`
+/// - ::ZE_RESULT_ERROR_INVALID_ENUMERATION
+/// + `0x1 < desc->flags`
+/// - ::ZE_RESULT_ERROR_OUT_OF_HOST_MEMORY
+/// - ::ZE_RESULT_ERROR_OUT_OF_DEVICE_MEMORY
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeFenceCreate(
+ ze_command_queue_handle_t hCommandQueue, ///< [in] handle of command queue
+ const ze_fence_desc_t* desc, ///< [in] pointer to fence descriptor
+ ze_fence_handle_t* phFence ///< [out] pointer to handle of fence object created
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Deletes a fence object.
+///
+/// @details
+/// - The application must ensure the device is not currently referencing
+/// the fence before it is deleted.
+/// - The implementation of this function may immediately free all Host and
+/// Device allocations associated with this fence.
+/// - The application must **not** call this function from simultaneous
+/// threads with the same fence handle.
+/// - The implementation of this function must be thread-safe.
+///
+/// @remarks
+/// _Analogues_
+/// - **vkDestroyFence**
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hFence`
+/// - ::ZE_RESULT_ERROR_HANDLE_OBJECT_IN_USE
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeFenceDestroy(
+ ze_fence_handle_t hFence ///< [in][release] handle of fence object to destroy
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief The current host thread waits on a fence to be signaled.
+///
+/// @details
+/// - The application may call this function from simultaneous threads.
+/// - The implementation of this function should be lock-free.
+///
+/// @remarks
+/// _Analogues_
+/// - **vkWaitForFences**
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hFence`
+/// - ::ZE_RESULT_ERROR_INVALID_SYNCHRONIZATION_OBJECT
+/// - ::ZE_RESULT_NOT_READY
+/// + timeout expired
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeFenceHostSynchronize(
+ ze_fence_handle_t hFence, ///< [in] handle of the fence
+ uint64_t timeout ///< [in] if non-zero, then indicates the maximum time (in nanoseconds) to
+ ///< yield before returning ::ZE_RESULT_SUCCESS or ::ZE_RESULT_NOT_READY;
+ ///< if zero, then operates exactly like ::zeFenceQueryStatus;
+ ///< if UINT64_MAX, then function will not return until complete or device
+ ///< is lost.
+ ///< Due to external dependencies, timeout may be rounded to the closest
+ ///< value allowed by the accuracy of those dependencies.
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Queries a fence object's status.
+///
+/// @details
+/// - The application may call this function from simultaneous threads.
+/// - The implementation of this function should be lock-free.
+///
+/// @remarks
+/// _Analogues_
+/// - **vkGetFenceStatus**
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hFence`
+/// - ::ZE_RESULT_ERROR_INVALID_SYNCHRONIZATION_OBJECT
+/// - ::ZE_RESULT_NOT_READY
+/// + not signaled
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeFenceQueryStatus(
+ ze_fence_handle_t hFence ///< [in] handle of the fence
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Reset a fence back to the not signaled state.
+///
+/// @details
+/// - The application may call this function from simultaneous threads.
+/// - The implementation of this function should be lock-free.
+///
+/// @remarks
+/// _Analogues_
+/// - **vkResetFences**
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hFence`
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeFenceReset(
+ ze_fence_handle_t hFence ///< [in] handle of the fence
+ );
+
+#if !defined(__GNUC__)
+#pragma endregion
+#endif
+// Intel 'oneAPI' Level-Zero APIs for Images
+#if !defined(__GNUC__)
+#pragma region image
+#endif
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Supported image creation flags
+typedef uint32_t ze_image_flags_t;
+typedef enum _ze_image_flag_t
+{
+ ZE_IMAGE_FLAG_KERNEL_WRITE = ZE_BIT(0), ///< kernels will write contents
+ ZE_IMAGE_FLAG_BIAS_UNCACHED = ZE_BIT(1), ///< device should not cache contents
+ ZE_IMAGE_FLAG_FORCE_UINT32 = 0x7fffffff
+
+} ze_image_flag_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Supported image types
+typedef enum _ze_image_type_t
+{
+ ZE_IMAGE_TYPE_1D = 0, ///< 1D
+ ZE_IMAGE_TYPE_1DARRAY = 1, ///< 1D array
+ ZE_IMAGE_TYPE_2D = 2, ///< 2D
+ ZE_IMAGE_TYPE_2DARRAY = 3, ///< 2D array
+ ZE_IMAGE_TYPE_3D = 4, ///< 3D
+ ZE_IMAGE_TYPE_BUFFER = 5, ///< Buffer
+ ZE_IMAGE_TYPE_FORCE_UINT32 = 0x7fffffff
+
+} ze_image_type_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Supported image format layouts
+typedef enum _ze_image_format_layout_t
+{
+ ZE_IMAGE_FORMAT_LAYOUT_8 = 0, ///< 8-bit single component layout
+ ZE_IMAGE_FORMAT_LAYOUT_16 = 1, ///< 16-bit single component layout
+ ZE_IMAGE_FORMAT_LAYOUT_32 = 2, ///< 32-bit single component layout
+ ZE_IMAGE_FORMAT_LAYOUT_8_8 = 3, ///< 2-component 8-bit layout
+ ZE_IMAGE_FORMAT_LAYOUT_8_8_8_8 = 4, ///< 4-component 8-bit layout
+ ZE_IMAGE_FORMAT_LAYOUT_16_16 = 5, ///< 2-component 16-bit layout
+ ZE_IMAGE_FORMAT_LAYOUT_16_16_16_16 = 6, ///< 4-component 16-bit layout
+ ZE_IMAGE_FORMAT_LAYOUT_32_32 = 7, ///< 2-component 32-bit layout
+ ZE_IMAGE_FORMAT_LAYOUT_32_32_32_32 = 8, ///< 4-component 32-bit layout
+ ZE_IMAGE_FORMAT_LAYOUT_10_10_10_2 = 9, ///< 4-component 10_10_10_2 layout
+ ZE_IMAGE_FORMAT_LAYOUT_11_11_10 = 10, ///< 3-component 11_11_10 layout
+ ZE_IMAGE_FORMAT_LAYOUT_5_6_5 = 11, ///< 3-component 5_6_5 layout
+ ZE_IMAGE_FORMAT_LAYOUT_5_5_5_1 = 12, ///< 4-component 5_5_5_1 layout
+ ZE_IMAGE_FORMAT_LAYOUT_4_4_4_4 = 13, ///< 4-component 4_4_4_4 layout
+ ZE_IMAGE_FORMAT_LAYOUT_Y8 = 14, ///< Media Format: Y8. Format type and swizzle is ignored for this.
+ ZE_IMAGE_FORMAT_LAYOUT_NV12 = 15, ///< Media Format: NV12. Format type and swizzle is ignored for this.
+ ZE_IMAGE_FORMAT_LAYOUT_YUYV = 16, ///< Media Format: YUYV. Format type and swizzle is ignored for this.
+ ZE_IMAGE_FORMAT_LAYOUT_VYUY = 17, ///< Media Format: VYUY. Format type and swizzle is ignored for this.
+ ZE_IMAGE_FORMAT_LAYOUT_YVYU = 18, ///< Media Format: YVYU. Format type and swizzle is ignored for this.
+ ZE_IMAGE_FORMAT_LAYOUT_UYVY = 19, ///< Media Format: UYVY. Format type and swizzle is ignored for this.
+ ZE_IMAGE_FORMAT_LAYOUT_AYUV = 20, ///< Media Format: AYUV. Format type and swizzle is ignored for this.
+ ZE_IMAGE_FORMAT_LAYOUT_P010 = 21, ///< Media Format: P010. Format type and swizzle is ignored for this.
+ ZE_IMAGE_FORMAT_LAYOUT_Y410 = 22, ///< Media Format: Y410. Format type and swizzle is ignored for this.
+ ZE_IMAGE_FORMAT_LAYOUT_P012 = 23, ///< Media Format: P012. Format type and swizzle is ignored for this.
+ ZE_IMAGE_FORMAT_LAYOUT_Y16 = 24, ///< Media Format: Y16. Format type and swizzle is ignored for this.
+ ZE_IMAGE_FORMAT_LAYOUT_P016 = 25, ///< Media Format: P016. Format type and swizzle is ignored for this.
+ ZE_IMAGE_FORMAT_LAYOUT_Y216 = 26, ///< Media Format: Y216. Format type and swizzle is ignored for this.
+ ZE_IMAGE_FORMAT_LAYOUT_P216 = 27, ///< Media Format: P216. Format type and swizzle is ignored for this.
+ ZE_IMAGE_FORMAT_LAYOUT_FORCE_UINT32 = 0x7fffffff
+
+} ze_image_format_layout_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Supported image format types
+typedef enum _ze_image_format_type_t
+{
+ ZE_IMAGE_FORMAT_TYPE_UINT = 0, ///< Unsigned integer
+ ZE_IMAGE_FORMAT_TYPE_SINT = 1, ///< Signed integer
+ ZE_IMAGE_FORMAT_TYPE_UNORM = 2, ///< Unsigned normalized integer
+ ZE_IMAGE_FORMAT_TYPE_SNORM = 3, ///< Signed normalized integer
+ ZE_IMAGE_FORMAT_TYPE_FLOAT = 4, ///< Float
+ ZE_IMAGE_FORMAT_TYPE_FORCE_UINT32 = 0x7fffffff
+
+} ze_image_format_type_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Supported image format component swizzle into channel
+typedef enum _ze_image_format_swizzle_t
+{
+ ZE_IMAGE_FORMAT_SWIZZLE_R = 0, ///< Red component
+ ZE_IMAGE_FORMAT_SWIZZLE_G = 1, ///< Green component
+ ZE_IMAGE_FORMAT_SWIZZLE_B = 2, ///< Blue component
+ ZE_IMAGE_FORMAT_SWIZZLE_A = 3, ///< Alpha component
+ ZE_IMAGE_FORMAT_SWIZZLE_0 = 4, ///< Zero
+ ZE_IMAGE_FORMAT_SWIZZLE_1 = 5, ///< One
+ ZE_IMAGE_FORMAT_SWIZZLE_X = 6, ///< Don't care
+ ZE_IMAGE_FORMAT_SWIZZLE_FORCE_UINT32 = 0x7fffffff
+
+} ze_image_format_swizzle_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Image format
+typedef struct _ze_image_format_t
+{
+ ze_image_format_layout_t layout; ///< [in] image format component layout
+ ze_image_format_type_t type; ///< [in] image format type. Media formats can't be used for
+ ///< ::ZE_IMAGE_TYPE_BUFFER.
+ ze_image_format_swizzle_t x; ///< [in] image component swizzle into channel x
+ ze_image_format_swizzle_t y; ///< [in] image component swizzle into channel y
+ ze_image_format_swizzle_t z; ///< [in] image component swizzle into channel z
+ ze_image_format_swizzle_t w; ///< [in] image component swizzle into channel w
+
+} ze_image_format_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Image descriptor
+typedef struct _ze_image_desc_t
+{
+ ze_structure_type_t stype; ///< [in] type of this structure
+ const void* pNext; ///< [in][optional] pointer to extension-specific structure
+ ze_image_flags_t flags; ///< [in] creation flags.
+ ///< must be 0 (default) or a valid combination of ::ze_image_flag_t;
+ ///< default is read-only, cached access.
+ ze_image_type_t type; ///< [in] image type
+ ze_image_format_t format; ///< [in] image format
+ uint64_t width; ///< [in] width dimension.
+ ///< ::ZE_IMAGE_TYPE_BUFFER: size in bytes; see
+ ///< ::ze_device_image_properties_t.maxImageBufferSize for limits.
+ ///< ::ZE_IMAGE_TYPE_1D, ::ZE_IMAGE_TYPE_1DARRAY: width in pixels; see
+ ///< ::ze_device_image_properties_t.maxImageDims1D for limits.
+ ///< ::ZE_IMAGE_TYPE_2D, ::ZE_IMAGE_TYPE_2DARRAY: width in pixels; see
+ ///< ::ze_device_image_properties_t.maxImageDims2D for limits.
+ ///< ::ZE_IMAGE_TYPE_3D: width in pixels; see
+ ///< ::ze_device_image_properties_t.maxImageDims3D for limits.
+ uint32_t height; ///< [in] height dimension.
+ ///< ::ZE_IMAGE_TYPE_2D, ::ZE_IMAGE_TYPE_2DARRAY: height in pixels; see
+ ///< ::ze_device_image_properties_t.maxImageDims2D for limits.
+ ///< ::ZE_IMAGE_TYPE_3D: height in pixels; see
+ ///< ::ze_device_image_properties_t.maxImageDims3D for limits.
+ ///< other: ignored.
+ uint32_t depth; ///< [in] depth dimension.
+ ///< ::ZE_IMAGE_TYPE_3D: depth in pixels; see
+ ///< ::ze_device_image_properties_t.maxImageDims3D for limits.
+ ///< other: ignored.
+ uint32_t arraylevels; ///< [in] array levels.
+ ///< ::ZE_IMAGE_TYPE_1DARRAY, ::ZE_IMAGE_TYPE_2DARRAY: see
+ ///< ::ze_device_image_properties_t.maxImageArraySlices for limits.
+ ///< other: ignored.
+ uint32_t miplevels; ///< [in] mipmap levels (must be 0)
+
+} ze_image_desc_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Supported sampler filtering flags
+typedef uint32_t ze_image_sampler_filter_flags_t;
+typedef enum _ze_image_sampler_filter_flag_t
+{
+ ZE_IMAGE_SAMPLER_FILTER_FLAG_POINT = ZE_BIT(0), ///< device supports point filtering
+ ZE_IMAGE_SAMPLER_FILTER_FLAG_LINEAR = ZE_BIT(1),///< device supports linear filtering
+ ZE_IMAGE_SAMPLER_FILTER_FLAG_FORCE_UINT32 = 0x7fffffff
+
+} ze_image_sampler_filter_flag_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Image properties
+typedef struct _ze_image_properties_t
+{
+ ze_structure_type_t stype; ///< [in] type of this structure
+ void* pNext; ///< [in,out][optional] pointer to extension-specific structure
+ ze_image_sampler_filter_flags_t samplerFilterFlags; ///< [out] supported sampler filtering.
+ ///< returns 0 (unsupported) or a combination of ::ze_image_sampler_filter_flag_t.
+
+} ze_image_properties_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Retrieves supported properties of an image.
+///
+/// @details
+/// - The application may call this function from simultaneous threads.
+/// - The implementation of this function should be lock-free.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hDevice`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == desc`
+/// + `nullptr == pImageProperties`
+/// - ::ZE_RESULT_ERROR_INVALID_ENUMERATION
+/// + `0x3 < desc->flags`
+/// + `::ZE_IMAGE_TYPE_BUFFER < desc->type`
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeImageGetProperties(
+ ze_device_handle_t hDevice, ///< [in] handle of the device
+ const ze_image_desc_t* desc, ///< [in] pointer to image descriptor
+ ze_image_properties_t* pImageProperties ///< [out] pointer to image properties
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Creates an image on the context.
+///
+/// @details
+/// - The application must only use the image for the device, or its
+/// sub-devices, which was provided during creation.
+/// - The application may call this function from simultaneous threads.
+/// - The implementation of this function must be thread-safe.
+///
+/// @remarks
+/// _Analogues_
+/// - clCreateImage
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hContext`
+/// + `nullptr == hDevice`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == desc`
+/// + `nullptr == phImage`
+/// - ::ZE_RESULT_ERROR_INVALID_ENUMERATION
+/// + `0x3 < desc->flags`
+/// + `::ZE_IMAGE_TYPE_BUFFER < desc->type`
+/// - ::ZE_RESULT_ERROR_UNSUPPORTED_IMAGE_FORMAT
+/// - ::ZE_RESULT_ERROR_OUT_OF_HOST_MEMORY
+/// - ::ZE_RESULT_ERROR_OUT_OF_DEVICE_MEMORY
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeImageCreate(
+ ze_context_handle_t hContext, ///< [in] handle of the context object
+ ze_device_handle_t hDevice, ///< [in] handle of the device
+ const ze_image_desc_t* desc, ///< [in] pointer to image descriptor
+ ze_image_handle_t* phImage ///< [out] pointer to handle of image object created
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Deletes an image object.
+///
+/// @details
+/// - The application must ensure the device is not currently referencing
+/// the image before it is deleted.
+/// - The implementation of this function may immediately free all Host and
+/// Device allocations associated with this image.
+/// - The application must **not** call this function from simultaneous
+/// threads with the same image handle.
+/// - The implementation of this function must be thread-safe.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hImage`
+/// - ::ZE_RESULT_ERROR_HANDLE_OBJECT_IN_USE
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeImageDestroy(
+ ze_image_handle_t hImage ///< [in][release] handle of image object to destroy
+ );
+
+#if !defined(__GNUC__)
+#pragma endregion
+#endif
+// Intel 'oneAPI' Level-Zero APIs for Memory
+#if !defined(__GNUC__)
+#pragma region memory
+#endif
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Supported memory allocation flags
+typedef uint32_t ze_device_mem_alloc_flags_t;
+typedef enum _ze_device_mem_alloc_flag_t
+{
+ ZE_DEVICE_MEM_ALLOC_FLAG_BIAS_CACHED = ZE_BIT(0), ///< device should cache allocation
+ ZE_DEVICE_MEM_ALLOC_FLAG_BIAS_UNCACHED = ZE_BIT(1), ///< device should not cache allocation (UC)
+ ZE_DEVICE_MEM_ALLOC_FLAG_FORCE_UINT32 = 0x7fffffff
+
+} ze_device_mem_alloc_flag_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Device memory allocation descriptor
+typedef struct _ze_device_mem_alloc_desc_t
+{
+ ze_structure_type_t stype; ///< [in] type of this structure
+ const void* pNext; ///< [in][optional] pointer to extension-specific structure
+ ze_device_mem_alloc_flags_t flags; ///< [in] flags specifying additional allocation controls.
+ ///< must be 0 (default) or a valid combination of ::ze_device_mem_alloc_flag_t;
+ ///< default behavior may use implicit driver-based heuristics.
+ uint32_t ordinal; ///< [in] ordinal of the device's local memory to allocate from.
+ ///< must be less than the count returned from ::zeDeviceGetMemoryProperties.
+
+} ze_device_mem_alloc_desc_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Supported host memory allocation flags
+typedef uint32_t ze_host_mem_alloc_flags_t;
+typedef enum _ze_host_mem_alloc_flag_t
+{
+ ZE_HOST_MEM_ALLOC_FLAG_BIAS_CACHED = ZE_BIT(0), ///< host should cache allocation
+ ZE_HOST_MEM_ALLOC_FLAG_BIAS_UNCACHED = ZE_BIT(1), ///< host should not cache allocation (UC)
+ ZE_HOST_MEM_ALLOC_FLAG_BIAS_WRITE_COMBINED = ZE_BIT(2), ///< host memory should be allocated write-combined (WC)
+ ZE_HOST_MEM_ALLOC_FLAG_FORCE_UINT32 = 0x7fffffff
+
+} ze_host_mem_alloc_flag_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Host memory allocation descriptor
+typedef struct _ze_host_mem_alloc_desc_t
+{
+ ze_structure_type_t stype; ///< [in] type of this structure
+ const void* pNext; ///< [in][optional] pointer to extension-specific structure
+ ze_host_mem_alloc_flags_t flags; ///< [in] flags specifying additional allocation controls.
+ ///< must be 0 (default) or a valid combination of ::ze_host_mem_alloc_flag_t;
+ ///< default behavior may use implicit driver-based heuristics.
+
+} ze_host_mem_alloc_desc_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Allocates shared memory on the context.
+///
+/// @details
+/// - Shared allocations share ownership between the host and one or more
+/// devices.
+/// - Shared allocations may optionally be associated with a device by
+/// passing a handle to the device.
+/// - Devices supporting only single-device shared access capabilities may
+/// access shared memory associated with the device.
+/// For these devices, ownership of the allocation is shared between the
+/// host and the associated device only.
+/// - Passing nullptr as the device handle does not associate the shared
+/// allocation with any device.
+/// For allocations with no associated device, ownership of the allocation
+/// is shared between the host and all devices supporting cross-device
+/// shared access capabilities.
+/// - The application must only use the memory allocation for the context
+/// and device, or its sub-devices, which was provided during allocation.
+/// - The application may call this function from simultaneous threads.
+/// - The implementation of this function must be thread-safe.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hContext`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == device_desc`
+/// + `nullptr == host_desc`
+/// + `nullptr == pptr`
+/// - ::ZE_RESULT_ERROR_INVALID_ENUMERATION
+/// + `0x3 < device_desc->flags`
+/// + `0x7 < host_desc->flags`
+/// - ::ZE_RESULT_ERROR_UNSUPPORTED_SIZE
+/// + `0 == size`
+/// - ::ZE_RESULT_ERROR_UNSUPPORTED_ALIGNMENT
+/// + Must be zero or a power-of-two
+/// + `0 != (alignment & (alignment - 1))`
+/// - ::ZE_RESULT_ERROR_OUT_OF_HOST_MEMORY
+/// - ::ZE_RESULT_ERROR_OUT_OF_DEVICE_MEMORY
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeMemAllocShared(
+ ze_context_handle_t hContext, ///< [in] handle of the context object
+ const ze_device_mem_alloc_desc_t* device_desc, ///< [in] pointer to device memory allocation descriptor
+ const ze_host_mem_alloc_desc_t* host_desc, ///< [in] pointer to host memory allocation descriptor
+ size_t size, ///< [in] size in bytes to allocate; must be less-than
+ ///< ::ze_device_properties_t.maxMemAllocSize.
+ size_t alignment, ///< [in] minimum alignment in bytes for the allocation; must be a power of
+ ///< two.
+ ze_device_handle_t hDevice, ///< [in][optional] device handle to associate with
+ void** pptr ///< [out] pointer to shared allocation
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Allocates device memory on the context.
+///
+/// @details
+/// - Device allocations are owned by a specific device.
+/// - In general, a device allocation may only be accessed by the device
+/// that owns it.
+/// - The application must only use the memory allocation for the context
+/// and device, or its sub-devices, which was provided during allocation.
+/// - The application may call this function from simultaneous threads.
+/// - The implementation of this function must be thread-safe.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hContext`
+/// + `nullptr == hDevice`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == device_desc`
+/// + `nullptr == pptr`
+/// - ::ZE_RESULT_ERROR_INVALID_ENUMERATION
+/// + `0x3 < device_desc->flags`
+/// - ::ZE_RESULT_ERROR_UNSUPPORTED_SIZE
+/// + `0 == size`
+/// - ::ZE_RESULT_ERROR_UNSUPPORTED_ALIGNMENT
+/// + Must be zero or a power-of-two
+/// + `0 != (alignment & (alignment - 1))`
+/// - ::ZE_RESULT_ERROR_OUT_OF_HOST_MEMORY
+/// - ::ZE_RESULT_ERROR_OUT_OF_DEVICE_MEMORY
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeMemAllocDevice(
+ ze_context_handle_t hContext, ///< [in] handle of the context object
+ const ze_device_mem_alloc_desc_t* device_desc, ///< [in] pointer to device memory allocation descriptor
+ size_t size, ///< [in] size in bytes to allocate; must be less-than
+ ///< ::ze_device_properties_t.maxMemAllocSize.
+ size_t alignment, ///< [in] minimum alignment in bytes for the allocation; must be a power of
+ ///< two.
+ ze_device_handle_t hDevice, ///< [in] handle of the device
+ void** pptr ///< [out] pointer to device allocation
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Allocates host memory on the context.
+///
+/// @details
+/// - Host allocations are owned by the host process.
+/// - Host allocations are accessible by the host and all devices within the
+/// driver's context.
+/// - Host allocations are frequently used as staging areas to transfer data
+/// to or from devices.
+/// - The application must only use the memory allocation for the context
+/// which was provided during allocation.
+/// - The application may call this function from simultaneous threads.
+/// - The implementation of this function must be thread-safe.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hContext`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == host_desc`
+/// + `nullptr == pptr`
+/// - ::ZE_RESULT_ERROR_INVALID_ENUMERATION
+/// + `0x7 < host_desc->flags`
+/// - ::ZE_RESULT_ERROR_UNSUPPORTED_SIZE
+/// + `0 == size`
+/// - ::ZE_RESULT_ERROR_UNSUPPORTED_ALIGNMENT
+/// + Must be zero or a power-of-two
+/// + `0 != (alignment & (alignment - 1))`
+/// - ::ZE_RESULT_ERROR_OUT_OF_HOST_MEMORY
+/// - ::ZE_RESULT_ERROR_OUT_OF_DEVICE_MEMORY
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeMemAllocHost(
+ ze_context_handle_t hContext, ///< [in] handle of the context object
+ const ze_host_mem_alloc_desc_t* host_desc, ///< [in] pointer to host memory allocation descriptor
+ size_t size, ///< [in] size in bytes to allocate; must be less-than
+ ///< ::ze_device_properties_t.maxMemAllocSize.
+ size_t alignment, ///< [in] minimum alignment in bytes for the allocation; must be a power of
+ ///< two.
+ void** pptr ///< [out] pointer to host allocation
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Frees allocated host memory, device memory, or shared memory on the
+/// context.
+///
+/// @details
+/// - The application must ensure the device is not currently referencing
+/// the memory before it is freed
+/// - The implementation of this function may immediately free all Host and
+/// Device allocations associated with this memory
+/// - The application must **not** call this function from simultaneous
+/// threads with the same pointer.
+/// - The implementation of this function must be thread-safe.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hContext`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == ptr`
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeMemFree(
+ ze_context_handle_t hContext, ///< [in] handle of the context object
+ void* ptr ///< [in][release] pointer to memory to free
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Memory allocation type
+typedef enum _ze_memory_type_t
+{
+ ZE_MEMORY_TYPE_UNKNOWN = 0, ///< the memory pointed to is of unknown type
+ ZE_MEMORY_TYPE_HOST = 1, ///< the memory pointed to is a host allocation
+ ZE_MEMORY_TYPE_DEVICE = 2, ///< the memory pointed to is a device allocation
+ ZE_MEMORY_TYPE_SHARED = 3, ///< the memory pointed to is a shared ownership allocation
+ ZE_MEMORY_TYPE_FORCE_UINT32 = 0x7fffffff
+
+} ze_memory_type_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Memory allocation properties queried using ::zeMemGetAllocProperties
+typedef struct _ze_memory_allocation_properties_t
+{
+ ze_structure_type_t stype; ///< [in] type of this structure
+ void* pNext; ///< [in,out][optional] pointer to extension-specific structure
+ ze_memory_type_t type; ///< [out] type of allocated memory
+ uint64_t id; ///< [out] identifier for this allocation
+ uint64_t pageSize; ///< [out] page size used for allocation
+
+} ze_memory_allocation_properties_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Retrieves attributes of a memory allocation
+///
+/// @details
+/// - The application may call this function from simultaneous threads.
+/// - The application may query attributes of a memory allocation unrelated
+/// to the context.
+/// When this occurs, the returned allocation type will be
+/// ::ZE_MEMORY_TYPE_UNKNOWN, and the returned identifier and associated
+/// device is unspecified.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hContext`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == ptr`
+/// + `nullptr == pMemAllocProperties`
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeMemGetAllocProperties(
+ ze_context_handle_t hContext, ///< [in] handle of the context object
+ const void* ptr, ///< [in] memory pointer to query
+ ze_memory_allocation_properties_t* pMemAllocProperties, ///< [in,out] query result for memory allocation properties
+ ze_device_handle_t* phDevice ///< [out][optional] device associated with this allocation
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Retrieves the base address and/or size of an allocation
+///
+/// @details
+/// - The application may call this function from simultaneous threads.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hContext`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == ptr`
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeMemGetAddressRange(
+ ze_context_handle_t hContext, ///< [in] handle of the context object
+ const void* ptr, ///< [in] memory pointer to query
+ void** pBase, ///< [in,out][optional] base address of the allocation
+ size_t* pSize ///< [in,out][optional] size of the allocation
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Creates an IPC memory handle for the specified allocation
+///
+/// @details
+/// - Takes a pointer to a device memory allocation and creates an IPC
+/// memory handle for exporting it for use in another process.
+/// - The pointer must be base pointer of the device memory allocation; i.e.
+/// the value returned from ::zeMemAllocDevice.
+/// - The application may call this function from simultaneous threads.
+/// - The implementation of this function must be thread-safe.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hContext`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == ptr`
+/// + `nullptr == pIpcHandle`
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeMemGetIpcHandle(
+ ze_context_handle_t hContext, ///< [in] handle of the context object
+ const void* ptr, ///< [in] pointer to the device memory allocation
+ ze_ipc_mem_handle_t* pIpcHandle ///< [out] Returned IPC memory handle
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Supported IPC memory flags
+typedef uint32_t ze_ipc_memory_flags_t;
+typedef enum _ze_ipc_memory_flag_t
+{
+ ZE_IPC_MEMORY_FLAG_TBD = ZE_BIT(0), ///< reserved for future use
+ ZE_IPC_MEMORY_FLAG_FORCE_UINT32 = 0x7fffffff
+
+} ze_ipc_memory_flag_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Opens an IPC memory handle to retrieve a device pointer on the
+/// context.
+///
+/// @details
+/// - Takes an IPC memory handle from a remote process and associates it
+/// with a device pointer usable in this process.
+/// - The device pointer in this process should not be freed with
+/// ::zeMemFree, but rather with ::zeMemCloseIpcHandle.
+/// - Multiple calls to this function with the same IPC handle will return
+/// unique pointers.
+/// - The application may call this function from simultaneous threads.
+/// - The implementation of this function must be thread-safe.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hContext`
+/// + `nullptr == hDevice`
+/// - ::ZE_RESULT_ERROR_INVALID_ENUMERATION
+/// + `0x1 < flags`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == pptr`
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeMemOpenIpcHandle(
+ ze_context_handle_t hContext, ///< [in] handle of the context object
+ ze_device_handle_t hDevice, ///< [in] handle of the device to associate with the IPC memory handle
+ ze_ipc_mem_handle_t handle, ///< [in] IPC memory handle
+ ze_ipc_memory_flags_t flags, ///< [in] flags controlling the operation.
+ ///< must be 0 (default) or a valid combination of ::ze_ipc_memory_flag_t.
+ void** pptr ///< [out] pointer to device allocation in this process
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Closes an IPC memory handle
+///
+/// @details
+/// - Closes an IPC memory handle by unmapping memory that was opened in
+/// this process using ::zeMemOpenIpcHandle.
+/// - The application must **not** call this function from simultaneous
+/// threads with the same pointer.
+/// - The implementation of this function must be thread-safe.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hContext`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == ptr`
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeMemCloseIpcHandle(
+ ze_context_handle_t hContext, ///< [in] handle of the context object
+ const void* ptr ///< [in][release] pointer to device allocation in this process
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Additional allocation descriptor for exporting external memory
+///
+/// @details
+/// - This structure may be passed to ::zeMemAllocDevice, via the `pNext`
+/// member of ::ze_device_mem_alloc_desc_t, to indicate an exportable
+/// memory allocation.
+/// - This structure may be passed to ::zeImageCreate, via the `pNext`
+/// member of ::ze_image_desc_t, to indicate an exportable image.
+typedef struct _ze_external_memory_export_desc_t
+{
+ ze_structure_type_t stype; ///< [in] type of this structure
+ const void* pNext; ///< [in][optional] pointer to extension-specific structure
+ ze_external_memory_type_flags_t flags; ///< [in] flags specifying memory export types for this allocation.
+ ///< must be 0 (default) or a valid combination of ::ze_external_memory_type_flags_t
+
+} ze_external_memory_export_desc_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Additional allocation descriptor for importing external memory as a
+/// file descriptor
+///
+/// @details
+/// - This structure may be passed to ::zeMemAllocDevice, via the `pNext`
+/// member of ::ze_device_mem_alloc_desc_t, to import memory from a file
+/// descriptor.
+/// - This structure may be passed to ::zeImageCreate, via the `pNext`
+/// member of ::ze_image_desc_t, to import memory from a file descriptor.
+typedef struct _ze_external_memory_import_fd_t
+{
+ ze_structure_type_t stype; ///< [in] type of this structure
+ const void* pNext; ///< [in][optional] pointer to extension-specific structure
+ ze_external_memory_type_flags_t flags; ///< [in] flags specifying the memory import type for the file descriptor.
+ ///< must be 0 (default) or a valid combination of ::ze_external_memory_type_flags_t
+ int fd; ///< [in] the file descriptor handle to import
+
+} ze_external_memory_import_fd_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Exports an allocation as a file descriptor
+///
+/// @details
+/// - This structure may be passed to ::zeMemGetAllocProperties, via the
+/// `pNext` member of ::ze_memory_allocation_properties_t, to export a
+/// memory allocation as a file descriptor.
+/// - This structure may be passed to ::zeImageGetProperties, via the
+/// `pNext` member of ::ze_image_properties_t, to export an image as a
+/// file descriptor.
+/// - The requested memory export type must have been specified when the
+/// allocation was made.
+typedef struct _ze_external_memory_export_fd_t
+{
+ ze_structure_type_t stype; ///< [in] type of this structure
+ const void* pNext; ///< [in][optional] pointer to extension-specific structure
+ ze_external_memory_type_flags_t flags; ///< [in] flags specifying the memory export type for the file descriptor.
+ ///< must be 0 (default) or a valid combination of ::ze_external_memory_type_flags_t
+ int fd; ///< [out] the exported file descriptor handle representing the allocation.
+
+} ze_external_memory_export_fd_t;
+
+#if !defined(__GNUC__)
+#pragma endregion
+#endif
+// Intel 'oneAPI' Level-Zero APIs for Module
+#if !defined(__GNUC__)
+#pragma region module
+#endif
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Supported module creation input formats
+typedef enum _ze_module_format_t
+{
+ ZE_MODULE_FORMAT_IL_SPIRV = 0, ///< Format is SPIRV IL format
+ ZE_MODULE_FORMAT_NATIVE = 1, ///< Format is device native format
+ ZE_MODULE_FORMAT_FORCE_UINT32 = 0x7fffffff
+
+} ze_module_format_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Specialization constants - User defined constants
+typedef struct _ze_module_constants_t
+{
+ uint32_t numConstants; ///< [in] Number of specialization constants.
+ const uint32_t* pConstantIds; ///< [in][range(0, numConstants)] Array of IDs that is sized to
+ ///< numConstants.
+ const void** pConstantValues; ///< [in][range(0, numConstants)] Array of pointers to values that is sized
+ ///< to numConstants.
+
+} ze_module_constants_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Module descriptor
+typedef struct _ze_module_desc_t
+{
+ ze_structure_type_t stype; ///< [in] type of this structure
+ const void* pNext; ///< [in][optional] pointer to extension-specific structure
+ ze_module_format_t format; ///< [in] Module format passed in with pInputModule
+ size_t inputSize; ///< [in] size of input IL or ISA from pInputModule.
+ const uint8_t* pInputModule; ///< [in] pointer to IL or ISA
+ const char* pBuildFlags; ///< [in][optional] string containing compiler flags. Following options are supported.
+ ///< - "-ze-opt-disable"
+ ///< - Disable optimizations
+ ///< - "-ze-opt-greater-than-4GB-buffer-required"
+ ///< - Use 64-bit offset calculations for buffers.
+ ///< - "-ze-opt-large-register-file"
+ ///< - Increase number of registers available to threads.
+ ///< - "-ze-opt-has-buffer-offset-arg"
+ ///< - Extend stateless to stateful optimization to more
+ ///< cases with the use of additional offset (e.g. 64-bit
+ ///< pointer to binding table with 32-bit offset).
+ ///< - "-g"
+ ///< - Include debugging information.
+ const ze_module_constants_t* pConstants; ///< [in][optional] pointer to specialization constants. Valid only for
+ ///< SPIR-V input. This must be set to nullptr if no specialization
+ ///< constants are provided.
+
+} ze_module_desc_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Creates a module on the context.
+///
+/// @details
+/// - Compiles the module for execution on the device.
+/// - The application must only use the module for the device, or its
+/// sub-devices, which was provided during creation.
+/// - The module can be copied to other devices and contexts within the same
+/// driver instance by using ::zeModuleGetNativeBinary.
+/// - A build log can optionally be returned to the caller. The caller is
+/// responsible for destroying build log using ::zeModuleBuildLogDestroy.
+/// - The module descriptor constants are only supported for SPIR-V
+/// specialization constants.
+/// - The application may call this function from simultaneous threads.
+/// - The implementation of this function must be thread-safe.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hContext`
+/// + `nullptr == hDevice`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == desc`
+/// + `nullptr == desc->pInputModule`
+/// + `nullptr == phModule`
+/// - ::ZE_RESULT_ERROR_INVALID_ENUMERATION
+/// + `::ZE_MODULE_FORMAT_NATIVE < desc->format`
+/// - ::ZE_RESULT_ERROR_INVALID_NATIVE_BINARY
+/// - ::ZE_RESULT_ERROR_INVALID_SIZE
+/// + `0 == desc->inputSize`
+/// - ::ZE_RESULT_ERROR_OUT_OF_HOST_MEMORY
+/// - ::ZE_RESULT_ERROR_OUT_OF_DEVICE_MEMORY
+/// - ::ZE_RESULT_ERROR_MODULE_BUILD_FAILURE
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeModuleCreate(
+ ze_context_handle_t hContext, ///< [in] handle of the context object
+ ze_device_handle_t hDevice, ///< [in] handle of the device
+ const ze_module_desc_t* desc, ///< [in] pointer to module descriptor
+ ze_module_handle_t* phModule, ///< [out] pointer to handle of module object created
+ ze_module_build_log_handle_t* phBuildLog ///< [out][optional] pointer to handle of module's build log.
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Destroys module
+///
+/// @details
+/// - The application must destroy all kernel and build log handles created
+/// from the module before destroying the module itself.
+/// - The application must ensure the device is not currently referencing
+/// the module before it is deleted.
+/// - The implementation of this function may immediately free all Host and
+/// Device allocations associated with this module.
+/// - The application must **not** call this function from simultaneous
+/// threads with the same module handle.
+/// - The implementation of this function must be thread-safe.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hModule`
+/// - ::ZE_RESULT_ERROR_HANDLE_OBJECT_IN_USE
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeModuleDestroy(
+ ze_module_handle_t hModule ///< [in][release] handle of the module
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Dynamically link modules together that share import/export linkage
+/// dependencies.
+///
+/// @details
+/// - Modules support import and export linkage for functions and global
+/// variables.
+/// - Modules that have imports can be dynamically linked to export modules
+/// that satisfy those import requirements.
+/// - Modules can have both import and export linkages.
+/// - Modules that do not have any imports or exports do not need to be
+/// linked.
+/// - Modules cannot be partially linked. All modules needed to satisfy all
+/// import dependencies for a module must be passed in or
+/// ::ZE_RESULT_ERROR_MODULE_LINK_FAILURE will returned.
+/// - Modules with imports need to be linked before kernel objects can be
+/// created from them.
+/// - Modules will only be linked once. A module can be used in multiple
+/// link calls if it has exports but it's imports will not be re-linked.
+/// - Ambiguous dependencies, where multiple modules satisfy the import
+/// dependencies for another module, is not allowed.
+/// - ModuleGetNativeBinary can be called on any module regardless of
+/// whether it is linked or not.
+/// - A link log can optionally be returned to the caller. The caller is
+/// responsible for destroying build log using ::zeModuleBuildLogDestroy.
+/// - See SPIR-V specification for linkage details.
+/// - The application may call this function from simultaneous threads as
+/// long as the import modules being linked are not the same.
+/// - The implementation of this function should be lock-free.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == phModules`
+/// - ::ZE_RESULT_ERROR_MODULE_LINK_FAILURE
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeModuleDynamicLink(
+ uint32_t numModules, ///< [in] number of modules to be linked pointed to by phModules.
+ ze_module_handle_t* phModules, ///< [in][range(0, numModules)] pointer to an array of modules to
+ ///< dynamically link together.
+ ze_module_build_log_handle_t* phLinkLog ///< [out][optional] pointer to handle of dynamic link log.
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Destroys module build log object
+///
+/// @details
+/// - The implementation of this function may immediately free all Host
+/// allocations associated with this object.
+/// - The application must **not** call this function from simultaneous
+/// threads with the same build log handle.
+/// - The implementation of this function should be lock-free.
+/// - This function can be called before or after ::zeModuleDestroy for the
+/// associated module.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hModuleBuildLog`
+/// - ::ZE_RESULT_ERROR_HANDLE_OBJECT_IN_USE
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeModuleBuildLogDestroy(
+ ze_module_build_log_handle_t hModuleBuildLog ///< [in][release] handle of the module build log object.
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Retrieves text string for build log.
+///
+/// @details
+/// - The caller can pass nullptr for pBuildLog when querying only for size.
+/// - The caller must provide memory for build log.
+/// - The application may call this function from simultaneous threads.
+/// - The implementation of this function should be lock-free.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hModuleBuildLog`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == pSize`
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeModuleBuildLogGetString(
+ ze_module_build_log_handle_t hModuleBuildLog, ///< [in] handle of the module build log object.
+ size_t* pSize, ///< [in,out] size of build log string.
+ char* pBuildLog ///< [in,out][optional] pointer to null-terminated string of the log.
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Retrieve native binary from Module.
+///
+/// @details
+/// - The native binary output can be cached to disk and new modules can be
+/// later constructed from the cached copy.
+/// - The native binary will retain debugging information that is associated
+/// with a module.
+/// - The caller can pass nullptr for pModuleNativeBinary when querying only
+/// for size.
+/// - The implementation will copy the native binary into a buffer supplied
+/// by the caller.
+/// - The application may call this function from simultaneous threads.
+/// - The implementation of this function should be lock-free.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hModule`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == pSize`
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeModuleGetNativeBinary(
+ ze_module_handle_t hModule, ///< [in] handle of the module
+ size_t* pSize, ///< [in,out] size of native binary in bytes.
+ uint8_t* pModuleNativeBinary ///< [in,out][optional] byte pointer to native binary
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Retrieve global variable pointer from Module.
+///
+/// @details
+/// - The application may query global pointer from any module that either
+/// exports or imports it.
+/// - The application must dynamically link a module that imports a global
+/// before the global pointer can be queried from it.
+/// - The application may call this function from simultaneous threads.
+/// - The implementation of this function should be lock-free.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hModule`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == pGlobalName`
+/// - ::ZE_RESULT_ERROR_INVALID_GLOBAL_NAME
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeModuleGetGlobalPointer(
+ ze_module_handle_t hModule, ///< [in] handle of the module
+ const char* pGlobalName, ///< [in] name of global variable in module
+ size_t* pSize, ///< [in,out][optional] size of global variable
+ void** pptr ///< [in,out][optional] device visible pointer
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Retrieve all kernel names in the module.
+///
+/// @details
+/// - The application may call this function from simultaneous threads.
+/// - The implementation of this function should be lock-free.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hModule`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == pCount`
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeModuleGetKernelNames(
+ ze_module_handle_t hModule, ///< [in] handle of the module
+ uint32_t* pCount, ///< [in,out] pointer to the number of names.
+ ///< if count is zero, then the driver will update the value with the total
+ ///< number of names available.
+ ///< if count is non-zero, then driver will only retrieve that number of names.
+ ///< if count is larger than the number of names available, then the driver
+ ///< will update the value with the correct number of names available.
+ const char** pNames ///< [in,out][optional][range(0, *pCount)] array of names of functions
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Supported module property flags
+typedef uint32_t ze_module_property_flags_t;
+typedef enum _ze_module_property_flag_t
+{
+ ZE_MODULE_PROPERTY_FLAG_IMPORTS = ZE_BIT(0), ///< Module has imports (i.e. imported global variables and/or kernels).
+ ///< See ::zeModuleDynamicLink.
+ ZE_MODULE_PROPERTY_FLAG_FORCE_UINT32 = 0x7fffffff
+
+} ze_module_property_flag_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Module properties
+typedef struct _ze_module_properties_t
+{
+ ze_structure_type_t stype; ///< [in] type of this structure
+ void* pNext; ///< [in,out][optional] pointer to extension-specific structure
+ ze_module_property_flags_t flags; ///< [out] 0 (none) or a valid combination of ::ze_module_property_flag_t
+
+} ze_module_properties_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Retrieve module properties.
+///
+/// @details
+/// - The application may call this function from simultaneous threads.
+/// - The implementation of this function should be lock-free.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hModule`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == pModuleProperties`
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeModuleGetProperties(
+ ze_module_handle_t hModule, ///< [in] handle of the module
+ ze_module_properties_t* pModuleProperties ///< [in,out] query result for module properties.
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Supported kernel creation flags
+typedef uint32_t ze_kernel_flags_t;
+typedef enum _ze_kernel_flag_t
+{
+ ZE_KERNEL_FLAG_FORCE_RESIDENCY = ZE_BIT(0), ///< force all device allocations to be resident during execution
+ ZE_KERNEL_FLAG_EXPLICIT_RESIDENCY = ZE_BIT(1), ///< application is responsible for all residency of device allocations.
+ ///< driver may disable implicit residency management.
+ ZE_KERNEL_FLAG_FORCE_UINT32 = 0x7fffffff
+
+} ze_kernel_flag_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Kernel descriptor
+typedef struct _ze_kernel_desc_t
+{
+ ze_structure_type_t stype; ///< [in] type of this structure
+ const void* pNext; ///< [in][optional] pointer to extension-specific structure
+ ze_kernel_flags_t flags; ///< [in] creation flags.
+ ///< must be 0 (default) or a valid combination of ::ze_kernel_flag_t;
+ ///< default behavior may use driver-based residency.
+ const char* pKernelName; ///< [in] null-terminated name of kernel in module
+
+} ze_kernel_desc_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Create a kernel from the module.
+///
+/// @details
+/// - Modules that have unresolved imports need to be dynamically linked
+/// before a kernel can be created from them. (See ::zeModuleDynamicLink)
+/// - The application may call this function from simultaneous threads.
+/// - The implementation of this function must be thread-safe.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hModule`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == desc`
+/// + `nullptr == desc->pKernelName`
+/// + `nullptr == phKernel`
+/// - ::ZE_RESULT_ERROR_INVALID_ENUMERATION
+/// + `0x3 < desc->flags`
+/// - ::ZE_RESULT_ERROR_INVALID_KERNEL_NAME
+/// - ::ZE_RESULT_ERROR_INVALID_MODULE_UNLINKED
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeKernelCreate(
+ ze_module_handle_t hModule, ///< [in] handle of the module
+ const ze_kernel_desc_t* desc, ///< [in] pointer to kernel descriptor
+ ze_kernel_handle_t* phKernel ///< [out] handle of the Function object
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Destroys a kernel object
+///
+/// @details
+/// - The application must ensure the device is not currently referencing
+/// the kernel before it is deleted.
+/// - The implementation of this function may immediately free all Host and
+/// Device allocations associated with this kernel.
+/// - The application must **not** call this function from simultaneous
+/// threads with the same kernel handle.
+/// - The implementation of this function must be thread-safe.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hKernel`
+/// - ::ZE_RESULT_ERROR_HANDLE_OBJECT_IN_USE
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeKernelDestroy(
+ ze_kernel_handle_t hKernel ///< [in][release] handle of the kernel object
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Retrieve a function pointer from a module by name
+///
+/// @details
+/// - The function pointer is unique for the device on which the module was
+/// created.
+/// - The function pointer is no longer valid if module is destroyed.
+/// - The application may call this function from simultaneous threads.
+/// - The implementation of this function should be lock-free.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hModule`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == pFunctionName`
+/// + `nullptr == pfnFunction`
+/// - ::ZE_RESULT_ERROR_INVALID_FUNCTION_NAME
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeModuleGetFunctionPointer(
+ ze_module_handle_t hModule, ///< [in] handle of the module
+ const char* pFunctionName, ///< [in] Name of function to retrieve function pointer for.
+ void** pfnFunction ///< [out] pointer to function.
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Set group size for a kernel on the current Host thread.
+///
+/// @details
+/// - The implementation will maintain the group size in thread-local
+/// storage.
+/// - The group size will be used when a ::zeCommandListAppendLaunchKernel
+/// variant is called on the same Host thread.
+/// - The application may call this function from simultaneous threads with
+/// the same kernel handle.
+/// - The implementation of this function should be lock-free.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hKernel`
+/// - ::ZE_RESULT_ERROR_INVALID_GROUP_SIZE_DIMENSION
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeKernelSetGroupSize(
+ ze_kernel_handle_t hKernel, ///< [in] handle of the kernel object
+ uint32_t groupSizeX, ///< [in] group size for X dimension to use for this kernel
+ uint32_t groupSizeY, ///< [in] group size for Y dimension to use for this kernel
+ uint32_t groupSizeZ ///< [in] group size for Z dimension to use for this kernel
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Query a suggested group size for a kernel given a global size for each
+/// dimension.
+///
+/// @details
+/// - This function ignores the group size that is set using
+/// ::zeKernelSetGroupSize.
+/// - The application may call this function from simultaneous threads.
+/// - The implementation of this function should be lock-free.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hKernel`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == groupSizeX`
+/// + `nullptr == groupSizeY`
+/// + `nullptr == groupSizeZ`
+/// - ::ZE_RESULT_ERROR_INVALID_GLOBAL_WIDTH_DIMENSION
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeKernelSuggestGroupSize(
+ ze_kernel_handle_t hKernel, ///< [in] handle of the kernel object
+ uint32_t globalSizeX, ///< [in] global width for X dimension
+ uint32_t globalSizeY, ///< [in] global width for Y dimension
+ uint32_t globalSizeZ, ///< [in] global width for Z dimension
+ uint32_t* groupSizeX, ///< [out] recommended size of group for X dimension
+ uint32_t* groupSizeY, ///< [out] recommended size of group for Y dimension
+ uint32_t* groupSizeZ ///< [out] recommended size of group for Z dimension
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Query a suggested max group count for a cooperative kernel.
+///
+/// @details
+/// - The application may call this function from simultaneous threads.
+/// - The implementation of this function should be lock-free.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hKernel`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == totalGroupCount`
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeKernelSuggestMaxCooperativeGroupCount(
+ ze_kernel_handle_t hKernel, ///< [in] handle of the kernel object
+ uint32_t* totalGroupCount ///< [out] recommended total group count.
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Set kernel argument for a kernel on the current Host thread.
+///
+/// @details
+/// - The implementation will maintain the argument values in thread-local
+/// storage.
+/// - The argument values will be used when a
+/// ::zeCommandListAppendLaunchKernel variant is called on the same Host
+/// thread.
+/// - The application may call this function from simultaneous threads with
+/// the same kernel handle.
+/// - The implementation of this function should be lock-free.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hKernel`
+/// - ::ZE_RESULT_ERROR_INVALID_KERNEL_ARGUMENT_INDEX
+/// - ::ZE_RESULT_ERROR_INVALID_KERNEL_ARGUMENT_SIZE
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeKernelSetArgumentValue(
+ ze_kernel_handle_t hKernel, ///< [in] handle of the kernel object
+ uint32_t argIndex, ///< [in] argument index in range [0, num args - 1]
+ size_t argSize, ///< [in] size of argument type
+ const void* pArgValue ///< [in][optional] argument value represented as matching arg type. If
+ ///< null then argument value is considered null.
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Kernel indirect access flags
+typedef uint32_t ze_kernel_indirect_access_flags_t;
+typedef enum _ze_kernel_indirect_access_flag_t
+{
+ ZE_KERNEL_INDIRECT_ACCESS_FLAG_HOST = ZE_BIT(0),///< Indicates that the kernel accesses host allocations indirectly.
+ ZE_KERNEL_INDIRECT_ACCESS_FLAG_DEVICE = ZE_BIT(1), ///< Indicates that the kernel accesses device allocations indirectly.
+ ZE_KERNEL_INDIRECT_ACCESS_FLAG_SHARED = ZE_BIT(2), ///< Indicates that the kernel accesses shared allocations indirectly.
+ ZE_KERNEL_INDIRECT_ACCESS_FLAG_FORCE_UINT32 = 0x7fffffff
+
+} ze_kernel_indirect_access_flag_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Sets kernel indirect access flags.
+///
+/// @details
+/// - The application should specify which allocations will be indirectly
+/// accessed by the kernel to allow driver to optimize which allocations
+/// are made resident
+/// - This function may **not** be called from simultaneous threads with the
+/// same Kernel handle.
+/// - The implementation of this function should be lock-free.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hKernel`
+/// - ::ZE_RESULT_ERROR_INVALID_ENUMERATION
+/// + `0x7 < flags`
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeKernelSetIndirectAccess(
+ ze_kernel_handle_t hKernel, ///< [in] handle of the kernel object
+ ze_kernel_indirect_access_flags_t flags ///< [in] kernel indirect access flags
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Retrieve kernel indirect access flags.
+///
+/// @details
+/// - This function may be called from simultaneous threads with the same
+/// Kernel handle.
+/// - The implementation of this function should be lock-free.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hKernel`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == pFlags`
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeKernelGetIndirectAccess(
+ ze_kernel_handle_t hKernel, ///< [in] handle of the kernel object
+ ze_kernel_indirect_access_flags_t* pFlags ///< [out] query result for kernel indirect access flags.
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Retrieve all declared kernel attributes (i.e. can be specified with
+/// __attribute__ in runtime language).
+///
+/// @details
+/// - This function may be called from simultaneous threads with the same
+/// Kernel handle.
+/// - The implementation of this function should be lock-free.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hKernel`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == pSize`
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeKernelGetSourceAttributes(
+ ze_kernel_handle_t hKernel, ///< [in] handle of the kernel object
+ uint32_t* pSize, ///< [in,out] pointer to size of string in bytes.
+ ///< if size is zero, then the driver will update string argument.
+ ///< if size is non-zero, then driver will only retrieve string size in bytes.
+ ///< if size is larger than source attributes string, then the driver will
+ ///< update the string.
+ char** pString ///< [in,out][optional] pointer to null-terminated string where kernel
+ ///< source attributes are separated by space.
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Supported Cache Config flags
+typedef uint32_t ze_cache_config_flags_t;
+typedef enum _ze_cache_config_flag_t
+{
+ ZE_CACHE_CONFIG_FLAG_LARGE_SLM = ZE_BIT(0), ///< Large SLM size
+ ZE_CACHE_CONFIG_FLAG_LARGE_DATA = ZE_BIT(1), ///< Large General Data size
+ ZE_CACHE_CONFIG_FLAG_FORCE_UINT32 = 0x7fffffff
+
+} ze_cache_config_flag_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Sets the preferred cache configuration for a kernel on the current
+/// Host thread.
+///
+/// @details
+/// - The implementation will maintain the cache configuration in
+/// thread-local storage.
+/// - The cache configuration will be used when a
+/// ::zeCommandListAppendLaunchKernel variant is called on the same Host
+/// thread.
+/// - The application may call this function from simultaneous threads with
+/// the same kernel handle.
+/// - The implementation of this function should be lock-free.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hKernel`
+/// - ::ZE_RESULT_ERROR_INVALID_ENUMERATION
+/// + `0x3 < flags`
+/// - ::ZE_RESULT_ERROR_UNSUPPORTED_FEATURE
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeKernelSetCacheConfig(
+ ze_kernel_handle_t hKernel, ///< [in] handle of the kernel object
+ ze_cache_config_flags_t flags ///< [in] cache configuration.
+ ///< must be 0 (default configuration) or a valid combination of ::ze_cache_config_flag_t.
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+#ifndef ZE_MAX_KERNEL_UUID_SIZE
+/// @brief Maximum kernel universal unique id (UUID) size in bytes
+#define ZE_MAX_KERNEL_UUID_SIZE 16
+#endif // ZE_MAX_KERNEL_UUID_SIZE
+
+///////////////////////////////////////////////////////////////////////////////
+#ifndef ZE_MAX_MODULE_UUID_SIZE
+/// @brief Maximum module universal unique id (UUID) size in bytes
+#define ZE_MAX_MODULE_UUID_SIZE 16
+#endif // ZE_MAX_MODULE_UUID_SIZE
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Kernel universal unique id (UUID)
+typedef struct _ze_kernel_uuid_t
+{
+ uint8_t kid[ZE_MAX_KERNEL_UUID_SIZE]; ///< [out] opaque data representing a kernel UUID
+ uint8_t mid[ZE_MAX_MODULE_UUID_SIZE]; ///< [out] opaque data representing the kernel's module UUID
+
+} ze_kernel_uuid_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Kernel properties
+typedef struct _ze_kernel_properties_t
+{
+ ze_structure_type_t stype; ///< [in] type of this structure
+ void* pNext; ///< [in,out][optional] pointer to extension-specific structure
+ uint32_t numKernelArgs; ///< [out] number of kernel arguments.
+ uint32_t requiredGroupSizeX; ///< [out] required group size in the X dimension,
+ ///< or zero if there is no required group size
+ uint32_t requiredGroupSizeY; ///< [out] required group size in the Y dimension,
+ ///< or zero if there is no required group size
+ uint32_t requiredGroupSizeZ; ///< [out] required group size in the Z dimension,
+ ///< or zero if there is no required group size
+ uint32_t requiredNumSubGroups; ///< [out] required number of subgroups per thread group,
+ ///< or zero if there is no required number of subgroups
+ uint32_t requiredSubgroupSize; ///< [out] required subgroup size,
+ ///< or zero if there is no required subgroup size
+ uint32_t maxSubgroupSize; ///< [out] maximum subgroup size
+ uint32_t maxNumSubgroups; ///< [out] maximum number of subgroups per thread group
+ uint32_t localMemSize; ///< [out] local memory size used by each thread group
+ uint32_t privateMemSize; ///< [out] private memory size allocated by compiler used by each thread
+ uint32_t spillMemSize; ///< [out] spill memory size allocated by compiler
+ ze_kernel_uuid_t uuid; ///< [out] universal unique identifier.
+
+} ze_kernel_properties_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Retrieve kernel properties.
+///
+/// @details
+/// - The application may call this function from simultaneous threads.
+/// - The implementation of this function should be lock-free.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hKernel`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == pKernelProperties`
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeKernelGetProperties(
+ ze_kernel_handle_t hKernel, ///< [in] handle of the kernel object
+ ze_kernel_properties_t* pKernelProperties ///< [in,out] query result for kernel properties.
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Retrieve kernel name from Kernel.
+///
+/// @details
+/// - The caller can pass nullptr for pName when querying only for size.
+/// - The implementation will copy the kernel name into a buffer supplied by
+/// the caller.
+/// - The application may call this function from simultaneous threads.
+/// - The implementation of this function should be lock-free.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hKernel`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == pSize`
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeKernelGetName(
+ ze_kernel_handle_t hKernel, ///< [in] handle of the kernel object
+ size_t* pSize, ///< [in,out] size of kernel name string, including null terminator, in
+ ///< bytes.
+ char* pName ///< [in,out][optional] char pointer to kernel name.
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Kernel dispatch group count.
+typedef struct _ze_group_count_t
+{
+ uint32_t groupCountX; ///< [in] number of thread groups in X dimension
+ uint32_t groupCountY; ///< [in] number of thread groups in Y dimension
+ uint32_t groupCountZ; ///< [in] number of thread groups in Z dimension
+
+} ze_group_count_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Launch kernel over one or more work groups.
+///
+/// @details
+/// - The application must ensure the kernel and events are accessible by
+/// the device on which the command list was created.
+/// - This may **only** be called for a command list created with command
+/// queue group ordinal that supports compute.
+/// - The application must ensure the command list, kernel and events were
+/// created on the same context.
+/// - This function may **not** be called from simultaneous threads with the
+/// same command list handle.
+/// - The implementation of this function should be lock-free.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hCommandList`
+/// + `nullptr == hKernel`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == pLaunchFuncArgs`
+/// - ::ZE_RESULT_ERROR_INVALID_SYNCHRONIZATION_OBJECT
+/// - ::ZE_RESULT_ERROR_INVALID_SIZE
+/// + `(nullptr == phWaitEvents) && (0 < numWaitEvents)`
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeCommandListAppendLaunchKernel(
+ ze_command_list_handle_t hCommandList, ///< [in] handle of the command list
+ ze_kernel_handle_t hKernel, ///< [in] handle of the kernel object
+ const ze_group_count_t* pLaunchFuncArgs, ///< [in] thread group launch arguments
+ ze_event_handle_t hSignalEvent, ///< [in][optional] handle of the event to signal on completion
+ uint32_t numWaitEvents, ///< [in][optional] number of events to wait on before launching; must be 0
+ ///< if `nullptr == phWaitEvents`
+ ze_event_handle_t* phWaitEvents ///< [in][optional][range(0, numWaitEvents)] handle of the events to wait
+ ///< on before launching
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Launch kernel cooperatively over one or more work groups.
+///
+/// @details
+/// - The application must ensure the kernel and events are accessible by
+/// the device on which the command list was created.
+/// - This may **only** be called for a command list created with command
+/// queue group ordinal that supports compute.
+/// - This may only be used for a command list that are submitted to command
+/// queue with cooperative flag set.
+/// - The application must ensure the command list, kernel and events were
+/// created on the same context.
+/// - This function may **not** be called from simultaneous threads with the
+/// same command list handle.
+/// - The implementation of this function should be lock-free.
+/// - Use ::zeKernelSuggestMaxCooperativeGroupCount to recommend max group
+/// count for device for cooperative functions that device supports.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hCommandList`
+/// + `nullptr == hKernel`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == pLaunchFuncArgs`
+/// - ::ZE_RESULT_ERROR_INVALID_SYNCHRONIZATION_OBJECT
+/// - ::ZE_RESULT_ERROR_INVALID_SIZE
+/// + `(nullptr == phWaitEvents) && (0 < numWaitEvents)`
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeCommandListAppendLaunchCooperativeKernel(
+ ze_command_list_handle_t hCommandList, ///< [in] handle of the command list
+ ze_kernel_handle_t hKernel, ///< [in] handle of the kernel object
+ const ze_group_count_t* pLaunchFuncArgs, ///< [in] thread group launch arguments
+ ze_event_handle_t hSignalEvent, ///< [in][optional] handle of the event to signal on completion
+ uint32_t numWaitEvents, ///< [in][optional] number of events to wait on before launching; must be 0
+ ///< if `nullptr == phWaitEvents`
+ ze_event_handle_t* phWaitEvents ///< [in][optional][range(0, numWaitEvents)] handle of the events to wait
+ ///< on before launching
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Launch kernel over one or more work groups using indirect arguments.
+///
+/// @details
+/// - The application must ensure the kernel and events are accessible by
+/// the device on which the command list was created.
+/// - The application must ensure the launch arguments are visible to the
+/// device on which the command list was created.
+/// - The implementation must not access the contents of the launch
+/// arguments as they are free to be modified by either the Host or device
+/// up until execution.
+/// - This may **only** be called for a command list created with command
+/// queue group ordinal that supports compute.
+/// - The application must ensure the command list, kernel and events were
+/// created, and the memory was allocated, on the same context.
+/// - This function may **not** be called from simultaneous threads with the
+/// same command list handle.
+/// - The implementation of this function should be lock-free.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hCommandList`
+/// + `nullptr == hKernel`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == pLaunchArgumentsBuffer`
+/// - ::ZE_RESULT_ERROR_INVALID_SYNCHRONIZATION_OBJECT
+/// - ::ZE_RESULT_ERROR_INVALID_SIZE
+/// + `(nullptr == phWaitEvents) && (0 < numWaitEvents)`
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeCommandListAppendLaunchKernelIndirect(
+ ze_command_list_handle_t hCommandList, ///< [in] handle of the command list
+ ze_kernel_handle_t hKernel, ///< [in] handle of the kernel object
+ const ze_group_count_t* pLaunchArgumentsBuffer, ///< [in] pointer to device buffer that will contain thread group launch
+ ///< arguments
+ ze_event_handle_t hSignalEvent, ///< [in][optional] handle of the event to signal on completion
+ uint32_t numWaitEvents, ///< [in][optional] number of events to wait on before launching; must be 0
+ ///< if `nullptr == phWaitEvents`
+ ze_event_handle_t* phWaitEvents ///< [in][optional][range(0, numWaitEvents)] handle of the events to wait
+ ///< on before launching
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Launch multiple kernels over one or more work groups using an array of
+/// indirect arguments.
+///
+/// @details
+/// - The application must ensure the kernel and events are accessible by
+/// the device on which the command list was created.
+/// - The application must ensure the array of launch arguments and count
+/// buffer are visible to the device on which the command list was
+/// created.
+/// - The implementation must not access the contents of the array of launch
+/// arguments or count buffer as they are free to be modified by either
+/// the Host or device up until execution.
+/// - This may **only** be called for a command list created with command
+/// queue group ordinal that supports compute.
+/// - The application must enusre the command list, kernel and events were
+/// created, and the memory was allocated, on the same context.
+/// - This function may **not** be called from simultaneous threads with the
+/// same command list handle.
+/// - The implementation of this function should be lock-free.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hCommandList`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == phKernels`
+/// + `nullptr == pCountBuffer`
+/// + `nullptr == pLaunchArgumentsBuffer`
+/// - ::ZE_RESULT_ERROR_INVALID_SYNCHRONIZATION_OBJECT
+/// - ::ZE_RESULT_ERROR_INVALID_SIZE
+/// + `(nullptr == phWaitEvents) && (0 < numWaitEvents)`
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeCommandListAppendLaunchMultipleKernelsIndirect(
+ ze_command_list_handle_t hCommandList, ///< [in] handle of the command list
+ uint32_t numKernels, ///< [in] maximum number of kernels to launch
+ ze_kernel_handle_t* phKernels, ///< [in][range(0, numKernels)] handles of the kernel objects
+ const uint32_t* pCountBuffer, ///< [in] pointer to device memory location that will contain the actual
+ ///< number of kernels to launch; value must be less-than or equal-to
+ ///< numKernels
+ const ze_group_count_t* pLaunchArgumentsBuffer, ///< [in][range(0, numKernels)] pointer to device buffer that will contain
+ ///< a contiguous array of thread group launch arguments
+ ze_event_handle_t hSignalEvent, ///< [in][optional] handle of the event to signal on completion
+ uint32_t numWaitEvents, ///< [in][optional] number of events to wait on before launching; must be 0
+ ///< if `nullptr == phWaitEvents`
+ ze_event_handle_t* phWaitEvents ///< [in][optional][range(0, numWaitEvents)] handle of the events to wait
+ ///< on before launching
+ );
+
+#if !defined(__GNUC__)
+#pragma endregion
+#endif
+// Intel 'oneAPI' Level-Zero Extension APIs for Raytracing
+#if !defined(__GNUC__)
+#pragma region raytracing
+#endif
+///////////////////////////////////////////////////////////////////////////////
+#ifndef ZE_RAYTRACING_EXT_NAME
+/// @brief Raytracing Extension Name
+#define ZE_RAYTRACING_EXT_NAME "ZE_extension_raytracing"
+#endif // ZE_RAYTRACING_EXT_NAME
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Raytracing Extension Version(s)
+typedef enum _ze_raytracing_ext_version_t
+{
+ ZE_RAYTRACING_EXT_VERSION_1_0 = ZE_MAKE_VERSION( 1, 0 ),///< version 1.0
+ ZE_RAYTRACING_EXT_VERSION_CURRENT = ZE_MAKE_VERSION( 1, 0 ),///< latest known version
+ ZE_RAYTRACING_EXT_VERSION_FORCE_UINT32 = 0x7fffffff
+
+} ze_raytracing_ext_version_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Supported raytracing memory allocation flags
+typedef uint32_t ze_raytracing_mem_alloc_ext_flags_t;
+typedef enum _ze_raytracing_mem_alloc_ext_flag_t
+{
+ ZE_RAYTRACING_MEM_ALLOC_EXT_FLAG_TBD = ZE_BIT(0), ///< reserved for future use
+ ZE_RAYTRACING_MEM_ALLOC_EXT_FLAG_FORCE_UINT32 = 0x7fffffff
+
+} ze_raytracing_mem_alloc_ext_flag_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Raytracing memory allocation descriptor
+///
+/// @details
+/// - This structure must be passed to ::zeMemAllocShared or
+/// ::zeMemAllocDevice, via `pNext` member of
+/// ::ze_device_mem_alloc_desc_t, for any memory allocation that is to be
+/// accessed by raytracing fixed-function of the device.
+typedef struct _ze_raytracing_mem_alloc_ext_desc_t
+{
+ ze_structure_type_t stype; ///< [in] type of this structure
+ const void* pNext; ///< [in][optional] pointer to extension-specific structure
+ ze_raytracing_mem_alloc_ext_flags_t flags; ///< [in] flags specifying additional allocation controls.
+ ///< must be 0 (default) or a valid combination of ::ze_raytracing_mem_alloc_ext_flag_t;
+ ///< default behavior may use implicit driver-based heuristics.
+
+} ze_raytracing_mem_alloc_ext_desc_t;
+
+#if !defined(__GNUC__)
+#pragma endregion
+#endif
+// Intel 'oneAPI' Level-Zero APIs for Memory Residency
+#if !defined(__GNUC__)
+#pragma region residency
+#endif
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Makes memory resident for the device.
+///
+/// @details
+/// - The application must ensure the memory is resident before being
+/// referenced by the device
+/// - The application may call this function from simultaneous threads.
+/// - The implementation of this function should be lock-free.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hContext`
+/// + `nullptr == hDevice`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == ptr`
+/// - ::ZE_RESULT_ERROR_OUT_OF_HOST_MEMORY
+/// - ::ZE_RESULT_ERROR_OUT_OF_DEVICE_MEMORY
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeContextMakeMemoryResident(
+ ze_context_handle_t hContext, ///< [in] handle of context object
+ ze_device_handle_t hDevice, ///< [in] handle of the device
+ void* ptr, ///< [in] pointer to memory to make resident
+ size_t size ///< [in] size in bytes to make resident
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Allows memory to be evicted from the device.
+///
+/// @details
+/// - The application must ensure the device is not currently referencing
+/// the memory before it is evicted
+/// - The application may free the memory without evicting; the memory is
+/// implicitly evicted when freed.
+/// - The application may call this function from simultaneous threads.
+/// - The implementation of this function should be lock-free.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hContext`
+/// + `nullptr == hDevice`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == ptr`
+/// - ::ZE_RESULT_ERROR_OUT_OF_HOST_MEMORY
+/// - ::ZE_RESULT_ERROR_OUT_OF_DEVICE_MEMORY
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeContextEvictMemory(
+ ze_context_handle_t hContext, ///< [in] handle of context object
+ ze_device_handle_t hDevice, ///< [in] handle of the device
+ void* ptr, ///< [in] pointer to memory to evict
+ size_t size ///< [in] size in bytes to evict
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Makes image resident for the device.
+///
+/// @details
+/// - The application must ensure the image is resident before being
+/// referenced by the device
+/// - The application may call this function from simultaneous threads.
+/// - The implementation of this function should be lock-free.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hContext`
+/// + `nullptr == hDevice`
+/// + `nullptr == hImage`
+/// - ::ZE_RESULT_ERROR_OUT_OF_HOST_MEMORY
+/// - ::ZE_RESULT_ERROR_OUT_OF_DEVICE_MEMORY
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeContextMakeImageResident(
+ ze_context_handle_t hContext, ///< [in] handle of context object
+ ze_device_handle_t hDevice, ///< [in] handle of the device
+ ze_image_handle_t hImage ///< [in] handle of image to make resident
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Allows image to be evicted from the device.
+///
+/// @details
+/// - The application must ensure the device is not currently referencing
+/// the image before it is evicted
+/// - The application may destroy the image without evicting; the image is
+/// implicitly evicted when destroyed.
+/// - The application may call this function from simultaneous threads.
+/// - The implementation of this function should be lock-free.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hContext`
+/// + `nullptr == hDevice`
+/// + `nullptr == hImage`
+/// - ::ZE_RESULT_ERROR_OUT_OF_HOST_MEMORY
+/// - ::ZE_RESULT_ERROR_OUT_OF_DEVICE_MEMORY
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeContextEvictImage(
+ ze_context_handle_t hContext, ///< [in] handle of context object
+ ze_device_handle_t hDevice, ///< [in] handle of the device
+ ze_image_handle_t hImage ///< [in] handle of image to make evict
+ );
+
+#if !defined(__GNUC__)
+#pragma endregion
+#endif
+// Intel 'oneAPI' Level-Zero APIs for Sampler
+#if !defined(__GNUC__)
+#pragma region sampler
+#endif
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Sampler addressing modes
+typedef enum _ze_sampler_address_mode_t
+{
+ ZE_SAMPLER_ADDRESS_MODE_NONE = 0, ///< No coordinate modifications for out-of-bounds image access.
+ ZE_SAMPLER_ADDRESS_MODE_REPEAT = 1, ///< Out-of-bounds coordinates are wrapped back around.
+ ZE_SAMPLER_ADDRESS_MODE_CLAMP = 2, ///< Out-of-bounds coordinates are clamped to edge.
+ ZE_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 3, ///< Out-of-bounds coordinates are clamped to border color which is (0.0f,
+ ///< 0.0f, 0.0f, 0.0f) if image format swizzle contains alpha, otherwise
+ ///< (0.0f, 0.0f, 0.0f, 1.0f).
+ ZE_SAMPLER_ADDRESS_MODE_MIRROR = 4, ///< Out-of-bounds coordinates are mirrored starting from edge.
+ ZE_SAMPLER_ADDRESS_MODE_FORCE_UINT32 = 0x7fffffff
+
+} ze_sampler_address_mode_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Sampler filtering modes
+typedef enum _ze_sampler_filter_mode_t
+{
+ ZE_SAMPLER_FILTER_MODE_NEAREST = 0, ///< No coordinate modifications for out of bounds image access.
+ ZE_SAMPLER_FILTER_MODE_LINEAR = 1, ///< Out-of-bounds coordinates are wrapped back around.
+ ZE_SAMPLER_FILTER_MODE_FORCE_UINT32 = 0x7fffffff
+
+} ze_sampler_filter_mode_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Sampler descriptor
+typedef struct _ze_sampler_desc_t
+{
+ ze_structure_type_t stype; ///< [in] type of this structure
+ const void* pNext; ///< [in][optional] pointer to extension-specific structure
+ ze_sampler_address_mode_t addressMode; ///< [in] Sampler addressing mode to determine how out-of-bounds
+ ///< coordinates are handled.
+ ze_sampler_filter_mode_t filterMode; ///< [in] Sampler filter mode to determine how samples are filtered.
+ ze_bool_t isNormalized; ///< [in] Are coordinates normalized [0, 1] or not.
+
+} ze_sampler_desc_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Creates sampler on the context.
+///
+/// @details
+/// - The application must only use the sampler for the device, or its
+/// sub-devices, which was provided during creation.
+/// - The application may call this function from simultaneous threads.
+/// - The implementation of this function must be thread-safe.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hContext`
+/// + `nullptr == hDevice`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == desc`
+/// + `nullptr == phSampler`
+/// - ::ZE_RESULT_ERROR_INVALID_ENUMERATION
+/// + `::ZE_SAMPLER_ADDRESS_MODE_MIRROR < desc->addressMode`
+/// + `::ZE_SAMPLER_FILTER_MODE_LINEAR < desc->filterMode`
+/// - ::ZE_RESULT_ERROR_OUT_OF_HOST_MEMORY
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeSamplerCreate(
+ ze_context_handle_t hContext, ///< [in] handle of the context object
+ ze_device_handle_t hDevice, ///< [in] handle of the device
+ const ze_sampler_desc_t* desc, ///< [in] pointer to sampler descriptor
+ ze_sampler_handle_t* phSampler ///< [out] handle of the sampler
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Destroys sampler object
+///
+/// @details
+/// - The application must ensure the device is not currently referencing
+/// the sampler before it is deleted.
+/// - The implementation of this function may immediately free all Host and
+/// Device allocations associated with this sampler.
+/// - The application must **not** call this function from simultaneous
+/// threads with the same sampler handle.
+/// - The implementation of this function must be thread-safe.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hSampler`
+/// - ::ZE_RESULT_ERROR_HANDLE_OBJECT_IN_USE
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeSamplerDestroy(
+ ze_sampler_handle_t hSampler ///< [in][release] handle of the sampler
+ );
+
+#if !defined(__GNUC__)
+#pragma endregion
+#endif
+// Intel 'oneAPI' Level-Zero APIs for Virtual Memory Management
+#if !defined(__GNUC__)
+#pragma region virtual
+#endif
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Virtual memory page access attributes
+typedef enum _ze_memory_access_attribute_t
+{
+ ZE_MEMORY_ACCESS_ATTRIBUTE_NONE = 0, ///< Indicates the memory page is inaccessible.
+ ZE_MEMORY_ACCESS_ATTRIBUTE_READWRITE = 1, ///< Indicates the memory page supports read write access.
+ ZE_MEMORY_ACCESS_ATTRIBUTE_READONLY = 2, ///< Indicates the memory page supports read-only access.
+ ZE_MEMORY_ACCESS_ATTRIBUTE_FORCE_UINT32 = 0x7fffffff
+
+} ze_memory_access_attribute_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Reserves pages in virtual address space.
+///
+/// @details
+/// - The application must only use the memory allocation on the context for
+/// which it was created.
+/// - The starting address and size must be page aligned. See
+/// ::zeVirtualMemQueryPageSize.
+/// - If pStart is not null then implementation will attempt to reserve
+/// starting from that address. If not available then will find another
+/// suitable starting address.
+/// - The application may call this function from simultaneous threads.
+/// - The access attributes will default to none to indicate reservation is
+/// inaccessible.
+/// - The implementation of this function must be thread-safe.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hContext`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == pStart`
+/// + `nullptr == pptr`
+/// - ::ZE_RESULT_ERROR_UNSUPPORTED_SIZE
+/// + `0 == size`
+/// - ::ZE_RESULT_ERROR_OUT_OF_HOST_MEMORY
+/// - ::ZE_RESULT_ERROR_OUT_OF_DEVICE_MEMORY
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeVirtualMemReserve(
+ ze_context_handle_t hContext, ///< [in] handle of the context object
+ const void* pStart, ///< [in] pointer to start of region to reserve. If nullptr then
+ ///< implementation will choose a start address.
+ size_t size, ///< [in] size in bytes to reserve; must be page aligned.
+ void** pptr ///< [out] pointer to virtual reservation.
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Free pages in a reserved virtual address range.
+///
+/// @details
+/// - Any existing virtual mappings for the range will be unmapped.
+/// - Physical allocations objects that were mapped to this range will not
+/// be destroyed. These need to be destroyed explicitly.
+/// - The application may call this function from simultaneous threads.
+/// - The implementation of this function must be thread-safe.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hContext`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == ptr`
+/// - ::ZE_RESULT_ERROR_UNSUPPORTED_SIZE
+/// + `0 == size`
+/// - ::ZE_RESULT_ERROR_UNSUPPORTED_ALIGNMENT
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeVirtualMemFree(
+ ze_context_handle_t hContext, ///< [in] handle of the context object
+ const void* ptr, ///< [in] pointer to start of region to free.
+ size_t size ///< [in] size in bytes to free; must be page aligned.
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Queries page size to use for aligning virtual memory reservations and
+/// physical memory allocations.
+///
+/// @details
+/// - The application may call this function from simultaneous threads.
+/// - The implementation of this function must be thread-safe.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hContext`
+/// + `nullptr == hDevice`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == pagesize`
+/// - ::ZE_RESULT_ERROR_UNSUPPORTED_SIZE
+/// + `0 == size`
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeVirtualMemQueryPageSize(
+ ze_context_handle_t hContext, ///< [in] handle of the context object
+ ze_device_handle_t hDevice, ///< [in] handle of the device object
+ size_t size, ///< [in] unaligned allocation size in bytes
+ size_t* pagesize ///< [out] pointer to page size to use for start address and size
+ ///< alignments.
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Supported physical memory creation flags
+typedef uint32_t ze_physical_mem_flags_t;
+typedef enum _ze_physical_mem_flag_t
+{
+ ZE_PHYSICAL_MEM_FLAG_TBD = ZE_BIT(0), ///< reserved for future use.
+ ZE_PHYSICAL_MEM_FLAG_FORCE_UINT32 = 0x7fffffff
+
+} ze_physical_mem_flag_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Physical memory descriptor
+typedef struct _ze_physical_mem_desc_t
+{
+ ze_structure_type_t stype; ///< [in] type of this structure
+ const void* pNext; ///< [in][optional] pointer to extension-specific structure
+ ze_physical_mem_flags_t flags; ///< [in] creation flags.
+ ///< must be 0 (default) or a valid combination of ::ze_physical_mem_flag_t.
+ size_t size; ///< [in] size in bytes to reserve; must be page aligned.
+
+} ze_physical_mem_desc_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Creates a physical memory object for the context.
+///
+/// @details
+/// - The application must only use the physical memory object on the
+/// context for which it was created.
+/// - The size must be page aligned. See ::zeVirtualMemQueryPageSize.
+/// - The application may call this function from simultaneous threads.
+/// - The implementation of this function must be thread-safe.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hContext`
+/// + `nullptr == hDevice`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == desc`
+/// + `nullptr == phPhysicalMemory`
+/// - ::ZE_RESULT_ERROR_INVALID_ENUMERATION
+/// + `0x1 < desc->flags`
+/// - ::ZE_RESULT_ERROR_UNSUPPORTED_SIZE
+/// + `0 == desc->size`
+/// - ::ZE_RESULT_ERROR_OUT_OF_DEVICE_MEMORY
+/// - ::ZE_RESULT_ERROR_UNSUPPORTED_ALIGNMENT
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zePhysicalMemCreate(
+ ze_context_handle_t hContext, ///< [in] handle of the context object
+ ze_device_handle_t hDevice, ///< [in] handle of the device object
+ ze_physical_mem_desc_t* desc, ///< [in] pointer to physical memory descriptor.
+ ze_physical_mem_handle_t* phPhysicalMemory ///< [out] pointer to handle of physical memory object created
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Destroys a physical memory object.
+///
+/// @details
+/// - The application must ensure the device is not currently referencing
+/// the physical memory object before it is deleted
+/// - The application must **not** call this function from simultaneous
+/// threads with the same physical memory handle.
+/// - The implementation of this function must be thread-safe.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hContext`
+/// + `nullptr == hPhysicalMemory`
+/// - ::ZE_RESULT_ERROR_HANDLE_OBJECT_IN_USE
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zePhysicalMemDestroy(
+ ze_context_handle_t hContext, ///< [in] handle of the context object
+ ze_physical_mem_handle_t hPhysicalMemory ///< [in][release] handle of physical memory object to destroy
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Maps pages in virtual address space to pages from physical memory
+/// object.
+///
+/// @details
+/// - The virtual address range must have been reserved using
+/// ::zeVirtualMemReserve.
+/// - The application must only use the mapped memory allocation on the
+/// context for which it was created.
+/// - The virtual start address and size must be page aligned. See
+/// ::zeVirtualMemQueryPageSize.
+/// - The application should use, for the starting address and size, the
+/// same size alignment used for the physical allocation.
+/// - The application may call this function from simultaneous threads.
+/// - The implementation of this function must be thread-safe.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hContext`
+/// + `nullptr == hPhysicalMemory`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == ptr`
+/// - ::ZE_RESULT_ERROR_INVALID_ENUMERATION
+/// + `::ZE_MEMORY_ACCESS_ATTRIBUTE_READONLY < access`
+/// - ::ZE_RESULT_ERROR_UNSUPPORTED_SIZE
+/// + `0 == size`
+/// - ::ZE_RESULT_ERROR_OUT_OF_HOST_MEMORY
+/// - ::ZE_RESULT_ERROR_OUT_OF_DEVICE_MEMORY
+/// - ::ZE_RESULT_ERROR_UNSUPPORTED_ALIGNMENT
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeVirtualMemMap(
+ ze_context_handle_t hContext, ///< [in] handle of the context object
+ const void* ptr, ///< [in] pointer to start of virtual address range to map.
+ size_t size, ///< [in] size in bytes of virtual address range to map; must be page
+ ///< aligned.
+ ze_physical_mem_handle_t hPhysicalMemory, ///< [in] handle to physical memory object.
+ size_t offset, ///< [in] offset into physical memory allocation object; must be page
+ ///< aligned.
+ ze_memory_access_attribute_t access ///< [in] specifies page access attributes to apply to the virtual address
+ ///< range.
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Unmaps pages in virtual address space from pages from a physical
+/// memory object.
+///
+/// @details
+/// - The page access attributes for virtual address range will revert back
+/// to none.
+/// - The application may call this function from simultaneous threads.
+/// - The implementation of this function must be thread-safe.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hContext`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == ptr`
+/// - ::ZE_RESULT_ERROR_OUT_OF_HOST_MEMORY
+/// - ::ZE_RESULT_ERROR_OUT_OF_DEVICE_MEMORY
+/// - ::ZE_RESULT_ERROR_UNSUPPORTED_ALIGNMENT - "Address must be page aligned"
+/// - ::ZE_RESULT_ERROR_UNSUPPORTED_SIZE
+/// + `0 == size`
+/// + Size must be page aligned
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeVirtualMemUnmap(
+ ze_context_handle_t hContext, ///< [in] handle of the context object
+ const void* ptr, ///< [in] pointer to start of region to unmap.
+ size_t size ///< [in] size in bytes to unmap; must be page aligned.
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Set memory access attributes for a virtual address range.
+///
+/// @details
+/// - This function may be called from simultaneous threads with the same
+/// function handle.
+/// - The implementation of this function should be lock-free.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hContext`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == ptr`
+/// - ::ZE_RESULT_ERROR_INVALID_ENUMERATION
+/// + `::ZE_MEMORY_ACCESS_ATTRIBUTE_READONLY < access`
+/// - ::ZE_RESULT_ERROR_UNSUPPORTED_ALIGNMENT - "Address must be page aligned"
+/// - ::ZE_RESULT_ERROR_UNSUPPORTED_SIZE
+/// + `0 == size`
+/// + Size must be page aligned
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeVirtualMemSetAccessAttribute(
+ ze_context_handle_t hContext, ///< [in] handle of the context object
+ const void* ptr, ///< [in] pointer to start of reserved virtual address region.
+ size_t size, ///< [in] size in bytes; must be page aligned.
+ ze_memory_access_attribute_t access ///< [in] specifies page access attributes to apply to the virtual address
+ ///< range.
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Get memory access attribute for a virtual address range.
+///
+/// @details
+/// - If size and outSize are equal then the pages in the specified virtual
+/// address range have the same access attributes.
+/// - This function may be called from simultaneous threads with the same
+/// function handle.
+/// - The implementation of this function should be lock-free.
+///
+/// @returns
+/// - ::ZE_RESULT_SUCCESS
+/// - ::ZE_RESULT_ERROR_UNINITIALIZED
+/// - ::ZE_RESULT_ERROR_DEVICE_LOST
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_HANDLE
+/// + `nullptr == hContext`
+/// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER
+/// + `nullptr == ptr`
+/// + `nullptr == access`
+/// + `nullptr == outSize`
+/// - ::ZE_RESULT_ERROR_UNSUPPORTED_ALIGNMENT - "Address must be page aligned"
+/// - ::ZE_RESULT_ERROR_UNSUPPORTED_SIZE
+/// + `0 == size`
+/// + Size must be page aligned
+ZE_APIEXPORT ze_result_t ZE_APICALL
+zeVirtualMemGetAccessAttribute(
+ ze_context_handle_t hContext, ///< [in] handle of the context object
+ const void* ptr, ///< [in] pointer to start of virtual address region for query.
+ size_t size, ///< [in] size in bytes; must be page aligned.
+ ze_memory_access_attribute_t* access, ///< [out] query result for page access attribute.
+ size_t* outSize ///< [out] query result for size of virtual address range, starting at ptr,
+ ///< that shares same access attribute.
+ );
+
+#if !defined(__GNUC__)
+#pragma endregion
+#endif
+// Intel 'oneAPI' Level-Zero API Callbacks
+#if !defined(__GNUC__)
+#pragma region callbacks
+#endif
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeInit
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_init_params_t
+{
+ ze_init_flags_t* pflags;
+} ze_init_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeInit
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnInitCb_t)(
+ ze_init_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Table of Global callback functions pointers
+typedef struct _ze_global_callbacks_t
+{
+ ze_pfnInitCb_t pfnInitCb;
+} ze_global_callbacks_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeDriverGet
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_driver_get_params_t
+{
+ uint32_t** ppCount;
+ ze_driver_handle_t** pphDrivers;
+} ze_driver_get_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeDriverGet
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnDriverGetCb_t)(
+ ze_driver_get_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeDriverGetApiVersion
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_driver_get_api_version_params_t
+{
+ ze_driver_handle_t* phDriver;
+ ze_api_version_t** pversion;
+} ze_driver_get_api_version_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeDriverGetApiVersion
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnDriverGetApiVersionCb_t)(
+ ze_driver_get_api_version_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeDriverGetProperties
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_driver_get_properties_params_t
+{
+ ze_driver_handle_t* phDriver;
+ ze_driver_properties_t** ppDriverProperties;
+} ze_driver_get_properties_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeDriverGetProperties
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnDriverGetPropertiesCb_t)(
+ ze_driver_get_properties_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeDriverGetIpcProperties
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_driver_get_ipc_properties_params_t
+{
+ ze_driver_handle_t* phDriver;
+ ze_driver_ipc_properties_t** ppIpcProperties;
+} ze_driver_get_ipc_properties_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeDriverGetIpcProperties
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnDriverGetIpcPropertiesCb_t)(
+ ze_driver_get_ipc_properties_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeDriverGetExtensionProperties
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_driver_get_extension_properties_params_t
+{
+ ze_driver_handle_t* phDriver;
+ uint32_t** ppCount;
+ ze_driver_extension_properties_t** ppExtensionProperties;
+} ze_driver_get_extension_properties_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeDriverGetExtensionProperties
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnDriverGetExtensionPropertiesCb_t)(
+ ze_driver_get_extension_properties_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Table of Driver callback functions pointers
+typedef struct _ze_driver_callbacks_t
+{
+ ze_pfnDriverGetCb_t pfnGetCb;
+ ze_pfnDriverGetApiVersionCb_t pfnGetApiVersionCb;
+ ze_pfnDriverGetPropertiesCb_t pfnGetPropertiesCb;
+ ze_pfnDriverGetIpcPropertiesCb_t pfnGetIpcPropertiesCb;
+ ze_pfnDriverGetExtensionPropertiesCb_t pfnGetExtensionPropertiesCb;
+} ze_driver_callbacks_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeDeviceGet
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_device_get_params_t
+{
+ ze_driver_handle_t* phDriver;
+ uint32_t** ppCount;
+ ze_device_handle_t** pphDevices;
+} ze_device_get_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeDeviceGet
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnDeviceGetCb_t)(
+ ze_device_get_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeDeviceGetSubDevices
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_device_get_sub_devices_params_t
+{
+ ze_device_handle_t* phDevice;
+ uint32_t** ppCount;
+ ze_device_handle_t** pphSubdevices;
+} ze_device_get_sub_devices_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeDeviceGetSubDevices
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnDeviceGetSubDevicesCb_t)(
+ ze_device_get_sub_devices_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeDeviceGetProperties
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_device_get_properties_params_t
+{
+ ze_device_handle_t* phDevice;
+ ze_device_properties_t** ppDeviceProperties;
+} ze_device_get_properties_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeDeviceGetProperties
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnDeviceGetPropertiesCb_t)(
+ ze_device_get_properties_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeDeviceGetComputeProperties
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_device_get_compute_properties_params_t
+{
+ ze_device_handle_t* phDevice;
+ ze_device_compute_properties_t** ppComputeProperties;
+} ze_device_get_compute_properties_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeDeviceGetComputeProperties
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnDeviceGetComputePropertiesCb_t)(
+ ze_device_get_compute_properties_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeDeviceGetModuleProperties
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_device_get_module_properties_params_t
+{
+ ze_device_handle_t* phDevice;
+ ze_device_module_properties_t** ppModuleProperties;
+} ze_device_get_module_properties_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeDeviceGetModuleProperties
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnDeviceGetModulePropertiesCb_t)(
+ ze_device_get_module_properties_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeDeviceGetCommandQueueGroupProperties
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_device_get_command_queue_group_properties_params_t
+{
+ ze_device_handle_t* phDevice;
+ uint32_t** ppCount;
+ ze_command_queue_group_properties_t** ppCommandQueueGroupProperties;
+} ze_device_get_command_queue_group_properties_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeDeviceGetCommandQueueGroupProperties
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnDeviceGetCommandQueueGroupPropertiesCb_t)(
+ ze_device_get_command_queue_group_properties_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeDeviceGetMemoryProperties
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_device_get_memory_properties_params_t
+{
+ ze_device_handle_t* phDevice;
+ uint32_t** ppCount;
+ ze_device_memory_properties_t** ppMemProperties;
+} ze_device_get_memory_properties_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeDeviceGetMemoryProperties
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnDeviceGetMemoryPropertiesCb_t)(
+ ze_device_get_memory_properties_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeDeviceGetMemoryAccessProperties
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_device_get_memory_access_properties_params_t
+{
+ ze_device_handle_t* phDevice;
+ ze_device_memory_access_properties_t** ppMemAccessProperties;
+} ze_device_get_memory_access_properties_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeDeviceGetMemoryAccessProperties
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnDeviceGetMemoryAccessPropertiesCb_t)(
+ ze_device_get_memory_access_properties_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeDeviceGetCacheProperties
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_device_get_cache_properties_params_t
+{
+ ze_device_handle_t* phDevice;
+ uint32_t** ppCount;
+ ze_device_cache_properties_t** ppCacheProperties;
+} ze_device_get_cache_properties_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeDeviceGetCacheProperties
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnDeviceGetCachePropertiesCb_t)(
+ ze_device_get_cache_properties_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeDeviceGetImageProperties
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_device_get_image_properties_params_t
+{
+ ze_device_handle_t* phDevice;
+ ze_device_image_properties_t** ppImageProperties;
+} ze_device_get_image_properties_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeDeviceGetImageProperties
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnDeviceGetImagePropertiesCb_t)(
+ ze_device_get_image_properties_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeDeviceGetExternalMemoryProperties
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_device_get_external_memory_properties_params_t
+{
+ ze_device_handle_t* phDevice;
+ ze_device_external_memory_properties_t** ppExternalMemoryProperties;
+} ze_device_get_external_memory_properties_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeDeviceGetExternalMemoryProperties
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnDeviceGetExternalMemoryPropertiesCb_t)(
+ ze_device_get_external_memory_properties_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeDeviceGetP2PProperties
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_device_get_p2_p_properties_params_t
+{
+ ze_device_handle_t* phDevice;
+ ze_device_handle_t* phPeerDevice;
+ ze_device_p2p_properties_t** ppP2PProperties;
+} ze_device_get_p2_p_properties_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeDeviceGetP2PProperties
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnDeviceGetP2PPropertiesCb_t)(
+ ze_device_get_p2_p_properties_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeDeviceCanAccessPeer
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_device_can_access_peer_params_t
+{
+ ze_device_handle_t* phDevice;
+ ze_device_handle_t* phPeerDevice;
+ ze_bool_t** pvalue;
+} ze_device_can_access_peer_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeDeviceCanAccessPeer
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnDeviceCanAccessPeerCb_t)(
+ ze_device_can_access_peer_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeDeviceGetStatus
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_device_get_status_params_t
+{
+ ze_device_handle_t* phDevice;
+} ze_device_get_status_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeDeviceGetStatus
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnDeviceGetStatusCb_t)(
+ ze_device_get_status_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Table of Device callback functions pointers
+typedef struct _ze_device_callbacks_t
+{
+ ze_pfnDeviceGetCb_t pfnGetCb;
+ ze_pfnDeviceGetSubDevicesCb_t pfnGetSubDevicesCb;
+ ze_pfnDeviceGetPropertiesCb_t pfnGetPropertiesCb;
+ ze_pfnDeviceGetComputePropertiesCb_t pfnGetComputePropertiesCb;
+ ze_pfnDeviceGetModulePropertiesCb_t pfnGetModulePropertiesCb;
+ ze_pfnDeviceGetCommandQueueGroupPropertiesCb_t pfnGetCommandQueueGroupPropertiesCb;
+ ze_pfnDeviceGetMemoryPropertiesCb_t pfnGetMemoryPropertiesCb;
+ ze_pfnDeviceGetMemoryAccessPropertiesCb_t pfnGetMemoryAccessPropertiesCb;
+ ze_pfnDeviceGetCachePropertiesCb_t pfnGetCachePropertiesCb;
+ ze_pfnDeviceGetImagePropertiesCb_t pfnGetImagePropertiesCb;
+ ze_pfnDeviceGetExternalMemoryPropertiesCb_t pfnGetExternalMemoryPropertiesCb;
+ ze_pfnDeviceGetP2PPropertiesCb_t pfnGetP2PPropertiesCb;
+ ze_pfnDeviceCanAccessPeerCb_t pfnCanAccessPeerCb;
+ ze_pfnDeviceGetStatusCb_t pfnGetStatusCb;
+} ze_device_callbacks_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeContextCreate
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_context_create_params_t
+{
+ ze_driver_handle_t* phDriver;
+ const ze_context_desc_t** pdesc;
+ ze_context_handle_t** pphContext;
+} ze_context_create_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeContextCreate
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnContextCreateCb_t)(
+ ze_context_create_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeContextDestroy
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_context_destroy_params_t
+{
+ ze_context_handle_t* phContext;
+} ze_context_destroy_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeContextDestroy
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnContextDestroyCb_t)(
+ ze_context_destroy_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeContextGetStatus
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_context_get_status_params_t
+{
+ ze_context_handle_t* phContext;
+} ze_context_get_status_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeContextGetStatus
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnContextGetStatusCb_t)(
+ ze_context_get_status_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeContextSystemBarrier
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_context_system_barrier_params_t
+{
+ ze_context_handle_t* phContext;
+ ze_device_handle_t* phDevice;
+} ze_context_system_barrier_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeContextSystemBarrier
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnContextSystemBarrierCb_t)(
+ ze_context_system_barrier_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeContextMakeMemoryResident
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_context_make_memory_resident_params_t
+{
+ ze_context_handle_t* phContext;
+ ze_device_handle_t* phDevice;
+ void** pptr;
+ size_t* psize;
+} ze_context_make_memory_resident_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeContextMakeMemoryResident
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnContextMakeMemoryResidentCb_t)(
+ ze_context_make_memory_resident_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeContextEvictMemory
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_context_evict_memory_params_t
+{
+ ze_context_handle_t* phContext;
+ ze_device_handle_t* phDevice;
+ void** pptr;
+ size_t* psize;
+} ze_context_evict_memory_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeContextEvictMemory
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnContextEvictMemoryCb_t)(
+ ze_context_evict_memory_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeContextMakeImageResident
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_context_make_image_resident_params_t
+{
+ ze_context_handle_t* phContext;
+ ze_device_handle_t* phDevice;
+ ze_image_handle_t* phImage;
+} ze_context_make_image_resident_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeContextMakeImageResident
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnContextMakeImageResidentCb_t)(
+ ze_context_make_image_resident_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeContextEvictImage
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_context_evict_image_params_t
+{
+ ze_context_handle_t* phContext;
+ ze_device_handle_t* phDevice;
+ ze_image_handle_t* phImage;
+} ze_context_evict_image_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeContextEvictImage
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnContextEvictImageCb_t)(
+ ze_context_evict_image_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Table of Context callback functions pointers
+typedef struct _ze_context_callbacks_t
+{
+ ze_pfnContextCreateCb_t pfnCreateCb;
+ ze_pfnContextDestroyCb_t pfnDestroyCb;
+ ze_pfnContextGetStatusCb_t pfnGetStatusCb;
+ ze_pfnContextSystemBarrierCb_t pfnSystemBarrierCb;
+ ze_pfnContextMakeMemoryResidentCb_t pfnMakeMemoryResidentCb;
+ ze_pfnContextEvictMemoryCb_t pfnEvictMemoryCb;
+ ze_pfnContextMakeImageResidentCb_t pfnMakeImageResidentCb;
+ ze_pfnContextEvictImageCb_t pfnEvictImageCb;
+} ze_context_callbacks_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeCommandQueueCreate
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_command_queue_create_params_t
+{
+ ze_context_handle_t* phContext;
+ ze_device_handle_t* phDevice;
+ const ze_command_queue_desc_t** pdesc;
+ ze_command_queue_handle_t** pphCommandQueue;
+} ze_command_queue_create_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeCommandQueueCreate
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnCommandQueueCreateCb_t)(
+ ze_command_queue_create_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeCommandQueueDestroy
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_command_queue_destroy_params_t
+{
+ ze_command_queue_handle_t* phCommandQueue;
+} ze_command_queue_destroy_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeCommandQueueDestroy
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnCommandQueueDestroyCb_t)(
+ ze_command_queue_destroy_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeCommandQueueExecuteCommandLists
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_command_queue_execute_command_lists_params_t
+{
+ ze_command_queue_handle_t* phCommandQueue;
+ uint32_t* pnumCommandLists;
+ ze_command_list_handle_t** pphCommandLists;
+ ze_fence_handle_t* phFence;
+} ze_command_queue_execute_command_lists_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeCommandQueueExecuteCommandLists
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnCommandQueueExecuteCommandListsCb_t)(
+ ze_command_queue_execute_command_lists_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeCommandQueueSynchronize
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_command_queue_synchronize_params_t
+{
+ ze_command_queue_handle_t* phCommandQueue;
+ uint64_t* ptimeout;
+} ze_command_queue_synchronize_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeCommandQueueSynchronize
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnCommandQueueSynchronizeCb_t)(
+ ze_command_queue_synchronize_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Table of CommandQueue callback functions pointers
+typedef struct _ze_command_queue_callbacks_t
+{
+ ze_pfnCommandQueueCreateCb_t pfnCreateCb;
+ ze_pfnCommandQueueDestroyCb_t pfnDestroyCb;
+ ze_pfnCommandQueueExecuteCommandListsCb_t pfnExecuteCommandListsCb;
+ ze_pfnCommandQueueSynchronizeCb_t pfnSynchronizeCb;
+} ze_command_queue_callbacks_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeCommandListCreate
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_command_list_create_params_t
+{
+ ze_context_handle_t* phContext;
+ ze_device_handle_t* phDevice;
+ const ze_command_list_desc_t** pdesc;
+ ze_command_list_handle_t** pphCommandList;
+} ze_command_list_create_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeCommandListCreate
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnCommandListCreateCb_t)(
+ ze_command_list_create_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeCommandListCreateImmediate
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_command_list_create_immediate_params_t
+{
+ ze_context_handle_t* phContext;
+ ze_device_handle_t* phDevice;
+ const ze_command_queue_desc_t** paltdesc;
+ ze_command_list_handle_t** pphCommandList;
+} ze_command_list_create_immediate_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeCommandListCreateImmediate
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnCommandListCreateImmediateCb_t)(
+ ze_command_list_create_immediate_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeCommandListDestroy
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_command_list_destroy_params_t
+{
+ ze_command_list_handle_t* phCommandList;
+} ze_command_list_destroy_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeCommandListDestroy
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnCommandListDestroyCb_t)(
+ ze_command_list_destroy_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeCommandListClose
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_command_list_close_params_t
+{
+ ze_command_list_handle_t* phCommandList;
+} ze_command_list_close_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeCommandListClose
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnCommandListCloseCb_t)(
+ ze_command_list_close_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeCommandListReset
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_command_list_reset_params_t
+{
+ ze_command_list_handle_t* phCommandList;
+} ze_command_list_reset_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeCommandListReset
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnCommandListResetCb_t)(
+ ze_command_list_reset_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeCommandListAppendWriteGlobalTimestamp
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_command_list_append_write_global_timestamp_params_t
+{
+ ze_command_list_handle_t* phCommandList;
+ uint64_t** pdstptr;
+ ze_event_handle_t* phSignalEvent;
+ uint32_t* pnumWaitEvents;
+ ze_event_handle_t** pphWaitEvents;
+} ze_command_list_append_write_global_timestamp_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeCommandListAppendWriteGlobalTimestamp
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnCommandListAppendWriteGlobalTimestampCb_t)(
+ ze_command_list_append_write_global_timestamp_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeCommandListAppendBarrier
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_command_list_append_barrier_params_t
+{
+ ze_command_list_handle_t* phCommandList;
+ ze_event_handle_t* phSignalEvent;
+ uint32_t* pnumWaitEvents;
+ ze_event_handle_t** pphWaitEvents;
+} ze_command_list_append_barrier_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeCommandListAppendBarrier
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnCommandListAppendBarrierCb_t)(
+ ze_command_list_append_barrier_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeCommandListAppendMemoryRangesBarrier
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_command_list_append_memory_ranges_barrier_params_t
+{
+ ze_command_list_handle_t* phCommandList;
+ uint32_t* pnumRanges;
+ const size_t** ppRangeSizes;
+ const void*** ppRanges;
+ ze_event_handle_t* phSignalEvent;
+ uint32_t* pnumWaitEvents;
+ ze_event_handle_t** pphWaitEvents;
+} ze_command_list_append_memory_ranges_barrier_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeCommandListAppendMemoryRangesBarrier
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnCommandListAppendMemoryRangesBarrierCb_t)(
+ ze_command_list_append_memory_ranges_barrier_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeCommandListAppendMemoryCopy
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_command_list_append_memory_copy_params_t
+{
+ ze_command_list_handle_t* phCommandList;
+ void** pdstptr;
+ const void** psrcptr;
+ size_t* psize;
+ ze_event_handle_t* phSignalEvent;
+ uint32_t* pnumWaitEvents;
+ ze_event_handle_t** pphWaitEvents;
+} ze_command_list_append_memory_copy_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeCommandListAppendMemoryCopy
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnCommandListAppendMemoryCopyCb_t)(
+ ze_command_list_append_memory_copy_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeCommandListAppendMemoryFill
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_command_list_append_memory_fill_params_t
+{
+ ze_command_list_handle_t* phCommandList;
+ void** pptr;
+ const void** ppattern;
+ size_t* ppattern_size;
+ size_t* psize;
+ ze_event_handle_t* phSignalEvent;
+ uint32_t* pnumWaitEvents;
+ ze_event_handle_t** pphWaitEvents;
+} ze_command_list_append_memory_fill_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeCommandListAppendMemoryFill
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnCommandListAppendMemoryFillCb_t)(
+ ze_command_list_append_memory_fill_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeCommandListAppendMemoryCopyRegion
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_command_list_append_memory_copy_region_params_t
+{
+ ze_command_list_handle_t* phCommandList;
+ void** pdstptr;
+ const ze_copy_region_t** pdstRegion;
+ uint32_t* pdstPitch;
+ uint32_t* pdstSlicePitch;
+ const void** psrcptr;
+ const ze_copy_region_t** psrcRegion;
+ uint32_t* psrcPitch;
+ uint32_t* psrcSlicePitch;
+ ze_event_handle_t* phSignalEvent;
+ uint32_t* pnumWaitEvents;
+ ze_event_handle_t** pphWaitEvents;
+} ze_command_list_append_memory_copy_region_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeCommandListAppendMemoryCopyRegion
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnCommandListAppendMemoryCopyRegionCb_t)(
+ ze_command_list_append_memory_copy_region_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeCommandListAppendMemoryCopyFromContext
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_command_list_append_memory_copy_from_context_params_t
+{
+ ze_command_list_handle_t* phCommandList;
+ void** pdstptr;
+ ze_context_handle_t* phContextSrc;
+ const void** psrcptr;
+ size_t* psize;
+ ze_event_handle_t* phSignalEvent;
+ uint32_t* pnumWaitEvents;
+ ze_event_handle_t** pphWaitEvents;
+} ze_command_list_append_memory_copy_from_context_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeCommandListAppendMemoryCopyFromContext
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnCommandListAppendMemoryCopyFromContextCb_t)(
+ ze_command_list_append_memory_copy_from_context_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeCommandListAppendImageCopy
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_command_list_append_image_copy_params_t
+{
+ ze_command_list_handle_t* phCommandList;
+ ze_image_handle_t* phDstImage;
+ ze_image_handle_t* phSrcImage;
+ ze_event_handle_t* phSignalEvent;
+ uint32_t* pnumWaitEvents;
+ ze_event_handle_t** pphWaitEvents;
+} ze_command_list_append_image_copy_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeCommandListAppendImageCopy
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnCommandListAppendImageCopyCb_t)(
+ ze_command_list_append_image_copy_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeCommandListAppendImageCopyRegion
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_command_list_append_image_copy_region_params_t
+{
+ ze_command_list_handle_t* phCommandList;
+ ze_image_handle_t* phDstImage;
+ ze_image_handle_t* phSrcImage;
+ const ze_image_region_t** ppDstRegion;
+ const ze_image_region_t** ppSrcRegion;
+ ze_event_handle_t* phSignalEvent;
+ uint32_t* pnumWaitEvents;
+ ze_event_handle_t** pphWaitEvents;
+} ze_command_list_append_image_copy_region_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeCommandListAppendImageCopyRegion
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnCommandListAppendImageCopyRegionCb_t)(
+ ze_command_list_append_image_copy_region_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeCommandListAppendImageCopyToMemory
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_command_list_append_image_copy_to_memory_params_t
+{
+ ze_command_list_handle_t* phCommandList;
+ void** pdstptr;
+ ze_image_handle_t* phSrcImage;
+ const ze_image_region_t** ppSrcRegion;
+ ze_event_handle_t* phSignalEvent;
+ uint32_t* pnumWaitEvents;
+ ze_event_handle_t** pphWaitEvents;
+} ze_command_list_append_image_copy_to_memory_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeCommandListAppendImageCopyToMemory
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnCommandListAppendImageCopyToMemoryCb_t)(
+ ze_command_list_append_image_copy_to_memory_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeCommandListAppendImageCopyFromMemory
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_command_list_append_image_copy_from_memory_params_t
+{
+ ze_command_list_handle_t* phCommandList;
+ ze_image_handle_t* phDstImage;
+ const void** psrcptr;
+ const ze_image_region_t** ppDstRegion;
+ ze_event_handle_t* phSignalEvent;
+ uint32_t* pnumWaitEvents;
+ ze_event_handle_t** pphWaitEvents;
+} ze_command_list_append_image_copy_from_memory_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeCommandListAppendImageCopyFromMemory
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnCommandListAppendImageCopyFromMemoryCb_t)(
+ ze_command_list_append_image_copy_from_memory_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeCommandListAppendMemoryPrefetch
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_command_list_append_memory_prefetch_params_t
+{
+ ze_command_list_handle_t* phCommandList;
+ const void** pptr;
+ size_t* psize;
+} ze_command_list_append_memory_prefetch_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeCommandListAppendMemoryPrefetch
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnCommandListAppendMemoryPrefetchCb_t)(
+ ze_command_list_append_memory_prefetch_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeCommandListAppendMemAdvise
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_command_list_append_mem_advise_params_t
+{
+ ze_command_list_handle_t* phCommandList;
+ ze_device_handle_t* phDevice;
+ const void** pptr;
+ size_t* psize;
+ ze_memory_advice_t* padvice;
+} ze_command_list_append_mem_advise_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeCommandListAppendMemAdvise
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnCommandListAppendMemAdviseCb_t)(
+ ze_command_list_append_mem_advise_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeCommandListAppendSignalEvent
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_command_list_append_signal_event_params_t
+{
+ ze_command_list_handle_t* phCommandList;
+ ze_event_handle_t* phEvent;
+} ze_command_list_append_signal_event_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeCommandListAppendSignalEvent
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnCommandListAppendSignalEventCb_t)(
+ ze_command_list_append_signal_event_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeCommandListAppendWaitOnEvents
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_command_list_append_wait_on_events_params_t
+{
+ ze_command_list_handle_t* phCommandList;
+ uint32_t* pnumEvents;
+ ze_event_handle_t** pphEvents;
+} ze_command_list_append_wait_on_events_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeCommandListAppendWaitOnEvents
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnCommandListAppendWaitOnEventsCb_t)(
+ ze_command_list_append_wait_on_events_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeCommandListAppendEventReset
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_command_list_append_event_reset_params_t
+{
+ ze_command_list_handle_t* phCommandList;
+ ze_event_handle_t* phEvent;
+} ze_command_list_append_event_reset_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeCommandListAppendEventReset
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnCommandListAppendEventResetCb_t)(
+ ze_command_list_append_event_reset_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeCommandListAppendQueryKernelTimestamps
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_command_list_append_query_kernel_timestamps_params_t
+{
+ ze_command_list_handle_t* phCommandList;
+ uint32_t* pnumEvents;
+ ze_event_handle_t** pphEvents;
+ void** pdstptr;
+ const size_t** ppOffsets;
+ ze_event_handle_t* phSignalEvent;
+ uint32_t* pnumWaitEvents;
+ ze_event_handle_t** pphWaitEvents;
+} ze_command_list_append_query_kernel_timestamps_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeCommandListAppendQueryKernelTimestamps
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnCommandListAppendQueryKernelTimestampsCb_t)(
+ ze_command_list_append_query_kernel_timestamps_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeCommandListAppendLaunchKernel
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_command_list_append_launch_kernel_params_t
+{
+ ze_command_list_handle_t* phCommandList;
+ ze_kernel_handle_t* phKernel;
+ const ze_group_count_t** ppLaunchFuncArgs;
+ ze_event_handle_t* phSignalEvent;
+ uint32_t* pnumWaitEvents;
+ ze_event_handle_t** pphWaitEvents;
+} ze_command_list_append_launch_kernel_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeCommandListAppendLaunchKernel
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnCommandListAppendLaunchKernelCb_t)(
+ ze_command_list_append_launch_kernel_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeCommandListAppendLaunchCooperativeKernel
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_command_list_append_launch_cooperative_kernel_params_t
+{
+ ze_command_list_handle_t* phCommandList;
+ ze_kernel_handle_t* phKernel;
+ const ze_group_count_t** ppLaunchFuncArgs;
+ ze_event_handle_t* phSignalEvent;
+ uint32_t* pnumWaitEvents;
+ ze_event_handle_t** pphWaitEvents;
+} ze_command_list_append_launch_cooperative_kernel_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeCommandListAppendLaunchCooperativeKernel
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnCommandListAppendLaunchCooperativeKernelCb_t)(
+ ze_command_list_append_launch_cooperative_kernel_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeCommandListAppendLaunchKernelIndirect
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_command_list_append_launch_kernel_indirect_params_t
+{
+ ze_command_list_handle_t* phCommandList;
+ ze_kernel_handle_t* phKernel;
+ const ze_group_count_t** ppLaunchArgumentsBuffer;
+ ze_event_handle_t* phSignalEvent;
+ uint32_t* pnumWaitEvents;
+ ze_event_handle_t** pphWaitEvents;
+} ze_command_list_append_launch_kernel_indirect_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeCommandListAppendLaunchKernelIndirect
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnCommandListAppendLaunchKernelIndirectCb_t)(
+ ze_command_list_append_launch_kernel_indirect_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeCommandListAppendLaunchMultipleKernelsIndirect
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_command_list_append_launch_multiple_kernels_indirect_params_t
+{
+ ze_command_list_handle_t* phCommandList;
+ uint32_t* pnumKernels;
+ ze_kernel_handle_t** pphKernels;
+ const uint32_t** ppCountBuffer;
+ const ze_group_count_t** ppLaunchArgumentsBuffer;
+ ze_event_handle_t* phSignalEvent;
+ uint32_t* pnumWaitEvents;
+ ze_event_handle_t** pphWaitEvents;
+} ze_command_list_append_launch_multiple_kernels_indirect_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeCommandListAppendLaunchMultipleKernelsIndirect
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnCommandListAppendLaunchMultipleKernelsIndirectCb_t)(
+ ze_command_list_append_launch_multiple_kernels_indirect_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Table of CommandList callback functions pointers
+typedef struct _ze_command_list_callbacks_t
+{
+ ze_pfnCommandListCreateCb_t pfnCreateCb;
+ ze_pfnCommandListCreateImmediateCb_t pfnCreateImmediateCb;
+ ze_pfnCommandListDestroyCb_t pfnDestroyCb;
+ ze_pfnCommandListCloseCb_t pfnCloseCb;
+ ze_pfnCommandListResetCb_t pfnResetCb;
+ ze_pfnCommandListAppendWriteGlobalTimestampCb_t pfnAppendWriteGlobalTimestampCb;
+ ze_pfnCommandListAppendBarrierCb_t pfnAppendBarrierCb;
+ ze_pfnCommandListAppendMemoryRangesBarrierCb_t pfnAppendMemoryRangesBarrierCb;
+ ze_pfnCommandListAppendMemoryCopyCb_t pfnAppendMemoryCopyCb;
+ ze_pfnCommandListAppendMemoryFillCb_t pfnAppendMemoryFillCb;
+ ze_pfnCommandListAppendMemoryCopyRegionCb_t pfnAppendMemoryCopyRegionCb;
+ ze_pfnCommandListAppendMemoryCopyFromContextCb_t pfnAppendMemoryCopyFromContextCb;
+ ze_pfnCommandListAppendImageCopyCb_t pfnAppendImageCopyCb;
+ ze_pfnCommandListAppendImageCopyRegionCb_t pfnAppendImageCopyRegionCb;
+ ze_pfnCommandListAppendImageCopyToMemoryCb_t pfnAppendImageCopyToMemoryCb;
+ ze_pfnCommandListAppendImageCopyFromMemoryCb_t pfnAppendImageCopyFromMemoryCb;
+ ze_pfnCommandListAppendMemoryPrefetchCb_t pfnAppendMemoryPrefetchCb;
+ ze_pfnCommandListAppendMemAdviseCb_t pfnAppendMemAdviseCb;
+ ze_pfnCommandListAppendSignalEventCb_t pfnAppendSignalEventCb;
+ ze_pfnCommandListAppendWaitOnEventsCb_t pfnAppendWaitOnEventsCb;
+ ze_pfnCommandListAppendEventResetCb_t pfnAppendEventResetCb;
+ ze_pfnCommandListAppendQueryKernelTimestampsCb_t pfnAppendQueryKernelTimestampsCb;
+ ze_pfnCommandListAppendLaunchKernelCb_t pfnAppendLaunchKernelCb;
+ ze_pfnCommandListAppendLaunchCooperativeKernelCb_t pfnAppendLaunchCooperativeKernelCb;
+ ze_pfnCommandListAppendLaunchKernelIndirectCb_t pfnAppendLaunchKernelIndirectCb;
+ ze_pfnCommandListAppendLaunchMultipleKernelsIndirectCb_t pfnAppendLaunchMultipleKernelsIndirectCb;
+} ze_command_list_callbacks_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeFenceCreate
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_fence_create_params_t
+{
+ ze_command_queue_handle_t* phCommandQueue;
+ const ze_fence_desc_t** pdesc;
+ ze_fence_handle_t** pphFence;
+} ze_fence_create_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeFenceCreate
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnFenceCreateCb_t)(
+ ze_fence_create_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeFenceDestroy
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_fence_destroy_params_t
+{
+ ze_fence_handle_t* phFence;
+} ze_fence_destroy_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeFenceDestroy
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnFenceDestroyCb_t)(
+ ze_fence_destroy_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeFenceHostSynchronize
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_fence_host_synchronize_params_t
+{
+ ze_fence_handle_t* phFence;
+ uint64_t* ptimeout;
+} ze_fence_host_synchronize_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeFenceHostSynchronize
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnFenceHostSynchronizeCb_t)(
+ ze_fence_host_synchronize_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeFenceQueryStatus
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_fence_query_status_params_t
+{
+ ze_fence_handle_t* phFence;
+} ze_fence_query_status_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeFenceQueryStatus
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnFenceQueryStatusCb_t)(
+ ze_fence_query_status_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeFenceReset
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_fence_reset_params_t
+{
+ ze_fence_handle_t* phFence;
+} ze_fence_reset_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeFenceReset
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnFenceResetCb_t)(
+ ze_fence_reset_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Table of Fence callback functions pointers
+typedef struct _ze_fence_callbacks_t
+{
+ ze_pfnFenceCreateCb_t pfnCreateCb;
+ ze_pfnFenceDestroyCb_t pfnDestroyCb;
+ ze_pfnFenceHostSynchronizeCb_t pfnHostSynchronizeCb;
+ ze_pfnFenceQueryStatusCb_t pfnQueryStatusCb;
+ ze_pfnFenceResetCb_t pfnResetCb;
+} ze_fence_callbacks_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeEventPoolCreate
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_event_pool_create_params_t
+{
+ ze_context_handle_t* phContext;
+ const ze_event_pool_desc_t** pdesc;
+ uint32_t* pnumDevices;
+ ze_device_handle_t** pphDevices;
+ ze_event_pool_handle_t** pphEventPool;
+} ze_event_pool_create_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeEventPoolCreate
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnEventPoolCreateCb_t)(
+ ze_event_pool_create_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeEventPoolDestroy
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_event_pool_destroy_params_t
+{
+ ze_event_pool_handle_t* phEventPool;
+} ze_event_pool_destroy_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeEventPoolDestroy
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnEventPoolDestroyCb_t)(
+ ze_event_pool_destroy_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeEventPoolGetIpcHandle
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_event_pool_get_ipc_handle_params_t
+{
+ ze_event_pool_handle_t* phEventPool;
+ ze_ipc_event_pool_handle_t** pphIpc;
+} ze_event_pool_get_ipc_handle_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeEventPoolGetIpcHandle
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnEventPoolGetIpcHandleCb_t)(
+ ze_event_pool_get_ipc_handle_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeEventPoolOpenIpcHandle
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_event_pool_open_ipc_handle_params_t
+{
+ ze_context_handle_t* phContext;
+ ze_ipc_event_pool_handle_t* phIpc;
+ ze_event_pool_handle_t** pphEventPool;
+} ze_event_pool_open_ipc_handle_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeEventPoolOpenIpcHandle
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnEventPoolOpenIpcHandleCb_t)(
+ ze_event_pool_open_ipc_handle_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeEventPoolCloseIpcHandle
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_event_pool_close_ipc_handle_params_t
+{
+ ze_event_pool_handle_t* phEventPool;
+} ze_event_pool_close_ipc_handle_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeEventPoolCloseIpcHandle
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnEventPoolCloseIpcHandleCb_t)(
+ ze_event_pool_close_ipc_handle_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Table of EventPool callback functions pointers
+typedef struct _ze_event_pool_callbacks_t
+{
+ ze_pfnEventPoolCreateCb_t pfnCreateCb;
+ ze_pfnEventPoolDestroyCb_t pfnDestroyCb;
+ ze_pfnEventPoolGetIpcHandleCb_t pfnGetIpcHandleCb;
+ ze_pfnEventPoolOpenIpcHandleCb_t pfnOpenIpcHandleCb;
+ ze_pfnEventPoolCloseIpcHandleCb_t pfnCloseIpcHandleCb;
+} ze_event_pool_callbacks_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeEventCreate
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_event_create_params_t
+{
+ ze_event_pool_handle_t* phEventPool;
+ const ze_event_desc_t** pdesc;
+ ze_event_handle_t** pphEvent;
+} ze_event_create_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeEventCreate
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnEventCreateCb_t)(
+ ze_event_create_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeEventDestroy
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_event_destroy_params_t
+{
+ ze_event_handle_t* phEvent;
+} ze_event_destroy_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeEventDestroy
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnEventDestroyCb_t)(
+ ze_event_destroy_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeEventHostSignal
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_event_host_signal_params_t
+{
+ ze_event_handle_t* phEvent;
+} ze_event_host_signal_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeEventHostSignal
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnEventHostSignalCb_t)(
+ ze_event_host_signal_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeEventHostSynchronize
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_event_host_synchronize_params_t
+{
+ ze_event_handle_t* phEvent;
+ uint64_t* ptimeout;
+} ze_event_host_synchronize_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeEventHostSynchronize
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnEventHostSynchronizeCb_t)(
+ ze_event_host_synchronize_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeEventQueryStatus
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_event_query_status_params_t
+{
+ ze_event_handle_t* phEvent;
+} ze_event_query_status_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeEventQueryStatus
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnEventQueryStatusCb_t)(
+ ze_event_query_status_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeEventHostReset
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_event_host_reset_params_t
+{
+ ze_event_handle_t* phEvent;
+} ze_event_host_reset_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeEventHostReset
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnEventHostResetCb_t)(
+ ze_event_host_reset_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeEventQueryKernelTimestamp
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_event_query_kernel_timestamp_params_t
+{
+ ze_event_handle_t* phEvent;
+ ze_kernel_timestamp_result_t** pdstptr;
+} ze_event_query_kernel_timestamp_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeEventQueryKernelTimestamp
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnEventQueryKernelTimestampCb_t)(
+ ze_event_query_kernel_timestamp_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Table of Event callback functions pointers
+typedef struct _ze_event_callbacks_t
+{
+ ze_pfnEventCreateCb_t pfnCreateCb;
+ ze_pfnEventDestroyCb_t pfnDestroyCb;
+ ze_pfnEventHostSignalCb_t pfnHostSignalCb;
+ ze_pfnEventHostSynchronizeCb_t pfnHostSynchronizeCb;
+ ze_pfnEventQueryStatusCb_t pfnQueryStatusCb;
+ ze_pfnEventHostResetCb_t pfnHostResetCb;
+ ze_pfnEventQueryKernelTimestampCb_t pfnQueryKernelTimestampCb;
+} ze_event_callbacks_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeImageGetProperties
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_image_get_properties_params_t
+{
+ ze_device_handle_t* phDevice;
+ const ze_image_desc_t** pdesc;
+ ze_image_properties_t** ppImageProperties;
+} ze_image_get_properties_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeImageGetProperties
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnImageGetPropertiesCb_t)(
+ ze_image_get_properties_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeImageCreate
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_image_create_params_t
+{
+ ze_context_handle_t* phContext;
+ ze_device_handle_t* phDevice;
+ const ze_image_desc_t** pdesc;
+ ze_image_handle_t** pphImage;
+} ze_image_create_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeImageCreate
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnImageCreateCb_t)(
+ ze_image_create_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeImageDestroy
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_image_destroy_params_t
+{
+ ze_image_handle_t* phImage;
+} ze_image_destroy_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeImageDestroy
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnImageDestroyCb_t)(
+ ze_image_destroy_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Table of Image callback functions pointers
+typedef struct _ze_image_callbacks_t
+{
+ ze_pfnImageGetPropertiesCb_t pfnGetPropertiesCb;
+ ze_pfnImageCreateCb_t pfnCreateCb;
+ ze_pfnImageDestroyCb_t pfnDestroyCb;
+} ze_image_callbacks_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeModuleCreate
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_module_create_params_t
+{
+ ze_context_handle_t* phContext;
+ ze_device_handle_t* phDevice;
+ const ze_module_desc_t** pdesc;
+ ze_module_handle_t** pphModule;
+ ze_module_build_log_handle_t** pphBuildLog;
+} ze_module_create_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeModuleCreate
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnModuleCreateCb_t)(
+ ze_module_create_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeModuleDestroy
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_module_destroy_params_t
+{
+ ze_module_handle_t* phModule;
+} ze_module_destroy_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeModuleDestroy
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnModuleDestroyCb_t)(
+ ze_module_destroy_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeModuleDynamicLink
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_module_dynamic_link_params_t
+{
+ uint32_t* pnumModules;
+ ze_module_handle_t** pphModules;
+ ze_module_build_log_handle_t** pphLinkLog;
+} ze_module_dynamic_link_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeModuleDynamicLink
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnModuleDynamicLinkCb_t)(
+ ze_module_dynamic_link_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeModuleGetNativeBinary
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_module_get_native_binary_params_t
+{
+ ze_module_handle_t* phModule;
+ size_t** ppSize;
+ uint8_t** ppModuleNativeBinary;
+} ze_module_get_native_binary_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeModuleGetNativeBinary
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnModuleGetNativeBinaryCb_t)(
+ ze_module_get_native_binary_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeModuleGetGlobalPointer
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_module_get_global_pointer_params_t
+{
+ ze_module_handle_t* phModule;
+ const char** ppGlobalName;
+ size_t** ppSize;
+ void*** ppptr;
+} ze_module_get_global_pointer_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeModuleGetGlobalPointer
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnModuleGetGlobalPointerCb_t)(
+ ze_module_get_global_pointer_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeModuleGetKernelNames
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_module_get_kernel_names_params_t
+{
+ ze_module_handle_t* phModule;
+ uint32_t** ppCount;
+ const char*** ppNames;
+} ze_module_get_kernel_names_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeModuleGetKernelNames
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnModuleGetKernelNamesCb_t)(
+ ze_module_get_kernel_names_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeModuleGetProperties
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_module_get_properties_params_t
+{
+ ze_module_handle_t* phModule;
+ ze_module_properties_t** ppModuleProperties;
+} ze_module_get_properties_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeModuleGetProperties
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnModuleGetPropertiesCb_t)(
+ ze_module_get_properties_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeModuleGetFunctionPointer
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_module_get_function_pointer_params_t
+{
+ ze_module_handle_t* phModule;
+ const char** ppFunctionName;
+ void*** ppfnFunction;
+} ze_module_get_function_pointer_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeModuleGetFunctionPointer
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnModuleGetFunctionPointerCb_t)(
+ ze_module_get_function_pointer_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Table of Module callback functions pointers
+typedef struct _ze_module_callbacks_t
+{
+ ze_pfnModuleCreateCb_t pfnCreateCb;
+ ze_pfnModuleDestroyCb_t pfnDestroyCb;
+ ze_pfnModuleDynamicLinkCb_t pfnDynamicLinkCb;
+ ze_pfnModuleGetNativeBinaryCb_t pfnGetNativeBinaryCb;
+ ze_pfnModuleGetGlobalPointerCb_t pfnGetGlobalPointerCb;
+ ze_pfnModuleGetKernelNamesCb_t pfnGetKernelNamesCb;
+ ze_pfnModuleGetPropertiesCb_t pfnGetPropertiesCb;
+ ze_pfnModuleGetFunctionPointerCb_t pfnGetFunctionPointerCb;
+} ze_module_callbacks_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeModuleBuildLogDestroy
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_module_build_log_destroy_params_t
+{
+ ze_module_build_log_handle_t* phModuleBuildLog;
+} ze_module_build_log_destroy_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeModuleBuildLogDestroy
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnModuleBuildLogDestroyCb_t)(
+ ze_module_build_log_destroy_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeModuleBuildLogGetString
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_module_build_log_get_string_params_t
+{
+ ze_module_build_log_handle_t* phModuleBuildLog;
+ size_t** ppSize;
+ char** ppBuildLog;
+} ze_module_build_log_get_string_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeModuleBuildLogGetString
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnModuleBuildLogGetStringCb_t)(
+ ze_module_build_log_get_string_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Table of ModuleBuildLog callback functions pointers
+typedef struct _ze_module_build_log_callbacks_t
+{
+ ze_pfnModuleBuildLogDestroyCb_t pfnDestroyCb;
+ ze_pfnModuleBuildLogGetStringCb_t pfnGetStringCb;
+} ze_module_build_log_callbacks_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeKernelCreate
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_kernel_create_params_t
+{
+ ze_module_handle_t* phModule;
+ const ze_kernel_desc_t** pdesc;
+ ze_kernel_handle_t** pphKernel;
+} ze_kernel_create_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeKernelCreate
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnKernelCreateCb_t)(
+ ze_kernel_create_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeKernelDestroy
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_kernel_destroy_params_t
+{
+ ze_kernel_handle_t* phKernel;
+} ze_kernel_destroy_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeKernelDestroy
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnKernelDestroyCb_t)(
+ ze_kernel_destroy_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeKernelSetCacheConfig
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_kernel_set_cache_config_params_t
+{
+ ze_kernel_handle_t* phKernel;
+ ze_cache_config_flags_t* pflags;
+} ze_kernel_set_cache_config_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeKernelSetCacheConfig
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnKernelSetCacheConfigCb_t)(
+ ze_kernel_set_cache_config_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeKernelSetGroupSize
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_kernel_set_group_size_params_t
+{
+ ze_kernel_handle_t* phKernel;
+ uint32_t* pgroupSizeX;
+ uint32_t* pgroupSizeY;
+ uint32_t* pgroupSizeZ;
+} ze_kernel_set_group_size_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeKernelSetGroupSize
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnKernelSetGroupSizeCb_t)(
+ ze_kernel_set_group_size_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeKernelSuggestGroupSize
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_kernel_suggest_group_size_params_t
+{
+ ze_kernel_handle_t* phKernel;
+ uint32_t* pglobalSizeX;
+ uint32_t* pglobalSizeY;
+ uint32_t* pglobalSizeZ;
+ uint32_t** pgroupSizeX;
+ uint32_t** pgroupSizeY;
+ uint32_t** pgroupSizeZ;
+} ze_kernel_suggest_group_size_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeKernelSuggestGroupSize
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnKernelSuggestGroupSizeCb_t)(
+ ze_kernel_suggest_group_size_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeKernelSuggestMaxCooperativeGroupCount
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_kernel_suggest_max_cooperative_group_count_params_t
+{
+ ze_kernel_handle_t* phKernel;
+ uint32_t** ptotalGroupCount;
+} ze_kernel_suggest_max_cooperative_group_count_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeKernelSuggestMaxCooperativeGroupCount
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnKernelSuggestMaxCooperativeGroupCountCb_t)(
+ ze_kernel_suggest_max_cooperative_group_count_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeKernelSetArgumentValue
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_kernel_set_argument_value_params_t
+{
+ ze_kernel_handle_t* phKernel;
+ uint32_t* pargIndex;
+ size_t* pargSize;
+ const void** ppArgValue;
+} ze_kernel_set_argument_value_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeKernelSetArgumentValue
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnKernelSetArgumentValueCb_t)(
+ ze_kernel_set_argument_value_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeKernelSetIndirectAccess
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_kernel_set_indirect_access_params_t
+{
+ ze_kernel_handle_t* phKernel;
+ ze_kernel_indirect_access_flags_t* pflags;
+} ze_kernel_set_indirect_access_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeKernelSetIndirectAccess
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnKernelSetIndirectAccessCb_t)(
+ ze_kernel_set_indirect_access_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeKernelGetIndirectAccess
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_kernel_get_indirect_access_params_t
+{
+ ze_kernel_handle_t* phKernel;
+ ze_kernel_indirect_access_flags_t** ppFlags;
+} ze_kernel_get_indirect_access_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeKernelGetIndirectAccess
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnKernelGetIndirectAccessCb_t)(
+ ze_kernel_get_indirect_access_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeKernelGetSourceAttributes
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_kernel_get_source_attributes_params_t
+{
+ ze_kernel_handle_t* phKernel;
+ uint32_t** ppSize;
+ char*** ppString;
+} ze_kernel_get_source_attributes_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeKernelGetSourceAttributes
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnKernelGetSourceAttributesCb_t)(
+ ze_kernel_get_source_attributes_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeKernelGetProperties
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_kernel_get_properties_params_t
+{
+ ze_kernel_handle_t* phKernel;
+ ze_kernel_properties_t** ppKernelProperties;
+} ze_kernel_get_properties_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeKernelGetProperties
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnKernelGetPropertiesCb_t)(
+ ze_kernel_get_properties_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeKernelGetName
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_kernel_get_name_params_t
+{
+ ze_kernel_handle_t* phKernel;
+ size_t** ppSize;
+ char** ppName;
+} ze_kernel_get_name_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeKernelGetName
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnKernelGetNameCb_t)(
+ ze_kernel_get_name_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Table of Kernel callback functions pointers
+typedef struct _ze_kernel_callbacks_t
+{
+ ze_pfnKernelCreateCb_t pfnCreateCb;
+ ze_pfnKernelDestroyCb_t pfnDestroyCb;
+ ze_pfnKernelSetCacheConfigCb_t pfnSetCacheConfigCb;
+ ze_pfnKernelSetGroupSizeCb_t pfnSetGroupSizeCb;
+ ze_pfnKernelSuggestGroupSizeCb_t pfnSuggestGroupSizeCb;
+ ze_pfnKernelSuggestMaxCooperativeGroupCountCb_t pfnSuggestMaxCooperativeGroupCountCb;
+ ze_pfnKernelSetArgumentValueCb_t pfnSetArgumentValueCb;
+ ze_pfnKernelSetIndirectAccessCb_t pfnSetIndirectAccessCb;
+ ze_pfnKernelGetIndirectAccessCb_t pfnGetIndirectAccessCb;
+ ze_pfnKernelGetSourceAttributesCb_t pfnGetSourceAttributesCb;
+ ze_pfnKernelGetPropertiesCb_t pfnGetPropertiesCb;
+ ze_pfnKernelGetNameCb_t pfnGetNameCb;
+} ze_kernel_callbacks_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeSamplerCreate
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_sampler_create_params_t
+{
+ ze_context_handle_t* phContext;
+ ze_device_handle_t* phDevice;
+ const ze_sampler_desc_t** pdesc;
+ ze_sampler_handle_t** pphSampler;
+} ze_sampler_create_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeSamplerCreate
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnSamplerCreateCb_t)(
+ ze_sampler_create_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeSamplerDestroy
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_sampler_destroy_params_t
+{
+ ze_sampler_handle_t* phSampler;
+} ze_sampler_destroy_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeSamplerDestroy
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnSamplerDestroyCb_t)(
+ ze_sampler_destroy_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Table of Sampler callback functions pointers
+typedef struct _ze_sampler_callbacks_t
+{
+ ze_pfnSamplerCreateCb_t pfnCreateCb;
+ ze_pfnSamplerDestroyCb_t pfnDestroyCb;
+} ze_sampler_callbacks_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zePhysicalMemCreate
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_physical_mem_create_params_t
+{
+ ze_context_handle_t* phContext;
+ ze_device_handle_t* phDevice;
+ ze_physical_mem_desc_t** pdesc;
+ ze_physical_mem_handle_t** pphPhysicalMemory;
+} ze_physical_mem_create_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zePhysicalMemCreate
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnPhysicalMemCreateCb_t)(
+ ze_physical_mem_create_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zePhysicalMemDestroy
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_physical_mem_destroy_params_t
+{
+ ze_context_handle_t* phContext;
+ ze_physical_mem_handle_t* phPhysicalMemory;
+} ze_physical_mem_destroy_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zePhysicalMemDestroy
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnPhysicalMemDestroyCb_t)(
+ ze_physical_mem_destroy_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Table of PhysicalMem callback functions pointers
+typedef struct _ze_physical_mem_callbacks_t
+{
+ ze_pfnPhysicalMemCreateCb_t pfnCreateCb;
+ ze_pfnPhysicalMemDestroyCb_t pfnDestroyCb;
+} ze_physical_mem_callbacks_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeMemAllocShared
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_mem_alloc_shared_params_t
+{
+ ze_context_handle_t* phContext;
+ const ze_device_mem_alloc_desc_t** pdevice_desc;
+ const ze_host_mem_alloc_desc_t** phost_desc;
+ size_t* psize;
+ size_t* palignment;
+ ze_device_handle_t* phDevice;
+ void*** ppptr;
+} ze_mem_alloc_shared_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeMemAllocShared
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnMemAllocSharedCb_t)(
+ ze_mem_alloc_shared_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeMemAllocDevice
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_mem_alloc_device_params_t
+{
+ ze_context_handle_t* phContext;
+ const ze_device_mem_alloc_desc_t** pdevice_desc;
+ size_t* psize;
+ size_t* palignment;
+ ze_device_handle_t* phDevice;
+ void*** ppptr;
+} ze_mem_alloc_device_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeMemAllocDevice
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnMemAllocDeviceCb_t)(
+ ze_mem_alloc_device_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeMemAllocHost
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_mem_alloc_host_params_t
+{
+ ze_context_handle_t* phContext;
+ const ze_host_mem_alloc_desc_t** phost_desc;
+ size_t* psize;
+ size_t* palignment;
+ void*** ppptr;
+} ze_mem_alloc_host_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeMemAllocHost
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnMemAllocHostCb_t)(
+ ze_mem_alloc_host_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeMemFree
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_mem_free_params_t
+{
+ ze_context_handle_t* phContext;
+ void** pptr;
+} ze_mem_free_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeMemFree
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnMemFreeCb_t)(
+ ze_mem_free_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeMemGetAllocProperties
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_mem_get_alloc_properties_params_t
+{
+ ze_context_handle_t* phContext;
+ const void** pptr;
+ ze_memory_allocation_properties_t** ppMemAllocProperties;
+ ze_device_handle_t** pphDevice;
+} ze_mem_get_alloc_properties_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeMemGetAllocProperties
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnMemGetAllocPropertiesCb_t)(
+ ze_mem_get_alloc_properties_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeMemGetAddressRange
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_mem_get_address_range_params_t
+{
+ ze_context_handle_t* phContext;
+ const void** pptr;
+ void*** ppBase;
+ size_t** ppSize;
+} ze_mem_get_address_range_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeMemGetAddressRange
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnMemGetAddressRangeCb_t)(
+ ze_mem_get_address_range_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeMemGetIpcHandle
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_mem_get_ipc_handle_params_t
+{
+ ze_context_handle_t* phContext;
+ const void** pptr;
+ ze_ipc_mem_handle_t** ppIpcHandle;
+} ze_mem_get_ipc_handle_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeMemGetIpcHandle
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnMemGetIpcHandleCb_t)(
+ ze_mem_get_ipc_handle_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeMemOpenIpcHandle
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_mem_open_ipc_handle_params_t
+{
+ ze_context_handle_t* phContext;
+ ze_device_handle_t* phDevice;
+ ze_ipc_mem_handle_t* phandle;
+ ze_ipc_memory_flags_t* pflags;
+ void*** ppptr;
+} ze_mem_open_ipc_handle_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeMemOpenIpcHandle
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnMemOpenIpcHandleCb_t)(
+ ze_mem_open_ipc_handle_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeMemCloseIpcHandle
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_mem_close_ipc_handle_params_t
+{
+ ze_context_handle_t* phContext;
+ const void** pptr;
+} ze_mem_close_ipc_handle_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeMemCloseIpcHandle
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnMemCloseIpcHandleCb_t)(
+ ze_mem_close_ipc_handle_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Table of Mem callback functions pointers
+typedef struct _ze_mem_callbacks_t
+{
+ ze_pfnMemAllocSharedCb_t pfnAllocSharedCb;
+ ze_pfnMemAllocDeviceCb_t pfnAllocDeviceCb;
+ ze_pfnMemAllocHostCb_t pfnAllocHostCb;
+ ze_pfnMemFreeCb_t pfnFreeCb;
+ ze_pfnMemGetAllocPropertiesCb_t pfnGetAllocPropertiesCb;
+ ze_pfnMemGetAddressRangeCb_t pfnGetAddressRangeCb;
+ ze_pfnMemGetIpcHandleCb_t pfnGetIpcHandleCb;
+ ze_pfnMemOpenIpcHandleCb_t pfnOpenIpcHandleCb;
+ ze_pfnMemCloseIpcHandleCb_t pfnCloseIpcHandleCb;
+} ze_mem_callbacks_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeVirtualMemReserve
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_virtual_mem_reserve_params_t
+{
+ ze_context_handle_t* phContext;
+ const void** ppStart;
+ size_t* psize;
+ void*** ppptr;
+} ze_virtual_mem_reserve_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeVirtualMemReserve
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnVirtualMemReserveCb_t)(
+ ze_virtual_mem_reserve_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeVirtualMemFree
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_virtual_mem_free_params_t
+{
+ ze_context_handle_t* phContext;
+ const void** pptr;
+ size_t* psize;
+} ze_virtual_mem_free_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeVirtualMemFree
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnVirtualMemFreeCb_t)(
+ ze_virtual_mem_free_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeVirtualMemQueryPageSize
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_virtual_mem_query_page_size_params_t
+{
+ ze_context_handle_t* phContext;
+ ze_device_handle_t* phDevice;
+ size_t* psize;
+ size_t** ppagesize;
+} ze_virtual_mem_query_page_size_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeVirtualMemQueryPageSize
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnVirtualMemQueryPageSizeCb_t)(
+ ze_virtual_mem_query_page_size_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeVirtualMemMap
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_virtual_mem_map_params_t
+{
+ ze_context_handle_t* phContext;
+ const void** pptr;
+ size_t* psize;
+ ze_physical_mem_handle_t* phPhysicalMemory;
+ size_t* poffset;
+ ze_memory_access_attribute_t* paccess;
+} ze_virtual_mem_map_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeVirtualMemMap
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnVirtualMemMapCb_t)(
+ ze_virtual_mem_map_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeVirtualMemUnmap
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_virtual_mem_unmap_params_t
+{
+ ze_context_handle_t* phContext;
+ const void** pptr;
+ size_t* psize;
+} ze_virtual_mem_unmap_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeVirtualMemUnmap
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnVirtualMemUnmapCb_t)(
+ ze_virtual_mem_unmap_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeVirtualMemSetAccessAttribute
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_virtual_mem_set_access_attribute_params_t
+{
+ ze_context_handle_t* phContext;
+ const void** pptr;
+ size_t* psize;
+ ze_memory_access_attribute_t* paccess;
+} ze_virtual_mem_set_access_attribute_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeVirtualMemSetAccessAttribute
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnVirtualMemSetAccessAttributeCb_t)(
+ ze_virtual_mem_set_access_attribute_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function parameters for zeVirtualMemGetAccessAttribute
+/// @details Each entry is a pointer to the parameter passed to the function;
+/// allowing the callback the ability to modify the parameter's value
+typedef struct _ze_virtual_mem_get_access_attribute_params_t
+{
+ ze_context_handle_t* phContext;
+ const void** pptr;
+ size_t* psize;
+ ze_memory_access_attribute_t** paccess;
+ size_t** poutSize;
+} ze_virtual_mem_get_access_attribute_params_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Callback function-pointer for zeVirtualMemGetAccessAttribute
+/// @param[in] params Parameters passed to this instance
+/// @param[in] result Return value
+/// @param[in] pTracerUserData Per-Tracer user data
+/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
+typedef void (ZE_APICALL *ze_pfnVirtualMemGetAccessAttributeCb_t)(
+ ze_virtual_mem_get_access_attribute_params_t* params,
+ ze_result_t result,
+ void* pTracerUserData,
+ void** ppTracerInstanceUserData
+ );
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Table of VirtualMem callback functions pointers
+typedef struct _ze_virtual_mem_callbacks_t
+{
+ ze_pfnVirtualMemReserveCb_t pfnReserveCb;
+ ze_pfnVirtualMemFreeCb_t pfnFreeCb;
+ ze_pfnVirtualMemQueryPageSizeCb_t pfnQueryPageSizeCb;
+ ze_pfnVirtualMemMapCb_t pfnMapCb;
+ ze_pfnVirtualMemUnmapCb_t pfnUnmapCb;
+ ze_pfnVirtualMemSetAccessAttributeCb_t pfnSetAccessAttributeCb;
+ ze_pfnVirtualMemGetAccessAttributeCb_t pfnGetAccessAttributeCb;
+} ze_virtual_mem_callbacks_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Container for all callbacks
+typedef struct _ze_callbacks_t
+{
+ ze_global_callbacks_t Global;
+ ze_driver_callbacks_t Driver;
+ ze_device_callbacks_t Device;
+ ze_context_callbacks_t Context;
+ ze_command_queue_callbacks_t CommandQueue;
+ ze_command_list_callbacks_t CommandList;
+ ze_fence_callbacks_t Fence;
+ ze_event_pool_callbacks_t EventPool;
+ ze_event_callbacks_t Event;
+ ze_image_callbacks_t Image;
+ ze_module_callbacks_t Module;
+ ze_module_build_log_callbacks_t ModuleBuildLog;
+ ze_kernel_callbacks_t Kernel;
+ ze_sampler_callbacks_t Sampler;
+ ze_physical_mem_callbacks_t PhysicalMem;
+ ze_mem_callbacks_t Mem;
+ ze_virtual_mem_callbacks_t VirtualMem;
+} ze_callbacks_t;
+
+#if !defined(__GNUC__)
+#pragma endregion
+#endif
+
+#if defined(__cplusplus)
+} // extern "C"
+#endif
+
+#endif // _ZE_API_H \ No newline at end of file
diff --git a/level_zero-sys/include/ze_exp_ext.h b/level_zero-sys/include/ze_exp_ext.h
new file mode 100644
index 0000000..4c785a8
--- /dev/null
+++ b/level_zero-sys/include/ze_exp_ext.h
@@ -0,0 +1,68 @@
+/*
+ * Copyright (C) 2020 Intel Corporation
+ *
+ * SPDX-License-Identifier: MIT
+ *
+ */
+
+#pragma once
+
+#include <level_zero/ze_api.h>
+
+///////////////////////////////////////////////////////////////////////////////
+// Intel 'oneAPI' Level-Zero Extension for supporting module programs.
+///////////////////////////////////////////////////////////////////////////////
+#ifndef ZE_MODULE_PROGRAM_EXP_NAME
+/// @brief Module Program Extension Name
+#define ZE_MODULE_PROGRAM_EXP_NAME "ZE_experimental_module_program"
+#endif // ZE_MODULE_PROGRAM_EXP_NAME
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Module Program Extension Version(s)
+typedef enum _ze_module_program_exp_version_t {
+ ZE_MODULE_PROGRAM_EXP_VERSION_1_0 = ZE_MAKE_VERSION(1, 0), ///< version 1.0
+ ZE_MODULE_PROGRAM_EXP_VERSION_CURRENT = ZE_MAKE_VERSION(1, 0), ///< latest known version
+ ZE_MODULE_PROGRAM_EXP_VERSION_FORCE_UINT32 = 0x7fffffff
+
+} ze_module_program_exp_version_t;
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Module extended descriptor to support multiple input modules.
+///
+/// @details
+/// - Implementation must support ::ZE_experimental_module_program extension
+/// - pInputModules, pBuildFlags, and pConstants from ::ze_module_desc_t is
+/// ignored.
+/// - Format in ::ze_module_desc_t needs to be set to
+/// ::ZE_MODULE_FORMAT_IL_SPIRV.
+typedef struct _ze_module_program_exp_desc_t {
+ ze_structure_type_t stype; ///< [in] type of this structure
+ const void *pNext; ///< [in][optional] pointer to extension-specific structure
+ uint32_t count; ///< [in] Count of input modules
+ const size_t *inputSizes; ///< [in][range(0, count)] sizes of each input IL module in pInputModules.
+ const uint8_t **pInputModules; ///< [in][range(0, count)] pointer to an array of IL (e.g. SPIR-V modules).
+ ///< Valid only for SPIR-V input.
+ const char **pBuildFlags; ///< [in][optional][range(0, count)] array of strings containing build
+ ///< flags. See pBuildFlags in ::ze_module_desc_t.
+ const ze_module_constants_t **pConstants; ///< [in][optional][range(0, count)] pointer to array of specialization
+ ///< constant strings. Valid only for SPIR-V input. This must be set to
+ ///< nullptr if no specialization constants are provided.
+
+} ze_module_program_exp_desc_t;
+
+///////////////////////////////////////////////////////////////////////////////
+// Intel 'oneAPI' Level-Zero Extension for supporting global work offset
+///////////////////////////////////////////////////////////////////////////////
+#ifndef ZE_GLOBAL_OFFSET_EXP_NAME
+/// @brief Global Offset Extension Name
+#define ZE_GLOBAL_OFFSET_EXP_NAME "ZE_experimental_global_offset"
+#endif // ZE_GLOBAL_OFFSET_EXP_NAME
+
+///////////////////////////////////////////////////////////////////////////////
+/// @brief Global work offset Extension Version(s)
+typedef enum _ze_global_offset_exp_version_t {
+ ZE_GLOBAL_OFFSET_EXP_VERSION_1_0 = ZE_MAKE_VERSION(1, 0), ///< version 1.0
+ ZE_GLOBAL_OFFSET_EXP_VERSION_CURRENT = ZE_MAKE_VERSION(1, 0), ///< latest known version
+ ZE_GLOBAL_OFFSET_EXP_VERSION_FORCE_UINT32 = 0x7fffffff
+
+} ze_global_offset_exp_version_t; \ No newline at end of file
diff --git a/level_zero-sys/src/ze_api.rs b/level_zero-sys/src/ze_api.rs
index e64988a..29fa60d 100644
--- a/level_zero-sys/src/ze_api.rs
+++ b/level_zero-sys/src/ze_api.rs
@@ -1,8 +1,5 @@
-/* automatically generated by rust-bindgen 0.54.1 */
+/* automatically generated by rust-bindgen 0.57.0 */
-pub type __uint8_t = ::std::os::raw::c_uchar;
-pub type __uint32_t = ::std::os::raw::c_uint;
-pub type __uint64_t = ::std::os::raw::c_ulong;
#[doc = ""]
#[doc = " @brief compiler-independent type"]
pub type ze_bool_t = u8;
@@ -354,9 +351,9 @@ impl _ze_result_t {
#[repr(transparent)]
#[doc = ""]
#[doc = " @brief Defines Return/Error codes"]
-#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
#[must_use]
-pub struct _ze_result_t(pub u32);
+pub struct _ze_result_t(pub ::std::os::raw::c_uint);
#[doc = ""]
#[doc = " @brief Defines Return/Error codes"]
pub use self::_ze_result_t as ze_result_t;
@@ -516,8 +513,8 @@ impl _ze_structure_type_t {
#[repr(transparent)]
#[doc = ""]
#[doc = " @brief Defines structure types"]
-#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub struct _ze_structure_type_t(pub u32);
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub struct _ze_structure_type_t(pub ::std::os::raw::c_uint);
#[doc = ""]
#[doc = " @brief Defines structure types"]
pub use self::_ze_structure_type_t as ze_structure_type_t;
@@ -564,12 +561,104 @@ impl ::std::ops::BitAndAssign for _ze_external_memory_type_flags_t {
#[repr(transparent)]
#[doc = ""]
#[doc = " @brief External memory type flags"]
-#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub struct _ze_external_memory_type_flags_t(pub u32);
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub struct _ze_external_memory_type_flags_t(pub ::std::os::raw::c_uint);
#[doc = ""]
#[doc = " @brief External memory type flags"]
pub use self::_ze_external_memory_type_flags_t as ze_external_memory_type_flags_t;
#[doc = ""]
+#[doc = " @brief Base for all properties types"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_base_properties_t {
+ #[doc = "< [in] type of this structure"]
+ pub stype: ze_structure_type_t,
+ #[doc = "< [in,out][optional] pointer to extension-specific structure"]
+ pub pNext: *mut ::std::os::raw::c_void,
+}
+#[test]
+fn bindgen_test_layout__ze_base_properties_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_base_properties_t>(),
+ 16usize,
+ concat!("Size of: ", stringify!(_ze_base_properties_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_base_properties_t>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(_ze_base_properties_t))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<_ze_base_properties_t>())).stype as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_base_properties_t),
+ "::",
+ stringify!(stype)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<_ze_base_properties_t>())).pNext as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_base_properties_t),
+ "::",
+ stringify!(pNext)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Base for all properties types"]
+pub type ze_base_properties_t = _ze_base_properties_t;
+#[doc = ""]
+#[doc = " @brief Base for all descriptor types"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_base_desc_t {
+ #[doc = "< [in] type of this structure"]
+ pub stype: ze_structure_type_t,
+ #[doc = "< [in][optional] pointer to extension-specific structure"]
+ pub pNext: *const ::std::os::raw::c_void,
+}
+#[test]
+fn bindgen_test_layout__ze_base_desc_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_base_desc_t>(),
+ 16usize,
+ concat!("Size of: ", stringify!(_ze_base_desc_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_base_desc_t>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(_ze_base_desc_t))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<_ze_base_desc_t>())).stype as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_base_desc_t),
+ "::",
+ stringify!(stype)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<_ze_base_desc_t>())).pNext as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_base_desc_t),
+ "::",
+ stringify!(pNext)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Base for all descriptor types"]
+pub type ze_base_desc_t = _ze_base_desc_t;
+#[doc = ""]
#[doc = " @brief Forward-declare ze_driver_uuid_t"]
pub type ze_driver_uuid_t = _ze_driver_uuid_t;
#[doc = ""]
@@ -588,6 +677,9 @@ pub type ze_device_uuid_t = _ze_device_uuid_t;
#[doc = " @brief Forward-declare ze_device_properties_t"]
pub type ze_device_properties_t = _ze_device_properties_t;
#[doc = ""]
+#[doc = " @brief Forward-declare ze_device_thread_t"]
+pub type ze_device_thread_t = _ze_device_thread_t;
+#[doc = ""]
#[doc = " @brief Forward-declare ze_device_compute_properties_t"]
pub type ze_device_compute_properties_t = _ze_device_compute_properties_t;
#[doc = ""]
@@ -666,6 +758,15 @@ pub type ze_host_mem_alloc_desc_t = _ze_host_mem_alloc_desc_t;
#[doc = " @brief Forward-declare ze_memory_allocation_properties_t"]
pub type ze_memory_allocation_properties_t = _ze_memory_allocation_properties_t;
#[doc = ""]
+#[doc = " @brief Forward-declare ze_external_memory_export_desc_t"]
+pub type ze_external_memory_export_desc_t = _ze_external_memory_export_desc_t;
+#[doc = ""]
+#[doc = " @brief Forward-declare ze_external_memory_import_fd_t"]
+pub type ze_external_memory_import_fd_t = _ze_external_memory_import_fd_t;
+#[doc = ""]
+#[doc = " @brief Forward-declare ze_external_memory_export_fd_t"]
+pub type ze_external_memory_export_fd_t = _ze_external_memory_export_fd_t;
+#[doc = ""]
#[doc = " @brief Forward-declare ze_module_constants_t"]
pub type ze_module_constants_t = _ze_module_constants_t;
#[doc = ""]
@@ -687,6 +788,9 @@ pub type ze_kernel_properties_t = _ze_kernel_properties_t;
#[doc = " @brief Forward-declare ze_group_count_t"]
pub type ze_group_count_t = _ze_group_count_t;
#[doc = ""]
+#[doc = " @brief Forward-declare ze_raytracing_mem_alloc_ext_desc_t"]
+pub type ze_raytracing_mem_alloc_ext_desc_t = _ze_raytracing_mem_alloc_ext_desc_t;
+#[doc = ""]
#[doc = " @brief Forward-declare ze_sampler_desc_t"]
pub type ze_sampler_desc_t = _ze_sampler_desc_t;
#[doc = ""]
@@ -728,8 +832,8 @@ impl ::std::ops::BitAndAssign for _ze_init_flags_t {
#[repr(transparent)]
#[doc = ""]
#[doc = " @brief Supported initialization flags"]
-#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub struct _ze_init_flags_t(pub u32);
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub struct _ze_init_flags_t(pub ::std::os::raw::c_uint);
#[doc = ""]
#[doc = " @brief Supported initialization flags"]
pub use self::_ze_init_flags_t as ze_init_flags_t;
@@ -797,8 +901,8 @@ impl _ze_api_version_t {
#[doc = " @details"]
#[doc = " - API versions contain major and minor attributes, use"]
#[doc = " ::ZE_MAJOR_VERSION and ::ZE_MINOR_VERSION"]
-#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub struct _ze_api_version_t(pub u32);
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub struct _ze_api_version_t(pub ::std::os::raw::c_uint);
#[doc = ""]
#[doc = " @brief Supported API versions"]
#[doc = ""]
@@ -998,8 +1102,8 @@ impl ::std::ops::BitAndAssign for _ze_ipc_property_flags_t {
#[repr(transparent)]
#[doc = ""]
#[doc = " @brief Supported IPC property flags"]
-#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub struct _ze_ipc_property_flags_t(pub u32);
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub struct _ze_ipc_property_flags_t(pub ::std::os::raw::c_uint);
#[doc = ""]
#[doc = " @brief Supported IPC property flags"]
pub use self::_ze_ipc_property_flags_t as ze_ipc_property_flags_t;
@@ -1241,8 +1345,8 @@ impl _ze_device_type_t {
#[repr(transparent)]
#[doc = ""]
#[doc = " @brief Supported device types"]
-#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub struct _ze_device_type_t(pub u32);
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub struct _ze_device_type_t(pub ::std::os::raw::c_uint);
#[doc = ""]
#[doc = " @brief Supported device types"]
pub use self::_ze_device_type_t as ze_device_type_t;
@@ -1330,8 +1434,8 @@ impl ::std::ops::BitAndAssign for _ze_device_property_flags_t {
#[repr(transparent)]
#[doc = ""]
#[doc = " @brief Supported device property flags"]
-#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub struct _ze_device_property_flags_t(pub u32);
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub struct _ze_device_property_flags_t(pub ::std::os::raw::c_uint);
#[doc = ""]
#[doc = " @brief Supported device property flags"]
pub use self::_ze_device_property_flags_t as ze_device_property_flags_t;
@@ -1647,6 +1751,77 @@ fn bindgen_test_layout__ze_device_properties_t() {
)
);
}
+#[doc = ""]
+#[doc = " @brief Device thread identifier."]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_device_thread_t {
+ #[doc = "< [in,out] the slice number."]
+ #[doc = "< Must be UINT32_MAX (all) or less than ::ze_device_properties_t.numSlices."]
+ pub slice: u32,
+ #[doc = "< [in,out] the sub-slice number within its slice."]
+ #[doc = "< Must be UINT32_MAX (all) or less than ::ze_device_properties_t.numSubslicesPerSlice."]
+ pub subslice: u32,
+ #[doc = "< [in,out] the EU number within its sub-slice."]
+ #[doc = "< Must be UINT32_MAX (all) or less than ::ze_device_properties_t.numEUsPerSubslice."]
+ pub eu: u32,
+ #[doc = "< [in,out] the thread number within its EU."]
+ #[doc = "< Must be UINT32_MAX (all) or less than ::ze_device_properties_t.numThreadsPerEU."]
+ pub thread: u32,
+}
+#[test]
+fn bindgen_test_layout__ze_device_thread_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_device_thread_t>(),
+ 16usize,
+ concat!("Size of: ", stringify!(_ze_device_thread_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_device_thread_t>(),
+ 4usize,
+ concat!("Alignment of ", stringify!(_ze_device_thread_t))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<_ze_device_thread_t>())).slice as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_device_thread_t),
+ "::",
+ stringify!(slice)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<_ze_device_thread_t>())).subslice as *const _ as usize },
+ 4usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_device_thread_t),
+ "::",
+ stringify!(subslice)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<_ze_device_thread_t>())).eu as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_device_thread_t),
+ "::",
+ stringify!(eu)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<_ze_device_thread_t>())).thread as *const _ as usize },
+ 12usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_device_thread_t),
+ "::",
+ stringify!(thread)
+ )
+ );
+}
extern "C" {
#[doc = ""]
#[doc = " @brief Retrieves properties of the device."]
@@ -1977,8 +2152,8 @@ impl ::std::ops::BitAndAssign for _ze_device_module_flags_t {
#[repr(transparent)]
#[doc = ""]
#[doc = " @brief Supported device module flags"]
-#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub struct _ze_device_module_flags_t(pub u32);
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub struct _ze_device_module_flags_t(pub ::std::os::raw::c_uint);
#[doc = ""]
#[doc = " @brief Supported device module flags"]
pub use self::_ze_device_module_flags_t as ze_device_module_flags_t;
@@ -2049,8 +2224,8 @@ impl ::std::ops::BitAndAssign for _ze_device_fp_flags_t {
#[repr(transparent)]
#[doc = ""]
#[doc = " @brief Supported floating-Point capability flags"]
-#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub struct _ze_device_fp_flags_t(pub u32);
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub struct _ze_device_fp_flags_t(pub ::std::os::raw::c_uint);
#[doc = ""]
#[doc = " @brief Supported floating-Point capability flags"]
pub use self::_ze_device_fp_flags_t as ze_device_fp_flags_t;
@@ -2313,8 +2488,8 @@ impl ::std::ops::BitAndAssign for _ze_command_queue_group_property_flags_t {
#[repr(transparent)]
#[doc = ""]
#[doc = " @brief Supported command queue group property flags"]
-#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub struct _ze_command_queue_group_property_flags_t(pub u32);
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub struct _ze_command_queue_group_property_flags_t(pub ::std::os::raw::c_uint);
#[doc = ""]
#[doc = " @brief Supported command queue group property flags"]
pub use self::_ze_command_queue_group_property_flags_t as ze_command_queue_group_property_flags_t;
@@ -2491,8 +2666,8 @@ impl ::std::ops::BitAndAssign for _ze_device_memory_property_flags_t {
#[repr(transparent)]
#[doc = ""]
#[doc = " @brief Supported device memory property flags"]
-#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub struct _ze_device_memory_property_flags_t(pub u32);
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub struct _ze_device_memory_property_flags_t(pub ::std::os::raw::c_uint);
#[doc = ""]
#[doc = " @brief Supported device memory property flags"]
pub use self::_ze_device_memory_property_flags_t as ze_device_memory_property_flags_t;
@@ -2707,8 +2882,8 @@ impl ::std::ops::BitAndAssign for _ze_memory_access_cap_flags_t {
#[doc = " @details"]
#[doc = " - Supported access capabilities for different types of memory"]
#[doc = " allocations"]
-#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub struct _ze_memory_access_cap_flags_t(pub u32);
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub struct _ze_memory_access_cap_flags_t(pub ::std::os::raw::c_uint);
#[doc = ""]
#[doc = " @brief Memory access capability flags"]
#[doc = ""]
@@ -2915,8 +3090,8 @@ impl ::std::ops::BitAndAssign for _ze_device_cache_property_flags_t {
#[repr(transparent)]
#[doc = ""]
#[doc = " @brief Supported cache control property flags"]
-#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub struct _ze_device_cache_property_flags_t(pub u32);
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub struct _ze_device_cache_property_flags_t(pub ::std::os::raw::c_uint);
#[doc = ""]
#[doc = " @brief Supported cache control property flags"]
pub use self::_ze_device_cache_property_flags_t as ze_device_cache_property_flags_t;
@@ -3400,8 +3575,8 @@ impl ::std::ops::BitAndAssign for _ze_device_p2p_property_flags_t {
#[repr(transparent)]
#[doc = ""]
#[doc = " @brief Supported device peer-to-peer property flags"]
-#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub struct _ze_device_p2p_property_flags_t(pub u32);
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub struct _ze_device_p2p_property_flags_t(pub ::std::os::raw::c_uint);
#[doc = ""]
#[doc = " @brief Supported device peer-to-peer property flags"]
pub use self::_ze_device_p2p_property_flags_t as ze_device_p2p_property_flags_t;
@@ -3588,8 +3763,8 @@ impl ::std::ops::BitAndAssign for _ze_context_flags_t {
#[repr(transparent)]
#[doc = ""]
#[doc = " @brief Supported context creation flags"]
-#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub struct _ze_context_flags_t(pub u32);
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub struct _ze_context_flags_t(pub ::std::os::raw::c_uint);
#[doc = ""]
#[doc = " @brief Supported context creation flags"]
pub use self::_ze_context_flags_t as ze_context_flags_t;
@@ -3764,8 +3939,8 @@ impl ::std::ops::BitAndAssign for _ze_command_queue_flags_t {
#[repr(transparent)]
#[doc = ""]
#[doc = " @brief Supported command queue flags"]
-#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub struct _ze_command_queue_flags_t(pub u32);
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub struct _ze_command_queue_flags_t(pub ::std::os::raw::c_uint);
#[doc = ""]
#[doc = " @brief Supported command queue flags"]
pub use self::_ze_command_queue_flags_t as ze_command_queue_flags_t;
@@ -3792,8 +3967,8 @@ impl _ze_command_queue_mode_t {
#[repr(transparent)]
#[doc = ""]
#[doc = " @brief Supported command queue modes"]
-#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub struct _ze_command_queue_mode_t(pub u32);
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub struct _ze_command_queue_mode_t(pub ::std::os::raw::c_uint);
#[doc = ""]
#[doc = " @brief Supported command queue modes"]
pub use self::_ze_command_queue_mode_t as ze_command_queue_mode_t;
@@ -3819,8 +3994,8 @@ impl _ze_command_queue_priority_t {
#[repr(transparent)]
#[doc = ""]
#[doc = " @brief Supported command queue priorities"]
-#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub struct _ze_command_queue_priority_t(pub u32);
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub struct _ze_command_queue_priority_t(pub ::std::os::raw::c_uint);
#[doc = ""]
#[doc = " @brief Supported command queue priorities"]
pub use self::_ze_command_queue_priority_t as ze_command_queue_priority_t;
@@ -4120,8 +4295,8 @@ impl ::std::ops::BitAndAssign for _ze_command_list_flags_t {
#[repr(transparent)]
#[doc = ""]
#[doc = " @brief Supported command list creation flags"]
-#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub struct _ze_command_list_flags_t(pub u32);
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub struct _ze_command_list_flags_t(pub ::std::os::raw::c_uint);
#[doc = ""]
#[doc = " @brief Supported command list creation flags"]
pub use self::_ze_command_list_flags_t as ze_command_list_flags_t;
@@ -5104,8 +5279,8 @@ impl _ze_memory_advice_t {
#[repr(transparent)]
#[doc = ""]
#[doc = " @brief Supported memory advice hints"]
-#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub struct _ze_memory_advice_t(pub u32);
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub struct _ze_memory_advice_t(pub ::std::os::raw::c_uint);
#[doc = ""]
#[doc = " @brief Supported memory advice hints"]
pub use self::_ze_memory_advice_t as ze_memory_advice_t;
@@ -5200,8 +5375,8 @@ impl ::std::ops::BitAndAssign for _ze_event_pool_flags_t {
#[repr(transparent)]
#[doc = ""]
#[doc = " @brief Supported event pool creation flags"]
-#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub struct _ze_event_pool_flags_t(pub u32);
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub struct _ze_event_pool_flags_t(pub ::std::os::raw::c_uint);
#[doc = ""]
#[doc = " @brief Supported event pool creation flags"]
pub use self::_ze_event_pool_flags_t as ze_event_pool_flags_t;
@@ -5381,8 +5556,8 @@ impl ::std::ops::BitAndAssign for _ze_event_scope_flags_t {
#[repr(transparent)]
#[doc = ""]
#[doc = " @brief Supported event scope flags"]
-#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub struct _ze_event_scope_flags_t(pub u32);
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub struct _ze_event_scope_flags_t(pub ::std::os::raw::c_uint);
#[doc = ""]
#[doc = " @brief Supported event scope flags"]
pub use self::_ze_event_scope_flags_t as ze_event_scope_flags_t;
@@ -6002,8 +6177,8 @@ impl ::std::ops::BitAndAssign for _ze_fence_flags_t {
#[repr(transparent)]
#[doc = ""]
#[doc = " @brief Supported fence creation flags"]
-#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub struct _ze_fence_flags_t(pub u32);
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub struct _ze_fence_flags_t(pub ::std::os::raw::c_uint);
#[doc = ""]
#[doc = " @brief Supported fence creation flags"]
pub use self::_ze_fence_flags_t as ze_fence_flags_t;
@@ -6230,8 +6405,8 @@ impl ::std::ops::BitAndAssign for _ze_image_flags_t {
#[repr(transparent)]
#[doc = ""]
#[doc = " @brief Supported image creation flags"]
-#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub struct _ze_image_flags_t(pub u32);
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub struct _ze_image_flags_t(pub ::std::os::raw::c_uint);
#[doc = ""]
#[doc = " @brief Supported image creation flags"]
pub use self::_ze_image_flags_t as ze_image_flags_t;
@@ -6265,8 +6440,8 @@ impl _ze_image_type_t {
#[repr(transparent)]
#[doc = ""]
#[doc = " @brief Supported image types"]
-#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub struct _ze_image_type_t(pub u32);
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub struct _ze_image_type_t(pub ::std::os::raw::c_uint);
#[doc = ""]
#[doc = " @brief Supported image types"]
pub use self::_ze_image_type_t as ze_image_type_t;
@@ -6411,8 +6586,8 @@ impl _ze_image_format_layout_t {
#[repr(transparent)]
#[doc = ""]
#[doc = " @brief Supported image format layouts"]
-#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub struct _ze_image_format_layout_t(pub u32);
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub struct _ze_image_format_layout_t(pub ::std::os::raw::c_uint);
#[doc = ""]
#[doc = " @brief Supported image format layouts"]
pub use self::_ze_image_format_layout_t as ze_image_format_layout_t;
@@ -6443,8 +6618,8 @@ impl _ze_image_format_type_t {
#[repr(transparent)]
#[doc = ""]
#[doc = " @brief Supported image format types"]
-#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub struct _ze_image_format_type_t(pub u32);
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub struct _ze_image_format_type_t(pub ::std::os::raw::c_uint);
#[doc = ""]
#[doc = " @brief Supported image format types"]
pub use self::_ze_image_format_type_t as ze_image_format_type_t;
@@ -6483,8 +6658,8 @@ impl _ze_image_format_swizzle_t {
#[repr(transparent)]
#[doc = ""]
#[doc = " @brief Supported image format component swizzle into channel"]
-#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub struct _ze_image_format_swizzle_t(pub u32);
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub struct _ze_image_format_swizzle_t(pub ::std::os::raw::c_uint);
#[doc = ""]
#[doc = " @brief Supported image format component swizzle into channel"]
pub use self::_ze_image_format_swizzle_t as ze_image_format_swizzle_t;
@@ -6783,8 +6958,8 @@ impl ::std::ops::BitAndAssign for _ze_image_sampler_filter_flags_t {
#[repr(transparent)]
#[doc = ""]
#[doc = " @brief Supported sampler filtering flags"]
-#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub struct _ze_image_sampler_filter_flags_t(pub u32);
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub struct _ze_image_sampler_filter_flags_t(pub ::std::os::raw::c_uint);
#[doc = ""]
#[doc = " @brief Supported sampler filtering flags"]
pub use self::_ze_image_sampler_filter_flags_t as ze_image_sampler_filter_flags_t;
@@ -6975,8 +7150,8 @@ impl ::std::ops::BitAndAssign for _ze_device_mem_alloc_flags_t {
#[repr(transparent)]
#[doc = ""]
#[doc = " @brief Supported memory allocation flags"]
-#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub struct _ze_device_mem_alloc_flags_t(pub u32);
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub struct _ze_device_mem_alloc_flags_t(pub ::std::os::raw::c_uint);
#[doc = ""]
#[doc = " @brief Supported memory allocation flags"]
pub use self::_ze_device_mem_alloc_flags_t as ze_device_mem_alloc_flags_t;
@@ -7106,8 +7281,8 @@ impl ::std::ops::BitAndAssign for _ze_host_mem_alloc_flags_t {
#[repr(transparent)]
#[doc = ""]
#[doc = " @brief Supported host memory allocation flags"]
-#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub struct _ze_host_mem_alloc_flags_t(pub u32);
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub struct _ze_host_mem_alloc_flags_t(pub ::std::os::raw::c_uint);
#[doc = ""]
#[doc = " @brief Supported host memory allocation flags"]
pub use self::_ze_host_mem_alloc_flags_t as ze_host_mem_alloc_flags_t;
@@ -7352,8 +7527,8 @@ impl _ze_memory_type_t {
#[repr(transparent)]
#[doc = ""]
#[doc = " @brief Memory allocation type"]
-#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub struct _ze_memory_type_t(pub u32);
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub struct _ze_memory_type_t(pub ::std::os::raw::c_uint);
#[doc = ""]
#[doc = " @brief Memory allocation type"]
pub use self::_ze_memory_type_t as ze_memory_type_t;
@@ -7567,8 +7742,8 @@ impl ::std::ops::BitAndAssign for _ze_ipc_memory_flags_t {
#[repr(transparent)]
#[doc = ""]
#[doc = " @brief Supported IPC memory flags"]
-#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub struct _ze_ipc_memory_flags_t(pub u32);
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub struct _ze_ipc_memory_flags_t(pub ::std::os::raw::c_uint);
#[doc = ""]
#[doc = " @brief Supported IPC memory flags"]
pub use self::_ze_ipc_memory_flags_t as ze_ipc_memory_flags_t;
@@ -7630,6 +7805,248 @@ extern "C" {
ptr: *const ::std::os::raw::c_void,
) -> ze_result_t;
}
+#[doc = ""]
+#[doc = " @brief Additional allocation descriptor for exporting external memory"]
+#[doc = ""]
+#[doc = " @details"]
+#[doc = " - This structure may be passed to ::zeMemAllocDevice, via the `pNext`"]
+#[doc = " member of ::ze_device_mem_alloc_desc_t, to indicate an exportable"]
+#[doc = " memory allocation."]
+#[doc = " - This structure may be passed to ::zeImageCreate, via the `pNext`"]
+#[doc = " member of ::ze_image_desc_t, to indicate an exportable image."]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_external_memory_export_desc_t {
+ #[doc = "< [in] type of this structure"]
+ pub stype: ze_structure_type_t,
+ #[doc = "< [in][optional] pointer to extension-specific structure"]
+ pub pNext: *const ::std::os::raw::c_void,
+ #[doc = "< [in] flags specifying memory export types for this allocation."]
+ #[doc = "< must be 0 (default) or a valid combination of ::ze_external_memory_type_flags_t"]
+ pub flags: ze_external_memory_type_flags_t,
+}
+#[test]
+fn bindgen_test_layout__ze_external_memory_export_desc_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_external_memory_export_desc_t>(),
+ 24usize,
+ concat!("Size of: ", stringify!(_ze_external_memory_export_desc_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_external_memory_export_desc_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_external_memory_export_desc_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_external_memory_export_desc_t>())).stype as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_external_memory_export_desc_t),
+ "::",
+ stringify!(stype)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_external_memory_export_desc_t>())).pNext as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_external_memory_export_desc_t),
+ "::",
+ stringify!(pNext)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_external_memory_export_desc_t>())).flags as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_external_memory_export_desc_t),
+ "::",
+ stringify!(flags)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Additional allocation descriptor for importing external memory as a"]
+#[doc = " file descriptor"]
+#[doc = ""]
+#[doc = " @details"]
+#[doc = " - This structure may be passed to ::zeMemAllocDevice, via the `pNext`"]
+#[doc = " member of ::ze_device_mem_alloc_desc_t, to import memory from a file"]
+#[doc = " descriptor."]
+#[doc = " - This structure may be passed to ::zeImageCreate, via the `pNext`"]
+#[doc = " member of ::ze_image_desc_t, to import memory from a file descriptor."]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_external_memory_import_fd_t {
+ #[doc = "< [in] type of this structure"]
+ pub stype: ze_structure_type_t,
+ #[doc = "< [in][optional] pointer to extension-specific structure"]
+ pub pNext: *const ::std::os::raw::c_void,
+ #[doc = "< [in] flags specifying the memory import type for the file descriptor."]
+ #[doc = "< must be 0 (default) or a valid combination of ::ze_external_memory_type_flags_t"]
+ pub flags: ze_external_memory_type_flags_t,
+ #[doc = "< [in] the file descriptor handle to import"]
+ pub fd: ::std::os::raw::c_int,
+}
+#[test]
+fn bindgen_test_layout__ze_external_memory_import_fd_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_external_memory_import_fd_t>(),
+ 24usize,
+ concat!("Size of: ", stringify!(_ze_external_memory_import_fd_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_external_memory_import_fd_t>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(_ze_external_memory_import_fd_t))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_external_memory_import_fd_t>())).stype as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_external_memory_import_fd_t),
+ "::",
+ stringify!(stype)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_external_memory_import_fd_t>())).pNext as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_external_memory_import_fd_t),
+ "::",
+ stringify!(pNext)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_external_memory_import_fd_t>())).flags as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_external_memory_import_fd_t),
+ "::",
+ stringify!(flags)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_external_memory_import_fd_t>())).fd as *const _ as usize
+ },
+ 20usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_external_memory_import_fd_t),
+ "::",
+ stringify!(fd)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Exports an allocation as a file descriptor"]
+#[doc = ""]
+#[doc = " @details"]
+#[doc = " - This structure may be passed to ::zeMemGetAllocProperties, via the"]
+#[doc = " `pNext` member of ::ze_memory_allocation_properties_t, to export a"]
+#[doc = " memory allocation as a file descriptor."]
+#[doc = " - This structure may be passed to ::zeImageGetProperties, via the"]
+#[doc = " `pNext` member of ::ze_image_properties_t, to export an image as a"]
+#[doc = " file descriptor."]
+#[doc = " - The requested memory export type must have been specified when the"]
+#[doc = " allocation was made."]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_external_memory_export_fd_t {
+ #[doc = "< [in] type of this structure"]
+ pub stype: ze_structure_type_t,
+ #[doc = "< [in][optional] pointer to extension-specific structure"]
+ pub pNext: *const ::std::os::raw::c_void,
+ #[doc = "< [in] flags specifying the memory export type for the file descriptor."]
+ #[doc = "< must be 0 (default) or a valid combination of ::ze_external_memory_type_flags_t"]
+ pub flags: ze_external_memory_type_flags_t,
+ #[doc = "< [out] the exported file descriptor handle representing the allocation."]
+ pub fd: ::std::os::raw::c_int,
+}
+#[test]
+fn bindgen_test_layout__ze_external_memory_export_fd_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_external_memory_export_fd_t>(),
+ 24usize,
+ concat!("Size of: ", stringify!(_ze_external_memory_export_fd_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_external_memory_export_fd_t>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(_ze_external_memory_export_fd_t))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_external_memory_export_fd_t>())).stype as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_external_memory_export_fd_t),
+ "::",
+ stringify!(stype)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_external_memory_export_fd_t>())).pNext as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_external_memory_export_fd_t),
+ "::",
+ stringify!(pNext)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_external_memory_export_fd_t>())).flags as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_external_memory_export_fd_t),
+ "::",
+ stringify!(flags)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_external_memory_export_fd_t>())).fd as *const _ as usize
+ },
+ 20usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_external_memory_export_fd_t),
+ "::",
+ stringify!(fd)
+ )
+ );
+}
impl _ze_module_format_t {
#[doc = "< Format is SPIRV IL format"]
pub const ZE_MODULE_FORMAT_IL_SPIRV: _ze_module_format_t = _ze_module_format_t(0);
@@ -7644,8 +8061,8 @@ impl _ze_module_format_t {
#[repr(transparent)]
#[doc = ""]
#[doc = " @brief Supported module creation input formats"]
-#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub struct _ze_module_format_t(pub u32);
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub struct _ze_module_format_t(pub ::std::os::raw::c_uint);
#[doc = ""]
#[doc = " @brief Supported module creation input formats"]
pub use self::_ze_module_format_t as ze_module_format_t;
@@ -8106,8 +8523,8 @@ impl ::std::ops::BitAndAssign for _ze_module_property_flags_t {
#[repr(transparent)]
#[doc = ""]
#[doc = " @brief Supported module property flags"]
-#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub struct _ze_module_property_flags_t(pub u32);
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub struct _ze_module_property_flags_t(pub ::std::os::raw::c_uint);
#[doc = ""]
#[doc = " @brief Supported module property flags"]
pub use self::_ze_module_property_flags_t as ze_module_property_flags_t;
@@ -8228,8 +8645,8 @@ impl ::std::ops::BitAndAssign for _ze_kernel_flags_t {
#[repr(transparent)]
#[doc = ""]
#[doc = " @brief Supported kernel creation flags"]
-#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub struct _ze_kernel_flags_t(pub u32);
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub struct _ze_kernel_flags_t(pub ::std::os::raw::c_uint);
#[doc = ""]
#[doc = " @brief Supported kernel creation flags"]
pub use self::_ze_kernel_flags_t as ze_kernel_flags_t;
@@ -8538,8 +8955,8 @@ impl ::std::ops::BitAndAssign for _ze_kernel_indirect_access_flags_t {
#[repr(transparent)]
#[doc = ""]
#[doc = " @brief Kernel indirect access flags"]
-#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub struct _ze_kernel_indirect_access_flags_t(pub u32);
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub struct _ze_kernel_indirect_access_flags_t(pub ::std::os::raw::c_uint);
#[doc = ""]
#[doc = " @brief Kernel indirect access flags"]
pub use self::_ze_kernel_indirect_access_flags_t as ze_kernel_indirect_access_flags_t;
@@ -8657,8 +9074,8 @@ impl ::std::ops::BitAndAssign for _ze_cache_config_flags_t {
#[repr(transparent)]
#[doc = ""]
#[doc = " @brief Supported Cache Config flags"]
-#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub struct _ze_cache_config_flags_t(pub u32);
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub struct _ze_cache_config_flags_t(pub ::std::os::raw::c_uint);
#[doc = ""]
#[doc = " @brief Supported Cache Config flags"]
pub use self::_ze_cache_config_flags_t as ze_cache_config_flags_t;
@@ -9217,6 +9634,150 @@ extern "C" {
phWaitEvents: *mut ze_event_handle_t,
) -> ze_result_t;
}
+impl _ze_raytracing_ext_version_t {
+ #[doc = "< version 1.0"]
+ pub const ZE_RAYTRACING_EXT_VERSION_1_0: _ze_raytracing_ext_version_t =
+ _ze_raytracing_ext_version_t(65536);
+}
+impl _ze_raytracing_ext_version_t {
+ #[doc = "< latest known version"]
+ pub const ZE_RAYTRACING_EXT_VERSION_CURRENT: _ze_raytracing_ext_version_t =
+ _ze_raytracing_ext_version_t(65536);
+}
+impl _ze_raytracing_ext_version_t {
+ pub const ZE_RAYTRACING_EXT_VERSION_FORCE_UINT32: _ze_raytracing_ext_version_t =
+ _ze_raytracing_ext_version_t(2147483647);
+}
+#[repr(transparent)]
+#[doc = ""]
+#[doc = " @brief Raytracing Extension Version(s)"]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub struct _ze_raytracing_ext_version_t(pub ::std::os::raw::c_uint);
+#[doc = ""]
+#[doc = " @brief Raytracing Extension Version(s)"]
+pub use self::_ze_raytracing_ext_version_t as ze_raytracing_ext_version_t;
+impl _ze_raytracing_mem_alloc_ext_flags_t {
+ #[doc = "< reserved for future use"]
+ pub const ZE_RAYTRACING_MEM_ALLOC_EXT_FLAG_TBD: _ze_raytracing_mem_alloc_ext_flags_t =
+ _ze_raytracing_mem_alloc_ext_flags_t(1);
+}
+impl _ze_raytracing_mem_alloc_ext_flags_t {
+ pub const ZE_RAYTRACING_MEM_ALLOC_EXT_FLAG_FORCE_UINT32: _ze_raytracing_mem_alloc_ext_flags_t =
+ _ze_raytracing_mem_alloc_ext_flags_t(2147483647);
+}
+impl ::std::ops::BitOr<_ze_raytracing_mem_alloc_ext_flags_t>
+ for _ze_raytracing_mem_alloc_ext_flags_t
+{
+ type Output = Self;
+ #[inline]
+ fn bitor(self, other: Self) -> Self {
+ _ze_raytracing_mem_alloc_ext_flags_t(self.0 | other.0)
+ }
+}
+impl ::std::ops::BitOrAssign for _ze_raytracing_mem_alloc_ext_flags_t {
+ #[inline]
+ fn bitor_assign(&mut self, rhs: _ze_raytracing_mem_alloc_ext_flags_t) {
+ self.0 |= rhs.0;
+ }
+}
+impl ::std::ops::BitAnd<_ze_raytracing_mem_alloc_ext_flags_t>
+ for _ze_raytracing_mem_alloc_ext_flags_t
+{
+ type Output = Self;
+ #[inline]
+ fn bitand(self, other: Self) -> Self {
+ _ze_raytracing_mem_alloc_ext_flags_t(self.0 & other.0)
+ }
+}
+impl ::std::ops::BitAndAssign for _ze_raytracing_mem_alloc_ext_flags_t {
+ #[inline]
+ fn bitand_assign(&mut self, rhs: _ze_raytracing_mem_alloc_ext_flags_t) {
+ self.0 &= rhs.0;
+ }
+}
+#[repr(transparent)]
+#[doc = ""]
+#[doc = " @brief Supported raytracing memory allocation flags"]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub struct _ze_raytracing_mem_alloc_ext_flags_t(pub ::std::os::raw::c_uint);
+#[doc = ""]
+#[doc = " @brief Supported raytracing memory allocation flags"]
+pub use self::_ze_raytracing_mem_alloc_ext_flags_t as ze_raytracing_mem_alloc_ext_flags_t;
+#[doc = ""]
+#[doc = " @brief Raytracing memory allocation descriptor"]
+#[doc = ""]
+#[doc = " @details"]
+#[doc = " - This structure must be passed to ::zeMemAllocShared or"]
+#[doc = " ::zeMemAllocDevice, via `pNext` member of"]
+#[doc = " ::ze_device_mem_alloc_desc_t, for any memory allocation that is to be"]
+#[doc = " accessed by raytracing fixed-function of the device."]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_raytracing_mem_alloc_ext_desc_t {
+ #[doc = "< [in] type of this structure"]
+ pub stype: ze_structure_type_t,
+ #[doc = "< [in][optional] pointer to extension-specific structure"]
+ pub pNext: *const ::std::os::raw::c_void,
+ #[doc = "< [in] flags specifying additional allocation controls."]
+ #[doc = "< must be 0 (default) or a valid combination of ::ze_raytracing_mem_alloc_ext_flags_t;"]
+ #[doc = "< default behavior may use implicit driver-based heuristics."]
+ pub flags: ze_raytracing_mem_alloc_ext_flags_t,
+}
+#[test]
+fn bindgen_test_layout__ze_raytracing_mem_alloc_ext_desc_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_raytracing_mem_alloc_ext_desc_t>(),
+ 24usize,
+ concat!("Size of: ", stringify!(_ze_raytracing_mem_alloc_ext_desc_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_raytracing_mem_alloc_ext_desc_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_raytracing_mem_alloc_ext_desc_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_raytracing_mem_alloc_ext_desc_t>())).stype as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_raytracing_mem_alloc_ext_desc_t),
+ "::",
+ stringify!(stype)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_raytracing_mem_alloc_ext_desc_t>())).pNext as *const _
+ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_raytracing_mem_alloc_ext_desc_t),
+ "::",
+ stringify!(pNext)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_raytracing_mem_alloc_ext_desc_t>())).flags as *const _
+ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_raytracing_mem_alloc_ext_desc_t),
+ "::",
+ stringify!(flags)
+ )
+ );
+}
extern "C" {
#[doc = ""]
#[doc = " @brief Makes memory resident for the device."]
@@ -9363,8 +9924,8 @@ impl _ze_sampler_address_mode_t {
#[repr(transparent)]
#[doc = ""]
#[doc = " @brief Sampler addressing modes"]
-#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub struct _ze_sampler_address_mode_t(pub u32);
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub struct _ze_sampler_address_mode_t(pub ::std::os::raw::c_uint);
#[doc = ""]
#[doc = " @brief Sampler addressing modes"]
pub use self::_ze_sampler_address_mode_t as ze_sampler_address_mode_t;
@@ -9385,8 +9946,8 @@ impl _ze_sampler_filter_mode_t {
#[repr(transparent)]
#[doc = ""]
#[doc = " @brief Sampler filtering modes"]
-#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub struct _ze_sampler_filter_mode_t(pub u32);
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub struct _ze_sampler_filter_mode_t(pub ::std::os::raw::c_uint);
#[doc = ""]
#[doc = " @brief Sampler filtering modes"]
pub use self::_ze_sampler_filter_mode_t as ze_sampler_filter_mode_t;
@@ -9545,8 +10106,8 @@ impl _ze_memory_access_attribute_t {
#[repr(transparent)]
#[doc = ""]
#[doc = " @brief Virtual memory page access attributes"]
-#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub struct _ze_memory_access_attribute_t(pub u32);
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub struct _ze_memory_access_attribute_t(pub ::std::os::raw::c_uint);
#[doc = ""]
#[doc = " @brief Virtual memory page access attributes"]
pub use self::_ze_memory_access_attribute_t as ze_memory_access_attribute_t;
@@ -9679,8 +10240,8 @@ impl ::std::ops::BitAndAssign for _ze_physical_mem_flags_t {
#[repr(transparent)]
#[doc = ""]
#[doc = " @brief Supported physical memory creation flags"]
-#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub struct _ze_physical_mem_flags_t(pub u32);
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub struct _ze_physical_mem_flags_t(pub ::std::os::raw::c_uint);
#[doc = ""]
#[doc = " @brief Supported physical memory creation flags"]
pub use self::_ze_physical_mem_flags_t as ze_physical_mem_flags_t;
@@ -9946,3 +10507,13127 @@ extern "C" {
outSize: *mut usize,
) -> ze_result_t;
}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeInit"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_init_params_t {
+ pub pflags: *mut ze_init_flags_t,
+}
+#[test]
+fn bindgen_test_layout__ze_init_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_init_params_t>(),
+ 8usize,
+ concat!("Size of: ", stringify!(_ze_init_params_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_init_params_t>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(_ze_init_params_t))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<_ze_init_params_t>())).pflags as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_init_params_t),
+ "::",
+ stringify!(pflags)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeInit"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_init_params_t = _ze_init_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeInit"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnInitCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_init_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Table of Global callback functions pointers"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_global_callbacks_t {
+ pub pfnInitCb: ze_pfnInitCb_t,
+}
+#[test]
+fn bindgen_test_layout__ze_global_callbacks_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_global_callbacks_t>(),
+ 8usize,
+ concat!("Size of: ", stringify!(_ze_global_callbacks_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_global_callbacks_t>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(_ze_global_callbacks_t))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_global_callbacks_t>())).pfnInitCb as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_global_callbacks_t),
+ "::",
+ stringify!(pfnInitCb)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Table of Global callback functions pointers"]
+pub type ze_global_callbacks_t = _ze_global_callbacks_t;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeDriverGet"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_driver_get_params_t {
+ pub ppCount: *mut *mut u32,
+ pub pphDrivers: *mut *mut ze_driver_handle_t,
+}
+#[test]
+fn bindgen_test_layout__ze_driver_get_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_driver_get_params_t>(),
+ 16usize,
+ concat!("Size of: ", stringify!(_ze_driver_get_params_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_driver_get_params_t>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(_ze_driver_get_params_t))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<_ze_driver_get_params_t>())).ppCount as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_driver_get_params_t),
+ "::",
+ stringify!(ppCount)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_driver_get_params_t>())).pphDrivers as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_driver_get_params_t),
+ "::",
+ stringify!(pphDrivers)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeDriverGet"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_driver_get_params_t = _ze_driver_get_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeDriverGet"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnDriverGetCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_driver_get_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeDriverGetApiVersion"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_driver_get_api_version_params_t {
+ pub phDriver: *mut ze_driver_handle_t,
+ pub pversion: *mut *mut ze_api_version_t,
+}
+#[test]
+fn bindgen_test_layout__ze_driver_get_api_version_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_driver_get_api_version_params_t>(),
+ 16usize,
+ concat!("Size of: ", stringify!(_ze_driver_get_api_version_params_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_driver_get_api_version_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_driver_get_api_version_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_driver_get_api_version_params_t>())).phDriver as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_driver_get_api_version_params_t),
+ "::",
+ stringify!(phDriver)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_driver_get_api_version_params_t>())).pversion as *const _
+ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_driver_get_api_version_params_t),
+ "::",
+ stringify!(pversion)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeDriverGetApiVersion"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_driver_get_api_version_params_t = _ze_driver_get_api_version_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeDriverGetApiVersion"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnDriverGetApiVersionCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_driver_get_api_version_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeDriverGetProperties"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_driver_get_properties_params_t {
+ pub phDriver: *mut ze_driver_handle_t,
+ pub ppDriverProperties: *mut *mut ze_driver_properties_t,
+}
+#[test]
+fn bindgen_test_layout__ze_driver_get_properties_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_driver_get_properties_params_t>(),
+ 16usize,
+ concat!("Size of: ", stringify!(_ze_driver_get_properties_params_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_driver_get_properties_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_driver_get_properties_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_driver_get_properties_params_t>())).phDriver as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_driver_get_properties_params_t),
+ "::",
+ stringify!(phDriver)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_driver_get_properties_params_t>())).ppDriverProperties
+ as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_driver_get_properties_params_t),
+ "::",
+ stringify!(ppDriverProperties)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeDriverGetProperties"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_driver_get_properties_params_t = _ze_driver_get_properties_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeDriverGetProperties"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnDriverGetPropertiesCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_driver_get_properties_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeDriverGetIpcProperties"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_driver_get_ipc_properties_params_t {
+ pub phDriver: *mut ze_driver_handle_t,
+ pub ppIpcProperties: *mut *mut ze_driver_ipc_properties_t,
+}
+#[test]
+fn bindgen_test_layout__ze_driver_get_ipc_properties_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_driver_get_ipc_properties_params_t>(),
+ 16usize,
+ concat!(
+ "Size of: ",
+ stringify!(_ze_driver_get_ipc_properties_params_t)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_driver_get_ipc_properties_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_driver_get_ipc_properties_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_driver_get_ipc_properties_params_t>())).phDriver as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_driver_get_ipc_properties_params_t),
+ "::",
+ stringify!(phDriver)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_driver_get_ipc_properties_params_t>())).ppIpcProperties
+ as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_driver_get_ipc_properties_params_t),
+ "::",
+ stringify!(ppIpcProperties)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeDriverGetIpcProperties"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_driver_get_ipc_properties_params_t = _ze_driver_get_ipc_properties_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeDriverGetIpcProperties"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnDriverGetIpcPropertiesCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_driver_get_ipc_properties_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeDriverGetExtensionProperties"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_driver_get_extension_properties_params_t {
+ pub phDriver: *mut ze_driver_handle_t,
+ pub ppCount: *mut *mut u32,
+ pub ppExtensionProperties: *mut *mut ze_driver_extension_properties_t,
+}
+#[test]
+fn bindgen_test_layout__ze_driver_get_extension_properties_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_driver_get_extension_properties_params_t>(),
+ 24usize,
+ concat!(
+ "Size of: ",
+ stringify!(_ze_driver_get_extension_properties_params_t)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_driver_get_extension_properties_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_driver_get_extension_properties_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_driver_get_extension_properties_params_t>())).phDriver
+ as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_driver_get_extension_properties_params_t),
+ "::",
+ stringify!(phDriver)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_driver_get_extension_properties_params_t>())).ppCount
+ as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_driver_get_extension_properties_params_t),
+ "::",
+ stringify!(ppCount)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_driver_get_extension_properties_params_t>()))
+ .ppExtensionProperties as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_driver_get_extension_properties_params_t),
+ "::",
+ stringify!(ppExtensionProperties)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeDriverGetExtensionProperties"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_driver_get_extension_properties_params_t = _ze_driver_get_extension_properties_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeDriverGetExtensionProperties"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnDriverGetExtensionPropertiesCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_driver_get_extension_properties_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Table of Driver callback functions pointers"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_driver_callbacks_t {
+ pub pfnGetCb: ze_pfnDriverGetCb_t,
+ pub pfnGetApiVersionCb: ze_pfnDriverGetApiVersionCb_t,
+ pub pfnGetPropertiesCb: ze_pfnDriverGetPropertiesCb_t,
+ pub pfnGetIpcPropertiesCb: ze_pfnDriverGetIpcPropertiesCb_t,
+ pub pfnGetExtensionPropertiesCb: ze_pfnDriverGetExtensionPropertiesCb_t,
+}
+#[test]
+fn bindgen_test_layout__ze_driver_callbacks_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_driver_callbacks_t>(),
+ 40usize,
+ concat!("Size of: ", stringify!(_ze_driver_callbacks_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_driver_callbacks_t>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(_ze_driver_callbacks_t))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<_ze_driver_callbacks_t>())).pfnGetCb as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_driver_callbacks_t),
+ "::",
+ stringify!(pfnGetCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_driver_callbacks_t>())).pfnGetApiVersionCb as *const _
+ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_driver_callbacks_t),
+ "::",
+ stringify!(pfnGetApiVersionCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_driver_callbacks_t>())).pfnGetPropertiesCb as *const _
+ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_driver_callbacks_t),
+ "::",
+ stringify!(pfnGetPropertiesCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_driver_callbacks_t>())).pfnGetIpcPropertiesCb as *const _
+ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_driver_callbacks_t),
+ "::",
+ stringify!(pfnGetIpcPropertiesCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_driver_callbacks_t>())).pfnGetExtensionPropertiesCb
+ as *const _ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_driver_callbacks_t),
+ "::",
+ stringify!(pfnGetExtensionPropertiesCb)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Table of Driver callback functions pointers"]
+pub type ze_driver_callbacks_t = _ze_driver_callbacks_t;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeDeviceGet"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_device_get_params_t {
+ pub phDriver: *mut ze_driver_handle_t,
+ pub ppCount: *mut *mut u32,
+ pub pphDevices: *mut *mut ze_device_handle_t,
+}
+#[test]
+fn bindgen_test_layout__ze_device_get_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_device_get_params_t>(),
+ 24usize,
+ concat!("Size of: ", stringify!(_ze_device_get_params_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_device_get_params_t>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(_ze_device_get_params_t))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_device_get_params_t>())).phDriver as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_device_get_params_t),
+ "::",
+ stringify!(phDriver)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<_ze_device_get_params_t>())).ppCount as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_device_get_params_t),
+ "::",
+ stringify!(ppCount)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_device_get_params_t>())).pphDevices as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_device_get_params_t),
+ "::",
+ stringify!(pphDevices)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeDeviceGet"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_device_get_params_t = _ze_device_get_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeDeviceGet"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnDeviceGetCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_device_get_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeDeviceGetSubDevices"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_device_get_sub_devices_params_t {
+ pub phDevice: *mut ze_device_handle_t,
+ pub ppCount: *mut *mut u32,
+ pub pphSubdevices: *mut *mut ze_device_handle_t,
+}
+#[test]
+fn bindgen_test_layout__ze_device_get_sub_devices_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_device_get_sub_devices_params_t>(),
+ 24usize,
+ concat!("Size of: ", stringify!(_ze_device_get_sub_devices_params_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_device_get_sub_devices_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_device_get_sub_devices_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_device_get_sub_devices_params_t>())).phDevice as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_device_get_sub_devices_params_t),
+ "::",
+ stringify!(phDevice)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_device_get_sub_devices_params_t>())).ppCount as *const _
+ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_device_get_sub_devices_params_t),
+ "::",
+ stringify!(ppCount)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_device_get_sub_devices_params_t>())).pphSubdevices
+ as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_device_get_sub_devices_params_t),
+ "::",
+ stringify!(pphSubdevices)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeDeviceGetSubDevices"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_device_get_sub_devices_params_t = _ze_device_get_sub_devices_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeDeviceGetSubDevices"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnDeviceGetSubDevicesCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_device_get_sub_devices_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeDeviceGetProperties"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_device_get_properties_params_t {
+ pub phDevice: *mut ze_device_handle_t,
+ pub ppDeviceProperties: *mut *mut ze_device_properties_t,
+}
+#[test]
+fn bindgen_test_layout__ze_device_get_properties_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_device_get_properties_params_t>(),
+ 16usize,
+ concat!("Size of: ", stringify!(_ze_device_get_properties_params_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_device_get_properties_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_device_get_properties_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_device_get_properties_params_t>())).phDevice as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_device_get_properties_params_t),
+ "::",
+ stringify!(phDevice)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_device_get_properties_params_t>())).ppDeviceProperties
+ as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_device_get_properties_params_t),
+ "::",
+ stringify!(ppDeviceProperties)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeDeviceGetProperties"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_device_get_properties_params_t = _ze_device_get_properties_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeDeviceGetProperties"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnDeviceGetPropertiesCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_device_get_properties_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeDeviceGetComputeProperties"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_device_get_compute_properties_params_t {
+ pub phDevice: *mut ze_device_handle_t,
+ pub ppComputeProperties: *mut *mut ze_device_compute_properties_t,
+}
+#[test]
+fn bindgen_test_layout__ze_device_get_compute_properties_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_device_get_compute_properties_params_t>(),
+ 16usize,
+ concat!(
+ "Size of: ",
+ stringify!(_ze_device_get_compute_properties_params_t)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_device_get_compute_properties_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_device_get_compute_properties_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_device_get_compute_properties_params_t>())).phDevice
+ as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_device_get_compute_properties_params_t),
+ "::",
+ stringify!(phDevice)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_device_get_compute_properties_params_t>()))
+ .ppComputeProperties as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_device_get_compute_properties_params_t),
+ "::",
+ stringify!(ppComputeProperties)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeDeviceGetComputeProperties"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_device_get_compute_properties_params_t = _ze_device_get_compute_properties_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeDeviceGetComputeProperties"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnDeviceGetComputePropertiesCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_device_get_compute_properties_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeDeviceGetModuleProperties"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_device_get_module_properties_params_t {
+ pub phDevice: *mut ze_device_handle_t,
+ pub ppModuleProperties: *mut *mut ze_device_module_properties_t,
+}
+#[test]
+fn bindgen_test_layout__ze_device_get_module_properties_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_device_get_module_properties_params_t>(),
+ 16usize,
+ concat!(
+ "Size of: ",
+ stringify!(_ze_device_get_module_properties_params_t)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_device_get_module_properties_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_device_get_module_properties_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_device_get_module_properties_params_t>())).phDevice
+ as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_device_get_module_properties_params_t),
+ "::",
+ stringify!(phDevice)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_device_get_module_properties_params_t>())).ppModuleProperties
+ as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_device_get_module_properties_params_t),
+ "::",
+ stringify!(ppModuleProperties)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeDeviceGetModuleProperties"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_device_get_module_properties_params_t = _ze_device_get_module_properties_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeDeviceGetModuleProperties"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnDeviceGetModulePropertiesCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_device_get_module_properties_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeDeviceGetCommandQueueGroupProperties"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_device_get_command_queue_group_properties_params_t {
+ pub phDevice: *mut ze_device_handle_t,
+ pub ppCount: *mut *mut u32,
+ pub ppCommandQueueGroupProperties: *mut *mut ze_command_queue_group_properties_t,
+}
+#[test]
+fn bindgen_test_layout__ze_device_get_command_queue_group_properties_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_device_get_command_queue_group_properties_params_t>(),
+ 24usize,
+ concat!(
+ "Size of: ",
+ stringify!(_ze_device_get_command_queue_group_properties_params_t)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_device_get_command_queue_group_properties_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_device_get_command_queue_group_properties_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_device_get_command_queue_group_properties_params_t>()))
+ .phDevice as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_device_get_command_queue_group_properties_params_t),
+ "::",
+ stringify!(phDevice)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_device_get_command_queue_group_properties_params_t>()))
+ .ppCount as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_device_get_command_queue_group_properties_params_t),
+ "::",
+ stringify!(ppCount)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_device_get_command_queue_group_properties_params_t>()))
+ .ppCommandQueueGroupProperties as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_device_get_command_queue_group_properties_params_t),
+ "::",
+ stringify!(ppCommandQueueGroupProperties)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeDeviceGetCommandQueueGroupProperties"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_device_get_command_queue_group_properties_params_t =
+ _ze_device_get_command_queue_group_properties_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeDeviceGetCommandQueueGroupProperties"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnDeviceGetCommandQueueGroupPropertiesCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_device_get_command_queue_group_properties_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeDeviceGetMemoryProperties"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_device_get_memory_properties_params_t {
+ pub phDevice: *mut ze_device_handle_t,
+ pub ppCount: *mut *mut u32,
+ pub ppMemProperties: *mut *mut ze_device_memory_properties_t,
+}
+#[test]
+fn bindgen_test_layout__ze_device_get_memory_properties_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_device_get_memory_properties_params_t>(),
+ 24usize,
+ concat!(
+ "Size of: ",
+ stringify!(_ze_device_get_memory_properties_params_t)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_device_get_memory_properties_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_device_get_memory_properties_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_device_get_memory_properties_params_t>())).phDevice
+ as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_device_get_memory_properties_params_t),
+ "::",
+ stringify!(phDevice)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_device_get_memory_properties_params_t>())).ppCount
+ as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_device_get_memory_properties_params_t),
+ "::",
+ stringify!(ppCount)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_device_get_memory_properties_params_t>())).ppMemProperties
+ as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_device_get_memory_properties_params_t),
+ "::",
+ stringify!(ppMemProperties)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeDeviceGetMemoryProperties"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_device_get_memory_properties_params_t = _ze_device_get_memory_properties_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeDeviceGetMemoryProperties"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnDeviceGetMemoryPropertiesCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_device_get_memory_properties_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeDeviceGetMemoryAccessProperties"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_device_get_memory_access_properties_params_t {
+ pub phDevice: *mut ze_device_handle_t,
+ pub ppMemAccessProperties: *mut *mut ze_device_memory_access_properties_t,
+}
+#[test]
+fn bindgen_test_layout__ze_device_get_memory_access_properties_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_device_get_memory_access_properties_params_t>(),
+ 16usize,
+ concat!(
+ "Size of: ",
+ stringify!(_ze_device_get_memory_access_properties_params_t)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_device_get_memory_access_properties_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_device_get_memory_access_properties_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_device_get_memory_access_properties_params_t>())).phDevice
+ as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_device_get_memory_access_properties_params_t),
+ "::",
+ stringify!(phDevice)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_device_get_memory_access_properties_params_t>()))
+ .ppMemAccessProperties as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_device_get_memory_access_properties_params_t),
+ "::",
+ stringify!(ppMemAccessProperties)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeDeviceGetMemoryAccessProperties"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_device_get_memory_access_properties_params_t =
+ _ze_device_get_memory_access_properties_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeDeviceGetMemoryAccessProperties"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnDeviceGetMemoryAccessPropertiesCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_device_get_memory_access_properties_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeDeviceGetCacheProperties"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_device_get_cache_properties_params_t {
+ pub phDevice: *mut ze_device_handle_t,
+ pub ppCount: *mut *mut u32,
+ pub ppCacheProperties: *mut *mut ze_device_cache_properties_t,
+}
+#[test]
+fn bindgen_test_layout__ze_device_get_cache_properties_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_device_get_cache_properties_params_t>(),
+ 24usize,
+ concat!(
+ "Size of: ",
+ stringify!(_ze_device_get_cache_properties_params_t)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_device_get_cache_properties_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_device_get_cache_properties_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_device_get_cache_properties_params_t>())).phDevice
+ as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_device_get_cache_properties_params_t),
+ "::",
+ stringify!(phDevice)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_device_get_cache_properties_params_t>())).ppCount as *const _
+ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_device_get_cache_properties_params_t),
+ "::",
+ stringify!(ppCount)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_device_get_cache_properties_params_t>())).ppCacheProperties
+ as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_device_get_cache_properties_params_t),
+ "::",
+ stringify!(ppCacheProperties)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeDeviceGetCacheProperties"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_device_get_cache_properties_params_t = _ze_device_get_cache_properties_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeDeviceGetCacheProperties"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnDeviceGetCachePropertiesCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_device_get_cache_properties_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeDeviceGetImageProperties"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_device_get_image_properties_params_t {
+ pub phDevice: *mut ze_device_handle_t,
+ pub ppImageProperties: *mut *mut ze_device_image_properties_t,
+}
+#[test]
+fn bindgen_test_layout__ze_device_get_image_properties_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_device_get_image_properties_params_t>(),
+ 16usize,
+ concat!(
+ "Size of: ",
+ stringify!(_ze_device_get_image_properties_params_t)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_device_get_image_properties_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_device_get_image_properties_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_device_get_image_properties_params_t>())).phDevice
+ as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_device_get_image_properties_params_t),
+ "::",
+ stringify!(phDevice)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_device_get_image_properties_params_t>())).ppImageProperties
+ as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_device_get_image_properties_params_t),
+ "::",
+ stringify!(ppImageProperties)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeDeviceGetImageProperties"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_device_get_image_properties_params_t = _ze_device_get_image_properties_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeDeviceGetImageProperties"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnDeviceGetImagePropertiesCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_device_get_image_properties_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeDeviceGetExternalMemoryProperties"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_device_get_external_memory_properties_params_t {
+ pub phDevice: *mut ze_device_handle_t,
+ pub ppExternalMemoryProperties: *mut *mut ze_device_external_memory_properties_t,
+}
+#[test]
+fn bindgen_test_layout__ze_device_get_external_memory_properties_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_device_get_external_memory_properties_params_t>(),
+ 16usize,
+ concat!(
+ "Size of: ",
+ stringify!(_ze_device_get_external_memory_properties_params_t)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_device_get_external_memory_properties_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_device_get_external_memory_properties_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_device_get_external_memory_properties_params_t>())).phDevice
+ as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_device_get_external_memory_properties_params_t),
+ "::",
+ stringify!(phDevice)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_device_get_external_memory_properties_params_t>()))
+ .ppExternalMemoryProperties as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_device_get_external_memory_properties_params_t),
+ "::",
+ stringify!(ppExternalMemoryProperties)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeDeviceGetExternalMemoryProperties"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_device_get_external_memory_properties_params_t =
+ _ze_device_get_external_memory_properties_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeDeviceGetExternalMemoryProperties"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnDeviceGetExternalMemoryPropertiesCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_device_get_external_memory_properties_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeDeviceGetP2PProperties"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_device_get_p2_p_properties_params_t {
+ pub phDevice: *mut ze_device_handle_t,
+ pub phPeerDevice: *mut ze_device_handle_t,
+ pub ppP2PProperties: *mut *mut ze_device_p2p_properties_t,
+}
+#[test]
+fn bindgen_test_layout__ze_device_get_p2_p_properties_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_device_get_p2_p_properties_params_t>(),
+ 24usize,
+ concat!(
+ "Size of: ",
+ stringify!(_ze_device_get_p2_p_properties_params_t)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_device_get_p2_p_properties_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_device_get_p2_p_properties_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_device_get_p2_p_properties_params_t>())).phDevice as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_device_get_p2_p_properties_params_t),
+ "::",
+ stringify!(phDevice)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_device_get_p2_p_properties_params_t>())).phPeerDevice
+ as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_device_get_p2_p_properties_params_t),
+ "::",
+ stringify!(phPeerDevice)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_device_get_p2_p_properties_params_t>())).ppP2PProperties
+ as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_device_get_p2_p_properties_params_t),
+ "::",
+ stringify!(ppP2PProperties)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeDeviceGetP2PProperties"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_device_get_p2_p_properties_params_t = _ze_device_get_p2_p_properties_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeDeviceGetP2PProperties"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnDeviceGetP2PPropertiesCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_device_get_p2_p_properties_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeDeviceCanAccessPeer"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_device_can_access_peer_params_t {
+ pub phDevice: *mut ze_device_handle_t,
+ pub phPeerDevice: *mut ze_device_handle_t,
+ pub pvalue: *mut *mut ze_bool_t,
+}
+#[test]
+fn bindgen_test_layout__ze_device_can_access_peer_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_device_can_access_peer_params_t>(),
+ 24usize,
+ concat!("Size of: ", stringify!(_ze_device_can_access_peer_params_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_device_can_access_peer_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_device_can_access_peer_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_device_can_access_peer_params_t>())).phDevice as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_device_can_access_peer_params_t),
+ "::",
+ stringify!(phDevice)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_device_can_access_peer_params_t>())).phPeerDevice as *const _
+ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_device_can_access_peer_params_t),
+ "::",
+ stringify!(phPeerDevice)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_device_can_access_peer_params_t>())).pvalue as *const _
+ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_device_can_access_peer_params_t),
+ "::",
+ stringify!(pvalue)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeDeviceCanAccessPeer"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_device_can_access_peer_params_t = _ze_device_can_access_peer_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeDeviceCanAccessPeer"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnDeviceCanAccessPeerCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_device_can_access_peer_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeDeviceGetStatus"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_device_get_status_params_t {
+ pub phDevice: *mut ze_device_handle_t,
+}
+#[test]
+fn bindgen_test_layout__ze_device_get_status_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_device_get_status_params_t>(),
+ 8usize,
+ concat!("Size of: ", stringify!(_ze_device_get_status_params_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_device_get_status_params_t>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(_ze_device_get_status_params_t))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_device_get_status_params_t>())).phDevice as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_device_get_status_params_t),
+ "::",
+ stringify!(phDevice)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeDeviceGetStatus"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_device_get_status_params_t = _ze_device_get_status_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeDeviceGetStatus"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnDeviceGetStatusCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_device_get_status_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Table of Device callback functions pointers"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_device_callbacks_t {
+ pub pfnGetCb: ze_pfnDeviceGetCb_t,
+ pub pfnGetSubDevicesCb: ze_pfnDeviceGetSubDevicesCb_t,
+ pub pfnGetPropertiesCb: ze_pfnDeviceGetPropertiesCb_t,
+ pub pfnGetComputePropertiesCb: ze_pfnDeviceGetComputePropertiesCb_t,
+ pub pfnGetModulePropertiesCb: ze_pfnDeviceGetModulePropertiesCb_t,
+ pub pfnGetCommandQueueGroupPropertiesCb: ze_pfnDeviceGetCommandQueueGroupPropertiesCb_t,
+ pub pfnGetMemoryPropertiesCb: ze_pfnDeviceGetMemoryPropertiesCb_t,
+ pub pfnGetMemoryAccessPropertiesCb: ze_pfnDeviceGetMemoryAccessPropertiesCb_t,
+ pub pfnGetCachePropertiesCb: ze_pfnDeviceGetCachePropertiesCb_t,
+ pub pfnGetImagePropertiesCb: ze_pfnDeviceGetImagePropertiesCb_t,
+ pub pfnGetExternalMemoryPropertiesCb: ze_pfnDeviceGetExternalMemoryPropertiesCb_t,
+ pub pfnGetP2PPropertiesCb: ze_pfnDeviceGetP2PPropertiesCb_t,
+ pub pfnCanAccessPeerCb: ze_pfnDeviceCanAccessPeerCb_t,
+ pub pfnGetStatusCb: ze_pfnDeviceGetStatusCb_t,
+}
+#[test]
+fn bindgen_test_layout__ze_device_callbacks_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_device_callbacks_t>(),
+ 112usize,
+ concat!("Size of: ", stringify!(_ze_device_callbacks_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_device_callbacks_t>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(_ze_device_callbacks_t))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<_ze_device_callbacks_t>())).pfnGetCb as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_device_callbacks_t),
+ "::",
+ stringify!(pfnGetCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_device_callbacks_t>())).pfnGetSubDevicesCb as *const _
+ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_device_callbacks_t),
+ "::",
+ stringify!(pfnGetSubDevicesCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_device_callbacks_t>())).pfnGetPropertiesCb as *const _
+ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_device_callbacks_t),
+ "::",
+ stringify!(pfnGetPropertiesCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_device_callbacks_t>())).pfnGetComputePropertiesCb as *const _
+ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_device_callbacks_t),
+ "::",
+ stringify!(pfnGetComputePropertiesCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_device_callbacks_t>())).pfnGetModulePropertiesCb as *const _
+ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_device_callbacks_t),
+ "::",
+ stringify!(pfnGetModulePropertiesCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_device_callbacks_t>())).pfnGetCommandQueueGroupPropertiesCb
+ as *const _ as usize
+ },
+ 40usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_device_callbacks_t),
+ "::",
+ stringify!(pfnGetCommandQueueGroupPropertiesCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_device_callbacks_t>())).pfnGetMemoryPropertiesCb as *const _
+ as usize
+ },
+ 48usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_device_callbacks_t),
+ "::",
+ stringify!(pfnGetMemoryPropertiesCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_device_callbacks_t>())).pfnGetMemoryAccessPropertiesCb
+ as *const _ as usize
+ },
+ 56usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_device_callbacks_t),
+ "::",
+ stringify!(pfnGetMemoryAccessPropertiesCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_device_callbacks_t>())).pfnGetCachePropertiesCb as *const _
+ as usize
+ },
+ 64usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_device_callbacks_t),
+ "::",
+ stringify!(pfnGetCachePropertiesCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_device_callbacks_t>())).pfnGetImagePropertiesCb as *const _
+ as usize
+ },
+ 72usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_device_callbacks_t),
+ "::",
+ stringify!(pfnGetImagePropertiesCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_device_callbacks_t>())).pfnGetExternalMemoryPropertiesCb
+ as *const _ as usize
+ },
+ 80usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_device_callbacks_t),
+ "::",
+ stringify!(pfnGetExternalMemoryPropertiesCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_device_callbacks_t>())).pfnGetP2PPropertiesCb as *const _
+ as usize
+ },
+ 88usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_device_callbacks_t),
+ "::",
+ stringify!(pfnGetP2PPropertiesCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_device_callbacks_t>())).pfnCanAccessPeerCb as *const _
+ as usize
+ },
+ 96usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_device_callbacks_t),
+ "::",
+ stringify!(pfnCanAccessPeerCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_device_callbacks_t>())).pfnGetStatusCb as *const _ as usize
+ },
+ 104usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_device_callbacks_t),
+ "::",
+ stringify!(pfnGetStatusCb)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Table of Device callback functions pointers"]
+pub type ze_device_callbacks_t = _ze_device_callbacks_t;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeContextCreate"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_context_create_params_t {
+ pub phDriver: *mut ze_driver_handle_t,
+ pub pdesc: *mut *const ze_context_desc_t,
+ pub pphContext: *mut *mut ze_context_handle_t,
+}
+#[test]
+fn bindgen_test_layout__ze_context_create_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_context_create_params_t>(),
+ 24usize,
+ concat!("Size of: ", stringify!(_ze_context_create_params_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_context_create_params_t>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(_ze_context_create_params_t))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_context_create_params_t>())).phDriver as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_context_create_params_t),
+ "::",
+ stringify!(phDriver)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_context_create_params_t>())).pdesc as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_context_create_params_t),
+ "::",
+ stringify!(pdesc)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_context_create_params_t>())).pphContext as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_context_create_params_t),
+ "::",
+ stringify!(pphContext)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeContextCreate"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_context_create_params_t = _ze_context_create_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeContextCreate"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnContextCreateCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_context_create_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeContextDestroy"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_context_destroy_params_t {
+ pub phContext: *mut ze_context_handle_t,
+}
+#[test]
+fn bindgen_test_layout__ze_context_destroy_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_context_destroy_params_t>(),
+ 8usize,
+ concat!("Size of: ", stringify!(_ze_context_destroy_params_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_context_destroy_params_t>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(_ze_context_destroy_params_t))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_context_destroy_params_t>())).phContext as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_context_destroy_params_t),
+ "::",
+ stringify!(phContext)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeContextDestroy"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_context_destroy_params_t = _ze_context_destroy_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeContextDestroy"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnContextDestroyCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_context_destroy_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeContextGetStatus"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_context_get_status_params_t {
+ pub phContext: *mut ze_context_handle_t,
+}
+#[test]
+fn bindgen_test_layout__ze_context_get_status_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_context_get_status_params_t>(),
+ 8usize,
+ concat!("Size of: ", stringify!(_ze_context_get_status_params_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_context_get_status_params_t>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(_ze_context_get_status_params_t))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_context_get_status_params_t>())).phContext as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_context_get_status_params_t),
+ "::",
+ stringify!(phContext)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeContextGetStatus"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_context_get_status_params_t = _ze_context_get_status_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeContextGetStatus"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnContextGetStatusCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_context_get_status_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeContextSystemBarrier"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_context_system_barrier_params_t {
+ pub phContext: *mut ze_context_handle_t,
+ pub phDevice: *mut ze_device_handle_t,
+}
+#[test]
+fn bindgen_test_layout__ze_context_system_barrier_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_context_system_barrier_params_t>(),
+ 16usize,
+ concat!("Size of: ", stringify!(_ze_context_system_barrier_params_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_context_system_barrier_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_context_system_barrier_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_context_system_barrier_params_t>())).phContext as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_context_system_barrier_params_t),
+ "::",
+ stringify!(phContext)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_context_system_barrier_params_t>())).phDevice as *const _
+ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_context_system_barrier_params_t),
+ "::",
+ stringify!(phDevice)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeContextSystemBarrier"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_context_system_barrier_params_t = _ze_context_system_barrier_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeContextSystemBarrier"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnContextSystemBarrierCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_context_system_barrier_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeContextMakeMemoryResident"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_context_make_memory_resident_params_t {
+ pub phContext: *mut ze_context_handle_t,
+ pub phDevice: *mut ze_device_handle_t,
+ pub pptr: *mut *mut ::std::os::raw::c_void,
+ pub psize: *mut usize,
+}
+#[test]
+fn bindgen_test_layout__ze_context_make_memory_resident_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_context_make_memory_resident_params_t>(),
+ 32usize,
+ concat!(
+ "Size of: ",
+ stringify!(_ze_context_make_memory_resident_params_t)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_context_make_memory_resident_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_context_make_memory_resident_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_context_make_memory_resident_params_t>())).phContext
+ as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_context_make_memory_resident_params_t),
+ "::",
+ stringify!(phContext)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_context_make_memory_resident_params_t>())).phDevice
+ as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_context_make_memory_resident_params_t),
+ "::",
+ stringify!(phDevice)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_context_make_memory_resident_params_t>())).pptr as *const _
+ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_context_make_memory_resident_params_t),
+ "::",
+ stringify!(pptr)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_context_make_memory_resident_params_t>())).psize as *const _
+ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_context_make_memory_resident_params_t),
+ "::",
+ stringify!(psize)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeContextMakeMemoryResident"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_context_make_memory_resident_params_t = _ze_context_make_memory_resident_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeContextMakeMemoryResident"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnContextMakeMemoryResidentCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_context_make_memory_resident_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeContextEvictMemory"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_context_evict_memory_params_t {
+ pub phContext: *mut ze_context_handle_t,
+ pub phDevice: *mut ze_device_handle_t,
+ pub pptr: *mut *mut ::std::os::raw::c_void,
+ pub psize: *mut usize,
+}
+#[test]
+fn bindgen_test_layout__ze_context_evict_memory_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_context_evict_memory_params_t>(),
+ 32usize,
+ concat!("Size of: ", stringify!(_ze_context_evict_memory_params_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_context_evict_memory_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_context_evict_memory_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_context_evict_memory_params_t>())).phContext as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_context_evict_memory_params_t),
+ "::",
+ stringify!(phContext)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_context_evict_memory_params_t>())).phDevice as *const _
+ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_context_evict_memory_params_t),
+ "::",
+ stringify!(phDevice)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_context_evict_memory_params_t>())).pptr as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_context_evict_memory_params_t),
+ "::",
+ stringify!(pptr)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_context_evict_memory_params_t>())).psize as *const _ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_context_evict_memory_params_t),
+ "::",
+ stringify!(psize)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeContextEvictMemory"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_context_evict_memory_params_t = _ze_context_evict_memory_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeContextEvictMemory"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnContextEvictMemoryCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_context_evict_memory_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeContextMakeImageResident"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_context_make_image_resident_params_t {
+ pub phContext: *mut ze_context_handle_t,
+ pub phDevice: *mut ze_device_handle_t,
+ pub phImage: *mut ze_image_handle_t,
+}
+#[test]
+fn bindgen_test_layout__ze_context_make_image_resident_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_context_make_image_resident_params_t>(),
+ 24usize,
+ concat!(
+ "Size of: ",
+ stringify!(_ze_context_make_image_resident_params_t)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_context_make_image_resident_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_context_make_image_resident_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_context_make_image_resident_params_t>())).phContext
+ as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_context_make_image_resident_params_t),
+ "::",
+ stringify!(phContext)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_context_make_image_resident_params_t>())).phDevice
+ as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_context_make_image_resident_params_t),
+ "::",
+ stringify!(phDevice)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_context_make_image_resident_params_t>())).phImage as *const _
+ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_context_make_image_resident_params_t),
+ "::",
+ stringify!(phImage)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeContextMakeImageResident"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_context_make_image_resident_params_t = _ze_context_make_image_resident_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeContextMakeImageResident"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnContextMakeImageResidentCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_context_make_image_resident_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeContextEvictImage"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_context_evict_image_params_t {
+ pub phContext: *mut ze_context_handle_t,
+ pub phDevice: *mut ze_device_handle_t,
+ pub phImage: *mut ze_image_handle_t,
+}
+#[test]
+fn bindgen_test_layout__ze_context_evict_image_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_context_evict_image_params_t>(),
+ 24usize,
+ concat!("Size of: ", stringify!(_ze_context_evict_image_params_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_context_evict_image_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_context_evict_image_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_context_evict_image_params_t>())).phContext as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_context_evict_image_params_t),
+ "::",
+ stringify!(phContext)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_context_evict_image_params_t>())).phDevice as *const _
+ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_context_evict_image_params_t),
+ "::",
+ stringify!(phDevice)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_context_evict_image_params_t>())).phImage as *const _
+ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_context_evict_image_params_t),
+ "::",
+ stringify!(phImage)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeContextEvictImage"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_context_evict_image_params_t = _ze_context_evict_image_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeContextEvictImage"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnContextEvictImageCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_context_evict_image_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Table of Context callback functions pointers"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_context_callbacks_t {
+ pub pfnCreateCb: ze_pfnContextCreateCb_t,
+ pub pfnDestroyCb: ze_pfnContextDestroyCb_t,
+ pub pfnGetStatusCb: ze_pfnContextGetStatusCb_t,
+ pub pfnSystemBarrierCb: ze_pfnContextSystemBarrierCb_t,
+ pub pfnMakeMemoryResidentCb: ze_pfnContextMakeMemoryResidentCb_t,
+ pub pfnEvictMemoryCb: ze_pfnContextEvictMemoryCb_t,
+ pub pfnMakeImageResidentCb: ze_pfnContextMakeImageResidentCb_t,
+ pub pfnEvictImageCb: ze_pfnContextEvictImageCb_t,
+}
+#[test]
+fn bindgen_test_layout__ze_context_callbacks_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_context_callbacks_t>(),
+ 64usize,
+ concat!("Size of: ", stringify!(_ze_context_callbacks_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_context_callbacks_t>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(_ze_context_callbacks_t))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_context_callbacks_t>())).pfnCreateCb as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_context_callbacks_t),
+ "::",
+ stringify!(pfnCreateCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_context_callbacks_t>())).pfnDestroyCb as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_context_callbacks_t),
+ "::",
+ stringify!(pfnDestroyCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_context_callbacks_t>())).pfnGetStatusCb as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_context_callbacks_t),
+ "::",
+ stringify!(pfnGetStatusCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_context_callbacks_t>())).pfnSystemBarrierCb as *const _
+ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_context_callbacks_t),
+ "::",
+ stringify!(pfnSystemBarrierCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_context_callbacks_t>())).pfnMakeMemoryResidentCb as *const _
+ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_context_callbacks_t),
+ "::",
+ stringify!(pfnMakeMemoryResidentCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_context_callbacks_t>())).pfnEvictMemoryCb as *const _
+ as usize
+ },
+ 40usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_context_callbacks_t),
+ "::",
+ stringify!(pfnEvictMemoryCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_context_callbacks_t>())).pfnMakeImageResidentCb as *const _
+ as usize
+ },
+ 48usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_context_callbacks_t),
+ "::",
+ stringify!(pfnMakeImageResidentCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_context_callbacks_t>())).pfnEvictImageCb as *const _ as usize
+ },
+ 56usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_context_callbacks_t),
+ "::",
+ stringify!(pfnEvictImageCb)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Table of Context callback functions pointers"]
+pub type ze_context_callbacks_t = _ze_context_callbacks_t;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeCommandQueueCreate"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_command_queue_create_params_t {
+ pub phContext: *mut ze_context_handle_t,
+ pub phDevice: *mut ze_device_handle_t,
+ pub pdesc: *mut *const ze_command_queue_desc_t,
+ pub pphCommandQueue: *mut *mut ze_command_queue_handle_t,
+}
+#[test]
+fn bindgen_test_layout__ze_command_queue_create_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_command_queue_create_params_t>(),
+ 32usize,
+ concat!("Size of: ", stringify!(_ze_command_queue_create_params_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_command_queue_create_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_command_queue_create_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_queue_create_params_t>())).phContext as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_queue_create_params_t),
+ "::",
+ stringify!(phContext)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_queue_create_params_t>())).phDevice as *const _
+ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_queue_create_params_t),
+ "::",
+ stringify!(phDevice)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_queue_create_params_t>())).pdesc as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_queue_create_params_t),
+ "::",
+ stringify!(pdesc)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_queue_create_params_t>())).pphCommandQueue
+ as *const _ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_queue_create_params_t),
+ "::",
+ stringify!(pphCommandQueue)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeCommandQueueCreate"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_command_queue_create_params_t = _ze_command_queue_create_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeCommandQueueCreate"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnCommandQueueCreateCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_command_queue_create_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeCommandQueueDestroy"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_command_queue_destroy_params_t {
+ pub phCommandQueue: *mut ze_command_queue_handle_t,
+}
+#[test]
+fn bindgen_test_layout__ze_command_queue_destroy_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_command_queue_destroy_params_t>(),
+ 8usize,
+ concat!("Size of: ", stringify!(_ze_command_queue_destroy_params_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_command_queue_destroy_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_command_queue_destroy_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_queue_destroy_params_t>())).phCommandQueue
+ as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_queue_destroy_params_t),
+ "::",
+ stringify!(phCommandQueue)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeCommandQueueDestroy"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_command_queue_destroy_params_t = _ze_command_queue_destroy_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeCommandQueueDestroy"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnCommandQueueDestroyCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_command_queue_destroy_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeCommandQueueExecuteCommandLists"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_command_queue_execute_command_lists_params_t {
+ pub phCommandQueue: *mut ze_command_queue_handle_t,
+ pub pnumCommandLists: *mut u32,
+ pub pphCommandLists: *mut *mut ze_command_list_handle_t,
+ pub phFence: *mut ze_fence_handle_t,
+}
+#[test]
+fn bindgen_test_layout__ze_command_queue_execute_command_lists_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_command_queue_execute_command_lists_params_t>(),
+ 32usize,
+ concat!(
+ "Size of: ",
+ stringify!(_ze_command_queue_execute_command_lists_params_t)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_command_queue_execute_command_lists_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_command_queue_execute_command_lists_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_queue_execute_command_lists_params_t>()))
+ .phCommandQueue as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_queue_execute_command_lists_params_t),
+ "::",
+ stringify!(phCommandQueue)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_queue_execute_command_lists_params_t>()))
+ .pnumCommandLists as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_queue_execute_command_lists_params_t),
+ "::",
+ stringify!(pnumCommandLists)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_queue_execute_command_lists_params_t>()))
+ .pphCommandLists as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_queue_execute_command_lists_params_t),
+ "::",
+ stringify!(pphCommandLists)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_queue_execute_command_lists_params_t>())).phFence
+ as *const _ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_queue_execute_command_lists_params_t),
+ "::",
+ stringify!(phFence)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeCommandQueueExecuteCommandLists"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_command_queue_execute_command_lists_params_t =
+ _ze_command_queue_execute_command_lists_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeCommandQueueExecuteCommandLists"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnCommandQueueExecuteCommandListsCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_command_queue_execute_command_lists_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeCommandQueueSynchronize"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_command_queue_synchronize_params_t {
+ pub phCommandQueue: *mut ze_command_queue_handle_t,
+ pub ptimeout: *mut u64,
+}
+#[test]
+fn bindgen_test_layout__ze_command_queue_synchronize_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_command_queue_synchronize_params_t>(),
+ 16usize,
+ concat!(
+ "Size of: ",
+ stringify!(_ze_command_queue_synchronize_params_t)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_command_queue_synchronize_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_command_queue_synchronize_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_queue_synchronize_params_t>())).phCommandQueue
+ as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_queue_synchronize_params_t),
+ "::",
+ stringify!(phCommandQueue)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_queue_synchronize_params_t>())).ptimeout as *const _
+ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_queue_synchronize_params_t),
+ "::",
+ stringify!(ptimeout)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeCommandQueueSynchronize"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_command_queue_synchronize_params_t = _ze_command_queue_synchronize_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeCommandQueueSynchronize"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnCommandQueueSynchronizeCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_command_queue_synchronize_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Table of CommandQueue callback functions pointers"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_command_queue_callbacks_t {
+ pub pfnCreateCb: ze_pfnCommandQueueCreateCb_t,
+ pub pfnDestroyCb: ze_pfnCommandQueueDestroyCb_t,
+ pub pfnExecuteCommandListsCb: ze_pfnCommandQueueExecuteCommandListsCb_t,
+ pub pfnSynchronizeCb: ze_pfnCommandQueueSynchronizeCb_t,
+}
+#[test]
+fn bindgen_test_layout__ze_command_queue_callbacks_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_command_queue_callbacks_t>(),
+ 32usize,
+ concat!("Size of: ", stringify!(_ze_command_queue_callbacks_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_command_queue_callbacks_t>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(_ze_command_queue_callbacks_t))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_queue_callbacks_t>())).pfnCreateCb as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_queue_callbacks_t),
+ "::",
+ stringify!(pfnCreateCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_queue_callbacks_t>())).pfnDestroyCb as *const _
+ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_queue_callbacks_t),
+ "::",
+ stringify!(pfnDestroyCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_queue_callbacks_t>())).pfnExecuteCommandListsCb
+ as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_queue_callbacks_t),
+ "::",
+ stringify!(pfnExecuteCommandListsCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_queue_callbacks_t>())).pfnSynchronizeCb as *const _
+ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_queue_callbacks_t),
+ "::",
+ stringify!(pfnSynchronizeCb)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Table of CommandQueue callback functions pointers"]
+pub type ze_command_queue_callbacks_t = _ze_command_queue_callbacks_t;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeCommandListCreate"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_command_list_create_params_t {
+ pub phContext: *mut ze_context_handle_t,
+ pub phDevice: *mut ze_device_handle_t,
+ pub pdesc: *mut *const ze_command_list_desc_t,
+ pub pphCommandList: *mut *mut ze_command_list_handle_t,
+}
+#[test]
+fn bindgen_test_layout__ze_command_list_create_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_command_list_create_params_t>(),
+ 32usize,
+ concat!("Size of: ", stringify!(_ze_command_list_create_params_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_command_list_create_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_command_list_create_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_create_params_t>())).phContext as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_create_params_t),
+ "::",
+ stringify!(phContext)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_create_params_t>())).phDevice as *const _
+ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_create_params_t),
+ "::",
+ stringify!(phDevice)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_create_params_t>())).pdesc as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_create_params_t),
+ "::",
+ stringify!(pdesc)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_create_params_t>())).pphCommandList as *const _
+ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_create_params_t),
+ "::",
+ stringify!(pphCommandList)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeCommandListCreate"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_command_list_create_params_t = _ze_command_list_create_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeCommandListCreate"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnCommandListCreateCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_command_list_create_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeCommandListCreateImmediate"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_command_list_create_immediate_params_t {
+ pub phContext: *mut ze_context_handle_t,
+ pub phDevice: *mut ze_device_handle_t,
+ pub paltdesc: *mut *const ze_command_queue_desc_t,
+ pub pphCommandList: *mut *mut ze_command_list_handle_t,
+}
+#[test]
+fn bindgen_test_layout__ze_command_list_create_immediate_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_command_list_create_immediate_params_t>(),
+ 32usize,
+ concat!(
+ "Size of: ",
+ stringify!(_ze_command_list_create_immediate_params_t)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_command_list_create_immediate_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_command_list_create_immediate_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_create_immediate_params_t>())).phContext
+ as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_create_immediate_params_t),
+ "::",
+ stringify!(phContext)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_create_immediate_params_t>())).phDevice
+ as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_create_immediate_params_t),
+ "::",
+ stringify!(phDevice)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_create_immediate_params_t>())).paltdesc
+ as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_create_immediate_params_t),
+ "::",
+ stringify!(paltdesc)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_create_immediate_params_t>())).pphCommandList
+ as *const _ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_create_immediate_params_t),
+ "::",
+ stringify!(pphCommandList)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeCommandListCreateImmediate"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_command_list_create_immediate_params_t = _ze_command_list_create_immediate_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeCommandListCreateImmediate"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnCommandListCreateImmediateCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_command_list_create_immediate_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeCommandListDestroy"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_command_list_destroy_params_t {
+ pub phCommandList: *mut ze_command_list_handle_t,
+}
+#[test]
+fn bindgen_test_layout__ze_command_list_destroy_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_command_list_destroy_params_t>(),
+ 8usize,
+ concat!("Size of: ", stringify!(_ze_command_list_destroy_params_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_command_list_destroy_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_command_list_destroy_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_destroy_params_t>())).phCommandList as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_destroy_params_t),
+ "::",
+ stringify!(phCommandList)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeCommandListDestroy"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_command_list_destroy_params_t = _ze_command_list_destroy_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeCommandListDestroy"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnCommandListDestroyCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_command_list_destroy_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeCommandListClose"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_command_list_close_params_t {
+ pub phCommandList: *mut ze_command_list_handle_t,
+}
+#[test]
+fn bindgen_test_layout__ze_command_list_close_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_command_list_close_params_t>(),
+ 8usize,
+ concat!("Size of: ", stringify!(_ze_command_list_close_params_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_command_list_close_params_t>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(_ze_command_list_close_params_t))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_close_params_t>())).phCommandList as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_close_params_t),
+ "::",
+ stringify!(phCommandList)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeCommandListClose"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_command_list_close_params_t = _ze_command_list_close_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeCommandListClose"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnCommandListCloseCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_command_list_close_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeCommandListReset"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_command_list_reset_params_t {
+ pub phCommandList: *mut ze_command_list_handle_t,
+}
+#[test]
+fn bindgen_test_layout__ze_command_list_reset_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_command_list_reset_params_t>(),
+ 8usize,
+ concat!("Size of: ", stringify!(_ze_command_list_reset_params_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_command_list_reset_params_t>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(_ze_command_list_reset_params_t))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_reset_params_t>())).phCommandList as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_reset_params_t),
+ "::",
+ stringify!(phCommandList)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeCommandListReset"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_command_list_reset_params_t = _ze_command_list_reset_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeCommandListReset"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnCommandListResetCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_command_list_reset_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeCommandListAppendWriteGlobalTimestamp"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_command_list_append_write_global_timestamp_params_t {
+ pub phCommandList: *mut ze_command_list_handle_t,
+ pub pdstptr: *mut *mut u64,
+ pub phSignalEvent: *mut ze_event_handle_t,
+ pub pnumWaitEvents: *mut u32,
+ pub pphWaitEvents: *mut *mut ze_event_handle_t,
+}
+#[test]
+fn bindgen_test_layout__ze_command_list_append_write_global_timestamp_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_command_list_append_write_global_timestamp_params_t>(),
+ 40usize,
+ concat!(
+ "Size of: ",
+ stringify!(_ze_command_list_append_write_global_timestamp_params_t)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_command_list_append_write_global_timestamp_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_command_list_append_write_global_timestamp_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_write_global_timestamp_params_t>()))
+ .phCommandList as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_write_global_timestamp_params_t),
+ "::",
+ stringify!(phCommandList)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_write_global_timestamp_params_t>()))
+ .pdstptr as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_write_global_timestamp_params_t),
+ "::",
+ stringify!(pdstptr)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_write_global_timestamp_params_t>()))
+ .phSignalEvent as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_write_global_timestamp_params_t),
+ "::",
+ stringify!(phSignalEvent)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_write_global_timestamp_params_t>()))
+ .pnumWaitEvents as *const _ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_write_global_timestamp_params_t),
+ "::",
+ stringify!(pnumWaitEvents)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_write_global_timestamp_params_t>()))
+ .pphWaitEvents as *const _ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_write_global_timestamp_params_t),
+ "::",
+ stringify!(pphWaitEvents)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeCommandListAppendWriteGlobalTimestamp"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_command_list_append_write_global_timestamp_params_t =
+ _ze_command_list_append_write_global_timestamp_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeCommandListAppendWriteGlobalTimestamp"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnCommandListAppendWriteGlobalTimestampCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_command_list_append_write_global_timestamp_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeCommandListAppendBarrier"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_command_list_append_barrier_params_t {
+ pub phCommandList: *mut ze_command_list_handle_t,
+ pub phSignalEvent: *mut ze_event_handle_t,
+ pub pnumWaitEvents: *mut u32,
+ pub pphWaitEvents: *mut *mut ze_event_handle_t,
+}
+#[test]
+fn bindgen_test_layout__ze_command_list_append_barrier_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_command_list_append_barrier_params_t>(),
+ 32usize,
+ concat!(
+ "Size of: ",
+ stringify!(_ze_command_list_append_barrier_params_t)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_command_list_append_barrier_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_command_list_append_barrier_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_barrier_params_t>())).phCommandList
+ as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_barrier_params_t),
+ "::",
+ stringify!(phCommandList)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_barrier_params_t>())).phSignalEvent
+ as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_barrier_params_t),
+ "::",
+ stringify!(phSignalEvent)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_barrier_params_t>())).pnumWaitEvents
+ as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_barrier_params_t),
+ "::",
+ stringify!(pnumWaitEvents)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_barrier_params_t>())).pphWaitEvents
+ as *const _ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_barrier_params_t),
+ "::",
+ stringify!(pphWaitEvents)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeCommandListAppendBarrier"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_command_list_append_barrier_params_t = _ze_command_list_append_barrier_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeCommandListAppendBarrier"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnCommandListAppendBarrierCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_command_list_append_barrier_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeCommandListAppendMemoryRangesBarrier"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_command_list_append_memory_ranges_barrier_params_t {
+ pub phCommandList: *mut ze_command_list_handle_t,
+ pub pnumRanges: *mut u32,
+ pub ppRangeSizes: *mut *const usize,
+ pub ppRanges: *mut *mut *const ::std::os::raw::c_void,
+ pub phSignalEvent: *mut ze_event_handle_t,
+ pub pnumWaitEvents: *mut u32,
+ pub pphWaitEvents: *mut *mut ze_event_handle_t,
+}
+#[test]
+fn bindgen_test_layout__ze_command_list_append_memory_ranges_barrier_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_command_list_append_memory_ranges_barrier_params_t>(),
+ 56usize,
+ concat!(
+ "Size of: ",
+ stringify!(_ze_command_list_append_memory_ranges_barrier_params_t)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_command_list_append_memory_ranges_barrier_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_command_list_append_memory_ranges_barrier_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_memory_ranges_barrier_params_t>()))
+ .phCommandList as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_memory_ranges_barrier_params_t),
+ "::",
+ stringify!(phCommandList)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_memory_ranges_barrier_params_t>()))
+ .pnumRanges as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_memory_ranges_barrier_params_t),
+ "::",
+ stringify!(pnumRanges)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_memory_ranges_barrier_params_t>()))
+ .ppRangeSizes as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_memory_ranges_barrier_params_t),
+ "::",
+ stringify!(ppRangeSizes)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_memory_ranges_barrier_params_t>()))
+ .ppRanges as *const _ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_memory_ranges_barrier_params_t),
+ "::",
+ stringify!(ppRanges)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_memory_ranges_barrier_params_t>()))
+ .phSignalEvent as *const _ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_memory_ranges_barrier_params_t),
+ "::",
+ stringify!(phSignalEvent)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_memory_ranges_barrier_params_t>()))
+ .pnumWaitEvents as *const _ as usize
+ },
+ 40usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_memory_ranges_barrier_params_t),
+ "::",
+ stringify!(pnumWaitEvents)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_memory_ranges_barrier_params_t>()))
+ .pphWaitEvents as *const _ as usize
+ },
+ 48usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_memory_ranges_barrier_params_t),
+ "::",
+ stringify!(pphWaitEvents)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeCommandListAppendMemoryRangesBarrier"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_command_list_append_memory_ranges_barrier_params_t =
+ _ze_command_list_append_memory_ranges_barrier_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeCommandListAppendMemoryRangesBarrier"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnCommandListAppendMemoryRangesBarrierCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_command_list_append_memory_ranges_barrier_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeCommandListAppendMemoryCopy"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_command_list_append_memory_copy_params_t {
+ pub phCommandList: *mut ze_command_list_handle_t,
+ pub pdstptr: *mut *mut ::std::os::raw::c_void,
+ pub psrcptr: *mut *const ::std::os::raw::c_void,
+ pub psize: *mut usize,
+ pub phSignalEvent: *mut ze_event_handle_t,
+ pub pnumWaitEvents: *mut u32,
+ pub pphWaitEvents: *mut *mut ze_event_handle_t,
+}
+#[test]
+fn bindgen_test_layout__ze_command_list_append_memory_copy_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_command_list_append_memory_copy_params_t>(),
+ 56usize,
+ concat!(
+ "Size of: ",
+ stringify!(_ze_command_list_append_memory_copy_params_t)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_command_list_append_memory_copy_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_command_list_append_memory_copy_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_memory_copy_params_t>())).phCommandList
+ as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_memory_copy_params_t),
+ "::",
+ stringify!(phCommandList)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_memory_copy_params_t>())).pdstptr
+ as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_memory_copy_params_t),
+ "::",
+ stringify!(pdstptr)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_memory_copy_params_t>())).psrcptr
+ as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_memory_copy_params_t),
+ "::",
+ stringify!(psrcptr)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_memory_copy_params_t>())).psize
+ as *const _ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_memory_copy_params_t),
+ "::",
+ stringify!(psize)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_memory_copy_params_t>())).phSignalEvent
+ as *const _ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_memory_copy_params_t),
+ "::",
+ stringify!(phSignalEvent)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_memory_copy_params_t>())).pnumWaitEvents
+ as *const _ as usize
+ },
+ 40usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_memory_copy_params_t),
+ "::",
+ stringify!(pnumWaitEvents)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_memory_copy_params_t>())).pphWaitEvents
+ as *const _ as usize
+ },
+ 48usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_memory_copy_params_t),
+ "::",
+ stringify!(pphWaitEvents)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeCommandListAppendMemoryCopy"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_command_list_append_memory_copy_params_t = _ze_command_list_append_memory_copy_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeCommandListAppendMemoryCopy"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnCommandListAppendMemoryCopyCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_command_list_append_memory_copy_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeCommandListAppendMemoryFill"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_command_list_append_memory_fill_params_t {
+ pub phCommandList: *mut ze_command_list_handle_t,
+ pub pptr: *mut *mut ::std::os::raw::c_void,
+ pub ppattern: *mut *const ::std::os::raw::c_void,
+ pub ppattern_size: *mut usize,
+ pub psize: *mut usize,
+ pub phSignalEvent: *mut ze_event_handle_t,
+ pub pnumWaitEvents: *mut u32,
+ pub pphWaitEvents: *mut *mut ze_event_handle_t,
+}
+#[test]
+fn bindgen_test_layout__ze_command_list_append_memory_fill_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_command_list_append_memory_fill_params_t>(),
+ 64usize,
+ concat!(
+ "Size of: ",
+ stringify!(_ze_command_list_append_memory_fill_params_t)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_command_list_append_memory_fill_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_command_list_append_memory_fill_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_memory_fill_params_t>())).phCommandList
+ as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_memory_fill_params_t),
+ "::",
+ stringify!(phCommandList)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_memory_fill_params_t>())).pptr
+ as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_memory_fill_params_t),
+ "::",
+ stringify!(pptr)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_memory_fill_params_t>())).ppattern
+ as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_memory_fill_params_t),
+ "::",
+ stringify!(ppattern)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_memory_fill_params_t>())).ppattern_size
+ as *const _ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_memory_fill_params_t),
+ "::",
+ stringify!(ppattern_size)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_memory_fill_params_t>())).psize
+ as *const _ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_memory_fill_params_t),
+ "::",
+ stringify!(psize)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_memory_fill_params_t>())).phSignalEvent
+ as *const _ as usize
+ },
+ 40usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_memory_fill_params_t),
+ "::",
+ stringify!(phSignalEvent)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_memory_fill_params_t>())).pnumWaitEvents
+ as *const _ as usize
+ },
+ 48usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_memory_fill_params_t),
+ "::",
+ stringify!(pnumWaitEvents)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_memory_fill_params_t>())).pphWaitEvents
+ as *const _ as usize
+ },
+ 56usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_memory_fill_params_t),
+ "::",
+ stringify!(pphWaitEvents)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeCommandListAppendMemoryFill"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_command_list_append_memory_fill_params_t = _ze_command_list_append_memory_fill_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeCommandListAppendMemoryFill"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnCommandListAppendMemoryFillCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_command_list_append_memory_fill_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeCommandListAppendMemoryCopyRegion"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_command_list_append_memory_copy_region_params_t {
+ pub phCommandList: *mut ze_command_list_handle_t,
+ pub pdstptr: *mut *mut ::std::os::raw::c_void,
+ pub pdstRegion: *mut *const ze_copy_region_t,
+ pub pdstPitch: *mut u32,
+ pub pdstSlicePitch: *mut u32,
+ pub psrcptr: *mut *const ::std::os::raw::c_void,
+ pub psrcRegion: *mut *const ze_copy_region_t,
+ pub psrcPitch: *mut u32,
+ pub psrcSlicePitch: *mut u32,
+ pub phSignalEvent: *mut ze_event_handle_t,
+ pub pnumWaitEvents: *mut u32,
+ pub pphWaitEvents: *mut *mut ze_event_handle_t,
+}
+#[test]
+fn bindgen_test_layout__ze_command_list_append_memory_copy_region_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_command_list_append_memory_copy_region_params_t>(),
+ 96usize,
+ concat!(
+ "Size of: ",
+ stringify!(_ze_command_list_append_memory_copy_region_params_t)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_command_list_append_memory_copy_region_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_command_list_append_memory_copy_region_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_memory_copy_region_params_t>()))
+ .phCommandList as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_memory_copy_region_params_t),
+ "::",
+ stringify!(phCommandList)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_memory_copy_region_params_t>())).pdstptr
+ as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_memory_copy_region_params_t),
+ "::",
+ stringify!(pdstptr)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_memory_copy_region_params_t>()))
+ .pdstRegion as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_memory_copy_region_params_t),
+ "::",
+ stringify!(pdstRegion)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_memory_copy_region_params_t>()))
+ .pdstPitch as *const _ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_memory_copy_region_params_t),
+ "::",
+ stringify!(pdstPitch)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_memory_copy_region_params_t>()))
+ .pdstSlicePitch as *const _ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_memory_copy_region_params_t),
+ "::",
+ stringify!(pdstSlicePitch)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_memory_copy_region_params_t>())).psrcptr
+ as *const _ as usize
+ },
+ 40usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_memory_copy_region_params_t),
+ "::",
+ stringify!(psrcptr)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_memory_copy_region_params_t>()))
+ .psrcRegion as *const _ as usize
+ },
+ 48usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_memory_copy_region_params_t),
+ "::",
+ stringify!(psrcRegion)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_memory_copy_region_params_t>()))
+ .psrcPitch as *const _ as usize
+ },
+ 56usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_memory_copy_region_params_t),
+ "::",
+ stringify!(psrcPitch)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_memory_copy_region_params_t>()))
+ .psrcSlicePitch as *const _ as usize
+ },
+ 64usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_memory_copy_region_params_t),
+ "::",
+ stringify!(psrcSlicePitch)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_memory_copy_region_params_t>()))
+ .phSignalEvent as *const _ as usize
+ },
+ 72usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_memory_copy_region_params_t),
+ "::",
+ stringify!(phSignalEvent)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_memory_copy_region_params_t>()))
+ .pnumWaitEvents as *const _ as usize
+ },
+ 80usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_memory_copy_region_params_t),
+ "::",
+ stringify!(pnumWaitEvents)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_memory_copy_region_params_t>()))
+ .pphWaitEvents as *const _ as usize
+ },
+ 88usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_memory_copy_region_params_t),
+ "::",
+ stringify!(pphWaitEvents)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeCommandListAppendMemoryCopyRegion"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_command_list_append_memory_copy_region_params_t =
+ _ze_command_list_append_memory_copy_region_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeCommandListAppendMemoryCopyRegion"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnCommandListAppendMemoryCopyRegionCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_command_list_append_memory_copy_region_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeCommandListAppendMemoryCopyFromContext"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_command_list_append_memory_copy_from_context_params_t {
+ pub phCommandList: *mut ze_command_list_handle_t,
+ pub pdstptr: *mut *mut ::std::os::raw::c_void,
+ pub phContextSrc: *mut ze_context_handle_t,
+ pub psrcptr: *mut *const ::std::os::raw::c_void,
+ pub psize: *mut usize,
+ pub phSignalEvent: *mut ze_event_handle_t,
+ pub pnumWaitEvents: *mut u32,
+ pub pphWaitEvents: *mut *mut ze_event_handle_t,
+}
+#[test]
+fn bindgen_test_layout__ze_command_list_append_memory_copy_from_context_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_command_list_append_memory_copy_from_context_params_t>(),
+ 64usize,
+ concat!(
+ "Size of: ",
+ stringify!(_ze_command_list_append_memory_copy_from_context_params_t)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_command_list_append_memory_copy_from_context_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_command_list_append_memory_copy_from_context_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_memory_copy_from_context_params_t>()))
+ .phCommandList as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_memory_copy_from_context_params_t),
+ "::",
+ stringify!(phCommandList)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_memory_copy_from_context_params_t>()))
+ .pdstptr as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_memory_copy_from_context_params_t),
+ "::",
+ stringify!(pdstptr)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_memory_copy_from_context_params_t>()))
+ .phContextSrc as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_memory_copy_from_context_params_t),
+ "::",
+ stringify!(phContextSrc)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_memory_copy_from_context_params_t>()))
+ .psrcptr as *const _ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_memory_copy_from_context_params_t),
+ "::",
+ stringify!(psrcptr)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_memory_copy_from_context_params_t>()))
+ .psize as *const _ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_memory_copy_from_context_params_t),
+ "::",
+ stringify!(psize)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_memory_copy_from_context_params_t>()))
+ .phSignalEvent as *const _ as usize
+ },
+ 40usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_memory_copy_from_context_params_t),
+ "::",
+ stringify!(phSignalEvent)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_memory_copy_from_context_params_t>()))
+ .pnumWaitEvents as *const _ as usize
+ },
+ 48usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_memory_copy_from_context_params_t),
+ "::",
+ stringify!(pnumWaitEvents)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_memory_copy_from_context_params_t>()))
+ .pphWaitEvents as *const _ as usize
+ },
+ 56usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_memory_copy_from_context_params_t),
+ "::",
+ stringify!(pphWaitEvents)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeCommandListAppendMemoryCopyFromContext"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_command_list_append_memory_copy_from_context_params_t =
+ _ze_command_list_append_memory_copy_from_context_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeCommandListAppendMemoryCopyFromContext"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnCommandListAppendMemoryCopyFromContextCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_command_list_append_memory_copy_from_context_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeCommandListAppendImageCopy"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_command_list_append_image_copy_params_t {
+ pub phCommandList: *mut ze_command_list_handle_t,
+ pub phDstImage: *mut ze_image_handle_t,
+ pub phSrcImage: *mut ze_image_handle_t,
+ pub phSignalEvent: *mut ze_event_handle_t,
+ pub pnumWaitEvents: *mut u32,
+ pub pphWaitEvents: *mut *mut ze_event_handle_t,
+}
+#[test]
+fn bindgen_test_layout__ze_command_list_append_image_copy_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_command_list_append_image_copy_params_t>(),
+ 48usize,
+ concat!(
+ "Size of: ",
+ stringify!(_ze_command_list_append_image_copy_params_t)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_command_list_append_image_copy_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_command_list_append_image_copy_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_image_copy_params_t>())).phCommandList
+ as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_image_copy_params_t),
+ "::",
+ stringify!(phCommandList)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_image_copy_params_t>())).phDstImage
+ as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_image_copy_params_t),
+ "::",
+ stringify!(phDstImage)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_image_copy_params_t>())).phSrcImage
+ as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_image_copy_params_t),
+ "::",
+ stringify!(phSrcImage)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_image_copy_params_t>())).phSignalEvent
+ as *const _ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_image_copy_params_t),
+ "::",
+ stringify!(phSignalEvent)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_image_copy_params_t>())).pnumWaitEvents
+ as *const _ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_image_copy_params_t),
+ "::",
+ stringify!(pnumWaitEvents)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_image_copy_params_t>())).pphWaitEvents
+ as *const _ as usize
+ },
+ 40usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_image_copy_params_t),
+ "::",
+ stringify!(pphWaitEvents)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeCommandListAppendImageCopy"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_command_list_append_image_copy_params_t = _ze_command_list_append_image_copy_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeCommandListAppendImageCopy"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnCommandListAppendImageCopyCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_command_list_append_image_copy_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeCommandListAppendImageCopyRegion"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_command_list_append_image_copy_region_params_t {
+ pub phCommandList: *mut ze_command_list_handle_t,
+ pub phDstImage: *mut ze_image_handle_t,
+ pub phSrcImage: *mut ze_image_handle_t,
+ pub ppDstRegion: *mut *const ze_image_region_t,
+ pub ppSrcRegion: *mut *const ze_image_region_t,
+ pub phSignalEvent: *mut ze_event_handle_t,
+ pub pnumWaitEvents: *mut u32,
+ pub pphWaitEvents: *mut *mut ze_event_handle_t,
+}
+#[test]
+fn bindgen_test_layout__ze_command_list_append_image_copy_region_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_command_list_append_image_copy_region_params_t>(),
+ 64usize,
+ concat!(
+ "Size of: ",
+ stringify!(_ze_command_list_append_image_copy_region_params_t)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_command_list_append_image_copy_region_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_command_list_append_image_copy_region_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_image_copy_region_params_t>()))
+ .phCommandList as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_image_copy_region_params_t),
+ "::",
+ stringify!(phCommandList)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_image_copy_region_params_t>()))
+ .phDstImage as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_image_copy_region_params_t),
+ "::",
+ stringify!(phDstImage)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_image_copy_region_params_t>()))
+ .phSrcImage as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_image_copy_region_params_t),
+ "::",
+ stringify!(phSrcImage)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_image_copy_region_params_t>()))
+ .ppDstRegion as *const _ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_image_copy_region_params_t),
+ "::",
+ stringify!(ppDstRegion)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_image_copy_region_params_t>()))
+ .ppSrcRegion as *const _ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_image_copy_region_params_t),
+ "::",
+ stringify!(ppSrcRegion)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_image_copy_region_params_t>()))
+ .phSignalEvent as *const _ as usize
+ },
+ 40usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_image_copy_region_params_t),
+ "::",
+ stringify!(phSignalEvent)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_image_copy_region_params_t>()))
+ .pnumWaitEvents as *const _ as usize
+ },
+ 48usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_image_copy_region_params_t),
+ "::",
+ stringify!(pnumWaitEvents)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_image_copy_region_params_t>()))
+ .pphWaitEvents as *const _ as usize
+ },
+ 56usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_image_copy_region_params_t),
+ "::",
+ stringify!(pphWaitEvents)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeCommandListAppendImageCopyRegion"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_command_list_append_image_copy_region_params_t =
+ _ze_command_list_append_image_copy_region_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeCommandListAppendImageCopyRegion"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnCommandListAppendImageCopyRegionCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_command_list_append_image_copy_region_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeCommandListAppendImageCopyToMemory"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_command_list_append_image_copy_to_memory_params_t {
+ pub phCommandList: *mut ze_command_list_handle_t,
+ pub pdstptr: *mut *mut ::std::os::raw::c_void,
+ pub phSrcImage: *mut ze_image_handle_t,
+ pub ppSrcRegion: *mut *const ze_image_region_t,
+ pub phSignalEvent: *mut ze_event_handle_t,
+ pub pnumWaitEvents: *mut u32,
+ pub pphWaitEvents: *mut *mut ze_event_handle_t,
+}
+#[test]
+fn bindgen_test_layout__ze_command_list_append_image_copy_to_memory_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_command_list_append_image_copy_to_memory_params_t>(),
+ 56usize,
+ concat!(
+ "Size of: ",
+ stringify!(_ze_command_list_append_image_copy_to_memory_params_t)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_command_list_append_image_copy_to_memory_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_command_list_append_image_copy_to_memory_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_image_copy_to_memory_params_t>()))
+ .phCommandList as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_image_copy_to_memory_params_t),
+ "::",
+ stringify!(phCommandList)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_image_copy_to_memory_params_t>()))
+ .pdstptr as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_image_copy_to_memory_params_t),
+ "::",
+ stringify!(pdstptr)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_image_copy_to_memory_params_t>()))
+ .phSrcImage as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_image_copy_to_memory_params_t),
+ "::",
+ stringify!(phSrcImage)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_image_copy_to_memory_params_t>()))
+ .ppSrcRegion as *const _ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_image_copy_to_memory_params_t),
+ "::",
+ stringify!(ppSrcRegion)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_image_copy_to_memory_params_t>()))
+ .phSignalEvent as *const _ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_image_copy_to_memory_params_t),
+ "::",
+ stringify!(phSignalEvent)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_image_copy_to_memory_params_t>()))
+ .pnumWaitEvents as *const _ as usize
+ },
+ 40usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_image_copy_to_memory_params_t),
+ "::",
+ stringify!(pnumWaitEvents)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_image_copy_to_memory_params_t>()))
+ .pphWaitEvents as *const _ as usize
+ },
+ 48usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_image_copy_to_memory_params_t),
+ "::",
+ stringify!(pphWaitEvents)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeCommandListAppendImageCopyToMemory"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_command_list_append_image_copy_to_memory_params_t =
+ _ze_command_list_append_image_copy_to_memory_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeCommandListAppendImageCopyToMemory"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnCommandListAppendImageCopyToMemoryCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_command_list_append_image_copy_to_memory_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeCommandListAppendImageCopyFromMemory"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_command_list_append_image_copy_from_memory_params_t {
+ pub phCommandList: *mut ze_command_list_handle_t,
+ pub phDstImage: *mut ze_image_handle_t,
+ pub psrcptr: *mut *const ::std::os::raw::c_void,
+ pub ppDstRegion: *mut *const ze_image_region_t,
+ pub phSignalEvent: *mut ze_event_handle_t,
+ pub pnumWaitEvents: *mut u32,
+ pub pphWaitEvents: *mut *mut ze_event_handle_t,
+}
+#[test]
+fn bindgen_test_layout__ze_command_list_append_image_copy_from_memory_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_command_list_append_image_copy_from_memory_params_t>(),
+ 56usize,
+ concat!(
+ "Size of: ",
+ stringify!(_ze_command_list_append_image_copy_from_memory_params_t)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_command_list_append_image_copy_from_memory_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_command_list_append_image_copy_from_memory_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_image_copy_from_memory_params_t>()))
+ .phCommandList as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_image_copy_from_memory_params_t),
+ "::",
+ stringify!(phCommandList)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_image_copy_from_memory_params_t>()))
+ .phDstImage as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_image_copy_from_memory_params_t),
+ "::",
+ stringify!(phDstImage)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_image_copy_from_memory_params_t>()))
+ .psrcptr as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_image_copy_from_memory_params_t),
+ "::",
+ stringify!(psrcptr)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_image_copy_from_memory_params_t>()))
+ .ppDstRegion as *const _ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_image_copy_from_memory_params_t),
+ "::",
+ stringify!(ppDstRegion)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_image_copy_from_memory_params_t>()))
+ .phSignalEvent as *const _ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_image_copy_from_memory_params_t),
+ "::",
+ stringify!(phSignalEvent)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_image_copy_from_memory_params_t>()))
+ .pnumWaitEvents as *const _ as usize
+ },
+ 40usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_image_copy_from_memory_params_t),
+ "::",
+ stringify!(pnumWaitEvents)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_image_copy_from_memory_params_t>()))
+ .pphWaitEvents as *const _ as usize
+ },
+ 48usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_image_copy_from_memory_params_t),
+ "::",
+ stringify!(pphWaitEvents)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeCommandListAppendImageCopyFromMemory"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_command_list_append_image_copy_from_memory_params_t =
+ _ze_command_list_append_image_copy_from_memory_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeCommandListAppendImageCopyFromMemory"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnCommandListAppendImageCopyFromMemoryCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_command_list_append_image_copy_from_memory_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeCommandListAppendMemoryPrefetch"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_command_list_append_memory_prefetch_params_t {
+ pub phCommandList: *mut ze_command_list_handle_t,
+ pub pptr: *mut *const ::std::os::raw::c_void,
+ pub psize: *mut usize,
+}
+#[test]
+fn bindgen_test_layout__ze_command_list_append_memory_prefetch_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_command_list_append_memory_prefetch_params_t>(),
+ 24usize,
+ concat!(
+ "Size of: ",
+ stringify!(_ze_command_list_append_memory_prefetch_params_t)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_command_list_append_memory_prefetch_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_command_list_append_memory_prefetch_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_memory_prefetch_params_t>()))
+ .phCommandList as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_memory_prefetch_params_t),
+ "::",
+ stringify!(phCommandList)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_memory_prefetch_params_t>())).pptr
+ as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_memory_prefetch_params_t),
+ "::",
+ stringify!(pptr)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_memory_prefetch_params_t>())).psize
+ as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_memory_prefetch_params_t),
+ "::",
+ stringify!(psize)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeCommandListAppendMemoryPrefetch"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_command_list_append_memory_prefetch_params_t =
+ _ze_command_list_append_memory_prefetch_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeCommandListAppendMemoryPrefetch"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnCommandListAppendMemoryPrefetchCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_command_list_append_memory_prefetch_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeCommandListAppendMemAdvise"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_command_list_append_mem_advise_params_t {
+ pub phCommandList: *mut ze_command_list_handle_t,
+ pub phDevice: *mut ze_device_handle_t,
+ pub pptr: *mut *const ::std::os::raw::c_void,
+ pub psize: *mut usize,
+ pub padvice: *mut ze_memory_advice_t,
+}
+#[test]
+fn bindgen_test_layout__ze_command_list_append_mem_advise_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_command_list_append_mem_advise_params_t>(),
+ 40usize,
+ concat!(
+ "Size of: ",
+ stringify!(_ze_command_list_append_mem_advise_params_t)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_command_list_append_mem_advise_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_command_list_append_mem_advise_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_mem_advise_params_t>())).phCommandList
+ as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_mem_advise_params_t),
+ "::",
+ stringify!(phCommandList)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_mem_advise_params_t>())).phDevice
+ as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_mem_advise_params_t),
+ "::",
+ stringify!(phDevice)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_mem_advise_params_t>())).pptr as *const _
+ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_mem_advise_params_t),
+ "::",
+ stringify!(pptr)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_mem_advise_params_t>())).psize
+ as *const _ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_mem_advise_params_t),
+ "::",
+ stringify!(psize)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_mem_advise_params_t>())).padvice
+ as *const _ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_mem_advise_params_t),
+ "::",
+ stringify!(padvice)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeCommandListAppendMemAdvise"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_command_list_append_mem_advise_params_t = _ze_command_list_append_mem_advise_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeCommandListAppendMemAdvise"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnCommandListAppendMemAdviseCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_command_list_append_mem_advise_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeCommandListAppendSignalEvent"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_command_list_append_signal_event_params_t {
+ pub phCommandList: *mut ze_command_list_handle_t,
+ pub phEvent: *mut ze_event_handle_t,
+}
+#[test]
+fn bindgen_test_layout__ze_command_list_append_signal_event_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_command_list_append_signal_event_params_t>(),
+ 16usize,
+ concat!(
+ "Size of: ",
+ stringify!(_ze_command_list_append_signal_event_params_t)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_command_list_append_signal_event_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_command_list_append_signal_event_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_signal_event_params_t>())).phCommandList
+ as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_signal_event_params_t),
+ "::",
+ stringify!(phCommandList)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_signal_event_params_t>())).phEvent
+ as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_signal_event_params_t),
+ "::",
+ stringify!(phEvent)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeCommandListAppendSignalEvent"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_command_list_append_signal_event_params_t =
+ _ze_command_list_append_signal_event_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeCommandListAppendSignalEvent"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnCommandListAppendSignalEventCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_command_list_append_signal_event_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeCommandListAppendWaitOnEvents"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_command_list_append_wait_on_events_params_t {
+ pub phCommandList: *mut ze_command_list_handle_t,
+ pub pnumEvents: *mut u32,
+ pub pphEvents: *mut *mut ze_event_handle_t,
+}
+#[test]
+fn bindgen_test_layout__ze_command_list_append_wait_on_events_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_command_list_append_wait_on_events_params_t>(),
+ 24usize,
+ concat!(
+ "Size of: ",
+ stringify!(_ze_command_list_append_wait_on_events_params_t)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_command_list_append_wait_on_events_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_command_list_append_wait_on_events_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_wait_on_events_params_t>()))
+ .phCommandList as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_wait_on_events_params_t),
+ "::",
+ stringify!(phCommandList)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_wait_on_events_params_t>())).pnumEvents
+ as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_wait_on_events_params_t),
+ "::",
+ stringify!(pnumEvents)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_wait_on_events_params_t>())).pphEvents
+ as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_wait_on_events_params_t),
+ "::",
+ stringify!(pphEvents)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeCommandListAppendWaitOnEvents"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_command_list_append_wait_on_events_params_t =
+ _ze_command_list_append_wait_on_events_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeCommandListAppendWaitOnEvents"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnCommandListAppendWaitOnEventsCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_command_list_append_wait_on_events_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeCommandListAppendEventReset"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_command_list_append_event_reset_params_t {
+ pub phCommandList: *mut ze_command_list_handle_t,
+ pub phEvent: *mut ze_event_handle_t,
+}
+#[test]
+fn bindgen_test_layout__ze_command_list_append_event_reset_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_command_list_append_event_reset_params_t>(),
+ 16usize,
+ concat!(
+ "Size of: ",
+ stringify!(_ze_command_list_append_event_reset_params_t)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_command_list_append_event_reset_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_command_list_append_event_reset_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_event_reset_params_t>())).phCommandList
+ as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_event_reset_params_t),
+ "::",
+ stringify!(phCommandList)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_event_reset_params_t>())).phEvent
+ as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_event_reset_params_t),
+ "::",
+ stringify!(phEvent)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeCommandListAppendEventReset"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_command_list_append_event_reset_params_t = _ze_command_list_append_event_reset_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeCommandListAppendEventReset"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnCommandListAppendEventResetCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_command_list_append_event_reset_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeCommandListAppendQueryKernelTimestamps"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_command_list_append_query_kernel_timestamps_params_t {
+ pub phCommandList: *mut ze_command_list_handle_t,
+ pub pnumEvents: *mut u32,
+ pub pphEvents: *mut *mut ze_event_handle_t,
+ pub pdstptr: *mut *mut ::std::os::raw::c_void,
+ pub ppOffsets: *mut *const usize,
+ pub phSignalEvent: *mut ze_event_handle_t,
+ pub pnumWaitEvents: *mut u32,
+ pub pphWaitEvents: *mut *mut ze_event_handle_t,
+}
+#[test]
+fn bindgen_test_layout__ze_command_list_append_query_kernel_timestamps_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_command_list_append_query_kernel_timestamps_params_t>(),
+ 64usize,
+ concat!(
+ "Size of: ",
+ stringify!(_ze_command_list_append_query_kernel_timestamps_params_t)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_command_list_append_query_kernel_timestamps_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_command_list_append_query_kernel_timestamps_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_query_kernel_timestamps_params_t>()))
+ .phCommandList as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_query_kernel_timestamps_params_t),
+ "::",
+ stringify!(phCommandList)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_query_kernel_timestamps_params_t>()))
+ .pnumEvents as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_query_kernel_timestamps_params_t),
+ "::",
+ stringify!(pnumEvents)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_query_kernel_timestamps_params_t>()))
+ .pphEvents as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_query_kernel_timestamps_params_t),
+ "::",
+ stringify!(pphEvents)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_query_kernel_timestamps_params_t>()))
+ .pdstptr as *const _ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_query_kernel_timestamps_params_t),
+ "::",
+ stringify!(pdstptr)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_query_kernel_timestamps_params_t>()))
+ .ppOffsets as *const _ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_query_kernel_timestamps_params_t),
+ "::",
+ stringify!(ppOffsets)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_query_kernel_timestamps_params_t>()))
+ .phSignalEvent as *const _ as usize
+ },
+ 40usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_query_kernel_timestamps_params_t),
+ "::",
+ stringify!(phSignalEvent)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_query_kernel_timestamps_params_t>()))
+ .pnumWaitEvents as *const _ as usize
+ },
+ 48usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_query_kernel_timestamps_params_t),
+ "::",
+ stringify!(pnumWaitEvents)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_query_kernel_timestamps_params_t>()))
+ .pphWaitEvents as *const _ as usize
+ },
+ 56usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_query_kernel_timestamps_params_t),
+ "::",
+ stringify!(pphWaitEvents)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeCommandListAppendQueryKernelTimestamps"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_command_list_append_query_kernel_timestamps_params_t =
+ _ze_command_list_append_query_kernel_timestamps_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeCommandListAppendQueryKernelTimestamps"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnCommandListAppendQueryKernelTimestampsCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_command_list_append_query_kernel_timestamps_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeCommandListAppendLaunchKernel"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_command_list_append_launch_kernel_params_t {
+ pub phCommandList: *mut ze_command_list_handle_t,
+ pub phKernel: *mut ze_kernel_handle_t,
+ pub ppLaunchFuncArgs: *mut *const ze_group_count_t,
+ pub phSignalEvent: *mut ze_event_handle_t,
+ pub pnumWaitEvents: *mut u32,
+ pub pphWaitEvents: *mut *mut ze_event_handle_t,
+}
+#[test]
+fn bindgen_test_layout__ze_command_list_append_launch_kernel_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_command_list_append_launch_kernel_params_t>(),
+ 48usize,
+ concat!(
+ "Size of: ",
+ stringify!(_ze_command_list_append_launch_kernel_params_t)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_command_list_append_launch_kernel_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_command_list_append_launch_kernel_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_launch_kernel_params_t>())).phCommandList
+ as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_launch_kernel_params_t),
+ "::",
+ stringify!(phCommandList)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_launch_kernel_params_t>())).phKernel
+ as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_launch_kernel_params_t),
+ "::",
+ stringify!(phKernel)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_launch_kernel_params_t>()))
+ .ppLaunchFuncArgs as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_launch_kernel_params_t),
+ "::",
+ stringify!(ppLaunchFuncArgs)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_launch_kernel_params_t>())).phSignalEvent
+ as *const _ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_launch_kernel_params_t),
+ "::",
+ stringify!(phSignalEvent)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_launch_kernel_params_t>()))
+ .pnumWaitEvents as *const _ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_launch_kernel_params_t),
+ "::",
+ stringify!(pnumWaitEvents)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_launch_kernel_params_t>())).pphWaitEvents
+ as *const _ as usize
+ },
+ 40usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_launch_kernel_params_t),
+ "::",
+ stringify!(pphWaitEvents)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeCommandListAppendLaunchKernel"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_command_list_append_launch_kernel_params_t =
+ _ze_command_list_append_launch_kernel_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeCommandListAppendLaunchKernel"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnCommandListAppendLaunchKernelCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_command_list_append_launch_kernel_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeCommandListAppendLaunchCooperativeKernel"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_command_list_append_launch_cooperative_kernel_params_t {
+ pub phCommandList: *mut ze_command_list_handle_t,
+ pub phKernel: *mut ze_kernel_handle_t,
+ pub ppLaunchFuncArgs: *mut *const ze_group_count_t,
+ pub phSignalEvent: *mut ze_event_handle_t,
+ pub pnumWaitEvents: *mut u32,
+ pub pphWaitEvents: *mut *mut ze_event_handle_t,
+}
+#[test]
+fn bindgen_test_layout__ze_command_list_append_launch_cooperative_kernel_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_command_list_append_launch_cooperative_kernel_params_t>(),
+ 48usize,
+ concat!(
+ "Size of: ",
+ stringify!(_ze_command_list_append_launch_cooperative_kernel_params_t)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_command_list_append_launch_cooperative_kernel_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_command_list_append_launch_cooperative_kernel_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_launch_cooperative_kernel_params_t>()))
+ .phCommandList as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_launch_cooperative_kernel_params_t),
+ "::",
+ stringify!(phCommandList)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_launch_cooperative_kernel_params_t>()))
+ .phKernel as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_launch_cooperative_kernel_params_t),
+ "::",
+ stringify!(phKernel)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_launch_cooperative_kernel_params_t>()))
+ .ppLaunchFuncArgs as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_launch_cooperative_kernel_params_t),
+ "::",
+ stringify!(ppLaunchFuncArgs)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_launch_cooperative_kernel_params_t>()))
+ .phSignalEvent as *const _ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_launch_cooperative_kernel_params_t),
+ "::",
+ stringify!(phSignalEvent)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_launch_cooperative_kernel_params_t>()))
+ .pnumWaitEvents as *const _ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_launch_cooperative_kernel_params_t),
+ "::",
+ stringify!(pnumWaitEvents)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_launch_cooperative_kernel_params_t>()))
+ .pphWaitEvents as *const _ as usize
+ },
+ 40usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_launch_cooperative_kernel_params_t),
+ "::",
+ stringify!(pphWaitEvents)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeCommandListAppendLaunchCooperativeKernel"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_command_list_append_launch_cooperative_kernel_params_t =
+ _ze_command_list_append_launch_cooperative_kernel_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeCommandListAppendLaunchCooperativeKernel"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnCommandListAppendLaunchCooperativeKernelCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_command_list_append_launch_cooperative_kernel_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeCommandListAppendLaunchKernelIndirect"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_command_list_append_launch_kernel_indirect_params_t {
+ pub phCommandList: *mut ze_command_list_handle_t,
+ pub phKernel: *mut ze_kernel_handle_t,
+ pub ppLaunchArgumentsBuffer: *mut *const ze_group_count_t,
+ pub phSignalEvent: *mut ze_event_handle_t,
+ pub pnumWaitEvents: *mut u32,
+ pub pphWaitEvents: *mut *mut ze_event_handle_t,
+}
+#[test]
+fn bindgen_test_layout__ze_command_list_append_launch_kernel_indirect_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_command_list_append_launch_kernel_indirect_params_t>(),
+ 48usize,
+ concat!(
+ "Size of: ",
+ stringify!(_ze_command_list_append_launch_kernel_indirect_params_t)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_command_list_append_launch_kernel_indirect_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_command_list_append_launch_kernel_indirect_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_launch_kernel_indirect_params_t>()))
+ .phCommandList as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_launch_kernel_indirect_params_t),
+ "::",
+ stringify!(phCommandList)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_launch_kernel_indirect_params_t>()))
+ .phKernel as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_launch_kernel_indirect_params_t),
+ "::",
+ stringify!(phKernel)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_launch_kernel_indirect_params_t>()))
+ .ppLaunchArgumentsBuffer as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_launch_kernel_indirect_params_t),
+ "::",
+ stringify!(ppLaunchArgumentsBuffer)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_launch_kernel_indirect_params_t>()))
+ .phSignalEvent as *const _ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_launch_kernel_indirect_params_t),
+ "::",
+ stringify!(phSignalEvent)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_launch_kernel_indirect_params_t>()))
+ .pnumWaitEvents as *const _ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_launch_kernel_indirect_params_t),
+ "::",
+ stringify!(pnumWaitEvents)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_append_launch_kernel_indirect_params_t>()))
+ .pphWaitEvents as *const _ as usize
+ },
+ 40usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_launch_kernel_indirect_params_t),
+ "::",
+ stringify!(pphWaitEvents)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeCommandListAppendLaunchKernelIndirect"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_command_list_append_launch_kernel_indirect_params_t =
+ _ze_command_list_append_launch_kernel_indirect_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeCommandListAppendLaunchKernelIndirect"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnCommandListAppendLaunchKernelIndirectCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_command_list_append_launch_kernel_indirect_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeCommandListAppendLaunchMultipleKernelsIndirect"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_command_list_append_launch_multiple_kernels_indirect_params_t {
+ pub phCommandList: *mut ze_command_list_handle_t,
+ pub pnumKernels: *mut u32,
+ pub pphKernels: *mut *mut ze_kernel_handle_t,
+ pub ppCountBuffer: *mut *const u32,
+ pub ppLaunchArgumentsBuffer: *mut *const ze_group_count_t,
+ pub phSignalEvent: *mut ze_event_handle_t,
+ pub pnumWaitEvents: *mut u32,
+ pub pphWaitEvents: *mut *mut ze_event_handle_t,
+}
+#[test]
+fn bindgen_test_layout__ze_command_list_append_launch_multiple_kernels_indirect_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_command_list_append_launch_multiple_kernels_indirect_params_t>(),
+ 64usize,
+ concat!(
+ "Size of: ",
+ stringify!(_ze_command_list_append_launch_multiple_kernels_indirect_params_t)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_command_list_append_launch_multiple_kernels_indirect_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_command_list_append_launch_multiple_kernels_indirect_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<
+ _ze_command_list_append_launch_multiple_kernels_indirect_params_t,
+ >()))
+ .phCommandList as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_launch_multiple_kernels_indirect_params_t),
+ "::",
+ stringify!(phCommandList)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<
+ _ze_command_list_append_launch_multiple_kernels_indirect_params_t,
+ >()))
+ .pnumKernels as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_launch_multiple_kernels_indirect_params_t),
+ "::",
+ stringify!(pnumKernels)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<
+ _ze_command_list_append_launch_multiple_kernels_indirect_params_t,
+ >()))
+ .pphKernels as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_launch_multiple_kernels_indirect_params_t),
+ "::",
+ stringify!(pphKernels)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<
+ _ze_command_list_append_launch_multiple_kernels_indirect_params_t,
+ >()))
+ .ppCountBuffer as *const _ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_launch_multiple_kernels_indirect_params_t),
+ "::",
+ stringify!(ppCountBuffer)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<
+ _ze_command_list_append_launch_multiple_kernels_indirect_params_t,
+ >()))
+ .ppLaunchArgumentsBuffer as *const _ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_launch_multiple_kernels_indirect_params_t),
+ "::",
+ stringify!(ppLaunchArgumentsBuffer)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<
+ _ze_command_list_append_launch_multiple_kernels_indirect_params_t,
+ >()))
+ .phSignalEvent as *const _ as usize
+ },
+ 40usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_launch_multiple_kernels_indirect_params_t),
+ "::",
+ stringify!(phSignalEvent)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<
+ _ze_command_list_append_launch_multiple_kernels_indirect_params_t,
+ >()))
+ .pnumWaitEvents as *const _ as usize
+ },
+ 48usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_launch_multiple_kernels_indirect_params_t),
+ "::",
+ stringify!(pnumWaitEvents)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<
+ _ze_command_list_append_launch_multiple_kernels_indirect_params_t,
+ >()))
+ .pphWaitEvents as *const _ as usize
+ },
+ 56usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_append_launch_multiple_kernels_indirect_params_t),
+ "::",
+ stringify!(pphWaitEvents)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeCommandListAppendLaunchMultipleKernelsIndirect"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_command_list_append_launch_multiple_kernels_indirect_params_t =
+ _ze_command_list_append_launch_multiple_kernels_indirect_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeCommandListAppendLaunchMultipleKernelsIndirect"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnCommandListAppendLaunchMultipleKernelsIndirectCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_command_list_append_launch_multiple_kernels_indirect_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Table of CommandList callback functions pointers"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_command_list_callbacks_t {
+ pub pfnCreateCb: ze_pfnCommandListCreateCb_t,
+ pub pfnCreateImmediateCb: ze_pfnCommandListCreateImmediateCb_t,
+ pub pfnDestroyCb: ze_pfnCommandListDestroyCb_t,
+ pub pfnCloseCb: ze_pfnCommandListCloseCb_t,
+ pub pfnResetCb: ze_pfnCommandListResetCb_t,
+ pub pfnAppendWriteGlobalTimestampCb: ze_pfnCommandListAppendWriteGlobalTimestampCb_t,
+ pub pfnAppendBarrierCb: ze_pfnCommandListAppendBarrierCb_t,
+ pub pfnAppendMemoryRangesBarrierCb: ze_pfnCommandListAppendMemoryRangesBarrierCb_t,
+ pub pfnAppendMemoryCopyCb: ze_pfnCommandListAppendMemoryCopyCb_t,
+ pub pfnAppendMemoryFillCb: ze_pfnCommandListAppendMemoryFillCb_t,
+ pub pfnAppendMemoryCopyRegionCb: ze_pfnCommandListAppendMemoryCopyRegionCb_t,
+ pub pfnAppendMemoryCopyFromContextCb: ze_pfnCommandListAppendMemoryCopyFromContextCb_t,
+ pub pfnAppendImageCopyCb: ze_pfnCommandListAppendImageCopyCb_t,
+ pub pfnAppendImageCopyRegionCb: ze_pfnCommandListAppendImageCopyRegionCb_t,
+ pub pfnAppendImageCopyToMemoryCb: ze_pfnCommandListAppendImageCopyToMemoryCb_t,
+ pub pfnAppendImageCopyFromMemoryCb: ze_pfnCommandListAppendImageCopyFromMemoryCb_t,
+ pub pfnAppendMemoryPrefetchCb: ze_pfnCommandListAppendMemoryPrefetchCb_t,
+ pub pfnAppendMemAdviseCb: ze_pfnCommandListAppendMemAdviseCb_t,
+ pub pfnAppendSignalEventCb: ze_pfnCommandListAppendSignalEventCb_t,
+ pub pfnAppendWaitOnEventsCb: ze_pfnCommandListAppendWaitOnEventsCb_t,
+ pub pfnAppendEventResetCb: ze_pfnCommandListAppendEventResetCb_t,
+ pub pfnAppendQueryKernelTimestampsCb: ze_pfnCommandListAppendQueryKernelTimestampsCb_t,
+ pub pfnAppendLaunchKernelCb: ze_pfnCommandListAppendLaunchKernelCb_t,
+ pub pfnAppendLaunchCooperativeKernelCb: ze_pfnCommandListAppendLaunchCooperativeKernelCb_t,
+ pub pfnAppendLaunchKernelIndirectCb: ze_pfnCommandListAppendLaunchKernelIndirectCb_t,
+ pub pfnAppendLaunchMultipleKernelsIndirectCb:
+ ze_pfnCommandListAppendLaunchMultipleKernelsIndirectCb_t,
+}
+#[test]
+fn bindgen_test_layout__ze_command_list_callbacks_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_command_list_callbacks_t>(),
+ 208usize,
+ concat!("Size of: ", stringify!(_ze_command_list_callbacks_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_command_list_callbacks_t>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(_ze_command_list_callbacks_t))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_callbacks_t>())).pfnCreateCb as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_callbacks_t),
+ "::",
+ stringify!(pfnCreateCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_callbacks_t>())).pfnCreateImmediateCb
+ as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_callbacks_t),
+ "::",
+ stringify!(pfnCreateImmediateCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_callbacks_t>())).pfnDestroyCb as *const _
+ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_callbacks_t),
+ "::",
+ stringify!(pfnDestroyCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_callbacks_t>())).pfnCloseCb as *const _ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_callbacks_t),
+ "::",
+ stringify!(pfnCloseCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_callbacks_t>())).pfnResetCb as *const _ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_callbacks_t),
+ "::",
+ stringify!(pfnResetCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_callbacks_t>())).pfnAppendWriteGlobalTimestampCb
+ as *const _ as usize
+ },
+ 40usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_callbacks_t),
+ "::",
+ stringify!(pfnAppendWriteGlobalTimestampCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_callbacks_t>())).pfnAppendBarrierCb as *const _
+ as usize
+ },
+ 48usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_callbacks_t),
+ "::",
+ stringify!(pfnAppendBarrierCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_callbacks_t>())).pfnAppendMemoryRangesBarrierCb
+ as *const _ as usize
+ },
+ 56usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_callbacks_t),
+ "::",
+ stringify!(pfnAppendMemoryRangesBarrierCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_callbacks_t>())).pfnAppendMemoryCopyCb
+ as *const _ as usize
+ },
+ 64usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_callbacks_t),
+ "::",
+ stringify!(pfnAppendMemoryCopyCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_callbacks_t>())).pfnAppendMemoryFillCb
+ as *const _ as usize
+ },
+ 72usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_callbacks_t),
+ "::",
+ stringify!(pfnAppendMemoryFillCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_callbacks_t>())).pfnAppendMemoryCopyRegionCb
+ as *const _ as usize
+ },
+ 80usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_callbacks_t),
+ "::",
+ stringify!(pfnAppendMemoryCopyRegionCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_callbacks_t>()))
+ .pfnAppendMemoryCopyFromContextCb as *const _ as usize
+ },
+ 88usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_callbacks_t),
+ "::",
+ stringify!(pfnAppendMemoryCopyFromContextCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_callbacks_t>())).pfnAppendImageCopyCb
+ as *const _ as usize
+ },
+ 96usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_callbacks_t),
+ "::",
+ stringify!(pfnAppendImageCopyCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_callbacks_t>())).pfnAppendImageCopyRegionCb
+ as *const _ as usize
+ },
+ 104usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_callbacks_t),
+ "::",
+ stringify!(pfnAppendImageCopyRegionCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_callbacks_t>())).pfnAppendImageCopyToMemoryCb
+ as *const _ as usize
+ },
+ 112usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_callbacks_t),
+ "::",
+ stringify!(pfnAppendImageCopyToMemoryCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_callbacks_t>())).pfnAppendImageCopyFromMemoryCb
+ as *const _ as usize
+ },
+ 120usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_callbacks_t),
+ "::",
+ stringify!(pfnAppendImageCopyFromMemoryCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_callbacks_t>())).pfnAppendMemoryPrefetchCb
+ as *const _ as usize
+ },
+ 128usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_callbacks_t),
+ "::",
+ stringify!(pfnAppendMemoryPrefetchCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_callbacks_t>())).pfnAppendMemAdviseCb
+ as *const _ as usize
+ },
+ 136usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_callbacks_t),
+ "::",
+ stringify!(pfnAppendMemAdviseCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_callbacks_t>())).pfnAppendSignalEventCb
+ as *const _ as usize
+ },
+ 144usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_callbacks_t),
+ "::",
+ stringify!(pfnAppendSignalEventCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_callbacks_t>())).pfnAppendWaitOnEventsCb
+ as *const _ as usize
+ },
+ 152usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_callbacks_t),
+ "::",
+ stringify!(pfnAppendWaitOnEventsCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_callbacks_t>())).pfnAppendEventResetCb
+ as *const _ as usize
+ },
+ 160usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_callbacks_t),
+ "::",
+ stringify!(pfnAppendEventResetCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_callbacks_t>()))
+ .pfnAppendQueryKernelTimestampsCb as *const _ as usize
+ },
+ 168usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_callbacks_t),
+ "::",
+ stringify!(pfnAppendQueryKernelTimestampsCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_callbacks_t>())).pfnAppendLaunchKernelCb
+ as *const _ as usize
+ },
+ 176usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_callbacks_t),
+ "::",
+ stringify!(pfnAppendLaunchKernelCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_callbacks_t>()))
+ .pfnAppendLaunchCooperativeKernelCb as *const _ as usize
+ },
+ 184usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_callbacks_t),
+ "::",
+ stringify!(pfnAppendLaunchCooperativeKernelCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_callbacks_t>())).pfnAppendLaunchKernelIndirectCb
+ as *const _ as usize
+ },
+ 192usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_callbacks_t),
+ "::",
+ stringify!(pfnAppendLaunchKernelIndirectCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_command_list_callbacks_t>()))
+ .pfnAppendLaunchMultipleKernelsIndirectCb as *const _ as usize
+ },
+ 200usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_command_list_callbacks_t),
+ "::",
+ stringify!(pfnAppendLaunchMultipleKernelsIndirectCb)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Table of CommandList callback functions pointers"]
+pub type ze_command_list_callbacks_t = _ze_command_list_callbacks_t;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeFenceCreate"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_fence_create_params_t {
+ pub phCommandQueue: *mut ze_command_queue_handle_t,
+ pub pdesc: *mut *const ze_fence_desc_t,
+ pub pphFence: *mut *mut ze_fence_handle_t,
+}
+#[test]
+fn bindgen_test_layout__ze_fence_create_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_fence_create_params_t>(),
+ 24usize,
+ concat!("Size of: ", stringify!(_ze_fence_create_params_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_fence_create_params_t>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(_ze_fence_create_params_t))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_fence_create_params_t>())).phCommandQueue as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_fence_create_params_t),
+ "::",
+ stringify!(phCommandQueue)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<_ze_fence_create_params_t>())).pdesc as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_fence_create_params_t),
+ "::",
+ stringify!(pdesc)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_fence_create_params_t>())).pphFence as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_fence_create_params_t),
+ "::",
+ stringify!(pphFence)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeFenceCreate"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_fence_create_params_t = _ze_fence_create_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeFenceCreate"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnFenceCreateCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_fence_create_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeFenceDestroy"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_fence_destroy_params_t {
+ pub phFence: *mut ze_fence_handle_t,
+}
+#[test]
+fn bindgen_test_layout__ze_fence_destroy_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_fence_destroy_params_t>(),
+ 8usize,
+ concat!("Size of: ", stringify!(_ze_fence_destroy_params_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_fence_destroy_params_t>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(_ze_fence_destroy_params_t))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_fence_destroy_params_t>())).phFence as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_fence_destroy_params_t),
+ "::",
+ stringify!(phFence)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeFenceDestroy"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_fence_destroy_params_t = _ze_fence_destroy_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeFenceDestroy"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnFenceDestroyCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_fence_destroy_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeFenceHostSynchronize"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_fence_host_synchronize_params_t {
+ pub phFence: *mut ze_fence_handle_t,
+ pub ptimeout: *mut u64,
+}
+#[test]
+fn bindgen_test_layout__ze_fence_host_synchronize_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_fence_host_synchronize_params_t>(),
+ 16usize,
+ concat!("Size of: ", stringify!(_ze_fence_host_synchronize_params_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_fence_host_synchronize_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_fence_host_synchronize_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_fence_host_synchronize_params_t>())).phFence as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_fence_host_synchronize_params_t),
+ "::",
+ stringify!(phFence)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_fence_host_synchronize_params_t>())).ptimeout as *const _
+ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_fence_host_synchronize_params_t),
+ "::",
+ stringify!(ptimeout)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeFenceHostSynchronize"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_fence_host_synchronize_params_t = _ze_fence_host_synchronize_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeFenceHostSynchronize"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnFenceHostSynchronizeCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_fence_host_synchronize_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeFenceQueryStatus"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_fence_query_status_params_t {
+ pub phFence: *mut ze_fence_handle_t,
+}
+#[test]
+fn bindgen_test_layout__ze_fence_query_status_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_fence_query_status_params_t>(),
+ 8usize,
+ concat!("Size of: ", stringify!(_ze_fence_query_status_params_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_fence_query_status_params_t>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(_ze_fence_query_status_params_t))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_fence_query_status_params_t>())).phFence as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_fence_query_status_params_t),
+ "::",
+ stringify!(phFence)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeFenceQueryStatus"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_fence_query_status_params_t = _ze_fence_query_status_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeFenceQueryStatus"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnFenceQueryStatusCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_fence_query_status_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeFenceReset"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_fence_reset_params_t {
+ pub phFence: *mut ze_fence_handle_t,
+}
+#[test]
+fn bindgen_test_layout__ze_fence_reset_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_fence_reset_params_t>(),
+ 8usize,
+ concat!("Size of: ", stringify!(_ze_fence_reset_params_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_fence_reset_params_t>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(_ze_fence_reset_params_t))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_fence_reset_params_t>())).phFence as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_fence_reset_params_t),
+ "::",
+ stringify!(phFence)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeFenceReset"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_fence_reset_params_t = _ze_fence_reset_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeFenceReset"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnFenceResetCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_fence_reset_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Table of Fence callback functions pointers"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_fence_callbacks_t {
+ pub pfnCreateCb: ze_pfnFenceCreateCb_t,
+ pub pfnDestroyCb: ze_pfnFenceDestroyCb_t,
+ pub pfnHostSynchronizeCb: ze_pfnFenceHostSynchronizeCb_t,
+ pub pfnQueryStatusCb: ze_pfnFenceQueryStatusCb_t,
+ pub pfnResetCb: ze_pfnFenceResetCb_t,
+}
+#[test]
+fn bindgen_test_layout__ze_fence_callbacks_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_fence_callbacks_t>(),
+ 40usize,
+ concat!("Size of: ", stringify!(_ze_fence_callbacks_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_fence_callbacks_t>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(_ze_fence_callbacks_t))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_fence_callbacks_t>())).pfnCreateCb as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_fence_callbacks_t),
+ "::",
+ stringify!(pfnCreateCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_fence_callbacks_t>())).pfnDestroyCb as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_fence_callbacks_t),
+ "::",
+ stringify!(pfnDestroyCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_fence_callbacks_t>())).pfnHostSynchronizeCb as *const _
+ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_fence_callbacks_t),
+ "::",
+ stringify!(pfnHostSynchronizeCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_fence_callbacks_t>())).pfnQueryStatusCb as *const _ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_fence_callbacks_t),
+ "::",
+ stringify!(pfnQueryStatusCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_fence_callbacks_t>())).pfnResetCb as *const _ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_fence_callbacks_t),
+ "::",
+ stringify!(pfnResetCb)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Table of Fence callback functions pointers"]
+pub type ze_fence_callbacks_t = _ze_fence_callbacks_t;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeEventPoolCreate"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_event_pool_create_params_t {
+ pub phContext: *mut ze_context_handle_t,
+ pub pdesc: *mut *const ze_event_pool_desc_t,
+ pub pnumDevices: *mut u32,
+ pub pphDevices: *mut *mut ze_device_handle_t,
+ pub pphEventPool: *mut *mut ze_event_pool_handle_t,
+}
+#[test]
+fn bindgen_test_layout__ze_event_pool_create_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_event_pool_create_params_t>(),
+ 40usize,
+ concat!("Size of: ", stringify!(_ze_event_pool_create_params_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_event_pool_create_params_t>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(_ze_event_pool_create_params_t))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_event_pool_create_params_t>())).phContext as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_event_pool_create_params_t),
+ "::",
+ stringify!(phContext)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_event_pool_create_params_t>())).pdesc as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_event_pool_create_params_t),
+ "::",
+ stringify!(pdesc)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_event_pool_create_params_t>())).pnumDevices as *const _
+ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_event_pool_create_params_t),
+ "::",
+ stringify!(pnumDevices)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_event_pool_create_params_t>())).pphDevices as *const _
+ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_event_pool_create_params_t),
+ "::",
+ stringify!(pphDevices)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_event_pool_create_params_t>())).pphEventPool as *const _
+ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_event_pool_create_params_t),
+ "::",
+ stringify!(pphEventPool)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeEventPoolCreate"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_event_pool_create_params_t = _ze_event_pool_create_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeEventPoolCreate"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnEventPoolCreateCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_event_pool_create_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeEventPoolDestroy"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_event_pool_destroy_params_t {
+ pub phEventPool: *mut ze_event_pool_handle_t,
+}
+#[test]
+fn bindgen_test_layout__ze_event_pool_destroy_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_event_pool_destroy_params_t>(),
+ 8usize,
+ concat!("Size of: ", stringify!(_ze_event_pool_destroy_params_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_event_pool_destroy_params_t>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(_ze_event_pool_destroy_params_t))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_event_pool_destroy_params_t>())).phEventPool as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_event_pool_destroy_params_t),
+ "::",
+ stringify!(phEventPool)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeEventPoolDestroy"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_event_pool_destroy_params_t = _ze_event_pool_destroy_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeEventPoolDestroy"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnEventPoolDestroyCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_event_pool_destroy_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeEventPoolGetIpcHandle"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_event_pool_get_ipc_handle_params_t {
+ pub phEventPool: *mut ze_event_pool_handle_t,
+ pub pphIpc: *mut *mut ze_ipc_event_pool_handle_t,
+}
+#[test]
+fn bindgen_test_layout__ze_event_pool_get_ipc_handle_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_event_pool_get_ipc_handle_params_t>(),
+ 16usize,
+ concat!(
+ "Size of: ",
+ stringify!(_ze_event_pool_get_ipc_handle_params_t)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_event_pool_get_ipc_handle_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_event_pool_get_ipc_handle_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_event_pool_get_ipc_handle_params_t>())).phEventPool
+ as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_event_pool_get_ipc_handle_params_t),
+ "::",
+ stringify!(phEventPool)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_event_pool_get_ipc_handle_params_t>())).pphIpc as *const _
+ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_event_pool_get_ipc_handle_params_t),
+ "::",
+ stringify!(pphIpc)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeEventPoolGetIpcHandle"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_event_pool_get_ipc_handle_params_t = _ze_event_pool_get_ipc_handle_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeEventPoolGetIpcHandle"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnEventPoolGetIpcHandleCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_event_pool_get_ipc_handle_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeEventPoolOpenIpcHandle"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_event_pool_open_ipc_handle_params_t {
+ pub phContext: *mut ze_context_handle_t,
+ pub phIpc: *mut ze_ipc_event_pool_handle_t,
+ pub pphEventPool: *mut *mut ze_event_pool_handle_t,
+}
+#[test]
+fn bindgen_test_layout__ze_event_pool_open_ipc_handle_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_event_pool_open_ipc_handle_params_t>(),
+ 24usize,
+ concat!(
+ "Size of: ",
+ stringify!(_ze_event_pool_open_ipc_handle_params_t)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_event_pool_open_ipc_handle_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_event_pool_open_ipc_handle_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_event_pool_open_ipc_handle_params_t>())).phContext
+ as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_event_pool_open_ipc_handle_params_t),
+ "::",
+ stringify!(phContext)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_event_pool_open_ipc_handle_params_t>())).phIpc as *const _
+ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_event_pool_open_ipc_handle_params_t),
+ "::",
+ stringify!(phIpc)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_event_pool_open_ipc_handle_params_t>())).pphEventPool
+ as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_event_pool_open_ipc_handle_params_t),
+ "::",
+ stringify!(pphEventPool)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeEventPoolOpenIpcHandle"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_event_pool_open_ipc_handle_params_t = _ze_event_pool_open_ipc_handle_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeEventPoolOpenIpcHandle"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnEventPoolOpenIpcHandleCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_event_pool_open_ipc_handle_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeEventPoolCloseIpcHandle"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_event_pool_close_ipc_handle_params_t {
+ pub phEventPool: *mut ze_event_pool_handle_t,
+}
+#[test]
+fn bindgen_test_layout__ze_event_pool_close_ipc_handle_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_event_pool_close_ipc_handle_params_t>(),
+ 8usize,
+ concat!(
+ "Size of: ",
+ stringify!(_ze_event_pool_close_ipc_handle_params_t)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_event_pool_close_ipc_handle_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_event_pool_close_ipc_handle_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_event_pool_close_ipc_handle_params_t>())).phEventPool
+ as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_event_pool_close_ipc_handle_params_t),
+ "::",
+ stringify!(phEventPool)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeEventPoolCloseIpcHandle"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_event_pool_close_ipc_handle_params_t = _ze_event_pool_close_ipc_handle_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeEventPoolCloseIpcHandle"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnEventPoolCloseIpcHandleCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_event_pool_close_ipc_handle_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Table of EventPool callback functions pointers"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_event_pool_callbacks_t {
+ pub pfnCreateCb: ze_pfnEventPoolCreateCb_t,
+ pub pfnDestroyCb: ze_pfnEventPoolDestroyCb_t,
+ pub pfnGetIpcHandleCb: ze_pfnEventPoolGetIpcHandleCb_t,
+ pub pfnOpenIpcHandleCb: ze_pfnEventPoolOpenIpcHandleCb_t,
+ pub pfnCloseIpcHandleCb: ze_pfnEventPoolCloseIpcHandleCb_t,
+}
+#[test]
+fn bindgen_test_layout__ze_event_pool_callbacks_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_event_pool_callbacks_t>(),
+ 40usize,
+ concat!("Size of: ", stringify!(_ze_event_pool_callbacks_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_event_pool_callbacks_t>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(_ze_event_pool_callbacks_t))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_event_pool_callbacks_t>())).pfnCreateCb as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_event_pool_callbacks_t),
+ "::",
+ stringify!(pfnCreateCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_event_pool_callbacks_t>())).pfnDestroyCb as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_event_pool_callbacks_t),
+ "::",
+ stringify!(pfnDestroyCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_event_pool_callbacks_t>())).pfnGetIpcHandleCb as *const _
+ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_event_pool_callbacks_t),
+ "::",
+ stringify!(pfnGetIpcHandleCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_event_pool_callbacks_t>())).pfnOpenIpcHandleCb as *const _
+ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_event_pool_callbacks_t),
+ "::",
+ stringify!(pfnOpenIpcHandleCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_event_pool_callbacks_t>())).pfnCloseIpcHandleCb as *const _
+ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_event_pool_callbacks_t),
+ "::",
+ stringify!(pfnCloseIpcHandleCb)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Table of EventPool callback functions pointers"]
+pub type ze_event_pool_callbacks_t = _ze_event_pool_callbacks_t;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeEventCreate"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_event_create_params_t {
+ pub phEventPool: *mut ze_event_pool_handle_t,
+ pub pdesc: *mut *const ze_event_desc_t,
+ pub pphEvent: *mut *mut ze_event_handle_t,
+}
+#[test]
+fn bindgen_test_layout__ze_event_create_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_event_create_params_t>(),
+ 24usize,
+ concat!("Size of: ", stringify!(_ze_event_create_params_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_event_create_params_t>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(_ze_event_create_params_t))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_event_create_params_t>())).phEventPool as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_event_create_params_t),
+ "::",
+ stringify!(phEventPool)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<_ze_event_create_params_t>())).pdesc as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_event_create_params_t),
+ "::",
+ stringify!(pdesc)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_event_create_params_t>())).pphEvent as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_event_create_params_t),
+ "::",
+ stringify!(pphEvent)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeEventCreate"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_event_create_params_t = _ze_event_create_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeEventCreate"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnEventCreateCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_event_create_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeEventDestroy"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_event_destroy_params_t {
+ pub phEvent: *mut ze_event_handle_t,
+}
+#[test]
+fn bindgen_test_layout__ze_event_destroy_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_event_destroy_params_t>(),
+ 8usize,
+ concat!("Size of: ", stringify!(_ze_event_destroy_params_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_event_destroy_params_t>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(_ze_event_destroy_params_t))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_event_destroy_params_t>())).phEvent as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_event_destroy_params_t),
+ "::",
+ stringify!(phEvent)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeEventDestroy"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_event_destroy_params_t = _ze_event_destroy_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeEventDestroy"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnEventDestroyCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_event_destroy_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeEventHostSignal"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_event_host_signal_params_t {
+ pub phEvent: *mut ze_event_handle_t,
+}
+#[test]
+fn bindgen_test_layout__ze_event_host_signal_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_event_host_signal_params_t>(),
+ 8usize,
+ concat!("Size of: ", stringify!(_ze_event_host_signal_params_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_event_host_signal_params_t>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(_ze_event_host_signal_params_t))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_event_host_signal_params_t>())).phEvent as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_event_host_signal_params_t),
+ "::",
+ stringify!(phEvent)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeEventHostSignal"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_event_host_signal_params_t = _ze_event_host_signal_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeEventHostSignal"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnEventHostSignalCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_event_host_signal_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeEventHostSynchronize"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_event_host_synchronize_params_t {
+ pub phEvent: *mut ze_event_handle_t,
+ pub ptimeout: *mut u64,
+}
+#[test]
+fn bindgen_test_layout__ze_event_host_synchronize_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_event_host_synchronize_params_t>(),
+ 16usize,
+ concat!("Size of: ", stringify!(_ze_event_host_synchronize_params_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_event_host_synchronize_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_event_host_synchronize_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_event_host_synchronize_params_t>())).phEvent as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_event_host_synchronize_params_t),
+ "::",
+ stringify!(phEvent)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_event_host_synchronize_params_t>())).ptimeout as *const _
+ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_event_host_synchronize_params_t),
+ "::",
+ stringify!(ptimeout)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeEventHostSynchronize"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_event_host_synchronize_params_t = _ze_event_host_synchronize_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeEventHostSynchronize"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnEventHostSynchronizeCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_event_host_synchronize_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeEventQueryStatus"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_event_query_status_params_t {
+ pub phEvent: *mut ze_event_handle_t,
+}
+#[test]
+fn bindgen_test_layout__ze_event_query_status_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_event_query_status_params_t>(),
+ 8usize,
+ concat!("Size of: ", stringify!(_ze_event_query_status_params_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_event_query_status_params_t>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(_ze_event_query_status_params_t))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_event_query_status_params_t>())).phEvent as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_event_query_status_params_t),
+ "::",
+ stringify!(phEvent)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeEventQueryStatus"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_event_query_status_params_t = _ze_event_query_status_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeEventQueryStatus"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnEventQueryStatusCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_event_query_status_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeEventHostReset"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_event_host_reset_params_t {
+ pub phEvent: *mut ze_event_handle_t,
+}
+#[test]
+fn bindgen_test_layout__ze_event_host_reset_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_event_host_reset_params_t>(),
+ 8usize,
+ concat!("Size of: ", stringify!(_ze_event_host_reset_params_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_event_host_reset_params_t>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(_ze_event_host_reset_params_t))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_event_host_reset_params_t>())).phEvent as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_event_host_reset_params_t),
+ "::",
+ stringify!(phEvent)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeEventHostReset"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_event_host_reset_params_t = _ze_event_host_reset_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeEventHostReset"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnEventHostResetCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_event_host_reset_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeEventQueryKernelTimestamp"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_event_query_kernel_timestamp_params_t {
+ pub phEvent: *mut ze_event_handle_t,
+ pub pdstptr: *mut *mut ze_kernel_timestamp_result_t,
+}
+#[test]
+fn bindgen_test_layout__ze_event_query_kernel_timestamp_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_event_query_kernel_timestamp_params_t>(),
+ 16usize,
+ concat!(
+ "Size of: ",
+ stringify!(_ze_event_query_kernel_timestamp_params_t)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_event_query_kernel_timestamp_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_event_query_kernel_timestamp_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_event_query_kernel_timestamp_params_t>())).phEvent
+ as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_event_query_kernel_timestamp_params_t),
+ "::",
+ stringify!(phEvent)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_event_query_kernel_timestamp_params_t>())).pdstptr
+ as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_event_query_kernel_timestamp_params_t),
+ "::",
+ stringify!(pdstptr)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeEventQueryKernelTimestamp"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_event_query_kernel_timestamp_params_t = _ze_event_query_kernel_timestamp_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeEventQueryKernelTimestamp"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnEventQueryKernelTimestampCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_event_query_kernel_timestamp_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Table of Event callback functions pointers"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_event_callbacks_t {
+ pub pfnCreateCb: ze_pfnEventCreateCb_t,
+ pub pfnDestroyCb: ze_pfnEventDestroyCb_t,
+ pub pfnHostSignalCb: ze_pfnEventHostSignalCb_t,
+ pub pfnHostSynchronizeCb: ze_pfnEventHostSynchronizeCb_t,
+ pub pfnQueryStatusCb: ze_pfnEventQueryStatusCb_t,
+ pub pfnHostResetCb: ze_pfnEventHostResetCb_t,
+ pub pfnQueryKernelTimestampCb: ze_pfnEventQueryKernelTimestampCb_t,
+}
+#[test]
+fn bindgen_test_layout__ze_event_callbacks_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_event_callbacks_t>(),
+ 56usize,
+ concat!("Size of: ", stringify!(_ze_event_callbacks_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_event_callbacks_t>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(_ze_event_callbacks_t))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_event_callbacks_t>())).pfnCreateCb as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_event_callbacks_t),
+ "::",
+ stringify!(pfnCreateCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_event_callbacks_t>())).pfnDestroyCb as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_event_callbacks_t),
+ "::",
+ stringify!(pfnDestroyCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_event_callbacks_t>())).pfnHostSignalCb as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_event_callbacks_t),
+ "::",
+ stringify!(pfnHostSignalCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_event_callbacks_t>())).pfnHostSynchronizeCb as *const _
+ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_event_callbacks_t),
+ "::",
+ stringify!(pfnHostSynchronizeCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_event_callbacks_t>())).pfnQueryStatusCb as *const _ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_event_callbacks_t),
+ "::",
+ stringify!(pfnQueryStatusCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_event_callbacks_t>())).pfnHostResetCb as *const _ as usize
+ },
+ 40usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_event_callbacks_t),
+ "::",
+ stringify!(pfnHostResetCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_event_callbacks_t>())).pfnQueryKernelTimestampCb as *const _
+ as usize
+ },
+ 48usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_event_callbacks_t),
+ "::",
+ stringify!(pfnQueryKernelTimestampCb)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Table of Event callback functions pointers"]
+pub type ze_event_callbacks_t = _ze_event_callbacks_t;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeImageGetProperties"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_image_get_properties_params_t {
+ pub phDevice: *mut ze_device_handle_t,
+ pub pdesc: *mut *const ze_image_desc_t,
+ pub ppImageProperties: *mut *mut ze_image_properties_t,
+}
+#[test]
+fn bindgen_test_layout__ze_image_get_properties_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_image_get_properties_params_t>(),
+ 24usize,
+ concat!("Size of: ", stringify!(_ze_image_get_properties_params_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_image_get_properties_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_image_get_properties_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_image_get_properties_params_t>())).phDevice as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_image_get_properties_params_t),
+ "::",
+ stringify!(phDevice)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_image_get_properties_params_t>())).pdesc as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_image_get_properties_params_t),
+ "::",
+ stringify!(pdesc)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_image_get_properties_params_t>())).ppImageProperties
+ as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_image_get_properties_params_t),
+ "::",
+ stringify!(ppImageProperties)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeImageGetProperties"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_image_get_properties_params_t = _ze_image_get_properties_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeImageGetProperties"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnImageGetPropertiesCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_image_get_properties_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeImageCreate"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_image_create_params_t {
+ pub phContext: *mut ze_context_handle_t,
+ pub phDevice: *mut ze_device_handle_t,
+ pub pdesc: *mut *const ze_image_desc_t,
+ pub pphImage: *mut *mut ze_image_handle_t,
+}
+#[test]
+fn bindgen_test_layout__ze_image_create_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_image_create_params_t>(),
+ 32usize,
+ concat!("Size of: ", stringify!(_ze_image_create_params_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_image_create_params_t>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(_ze_image_create_params_t))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_image_create_params_t>())).phContext as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_image_create_params_t),
+ "::",
+ stringify!(phContext)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_image_create_params_t>())).phDevice as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_image_create_params_t),
+ "::",
+ stringify!(phDevice)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<_ze_image_create_params_t>())).pdesc as *const _ as usize },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_image_create_params_t),
+ "::",
+ stringify!(pdesc)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_image_create_params_t>())).pphImage as *const _ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_image_create_params_t),
+ "::",
+ stringify!(pphImage)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeImageCreate"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_image_create_params_t = _ze_image_create_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeImageCreate"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnImageCreateCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_image_create_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeImageDestroy"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_image_destroy_params_t {
+ pub phImage: *mut ze_image_handle_t,
+}
+#[test]
+fn bindgen_test_layout__ze_image_destroy_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_image_destroy_params_t>(),
+ 8usize,
+ concat!("Size of: ", stringify!(_ze_image_destroy_params_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_image_destroy_params_t>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(_ze_image_destroy_params_t))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_image_destroy_params_t>())).phImage as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_image_destroy_params_t),
+ "::",
+ stringify!(phImage)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeImageDestroy"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_image_destroy_params_t = _ze_image_destroy_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeImageDestroy"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnImageDestroyCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_image_destroy_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Table of Image callback functions pointers"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_image_callbacks_t {
+ pub pfnGetPropertiesCb: ze_pfnImageGetPropertiesCb_t,
+ pub pfnCreateCb: ze_pfnImageCreateCb_t,
+ pub pfnDestroyCb: ze_pfnImageDestroyCb_t,
+}
+#[test]
+fn bindgen_test_layout__ze_image_callbacks_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_image_callbacks_t>(),
+ 24usize,
+ concat!("Size of: ", stringify!(_ze_image_callbacks_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_image_callbacks_t>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(_ze_image_callbacks_t))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_image_callbacks_t>())).pfnGetPropertiesCb as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_image_callbacks_t),
+ "::",
+ stringify!(pfnGetPropertiesCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_image_callbacks_t>())).pfnCreateCb as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_image_callbacks_t),
+ "::",
+ stringify!(pfnCreateCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_image_callbacks_t>())).pfnDestroyCb as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_image_callbacks_t),
+ "::",
+ stringify!(pfnDestroyCb)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Table of Image callback functions pointers"]
+pub type ze_image_callbacks_t = _ze_image_callbacks_t;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeModuleCreate"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_module_create_params_t {
+ pub phContext: *mut ze_context_handle_t,
+ pub phDevice: *mut ze_device_handle_t,
+ pub pdesc: *mut *const ze_module_desc_t,
+ pub pphModule: *mut *mut ze_module_handle_t,
+ pub pphBuildLog: *mut *mut ze_module_build_log_handle_t,
+}
+#[test]
+fn bindgen_test_layout__ze_module_create_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_module_create_params_t>(),
+ 40usize,
+ concat!("Size of: ", stringify!(_ze_module_create_params_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_module_create_params_t>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(_ze_module_create_params_t))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_module_create_params_t>())).phContext as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_module_create_params_t),
+ "::",
+ stringify!(phContext)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_module_create_params_t>())).phDevice as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_module_create_params_t),
+ "::",
+ stringify!(phDevice)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_module_create_params_t>())).pdesc as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_module_create_params_t),
+ "::",
+ stringify!(pdesc)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_module_create_params_t>())).pphModule as *const _ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_module_create_params_t),
+ "::",
+ stringify!(pphModule)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_module_create_params_t>())).pphBuildLog as *const _ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_module_create_params_t),
+ "::",
+ stringify!(pphBuildLog)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeModuleCreate"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_module_create_params_t = _ze_module_create_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeModuleCreate"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnModuleCreateCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_module_create_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeModuleDestroy"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_module_destroy_params_t {
+ pub phModule: *mut ze_module_handle_t,
+}
+#[test]
+fn bindgen_test_layout__ze_module_destroy_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_module_destroy_params_t>(),
+ 8usize,
+ concat!("Size of: ", stringify!(_ze_module_destroy_params_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_module_destroy_params_t>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(_ze_module_destroy_params_t))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_module_destroy_params_t>())).phModule as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_module_destroy_params_t),
+ "::",
+ stringify!(phModule)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeModuleDestroy"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_module_destroy_params_t = _ze_module_destroy_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeModuleDestroy"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnModuleDestroyCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_module_destroy_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeModuleDynamicLink"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_module_dynamic_link_params_t {
+ pub pnumModules: *mut u32,
+ pub pphModules: *mut *mut ze_module_handle_t,
+ pub pphLinkLog: *mut *mut ze_module_build_log_handle_t,
+}
+#[test]
+fn bindgen_test_layout__ze_module_dynamic_link_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_module_dynamic_link_params_t>(),
+ 24usize,
+ concat!("Size of: ", stringify!(_ze_module_dynamic_link_params_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_module_dynamic_link_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_module_dynamic_link_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_module_dynamic_link_params_t>())).pnumModules as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_module_dynamic_link_params_t),
+ "::",
+ stringify!(pnumModules)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_module_dynamic_link_params_t>())).pphModules as *const _
+ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_module_dynamic_link_params_t),
+ "::",
+ stringify!(pphModules)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_module_dynamic_link_params_t>())).pphLinkLog as *const _
+ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_module_dynamic_link_params_t),
+ "::",
+ stringify!(pphLinkLog)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeModuleDynamicLink"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_module_dynamic_link_params_t = _ze_module_dynamic_link_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeModuleDynamicLink"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnModuleDynamicLinkCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_module_dynamic_link_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeModuleGetNativeBinary"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_module_get_native_binary_params_t {
+ pub phModule: *mut ze_module_handle_t,
+ pub ppSize: *mut *mut usize,
+ pub ppModuleNativeBinary: *mut *mut u8,
+}
+#[test]
+fn bindgen_test_layout__ze_module_get_native_binary_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_module_get_native_binary_params_t>(),
+ 24usize,
+ concat!(
+ "Size of: ",
+ stringify!(_ze_module_get_native_binary_params_t)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_module_get_native_binary_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_module_get_native_binary_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_module_get_native_binary_params_t>())).phModule as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_module_get_native_binary_params_t),
+ "::",
+ stringify!(phModule)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_module_get_native_binary_params_t>())).ppSize as *const _
+ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_module_get_native_binary_params_t),
+ "::",
+ stringify!(ppSize)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_module_get_native_binary_params_t>())).ppModuleNativeBinary
+ as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_module_get_native_binary_params_t),
+ "::",
+ stringify!(ppModuleNativeBinary)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeModuleGetNativeBinary"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_module_get_native_binary_params_t = _ze_module_get_native_binary_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeModuleGetNativeBinary"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnModuleGetNativeBinaryCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_module_get_native_binary_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeModuleGetGlobalPointer"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_module_get_global_pointer_params_t {
+ pub phModule: *mut ze_module_handle_t,
+ pub ppGlobalName: *mut *const ::std::os::raw::c_char,
+ pub ppSize: *mut *mut usize,
+ pub ppptr: *mut *mut *mut ::std::os::raw::c_void,
+}
+#[test]
+fn bindgen_test_layout__ze_module_get_global_pointer_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_module_get_global_pointer_params_t>(),
+ 32usize,
+ concat!(
+ "Size of: ",
+ stringify!(_ze_module_get_global_pointer_params_t)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_module_get_global_pointer_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_module_get_global_pointer_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_module_get_global_pointer_params_t>())).phModule as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_module_get_global_pointer_params_t),
+ "::",
+ stringify!(phModule)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_module_get_global_pointer_params_t>())).ppGlobalName
+ as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_module_get_global_pointer_params_t),
+ "::",
+ stringify!(ppGlobalName)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_module_get_global_pointer_params_t>())).ppSize as *const _
+ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_module_get_global_pointer_params_t),
+ "::",
+ stringify!(ppSize)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_module_get_global_pointer_params_t>())).ppptr as *const _
+ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_module_get_global_pointer_params_t),
+ "::",
+ stringify!(ppptr)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeModuleGetGlobalPointer"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_module_get_global_pointer_params_t = _ze_module_get_global_pointer_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeModuleGetGlobalPointer"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnModuleGetGlobalPointerCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_module_get_global_pointer_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeModuleGetKernelNames"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_module_get_kernel_names_params_t {
+ pub phModule: *mut ze_module_handle_t,
+ pub ppCount: *mut *mut u32,
+ pub ppNames: *mut *mut *const ::std::os::raw::c_char,
+}
+#[test]
+fn bindgen_test_layout__ze_module_get_kernel_names_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_module_get_kernel_names_params_t>(),
+ 24usize,
+ concat!(
+ "Size of: ",
+ stringify!(_ze_module_get_kernel_names_params_t)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_module_get_kernel_names_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_module_get_kernel_names_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_module_get_kernel_names_params_t>())).phModule as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_module_get_kernel_names_params_t),
+ "::",
+ stringify!(phModule)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_module_get_kernel_names_params_t>())).ppCount as *const _
+ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_module_get_kernel_names_params_t),
+ "::",
+ stringify!(ppCount)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_module_get_kernel_names_params_t>())).ppNames as *const _
+ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_module_get_kernel_names_params_t),
+ "::",
+ stringify!(ppNames)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeModuleGetKernelNames"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_module_get_kernel_names_params_t = _ze_module_get_kernel_names_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeModuleGetKernelNames"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnModuleGetKernelNamesCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_module_get_kernel_names_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeModuleGetProperties"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_module_get_properties_params_t {
+ pub phModule: *mut ze_module_handle_t,
+ pub ppModuleProperties: *mut *mut ze_module_properties_t,
+}
+#[test]
+fn bindgen_test_layout__ze_module_get_properties_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_module_get_properties_params_t>(),
+ 16usize,
+ concat!("Size of: ", stringify!(_ze_module_get_properties_params_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_module_get_properties_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_module_get_properties_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_module_get_properties_params_t>())).phModule as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_module_get_properties_params_t),
+ "::",
+ stringify!(phModule)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_module_get_properties_params_t>())).ppModuleProperties
+ as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_module_get_properties_params_t),
+ "::",
+ stringify!(ppModuleProperties)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeModuleGetProperties"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_module_get_properties_params_t = _ze_module_get_properties_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeModuleGetProperties"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnModuleGetPropertiesCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_module_get_properties_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeModuleGetFunctionPointer"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_module_get_function_pointer_params_t {
+ pub phModule: *mut ze_module_handle_t,
+ pub ppFunctionName: *mut *const ::std::os::raw::c_char,
+ pub ppfnFunction: *mut *mut *mut ::std::os::raw::c_void,
+}
+#[test]
+fn bindgen_test_layout__ze_module_get_function_pointer_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_module_get_function_pointer_params_t>(),
+ 24usize,
+ concat!(
+ "Size of: ",
+ stringify!(_ze_module_get_function_pointer_params_t)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_module_get_function_pointer_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_module_get_function_pointer_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_module_get_function_pointer_params_t>())).phModule
+ as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_module_get_function_pointer_params_t),
+ "::",
+ stringify!(phModule)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_module_get_function_pointer_params_t>())).ppFunctionName
+ as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_module_get_function_pointer_params_t),
+ "::",
+ stringify!(ppFunctionName)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_module_get_function_pointer_params_t>())).ppfnFunction
+ as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_module_get_function_pointer_params_t),
+ "::",
+ stringify!(ppfnFunction)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeModuleGetFunctionPointer"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_module_get_function_pointer_params_t = _ze_module_get_function_pointer_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeModuleGetFunctionPointer"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnModuleGetFunctionPointerCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_module_get_function_pointer_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Table of Module callback functions pointers"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_module_callbacks_t {
+ pub pfnCreateCb: ze_pfnModuleCreateCb_t,
+ pub pfnDestroyCb: ze_pfnModuleDestroyCb_t,
+ pub pfnDynamicLinkCb: ze_pfnModuleDynamicLinkCb_t,
+ pub pfnGetNativeBinaryCb: ze_pfnModuleGetNativeBinaryCb_t,
+ pub pfnGetGlobalPointerCb: ze_pfnModuleGetGlobalPointerCb_t,
+ pub pfnGetKernelNamesCb: ze_pfnModuleGetKernelNamesCb_t,
+ pub pfnGetPropertiesCb: ze_pfnModuleGetPropertiesCb_t,
+ pub pfnGetFunctionPointerCb: ze_pfnModuleGetFunctionPointerCb_t,
+}
+#[test]
+fn bindgen_test_layout__ze_module_callbacks_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_module_callbacks_t>(),
+ 64usize,
+ concat!("Size of: ", stringify!(_ze_module_callbacks_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_module_callbacks_t>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(_ze_module_callbacks_t))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_module_callbacks_t>())).pfnCreateCb as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_module_callbacks_t),
+ "::",
+ stringify!(pfnCreateCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_module_callbacks_t>())).pfnDestroyCb as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_module_callbacks_t),
+ "::",
+ stringify!(pfnDestroyCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_module_callbacks_t>())).pfnDynamicLinkCb as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_module_callbacks_t),
+ "::",
+ stringify!(pfnDynamicLinkCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_module_callbacks_t>())).pfnGetNativeBinaryCb as *const _
+ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_module_callbacks_t),
+ "::",
+ stringify!(pfnGetNativeBinaryCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_module_callbacks_t>())).pfnGetGlobalPointerCb as *const _
+ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_module_callbacks_t),
+ "::",
+ stringify!(pfnGetGlobalPointerCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_module_callbacks_t>())).pfnGetKernelNamesCb as *const _
+ as usize
+ },
+ 40usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_module_callbacks_t),
+ "::",
+ stringify!(pfnGetKernelNamesCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_module_callbacks_t>())).pfnGetPropertiesCb as *const _
+ as usize
+ },
+ 48usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_module_callbacks_t),
+ "::",
+ stringify!(pfnGetPropertiesCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_module_callbacks_t>())).pfnGetFunctionPointerCb as *const _
+ as usize
+ },
+ 56usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_module_callbacks_t),
+ "::",
+ stringify!(pfnGetFunctionPointerCb)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Table of Module callback functions pointers"]
+pub type ze_module_callbacks_t = _ze_module_callbacks_t;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeModuleBuildLogDestroy"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_module_build_log_destroy_params_t {
+ pub phModuleBuildLog: *mut ze_module_build_log_handle_t,
+}
+#[test]
+fn bindgen_test_layout__ze_module_build_log_destroy_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_module_build_log_destroy_params_t>(),
+ 8usize,
+ concat!(
+ "Size of: ",
+ stringify!(_ze_module_build_log_destroy_params_t)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_module_build_log_destroy_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_module_build_log_destroy_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_module_build_log_destroy_params_t>())).phModuleBuildLog
+ as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_module_build_log_destroy_params_t),
+ "::",
+ stringify!(phModuleBuildLog)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeModuleBuildLogDestroy"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_module_build_log_destroy_params_t = _ze_module_build_log_destroy_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeModuleBuildLogDestroy"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnModuleBuildLogDestroyCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_module_build_log_destroy_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeModuleBuildLogGetString"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_module_build_log_get_string_params_t {
+ pub phModuleBuildLog: *mut ze_module_build_log_handle_t,
+ pub ppSize: *mut *mut usize,
+ pub ppBuildLog: *mut *mut ::std::os::raw::c_char,
+}
+#[test]
+fn bindgen_test_layout__ze_module_build_log_get_string_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_module_build_log_get_string_params_t>(),
+ 24usize,
+ concat!(
+ "Size of: ",
+ stringify!(_ze_module_build_log_get_string_params_t)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_module_build_log_get_string_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_module_build_log_get_string_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_module_build_log_get_string_params_t>())).phModuleBuildLog
+ as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_module_build_log_get_string_params_t),
+ "::",
+ stringify!(phModuleBuildLog)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_module_build_log_get_string_params_t>())).ppSize as *const _
+ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_module_build_log_get_string_params_t),
+ "::",
+ stringify!(ppSize)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_module_build_log_get_string_params_t>())).ppBuildLog
+ as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_module_build_log_get_string_params_t),
+ "::",
+ stringify!(ppBuildLog)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeModuleBuildLogGetString"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_module_build_log_get_string_params_t = _ze_module_build_log_get_string_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeModuleBuildLogGetString"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnModuleBuildLogGetStringCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_module_build_log_get_string_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Table of ModuleBuildLog callback functions pointers"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_module_build_log_callbacks_t {
+ pub pfnDestroyCb: ze_pfnModuleBuildLogDestroyCb_t,
+ pub pfnGetStringCb: ze_pfnModuleBuildLogGetStringCb_t,
+}
+#[test]
+fn bindgen_test_layout__ze_module_build_log_callbacks_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_module_build_log_callbacks_t>(),
+ 16usize,
+ concat!("Size of: ", stringify!(_ze_module_build_log_callbacks_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_module_build_log_callbacks_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_module_build_log_callbacks_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_module_build_log_callbacks_t>())).pfnDestroyCb as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_module_build_log_callbacks_t),
+ "::",
+ stringify!(pfnDestroyCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_module_build_log_callbacks_t>())).pfnGetStringCb as *const _
+ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_module_build_log_callbacks_t),
+ "::",
+ stringify!(pfnGetStringCb)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Table of ModuleBuildLog callback functions pointers"]
+pub type ze_module_build_log_callbacks_t = _ze_module_build_log_callbacks_t;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeKernelCreate"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_kernel_create_params_t {
+ pub phModule: *mut ze_module_handle_t,
+ pub pdesc: *mut *const ze_kernel_desc_t,
+ pub pphKernel: *mut *mut ze_kernel_handle_t,
+}
+#[test]
+fn bindgen_test_layout__ze_kernel_create_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_kernel_create_params_t>(),
+ 24usize,
+ concat!("Size of: ", stringify!(_ze_kernel_create_params_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_kernel_create_params_t>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(_ze_kernel_create_params_t))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_kernel_create_params_t>())).phModule as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_kernel_create_params_t),
+ "::",
+ stringify!(phModule)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_kernel_create_params_t>())).pdesc as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_kernel_create_params_t),
+ "::",
+ stringify!(pdesc)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_kernel_create_params_t>())).pphKernel as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_kernel_create_params_t),
+ "::",
+ stringify!(pphKernel)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeKernelCreate"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_kernel_create_params_t = _ze_kernel_create_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeKernelCreate"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnKernelCreateCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_kernel_create_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeKernelDestroy"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_kernel_destroy_params_t {
+ pub phKernel: *mut ze_kernel_handle_t,
+}
+#[test]
+fn bindgen_test_layout__ze_kernel_destroy_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_kernel_destroy_params_t>(),
+ 8usize,
+ concat!("Size of: ", stringify!(_ze_kernel_destroy_params_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_kernel_destroy_params_t>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(_ze_kernel_destroy_params_t))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_kernel_destroy_params_t>())).phKernel as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_kernel_destroy_params_t),
+ "::",
+ stringify!(phKernel)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeKernelDestroy"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_kernel_destroy_params_t = _ze_kernel_destroy_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeKernelDestroy"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnKernelDestroyCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_kernel_destroy_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeKernelSetCacheConfig"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_kernel_set_cache_config_params_t {
+ pub phKernel: *mut ze_kernel_handle_t,
+ pub pflags: *mut ze_cache_config_flags_t,
+}
+#[test]
+fn bindgen_test_layout__ze_kernel_set_cache_config_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_kernel_set_cache_config_params_t>(),
+ 16usize,
+ concat!(
+ "Size of: ",
+ stringify!(_ze_kernel_set_cache_config_params_t)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_kernel_set_cache_config_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_kernel_set_cache_config_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_kernel_set_cache_config_params_t>())).phKernel as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_kernel_set_cache_config_params_t),
+ "::",
+ stringify!(phKernel)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_kernel_set_cache_config_params_t>())).pflags as *const _
+ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_kernel_set_cache_config_params_t),
+ "::",
+ stringify!(pflags)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeKernelSetCacheConfig"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_kernel_set_cache_config_params_t = _ze_kernel_set_cache_config_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeKernelSetCacheConfig"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnKernelSetCacheConfigCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_kernel_set_cache_config_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeKernelSetGroupSize"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_kernel_set_group_size_params_t {
+ pub phKernel: *mut ze_kernel_handle_t,
+ pub pgroupSizeX: *mut u32,
+ pub pgroupSizeY: *mut u32,
+ pub pgroupSizeZ: *mut u32,
+}
+#[test]
+fn bindgen_test_layout__ze_kernel_set_group_size_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_kernel_set_group_size_params_t>(),
+ 32usize,
+ concat!("Size of: ", stringify!(_ze_kernel_set_group_size_params_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_kernel_set_group_size_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_kernel_set_group_size_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_kernel_set_group_size_params_t>())).phKernel as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_kernel_set_group_size_params_t),
+ "::",
+ stringify!(phKernel)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_kernel_set_group_size_params_t>())).pgroupSizeX as *const _
+ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_kernel_set_group_size_params_t),
+ "::",
+ stringify!(pgroupSizeX)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_kernel_set_group_size_params_t>())).pgroupSizeY as *const _
+ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_kernel_set_group_size_params_t),
+ "::",
+ stringify!(pgroupSizeY)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_kernel_set_group_size_params_t>())).pgroupSizeZ as *const _
+ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_kernel_set_group_size_params_t),
+ "::",
+ stringify!(pgroupSizeZ)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeKernelSetGroupSize"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_kernel_set_group_size_params_t = _ze_kernel_set_group_size_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeKernelSetGroupSize"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnKernelSetGroupSizeCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_kernel_set_group_size_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeKernelSuggestGroupSize"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_kernel_suggest_group_size_params_t {
+ pub phKernel: *mut ze_kernel_handle_t,
+ pub pglobalSizeX: *mut u32,
+ pub pglobalSizeY: *mut u32,
+ pub pglobalSizeZ: *mut u32,
+ pub pgroupSizeX: *mut *mut u32,
+ pub pgroupSizeY: *mut *mut u32,
+ pub pgroupSizeZ: *mut *mut u32,
+}
+#[test]
+fn bindgen_test_layout__ze_kernel_suggest_group_size_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_kernel_suggest_group_size_params_t>(),
+ 56usize,
+ concat!(
+ "Size of: ",
+ stringify!(_ze_kernel_suggest_group_size_params_t)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_kernel_suggest_group_size_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_kernel_suggest_group_size_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_kernel_suggest_group_size_params_t>())).phKernel as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_kernel_suggest_group_size_params_t),
+ "::",
+ stringify!(phKernel)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_kernel_suggest_group_size_params_t>())).pglobalSizeX
+ as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_kernel_suggest_group_size_params_t),
+ "::",
+ stringify!(pglobalSizeX)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_kernel_suggest_group_size_params_t>())).pglobalSizeY
+ as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_kernel_suggest_group_size_params_t),
+ "::",
+ stringify!(pglobalSizeY)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_kernel_suggest_group_size_params_t>())).pglobalSizeZ
+ as *const _ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_kernel_suggest_group_size_params_t),
+ "::",
+ stringify!(pglobalSizeZ)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_kernel_suggest_group_size_params_t>())).pgroupSizeX
+ as *const _ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_kernel_suggest_group_size_params_t),
+ "::",
+ stringify!(pgroupSizeX)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_kernel_suggest_group_size_params_t>())).pgroupSizeY
+ as *const _ as usize
+ },
+ 40usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_kernel_suggest_group_size_params_t),
+ "::",
+ stringify!(pgroupSizeY)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_kernel_suggest_group_size_params_t>())).pgroupSizeZ
+ as *const _ as usize
+ },
+ 48usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_kernel_suggest_group_size_params_t),
+ "::",
+ stringify!(pgroupSizeZ)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeKernelSuggestGroupSize"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_kernel_suggest_group_size_params_t = _ze_kernel_suggest_group_size_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeKernelSuggestGroupSize"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnKernelSuggestGroupSizeCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_kernel_suggest_group_size_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeKernelSuggestMaxCooperativeGroupCount"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_kernel_suggest_max_cooperative_group_count_params_t {
+ pub phKernel: *mut ze_kernel_handle_t,
+ pub ptotalGroupCount: *mut *mut u32,
+}
+#[test]
+fn bindgen_test_layout__ze_kernel_suggest_max_cooperative_group_count_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_kernel_suggest_max_cooperative_group_count_params_t>(),
+ 16usize,
+ concat!(
+ "Size of: ",
+ stringify!(_ze_kernel_suggest_max_cooperative_group_count_params_t)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_kernel_suggest_max_cooperative_group_count_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_kernel_suggest_max_cooperative_group_count_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_kernel_suggest_max_cooperative_group_count_params_t>()))
+ .phKernel as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_kernel_suggest_max_cooperative_group_count_params_t),
+ "::",
+ stringify!(phKernel)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_kernel_suggest_max_cooperative_group_count_params_t>()))
+ .ptotalGroupCount as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_kernel_suggest_max_cooperative_group_count_params_t),
+ "::",
+ stringify!(ptotalGroupCount)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeKernelSuggestMaxCooperativeGroupCount"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_kernel_suggest_max_cooperative_group_count_params_t =
+ _ze_kernel_suggest_max_cooperative_group_count_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeKernelSuggestMaxCooperativeGroupCount"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnKernelSuggestMaxCooperativeGroupCountCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_kernel_suggest_max_cooperative_group_count_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeKernelSetArgumentValue"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_kernel_set_argument_value_params_t {
+ pub phKernel: *mut ze_kernel_handle_t,
+ pub pargIndex: *mut u32,
+ pub pargSize: *mut usize,
+ pub ppArgValue: *mut *const ::std::os::raw::c_void,
+}
+#[test]
+fn bindgen_test_layout__ze_kernel_set_argument_value_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_kernel_set_argument_value_params_t>(),
+ 32usize,
+ concat!(
+ "Size of: ",
+ stringify!(_ze_kernel_set_argument_value_params_t)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_kernel_set_argument_value_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_kernel_set_argument_value_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_kernel_set_argument_value_params_t>())).phKernel as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_kernel_set_argument_value_params_t),
+ "::",
+ stringify!(phKernel)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_kernel_set_argument_value_params_t>())).pargIndex as *const _
+ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_kernel_set_argument_value_params_t),
+ "::",
+ stringify!(pargIndex)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_kernel_set_argument_value_params_t>())).pargSize as *const _
+ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_kernel_set_argument_value_params_t),
+ "::",
+ stringify!(pargSize)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_kernel_set_argument_value_params_t>())).ppArgValue
+ as *const _ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_kernel_set_argument_value_params_t),
+ "::",
+ stringify!(ppArgValue)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeKernelSetArgumentValue"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_kernel_set_argument_value_params_t = _ze_kernel_set_argument_value_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeKernelSetArgumentValue"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnKernelSetArgumentValueCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_kernel_set_argument_value_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeKernelSetIndirectAccess"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_kernel_set_indirect_access_params_t {
+ pub phKernel: *mut ze_kernel_handle_t,
+ pub pflags: *mut ze_kernel_indirect_access_flags_t,
+}
+#[test]
+fn bindgen_test_layout__ze_kernel_set_indirect_access_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_kernel_set_indirect_access_params_t>(),
+ 16usize,
+ concat!(
+ "Size of: ",
+ stringify!(_ze_kernel_set_indirect_access_params_t)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_kernel_set_indirect_access_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_kernel_set_indirect_access_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_kernel_set_indirect_access_params_t>())).phKernel as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_kernel_set_indirect_access_params_t),
+ "::",
+ stringify!(phKernel)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_kernel_set_indirect_access_params_t>())).pflags as *const _
+ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_kernel_set_indirect_access_params_t),
+ "::",
+ stringify!(pflags)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeKernelSetIndirectAccess"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_kernel_set_indirect_access_params_t = _ze_kernel_set_indirect_access_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeKernelSetIndirectAccess"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnKernelSetIndirectAccessCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_kernel_set_indirect_access_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeKernelGetIndirectAccess"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_kernel_get_indirect_access_params_t {
+ pub phKernel: *mut ze_kernel_handle_t,
+ pub ppFlags: *mut *mut ze_kernel_indirect_access_flags_t,
+}
+#[test]
+fn bindgen_test_layout__ze_kernel_get_indirect_access_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_kernel_get_indirect_access_params_t>(),
+ 16usize,
+ concat!(
+ "Size of: ",
+ stringify!(_ze_kernel_get_indirect_access_params_t)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_kernel_get_indirect_access_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_kernel_get_indirect_access_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_kernel_get_indirect_access_params_t>())).phKernel as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_kernel_get_indirect_access_params_t),
+ "::",
+ stringify!(phKernel)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_kernel_get_indirect_access_params_t>())).ppFlags as *const _
+ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_kernel_get_indirect_access_params_t),
+ "::",
+ stringify!(ppFlags)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeKernelGetIndirectAccess"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_kernel_get_indirect_access_params_t = _ze_kernel_get_indirect_access_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeKernelGetIndirectAccess"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnKernelGetIndirectAccessCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_kernel_get_indirect_access_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeKernelGetSourceAttributes"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_kernel_get_source_attributes_params_t {
+ pub phKernel: *mut ze_kernel_handle_t,
+ pub ppSize: *mut *mut u32,
+ pub ppString: *mut *mut *mut ::std::os::raw::c_char,
+}
+#[test]
+fn bindgen_test_layout__ze_kernel_get_source_attributes_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_kernel_get_source_attributes_params_t>(),
+ 24usize,
+ concat!(
+ "Size of: ",
+ stringify!(_ze_kernel_get_source_attributes_params_t)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_kernel_get_source_attributes_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_kernel_get_source_attributes_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_kernel_get_source_attributes_params_t>())).phKernel
+ as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_kernel_get_source_attributes_params_t),
+ "::",
+ stringify!(phKernel)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_kernel_get_source_attributes_params_t>())).ppSize as *const _
+ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_kernel_get_source_attributes_params_t),
+ "::",
+ stringify!(ppSize)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_kernel_get_source_attributes_params_t>())).ppString
+ as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_kernel_get_source_attributes_params_t),
+ "::",
+ stringify!(ppString)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeKernelGetSourceAttributes"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_kernel_get_source_attributes_params_t = _ze_kernel_get_source_attributes_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeKernelGetSourceAttributes"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnKernelGetSourceAttributesCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_kernel_get_source_attributes_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeKernelGetProperties"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_kernel_get_properties_params_t {
+ pub phKernel: *mut ze_kernel_handle_t,
+ pub ppKernelProperties: *mut *mut ze_kernel_properties_t,
+}
+#[test]
+fn bindgen_test_layout__ze_kernel_get_properties_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_kernel_get_properties_params_t>(),
+ 16usize,
+ concat!("Size of: ", stringify!(_ze_kernel_get_properties_params_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_kernel_get_properties_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_kernel_get_properties_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_kernel_get_properties_params_t>())).phKernel as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_kernel_get_properties_params_t),
+ "::",
+ stringify!(phKernel)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_kernel_get_properties_params_t>())).ppKernelProperties
+ as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_kernel_get_properties_params_t),
+ "::",
+ stringify!(ppKernelProperties)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeKernelGetProperties"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_kernel_get_properties_params_t = _ze_kernel_get_properties_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeKernelGetProperties"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnKernelGetPropertiesCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_kernel_get_properties_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeKernelGetName"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_kernel_get_name_params_t {
+ pub phKernel: *mut ze_kernel_handle_t,
+ pub ppSize: *mut *mut usize,
+ pub ppName: *mut *mut ::std::os::raw::c_char,
+}
+#[test]
+fn bindgen_test_layout__ze_kernel_get_name_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_kernel_get_name_params_t>(),
+ 24usize,
+ concat!("Size of: ", stringify!(_ze_kernel_get_name_params_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_kernel_get_name_params_t>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(_ze_kernel_get_name_params_t))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_kernel_get_name_params_t>())).phKernel as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_kernel_get_name_params_t),
+ "::",
+ stringify!(phKernel)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_kernel_get_name_params_t>())).ppSize as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_kernel_get_name_params_t),
+ "::",
+ stringify!(ppSize)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_kernel_get_name_params_t>())).ppName as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_kernel_get_name_params_t),
+ "::",
+ stringify!(ppName)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeKernelGetName"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_kernel_get_name_params_t = _ze_kernel_get_name_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeKernelGetName"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnKernelGetNameCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_kernel_get_name_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Table of Kernel callback functions pointers"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_kernel_callbacks_t {
+ pub pfnCreateCb: ze_pfnKernelCreateCb_t,
+ pub pfnDestroyCb: ze_pfnKernelDestroyCb_t,
+ pub pfnSetCacheConfigCb: ze_pfnKernelSetCacheConfigCb_t,
+ pub pfnSetGroupSizeCb: ze_pfnKernelSetGroupSizeCb_t,
+ pub pfnSuggestGroupSizeCb: ze_pfnKernelSuggestGroupSizeCb_t,
+ pub pfnSuggestMaxCooperativeGroupCountCb: ze_pfnKernelSuggestMaxCooperativeGroupCountCb_t,
+ pub pfnSetArgumentValueCb: ze_pfnKernelSetArgumentValueCb_t,
+ pub pfnSetIndirectAccessCb: ze_pfnKernelSetIndirectAccessCb_t,
+ pub pfnGetIndirectAccessCb: ze_pfnKernelGetIndirectAccessCb_t,
+ pub pfnGetSourceAttributesCb: ze_pfnKernelGetSourceAttributesCb_t,
+ pub pfnGetPropertiesCb: ze_pfnKernelGetPropertiesCb_t,
+ pub pfnGetNameCb: ze_pfnKernelGetNameCb_t,
+}
+#[test]
+fn bindgen_test_layout__ze_kernel_callbacks_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_kernel_callbacks_t>(),
+ 96usize,
+ concat!("Size of: ", stringify!(_ze_kernel_callbacks_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_kernel_callbacks_t>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(_ze_kernel_callbacks_t))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_kernel_callbacks_t>())).pfnCreateCb as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_kernel_callbacks_t),
+ "::",
+ stringify!(pfnCreateCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_kernel_callbacks_t>())).pfnDestroyCb as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_kernel_callbacks_t),
+ "::",
+ stringify!(pfnDestroyCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_kernel_callbacks_t>())).pfnSetCacheConfigCb as *const _
+ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_kernel_callbacks_t),
+ "::",
+ stringify!(pfnSetCacheConfigCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_kernel_callbacks_t>())).pfnSetGroupSizeCb as *const _
+ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_kernel_callbacks_t),
+ "::",
+ stringify!(pfnSetGroupSizeCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_kernel_callbacks_t>())).pfnSuggestGroupSizeCb as *const _
+ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_kernel_callbacks_t),
+ "::",
+ stringify!(pfnSuggestGroupSizeCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_kernel_callbacks_t>())).pfnSuggestMaxCooperativeGroupCountCb
+ as *const _ as usize
+ },
+ 40usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_kernel_callbacks_t),
+ "::",
+ stringify!(pfnSuggestMaxCooperativeGroupCountCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_kernel_callbacks_t>())).pfnSetArgumentValueCb as *const _
+ as usize
+ },
+ 48usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_kernel_callbacks_t),
+ "::",
+ stringify!(pfnSetArgumentValueCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_kernel_callbacks_t>())).pfnSetIndirectAccessCb as *const _
+ as usize
+ },
+ 56usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_kernel_callbacks_t),
+ "::",
+ stringify!(pfnSetIndirectAccessCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_kernel_callbacks_t>())).pfnGetIndirectAccessCb as *const _
+ as usize
+ },
+ 64usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_kernel_callbacks_t),
+ "::",
+ stringify!(pfnGetIndirectAccessCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_kernel_callbacks_t>())).pfnGetSourceAttributesCb as *const _
+ as usize
+ },
+ 72usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_kernel_callbacks_t),
+ "::",
+ stringify!(pfnGetSourceAttributesCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_kernel_callbacks_t>())).pfnGetPropertiesCb as *const _
+ as usize
+ },
+ 80usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_kernel_callbacks_t),
+ "::",
+ stringify!(pfnGetPropertiesCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_kernel_callbacks_t>())).pfnGetNameCb as *const _ as usize
+ },
+ 88usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_kernel_callbacks_t),
+ "::",
+ stringify!(pfnGetNameCb)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Table of Kernel callback functions pointers"]
+pub type ze_kernel_callbacks_t = _ze_kernel_callbacks_t;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeSamplerCreate"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_sampler_create_params_t {
+ pub phContext: *mut ze_context_handle_t,
+ pub phDevice: *mut ze_device_handle_t,
+ pub pdesc: *mut *const ze_sampler_desc_t,
+ pub pphSampler: *mut *mut ze_sampler_handle_t,
+}
+#[test]
+fn bindgen_test_layout__ze_sampler_create_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_sampler_create_params_t>(),
+ 32usize,
+ concat!("Size of: ", stringify!(_ze_sampler_create_params_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_sampler_create_params_t>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(_ze_sampler_create_params_t))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_sampler_create_params_t>())).phContext as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_sampler_create_params_t),
+ "::",
+ stringify!(phContext)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_sampler_create_params_t>())).phDevice as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_sampler_create_params_t),
+ "::",
+ stringify!(phDevice)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_sampler_create_params_t>())).pdesc as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_sampler_create_params_t),
+ "::",
+ stringify!(pdesc)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_sampler_create_params_t>())).pphSampler as *const _ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_sampler_create_params_t),
+ "::",
+ stringify!(pphSampler)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeSamplerCreate"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_sampler_create_params_t = _ze_sampler_create_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeSamplerCreate"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnSamplerCreateCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_sampler_create_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeSamplerDestroy"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_sampler_destroy_params_t {
+ pub phSampler: *mut ze_sampler_handle_t,
+}
+#[test]
+fn bindgen_test_layout__ze_sampler_destroy_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_sampler_destroy_params_t>(),
+ 8usize,
+ concat!("Size of: ", stringify!(_ze_sampler_destroy_params_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_sampler_destroy_params_t>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(_ze_sampler_destroy_params_t))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_sampler_destroy_params_t>())).phSampler as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_sampler_destroy_params_t),
+ "::",
+ stringify!(phSampler)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeSamplerDestroy"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_sampler_destroy_params_t = _ze_sampler_destroy_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeSamplerDestroy"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnSamplerDestroyCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_sampler_destroy_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Table of Sampler callback functions pointers"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_sampler_callbacks_t {
+ pub pfnCreateCb: ze_pfnSamplerCreateCb_t,
+ pub pfnDestroyCb: ze_pfnSamplerDestroyCb_t,
+}
+#[test]
+fn bindgen_test_layout__ze_sampler_callbacks_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_sampler_callbacks_t>(),
+ 16usize,
+ concat!("Size of: ", stringify!(_ze_sampler_callbacks_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_sampler_callbacks_t>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(_ze_sampler_callbacks_t))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_sampler_callbacks_t>())).pfnCreateCb as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_sampler_callbacks_t),
+ "::",
+ stringify!(pfnCreateCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_sampler_callbacks_t>())).pfnDestroyCb as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_sampler_callbacks_t),
+ "::",
+ stringify!(pfnDestroyCb)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Table of Sampler callback functions pointers"]
+pub type ze_sampler_callbacks_t = _ze_sampler_callbacks_t;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zePhysicalMemCreate"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_physical_mem_create_params_t {
+ pub phContext: *mut ze_context_handle_t,
+ pub phDevice: *mut ze_device_handle_t,
+ pub pdesc: *mut *mut ze_physical_mem_desc_t,
+ pub pphPhysicalMemory: *mut *mut ze_physical_mem_handle_t,
+}
+#[test]
+fn bindgen_test_layout__ze_physical_mem_create_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_physical_mem_create_params_t>(),
+ 32usize,
+ concat!("Size of: ", stringify!(_ze_physical_mem_create_params_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_physical_mem_create_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_physical_mem_create_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_physical_mem_create_params_t>())).phContext as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_physical_mem_create_params_t),
+ "::",
+ stringify!(phContext)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_physical_mem_create_params_t>())).phDevice as *const _
+ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_physical_mem_create_params_t),
+ "::",
+ stringify!(phDevice)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_physical_mem_create_params_t>())).pdesc as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_physical_mem_create_params_t),
+ "::",
+ stringify!(pdesc)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_physical_mem_create_params_t>())).pphPhysicalMemory
+ as *const _ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_physical_mem_create_params_t),
+ "::",
+ stringify!(pphPhysicalMemory)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zePhysicalMemCreate"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_physical_mem_create_params_t = _ze_physical_mem_create_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zePhysicalMemCreate"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnPhysicalMemCreateCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_physical_mem_create_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zePhysicalMemDestroy"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_physical_mem_destroy_params_t {
+ pub phContext: *mut ze_context_handle_t,
+ pub phPhysicalMemory: *mut ze_physical_mem_handle_t,
+}
+#[test]
+fn bindgen_test_layout__ze_physical_mem_destroy_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_physical_mem_destroy_params_t>(),
+ 16usize,
+ concat!("Size of: ", stringify!(_ze_physical_mem_destroy_params_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_physical_mem_destroy_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_physical_mem_destroy_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_physical_mem_destroy_params_t>())).phContext as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_physical_mem_destroy_params_t),
+ "::",
+ stringify!(phContext)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_physical_mem_destroy_params_t>())).phPhysicalMemory
+ as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_physical_mem_destroy_params_t),
+ "::",
+ stringify!(phPhysicalMemory)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zePhysicalMemDestroy"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_physical_mem_destroy_params_t = _ze_physical_mem_destroy_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zePhysicalMemDestroy"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnPhysicalMemDestroyCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_physical_mem_destroy_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Table of PhysicalMem callback functions pointers"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_physical_mem_callbacks_t {
+ pub pfnCreateCb: ze_pfnPhysicalMemCreateCb_t,
+ pub pfnDestroyCb: ze_pfnPhysicalMemDestroyCb_t,
+}
+#[test]
+fn bindgen_test_layout__ze_physical_mem_callbacks_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_physical_mem_callbacks_t>(),
+ 16usize,
+ concat!("Size of: ", stringify!(_ze_physical_mem_callbacks_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_physical_mem_callbacks_t>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(_ze_physical_mem_callbacks_t))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_physical_mem_callbacks_t>())).pfnCreateCb as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_physical_mem_callbacks_t),
+ "::",
+ stringify!(pfnCreateCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_physical_mem_callbacks_t>())).pfnDestroyCb as *const _
+ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_physical_mem_callbacks_t),
+ "::",
+ stringify!(pfnDestroyCb)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Table of PhysicalMem callback functions pointers"]
+pub type ze_physical_mem_callbacks_t = _ze_physical_mem_callbacks_t;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeMemAllocShared"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_mem_alloc_shared_params_t {
+ pub phContext: *mut ze_context_handle_t,
+ pub pdevice_desc: *mut *const ze_device_mem_alloc_desc_t,
+ pub phost_desc: *mut *const ze_host_mem_alloc_desc_t,
+ pub psize: *mut usize,
+ pub palignment: *mut usize,
+ pub phDevice: *mut ze_device_handle_t,
+ pub ppptr: *mut *mut *mut ::std::os::raw::c_void,
+}
+#[test]
+fn bindgen_test_layout__ze_mem_alloc_shared_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_mem_alloc_shared_params_t>(),
+ 56usize,
+ concat!("Size of: ", stringify!(_ze_mem_alloc_shared_params_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_mem_alloc_shared_params_t>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(_ze_mem_alloc_shared_params_t))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_mem_alloc_shared_params_t>())).phContext as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_mem_alloc_shared_params_t),
+ "::",
+ stringify!(phContext)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_mem_alloc_shared_params_t>())).pdevice_desc as *const _
+ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_mem_alloc_shared_params_t),
+ "::",
+ stringify!(pdevice_desc)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_mem_alloc_shared_params_t>())).phost_desc as *const _
+ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_mem_alloc_shared_params_t),
+ "::",
+ stringify!(phost_desc)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_mem_alloc_shared_params_t>())).psize as *const _ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_mem_alloc_shared_params_t),
+ "::",
+ stringify!(psize)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_mem_alloc_shared_params_t>())).palignment as *const _
+ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_mem_alloc_shared_params_t),
+ "::",
+ stringify!(palignment)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_mem_alloc_shared_params_t>())).phDevice as *const _ as usize
+ },
+ 40usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_mem_alloc_shared_params_t),
+ "::",
+ stringify!(phDevice)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_mem_alloc_shared_params_t>())).ppptr as *const _ as usize
+ },
+ 48usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_mem_alloc_shared_params_t),
+ "::",
+ stringify!(ppptr)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeMemAllocShared"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_mem_alloc_shared_params_t = _ze_mem_alloc_shared_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeMemAllocShared"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnMemAllocSharedCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_mem_alloc_shared_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeMemAllocDevice"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_mem_alloc_device_params_t {
+ pub phContext: *mut ze_context_handle_t,
+ pub pdevice_desc: *mut *const ze_device_mem_alloc_desc_t,
+ pub psize: *mut usize,
+ pub palignment: *mut usize,
+ pub phDevice: *mut ze_device_handle_t,
+ pub ppptr: *mut *mut *mut ::std::os::raw::c_void,
+}
+#[test]
+fn bindgen_test_layout__ze_mem_alloc_device_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_mem_alloc_device_params_t>(),
+ 48usize,
+ concat!("Size of: ", stringify!(_ze_mem_alloc_device_params_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_mem_alloc_device_params_t>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(_ze_mem_alloc_device_params_t))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_mem_alloc_device_params_t>())).phContext as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_mem_alloc_device_params_t),
+ "::",
+ stringify!(phContext)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_mem_alloc_device_params_t>())).pdevice_desc as *const _
+ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_mem_alloc_device_params_t),
+ "::",
+ stringify!(pdevice_desc)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_mem_alloc_device_params_t>())).psize as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_mem_alloc_device_params_t),
+ "::",
+ stringify!(psize)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_mem_alloc_device_params_t>())).palignment as *const _
+ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_mem_alloc_device_params_t),
+ "::",
+ stringify!(palignment)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_mem_alloc_device_params_t>())).phDevice as *const _ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_mem_alloc_device_params_t),
+ "::",
+ stringify!(phDevice)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_mem_alloc_device_params_t>())).ppptr as *const _ as usize
+ },
+ 40usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_mem_alloc_device_params_t),
+ "::",
+ stringify!(ppptr)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeMemAllocDevice"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_mem_alloc_device_params_t = _ze_mem_alloc_device_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeMemAllocDevice"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnMemAllocDeviceCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_mem_alloc_device_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeMemAllocHost"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_mem_alloc_host_params_t {
+ pub phContext: *mut ze_context_handle_t,
+ pub phost_desc: *mut *const ze_host_mem_alloc_desc_t,
+ pub psize: *mut usize,
+ pub palignment: *mut usize,
+ pub ppptr: *mut *mut *mut ::std::os::raw::c_void,
+}
+#[test]
+fn bindgen_test_layout__ze_mem_alloc_host_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_mem_alloc_host_params_t>(),
+ 40usize,
+ concat!("Size of: ", stringify!(_ze_mem_alloc_host_params_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_mem_alloc_host_params_t>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(_ze_mem_alloc_host_params_t))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_mem_alloc_host_params_t>())).phContext as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_mem_alloc_host_params_t),
+ "::",
+ stringify!(phContext)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_mem_alloc_host_params_t>())).phost_desc as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_mem_alloc_host_params_t),
+ "::",
+ stringify!(phost_desc)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_mem_alloc_host_params_t>())).psize as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_mem_alloc_host_params_t),
+ "::",
+ stringify!(psize)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_mem_alloc_host_params_t>())).palignment as *const _ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_mem_alloc_host_params_t),
+ "::",
+ stringify!(palignment)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_mem_alloc_host_params_t>())).ppptr as *const _ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_mem_alloc_host_params_t),
+ "::",
+ stringify!(ppptr)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeMemAllocHost"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_mem_alloc_host_params_t = _ze_mem_alloc_host_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeMemAllocHost"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnMemAllocHostCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_mem_alloc_host_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeMemFree"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_mem_free_params_t {
+ pub phContext: *mut ze_context_handle_t,
+ pub pptr: *mut *mut ::std::os::raw::c_void,
+}
+#[test]
+fn bindgen_test_layout__ze_mem_free_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_mem_free_params_t>(),
+ 16usize,
+ concat!("Size of: ", stringify!(_ze_mem_free_params_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_mem_free_params_t>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(_ze_mem_free_params_t))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<_ze_mem_free_params_t>())).phContext as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_mem_free_params_t),
+ "::",
+ stringify!(phContext)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<_ze_mem_free_params_t>())).pptr as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_mem_free_params_t),
+ "::",
+ stringify!(pptr)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeMemFree"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_mem_free_params_t = _ze_mem_free_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeMemFree"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnMemFreeCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_mem_free_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeMemGetAllocProperties"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_mem_get_alloc_properties_params_t {
+ pub phContext: *mut ze_context_handle_t,
+ pub pptr: *mut *const ::std::os::raw::c_void,
+ pub ppMemAllocProperties: *mut *mut ze_memory_allocation_properties_t,
+ pub pphDevice: *mut *mut ze_device_handle_t,
+}
+#[test]
+fn bindgen_test_layout__ze_mem_get_alloc_properties_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_mem_get_alloc_properties_params_t>(),
+ 32usize,
+ concat!(
+ "Size of: ",
+ stringify!(_ze_mem_get_alloc_properties_params_t)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_mem_get_alloc_properties_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_mem_get_alloc_properties_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_mem_get_alloc_properties_params_t>())).phContext as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_mem_get_alloc_properties_params_t),
+ "::",
+ stringify!(phContext)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_mem_get_alloc_properties_params_t>())).pptr as *const _
+ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_mem_get_alloc_properties_params_t),
+ "::",
+ stringify!(pptr)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_mem_get_alloc_properties_params_t>())).ppMemAllocProperties
+ as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_mem_get_alloc_properties_params_t),
+ "::",
+ stringify!(ppMemAllocProperties)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_mem_get_alloc_properties_params_t>())).pphDevice as *const _
+ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_mem_get_alloc_properties_params_t),
+ "::",
+ stringify!(pphDevice)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeMemGetAllocProperties"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_mem_get_alloc_properties_params_t = _ze_mem_get_alloc_properties_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeMemGetAllocProperties"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnMemGetAllocPropertiesCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_mem_get_alloc_properties_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeMemGetAddressRange"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_mem_get_address_range_params_t {
+ pub phContext: *mut ze_context_handle_t,
+ pub pptr: *mut *const ::std::os::raw::c_void,
+ pub ppBase: *mut *mut *mut ::std::os::raw::c_void,
+ pub ppSize: *mut *mut usize,
+}
+#[test]
+fn bindgen_test_layout__ze_mem_get_address_range_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_mem_get_address_range_params_t>(),
+ 32usize,
+ concat!("Size of: ", stringify!(_ze_mem_get_address_range_params_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_mem_get_address_range_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_mem_get_address_range_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_mem_get_address_range_params_t>())).phContext as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_mem_get_address_range_params_t),
+ "::",
+ stringify!(phContext)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_mem_get_address_range_params_t>())).pptr as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_mem_get_address_range_params_t),
+ "::",
+ stringify!(pptr)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_mem_get_address_range_params_t>())).ppBase as *const _
+ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_mem_get_address_range_params_t),
+ "::",
+ stringify!(ppBase)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_mem_get_address_range_params_t>())).ppSize as *const _
+ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_mem_get_address_range_params_t),
+ "::",
+ stringify!(ppSize)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeMemGetAddressRange"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_mem_get_address_range_params_t = _ze_mem_get_address_range_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeMemGetAddressRange"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnMemGetAddressRangeCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_mem_get_address_range_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeMemGetIpcHandle"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_mem_get_ipc_handle_params_t {
+ pub phContext: *mut ze_context_handle_t,
+ pub pptr: *mut *const ::std::os::raw::c_void,
+ pub ppIpcHandle: *mut *mut ze_ipc_mem_handle_t,
+}
+#[test]
+fn bindgen_test_layout__ze_mem_get_ipc_handle_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_mem_get_ipc_handle_params_t>(),
+ 24usize,
+ concat!("Size of: ", stringify!(_ze_mem_get_ipc_handle_params_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_mem_get_ipc_handle_params_t>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(_ze_mem_get_ipc_handle_params_t))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_mem_get_ipc_handle_params_t>())).phContext as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_mem_get_ipc_handle_params_t),
+ "::",
+ stringify!(phContext)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_mem_get_ipc_handle_params_t>())).pptr as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_mem_get_ipc_handle_params_t),
+ "::",
+ stringify!(pptr)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_mem_get_ipc_handle_params_t>())).ppIpcHandle as *const _
+ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_mem_get_ipc_handle_params_t),
+ "::",
+ stringify!(ppIpcHandle)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeMemGetIpcHandle"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_mem_get_ipc_handle_params_t = _ze_mem_get_ipc_handle_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeMemGetIpcHandle"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnMemGetIpcHandleCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_mem_get_ipc_handle_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeMemOpenIpcHandle"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_mem_open_ipc_handle_params_t {
+ pub phContext: *mut ze_context_handle_t,
+ pub phDevice: *mut ze_device_handle_t,
+ pub phandle: *mut ze_ipc_mem_handle_t,
+ pub pflags: *mut ze_ipc_memory_flags_t,
+ pub ppptr: *mut *mut *mut ::std::os::raw::c_void,
+}
+#[test]
+fn bindgen_test_layout__ze_mem_open_ipc_handle_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_mem_open_ipc_handle_params_t>(),
+ 40usize,
+ concat!("Size of: ", stringify!(_ze_mem_open_ipc_handle_params_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_mem_open_ipc_handle_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_mem_open_ipc_handle_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_mem_open_ipc_handle_params_t>())).phContext as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_mem_open_ipc_handle_params_t),
+ "::",
+ stringify!(phContext)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_mem_open_ipc_handle_params_t>())).phDevice as *const _
+ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_mem_open_ipc_handle_params_t),
+ "::",
+ stringify!(phDevice)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_mem_open_ipc_handle_params_t>())).phandle as *const _
+ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_mem_open_ipc_handle_params_t),
+ "::",
+ stringify!(phandle)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_mem_open_ipc_handle_params_t>())).pflags as *const _ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_mem_open_ipc_handle_params_t),
+ "::",
+ stringify!(pflags)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_mem_open_ipc_handle_params_t>())).ppptr as *const _ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_mem_open_ipc_handle_params_t),
+ "::",
+ stringify!(ppptr)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeMemOpenIpcHandle"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_mem_open_ipc_handle_params_t = _ze_mem_open_ipc_handle_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeMemOpenIpcHandle"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnMemOpenIpcHandleCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_mem_open_ipc_handle_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeMemCloseIpcHandle"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_mem_close_ipc_handle_params_t {
+ pub phContext: *mut ze_context_handle_t,
+ pub pptr: *mut *const ::std::os::raw::c_void,
+}
+#[test]
+fn bindgen_test_layout__ze_mem_close_ipc_handle_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_mem_close_ipc_handle_params_t>(),
+ 16usize,
+ concat!("Size of: ", stringify!(_ze_mem_close_ipc_handle_params_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_mem_close_ipc_handle_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_mem_close_ipc_handle_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_mem_close_ipc_handle_params_t>())).phContext as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_mem_close_ipc_handle_params_t),
+ "::",
+ stringify!(phContext)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_mem_close_ipc_handle_params_t>())).pptr as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_mem_close_ipc_handle_params_t),
+ "::",
+ stringify!(pptr)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeMemCloseIpcHandle"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_mem_close_ipc_handle_params_t = _ze_mem_close_ipc_handle_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeMemCloseIpcHandle"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnMemCloseIpcHandleCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_mem_close_ipc_handle_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Table of Mem callback functions pointers"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_mem_callbacks_t {
+ pub pfnAllocSharedCb: ze_pfnMemAllocSharedCb_t,
+ pub pfnAllocDeviceCb: ze_pfnMemAllocDeviceCb_t,
+ pub pfnAllocHostCb: ze_pfnMemAllocHostCb_t,
+ pub pfnFreeCb: ze_pfnMemFreeCb_t,
+ pub pfnGetAllocPropertiesCb: ze_pfnMemGetAllocPropertiesCb_t,
+ pub pfnGetAddressRangeCb: ze_pfnMemGetAddressRangeCb_t,
+ pub pfnGetIpcHandleCb: ze_pfnMemGetIpcHandleCb_t,
+ pub pfnOpenIpcHandleCb: ze_pfnMemOpenIpcHandleCb_t,
+ pub pfnCloseIpcHandleCb: ze_pfnMemCloseIpcHandleCb_t,
+}
+#[test]
+fn bindgen_test_layout__ze_mem_callbacks_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_mem_callbacks_t>(),
+ 72usize,
+ concat!("Size of: ", stringify!(_ze_mem_callbacks_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_mem_callbacks_t>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(_ze_mem_callbacks_t))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_mem_callbacks_t>())).pfnAllocSharedCb as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_mem_callbacks_t),
+ "::",
+ stringify!(pfnAllocSharedCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_mem_callbacks_t>())).pfnAllocDeviceCb as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_mem_callbacks_t),
+ "::",
+ stringify!(pfnAllocDeviceCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_mem_callbacks_t>())).pfnAllocHostCb as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_mem_callbacks_t),
+ "::",
+ stringify!(pfnAllocHostCb)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<_ze_mem_callbacks_t>())).pfnFreeCb as *const _ as usize },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_mem_callbacks_t),
+ "::",
+ stringify!(pfnFreeCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_mem_callbacks_t>())).pfnGetAllocPropertiesCb as *const _
+ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_mem_callbacks_t),
+ "::",
+ stringify!(pfnGetAllocPropertiesCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_mem_callbacks_t>())).pfnGetAddressRangeCb as *const _
+ as usize
+ },
+ 40usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_mem_callbacks_t),
+ "::",
+ stringify!(pfnGetAddressRangeCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_mem_callbacks_t>())).pfnGetIpcHandleCb as *const _ as usize
+ },
+ 48usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_mem_callbacks_t),
+ "::",
+ stringify!(pfnGetIpcHandleCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_mem_callbacks_t>())).pfnOpenIpcHandleCb as *const _ as usize
+ },
+ 56usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_mem_callbacks_t),
+ "::",
+ stringify!(pfnOpenIpcHandleCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_mem_callbacks_t>())).pfnCloseIpcHandleCb as *const _ as usize
+ },
+ 64usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_mem_callbacks_t),
+ "::",
+ stringify!(pfnCloseIpcHandleCb)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Table of Mem callback functions pointers"]
+pub type ze_mem_callbacks_t = _ze_mem_callbacks_t;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeVirtualMemReserve"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_virtual_mem_reserve_params_t {
+ pub phContext: *mut ze_context_handle_t,
+ pub ppStart: *mut *const ::std::os::raw::c_void,
+ pub psize: *mut usize,
+ pub ppptr: *mut *mut *mut ::std::os::raw::c_void,
+}
+#[test]
+fn bindgen_test_layout__ze_virtual_mem_reserve_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_virtual_mem_reserve_params_t>(),
+ 32usize,
+ concat!("Size of: ", stringify!(_ze_virtual_mem_reserve_params_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_virtual_mem_reserve_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_virtual_mem_reserve_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_virtual_mem_reserve_params_t>())).phContext as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_virtual_mem_reserve_params_t),
+ "::",
+ stringify!(phContext)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_virtual_mem_reserve_params_t>())).ppStart as *const _
+ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_virtual_mem_reserve_params_t),
+ "::",
+ stringify!(ppStart)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_virtual_mem_reserve_params_t>())).psize as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_virtual_mem_reserve_params_t),
+ "::",
+ stringify!(psize)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_virtual_mem_reserve_params_t>())).ppptr as *const _ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_virtual_mem_reserve_params_t),
+ "::",
+ stringify!(ppptr)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeVirtualMemReserve"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_virtual_mem_reserve_params_t = _ze_virtual_mem_reserve_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeVirtualMemReserve"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnVirtualMemReserveCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_virtual_mem_reserve_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeVirtualMemFree"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_virtual_mem_free_params_t {
+ pub phContext: *mut ze_context_handle_t,
+ pub pptr: *mut *const ::std::os::raw::c_void,
+ pub psize: *mut usize,
+}
+#[test]
+fn bindgen_test_layout__ze_virtual_mem_free_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_virtual_mem_free_params_t>(),
+ 24usize,
+ concat!("Size of: ", stringify!(_ze_virtual_mem_free_params_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_virtual_mem_free_params_t>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(_ze_virtual_mem_free_params_t))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_virtual_mem_free_params_t>())).phContext as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_virtual_mem_free_params_t),
+ "::",
+ stringify!(phContext)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_virtual_mem_free_params_t>())).pptr as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_virtual_mem_free_params_t),
+ "::",
+ stringify!(pptr)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_virtual_mem_free_params_t>())).psize as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_virtual_mem_free_params_t),
+ "::",
+ stringify!(psize)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeVirtualMemFree"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_virtual_mem_free_params_t = _ze_virtual_mem_free_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeVirtualMemFree"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnVirtualMemFreeCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_virtual_mem_free_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeVirtualMemQueryPageSize"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_virtual_mem_query_page_size_params_t {
+ pub phContext: *mut ze_context_handle_t,
+ pub phDevice: *mut ze_device_handle_t,
+ pub psize: *mut usize,
+ pub ppagesize: *mut *mut usize,
+}
+#[test]
+fn bindgen_test_layout__ze_virtual_mem_query_page_size_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_virtual_mem_query_page_size_params_t>(),
+ 32usize,
+ concat!(
+ "Size of: ",
+ stringify!(_ze_virtual_mem_query_page_size_params_t)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_virtual_mem_query_page_size_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_virtual_mem_query_page_size_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_virtual_mem_query_page_size_params_t>())).phContext
+ as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_virtual_mem_query_page_size_params_t),
+ "::",
+ stringify!(phContext)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_virtual_mem_query_page_size_params_t>())).phDevice
+ as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_virtual_mem_query_page_size_params_t),
+ "::",
+ stringify!(phDevice)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_virtual_mem_query_page_size_params_t>())).psize as *const _
+ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_virtual_mem_query_page_size_params_t),
+ "::",
+ stringify!(psize)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_virtual_mem_query_page_size_params_t>())).ppagesize
+ as *const _ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_virtual_mem_query_page_size_params_t),
+ "::",
+ stringify!(ppagesize)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeVirtualMemQueryPageSize"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_virtual_mem_query_page_size_params_t = _ze_virtual_mem_query_page_size_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeVirtualMemQueryPageSize"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnVirtualMemQueryPageSizeCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_virtual_mem_query_page_size_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeVirtualMemMap"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_virtual_mem_map_params_t {
+ pub phContext: *mut ze_context_handle_t,
+ pub pptr: *mut *const ::std::os::raw::c_void,
+ pub psize: *mut usize,
+ pub phPhysicalMemory: *mut ze_physical_mem_handle_t,
+ pub poffset: *mut usize,
+ pub paccess: *mut ze_memory_access_attribute_t,
+}
+#[test]
+fn bindgen_test_layout__ze_virtual_mem_map_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_virtual_mem_map_params_t>(),
+ 48usize,
+ concat!("Size of: ", stringify!(_ze_virtual_mem_map_params_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_virtual_mem_map_params_t>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(_ze_virtual_mem_map_params_t))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_virtual_mem_map_params_t>())).phContext as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_virtual_mem_map_params_t),
+ "::",
+ stringify!(phContext)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_virtual_mem_map_params_t>())).pptr as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_virtual_mem_map_params_t),
+ "::",
+ stringify!(pptr)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_virtual_mem_map_params_t>())).psize as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_virtual_mem_map_params_t),
+ "::",
+ stringify!(psize)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_virtual_mem_map_params_t>())).phPhysicalMemory as *const _
+ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_virtual_mem_map_params_t),
+ "::",
+ stringify!(phPhysicalMemory)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_virtual_mem_map_params_t>())).poffset as *const _ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_virtual_mem_map_params_t),
+ "::",
+ stringify!(poffset)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_virtual_mem_map_params_t>())).paccess as *const _ as usize
+ },
+ 40usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_virtual_mem_map_params_t),
+ "::",
+ stringify!(paccess)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeVirtualMemMap"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_virtual_mem_map_params_t = _ze_virtual_mem_map_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeVirtualMemMap"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnVirtualMemMapCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_virtual_mem_map_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeVirtualMemUnmap"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_virtual_mem_unmap_params_t {
+ pub phContext: *mut ze_context_handle_t,
+ pub pptr: *mut *const ::std::os::raw::c_void,
+ pub psize: *mut usize,
+}
+#[test]
+fn bindgen_test_layout__ze_virtual_mem_unmap_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_virtual_mem_unmap_params_t>(),
+ 24usize,
+ concat!("Size of: ", stringify!(_ze_virtual_mem_unmap_params_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_virtual_mem_unmap_params_t>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(_ze_virtual_mem_unmap_params_t))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_virtual_mem_unmap_params_t>())).phContext as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_virtual_mem_unmap_params_t),
+ "::",
+ stringify!(phContext)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_virtual_mem_unmap_params_t>())).pptr as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_virtual_mem_unmap_params_t),
+ "::",
+ stringify!(pptr)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_virtual_mem_unmap_params_t>())).psize as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_virtual_mem_unmap_params_t),
+ "::",
+ stringify!(psize)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeVirtualMemUnmap"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_virtual_mem_unmap_params_t = _ze_virtual_mem_unmap_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeVirtualMemUnmap"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnVirtualMemUnmapCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_virtual_mem_unmap_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeVirtualMemSetAccessAttribute"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_virtual_mem_set_access_attribute_params_t {
+ pub phContext: *mut ze_context_handle_t,
+ pub pptr: *mut *const ::std::os::raw::c_void,
+ pub psize: *mut usize,
+ pub paccess: *mut ze_memory_access_attribute_t,
+}
+#[test]
+fn bindgen_test_layout__ze_virtual_mem_set_access_attribute_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_virtual_mem_set_access_attribute_params_t>(),
+ 32usize,
+ concat!(
+ "Size of: ",
+ stringify!(_ze_virtual_mem_set_access_attribute_params_t)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_virtual_mem_set_access_attribute_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_virtual_mem_set_access_attribute_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_virtual_mem_set_access_attribute_params_t>())).phContext
+ as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_virtual_mem_set_access_attribute_params_t),
+ "::",
+ stringify!(phContext)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_virtual_mem_set_access_attribute_params_t>())).pptr
+ as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_virtual_mem_set_access_attribute_params_t),
+ "::",
+ stringify!(pptr)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_virtual_mem_set_access_attribute_params_t>())).psize
+ as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_virtual_mem_set_access_attribute_params_t),
+ "::",
+ stringify!(psize)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_virtual_mem_set_access_attribute_params_t>())).paccess
+ as *const _ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_virtual_mem_set_access_attribute_params_t),
+ "::",
+ stringify!(paccess)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeVirtualMemSetAccessAttribute"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_virtual_mem_set_access_attribute_params_t =
+ _ze_virtual_mem_set_access_attribute_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeVirtualMemSetAccessAttribute"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnVirtualMemSetAccessAttributeCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_virtual_mem_set_access_attribute_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeVirtualMemGetAccessAttribute"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_virtual_mem_get_access_attribute_params_t {
+ pub phContext: *mut ze_context_handle_t,
+ pub pptr: *mut *const ::std::os::raw::c_void,
+ pub psize: *mut usize,
+ pub paccess: *mut *mut ze_memory_access_attribute_t,
+ pub poutSize: *mut *mut usize,
+}
+#[test]
+fn bindgen_test_layout__ze_virtual_mem_get_access_attribute_params_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_virtual_mem_get_access_attribute_params_t>(),
+ 40usize,
+ concat!(
+ "Size of: ",
+ stringify!(_ze_virtual_mem_get_access_attribute_params_t)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_virtual_mem_get_access_attribute_params_t>(),
+ 8usize,
+ concat!(
+ "Alignment of ",
+ stringify!(_ze_virtual_mem_get_access_attribute_params_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_virtual_mem_get_access_attribute_params_t>())).phContext
+ as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_virtual_mem_get_access_attribute_params_t),
+ "::",
+ stringify!(phContext)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_virtual_mem_get_access_attribute_params_t>())).pptr
+ as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_virtual_mem_get_access_attribute_params_t),
+ "::",
+ stringify!(pptr)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_virtual_mem_get_access_attribute_params_t>())).psize
+ as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_virtual_mem_get_access_attribute_params_t),
+ "::",
+ stringify!(psize)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_virtual_mem_get_access_attribute_params_t>())).paccess
+ as *const _ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_virtual_mem_get_access_attribute_params_t),
+ "::",
+ stringify!(paccess)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_virtual_mem_get_access_attribute_params_t>())).poutSize
+ as *const _ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_virtual_mem_get_access_attribute_params_t),
+ "::",
+ stringify!(poutSize)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Callback function parameters for zeVirtualMemGetAccessAttribute"]
+#[doc = " @details Each entry is a pointer to the parameter passed to the function;"]
+#[doc = " allowing the callback the ability to modify the parameter's value"]
+pub type ze_virtual_mem_get_access_attribute_params_t =
+ _ze_virtual_mem_get_access_attribute_params_t;
+#[doc = ""]
+#[doc = " @brief Callback function-pointer for zeVirtualMemGetAccessAttribute"]
+#[doc = " @param[in] params Parameters passed to this instance"]
+#[doc = " @param[in] result Return value"]
+#[doc = " @param[in] pTracerUserData Per-Tracer user data"]
+#[doc = " @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data"]
+pub type ze_pfnVirtualMemGetAccessAttributeCb_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ params: *mut ze_virtual_mem_get_access_attribute_params_t,
+ result: ze_result_t,
+ pTracerUserData: *mut ::std::os::raw::c_void,
+ ppTracerInstanceUserData: *mut *mut ::std::os::raw::c_void,
+ ),
+>;
+#[doc = ""]
+#[doc = " @brief Table of VirtualMem callback functions pointers"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_virtual_mem_callbacks_t {
+ pub pfnReserveCb: ze_pfnVirtualMemReserveCb_t,
+ pub pfnFreeCb: ze_pfnVirtualMemFreeCb_t,
+ pub pfnQueryPageSizeCb: ze_pfnVirtualMemQueryPageSizeCb_t,
+ pub pfnMapCb: ze_pfnVirtualMemMapCb_t,
+ pub pfnUnmapCb: ze_pfnVirtualMemUnmapCb_t,
+ pub pfnSetAccessAttributeCb: ze_pfnVirtualMemSetAccessAttributeCb_t,
+ pub pfnGetAccessAttributeCb: ze_pfnVirtualMemGetAccessAttributeCb_t,
+}
+#[test]
+fn bindgen_test_layout__ze_virtual_mem_callbacks_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_virtual_mem_callbacks_t>(),
+ 56usize,
+ concat!("Size of: ", stringify!(_ze_virtual_mem_callbacks_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_virtual_mem_callbacks_t>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(_ze_virtual_mem_callbacks_t))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_virtual_mem_callbacks_t>())).pfnReserveCb as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_virtual_mem_callbacks_t),
+ "::",
+ stringify!(pfnReserveCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_virtual_mem_callbacks_t>())).pfnFreeCb as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_virtual_mem_callbacks_t),
+ "::",
+ stringify!(pfnFreeCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_virtual_mem_callbacks_t>())).pfnQueryPageSizeCb as *const _
+ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_virtual_mem_callbacks_t),
+ "::",
+ stringify!(pfnQueryPageSizeCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_virtual_mem_callbacks_t>())).pfnMapCb as *const _ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_virtual_mem_callbacks_t),
+ "::",
+ stringify!(pfnMapCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_virtual_mem_callbacks_t>())).pfnUnmapCb as *const _ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_virtual_mem_callbacks_t),
+ "::",
+ stringify!(pfnUnmapCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_virtual_mem_callbacks_t>())).pfnSetAccessAttributeCb
+ as *const _ as usize
+ },
+ 40usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_virtual_mem_callbacks_t),
+ "::",
+ stringify!(pfnSetAccessAttributeCb)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_virtual_mem_callbacks_t>())).pfnGetAccessAttributeCb
+ as *const _ as usize
+ },
+ 48usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_virtual_mem_callbacks_t),
+ "::",
+ stringify!(pfnGetAccessAttributeCb)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Table of VirtualMem callback functions pointers"]
+pub type ze_virtual_mem_callbacks_t = _ze_virtual_mem_callbacks_t;
+#[doc = ""]
+#[doc = " @brief Container for all callbacks"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_callbacks_t {
+ pub Global: ze_global_callbacks_t,
+ pub Driver: ze_driver_callbacks_t,
+ pub Device: ze_device_callbacks_t,
+ pub Context: ze_context_callbacks_t,
+ pub CommandQueue: ze_command_queue_callbacks_t,
+ pub CommandList: ze_command_list_callbacks_t,
+ pub Fence: ze_fence_callbacks_t,
+ pub EventPool: ze_event_pool_callbacks_t,
+ pub Event: ze_event_callbacks_t,
+ pub Image: ze_image_callbacks_t,
+ pub Module: ze_module_callbacks_t,
+ pub ModuleBuildLog: ze_module_build_log_callbacks_t,
+ pub Kernel: ze_kernel_callbacks_t,
+ pub Sampler: ze_sampler_callbacks_t,
+ pub PhysicalMem: ze_physical_mem_callbacks_t,
+ pub Mem: ze_mem_callbacks_t,
+ pub VirtualMem: ze_virtual_mem_callbacks_t,
+}
+#[test]
+fn bindgen_test_layout__ze_callbacks_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_callbacks_t>(),
+ 960usize,
+ concat!("Size of: ", stringify!(_ze_callbacks_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_callbacks_t>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(_ze_callbacks_t))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<_ze_callbacks_t>())).Global as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_callbacks_t),
+ "::",
+ stringify!(Global)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<_ze_callbacks_t>())).Driver as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_callbacks_t),
+ "::",
+ stringify!(Driver)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<_ze_callbacks_t>())).Device as *const _ as usize },
+ 48usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_callbacks_t),
+ "::",
+ stringify!(Device)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<_ze_callbacks_t>())).Context as *const _ as usize },
+ 160usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_callbacks_t),
+ "::",
+ stringify!(Context)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<_ze_callbacks_t>())).CommandQueue as *const _ as usize },
+ 224usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_callbacks_t),
+ "::",
+ stringify!(CommandQueue)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<_ze_callbacks_t>())).CommandList as *const _ as usize },
+ 256usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_callbacks_t),
+ "::",
+ stringify!(CommandList)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<_ze_callbacks_t>())).Fence as *const _ as usize },
+ 464usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_callbacks_t),
+ "::",
+ stringify!(Fence)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<_ze_callbacks_t>())).EventPool as *const _ as usize },
+ 504usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_callbacks_t),
+ "::",
+ stringify!(EventPool)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<_ze_callbacks_t>())).Event as *const _ as usize },
+ 544usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_callbacks_t),
+ "::",
+ stringify!(Event)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<_ze_callbacks_t>())).Image as *const _ as usize },
+ 600usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_callbacks_t),
+ "::",
+ stringify!(Image)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<_ze_callbacks_t>())).Module as *const _ as usize },
+ 624usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_callbacks_t),
+ "::",
+ stringify!(Module)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<_ze_callbacks_t>())).ModuleBuildLog as *const _ as usize },
+ 688usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_callbacks_t),
+ "::",
+ stringify!(ModuleBuildLog)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<_ze_callbacks_t>())).Kernel as *const _ as usize },
+ 704usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_callbacks_t),
+ "::",
+ stringify!(Kernel)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<_ze_callbacks_t>())).Sampler as *const _ as usize },
+ 800usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_callbacks_t),
+ "::",
+ stringify!(Sampler)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<_ze_callbacks_t>())).PhysicalMem as *const _ as usize },
+ 816usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_callbacks_t),
+ "::",
+ stringify!(PhysicalMem)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<_ze_callbacks_t>())).Mem as *const _ as usize },
+ 832usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_callbacks_t),
+ "::",
+ stringify!(Mem)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<_ze_callbacks_t>())).VirtualMem as *const _ as usize },
+ 904usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_callbacks_t),
+ "::",
+ stringify!(VirtualMem)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Container for all callbacks"]
+pub type ze_callbacks_t = _ze_callbacks_t;
+impl _ze_module_program_exp_version_t {
+ #[doc = "< version 1.0"]
+ pub const ZE_MODULE_PROGRAM_EXP_VERSION_1_0: _ze_module_program_exp_version_t =
+ _ze_module_program_exp_version_t(65536);
+}
+impl _ze_module_program_exp_version_t {
+ #[doc = "< latest known version"]
+ pub const ZE_MODULE_PROGRAM_EXP_VERSION_CURRENT: _ze_module_program_exp_version_t =
+ _ze_module_program_exp_version_t(65536);
+}
+impl _ze_module_program_exp_version_t {
+ pub const ZE_MODULE_PROGRAM_EXP_VERSION_FORCE_UINT32: _ze_module_program_exp_version_t =
+ _ze_module_program_exp_version_t(2147483647);
+}
+#[repr(transparent)]
+#[doc = ""]
+#[doc = " @brief Module Program Extension Version(s)"]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub struct _ze_module_program_exp_version_t(pub ::std::os::raw::c_uint);
+#[doc = ""]
+#[doc = " @brief Module Program Extension Version(s)"]
+pub use self::_ze_module_program_exp_version_t as ze_module_program_exp_version_t;
+#[doc = ""]
+#[doc = " @brief Module extended descriptor to support multiple input modules."]
+#[doc = ""]
+#[doc = " @details"]
+#[doc = " - Implementation must support ::ZE_experimental_module_program extension"]
+#[doc = " - pInputModules, pBuildFlags, and pConstants from ::ze_module_desc_t is"]
+#[doc = " ignored."]
+#[doc = " - Format in ::ze_module_desc_t needs to be set to"]
+#[doc = " ::ZE_MODULE_FORMAT_IL_SPIRV."]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _ze_module_program_exp_desc_t {
+ #[doc = "< [in] type of this structure"]
+ pub stype: ze_structure_type_t,
+ #[doc = "< [in][optional] pointer to extension-specific structure"]
+ pub pNext: *const ::std::os::raw::c_void,
+ #[doc = "< [in] Count of input modules"]
+ pub count: u32,
+ #[doc = "< [in][range(0, count)] sizes of each input IL module in pInputModules."]
+ pub inputSizes: *const usize,
+ #[doc = "< [in][range(0, count)] pointer to an array of IL (e.g. SPIR-V modules)."]
+ #[doc = "< Valid only for SPIR-V input."]
+ pub pInputModules: *mut *const u8,
+ #[doc = "< [in][optional][range(0, count)] array of strings containing build"]
+ #[doc = "< flags. See pBuildFlags in ::ze_module_desc_t."]
+ pub pBuildFlags: *mut *const ::std::os::raw::c_char,
+ #[doc = "< [in][optional][range(0, count)] pointer to array of specialization"]
+ #[doc = "< constant strings. Valid only for SPIR-V input. This must be set to"]
+ #[doc = "< nullptr if no specialization constants are provided."]
+ pub pConstants: *mut *const ze_module_constants_t,
+}
+#[test]
+fn bindgen_test_layout__ze_module_program_exp_desc_t() {
+ assert_eq!(
+ ::std::mem::size_of::<_ze_module_program_exp_desc_t>(),
+ 56usize,
+ concat!("Size of: ", stringify!(_ze_module_program_exp_desc_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_ze_module_program_exp_desc_t>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(_ze_module_program_exp_desc_t))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_module_program_exp_desc_t>())).stype as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_module_program_exp_desc_t),
+ "::",
+ stringify!(stype)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_module_program_exp_desc_t>())).pNext as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_module_program_exp_desc_t),
+ "::",
+ stringify!(pNext)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_module_program_exp_desc_t>())).count as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_module_program_exp_desc_t),
+ "::",
+ stringify!(count)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_module_program_exp_desc_t>())).inputSizes as *const _
+ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_module_program_exp_desc_t),
+ "::",
+ stringify!(inputSizes)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_module_program_exp_desc_t>())).pInputModules as *const _
+ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_module_program_exp_desc_t),
+ "::",
+ stringify!(pInputModules)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_module_program_exp_desc_t>())).pBuildFlags as *const _
+ as usize
+ },
+ 40usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_module_program_exp_desc_t),
+ "::",
+ stringify!(pBuildFlags)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_ze_module_program_exp_desc_t>())).pConstants as *const _
+ as usize
+ },
+ 48usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_ze_module_program_exp_desc_t),
+ "::",
+ stringify!(pConstants)
+ )
+ );
+}
+#[doc = ""]
+#[doc = " @brief Module extended descriptor to support multiple input modules."]
+#[doc = ""]
+#[doc = " @details"]
+#[doc = " - Implementation must support ::ZE_experimental_module_program extension"]
+#[doc = " - pInputModules, pBuildFlags, and pConstants from ::ze_module_desc_t is"]
+#[doc = " ignored."]
+#[doc = " - Format in ::ze_module_desc_t needs to be set to"]
+#[doc = " ::ZE_MODULE_FORMAT_IL_SPIRV."]
+pub type ze_module_program_exp_desc_t = _ze_module_program_exp_desc_t;
+impl _ze_global_offset_exp_version_t {
+ #[doc = "< version 1.0"]
+ pub const ZE_GLOBAL_OFFSET_EXP_VERSION_1_0: _ze_global_offset_exp_version_t =
+ _ze_global_offset_exp_version_t(65536);
+}
+impl _ze_global_offset_exp_version_t {
+ #[doc = "< latest known version"]
+ pub const ZE_GLOBAL_OFFSET_EXP_VERSION_CURRENT: _ze_global_offset_exp_version_t =
+ _ze_global_offset_exp_version_t(65536);
+}
+impl _ze_global_offset_exp_version_t {
+ pub const ZE_GLOBAL_OFFSET_EXP_VERSION_FORCE_UINT32: _ze_global_offset_exp_version_t =
+ _ze_global_offset_exp_version_t(2147483647);
+}
+#[repr(transparent)]
+#[doc = ""]
+#[doc = " @brief Global work offset Extension Version(s)"]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub struct _ze_global_offset_exp_version_t(pub ::std::os::raw::c_uint);
+#[doc = ""]
+#[doc = " @brief Global work offset Extension Version(s)"]
+pub use self::_ze_global_offset_exp_version_t as ze_global_offset_exp_version_t;