6398 lines
415 KiB
Python
6398 lines
415 KiB
Python
"""
|
|
Copyright (C) 2019-2021 Intel Corporation
|
|
|
|
SPDX-License-Identifier: MIT
|
|
|
|
@file ze.py
|
|
@version v1.12-r1.12.15
|
|
|
|
"""
|
|
import platform
|
|
from ctypes import *
|
|
from enum import *
|
|
|
|
###############################################################################
|
|
__version__ = "1.0"
|
|
|
|
###############################################################################
|
|
## @brief Generates generic 'oneAPI' API versions
|
|
def ZE_MAKE_VERSION( _major, _minor ):
|
|
return (( _major << 16 )|( _minor & 0x0000ffff))
|
|
|
|
###############################################################################
|
|
## @brief Extracts 'oneAPI' API major version
|
|
def ZE_MAJOR_VERSION( _ver ):
|
|
return ( _ver >> 16 )
|
|
|
|
###############################################################################
|
|
## @brief Extracts 'oneAPI' API minor version
|
|
def ZE_MINOR_VERSION( _ver ):
|
|
return ( _ver & 0x0000ffff )
|
|
|
|
###############################################################################
|
|
## @brief Calling convention for all API functions
|
|
# ZE_APICALL not required for python
|
|
|
|
###############################################################################
|
|
## @brief Microsoft-specific dllexport storage-class attribute
|
|
# ZE_APIEXPORT not required for python
|
|
|
|
###############################################################################
|
|
## @brief GCC-specific dllexport storage-class attribute
|
|
# ZE_APIEXPORT not required for python
|
|
|
|
###############################################################################
|
|
## @brief Microsoft-specific dllexport storage-class attribute
|
|
# ZE_DLLEXPORT not required for python
|
|
|
|
###############################################################################
|
|
## @brief GCC-specific dllexport storage-class attribute
|
|
# ZE_DLLEXPORT not required for python
|
|
|
|
###############################################################################
|
|
## @brief compiler-independent type
|
|
class ze_bool_t(c_ubyte):
|
|
pass
|
|
|
|
###############################################################################
|
|
## @brief Handle of a driver instance
|
|
class ze_driver_handle_t(c_void_p):
|
|
pass
|
|
|
|
###############################################################################
|
|
## @brief Handle of driver's device object
|
|
class ze_device_handle_t(c_void_p):
|
|
pass
|
|
|
|
###############################################################################
|
|
## @brief Handle of driver's context object
|
|
class ze_context_handle_t(c_void_p):
|
|
pass
|
|
|
|
###############################################################################
|
|
## @brief Handle of driver's command queue object
|
|
class ze_command_queue_handle_t(c_void_p):
|
|
pass
|
|
|
|
###############################################################################
|
|
## @brief Handle of driver's command list object
|
|
class ze_command_list_handle_t(c_void_p):
|
|
pass
|
|
|
|
###############################################################################
|
|
## @brief Handle of driver's fence object
|
|
class ze_fence_handle_t(c_void_p):
|
|
pass
|
|
|
|
###############################################################################
|
|
## @brief Handle of driver's event pool object
|
|
class ze_event_pool_handle_t(c_void_p):
|
|
pass
|
|
|
|
###############################################################################
|
|
## @brief Handle of driver's event object
|
|
class ze_event_handle_t(c_void_p):
|
|
pass
|
|
|
|
###############################################################################
|
|
## @brief Handle of driver's image object
|
|
class ze_image_handle_t(c_void_p):
|
|
pass
|
|
|
|
###############################################################################
|
|
## @brief Handle of driver's module object
|
|
class ze_module_handle_t(c_void_p):
|
|
pass
|
|
|
|
###############################################################################
|
|
## @brief Handle of module's build log object
|
|
class ze_module_build_log_handle_t(c_void_p):
|
|
pass
|
|
|
|
###############################################################################
|
|
## @brief Handle of driver's kernel object
|
|
class ze_kernel_handle_t(c_void_p):
|
|
pass
|
|
|
|
###############################################################################
|
|
## @brief Handle of driver's sampler object
|
|
class ze_sampler_handle_t(c_void_p):
|
|
pass
|
|
|
|
###############################################################################
|
|
## @brief Handle of physical memory object
|
|
class ze_physical_mem_handle_t(c_void_p):
|
|
pass
|
|
|
|
###############################################################################
|
|
## @brief Handle of driver's fabric vertex object
|
|
class ze_fabric_vertex_handle_t(c_void_p):
|
|
pass
|
|
|
|
###############################################################################
|
|
## @brief Handle of driver's fabric edge object
|
|
class ze_fabric_edge_handle_t(c_void_p):
|
|
pass
|
|
|
|
###############################################################################
|
|
## @brief Maximum IPC handle size
|
|
ZE_MAX_IPC_HANDLE_SIZE = 64
|
|
|
|
###############################################################################
|
|
## @brief IPC handle to a memory allocation
|
|
class ze_ipc_mem_handle_t(Structure):
|
|
_fields_ = [
|
|
("data", c_char * ZE_MAX_IPC_HANDLE_SIZE) ## [out] Opaque data representing an IPC handle
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief IPC handle to a event pool allocation
|
|
class ze_ipc_event_pool_handle_t(Structure):
|
|
_fields_ = [
|
|
("data", c_char * ZE_MAX_IPC_HANDLE_SIZE) ## [out] Opaque data representing an IPC handle
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Generic macro for enumerator bit masks
|
|
def ZE_BIT( _i ):
|
|
return ( 1 << _i )
|
|
|
|
###############################################################################
|
|
## @brief Defines Return/Error codes
|
|
class ze_result_v(IntEnum):
|
|
SUCCESS = 0 ## [Core] success
|
|
NOT_READY = 1 ## [Core] synchronization primitive not signaled
|
|
ERROR_DEVICE_LOST = 0x70000001 ## [Core] device hung, reset, was removed, or driver update occurred
|
|
ERROR_OUT_OF_HOST_MEMORY = 0x70000002 ## [Core] insufficient host memory to satisfy call
|
|
ERROR_OUT_OF_DEVICE_MEMORY = 0x70000003 ## [Core] insufficient device memory to satisfy call
|
|
ERROR_MODULE_BUILD_FAILURE = 0x70000004 ## [Core] error occurred when building module, see build log for details
|
|
ERROR_MODULE_LINK_FAILURE = 0x70000005 ## [Core] error occurred when linking modules, see build log for details
|
|
ERROR_DEVICE_REQUIRES_RESET = 0x70000006 ## [Core] device requires a reset
|
|
ERROR_DEVICE_IN_LOW_POWER_STATE = 0x70000007 ## [Core] device currently in low power state
|
|
EXP_ERROR_DEVICE_IS_NOT_VERTEX = 0x7ff00001 ## [Core, Experimental] device is not represented by a fabric vertex
|
|
EXP_ERROR_VERTEX_IS_NOT_DEVICE = 0x7ff00002 ## [Core, Experimental] fabric vertex does not represent a device
|
|
EXP_ERROR_REMOTE_DEVICE = 0x7ff00003 ## [Core, Experimental] fabric vertex represents a remote device or
|
|
## subdevice
|
|
EXP_ERROR_OPERANDS_INCOMPATIBLE = 0x7ff00004 ## [Core, Experimental] operands of comparison are not compatible
|
|
EXP_RTAS_BUILD_RETRY = 0x7ff00005 ## [Core, Experimental] ray tracing acceleration structure build
|
|
## operation failed due to insufficient resources, retry with a larger
|
|
## acceleration structure buffer allocation
|
|
EXP_RTAS_BUILD_DEFERRED = 0x7ff00006 ## [Core, Experimental] ray tracing acceleration structure build
|
|
## operation deferred to parallel operation join
|
|
ERROR_INSUFFICIENT_PERMISSIONS = 0x70010000 ## [Sysman] access denied due to permission level
|
|
ERROR_NOT_AVAILABLE = 0x70010001 ## [Sysman] resource already in use and simultaneous access not allowed
|
|
## or resource was removed
|
|
ERROR_DEPENDENCY_UNAVAILABLE = 0x70020000 ## [Common] external required dependency is unavailable or missing
|
|
WARNING_DROPPED_DATA = 0x70020001 ## [Tools] data may have been dropped
|
|
ERROR_UNINITIALIZED = 0x78000001 ## [Validation] driver is not initialized
|
|
ERROR_UNSUPPORTED_VERSION = 0x78000002 ## [Validation] generic error code for unsupported versions
|
|
ERROR_UNSUPPORTED_FEATURE = 0x78000003 ## [Validation] generic error code for unsupported features
|
|
ERROR_INVALID_ARGUMENT = 0x78000004 ## [Validation] generic error code for invalid arguments
|
|
ERROR_INVALID_NULL_HANDLE = 0x78000005 ## [Validation] handle argument is not valid
|
|
ERROR_HANDLE_OBJECT_IN_USE = 0x78000006 ## [Validation] object pointed to by handle still in-use by device
|
|
ERROR_INVALID_NULL_POINTER = 0x78000007 ## [Validation] pointer argument may not be nullptr
|
|
ERROR_INVALID_SIZE = 0x78000008 ## [Validation] size argument is invalid (e.g., must not be zero)
|
|
ERROR_UNSUPPORTED_SIZE = 0x78000009 ## [Validation] size argument is not supported by the device (e.g., too
|
|
## large)
|
|
ERROR_UNSUPPORTED_ALIGNMENT = 0x7800000a ## [Validation] alignment argument is not supported by the device (e.g.,
|
|
## too small)
|
|
ERROR_INVALID_SYNCHRONIZATION_OBJECT = 0x7800000b ## [Validation] synchronization object in invalid state
|
|
ERROR_INVALID_ENUMERATION = 0x7800000c ## [Validation] enumerator argument is not valid
|
|
ERROR_UNSUPPORTED_ENUMERATION = 0x7800000d ## [Validation] enumerator argument is not supported by the device
|
|
ERROR_UNSUPPORTED_IMAGE_FORMAT = 0x7800000e ## [Validation] image format is not supported by the device
|
|
ERROR_INVALID_NATIVE_BINARY = 0x7800000f ## [Validation] native binary is not supported by the device
|
|
ERROR_INVALID_GLOBAL_NAME = 0x78000010 ## [Validation] global variable is not found in the module
|
|
ERROR_INVALID_KERNEL_NAME = 0x78000011 ## [Validation] kernel name is not found in the module
|
|
ERROR_INVALID_FUNCTION_NAME = 0x78000012 ## [Validation] function name is not found in the module
|
|
ERROR_INVALID_GROUP_SIZE_DIMENSION = 0x78000013 ## [Validation] group size dimension is not valid for the kernel or
|
|
## device
|
|
ERROR_INVALID_GLOBAL_WIDTH_DIMENSION = 0x78000014 ## [Validation] global width dimension is not valid for the kernel or
|
|
## device
|
|
ERROR_INVALID_KERNEL_ARGUMENT_INDEX = 0x78000015 ## [Validation] kernel argument index is not valid for kernel
|
|
ERROR_INVALID_KERNEL_ARGUMENT_SIZE = 0x78000016 ## [Validation] kernel argument size does not match kernel
|
|
ERROR_INVALID_KERNEL_ATTRIBUTE_VALUE = 0x78000017 ## [Validation] value of kernel attribute is not valid for the kernel or
|
|
## device
|
|
ERROR_INVALID_MODULE_UNLINKED = 0x78000018 ## [Validation] module with imports needs to be linked before kernels can
|
|
## be created from it.
|
|
ERROR_INVALID_COMMAND_LIST_TYPE = 0x78000019 ## [Validation] command list type does not match command queue type
|
|
ERROR_OVERLAPPING_REGIONS = 0x7800001a ## [Validation] copy operations do not support overlapping regions of
|
|
## memory
|
|
WARNING_ACTION_REQUIRED = 0x7800001b ## [Sysman] an action is required to complete the desired operation
|
|
ERROR_INVALID_KERNEL_HANDLE = 0x7800001c ## [Core, Validation] kernel handle is invalid for the operation
|
|
ERROR_UNKNOWN = 0x7ffffffe ## [Core] unknown or internal error
|
|
|
|
class ze_result_t(c_int):
|
|
def __str__(self):
|
|
return str(ze_result_v(self.value))
|
|
|
|
|
|
###############################################################################
|
|
## @brief Defines structure types
|
|
class ze_structure_type_v(IntEnum):
|
|
DRIVER_PROPERTIES = 0x1 ## ::ze_driver_properties_t
|
|
DRIVER_IPC_PROPERTIES = 0x2 ## ::ze_driver_ipc_properties_t
|
|
DEVICE_PROPERTIES = 0x3 ## ::ze_device_properties_t
|
|
DEVICE_COMPUTE_PROPERTIES = 0x4 ## ::ze_device_compute_properties_t
|
|
DEVICE_MODULE_PROPERTIES = 0x5 ## ::ze_device_module_properties_t
|
|
COMMAND_QUEUE_GROUP_PROPERTIES = 0x6 ## ::ze_command_queue_group_properties_t
|
|
DEVICE_MEMORY_PROPERTIES = 0x7 ## ::ze_device_memory_properties_t
|
|
DEVICE_MEMORY_ACCESS_PROPERTIES = 0x8 ## ::ze_device_memory_access_properties_t
|
|
DEVICE_CACHE_PROPERTIES = 0x9 ## ::ze_device_cache_properties_t
|
|
DEVICE_IMAGE_PROPERTIES = 0xa ## ::ze_device_image_properties_t
|
|
DEVICE_P2P_PROPERTIES = 0xb ## ::ze_device_p2p_properties_t
|
|
DEVICE_EXTERNAL_MEMORY_PROPERTIES = 0xc ## ::ze_device_external_memory_properties_t
|
|
CONTEXT_DESC = 0xd ## ::ze_context_desc_t
|
|
COMMAND_QUEUE_DESC = 0xe ## ::ze_command_queue_desc_t
|
|
COMMAND_LIST_DESC = 0xf ## ::ze_command_list_desc_t
|
|
EVENT_POOL_DESC = 0x10 ## ::ze_event_pool_desc_t
|
|
EVENT_DESC = 0x11 ## ::ze_event_desc_t
|
|
FENCE_DESC = 0x12 ## ::ze_fence_desc_t
|
|
IMAGE_DESC = 0x13 ## ::ze_image_desc_t
|
|
IMAGE_PROPERTIES = 0x14 ## ::ze_image_properties_t
|
|
DEVICE_MEM_ALLOC_DESC = 0x15 ## ::ze_device_mem_alloc_desc_t
|
|
HOST_MEM_ALLOC_DESC = 0x16 ## ::ze_host_mem_alloc_desc_t
|
|
MEMORY_ALLOCATION_PROPERTIES = 0x17 ## ::ze_memory_allocation_properties_t
|
|
EXTERNAL_MEMORY_EXPORT_DESC = 0x18 ## ::ze_external_memory_export_desc_t
|
|
EXTERNAL_MEMORY_IMPORT_FD = 0x19 ## ::ze_external_memory_import_fd_t
|
|
EXTERNAL_MEMORY_EXPORT_FD = 0x1a ## ::ze_external_memory_export_fd_t
|
|
MODULE_DESC = 0x1b ## ::ze_module_desc_t
|
|
MODULE_PROPERTIES = 0x1c ## ::ze_module_properties_t
|
|
KERNEL_DESC = 0x1d ## ::ze_kernel_desc_t
|
|
KERNEL_PROPERTIES = 0x1e ## ::ze_kernel_properties_t
|
|
SAMPLER_DESC = 0x1f ## ::ze_sampler_desc_t
|
|
PHYSICAL_MEM_DESC = 0x20 ## ::ze_physical_mem_desc_t
|
|
KERNEL_PREFERRED_GROUP_SIZE_PROPERTIES = 0x21 ## ::ze_kernel_preferred_group_size_properties_t
|
|
EXTERNAL_MEMORY_IMPORT_WIN32 = 0x22 ## ::ze_external_memory_import_win32_handle_t
|
|
EXTERNAL_MEMORY_EXPORT_WIN32 = 0x23 ## ::ze_external_memory_export_win32_handle_t
|
|
DEVICE_RAYTRACING_EXT_PROPERTIES = 0x00010001 ## ::ze_device_raytracing_ext_properties_t
|
|
RAYTRACING_MEM_ALLOC_EXT_DESC = 0x10002 ## ::ze_raytracing_mem_alloc_ext_desc_t
|
|
FLOAT_ATOMIC_EXT_PROPERTIES = 0x10003 ## ::ze_float_atomic_ext_properties_t
|
|
CACHE_RESERVATION_EXT_DESC = 0x10004 ## ::ze_cache_reservation_ext_desc_t
|
|
EU_COUNT_EXT = 0x10005 ## ::ze_eu_count_ext_t
|
|
SRGB_EXT_DESC = 0x10006 ## ::ze_srgb_ext_desc_t
|
|
LINKAGE_INSPECTION_EXT_DESC = 0x10007 ## ::ze_linkage_inspection_ext_desc_t
|
|
PCI_EXT_PROPERTIES = 0x10008 ## ::ze_pci_ext_properties_t
|
|
DRIVER_MEMORY_FREE_EXT_PROPERTIES = 0x10009 ## ::ze_driver_memory_free_ext_properties_t
|
|
MEMORY_FREE_EXT_DESC = 0x1000a ## ::ze_memory_free_ext_desc_t
|
|
MEMORY_COMPRESSION_HINTS_EXT_DESC = 0x1000b ## ::ze_memory_compression_hints_ext_desc_t
|
|
IMAGE_ALLOCATION_EXT_PROPERTIES = 0x1000c ## ::ze_image_allocation_ext_properties_t
|
|
DEVICE_LUID_EXT_PROPERTIES = 0x1000d ## ::ze_device_luid_ext_properties_t
|
|
DEVICE_MEMORY_EXT_PROPERTIES = 0x1000e ## ::ze_device_memory_ext_properties_t
|
|
DEVICE_IP_VERSION_EXT = 0x1000f ## ::ze_device_ip_version_ext_t
|
|
IMAGE_VIEW_PLANAR_EXT_DESC = 0x10010 ## ::ze_image_view_planar_ext_desc_t
|
|
EVENT_QUERY_KERNEL_TIMESTAMPS_EXT_PROPERTIES = 0x10011 ## ::ze_event_query_kernel_timestamps_ext_properties_t
|
|
EVENT_QUERY_KERNEL_TIMESTAMPS_RESULTS_EXT_PROPERTIES = 0x10012 ## ::ze_event_query_kernel_timestamps_results_ext_properties_t
|
|
KERNEL_MAX_GROUP_SIZE_EXT_PROPERTIES = 0x10013 ## ::ze_kernel_max_group_size_ext_properties_t
|
|
RELAXED_ALLOCATION_LIMITS_EXP_DESC = 0x00020001 ## ::ze_relaxed_allocation_limits_exp_desc_t
|
|
MODULE_PROGRAM_EXP_DESC = 0x00020002 ## ::ze_module_program_exp_desc_t
|
|
SCHEDULING_HINT_EXP_PROPERTIES = 0x00020003 ## ::ze_scheduling_hint_exp_properties_t
|
|
SCHEDULING_HINT_EXP_DESC = 0x00020004 ## ::ze_scheduling_hint_exp_desc_t
|
|
IMAGE_VIEW_PLANAR_EXP_DESC = 0x00020005 ## ::ze_image_view_planar_exp_desc_t
|
|
DEVICE_PROPERTIES_1_2 = 0x00020006 ## ::ze_device_properties_t
|
|
IMAGE_MEMORY_EXP_PROPERTIES = 0x00020007 ## ::ze_image_memory_properties_exp_t
|
|
POWER_SAVING_HINT_EXP_DESC = 0x00020008 ## ::ze_context_power_saving_hint_exp_desc_t
|
|
COPY_BANDWIDTH_EXP_PROPERTIES = 0x00020009 ## ::ze_copy_bandwidth_exp_properties_t
|
|
DEVICE_P2P_BANDWIDTH_EXP_PROPERTIES = 0x0002000A ## ::ze_device_p2p_bandwidth_exp_properties_t
|
|
FABRIC_VERTEX_EXP_PROPERTIES = 0x0002000B ## ::ze_fabric_vertex_exp_properties_t
|
|
FABRIC_EDGE_EXP_PROPERTIES = 0x0002000C ## ::ze_fabric_edge_exp_properties_t
|
|
MEMORY_SUB_ALLOCATIONS_EXP_PROPERTIES = 0x0002000D ## ::ze_memory_sub_allocations_exp_properties_t
|
|
RTAS_BUILDER_EXP_DESC = 0x0002000E ## ::ze_rtas_builder_exp_desc_t
|
|
RTAS_BUILDER_BUILD_OP_EXP_DESC = 0x0002000F ## ::ze_rtas_builder_build_op_exp_desc_t
|
|
RTAS_BUILDER_EXP_PROPERTIES = 0x00020010 ## ::ze_rtas_builder_exp_properties_t
|
|
RTAS_PARALLEL_OPERATION_EXP_PROPERTIES = 0x00020011 ## ::ze_rtas_parallel_operation_exp_properties_t
|
|
RTAS_DEVICE_EXP_PROPERTIES = 0x00020012 ## ::ze_rtas_device_exp_properties_t
|
|
RTAS_GEOMETRY_AABBS_EXP_CB_PARAMS = 0x00020013 ## ::ze_rtas_geometry_aabbs_exp_cb_params_t
|
|
COUNTER_BASED_EVENT_POOL_EXP_DESC = 0x00020014 ## ::ze_event_pool_counter_based_exp_desc_t
|
|
MUTABLE_COMMAND_LIST_EXP_PROPERTIES = 0x00020015 ## ::ze_mutable_command_list_exp_properties_t
|
|
MUTABLE_COMMAND_LIST_EXP_DESC = 0x00020016 ## ::ze_mutable_command_list_exp_desc_t
|
|
MUTABLE_COMMAND_ID_EXP_DESC = 0x00020017 ## ::ze_mutable_command_id_exp_desc_t
|
|
MUTABLE_COMMANDS_EXP_DESC = 0x00020018 ## ::ze_mutable_commands_exp_desc_t
|
|
MUTABLE_KERNEL_ARGUMENT_EXP_DESC = 0x00020019 ## ::ze_mutable_kernel_argument_exp_desc_t
|
|
MUTABLE_GROUP_COUNT_EXP_DESC = 0x0002001A ## ::ze_mutable_group_count_exp_desc_t
|
|
MUTABLE_GROUP_SIZE_EXP_DESC = 0x0002001B ## ::ze_mutable_group_size_exp_desc_t
|
|
MUTABLE_GLOBAL_OFFSET_EXP_DESC = 0x0002001C ## ::ze_mutable_global_offset_exp_desc_t
|
|
PITCHED_ALLOC_DEVICE_EXP_PROPERTIES = 0x0002001D ## ::ze_device_pitched_alloc_exp_properties_t
|
|
BINDLESS_IMAGE_EXP_DESC = 0x0002001E ## ::ze_image_bindless_exp_desc_t
|
|
PITCHED_IMAGE_EXP_DESC = 0x0002001F ## ::ze_image_pitched_exp_desc_t
|
|
MUTABLE_GRAPH_ARGUMENT_EXP_DESC = 0x00020020 ## ::ze_mutable_graph_argument_exp_desc_t
|
|
INIT_DRIVER_TYPE_DESC = 0x00020021 ## ::ze_init_driver_type_desc_t
|
|
EXTERNAL_SEMAPHORE_EXT_DESC = 0x00020022 ## ::ze_external_semaphore_ext_desc_t
|
|
EXTERNAL_SEMAPHORE_WIN32_EXT_DESC = 0x00020023 ## ::ze_external_semaphore_win32_ext_desc_t
|
|
EXTERNAL_SEMAPHORE_FD_EXT_DESC = 0x00020024 ## ::ze_external_semaphore_fd_ext_desc_t
|
|
EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_EXT = 0x00020025 ## ::ze_external_semaphore_signal_params_ext_t
|
|
EXTERNAL_SEMAPHORE_WAIT_PARAMS_EXT = 0x00020026 ## ::ze_external_semaphore_wait_params_ext_t
|
|
DRIVER_DDI_HANDLES_EXT_PROPERTIES = 0x00020027 ## ::ze_driver_ddi_handles_ext_properties_t
|
|
|
|
class ze_structure_type_t(c_int):
|
|
def __str__(self):
|
|
return str(ze_structure_type_v(self.value))
|
|
|
|
|
|
###############################################################################
|
|
## @brief External memory type flags
|
|
class ze_external_memory_type_flags_v(IntEnum):
|
|
OPAQUE_FD = ZE_BIT(0) ## an opaque POSIX file descriptor handle
|
|
DMA_BUF = ZE_BIT(1) ## a file descriptor handle for a Linux dma_buf
|
|
OPAQUE_WIN32 = ZE_BIT(2) ## an NT handle
|
|
OPAQUE_WIN32_KMT = ZE_BIT(3) ## a global share (KMT) handle
|
|
D3D11_TEXTURE = ZE_BIT(4) ## an NT handle referring to a Direct3D 10 or 11 texture resource
|
|
D3D11_TEXTURE_KMT = ZE_BIT(5) ## a global share (KMT) handle referring to a Direct3D 10 or 11 texture
|
|
## resource
|
|
D3D12_HEAP = ZE_BIT(6) ## an NT handle referring to a Direct3D 12 heap resource
|
|
D3D12_RESOURCE = ZE_BIT(7) ## an NT handle referring to a Direct3D 12 committed resource
|
|
|
|
class ze_external_memory_type_flags_t(c_int):
|
|
def __str__(self):
|
|
return hex(self.value)
|
|
|
|
|
|
###############################################################################
|
|
## @brief Bandwidth unit
|
|
class ze_bandwidth_unit_v(IntEnum):
|
|
UNKNOWN = 0 ## The unit used for bandwidth is unknown
|
|
BYTES_PER_NANOSEC = 1 ## Bandwidth is provided in bytes/nanosec
|
|
BYTES_PER_CLOCK = 2 ## Bandwidth is provided in bytes/clock
|
|
|
|
class ze_bandwidth_unit_t(c_int):
|
|
def __str__(self):
|
|
return str(ze_bandwidth_unit_v(self.value))
|
|
|
|
|
|
###############################################################################
|
|
## @brief Latency unit
|
|
class ze_latency_unit_v(IntEnum):
|
|
UNKNOWN = 0 ## The unit used for latency is unknown
|
|
NANOSEC = 1 ## Latency is provided in nanosecs
|
|
CLOCK = 2 ## Latency is provided in clocks
|
|
HOP = 3 ## Latency is provided in hops (normalized so that the lowest latency
|
|
## link has a latency of 1 hop)
|
|
|
|
class ze_latency_unit_t(c_int):
|
|
def __str__(self):
|
|
return str(ze_latency_unit_v(self.value))
|
|
|
|
|
|
###############################################################################
|
|
## @brief Maximum universal unique id (UUID) size in bytes
|
|
ZE_MAX_UUID_SIZE = 16
|
|
|
|
###############################################################################
|
|
## @brief Universal unique id (UUID)
|
|
class ze_uuid_t(Structure):
|
|
_fields_ = [
|
|
("id", c_ubyte * ZE_MAX_UUID_SIZE) ## [out] opaque data representing a UUID
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Base for all callback function parameter types
|
|
class ze_base_cb_params_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p) ## [in,out][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Base for all properties types
|
|
class ze_base_properties_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p) ## [in,out][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Base for all descriptor types
|
|
class ze_base_desc_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p) ## [in][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
]
|
|
|
|
###############################################################################
|
|
## @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 Defines the device hierarchy model exposed by Level Zero driver
|
|
## implementation
|
|
|
|
###############################################################################
|
|
## @brief Supported initialization flags
|
|
class ze_init_flags_v(IntEnum):
|
|
GPU_ONLY = ZE_BIT(0) ## only initialize GPU drivers
|
|
VPU_ONLY = ZE_BIT(1) ## only initialize VPU drivers
|
|
|
|
class ze_init_flags_t(c_int):
|
|
def __str__(self):
|
|
return hex(self.value)
|
|
|
|
|
|
###############################################################################
|
|
## @brief Supported driver initialization type flags
|
|
##
|
|
## @details
|
|
## - Bit Field which details the driver types to be initialized and
|
|
## returned to the user.
|
|
## - Value Definition:
|
|
## - 0, do not init or retrieve any drivers.
|
|
## - ZE_INIT_DRIVER_TYPE_FLAG_GPU, GPU Drivers are Init and driver handles
|
|
## retrieved.
|
|
## - ZE_INIT_DRIVER_TYPE_FLAG_NPU, NPU Drivers are Init and driver handles
|
|
## retrieved.
|
|
## - ZE_INIT_DRIVER_TYPE_FLAG_GPU | ZE_INIT_DRIVER_TYPE_FLAG_NPU, NPU & GPU
|
|
## Drivers are Init and driver handles retrieved.
|
|
## - UINT32_MAX All Drivers of any type are Init and driver handles
|
|
## retrieved.
|
|
class ze_init_driver_type_flags_v(IntEnum):
|
|
GPU = ZE_BIT(0) ## initialize and retrieve GPU drivers
|
|
NPU = ZE_BIT(1) ## initialize and retrieve NPU drivers
|
|
|
|
class ze_init_driver_type_flags_t(c_int):
|
|
def __str__(self):
|
|
return hex(self.value)
|
|
|
|
|
|
###############################################################################
|
|
## @brief Init Driver Type descriptor
|
|
class ze_init_driver_type_desc_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("flags", ze_init_driver_type_flags_t) ## [in] driver type init flags.
|
|
## must be a valid combination of ::ze_init_driver_type_flag_t or UINT32_MAX;
|
|
## driver types are init and retrieved based on these init flags in zeInitDrivers().
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Supported API versions
|
|
##
|
|
## @details
|
|
## - API versions contain major and minor attributes, use
|
|
## ::ZE_MAJOR_VERSION and ::ZE_MINOR_VERSION
|
|
class ze_api_version_v(IntEnum):
|
|
_1_0 = ZE_MAKE_VERSION( 1, 0 ) ## version 1.0
|
|
_1_1 = ZE_MAKE_VERSION( 1, 1 ) ## version 1.1
|
|
_1_2 = ZE_MAKE_VERSION( 1, 2 ) ## version 1.2
|
|
_1_3 = ZE_MAKE_VERSION( 1, 3 ) ## version 1.3
|
|
_1_4 = ZE_MAKE_VERSION( 1, 4 ) ## version 1.4
|
|
_1_5 = ZE_MAKE_VERSION( 1, 5 ) ## version 1.5
|
|
_1_6 = ZE_MAKE_VERSION( 1, 6 ) ## version 1.6
|
|
_1_7 = ZE_MAKE_VERSION( 1, 7 ) ## version 1.7
|
|
_1_8 = ZE_MAKE_VERSION( 1, 8 ) ## version 1.8
|
|
_1_9 = ZE_MAKE_VERSION( 1, 9 ) ## version 1.9
|
|
_1_10 = ZE_MAKE_VERSION( 1, 10 ) ## version 1.10
|
|
_1_11 = ZE_MAKE_VERSION( 1, 11 ) ## version 1.11
|
|
_1_12 = ZE_MAKE_VERSION( 1, 12 ) ## version 1.12
|
|
CURRENT = ZE_MAKE_VERSION( 1, 12 ) ## latest known version
|
|
|
|
class ze_api_version_t(c_int):
|
|
def __str__(self):
|
|
return str(ze_api_version_v(self.value))
|
|
|
|
|
|
###############################################################################
|
|
## @brief Current API version as a macro
|
|
ZE_API_VERSION_CURRENT_M = ZE_MAKE_VERSION( 1, 12 )
|
|
|
|
###############################################################################
|
|
## @brief Maximum driver universal unique id (UUID) size in bytes
|
|
ZE_MAX_DRIVER_UUID_SIZE = 16
|
|
|
|
###############################################################################
|
|
## @brief Driver universal unique id (UUID)
|
|
class ze_driver_uuid_t(Structure):
|
|
_fields_ = [
|
|
("id", c_ubyte * ZE_MAX_DRIVER_UUID_SIZE) ## [out] opaque data representing a driver UUID
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Driver properties queried using ::zeDriverGetProperties
|
|
class ze_driver_properties_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in,out][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("uuid", ze_driver_uuid_t), ## [out] universal unique identifier.
|
|
("driverVersion", c_ulong) ## [out] driver version
|
|
## The driver version is a non-zero, monotonically increasing value where
|
|
## higher values always indicate a more recent version.
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Supported IPC property flags
|
|
class ze_ipc_property_flags_v(IntEnum):
|
|
MEMORY = ZE_BIT(0) ## Supports passing memory allocations between processes. See
|
|
## ::zeMemGetIpcHandle.
|
|
EVENT_POOL = ZE_BIT(1) ## Supports passing event pools between processes. See
|
|
## ::zeEventPoolGetIpcHandle.
|
|
|
|
class ze_ipc_property_flags_t(c_int):
|
|
def __str__(self):
|
|
return hex(self.value)
|
|
|
|
|
|
###############################################################################
|
|
## @brief IPC properties queried using ::zeDriverGetIpcProperties
|
|
class ze_driver_ipc_properties_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in,out][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("flags", ze_ipc_property_flags_t) ## [out] 0 (none) or a valid combination of ::ze_ipc_property_flag_t
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Maximum extension name string size
|
|
ZE_MAX_EXTENSION_NAME = 256
|
|
|
|
###############################################################################
|
|
## @brief Extension properties queried using ::zeDriverGetExtensionProperties
|
|
class ze_driver_extension_properties_t(Structure):
|
|
_fields_ = [
|
|
("name", c_char * ZE_MAX_EXTENSION_NAME), ## [out] extension name
|
|
("version", c_ulong) ## [out] extension version using ::ZE_MAKE_VERSION
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Supported device types
|
|
class ze_device_type_v(IntEnum):
|
|
GPU = 1 ## Graphics Processing Unit
|
|
CPU = 2 ## Central Processing Unit
|
|
FPGA = 3 ## Field Programmable Gate Array
|
|
MCA = 4 ## Memory Copy Accelerator
|
|
VPU = 5 ## Vision Processing Unit
|
|
|
|
class ze_device_type_t(c_int):
|
|
def __str__(self):
|
|
return str(ze_device_type_v(self.value))
|
|
|
|
|
|
###############################################################################
|
|
## @brief Maximum device universal unique id (UUID) size in bytes
|
|
ZE_MAX_DEVICE_UUID_SIZE = 16
|
|
|
|
###############################################################################
|
|
## @brief Device universal unique id (UUID)
|
|
class ze_device_uuid_t(Structure):
|
|
_fields_ = [
|
|
("id", c_ubyte * ZE_MAX_DEVICE_UUID_SIZE) ## [out] opaque data representing a device UUID
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Maximum device name string size
|
|
ZE_MAX_DEVICE_NAME = 256
|
|
|
|
###############################################################################
|
|
## @brief Supported device property flags
|
|
class ze_device_property_flags_v(IntEnum):
|
|
INTEGRATED = ZE_BIT(0) ## Device is integrated with the Host.
|
|
SUBDEVICE = ZE_BIT(1) ## Device handle used for query represents a sub-device.
|
|
ECC = ZE_BIT(2) ## Device supports error correction memory access.
|
|
ONDEMANDPAGING = ZE_BIT(3) ## Device supports on-demand page-faulting.
|
|
|
|
class ze_device_property_flags_t(c_int):
|
|
def __str__(self):
|
|
return hex(self.value)
|
|
|
|
|
|
###############################################################################
|
|
## @brief Device properties queried using ::zeDeviceGetProperties
|
|
class ze_device_properties_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in,out][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("type", ze_device_type_t), ## [out] generic device type
|
|
("vendorId", c_ulong), ## [out] vendor id from PCI configuration
|
|
("deviceId", c_ulong), ## [out] device id from PCI configuration.
|
|
## Note, the device id uses little-endian format.
|
|
("flags", ze_device_property_flags_t), ## [out] 0 (none) or a valid combination of ::ze_device_property_flag_t
|
|
("subdeviceId", c_ulong), ## [out] sub-device id. Only valid if ::ZE_DEVICE_PROPERTY_FLAG_SUBDEVICE
|
|
## is set.
|
|
("coreClockRate", c_ulong), ## [out] Clock rate for device core.
|
|
("maxMemAllocSize", c_ulonglong), ## [out] Maximum memory allocation size.
|
|
("maxHardwareContexts", c_ulong), ## [out] Maximum number of logical hardware contexts.
|
|
("maxCommandQueuePriority", c_ulong), ## [out] Maximum priority for command queues. Higher value is higher
|
|
## priority.
|
|
("numThreadsPerEU", c_ulong), ## [out] Maximum number of threads per EU.
|
|
("physicalEUSimdWidth", c_ulong), ## [out] The physical EU simd width.
|
|
("numEUsPerSubslice", c_ulong), ## [out] Maximum number of EUs per sub-slice.
|
|
("numSubslicesPerSlice", c_ulong), ## [out] Maximum number of sub-slices per slice.
|
|
("numSlices", c_ulong), ## [out] Maximum number of slices.
|
|
("timerResolution", c_ulonglong), ## [out] Returns the resolution of device timer used for profiling,
|
|
## timestamps, etc. When stype==::ZE_STRUCTURE_TYPE_DEVICE_PROPERTIES the
|
|
## units are in nanoseconds. When
|
|
## stype==::ZE_STRUCTURE_TYPE_DEVICE_PROPERTIES_1_2 units are in
|
|
## cycles/sec
|
|
("timestampValidBits", c_ulong), ## [out] Returns the number of valid bits in the timestamp value.
|
|
("kernelTimestampValidBits", c_ulong), ## [out] Returns the number of valid bits in the kernel timestamp values
|
|
("uuid", ze_device_uuid_t), ## [out] universal unique identifier. Note: Subdevices will have their
|
|
## own uuid.
|
|
("name", c_char * ZE_MAX_DEVICE_NAME) ## [out] Device name
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Device thread identifier.
|
|
class ze_device_thread_t(Structure):
|
|
_fields_ = [
|
|
("slice", c_ulong), ## [in,out] the slice number.
|
|
## Must be `UINT32_MAX` (all) or less than the `numSlices` member of ::ze_device_properties_t.
|
|
("subslice", c_ulong), ## [in,out] the sub-slice number within its slice.
|
|
## Must be `UINT32_MAX` (all) or less than the `numSubslicesPerSlice`
|
|
## member of ::ze_device_properties_t.
|
|
("eu", c_ulong), ## [in,out] the EU number within its sub-slice.
|
|
## Must be `UINT32_MAX` (all) or less than the `numEUsPerSubslice` member
|
|
## of ::ze_device_properties_t.
|
|
("thread", c_ulong) ## [in,out] the thread number within its EU.
|
|
## Must be `UINT32_MAX` (all) or less than the `numThreadsPerEU` member
|
|
## of ::ze_device_properties_t.
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Maximum number of subgroup sizes supported.
|
|
ZE_SUBGROUPSIZE_COUNT = 8
|
|
|
|
###############################################################################
|
|
## @brief Device compute properties queried using ::zeDeviceGetComputeProperties
|
|
class ze_device_compute_properties_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in,out][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("maxTotalGroupSize", c_ulong), ## [out] Maximum items per compute group. (groupSizeX * groupSizeY *
|
|
## groupSizeZ) <= maxTotalGroupSize
|
|
("maxGroupSizeX", c_ulong), ## [out] Maximum items for X dimension in group
|
|
("maxGroupSizeY", c_ulong), ## [out] Maximum items for Y dimension in group
|
|
("maxGroupSizeZ", c_ulong), ## [out] Maximum items for Z dimension in group
|
|
("maxGroupCountX", c_ulong), ## [out] Maximum groups that can be launched for x dimension
|
|
("maxGroupCountY", c_ulong), ## [out] Maximum groups that can be launched for y dimension
|
|
("maxGroupCountZ", c_ulong), ## [out] Maximum groups that can be launched for z dimension
|
|
("maxSharedLocalMemory", c_ulong), ## [out] Maximum shared local memory per group.
|
|
("numSubGroupSizes", c_ulong), ## [out] Number of subgroup sizes supported. This indicates number of
|
|
## entries in subGroupSizes.
|
|
("subGroupSizes", c_ulong * ZE_SUBGROUPSIZE_COUNT) ## [out] Size group sizes supported.
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Maximum native kernel universal unique id (UUID) size in bytes
|
|
ZE_MAX_NATIVE_KERNEL_UUID_SIZE = 16
|
|
|
|
###############################################################################
|
|
## @brief Native kernel universal unique id (UUID)
|
|
class ze_native_kernel_uuid_t(Structure):
|
|
_fields_ = [
|
|
("id", c_ubyte * ZE_MAX_NATIVE_KERNEL_UUID_SIZE) ## [out] opaque data representing a native kernel UUID
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Supported device module flags
|
|
class ze_device_module_flags_v(IntEnum):
|
|
FP16 = ZE_BIT(0) ## Device supports 16-bit floating-point operations
|
|
FP64 = ZE_BIT(1) ## Device supports 64-bit floating-point operations
|
|
INT64_ATOMICS = ZE_BIT(2) ## Device supports 64-bit atomic operations
|
|
DP4A = ZE_BIT(3) ## Device supports four component dot product and accumulate operations
|
|
|
|
class ze_device_module_flags_t(c_int):
|
|
def __str__(self):
|
|
return hex(self.value)
|
|
|
|
|
|
###############################################################################
|
|
## @brief Supported floating-Point capability flags
|
|
class ze_device_fp_flags_v(IntEnum):
|
|
DENORM = ZE_BIT(0) ## Supports denorms
|
|
INF_NAN = ZE_BIT(1) ## Supports INF and quiet NaNs
|
|
ROUND_TO_NEAREST = ZE_BIT(2) ## Supports rounding to nearest even rounding mode
|
|
ROUND_TO_ZERO = ZE_BIT(3) ## Supports rounding to zero.
|
|
ROUND_TO_INF = ZE_BIT(4) ## Supports rounding to both positive and negative INF.
|
|
FMA = ZE_BIT(5) ## Supports IEEE754-2008 fused multiply-add.
|
|
ROUNDED_DIVIDE_SQRT = ZE_BIT(6) ## Supports rounding as defined by IEEE754 for divide and sqrt
|
|
## operations.
|
|
SOFT_FLOAT = ZE_BIT(7) ## Uses software implementation for basic floating-point operations.
|
|
|
|
class ze_device_fp_flags_t(c_int):
|
|
def __str__(self):
|
|
return hex(self.value)
|
|
|
|
|
|
###############################################################################
|
|
## @brief Device module properties queried using ::zeDeviceGetModuleProperties
|
|
class ze_device_module_properties_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in,out][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("spirvVersionSupported", c_ulong), ## [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.
|
|
("flags", ze_device_module_flags_t), ## [out] 0 or a valid combination of ::ze_device_module_flag_t
|
|
("fp16flags", ze_device_fp_flags_t), ## [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.
|
|
("fp32flags", ze_device_fp_flags_t), ## [out] Capabilities for single-precision floating-point operations.
|
|
## returns a combination of ::ze_device_fp_flag_t.
|
|
("fp64flags", ze_device_fp_flags_t), ## [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.
|
|
("maxArgumentsSize", c_ulong), ## [out] Maximum kernel argument size that is supported.
|
|
("printfBufferSize", c_ulong), ## [out] Maximum size of internal buffer that holds output of printf
|
|
## calls from kernel.
|
|
("nativeKernelSupported", ze_native_kernel_uuid_t) ## [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.
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Supported command queue group property flags
|
|
class ze_command_queue_group_property_flags_v(IntEnum):
|
|
COMPUTE = ZE_BIT(0) ## Command queue group supports enqueing compute commands.
|
|
COPY = ZE_BIT(1) ## Command queue group supports enqueing copy commands.
|
|
COOPERATIVE_KERNELS = ZE_BIT(2) ## Command queue group supports cooperative kernels.
|
|
## See ::zeCommandListAppendLaunchCooperativeKernel for more details.
|
|
METRICS = ZE_BIT(3) ## Command queue groups supports metric queries.
|
|
|
|
class ze_command_queue_group_property_flags_t(c_int):
|
|
def __str__(self):
|
|
return hex(self.value)
|
|
|
|
|
|
###############################################################################
|
|
## @brief Command queue group properties queried using
|
|
## ::zeDeviceGetCommandQueueGroupProperties
|
|
class ze_command_queue_group_properties_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in,out][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("flags", ze_command_queue_group_property_flags_t), ## [out] 0 (none) or a valid combination of
|
|
## ::ze_command_queue_group_property_flag_t
|
|
("maxMemoryFillPatternSize", c_size_t), ## [out] maximum `pattern_size` supported by command queue group.
|
|
## See ::zeCommandListAppendMemoryFill for more details.
|
|
("numQueues", c_ulong) ## [out] the number of physical engines within the group.
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Supported device memory property flags
|
|
class ze_device_memory_property_flags_v(IntEnum):
|
|
TBD = ZE_BIT(0) ## reserved for future use
|
|
|
|
class ze_device_memory_property_flags_t(c_int):
|
|
def __str__(self):
|
|
return hex(self.value)
|
|
|
|
|
|
###############################################################################
|
|
## @brief Device local memory properties queried using
|
|
## ::zeDeviceGetMemoryProperties
|
|
class ze_device_memory_properties_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in,out][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("flags", ze_device_memory_property_flags_t), ## [out] 0 (none) or a valid combination of
|
|
## ::ze_device_memory_property_flag_t
|
|
("maxClockRate", c_ulong), ## [out] Maximum clock rate for device memory.
|
|
("maxBusWidth", c_ulong), ## [out] Maximum bus width between device and memory.
|
|
("totalSize", c_ulonglong), ## [out] Total memory size in bytes that is available to the device.
|
|
("name", c_char * ZE_MAX_DEVICE_NAME) ## [out] Memory name
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Memory access capability flags
|
|
##
|
|
## @details
|
|
## - Supported access capabilities for different types of memory
|
|
## allocations
|
|
class ze_memory_access_cap_flags_v(IntEnum):
|
|
RW = ZE_BIT(0) ## Supports load/store access
|
|
ATOMIC = ZE_BIT(1) ## Supports atomic access
|
|
CONCURRENT = ZE_BIT(2) ## Supports concurrent access
|
|
CONCURRENT_ATOMIC = ZE_BIT(3) ## Supports concurrent atomic access
|
|
|
|
class ze_memory_access_cap_flags_t(c_int):
|
|
def __str__(self):
|
|
return hex(self.value)
|
|
|
|
|
|
###############################################################################
|
|
## @brief Device memory access properties queried using
|
|
## ::zeDeviceGetMemoryAccessProperties
|
|
class ze_device_memory_access_properties_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in,out][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("hostAllocCapabilities", ze_memory_access_cap_flags_t), ## [out] host memory capabilities.
|
|
## returns 0 (unsupported) or a combination of ::ze_memory_access_cap_flag_t.
|
|
("deviceAllocCapabilities", ze_memory_access_cap_flags_t), ## [out] device memory capabilities.
|
|
## returns 0 (unsupported) or a combination of ::ze_memory_access_cap_flag_t.
|
|
("sharedSingleDeviceAllocCapabilities", ze_memory_access_cap_flags_t), ## [out] shared, single-device memory capabilities.
|
|
## returns 0 (unsupported) or a combination of ::ze_memory_access_cap_flag_t.
|
|
("sharedCrossDeviceAllocCapabilities", ze_memory_access_cap_flags_t), ## [out] shared, cross-device memory capabilities.
|
|
## returns 0 (unsupported) or a combination of ::ze_memory_access_cap_flag_t.
|
|
("sharedSystemAllocCapabilities", ze_memory_access_cap_flags_t) ## [out] shared, system memory capabilities.
|
|
## returns 0 (unsupported) or a combination of ::ze_memory_access_cap_flag_t.
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Supported cache control property flags
|
|
class ze_device_cache_property_flags_v(IntEnum):
|
|
USER_CONTROL = ZE_BIT(0) ## Device support User Cache Control (i.e. SLM section vs Generic Cache)
|
|
|
|
class ze_device_cache_property_flags_t(c_int):
|
|
def __str__(self):
|
|
return hex(self.value)
|
|
|
|
|
|
###############################################################################
|
|
## @brief Device cache properties queried using ::zeDeviceGetCacheProperties
|
|
class ze_device_cache_properties_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in,out][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("flags", ze_device_cache_property_flags_t), ## [out] 0 (none) or a valid combination of
|
|
## ::ze_device_cache_property_flag_t
|
|
("cacheSize", c_size_t) ## [out] Per-cache size, in bytes
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Device image properties queried using ::zeDeviceGetImageProperties
|
|
class ze_device_image_properties_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in,out][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("maxImageDims1D", c_ulong), ## [out] Maximum image dimensions for 1D resources. if 0, then 1D images
|
|
## are unsupported.
|
|
("maxImageDims2D", c_ulong), ## [out] Maximum image dimensions for 2D resources. if 0, then 2D images
|
|
## are unsupported.
|
|
("maxImageDims3D", c_ulong), ## [out] Maximum image dimensions for 3D resources. if 0, then 3D images
|
|
## are unsupported.
|
|
("maxImageBufferSize", c_ulonglong), ## [out] Maximum image buffer size in bytes. if 0, then buffer images are
|
|
## unsupported.
|
|
("maxImageArraySlices", c_ulong), ## [out] Maximum image array slices. if 0, then image arrays are
|
|
## unsupported.
|
|
("maxSamplers", c_ulong), ## [out] Max samplers that can be used in kernel. if 0, then sampling is
|
|
## unsupported.
|
|
("maxReadImageArgs", c_ulong), ## [out] Returns the maximum number of simultaneous image objects that
|
|
## can be read from by a kernel. if 0, then reading images is
|
|
## unsupported.
|
|
("maxWriteImageArgs", c_ulong) ## [out] Returns the maximum number of simultaneous image objects that
|
|
## can be written to by a kernel. if 0, then writing images is
|
|
## unsupported.
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Device external memory import and export properties
|
|
class ze_device_external_memory_properties_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in,out][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("memoryAllocationImportTypes", ze_external_memory_type_flags_t), ## [out] Supported external memory import types for memory allocations.
|
|
("memoryAllocationExportTypes", ze_external_memory_type_flags_t), ## [out] Supported external memory export types for memory allocations.
|
|
("imageImportTypes", ze_external_memory_type_flags_t), ## [out] Supported external memory import types for images.
|
|
("imageExportTypes", ze_external_memory_type_flags_t) ## [out] Supported external memory export types for images.
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Supported device peer-to-peer property flags
|
|
class ze_device_p2p_property_flags_v(IntEnum):
|
|
ACCESS = ZE_BIT(0) ## Device supports access between peer devices.
|
|
ATOMICS = ZE_BIT(1) ## Device supports atomics between peer devices.
|
|
|
|
class ze_device_p2p_property_flags_t(c_int):
|
|
def __str__(self):
|
|
return hex(self.value)
|
|
|
|
|
|
###############################################################################
|
|
## @brief Device peer-to-peer properties queried using
|
|
## ::zeDeviceGetP2PProperties
|
|
class ze_device_p2p_properties_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in,out][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("flags", ze_device_p2p_property_flags_t) ## [out] 0 (none) or a valid combination of
|
|
## ::ze_device_p2p_property_flag_t
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Supported context creation flags
|
|
class ze_context_flags_v(IntEnum):
|
|
TBD = ZE_BIT(0) ## reserved for future use
|
|
|
|
class ze_context_flags_t(c_int):
|
|
def __str__(self):
|
|
return hex(self.value)
|
|
|
|
|
|
###############################################################################
|
|
## @brief Context descriptor
|
|
class ze_context_desc_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("flags", ze_context_flags_t) ## [in] creation flags.
|
|
## must be 0 (default) or a valid combination of ::ze_context_flag_t;
|
|
## default behavior may use implicit driver-based heuristics.
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Supported command queue flags
|
|
class ze_command_queue_flags_v(IntEnum):
|
|
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.
|
|
IN_ORDER = ZE_BIT(1) ## To be used only when creating immediate command lists. Commands
|
|
## appended to the immediate command
|
|
## list are executed in-order, with driver implementation enforcing
|
|
## dependencies between them.
|
|
## Application is not required to have the signal event of a given
|
|
## command being the wait event of
|
|
## the next to define an in-order list, and application is allowed to
|
|
## pass signal and wait events
|
|
## to each appended command to implement more complex dependency graphs.
|
|
|
|
class ze_command_queue_flags_t(c_int):
|
|
def __str__(self):
|
|
return hex(self.value)
|
|
|
|
|
|
###############################################################################
|
|
## @brief Supported command queue modes
|
|
class ze_command_queue_mode_v(IntEnum):
|
|
DEFAULT = 0 ## implicit default behavior; uses driver-based heuristics
|
|
SYNCHRONOUS = 1 ## Device execution always completes immediately on execute;
|
|
## Host thread is blocked using wait on implicit synchronization object
|
|
ASYNCHRONOUS = 2 ## Device execution is scheduled and will complete in future;
|
|
## explicit synchronization object must be used to determine completeness
|
|
|
|
class ze_command_queue_mode_t(c_int):
|
|
def __str__(self):
|
|
return str(ze_command_queue_mode_v(self.value))
|
|
|
|
|
|
###############################################################################
|
|
## @brief Supported command queue priorities
|
|
class ze_command_queue_priority_v(IntEnum):
|
|
NORMAL = 0 ## [default] normal priority
|
|
PRIORITY_LOW = 1 ## lower priority than normal
|
|
PRIORITY_HIGH = 2 ## higher priority than normal
|
|
|
|
class ze_command_queue_priority_t(c_int):
|
|
def __str__(self):
|
|
return str(ze_command_queue_priority_v(self.value))
|
|
|
|
|
|
###############################################################################
|
|
## @brief Command Queue descriptor
|
|
class ze_command_queue_desc_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("ordinal", c_ulong), ## [in] command queue group ordinal
|
|
("index", c_ulong), ## [in] command queue index within the group;
|
|
## must be zero if ::ZE_COMMAND_QUEUE_FLAG_EXPLICIT_ONLY is not set
|
|
("flags", ze_command_queue_flags_t), ## [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.
|
|
("mode", ze_command_queue_mode_t), ## [in] operation mode
|
|
("priority", ze_command_queue_priority_t) ## [in] priority
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Supported command list creation flags
|
|
class ze_command_list_flags_v(IntEnum):
|
|
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.
|
|
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.
|
|
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.
|
|
IN_ORDER = ZE_BIT(3) ## commands appended to this command list are executed in-order, with
|
|
## driver implementation
|
|
## enforcing dependencies between them. Application is not required to
|
|
## have the signal event
|
|
## of a given command being the wait event of the next to define an
|
|
## in-order list, and
|
|
## application is allowed to pass signal and wait events to each appended
|
|
## command to implement
|
|
## more complex dependency graphs. Cannot be combined with ::ZE_COMMAND_LIST_FLAG_RELAXED_ORDERING.
|
|
EXP_CLONEABLE = ZE_BIT(4) ## this command list may be cloned using ::zeCommandListCreateCloneExp
|
|
## after ::zeCommandListClose.
|
|
|
|
class ze_command_list_flags_t(c_int):
|
|
def __str__(self):
|
|
return hex(self.value)
|
|
|
|
|
|
###############################################################################
|
|
## @brief Command List descriptor
|
|
class ze_command_list_desc_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("commandQueueGroupOrdinal", c_ulong), ## [in] command queue group ordinal to which this command list will be
|
|
## submitted
|
|
("flags", ze_command_list_flags_t) ## [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.
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Copy region descriptor
|
|
class ze_copy_region_t(Structure):
|
|
_fields_ = [
|
|
("originX", c_ulong), ## [in] The origin x offset for region in bytes
|
|
("originY", c_ulong), ## [in] The origin y offset for region in rows
|
|
("originZ", c_ulong), ## [in] The origin z offset for region in slices
|
|
("width", c_ulong), ## [in] The region width relative to origin in bytes
|
|
("height", c_ulong), ## [in] The region height relative to origin in rows
|
|
("depth", c_ulong) ## [in] The region depth relative to origin in slices. Set this to 0 for
|
|
## 2D copy.
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Region descriptor
|
|
class ze_image_region_t(Structure):
|
|
_fields_ = [
|
|
("originX", c_ulong), ## [in] The origin x offset for region in pixels
|
|
("originY", c_ulong), ## [in] The origin y offset for region in pixels
|
|
("originZ", c_ulong), ## [in] The origin z offset for region in pixels
|
|
("width", c_ulong), ## [in] The region width relative to origin in pixels
|
|
("height", c_ulong), ## [in] The region height relative to origin in pixels
|
|
("depth", c_ulong) ## [in] The region depth relative to origin. For 1D or 2D images, set
|
|
## this to 1.
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Supported memory advice hints
|
|
class ze_memory_advice_v(IntEnum):
|
|
SET_READ_MOSTLY = 0 ## hint that memory will be read from frequently and written to rarely
|
|
CLEAR_READ_MOSTLY = 1 ## removes the effect of ::ZE_MEMORY_ADVICE_SET_READ_MOSTLY
|
|
SET_PREFERRED_LOCATION = 2 ## hint that the preferred memory location is the specified device
|
|
CLEAR_PREFERRED_LOCATION = 3 ## removes the effect of ::ZE_MEMORY_ADVICE_SET_PREFERRED_LOCATION
|
|
SET_NON_ATOMIC_MOSTLY = 4 ## hints that memory will mostly be accessed non-atomically
|
|
CLEAR_NON_ATOMIC_MOSTLY = 5 ## removes the effect of ::ZE_MEMORY_ADVICE_SET_NON_ATOMIC_MOSTLY
|
|
BIAS_CACHED = 6 ## hints that memory should be cached
|
|
BIAS_UNCACHED = 7 ## hints that memory should be not be cached
|
|
SET_SYSTEM_MEMORY_PREFERRED_LOCATION = 8 ## hint that the preferred memory location is host memory
|
|
CLEAR_SYSTEM_MEMORY_PREFERRED_LOCATION = 9 ## removes the effect of
|
|
## ::ZE_MEMORY_ADVICE_SET_SYSTEM_MEMORY_PREFERRED_LOCATION
|
|
|
|
class ze_memory_advice_t(c_int):
|
|
def __str__(self):
|
|
return str(ze_memory_advice_v(self.value))
|
|
|
|
|
|
###############################################################################
|
|
## @brief Supported event pool creation flags
|
|
class ze_event_pool_flags_v(IntEnum):
|
|
HOST_VISIBLE = ZE_BIT(0) ## signals and waits are also visible to host
|
|
IPC = ZE_BIT(1) ## signals and waits may be shared across processes
|
|
KERNEL_TIMESTAMP = ZE_BIT(2) ## Indicates all events in pool will contain kernel timestamps
|
|
KERNEL_MAPPED_TIMESTAMP = ZE_BIT(3) ## Indicates all events in pool will contain kernel timestamps
|
|
## synchronized to host time domain; cannot be combined with
|
|
## ::ZE_EVENT_POOL_FLAG_KERNEL_TIMESTAMP
|
|
|
|
class ze_event_pool_flags_t(c_int):
|
|
def __str__(self):
|
|
return hex(self.value)
|
|
|
|
|
|
###############################################################################
|
|
## @brief Event pool descriptor
|
|
class ze_event_pool_desc_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("flags", ze_event_pool_flags_t), ## [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.
|
|
("count", c_ulong) ## [in] number of events within the pool; must be greater than 0
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Supported event scope flags
|
|
class ze_event_scope_flags_v(IntEnum):
|
|
SUBDEVICE = ZE_BIT(0) ## cache hierarchies are flushed or invalidated sufficient for local
|
|
## sub-device access
|
|
DEVICE = ZE_BIT(1) ## cache hierarchies are flushed or invalidated sufficient for global
|
|
## device access and peer device access
|
|
HOST = ZE_BIT(2) ## cache hierarchies are flushed or invalidated sufficient for device and
|
|
## host access
|
|
|
|
class ze_event_scope_flags_t(c_int):
|
|
def __str__(self):
|
|
return hex(self.value)
|
|
|
|
|
|
###############################################################################
|
|
## @brief Event descriptor
|
|
class ze_event_desc_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("index", c_ulong), ## [in] index of the event within the pool; must be less than the count
|
|
## specified during pool creation
|
|
("signal", ze_event_scope_flags_t), ## [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 synchronization within the command list only, no
|
|
## additional cache hierarchies are flushed.
|
|
("wait", ze_event_scope_flags_t) ## [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 synchronization within the command list only, no
|
|
## additional cache hierarchies are invalidated.
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Kernel timestamp clock data
|
|
##
|
|
## @details
|
|
## - The timestamp frequency can be queried from the `timerResolution`
|
|
## member of ::ze_device_properties_t.
|
|
## - The number of valid bits in the timestamp value can be queried from
|
|
## the `kernelTimestampValidBits` member of ::ze_device_properties_t.
|
|
class ze_kernel_timestamp_data_t(Structure):
|
|
_fields_ = [
|
|
("kernelStart", c_ulonglong), ## [out] device clock at start of kernel execution
|
|
("kernelEnd", c_ulonglong) ## [out] device clock at end of kernel execution
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Kernel timestamp result
|
|
class ze_kernel_timestamp_result_t(Structure):
|
|
_fields_ = [
|
|
("global", ze_kernel_timestamp_data_t), ## [out] wall-clock data
|
|
("context", ze_kernel_timestamp_data_t) ## [out] context-active data; only includes clocks while device context
|
|
## was actively executing.
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Supported fence creation flags
|
|
class ze_fence_flags_v(IntEnum):
|
|
SIGNALED = ZE_BIT(0) ## fence is created in the signaled state, otherwise not signaled.
|
|
|
|
class ze_fence_flags_t(c_int):
|
|
def __str__(self):
|
|
return hex(self.value)
|
|
|
|
|
|
###############################################################################
|
|
## @brief Fence descriptor
|
|
class ze_fence_desc_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("flags", ze_fence_flags_t) ## [in] creation flags.
|
|
## must be 0 (default) or a valid combination of ::ze_fence_flag_t.
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Supported image creation flags
|
|
class ze_image_flags_v(IntEnum):
|
|
KERNEL_WRITE = ZE_BIT(0) ## kernels will write contents
|
|
BIAS_UNCACHED = ZE_BIT(1) ## device should not cache contents
|
|
|
|
class ze_image_flags_t(c_int):
|
|
def __str__(self):
|
|
return hex(self.value)
|
|
|
|
|
|
###############################################################################
|
|
## @brief Supported image types
|
|
class ze_image_type_v(IntEnum):
|
|
_1D = 0 ## 1D
|
|
_1DARRAY = 1 ## 1D array
|
|
_2D = 2 ## 2D
|
|
_2DARRAY = 3 ## 2D array
|
|
_3D = 4 ## 3D
|
|
BUFFER = 5 ## Buffer
|
|
|
|
class ze_image_type_t(c_int):
|
|
def __str__(self):
|
|
return str(ze_image_type_v(self.value))
|
|
|
|
|
|
###############################################################################
|
|
## @brief Supported image format layouts
|
|
class ze_image_format_layout_v(IntEnum):
|
|
_8 = 0 ## 8-bit single component layout
|
|
_16 = 1 ## 16-bit single component layout
|
|
_32 = 2 ## 32-bit single component layout
|
|
_8_8 = 3 ## 2-component 8-bit layout
|
|
_8_8_8_8 = 4 ## 4-component 8-bit layout
|
|
_16_16 = 5 ## 2-component 16-bit layout
|
|
_16_16_16_16 = 6 ## 4-component 16-bit layout
|
|
_32_32 = 7 ## 2-component 32-bit layout
|
|
_32_32_32_32 = 8 ## 4-component 32-bit layout
|
|
_10_10_10_2 = 9 ## 4-component 10_10_10_2 layout
|
|
_11_11_10 = 10 ## 3-component 11_11_10 layout
|
|
_5_6_5 = 11 ## 3-component 5_6_5 layout
|
|
_5_5_5_1 = 12 ## 4-component 5_5_5_1 layout
|
|
_4_4_4_4 = 13 ## 4-component 4_4_4_4 layout
|
|
Y8 = 14 ## Media Format: Y8. Format type and swizzle is ignored for this.
|
|
NV12 = 15 ## Media Format: NV12. Format type and swizzle is ignored for this.
|
|
YUYV = 16 ## Media Format: YUYV. Format type and swizzle is ignored for this.
|
|
VYUY = 17 ## Media Format: VYUY. Format type and swizzle is ignored for this.
|
|
YVYU = 18 ## Media Format: YVYU. Format type and swizzle is ignored for this.
|
|
UYVY = 19 ## Media Format: UYVY. Format type and swizzle is ignored for this.
|
|
AYUV = 20 ## Media Format: AYUV. Format type and swizzle is ignored for this.
|
|
P010 = 21 ## Media Format: P010. Format type and swizzle is ignored for this.
|
|
Y410 = 22 ## Media Format: Y410. Format type and swizzle is ignored for this.
|
|
P012 = 23 ## Media Format: P012. Format type and swizzle is ignored for this.
|
|
Y16 = 24 ## Media Format: Y16. Format type and swizzle is ignored for this.
|
|
P016 = 25 ## Media Format: P016. Format type and swizzle is ignored for this.
|
|
Y216 = 26 ## Media Format: Y216. Format type and swizzle is ignored for this.
|
|
P216 = 27 ## Media Format: P216. Format type and swizzle is ignored for this.
|
|
P8 = 28 ## Media Format: P8. Format type and swizzle is ignored for this.
|
|
YUY2 = 29 ## Media Format: YUY2. Format type and swizzle is ignored for this.
|
|
A8P8 = 30 ## Media Format: A8P8. Format type and swizzle is ignored for this.
|
|
IA44 = 31 ## Media Format: IA44. Format type and swizzle is ignored for this.
|
|
AI44 = 32 ## Media Format: AI44. Format type and swizzle is ignored for this.
|
|
Y416 = 33 ## Media Format: Y416. Format type and swizzle is ignored for this.
|
|
Y210 = 34 ## Media Format: Y210. Format type and swizzle is ignored for this.
|
|
I420 = 35 ## Media Format: I420. Format type and swizzle is ignored for this.
|
|
YV12 = 36 ## Media Format: YV12. Format type and swizzle is ignored for this.
|
|
_400P = 37 ## Media Format: 400P. Format type and swizzle is ignored for this.
|
|
_422H = 38 ## Media Format: 422H. Format type and swizzle is ignored for this.
|
|
_422V = 39 ## Media Format: 422V. Format type and swizzle is ignored for this.
|
|
_444P = 40 ## Media Format: 444P. Format type and swizzle is ignored for this.
|
|
RGBP = 41 ## Media Format: RGBP. Format type and swizzle is ignored for this.
|
|
BRGP = 42 ## Media Format: BRGP. Format type and swizzle is ignored for this.
|
|
_8_8_8 = 43 ## 3-component 8-bit layout
|
|
_16_16_16 = 44 ## 3-component 16-bit layout
|
|
_32_32_32 = 45 ## 3-component 32-bit layout
|
|
|
|
class ze_image_format_layout_t(c_int):
|
|
def __str__(self):
|
|
return str(ze_image_format_layout_v(self.value))
|
|
|
|
|
|
###############################################################################
|
|
## @brief Supported image format types
|
|
class ze_image_format_type_v(IntEnum):
|
|
UINT = 0 ## Unsigned integer
|
|
SINT = 1 ## Signed integer
|
|
UNORM = 2 ## Unsigned normalized integer
|
|
SNORM = 3 ## Signed normalized integer
|
|
FLOAT = 4 ## Float
|
|
|
|
class ze_image_format_type_t(c_int):
|
|
def __str__(self):
|
|
return str(ze_image_format_type_v(self.value))
|
|
|
|
|
|
###############################################################################
|
|
## @brief Supported image format component swizzle into channel
|
|
class ze_image_format_swizzle_v(IntEnum):
|
|
R = 0 ## Red component
|
|
G = 1 ## Green component
|
|
B = 2 ## Blue component
|
|
A = 3 ## Alpha component
|
|
_0 = 4 ## Zero
|
|
_1 = 5 ## One
|
|
X = 6 ## Don't care
|
|
|
|
class ze_image_format_swizzle_t(c_int):
|
|
def __str__(self):
|
|
return str(ze_image_format_swizzle_v(self.value))
|
|
|
|
|
|
###############################################################################
|
|
## @brief Image format
|
|
class ze_image_format_t(Structure):
|
|
_fields_ = [
|
|
("layout", ze_image_format_layout_t), ## [in] image format component layout (e.g. N-component layouts and media
|
|
## formats)
|
|
("type", ze_image_format_type_t), ## [in] image format type
|
|
("x", ze_image_format_swizzle_t), ## [in] image component swizzle into channel x
|
|
("y", ze_image_format_swizzle_t), ## [in] image component swizzle into channel y
|
|
("z", ze_image_format_swizzle_t), ## [in] image component swizzle into channel z
|
|
("w", ze_image_format_swizzle_t) ## [in] image component swizzle into channel w
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Image descriptor
|
|
class ze_image_desc_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("flags", ze_image_flags_t), ## [in] creation flags.
|
|
## must be 0 (default) or a valid combination of ::ze_image_flag_t;
|
|
## default is read-only, cached access.
|
|
("type", ze_image_type_t), ## [in] image type. Media format layouts are unsupported for
|
|
## ::ZE_IMAGE_TYPE_BUFFER
|
|
("format", ze_image_format_t), ## [in] image format
|
|
("width", c_ulonglong), ## [in] width dimension.
|
|
## ::ZE_IMAGE_TYPE_BUFFER: size in bytes; see the `maxImageBufferSize`
|
|
## member of ::ze_device_image_properties_t for limits.
|
|
## ::ZE_IMAGE_TYPE_1D, ::ZE_IMAGE_TYPE_1DARRAY: width in pixels; see the
|
|
## `maxImageDims1D` member of ::ze_device_image_properties_t for limits.
|
|
## ::ZE_IMAGE_TYPE_2D, ::ZE_IMAGE_TYPE_2DARRAY: width in pixels; see the
|
|
## `maxImageDims2D` member of ::ze_device_image_properties_t for limits.
|
|
## ::ZE_IMAGE_TYPE_3D: width in pixels; see the `maxImageDims3D` member
|
|
## of ::ze_device_image_properties_t for limits.
|
|
("height", c_ulong), ## [in] height dimension.
|
|
## ::ZE_IMAGE_TYPE_2D, ::ZE_IMAGE_TYPE_2DARRAY: height in pixels; see the
|
|
## `maxImageDims2D` member of ::ze_device_image_properties_t for limits.
|
|
## ::ZE_IMAGE_TYPE_3D: height in pixels; see the `maxImageDims3D` member
|
|
## of ::ze_device_image_properties_t for limits.
|
|
## other: ignored.
|
|
("depth", c_ulong), ## [in] depth dimension.
|
|
## ::ZE_IMAGE_TYPE_3D: depth in pixels; see the `maxImageDims3D` member
|
|
## of ::ze_device_image_properties_t for limits.
|
|
## other: ignored.
|
|
("arraylevels", c_ulong), ## [in] array levels.
|
|
## ::ZE_IMAGE_TYPE_1DARRAY, ::ZE_IMAGE_TYPE_2DARRAY: see the
|
|
## `maxImageArraySlices` member of ::ze_device_image_properties_t for limits.
|
|
## other: ignored.
|
|
("miplevels", c_ulong) ## [in] mipmap levels (must be 0)
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Supported sampler filtering flags
|
|
class ze_image_sampler_filter_flags_v(IntEnum):
|
|
POINT = ZE_BIT(0) ## device supports point filtering
|
|
LINEAR = ZE_BIT(1) ## device supports linear filtering
|
|
|
|
class ze_image_sampler_filter_flags_t(c_int):
|
|
def __str__(self):
|
|
return hex(self.value)
|
|
|
|
|
|
###############################################################################
|
|
## @brief Image properties
|
|
class ze_image_properties_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in,out][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("samplerFilterFlags", ze_image_sampler_filter_flags_t) ## [out] supported sampler filtering.
|
|
## returns 0 (unsupported) or a combination of ::ze_image_sampler_filter_flag_t.
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Supported memory allocation flags
|
|
class ze_device_mem_alloc_flags_v(IntEnum):
|
|
BIAS_CACHED = ZE_BIT(0) ## device should cache allocation
|
|
BIAS_UNCACHED = ZE_BIT(1) ## device should not cache allocation (UC)
|
|
BIAS_INITIAL_PLACEMENT = ZE_BIT(2) ## optimize shared allocation for first access on the device
|
|
|
|
class ze_device_mem_alloc_flags_t(c_int):
|
|
def __str__(self):
|
|
return hex(self.value)
|
|
|
|
|
|
###############################################################################
|
|
## @brief Device memory allocation descriptor
|
|
class ze_device_mem_alloc_desc_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("flags", ze_device_mem_alloc_flags_t), ## [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.
|
|
("ordinal", c_ulong) ## [in] ordinal of the device's local memory to allocate from.
|
|
## must be less than the count returned from ::zeDeviceGetMemoryProperties.
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Supported host memory allocation flags
|
|
class ze_host_mem_alloc_flags_v(IntEnum):
|
|
BIAS_CACHED = ZE_BIT(0) ## host should cache allocation
|
|
BIAS_UNCACHED = ZE_BIT(1) ## host should not cache allocation (UC)
|
|
BIAS_WRITE_COMBINED = ZE_BIT(2) ## host memory should be allocated write-combined (WC)
|
|
BIAS_INITIAL_PLACEMENT = ZE_BIT(3) ## optimize shared allocation for first access on the host
|
|
|
|
class ze_host_mem_alloc_flags_t(c_int):
|
|
def __str__(self):
|
|
return hex(self.value)
|
|
|
|
|
|
###############################################################################
|
|
## @brief Host memory allocation descriptor
|
|
class ze_host_mem_alloc_desc_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("flags", ze_host_mem_alloc_flags_t) ## [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.
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Memory allocation type
|
|
class ze_memory_type_v(IntEnum):
|
|
UNKNOWN = 0 ## the memory pointed to is of unknown type
|
|
HOST = 1 ## the memory pointed to is a host allocation
|
|
DEVICE = 2 ## the memory pointed to is a device allocation
|
|
SHARED = 3 ## the memory pointed to is a shared ownership allocation
|
|
|
|
class ze_memory_type_t(c_int):
|
|
def __str__(self):
|
|
return str(ze_memory_type_v(self.value))
|
|
|
|
|
|
###############################################################################
|
|
## @brief Memory allocation properties queried using ::zeMemGetAllocProperties
|
|
class ze_memory_allocation_properties_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in,out][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("type", ze_memory_type_t), ## [out] type of allocated memory
|
|
("id", c_ulonglong), ## [out] identifier for this allocation
|
|
("pageSize", c_ulonglong) ## [out] page size used for allocation
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Supported IPC memory flags
|
|
class ze_ipc_memory_flags_v(IntEnum):
|
|
BIAS_CACHED = ZE_BIT(0) ## device should cache allocation
|
|
BIAS_UNCACHED = ZE_BIT(1) ## device should not cache allocation (UC)
|
|
|
|
class ze_ipc_memory_flags_t(c_int):
|
|
def __str__(self):
|
|
return hex(self.value)
|
|
|
|
|
|
###############################################################################
|
|
## @brief Additional allocation descriptor for exporting external memory
|
|
##
|
|
## @details
|
|
## - This structure may be passed to ::zeMemAllocDevice and
|
|
## ::zeMemAllocHost, via the `pNext` member of
|
|
## ::ze_device_mem_alloc_desc_t or ::ze_host_mem_alloc_desc_t,
|
|
## respectively, 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.
|
|
class ze_external_memory_export_desc_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("flags", ze_external_memory_type_flags_t) ## [in] flags specifying memory export types for this allocation.
|
|
## must be 0 (default) or a valid combination of ::ze_external_memory_type_flags_t
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Additional allocation descriptor for importing external memory as a
|
|
## file descriptor
|
|
##
|
|
## @details
|
|
## - This structure may be passed to ::zeMemAllocDevice or
|
|
## ::zeMemAllocHost, via the `pNext` member of
|
|
## ::ze_device_mem_alloc_desc_t or of ::ze_host_mem_alloc_desc_t,
|
|
## respectively, 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.
|
|
class ze_external_memory_import_fd_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("flags", ze_external_memory_type_flags_t), ## [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
|
|
("fd", c_int) ## [in] the file descriptor handle to import
|
|
]
|
|
|
|
###############################################################################
|
|
## @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 ::zeImageGetAllocPropertiesExt, via
|
|
## the `pNext` member of ::ze_image_allocation_ext_properties_t, to
|
|
## export an image as a file descriptor.
|
|
## - The requested memory export type must have been specified when the
|
|
## allocation was made.
|
|
class ze_external_memory_export_fd_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("flags", ze_external_memory_type_flags_t), ## [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
|
|
("fd", c_int) ## [out] the exported file descriptor handle representing the allocation.
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Additional allocation descriptor for importing external memory as a
|
|
## Win32 handle
|
|
##
|
|
## @details
|
|
## - When `handle` is `nullptr`, `name` must not be `nullptr`.
|
|
## - When `name` is `nullptr`, `handle` must not be `nullptr`.
|
|
## - When `flags` is ::ZE_EXTERNAL_MEMORY_TYPE_FLAG_OPAQUE_WIN32_KMT,
|
|
## `name` must be `nullptr`.
|
|
## - This structure may be passed to ::zeMemAllocDevice or
|
|
## ::zeMemAllocHost, via the `pNext` member of
|
|
## ::ze_device_mem_alloc_desc_t or of ::ze_host_mem_alloc_desc_t,
|
|
## respectively, to import memory from a Win32 handle.
|
|
## - This structure may be passed to ::zeImageCreate, via the `pNext`
|
|
## member of ::ze_image_desc_t, to import memory from a Win32 handle.
|
|
class ze_external_memory_import_win32_handle_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("flags", ze_external_memory_type_flags_t), ## [in] flags specifying the memory import type for the Win32 handle.
|
|
## must be 0 (default) or a valid combination of ::ze_external_memory_type_flags_t
|
|
("handle", c_void_p), ## [in][optional] the Win32 handle to import
|
|
("name", c_void_p) ## [in][optional] name of a memory object to import
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Exports an allocation as a Win32 handle
|
|
##
|
|
## @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 Win32 handle.
|
|
## - This structure may be passed to ::zeImageGetAllocPropertiesExt, via
|
|
## the `pNext` member of ::ze_image_allocation_ext_properties_t, to
|
|
## export an image as a Win32 handle.
|
|
## - The requested memory export type must have been specified when the
|
|
## allocation was made.
|
|
class ze_external_memory_export_win32_handle_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("flags", ze_external_memory_type_flags_t), ## [in] flags specifying the memory export type for the Win32 handle.
|
|
## must be 0 (default) or a valid combination of ::ze_external_memory_type_flags_t
|
|
("handle", c_void_p) ## [out] the exported Win32 handle representing the allocation.
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief atomic access attribute flags
|
|
class ze_memory_atomic_attr_exp_flags_v(IntEnum):
|
|
NO_ATOMICS = ZE_BIT(0) ## Atomics on the pointer are not allowed
|
|
NO_HOST_ATOMICS = ZE_BIT(1) ## Host atomics on the pointer are not allowed
|
|
HOST_ATOMICS = ZE_BIT(2) ## Host atomics on the pointer are allowed. Requires
|
|
## ::ZE_MEMORY_ACCESS_CAP_FLAG_ATOMIC returned by
|
|
## ::zeDeviceGetMemoryAccessProperties.
|
|
NO_DEVICE_ATOMICS = ZE_BIT(3) ## Device atomics on the pointer are not allowed
|
|
DEVICE_ATOMICS = ZE_BIT(4) ## Device atomics on the pointer are allowed. Requires
|
|
## ::ZE_MEMORY_ACCESS_CAP_FLAG_ATOMIC returned by
|
|
## ::zeDeviceGetMemoryAccessProperties.
|
|
NO_SYSTEM_ATOMICS = ZE_BIT(5) ## Concurrent atomics on the pointer from both host and device are not
|
|
## allowed
|
|
SYSTEM_ATOMICS = ZE_BIT(6) ## Concurrent atomics on the pointer from both host and device are
|
|
## allowed. Requires ::ZE_MEMORY_ACCESS_CAP_FLAG_CONCURRENT_ATOMIC
|
|
## returned by ::zeDeviceGetMemoryAccessProperties.
|
|
|
|
class ze_memory_atomic_attr_exp_flags_t(c_int):
|
|
def __str__(self):
|
|
return hex(self.value)
|
|
|
|
|
|
###############################################################################
|
|
## @brief Supported module creation input formats
|
|
class ze_module_format_v(IntEnum):
|
|
IL_SPIRV = 0 ## Format is SPIRV IL format
|
|
NATIVE = 1 ## Format is device native format
|
|
|
|
class ze_module_format_t(c_int):
|
|
def __str__(self):
|
|
return str(ze_module_format_v(self.value))
|
|
|
|
|
|
###############################################################################
|
|
## @brief Specialization constants - User defined constants
|
|
class ze_module_constants_t(Structure):
|
|
_fields_ = [
|
|
("numConstants", c_ulong), ## [in] Number of specialization constants.
|
|
("pConstantIds", POINTER(c_ulong)), ## [in][range(0, numConstants)] Array of IDs that is sized to
|
|
## numConstants.
|
|
("pConstantValues", POINTER(c_void_p)) ## [in][range(0, numConstants)] Array of pointers to values that is sized
|
|
## to numConstants.
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Module descriptor
|
|
class ze_module_desc_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("format", ze_module_format_t), ## [in] Module format passed in with pInputModule
|
|
("inputSize", c_size_t), ## [in] size of input IL or ISA from pInputModule.
|
|
("pInputModule", POINTER(c_ubyte)), ## [in] pointer to IL or ISA
|
|
("pBuildFlags", c_char_p), ## [in][optional] string containing one or more (comma-separated)
|
|
## compiler flags. If unsupported, flag is ignored with a warning.
|
|
## - "-ze-opt-disable"
|
|
## - Disable optimizations
|
|
## - "-ze-opt-level"
|
|
## - Specifies optimization level for compiler. Levels are
|
|
## implementation specific.
|
|
## - 0 is no optimizations (equivalent to -ze-opt-disable)
|
|
## - 1 is optimize minimally (may be the same as 2)
|
|
## - 2 is optimize more (default)
|
|
## - "-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.
|
|
("pConstants", POINTER(ze_module_constants_t)) ## [in][optional] pointer to specialization constants. Valid only for
|
|
## SPIR-V input. This must be set to nullptr if no specialization
|
|
## constants are provided.
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Supported module property flags
|
|
class ze_module_property_flags_v(IntEnum):
|
|
IMPORTS = ZE_BIT(0) ## Module has imports (i.e. imported global variables and/or kernels).
|
|
## See ::zeModuleDynamicLink.
|
|
|
|
class ze_module_property_flags_t(c_int):
|
|
def __str__(self):
|
|
return hex(self.value)
|
|
|
|
|
|
###############################################################################
|
|
## @brief Module properties
|
|
class ze_module_properties_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in,out][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("flags", ze_module_property_flags_t) ## [out] 0 (none) or a valid combination of ::ze_module_property_flag_t
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Supported kernel creation flags
|
|
class ze_kernel_flags_v(IntEnum):
|
|
FORCE_RESIDENCY = ZE_BIT(0) ## force all device allocations to be resident during execution
|
|
EXPLICIT_RESIDENCY = ZE_BIT(1) ## application is responsible for all residency of device allocations.
|
|
## driver may disable implicit residency management.
|
|
|
|
class ze_kernel_flags_t(c_int):
|
|
def __str__(self):
|
|
return hex(self.value)
|
|
|
|
|
|
###############################################################################
|
|
## @brief Kernel descriptor
|
|
class ze_kernel_desc_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("flags", ze_kernel_flags_t), ## [in] creation flags.
|
|
## must be 0 (default) or a valid combination of ::ze_kernel_flag_t;
|
|
## default behavior may use driver-based residency.
|
|
("pKernelName", c_char_p) ## [in] null-terminated name of kernel in module
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Kernel indirect access flags
|
|
class ze_kernel_indirect_access_flags_v(IntEnum):
|
|
HOST = ZE_BIT(0) ## Indicates that the kernel accesses host allocations indirectly.
|
|
DEVICE = ZE_BIT(1) ## Indicates that the kernel accesses device allocations indirectly.
|
|
SHARED = ZE_BIT(2) ## Indicates that the kernel accesses shared allocations indirectly.
|
|
|
|
class ze_kernel_indirect_access_flags_t(c_int):
|
|
def __str__(self):
|
|
return hex(self.value)
|
|
|
|
|
|
###############################################################################
|
|
## @brief Supported Cache Config flags
|
|
class ze_cache_config_flags_v(IntEnum):
|
|
LARGE_SLM = ZE_BIT(0) ## Large SLM size
|
|
LARGE_DATA = ZE_BIT(1) ## Large General Data size
|
|
|
|
class ze_cache_config_flags_t(c_int):
|
|
def __str__(self):
|
|
return hex(self.value)
|
|
|
|
|
|
###############################################################################
|
|
## @brief Maximum kernel universal unique id (UUID) size in bytes
|
|
ZE_MAX_KERNEL_UUID_SIZE = 16
|
|
|
|
###############################################################################
|
|
## @brief Maximum module universal unique id (UUID) size in bytes
|
|
ZE_MAX_MODULE_UUID_SIZE = 16
|
|
|
|
###############################################################################
|
|
## @brief Kernel universal unique id (UUID)
|
|
class ze_kernel_uuid_t(Structure):
|
|
_fields_ = [
|
|
("kid", c_ubyte * ZE_MAX_KERNEL_UUID_SIZE), ## [out] opaque data representing a kernel UUID
|
|
("mid", c_ubyte * ZE_MAX_MODULE_UUID_SIZE) ## [out] opaque data representing the kernel's module UUID
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Kernel properties
|
|
class ze_kernel_properties_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in,out][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("numKernelArgs", c_ulong), ## [out] number of kernel arguments.
|
|
("requiredGroupSizeX", c_ulong), ## [out] required group size in the X dimension,
|
|
## or zero if there is no required group size
|
|
("requiredGroupSizeY", c_ulong), ## [out] required group size in the Y dimension,
|
|
## or zero if there is no required group size
|
|
("requiredGroupSizeZ", c_ulong), ## [out] required group size in the Z dimension,
|
|
## or zero if there is no required group size
|
|
("requiredNumSubGroups", c_ulong), ## [out] required number of subgroups per thread group,
|
|
## or zero if there is no required number of subgroups
|
|
("requiredSubgroupSize", c_ulong), ## [out] required subgroup size,
|
|
## or zero if there is no required subgroup size
|
|
("maxSubgroupSize", c_ulong), ## [out] maximum subgroup size
|
|
("maxNumSubgroups", c_ulong), ## [out] maximum number of subgroups per thread group
|
|
("localMemSize", c_ulong), ## [out] local memory size used by each thread group
|
|
("privateMemSize", c_ulong), ## [out] private memory size allocated by compiler used by each thread
|
|
("spillMemSize", c_ulong), ## [out] spill memory size allocated by compiler
|
|
("uuid", ze_kernel_uuid_t) ## [out] universal unique identifier.
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Additional kernel preferred group size properties
|
|
##
|
|
## @details
|
|
## - This structure may be passed to ::zeKernelGetProperties, via the
|
|
## `pNext` member of ::ze_kernel_properties_t, to query additional kernel
|
|
## preferred group size properties.
|
|
class ze_kernel_preferred_group_size_properties_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in,out][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("preferredMultiple", c_ulong) ## [out] preferred group size multiple
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Kernel dispatch group count.
|
|
class ze_group_count_t(Structure):
|
|
_fields_ = [
|
|
("groupCountX", c_ulong), ## [in] number of thread groups in X dimension
|
|
("groupCountY", c_ulong), ## [in] number of thread groups in Y dimension
|
|
("groupCountZ", c_ulong) ## [in] number of thread groups in Z dimension
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Module Program Extension Name
|
|
ZE_MODULE_PROGRAM_EXP_NAME = "ZE_experimental_module_program"
|
|
|
|
###############################################################################
|
|
## @brief Module Program Extension Version(s)
|
|
class ze_module_program_exp_version_v(IntEnum):
|
|
_1_0 = ZE_MAKE_VERSION( 1, 0 ) ## version 1.0
|
|
CURRENT = ZE_MAKE_VERSION( 1, 0 ) ## latest known version
|
|
|
|
class ze_module_program_exp_version_t(c_int):
|
|
def __str__(self):
|
|
return str(ze_module_program_exp_version_v(self.value))
|
|
|
|
|
|
###############################################################################
|
|
## @brief Module extended descriptor to support multiple input modules.
|
|
##
|
|
## @details
|
|
## - Implementation must support ::ZE_experimental_module_program extension
|
|
## - Modules support import and export linkage for functions and global
|
|
## variables.
|
|
## - SPIR-V import and export linkage types are used. See SPIR-V
|
|
## specification for linkage details.
|
|
## - 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.
|
|
class ze_module_program_exp_desc_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("count", c_ulong), ## [in] Count of input modules
|
|
("inputSizes", POINTER(c_size_t)), ## [in][range(0, count)] sizes of each input IL module in pInputModules.
|
|
("pInputModules", POINTER(c_ubyte*)), ## [in][range(0, count)] pointer to an array of IL (e.g. SPIR-V modules).
|
|
## Valid only for SPIR-V input.
|
|
("pBuildFlags", POINTER(c_char_p)), ## [in][optional][range(0, count)] array of strings containing build
|
|
## flags. See pBuildFlags in ::ze_module_desc_t.
|
|
("pConstants", POINTER(ze_module_constants_t*)) ## [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.
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Raytracing Extension Name
|
|
ZE_RAYTRACING_EXT_NAME = "ZE_extension_raytracing"
|
|
|
|
###############################################################################
|
|
## @brief Raytracing Extension Version(s)
|
|
class ze_raytracing_ext_version_v(IntEnum):
|
|
_1_0 = ZE_MAKE_VERSION( 1, 0 ) ## version 1.0
|
|
CURRENT = ZE_MAKE_VERSION( 1, 0 ) ## latest known version
|
|
|
|
class ze_raytracing_ext_version_t(c_int):
|
|
def __str__(self):
|
|
return str(ze_raytracing_ext_version_v(self.value))
|
|
|
|
|
|
###############################################################################
|
|
## @brief Supported raytracing capability flags
|
|
class ze_device_raytracing_ext_flags_v(IntEnum):
|
|
RAYQUERY = ZE_BIT(0) ## Supports rayquery
|
|
|
|
class ze_device_raytracing_ext_flags_t(c_int):
|
|
def __str__(self):
|
|
return hex(self.value)
|
|
|
|
|
|
###############################################################################
|
|
## @brief Raytracing properties queried using ::zeDeviceGetModuleProperties
|
|
##
|
|
## @details
|
|
## - This structure may be returned from ::zeDeviceGetModuleProperties, via
|
|
## the `pNext` member of ::ze_device_module_properties_t.
|
|
class ze_device_raytracing_ext_properties_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in,out][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("flags", ze_device_raytracing_ext_flags_t), ## [out] 0 or a valid combination of ::ze_device_raytracing_ext_flags_t
|
|
("maxBVHLevels", c_ulong) ## [out] Maximum number of BVH levels supported
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Supported raytracing memory allocation flags
|
|
class ze_raytracing_mem_alloc_ext_flags_v(IntEnum):
|
|
TBD = ZE_BIT(0) ## reserved for future use
|
|
|
|
class ze_raytracing_mem_alloc_ext_flags_t(c_int):
|
|
def __str__(self):
|
|
return hex(self.value)
|
|
|
|
|
|
###############################################################################
|
|
## @brief Raytracing memory allocation descriptor
|
|
##
|
|
## @details
|
|
## - This structure must be passed to ::zeMemAllocShared or
|
|
## ::zeMemAllocDevice, via the `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.
|
|
class ze_raytracing_mem_alloc_ext_desc_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("flags", ze_raytracing_mem_alloc_ext_flags_t) ## [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.
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Sampler addressing modes
|
|
class ze_sampler_address_mode_v(IntEnum):
|
|
NONE = 0 ## No coordinate modifications for out-of-bounds image access.
|
|
REPEAT = 1 ## Out-of-bounds coordinates are wrapped back around.
|
|
CLAMP = 2 ## Out-of-bounds coordinates are clamped to edge.
|
|
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).
|
|
MIRROR = 4 ## Out-of-bounds coordinates are mirrored starting from edge.
|
|
|
|
class ze_sampler_address_mode_t(c_int):
|
|
def __str__(self):
|
|
return str(ze_sampler_address_mode_v(self.value))
|
|
|
|
|
|
###############################################################################
|
|
## @brief Sampler filtering modes
|
|
class ze_sampler_filter_mode_v(IntEnum):
|
|
NEAREST = 0 ## No coordinate modifications for out of bounds image access.
|
|
LINEAR = 1 ## Out-of-bounds coordinates are wrapped back around.
|
|
|
|
class ze_sampler_filter_mode_t(c_int):
|
|
def __str__(self):
|
|
return str(ze_sampler_filter_mode_v(self.value))
|
|
|
|
|
|
###############################################################################
|
|
## @brief Sampler descriptor
|
|
class ze_sampler_desc_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("addressMode", ze_sampler_address_mode_t), ## [in] Sampler addressing mode to determine how out-of-bounds
|
|
## coordinates are handled.
|
|
("filterMode", ze_sampler_filter_mode_t), ## [in] Sampler filter mode to determine how samples are filtered.
|
|
("isNormalized", ze_bool_t) ## [in] Are coordinates normalized [0, 1] or not.
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Virtual memory page access attributes
|
|
class ze_memory_access_attribute_v(IntEnum):
|
|
NONE = 0 ## Indicates the memory page is inaccessible.
|
|
READWRITE = 1 ## Indicates the memory page supports read write access.
|
|
READONLY = 2 ## Indicates the memory page supports read-only access.
|
|
|
|
class ze_memory_access_attribute_t(c_int):
|
|
def __str__(self):
|
|
return str(ze_memory_access_attribute_v(self.value))
|
|
|
|
|
|
###############################################################################
|
|
## @brief Supported physical memory creation flags
|
|
class ze_physical_mem_flags_v(IntEnum):
|
|
ALLOCATE_ON_DEVICE = ZE_BIT(0) ## [default] allocate physical device memory.
|
|
ALLOCATE_ON_HOST = ZE_BIT(1) ## Allocate physical host memory instead.
|
|
|
|
class ze_physical_mem_flags_t(c_int):
|
|
def __str__(self):
|
|
return hex(self.value)
|
|
|
|
|
|
###############################################################################
|
|
## @brief Physical memory descriptor
|
|
class ze_physical_mem_desc_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("flags", ze_physical_mem_flags_t), ## [in] creation flags.
|
|
## must be 0 (default) or a valid combination of
|
|
## ::ze_physical_mem_flag_t; default is to create physical device memory.
|
|
("size", c_size_t) ## [in] size in bytes to reserve; must be page aligned.
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Floating-Point Atomics Extension Name
|
|
ZE_FLOAT_ATOMICS_EXT_NAME = "ZE_extension_float_atomics"
|
|
|
|
###############################################################################
|
|
## @brief Floating-Point Atomics Extension Version(s)
|
|
class ze_float_atomics_ext_version_v(IntEnum):
|
|
_1_0 = ZE_MAKE_VERSION( 1, 0 ) ## version 1.0
|
|
CURRENT = ZE_MAKE_VERSION( 1, 0 ) ## latest known version
|
|
|
|
class ze_float_atomics_ext_version_t(c_int):
|
|
def __str__(self):
|
|
return str(ze_float_atomics_ext_version_v(self.value))
|
|
|
|
|
|
###############################################################################
|
|
## @brief Supported floating-point atomic capability flags
|
|
class ze_device_fp_atomic_ext_flags_v(IntEnum):
|
|
GLOBAL_LOAD_STORE = ZE_BIT(0) ## Supports atomic load, store, and exchange
|
|
GLOBAL_ADD = ZE_BIT(1) ## Supports atomic add and subtract
|
|
GLOBAL_MIN_MAX = ZE_BIT(2) ## Supports atomic min and max
|
|
LOCAL_LOAD_STORE = ZE_BIT(16) ## Supports atomic load, store, and exchange
|
|
LOCAL_ADD = ZE_BIT(17) ## Supports atomic add and subtract
|
|
LOCAL_MIN_MAX = ZE_BIT(18) ## Supports atomic min and max
|
|
|
|
class ze_device_fp_atomic_ext_flags_t(c_int):
|
|
def __str__(self):
|
|
return hex(self.value)
|
|
|
|
|
|
###############################################################################
|
|
## @brief Device floating-point atomic properties queried using
|
|
## ::zeDeviceGetModuleProperties
|
|
##
|
|
## @details
|
|
## - This structure may be returned from ::zeDeviceGetModuleProperties, via
|
|
## the `pNext` member of ::ze_device_module_properties_t.
|
|
class ze_float_atomic_ext_properties_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in,out][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("fp16Flags", ze_device_fp_atomic_ext_flags_t), ## [out] Capabilities for half-precision floating-point atomic operations
|
|
("fp32Flags", ze_device_fp_atomic_ext_flags_t), ## [out] Capabilities for single-precision floating-point atomic
|
|
## operations
|
|
("fp64Flags", ze_device_fp_atomic_ext_flags_t) ## [out] Capabilities for double-precision floating-point atomic
|
|
## operations
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Global Offset Extension Name
|
|
ZE_GLOBAL_OFFSET_EXP_NAME = "ZE_experimental_global_offset"
|
|
|
|
###############################################################################
|
|
## @brief Global Offset Extension Version(s)
|
|
class ze_global_offset_exp_version_v(IntEnum):
|
|
_1_0 = ZE_MAKE_VERSION( 1, 0 ) ## version 1.0
|
|
CURRENT = ZE_MAKE_VERSION( 1, 0 ) ## latest known version
|
|
|
|
class ze_global_offset_exp_version_t(c_int):
|
|
def __str__(self):
|
|
return str(ze_global_offset_exp_version_v(self.value))
|
|
|
|
|
|
###############################################################################
|
|
## @brief Relaxed Allocation Limits Extension Name
|
|
ZE_RELAXED_ALLOCATION_LIMITS_EXP_NAME = "ZE_experimental_relaxed_allocation_limits"
|
|
|
|
###############################################################################
|
|
## @brief Relaxed Allocation Limits Extension Version(s)
|
|
class ze_relaxed_allocation_limits_exp_version_v(IntEnum):
|
|
_1_0 = ZE_MAKE_VERSION( 1, 0 ) ## version 1.0
|
|
CURRENT = ZE_MAKE_VERSION( 1, 0 ) ## latest known version
|
|
|
|
class ze_relaxed_allocation_limits_exp_version_t(c_int):
|
|
def __str__(self):
|
|
return str(ze_relaxed_allocation_limits_exp_version_v(self.value))
|
|
|
|
|
|
###############################################################################
|
|
## @brief Supported relaxed memory allocation flags
|
|
class ze_relaxed_allocation_limits_exp_flags_v(IntEnum):
|
|
MAX_SIZE = ZE_BIT(0) ## Allocation size may exceed the `maxMemAllocSize` member of
|
|
## ::ze_device_properties_t.
|
|
|
|
class ze_relaxed_allocation_limits_exp_flags_t(c_int):
|
|
def __str__(self):
|
|
return hex(self.value)
|
|
|
|
|
|
###############################################################################
|
|
## @brief Relaxed limits memory allocation descriptor
|
|
##
|
|
## @details
|
|
## - This structure may be passed to ::zeMemAllocShared or
|
|
## ::zeMemAllocDevice, via the `pNext` member of
|
|
## ::ze_device_mem_alloc_desc_t.
|
|
## - This structure may also be passed to ::zeMemAllocHost, via the `pNext`
|
|
## member of ::ze_host_mem_alloc_desc_t.
|
|
class ze_relaxed_allocation_limits_exp_desc_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("flags", ze_relaxed_allocation_limits_exp_flags_t) ## [in] flags specifying allocation limits to relax.
|
|
## must be 0 (default) or a valid combination of ::ze_relaxed_allocation_limits_exp_flag_t;
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Get Kernel Binary Extension Name
|
|
ZE_GET_KERNEL_BINARY_EXP_NAME = "ZE_extension_kernel_binary_exp"
|
|
|
|
###############################################################################
|
|
## @brief Get Kernel Binary Extension Version(s)
|
|
class ze_kernel_get_binary_exp_version_v(IntEnum):
|
|
_1_0 = ZE_MAKE_VERSION( 1, 0 ) ## version 1.0
|
|
CURRENT = ZE_MAKE_VERSION( 1, 0 ) ## latest known version
|
|
|
|
class ze_kernel_get_binary_exp_version_t(c_int):
|
|
def __str__(self):
|
|
return str(ze_kernel_get_binary_exp_version_v(self.value))
|
|
|
|
|
|
###############################################################################
|
|
## @brief Driver Direct Device Interface (DDI) Handles Extension Name
|
|
ZE_DRIVER_DDI_HANDLES_EXT_NAME = "ZE_extension_driver_ddi_handles"
|
|
|
|
###############################################################################
|
|
## @brief Driver Direct Device Interface (DDI) Handles Extension Version(s)
|
|
class ze_driver_ddi_handles_ext_version_v(IntEnum):
|
|
_1_0 = ZE_MAKE_VERSION( 1, 0 ) ## version 1.0
|
|
CURRENT = ZE_MAKE_VERSION( 1, 0 ) ## latest known version
|
|
|
|
class ze_driver_ddi_handles_ext_version_t(c_int):
|
|
def __str__(self):
|
|
return str(ze_driver_ddi_handles_ext_version_v(self.value))
|
|
|
|
|
|
###############################################################################
|
|
## @brief Driver Direct Device Interface (DDI) Handle Extension Flags
|
|
class ze_driver_ddi_handle_ext_flags_v(IntEnum):
|
|
DDI_HANDLE_EXT_SUPPORTED = ZE_BIT(0) ## Driver Supports DDI Handles Extension
|
|
|
|
class ze_driver_ddi_handle_ext_flags_t(c_int):
|
|
def __str__(self):
|
|
return hex(self.value)
|
|
|
|
|
|
###############################################################################
|
|
## @brief Driver DDI Handles properties queried using ::zeDriverGetProperties
|
|
##
|
|
## @details
|
|
## - This structure may be returned from ::zeDriverGetProperties, via the
|
|
## `pNext` member of ::ze_driver_properties_t.
|
|
class ze_driver_ddi_handles_ext_properties_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in,out][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("flags", ze_driver_ddi_handle_ext_flags_t) ## [out] 0 (none) or a valid combination of ::ze_driver_ddi_handle_ext_flags_t
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief External Semaphores Extension Name
|
|
ZE_EXTERNAL_SEMAPHORES_EXTENSION_NAME = "ZE_extension_external_semaphores"
|
|
|
|
###############################################################################
|
|
## @brief External Semaphores Extension Version
|
|
class ze_external_semaphore_ext_version_v(IntEnum):
|
|
_1_0 = ZE_MAKE_VERSION( 1, 0 ) ## version 1.0
|
|
CURRENT = ZE_MAKE_VERSION( 1, 0 ) ## latest known version
|
|
|
|
class ze_external_semaphore_ext_version_t(c_int):
|
|
def __str__(self):
|
|
return str(ze_external_semaphore_ext_version_v(self.value))
|
|
|
|
|
|
###############################################################################
|
|
## @brief Handle of external semaphore object
|
|
class ze_external_semaphore_ext_handle_t(c_void_p):
|
|
pass
|
|
|
|
###############################################################################
|
|
## @brief External Semaphores Type Flags
|
|
class ze_external_semaphore_ext_flags_v(IntEnum):
|
|
OPAQUE_FD = ZE_BIT(0) ## Semaphore is an Linux opaque file descriptor
|
|
OPAQUE_WIN32 = ZE_BIT(1) ## Semaphore is an opaque Win32 handle for monitored fence
|
|
OPAQUE_WIN32_KMT = ZE_BIT(2) ## Semaphore is an opaque Win32 KMT handle for monitored fence
|
|
D3D12_FENCE = ZE_BIT(3) ## Semaphore is a D3D12 fence
|
|
D3D11_FENCE = ZE_BIT(4) ## Semaphore is a D3D11 fence
|
|
KEYED_MUTEX = ZE_BIT(5) ## Semaphore is a keyed mutex for Win32
|
|
KEYED_MUTEX_KMT = ZE_BIT(6) ## Semaphore is a keyed mutex for Win32 KMT
|
|
VK_TIMELINE_SEMAPHORE_FD = ZE_BIT(7) ## Semaphore is a Vulkan Timeline semaphore for Linux
|
|
VK_TIMELINE_SEMAPHORE_WIN32 = ZE_BIT(8) ## Semaphore is a Vulkan Timeline semaphore for Win32
|
|
|
|
class ze_external_semaphore_ext_flags_t(c_int):
|
|
def __str__(self):
|
|
return hex(self.value)
|
|
|
|
|
|
###############################################################################
|
|
## @brief External Semaphore Descriptor
|
|
class ze_external_semaphore_ext_desc_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("flags", ze_external_semaphore_ext_flags_t) ## [in] The flags describing the type of the semaphore.
|
|
## must be 0 (default) or a valid combination of ::ze_external_semaphore_ext_flag_t.
|
|
## When importing a semaphore, pNext should be pointing to one of the
|
|
## following structures: ::ze_external_semaphore_win32_ext_desc_t or ::ze_external_semaphore_fd_ext_desc_t.
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief External Semaphore Win32 Descriptor
|
|
class ze_external_semaphore_win32_ext_desc_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("handle", c_void_p), ## [in] Win32 handle of the semaphore.
|
|
## Must be a valid Win32 handle.
|
|
("name", c_char_p) ## [in] Name of the semaphore.
|
|
## Must be a valid null-terminated string.
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief External Semaphore FD Descriptor
|
|
class ze_external_semaphore_fd_ext_desc_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("fd", c_int) ## [in] File descriptor of the semaphore.
|
|
## Must be a valid file descriptor.
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief External Semaphore Signal parameters
|
|
class ze_external_semaphore_signal_params_ext_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("value", c_ulonglong) ## [in] [optional] Value to signal.
|
|
## Specified by user as an expected value with some of semaphore types,
|
|
## such as ::ZE_EXTERNAL_SEMAPHORE_EXT_FLAG_D3D12_FENCE.
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief External Semaphore Wait parameters
|
|
class ze_external_semaphore_wait_params_ext_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("value", c_ulonglong) ## [in] [optional] Value to wait for.
|
|
## Specified by user as an expected value with some of semaphore types,
|
|
## such as ::ZE_EXTERNAL_SEMAPHORE_EXT_FLAG_D3D12_FENCE.
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Cache_Reservation Extension Name
|
|
ZE_CACHE_RESERVATION_EXT_NAME = "ZE_extension_cache_reservation"
|
|
|
|
###############################################################################
|
|
## @brief Cache_Reservation Extension Version(s)
|
|
class ze_cache_reservation_ext_version_v(IntEnum):
|
|
_1_0 = ZE_MAKE_VERSION( 1, 0 ) ## version 1.0
|
|
CURRENT = ZE_MAKE_VERSION( 1, 0 ) ## latest known version
|
|
|
|
class ze_cache_reservation_ext_version_t(c_int):
|
|
def __str__(self):
|
|
return str(ze_cache_reservation_ext_version_v(self.value))
|
|
|
|
|
|
###############################################################################
|
|
## @brief Cache Reservation Region
|
|
class ze_cache_ext_region_v(IntEnum):
|
|
ZE_CACHE_REGION_DEFAULT = 0 ## [DEPRECATED] utilize driver default scheme. Use
|
|
## ::ZE_CACHE_EXT_REGION_DEFAULT.
|
|
ZE_CACHE_RESERVE_REGION = 1 ## [DEPRECATED] utilize reserved region. Use
|
|
## ::ZE_CACHE_EXT_REGION_RESERVED.
|
|
ZE_CACHE_NON_RESERVED_REGION = 2 ## [DEPRECATED] utilize non-reserverd region. Use
|
|
## ::ZE_CACHE_EXT_REGION_NON_RESERVED.
|
|
DEFAULT = 0 ## utilize driver default scheme
|
|
RESERVED = 1 ## utilize reserved region
|
|
NON_RESERVED = 2 ## utilize non-reserverd region
|
|
|
|
class ze_cache_ext_region_t(c_int):
|
|
def __str__(self):
|
|
return str(ze_cache_ext_region_v(self.value))
|
|
|
|
|
|
###############################################################################
|
|
## @brief CacheReservation structure
|
|
##
|
|
## @details
|
|
## - This structure must be passed to ::zeDeviceGetCacheProperties via the
|
|
## `pNext` member of ::ze_device_cache_properties_t
|
|
## - Used for determining the max cache reservation allowed on device. Size
|
|
## of zero means no reservation available.
|
|
class ze_cache_reservation_ext_desc_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("maxCacheReservationSize", c_size_t) ## [out] max cache reservation size
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Event Query Timestamps Extension Name
|
|
ZE_EVENT_QUERY_TIMESTAMPS_EXP_NAME = "ZE_experimental_event_query_timestamps"
|
|
|
|
###############################################################################
|
|
## @brief Event Query Timestamps Extension Version(s)
|
|
class ze_event_query_timestamps_exp_version_v(IntEnum):
|
|
_1_0 = ZE_MAKE_VERSION( 1, 0 ) ## version 1.0
|
|
CURRENT = ZE_MAKE_VERSION( 1, 0 ) ## latest known version
|
|
|
|
class ze_event_query_timestamps_exp_version_t(c_int):
|
|
def __str__(self):
|
|
return str(ze_event_query_timestamps_exp_version_v(self.value))
|
|
|
|
|
|
###############################################################################
|
|
## @brief Image Memory Properties Extension Name
|
|
ZE_IMAGE_MEMORY_PROPERTIES_EXP_NAME = "ZE_experimental_image_memory_properties"
|
|
|
|
###############################################################################
|
|
## @brief Image Memory Properties Extension Version(s)
|
|
class ze_image_memory_properties_exp_version_v(IntEnum):
|
|
_1_0 = ZE_MAKE_VERSION( 1, 0 ) ## version 1.0
|
|
CURRENT = ZE_MAKE_VERSION( 1, 0 ) ## latest known version
|
|
|
|
class ze_image_memory_properties_exp_version_t(c_int):
|
|
def __str__(self):
|
|
return str(ze_image_memory_properties_exp_version_v(self.value))
|
|
|
|
|
|
###############################################################################
|
|
## @brief Image memory properties
|
|
class ze_image_memory_properties_exp_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("size", c_ulonglong), ## [out] size of image allocation in bytes.
|
|
("rowPitch", c_ulonglong), ## [out] size of image row in bytes.
|
|
("slicePitch", c_ulonglong) ## [out] size of image slice in bytes.
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Image View Extension Name
|
|
ZE_IMAGE_VIEW_EXT_NAME = "ZE_extension_image_view"
|
|
|
|
###############################################################################
|
|
## @brief Image View Extension Version(s)
|
|
class ze_image_view_ext_version_v(IntEnum):
|
|
_1_0 = ZE_MAKE_VERSION( 1, 0 ) ## version 1.0
|
|
CURRENT = ZE_MAKE_VERSION( 1, 0 ) ## latest known version
|
|
|
|
class ze_image_view_ext_version_t(c_int):
|
|
def __str__(self):
|
|
return str(ze_image_view_ext_version_v(self.value))
|
|
|
|
|
|
###############################################################################
|
|
## @brief Image View Extension Name
|
|
ZE_IMAGE_VIEW_EXP_NAME = "ZE_experimental_image_view"
|
|
|
|
###############################################################################
|
|
## @brief Image View Extension Version(s)
|
|
class ze_image_view_exp_version_v(IntEnum):
|
|
_1_0 = ZE_MAKE_VERSION( 1, 0 ) ## version 1.0
|
|
CURRENT = ZE_MAKE_VERSION( 1, 0 ) ## latest known version
|
|
|
|
class ze_image_view_exp_version_t(c_int):
|
|
def __str__(self):
|
|
return str(ze_image_view_exp_version_v(self.value))
|
|
|
|
|
|
###############################################################################
|
|
## @brief Image View Planar Extension Name
|
|
ZE_IMAGE_VIEW_PLANAR_EXT_NAME = "ZE_extension_image_view_planar"
|
|
|
|
###############################################################################
|
|
## @brief Image View Planar Extension Version(s)
|
|
class ze_image_view_planar_ext_version_v(IntEnum):
|
|
_1_0 = ZE_MAKE_VERSION( 1, 0 ) ## version 1.0
|
|
CURRENT = ZE_MAKE_VERSION( 1, 0 ) ## latest known version
|
|
|
|
class ze_image_view_planar_ext_version_t(c_int):
|
|
def __str__(self):
|
|
return str(ze_image_view_planar_ext_version_v(self.value))
|
|
|
|
|
|
###############################################################################
|
|
## @brief Image view planar descriptor
|
|
class ze_image_view_planar_ext_desc_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("planeIndex", c_ulong) ## [in] the 0-based plane index (e.g. NV12 is 0 = Y plane, 1 UV plane)
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Image View Planar Extension Name
|
|
ZE_IMAGE_VIEW_PLANAR_EXP_NAME = "ZE_experimental_image_view_planar"
|
|
|
|
###############################################################################
|
|
## @brief Image View Planar Extension Version(s)
|
|
class ze_image_view_planar_exp_version_v(IntEnum):
|
|
_1_0 = ZE_MAKE_VERSION( 1, 0 ) ## version 1.0
|
|
CURRENT = ZE_MAKE_VERSION( 1, 0 ) ## latest known version
|
|
|
|
class ze_image_view_planar_exp_version_t(c_int):
|
|
def __str__(self):
|
|
return str(ze_image_view_planar_exp_version_v(self.value))
|
|
|
|
|
|
###############################################################################
|
|
## @brief Image view planar descriptor
|
|
class ze_image_view_planar_exp_desc_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("planeIndex", c_ulong) ## [in] the 0-based plane index (e.g. NV12 is 0 = Y plane, 1 UV plane)
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Kernel Scheduling Hints Extension Name
|
|
ZE_KERNEL_SCHEDULING_HINTS_EXP_NAME = "ZE_experimental_scheduling_hints"
|
|
|
|
###############################################################################
|
|
## @brief Kernel Scheduling Hints Extension Version(s)
|
|
class ze_scheduling_hints_exp_version_v(IntEnum):
|
|
_1_0 = ZE_MAKE_VERSION( 1, 0 ) ## version 1.0
|
|
CURRENT = ZE_MAKE_VERSION( 1, 0 ) ## latest known version
|
|
|
|
class ze_scheduling_hints_exp_version_t(c_int):
|
|
def __str__(self):
|
|
return str(ze_scheduling_hints_exp_version_v(self.value))
|
|
|
|
|
|
###############################################################################
|
|
## @brief Supported kernel scheduling hint flags
|
|
class ze_scheduling_hint_exp_flags_v(IntEnum):
|
|
OLDEST_FIRST = ZE_BIT(0) ## Hint that the kernel prefers oldest-first scheduling
|
|
ROUND_ROBIN = ZE_BIT(1) ## Hint that the kernel prefers round-robin scheduling
|
|
STALL_BASED_ROUND_ROBIN = ZE_BIT(2) ## Hint that the kernel prefers stall-based round-robin scheduling
|
|
|
|
class ze_scheduling_hint_exp_flags_t(c_int):
|
|
def __str__(self):
|
|
return hex(self.value)
|
|
|
|
|
|
###############################################################################
|
|
## @brief Device kernel scheduling hint properties queried using
|
|
## ::zeDeviceGetModuleProperties
|
|
##
|
|
## @details
|
|
## - This structure may be returned from ::zeDeviceGetModuleProperties, via
|
|
## the `pNext` member of ::ze_device_module_properties_t.
|
|
class ze_scheduling_hint_exp_properties_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in,out][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("schedulingHintFlags", ze_scheduling_hint_exp_flags_t) ## [out] Supported kernel scheduling hints.
|
|
## May be 0 (none) or a valid combination of ::ze_scheduling_hint_exp_flag_t.
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Kernel scheduling hint descriptor
|
|
##
|
|
## @details
|
|
## - This structure may be passed to ::zeKernelSchedulingHintExp.
|
|
class ze_scheduling_hint_exp_desc_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("flags", ze_scheduling_hint_exp_flags_t) ## [in] flags specifying kernel scheduling hints.
|
|
## must be 0 (default) or a valid combination of ::ze_scheduling_hint_exp_flag_t.
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Linkonce ODR Extension Name
|
|
ZE_LINKONCE_ODR_EXT_NAME = "ZE_extension_linkonce_odr"
|
|
|
|
###############################################################################
|
|
## @brief Linkonce ODR Extension Version(s)
|
|
class ze_linkonce_odr_ext_version_v(IntEnum):
|
|
_1_0 = ZE_MAKE_VERSION( 1, 0 ) ## version 1.0
|
|
CURRENT = ZE_MAKE_VERSION( 1, 0 ) ## latest known version
|
|
|
|
class ze_linkonce_odr_ext_version_t(c_int):
|
|
def __str__(self):
|
|
return str(ze_linkonce_odr_ext_version_v(self.value))
|
|
|
|
|
|
###############################################################################
|
|
## @brief Power Saving Hint Extension Name
|
|
ZE_CONTEXT_POWER_SAVING_HINT_EXP_NAME = "ZE_experimental_power_saving_hint"
|
|
|
|
###############################################################################
|
|
## @brief Power Saving Hint Extension Version(s)
|
|
class ze_power_saving_hint_exp_version_v(IntEnum):
|
|
_1_0 = ZE_MAKE_VERSION( 1, 0 ) ## version 1.0
|
|
CURRENT = ZE_MAKE_VERSION( 1, 0 ) ## latest known version
|
|
|
|
class ze_power_saving_hint_exp_version_t(c_int):
|
|
def __str__(self):
|
|
return str(ze_power_saving_hint_exp_version_v(self.value))
|
|
|
|
|
|
###############################################################################
|
|
## @brief Supported device types
|
|
class ze_power_saving_hint_type_v(IntEnum):
|
|
MIN = 0 ## Minumum power savings. The device will make no attempt to save power
|
|
## while executing work submitted to this context.
|
|
MAX = 100 ## Maximum power savings. The device will do everything to bring power to
|
|
## a minimum while executing work submitted to this context.
|
|
|
|
class ze_power_saving_hint_type_t(c_int):
|
|
def __str__(self):
|
|
return str(ze_power_saving_hint_type_v(self.value))
|
|
|
|
|
|
###############################################################################
|
|
## @brief Extended context descriptor containing power saving hint.
|
|
class ze_context_power_saving_hint_exp_desc_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("hint", c_ulong) ## [in] power saving hint (default value = 0). This is value from [0,100]
|
|
## and can use pre-defined settings from ::ze_power_saving_hint_type_t.
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Subgroups Extension Name
|
|
ZE_SUBGROUPS_EXT_NAME = "ZE_extension_subgroups"
|
|
|
|
###############################################################################
|
|
## @brief Subgroups Extension Version(s)
|
|
class ze_subgroup_ext_version_v(IntEnum):
|
|
_1_0 = ZE_MAKE_VERSION( 1, 0 ) ## version 1.0
|
|
CURRENT = ZE_MAKE_VERSION( 1, 0 ) ## latest known version
|
|
|
|
class ze_subgroup_ext_version_t(c_int):
|
|
def __str__(self):
|
|
return str(ze_subgroup_ext_version_v(self.value))
|
|
|
|
|
|
###############################################################################
|
|
## @brief EU Count Extension Name
|
|
ZE_EU_COUNT_EXT_NAME = "ZE_extension_eu_count"
|
|
|
|
###############################################################################
|
|
## @brief EU Count Extension Version(s)
|
|
class ze_eu_count_ext_version_v(IntEnum):
|
|
_1_0 = ZE_MAKE_VERSION( 1, 0 ) ## version 1.0
|
|
CURRENT = ZE_MAKE_VERSION( 1, 0 ) ## latest known version
|
|
|
|
class ze_eu_count_ext_version_t(c_int):
|
|
def __str__(self):
|
|
return str(ze_eu_count_ext_version_v(self.value))
|
|
|
|
|
|
###############################################################################
|
|
## @brief EU count queried using ::zeDeviceGetProperties
|
|
##
|
|
## @details
|
|
## - This structure may be returned from ::zeDeviceGetProperties via the
|
|
## `pNext` member of ::ze_device_properties_t.
|
|
## - Used for determining the total number of EUs available on device.
|
|
class ze_eu_count_ext_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("numTotalEUs", c_ulong) ## [out] Total number of EUs available
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief PCI Properties Extension Name
|
|
ZE_PCI_PROPERTIES_EXT_NAME = "ZE_extension_pci_properties"
|
|
|
|
###############################################################################
|
|
## @brief PCI Properties Extension Version(s)
|
|
class ze_pci_properties_ext_version_v(IntEnum):
|
|
_1_0 = ZE_MAKE_VERSION( 1, 0 ) ## version 1.0
|
|
CURRENT = ZE_MAKE_VERSION( 1, 0 ) ## latest known version
|
|
|
|
class ze_pci_properties_ext_version_t(c_int):
|
|
def __str__(self):
|
|
return str(ze_pci_properties_ext_version_v(self.value))
|
|
|
|
|
|
###############################################################################
|
|
## @brief Device PCI address
|
|
##
|
|
## @details
|
|
## - This structure may be passed to ::zeDevicePciGetPropertiesExt as an
|
|
## attribute of ::ze_pci_ext_properties_t.
|
|
## - A PCI BDF address is the bus:device:function address of the device and
|
|
## is useful for locating the device in the PCI switch fabric.
|
|
class ze_pci_address_ext_t(Structure):
|
|
_fields_ = [
|
|
("domain", c_ulong), ## [out] PCI domain number
|
|
("bus", c_ulong), ## [out] PCI BDF bus number
|
|
("device", c_ulong), ## [out] PCI BDF device number
|
|
("function", c_ulong) ## [out] PCI BDF function number
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Device PCI speed
|
|
class ze_pci_speed_ext_t(Structure):
|
|
_fields_ = [
|
|
("genVersion", c_int32_t), ## [out] The link generation. A value of -1 means that this property is
|
|
## unknown.
|
|
("width", c_int32_t), ## [out] The number of lanes. A value of -1 means that this property is
|
|
## unknown.
|
|
("maxBandwidth", c_int64_t) ## [out] The theoretical maximum bandwidth in bytes/sec (sum of all
|
|
## lanes). A value of -1 means that this property is unknown.
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Static PCI properties
|
|
class ze_pci_ext_properties_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in,out][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("address", ze_pci_address_ext_t), ## [out] The BDF address
|
|
("maxSpeed", ze_pci_speed_ext_t) ## [out] Fastest port configuration supported by the device (sum of all
|
|
## lanes)
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief sRGB Extension Name
|
|
ZE_SRGB_EXT_NAME = "ZE_extension_srgb"
|
|
|
|
###############################################################################
|
|
## @brief sRGB Extension Version(s)
|
|
class ze_srgb_ext_version_v(IntEnum):
|
|
_1_0 = ZE_MAKE_VERSION( 1, 0 ) ## version 1.0
|
|
CURRENT = ZE_MAKE_VERSION( 1, 0 ) ## latest known version
|
|
|
|
class ze_srgb_ext_version_t(c_int):
|
|
def __str__(self):
|
|
return str(ze_srgb_ext_version_v(self.value))
|
|
|
|
|
|
###############################################################################
|
|
## @brief sRGB image descriptor
|
|
##
|
|
## @details
|
|
## - This structure may be passed to ::zeImageCreate via the `pNext` member
|
|
## of ::ze_image_desc_t
|
|
## - Used for specifying that the image is in sRGB format.
|
|
class ze_srgb_ext_desc_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("sRGB", ze_bool_t) ## [in] Is sRGB.
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Image Copy Extension Name
|
|
ZE_IMAGE_COPY_EXT_NAME = "ZE_extension_image_copy"
|
|
|
|
###############################################################################
|
|
## @brief Image Copy Extension Version(s)
|
|
class ze_image_copy_ext_version_v(IntEnum):
|
|
_1_0 = ZE_MAKE_VERSION( 1, 0 ) ## version 1.0
|
|
CURRENT = ZE_MAKE_VERSION( 1, 0 ) ## latest known version
|
|
|
|
class ze_image_copy_ext_version_t(c_int):
|
|
def __str__(self):
|
|
return str(ze_image_copy_ext_version_v(self.value))
|
|
|
|
|
|
###############################################################################
|
|
## @brief Image Query Allocation Properties Extension Name
|
|
ZE_IMAGE_QUERY_ALLOC_PROPERTIES_EXT_NAME = "ZE_extension_image_query_alloc_properties"
|
|
|
|
###############################################################################
|
|
## @brief Image Query Allocation Properties Extension Version(s)
|
|
class ze_image_query_alloc_properties_ext_version_v(IntEnum):
|
|
_1_0 = ZE_MAKE_VERSION( 1, 0 ) ## version 1.0
|
|
CURRENT = ZE_MAKE_VERSION( 1, 0 ) ## latest known version
|
|
|
|
class ze_image_query_alloc_properties_ext_version_t(c_int):
|
|
def __str__(self):
|
|
return str(ze_image_query_alloc_properties_ext_version_v(self.value))
|
|
|
|
|
|
###############################################################################
|
|
## @brief Image allocation properties queried using
|
|
## ::zeImageGetAllocPropertiesExt
|
|
class ze_image_allocation_ext_properties_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in,out][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("id", c_ulonglong) ## [out] identifier for this allocation
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Linkage Inspection Extension Name
|
|
ZE_LINKAGE_INSPECTION_EXT_NAME = "ZE_extension_linkage_inspection"
|
|
|
|
###############################################################################
|
|
## @brief Linkage Inspection Extension Version(s)
|
|
class ze_linkage_inspection_ext_version_v(IntEnum):
|
|
_1_0 = ZE_MAKE_VERSION( 1, 0 ) ## version 1.0
|
|
CURRENT = ZE_MAKE_VERSION( 1, 0 ) ## latest known version
|
|
|
|
class ze_linkage_inspection_ext_version_t(c_int):
|
|
def __str__(self):
|
|
return str(ze_linkage_inspection_ext_version_v(self.value))
|
|
|
|
|
|
###############################################################################
|
|
## @brief Supported module linkage inspection flags
|
|
class ze_linkage_inspection_ext_flags_v(IntEnum):
|
|
IMPORTS = ZE_BIT(0) ## List all imports of modules
|
|
UNRESOLVABLE_IMPORTS = ZE_BIT(1) ## List all imports of modules that do not have a corresponding export
|
|
EXPORTS = ZE_BIT(2) ## List all exports of modules
|
|
|
|
class ze_linkage_inspection_ext_flags_t(c_int):
|
|
def __str__(self):
|
|
return hex(self.value)
|
|
|
|
|
|
###############################################################################
|
|
## @brief Module linkage inspection descriptor
|
|
##
|
|
## @details
|
|
## - This structure may be passed to ::zeModuleInspectLinkageExt.
|
|
class ze_linkage_inspection_ext_desc_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("flags", ze_linkage_inspection_ext_flags_t) ## [in] flags specifying module linkage inspection.
|
|
## must be 0 (default) or a valid combination of ::ze_linkage_inspection_ext_flag_t.
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Memory Compression Hints Extension Name
|
|
ZE_MEMORY_COMPRESSION_HINTS_EXT_NAME = "ZE_extension_memory_compression_hints"
|
|
|
|
###############################################################################
|
|
## @brief Memory Compression Hints Extension Version(s)
|
|
class ze_memory_compression_hints_ext_version_v(IntEnum):
|
|
_1_0 = ZE_MAKE_VERSION( 1, 0 ) ## version 1.0
|
|
CURRENT = ZE_MAKE_VERSION( 1, 0 ) ## latest known version
|
|
|
|
class ze_memory_compression_hints_ext_version_t(c_int):
|
|
def __str__(self):
|
|
return str(ze_memory_compression_hints_ext_version_v(self.value))
|
|
|
|
|
|
###############################################################################
|
|
## @brief Supported memory compression hints flags
|
|
class ze_memory_compression_hints_ext_flags_v(IntEnum):
|
|
COMPRESSED = ZE_BIT(0) ## Hint Driver implementation to make allocation compressible
|
|
UNCOMPRESSED = ZE_BIT(1) ## Hint Driver implementation to make allocation not compressible
|
|
|
|
class ze_memory_compression_hints_ext_flags_t(c_int):
|
|
def __str__(self):
|
|
return hex(self.value)
|
|
|
|
|
|
###############################################################################
|
|
## @brief Compression hints memory allocation descriptor
|
|
##
|
|
## @details
|
|
## - This structure may be passed to ::zeMemAllocShared or
|
|
## ::zeMemAllocDevice, via the `pNext` member of
|
|
## ::ze_device_mem_alloc_desc_t.
|
|
## - This structure may be passed to ::zeMemAllocHost, via the `pNext`
|
|
## member of ::ze_host_mem_alloc_desc_t.
|
|
## - This structure may be passed to ::zeImageCreate, via the `pNext`
|
|
## member of ::ze_image_desc_t.
|
|
class ze_memory_compression_hints_ext_desc_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("flags", ze_memory_compression_hints_ext_flags_t) ## [in] flags specifying if allocation should be compressible or not.
|
|
## Must be set to one of the ::ze_memory_compression_hints_ext_flag_t;
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Memory Free Policies Extension Name
|
|
ZE_MEMORY_FREE_POLICIES_EXT_NAME = "ZE_extension_memory_free_policies"
|
|
|
|
###############################################################################
|
|
## @brief Memory Free Policies Extension Version(s)
|
|
class ze_memory_free_policies_ext_version_v(IntEnum):
|
|
_1_0 = ZE_MAKE_VERSION( 1, 0 ) ## version 1.0
|
|
CURRENT = ZE_MAKE_VERSION( 1, 0 ) ## latest known version
|
|
|
|
class ze_memory_free_policies_ext_version_t(c_int):
|
|
def __str__(self):
|
|
return str(ze_memory_free_policies_ext_version_v(self.value))
|
|
|
|
|
|
###############################################################################
|
|
## @brief Supported memory free policy capability flags
|
|
class ze_driver_memory_free_policy_ext_flags_v(IntEnum):
|
|
BLOCKING_FREE = ZE_BIT(0) ## blocks until all commands using the memory are complete before freeing
|
|
DEFER_FREE = ZE_BIT(1) ## schedules the memory to be freed but does not free immediately
|
|
|
|
class ze_driver_memory_free_policy_ext_flags_t(c_int):
|
|
def __str__(self):
|
|
return hex(self.value)
|
|
|
|
|
|
###############################################################################
|
|
## @brief Driver memory free properties queried using ::zeDriverGetProperties
|
|
##
|
|
## @details
|
|
## - All drivers must support an immediate free policy, which is the
|
|
## default free policy.
|
|
## - This structure may be returned from ::zeDriverGetProperties, via the
|
|
## `pNext` member of ::ze_driver_properties_t.
|
|
class ze_driver_memory_free_ext_properties_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in,out][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("freePolicies", ze_driver_memory_free_policy_ext_flags_t) ## [out] Supported memory free policies.
|
|
## must be 0 or a combination of ::ze_driver_memory_free_policy_ext_flag_t.
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Memory free descriptor with free policy
|
|
class ze_memory_free_ext_desc_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("freePolicy", ze_driver_memory_free_policy_ext_flags_t) ## [in] flags specifying the memory free policy.
|
|
## must be 0 (default) or a supported ::ze_driver_memory_free_policy_ext_flag_t;
|
|
## default behavior is to free immediately.
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Bandwidth Extension Name
|
|
ZE_BANDWIDTH_PROPERTIES_EXP_NAME = "ZE_experimental_bandwidth_properties"
|
|
|
|
###############################################################################
|
|
## @brief P2P Bandwidth Properties
|
|
##
|
|
## @details
|
|
## - This structure may be passed to ::zeDeviceGetP2PProperties by having
|
|
## the pNext member of ::ze_device_p2p_properties_t point at this struct.
|
|
class ze_device_p2p_bandwidth_exp_properties_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in,out][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("logicalBandwidth", c_ulong), ## [out] total logical design bandwidth for all links connecting the two
|
|
## devices
|
|
("physicalBandwidth", c_ulong), ## [out] total physical design bandwidth for all links connecting the two
|
|
## devices
|
|
("bandwidthUnit", ze_bandwidth_unit_t), ## [out] bandwidth unit
|
|
("logicalLatency", c_ulong), ## [out] average logical design latency for all links connecting the two
|
|
## devices
|
|
("physicalLatency", c_ulong), ## [out] average physical design latency for all links connecting the two
|
|
## devices
|
|
("latencyUnit", ze_latency_unit_t) ## [out] latency unit
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Copy Bandwidth Properties
|
|
##
|
|
## @details
|
|
## - This structure may be passed to
|
|
## ::zeDeviceGetCommandQueueGroupProperties by having the pNext member of
|
|
## ::ze_command_queue_group_properties_t point at this struct.
|
|
class ze_copy_bandwidth_exp_properties_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in,out][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("copyBandwidth", c_ulong), ## [out] design bandwidth supported by this engine type for copy
|
|
## operations
|
|
("copyBandwidthUnit", ze_bandwidth_unit_t) ## [out] copy bandwidth unit
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Device Local Identifier (LUID) Extension Name
|
|
ZE_DEVICE_LUID_EXT_NAME = "ZE_extension_device_luid"
|
|
|
|
###############################################################################
|
|
## @brief Device Local Identifier (LUID) Extension Version(s)
|
|
class ze_device_luid_ext_version_v(IntEnum):
|
|
_1_0 = ZE_MAKE_VERSION( 1, 0 ) ## version 1.0
|
|
CURRENT = ZE_MAKE_VERSION( 1, 0 ) ## latest known version
|
|
|
|
class ze_device_luid_ext_version_t(c_int):
|
|
def __str__(self):
|
|
return str(ze_device_luid_ext_version_v(self.value))
|
|
|
|
|
|
###############################################################################
|
|
## @brief Maximum device local identifier (LUID) size in bytes
|
|
ZE_MAX_DEVICE_LUID_SIZE_EXT = 8
|
|
|
|
###############################################################################
|
|
## @brief Device local identifier (LUID)
|
|
class ze_device_luid_ext_t(Structure):
|
|
_fields_ = [
|
|
("id", c_ubyte * ZE_MAX_DEVICE_LUID_SIZE_EXT) ## [out] opaque data representing a device LUID
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Device LUID properties queried using ::zeDeviceGetProperties
|
|
##
|
|
## @details
|
|
## - This structure may be returned from ::zeDeviceGetProperties, via the
|
|
## `pNext` member of ::ze_device_properties_t.
|
|
class ze_device_luid_ext_properties_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in,out][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("luid", ze_device_luid_ext_t), ## [out] locally unique identifier (LUID).
|
|
## The returned LUID can be cast to a LUID object and must be equal to
|
|
## the locally
|
|
## unique identifier of an IDXGIAdapter1 object that corresponds to the device.
|
|
("nodeMask", c_ulong) ## [out] node mask.
|
|
## The returned node mask must contain exactly one bit.
|
|
## If the device is running on an operating system that supports the
|
|
## Direct3D 12 API
|
|
## and the device corresponds to an individual device in a linked device
|
|
## adapter, the
|
|
## returned node mask identifies the Direct3D 12 node corresponding to
|
|
## the device.
|
|
## Otherwise, the returned node mask must be 1.
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Fabric Topology Discovery Extension Name
|
|
ZE_FABRIC_EXP_NAME = "ZE_experimental_fabric"
|
|
|
|
###############################################################################
|
|
## @brief Maximum fabric edge model string size
|
|
ZE_MAX_FABRIC_EDGE_MODEL_EXP_SIZE = 256
|
|
|
|
###############################################################################
|
|
## @brief Fabric Vertex types
|
|
class ze_fabric_vertex_exp_type_v(IntEnum):
|
|
UNKNOWN = 0 ## Fabric vertex type is unknown
|
|
DEVICE = 1 ## Fabric vertex represents a device
|
|
SUBDEVICE = 2 ## Fabric vertex represents a subdevice
|
|
SWITCH = 3 ## Fabric vertex represents a switch
|
|
|
|
class ze_fabric_vertex_exp_type_t(c_int):
|
|
def __str__(self):
|
|
return str(ze_fabric_vertex_exp_type_v(self.value))
|
|
|
|
|
|
###############################################################################
|
|
## @brief Fabric edge duplexity
|
|
class ze_fabric_edge_exp_duplexity_v(IntEnum):
|
|
UNKNOWN = 0 ## Fabric edge duplexity is unknown
|
|
HALF_DUPLEX = 1 ## Fabric edge is half duplex, i.e. stated bandwidth is obtained in only
|
|
## one direction at time
|
|
FULL_DUPLEX = 2 ## Fabric edge is full duplex, i.e. stated bandwidth is supported in both
|
|
## directions simultaneously
|
|
|
|
class ze_fabric_edge_exp_duplexity_t(c_int):
|
|
def __str__(self):
|
|
return str(ze_fabric_edge_exp_duplexity_v(self.value))
|
|
|
|
|
|
###############################################################################
|
|
## @brief PCI address
|
|
##
|
|
## @details
|
|
## - A PCI BDF address is the bus:device:function address of the device and
|
|
## is useful for locating the device in the PCI switch fabric.
|
|
class ze_fabric_vertex_pci_exp_address_t(Structure):
|
|
_fields_ = [
|
|
("domain", c_ulong), ## [out] PCI domain number
|
|
("bus", c_ulong), ## [out] PCI BDF bus number
|
|
("device", c_ulong), ## [out] PCI BDF device number
|
|
("function", c_ulong) ## [out] PCI BDF function number
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Fabric Vertex properties
|
|
class ze_fabric_vertex_exp_properties_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in,out][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("uuid", ze_uuid_t), ## [out] universal unique identifier. If the vertex is co-located with a
|
|
## device/subdevice, then this uuid will match that of the corresponding
|
|
## device/subdevice
|
|
("type", ze_fabric_vertex_exp_type_t), ## [out] does the fabric vertex represent a device, subdevice, or switch?
|
|
("remote", ze_bool_t), ## [out] does the fabric vertex live on the local node or on a remote
|
|
## node?
|
|
("address", ze_fabric_vertex_pci_exp_address_t) ## [out] B/D/F address of fabric vertex & associated device/subdevice if
|
|
## available
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Fabric Edge properties
|
|
class ze_fabric_edge_exp_properties_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in,out][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("uuid", ze_uuid_t), ## [out] universal unique identifier.
|
|
("model", c_char * ZE_MAX_FABRIC_EDGE_MODEL_EXP_SIZE), ## [out] Description of fabric edge technology. Will be set to the string
|
|
## "unkown" if this cannot be determined for this edge
|
|
("bandwidth", c_ulong), ## [out] design bandwidth
|
|
("bandwidthUnit", ze_bandwidth_unit_t), ## [out] bandwidth unit
|
|
("latency", c_ulong), ## [out] design latency
|
|
("latencyUnit", ze_latency_unit_t), ## [out] latency unit
|
|
("duplexity", ze_fabric_edge_exp_duplexity_t) ## [out] Duplexity of the fabric edge
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Device Memory Properties Extension Name
|
|
ZE_DEVICE_MEMORY_PROPERTIES_EXT_NAME = "ZE_extension_device_memory_properties"
|
|
|
|
###############################################################################
|
|
## @brief Device Memory Properties Extension Version(s)
|
|
class ze_device_memory_properties_ext_version_v(IntEnum):
|
|
_1_0 = ZE_MAKE_VERSION( 1, 0 ) ## version 1.0
|
|
CURRENT = ZE_MAKE_VERSION( 1, 0 ) ## latest known version
|
|
|
|
class ze_device_memory_properties_ext_version_t(c_int):
|
|
def __str__(self):
|
|
return str(ze_device_memory_properties_ext_version_v(self.value))
|
|
|
|
|
|
###############################################################################
|
|
## @brief Memory module types
|
|
class ze_device_memory_ext_type_v(IntEnum):
|
|
HBM = 0 ## HBM memory
|
|
HBM2 = 1 ## HBM2 memory
|
|
DDR = 2 ## DDR memory
|
|
DDR2 = 3 ## DDR2 memory
|
|
DDR3 = 4 ## DDR3 memory
|
|
DDR4 = 5 ## DDR4 memory
|
|
DDR5 = 6 ## DDR5 memory
|
|
LPDDR = 7 ## LPDDR memory
|
|
LPDDR3 = 8 ## LPDDR3 memory
|
|
LPDDR4 = 9 ## LPDDR4 memory
|
|
LPDDR5 = 10 ## LPDDR5 memory
|
|
SRAM = 11 ## SRAM memory
|
|
L1 = 12 ## L1 cache
|
|
L3 = 13 ## L3 cache
|
|
GRF = 14 ## Execution unit register file
|
|
SLM = 15 ## Execution unit shared local memory
|
|
GDDR4 = 16 ## GDDR4 memory
|
|
GDDR5 = 17 ## GDDR5 memory
|
|
GDDR5X = 18 ## GDDR5X memory
|
|
GDDR6 = 19 ## GDDR6 memory
|
|
GDDR6X = 20 ## GDDR6X memory
|
|
GDDR7 = 21 ## GDDR7 memory
|
|
|
|
class ze_device_memory_ext_type_t(c_int):
|
|
def __str__(self):
|
|
return str(ze_device_memory_ext_type_v(self.value))
|
|
|
|
|
|
###############################################################################
|
|
## @brief Memory properties
|
|
##
|
|
## @details
|
|
## - This structure may be returned from ::zeDeviceGetMemoryProperties via
|
|
## the `pNext` member of ::ze_device_memory_properties_t
|
|
class ze_device_memory_ext_properties_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in,out][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("type", ze_device_memory_ext_type_t), ## [out] The memory type
|
|
("physicalSize", c_ulonglong), ## [out] Physical memory size in bytes. A value of 0 indicates that this
|
|
## property is not known. However, a call to ::zesMemoryGetState() will
|
|
## correctly return the total size of usable memory.
|
|
("readBandwidth", c_ulong), ## [out] Design bandwidth for reads
|
|
("writeBandwidth", c_ulong), ## [out] Design bandwidth for writes
|
|
("bandwidthUnit", ze_bandwidth_unit_t) ## [out] bandwidth unit
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Bfloat16 Conversions Extension Name
|
|
ZE_BFLOAT16_CONVERSIONS_EXT_NAME = "ZE_extension_bfloat16_conversions"
|
|
|
|
###############################################################################
|
|
## @brief Bfloat16 Conversions Extension Version(s)
|
|
class ze_bfloat16_conversions_ext_version_v(IntEnum):
|
|
_1_0 = ZE_MAKE_VERSION( 1, 0 ) ## version 1.0
|
|
CURRENT = ZE_MAKE_VERSION( 1, 0 ) ## latest known version
|
|
|
|
class ze_bfloat16_conversions_ext_version_t(c_int):
|
|
def __str__(self):
|
|
return str(ze_bfloat16_conversions_ext_version_v(self.value))
|
|
|
|
|
|
###############################################################################
|
|
## @brief Device IP Version Extension Name
|
|
ZE_DEVICE_IP_VERSION_EXT_NAME = "ZE_extension_device_ip_version"
|
|
|
|
###############################################################################
|
|
## @brief Device IP Version Extension Version(s)
|
|
class ze_device_ip_version_version_v(IntEnum):
|
|
_1_0 = ZE_MAKE_VERSION( 1, 0 ) ## version 1.0
|
|
CURRENT = ZE_MAKE_VERSION( 1, 0 ) ## latest known version
|
|
|
|
class ze_device_ip_version_version_t(c_int):
|
|
def __str__(self):
|
|
return str(ze_device_ip_version_version_v(self.value))
|
|
|
|
|
|
###############################################################################
|
|
## @brief Device IP version queried using ::zeDeviceGetProperties
|
|
##
|
|
## @details
|
|
## - This structure may be returned from ::zeDeviceGetProperties via the
|
|
## `pNext` member of ::ze_device_properties_t
|
|
class ze_device_ip_version_ext_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("ipVersion", c_ulong) ## [out] Device IP version. The meaning of the device IP version is
|
|
## implementation-defined, but newer devices should have a higher
|
|
## version than older devices.
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Kernel Max Group Size Properties Extension Name
|
|
ZE_KERNEL_MAX_GROUP_SIZE_PROPERTIES_EXT_NAME = "ZE_extension_kernel_max_group_size_properties"
|
|
|
|
###############################################################################
|
|
## @brief Kernel Max Group Size Properties Extension Version(s)
|
|
class ze_kernel_max_group_size_properties_ext_version_v(IntEnum):
|
|
_1_0 = ZE_MAKE_VERSION( 1, 0 ) ## version 1.0
|
|
CURRENT = ZE_MAKE_VERSION( 1, 0 ) ## latest known version
|
|
|
|
class ze_kernel_max_group_size_properties_ext_version_t(c_int):
|
|
def __str__(self):
|
|
return str(ze_kernel_max_group_size_properties_ext_version_v(self.value))
|
|
|
|
|
|
###############################################################################
|
|
## @brief Additional kernel max group size properties
|
|
##
|
|
## @details
|
|
## - This structure may be passed to ::zeKernelGetProperties, via the
|
|
## `pNext` member of ::ze_kernel_properties_t, to query additional kernel
|
|
## max group size properties.
|
|
class ze_kernel_max_group_size_properties_ext_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in,out][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("maxGroupSize", c_ulong) ## [out] maximum group size that can be used to execute the kernel. This
|
|
## value may be less than or equal to the `maxTotalGroupSize` member of
|
|
## ::ze_device_compute_properties_t.
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief compiler-independent type
|
|
class ze_kernel_max_group_size_ext_properties_t(ze_kernel_max_group_size_properties_ext_t):
|
|
pass
|
|
|
|
###############################################################################
|
|
## @brief Sub-Allocations Properties Extension Name
|
|
ZE_SUB_ALLOCATIONS_EXP_NAME = "ZE_experimental_sub_allocations"
|
|
|
|
###############################################################################
|
|
## @brief Sub-Allocations Properties Extension Version(s)
|
|
class ze_sub_allocations_exp_version_v(IntEnum):
|
|
_1_0 = ZE_MAKE_VERSION( 1, 0 ) ## version 1.0
|
|
CURRENT = ZE_MAKE_VERSION( 1, 0 ) ## latest known version
|
|
|
|
class ze_sub_allocations_exp_version_t(c_int):
|
|
def __str__(self):
|
|
return str(ze_sub_allocations_exp_version_v(self.value))
|
|
|
|
|
|
###############################################################################
|
|
## @brief Properties returned for a sub-allocation
|
|
class ze_sub_allocation_t(Structure):
|
|
_fields_ = [
|
|
("base", c_void_p), ## [in,out][optional] base address of the sub-allocation
|
|
("size", c_size_t) ## [in,out][optional] size of the allocation
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Sub-Allocations Properties
|
|
##
|
|
## @details
|
|
## - This structure may be passed to ::zeMemGetAllocProperties, via the
|
|
## `pNext` member of ::ze_memory_allocation_properties_t.
|
|
class ze_memory_sub_allocations_exp_properties_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in,out][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("pCount", POINTER(c_ulong)), ## [in,out] pointer to the number of sub-allocations.
|
|
## if count is zero, then the driver shall update the value with the
|
|
## total number of sub-allocations on which the allocation has been divided.
|
|
## if count is greater than the number of sub-allocations, then the
|
|
## driver shall update the value with the correct number of sub-allocations.
|
|
("pSubAllocations", POINTER(ze_sub_allocation_t)) ## [in,out][optional][range(0, *pCount)] array of properties for sub-allocations.
|
|
## if count is less than the number of sub-allocations available, then
|
|
## driver shall only retrieve properties for that number of sub-allocations.
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Event Query Kernel Timestamps Extension Name
|
|
ZE_EVENT_QUERY_KERNEL_TIMESTAMPS_EXT_NAME = "ZE_extension_event_query_kernel_timestamps"
|
|
|
|
###############################################################################
|
|
## @brief Event Query Kernel Timestamps Extension Version(s)
|
|
class ze_event_query_kernel_timestamps_ext_version_v(IntEnum):
|
|
_1_0 = ZE_MAKE_VERSION( 1, 0 ) ## version 1.0
|
|
CURRENT = ZE_MAKE_VERSION( 1, 0 ) ## latest known version
|
|
|
|
class ze_event_query_kernel_timestamps_ext_version_t(c_int):
|
|
def __str__(self):
|
|
return str(ze_event_query_kernel_timestamps_ext_version_v(self.value))
|
|
|
|
|
|
###############################################################################
|
|
## @brief Event query kernel timestamps flags
|
|
class ze_event_query_kernel_timestamps_ext_flags_v(IntEnum):
|
|
KERNEL = ZE_BIT(0) ## Kernel timestamp results
|
|
SYNCHRONIZED = ZE_BIT(1) ## Device event timestamps synchronized to the host time domain
|
|
|
|
class ze_event_query_kernel_timestamps_ext_flags_t(c_int):
|
|
def __str__(self):
|
|
return hex(self.value)
|
|
|
|
|
|
###############################################################################
|
|
## @brief Event query kernel timestamps properties
|
|
##
|
|
## @details
|
|
## - This structure may be returned from ::zeDeviceGetProperties, via the
|
|
## `pNext` member of ::ze_device_properties_t.
|
|
class ze_event_query_kernel_timestamps_ext_properties_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in,out][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("flags", ze_event_query_kernel_timestamps_ext_flags_t) ## [out] 0 or some combination of
|
|
## ::ze_event_query_kernel_timestamps_ext_flag_t flags
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Kernel timestamp clock data synchronized to the host time domain
|
|
class ze_synchronized_timestamp_data_ext_t(Structure):
|
|
_fields_ = [
|
|
("kernelStart", c_ulonglong), ## [out] synchronized clock at start of kernel execution
|
|
("kernelEnd", c_ulonglong) ## [out] synchronized clock at end of kernel execution
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Synchronized kernel timestamp result
|
|
class ze_synchronized_timestamp_result_ext_t(Structure):
|
|
_fields_ = [
|
|
("global", ze_synchronized_timestamp_data_ext_t), ## [out] wall-clock data
|
|
("context", ze_synchronized_timestamp_data_ext_t) ## [out] context-active data; only includes clocks while device context
|
|
## was actively executing.
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Event query kernel timestamps results properties
|
|
class ze_event_query_kernel_timestamps_results_ext_properties_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in,out][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("pKernelTimestampsBuffer", POINTER(ze_kernel_timestamp_result_t)), ## [in,out][optional][range(0, *pCount)] pointer to destination buffer of
|
|
## kernel timestamp results
|
|
("pSynchronizedTimestampsBuffer", POINTER(ze_synchronized_timestamp_result_ext_t)) ## [in,out][optional][range(0, *pCount)] pointer to destination buffer of
|
|
## synchronized timestamp results
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Ray Tracing Acceleration Structure Builder Extension Name
|
|
ZE_RTAS_BUILDER_EXP_NAME = "ZE_experimental_rtas_builder"
|
|
|
|
###############################################################################
|
|
## @brief Ray Tracing Acceleration Structure Builder Extension Version(s)
|
|
class ze_rtas_builder_exp_version_v(IntEnum):
|
|
_1_0 = ZE_MAKE_VERSION( 1, 0 ) ## version 1.0
|
|
CURRENT = ZE_MAKE_VERSION( 1, 0 ) ## latest known version
|
|
|
|
class ze_rtas_builder_exp_version_t(c_int):
|
|
def __str__(self):
|
|
return str(ze_rtas_builder_exp_version_v(self.value))
|
|
|
|
|
|
###############################################################################
|
|
## @brief Ray tracing acceleration structure device flags
|
|
class ze_rtas_device_exp_flags_v(IntEnum):
|
|
RESERVED = ZE_BIT(0) ## reserved for future use
|
|
|
|
class ze_rtas_device_exp_flags_t(c_int):
|
|
def __str__(self):
|
|
return hex(self.value)
|
|
|
|
|
|
###############################################################################
|
|
## @brief Ray tracing acceleration structure format
|
|
##
|
|
## @details
|
|
## - This is an opaque ray tracing acceleration structure format
|
|
## identifier.
|
|
class ze_rtas_format_exp_v(IntEnum):
|
|
INVALID = 0 ## Invalid acceleration structure format
|
|
|
|
class ze_rtas_format_exp_t(c_int):
|
|
def __str__(self):
|
|
return str(ze_rtas_format_exp_v(self.value))
|
|
|
|
|
|
###############################################################################
|
|
## @brief Ray tracing acceleration structure builder flags
|
|
class ze_rtas_builder_exp_flags_v(IntEnum):
|
|
RESERVED = ZE_BIT(0) ## Reserved for future use
|
|
|
|
class ze_rtas_builder_exp_flags_t(c_int):
|
|
def __str__(self):
|
|
return hex(self.value)
|
|
|
|
|
|
###############################################################################
|
|
## @brief Ray tracing acceleration structure builder parallel operation flags
|
|
class ze_rtas_parallel_operation_exp_flags_v(IntEnum):
|
|
RESERVED = ZE_BIT(0) ## Reserved for future use
|
|
|
|
class ze_rtas_parallel_operation_exp_flags_t(c_int):
|
|
def __str__(self):
|
|
return hex(self.value)
|
|
|
|
|
|
###############################################################################
|
|
## @brief Ray tracing acceleration structure builder geometry flags
|
|
class ze_rtas_builder_geometry_exp_flags_v(IntEnum):
|
|
NON_OPAQUE = ZE_BIT(0) ## non-opaque geometries invoke an any-hit shader
|
|
|
|
class ze_rtas_builder_geometry_exp_flags_t(c_int):
|
|
def __str__(self):
|
|
return hex(self.value)
|
|
|
|
|
|
###############################################################################
|
|
## @brief Packed ray tracing acceleration structure builder geometry flags (see
|
|
## ::ze_rtas_builder_geometry_exp_flags_t)
|
|
class ze_rtas_builder_packed_geometry_exp_flags_t(c_ubyte):
|
|
pass
|
|
|
|
###############################################################################
|
|
## @brief Ray tracing acceleration structure builder instance flags
|
|
class ze_rtas_builder_instance_exp_flags_v(IntEnum):
|
|
TRIANGLE_CULL_DISABLE = ZE_BIT(0) ## disables culling of front-facing and back-facing triangles
|
|
TRIANGLE_FRONT_COUNTERCLOCKWISE = ZE_BIT(1) ## reverses front and back face of triangles
|
|
TRIANGLE_FORCE_OPAQUE = ZE_BIT(2) ## forces instanced geometry to be opaque, unless ray flag forces it to
|
|
## be non-opaque
|
|
TRIANGLE_FORCE_NON_OPAQUE = ZE_BIT(3) ## forces instanced geometry to be non-opaque, unless ray flag forces it
|
|
## to be opaque
|
|
|
|
class ze_rtas_builder_instance_exp_flags_t(c_int):
|
|
def __str__(self):
|
|
return hex(self.value)
|
|
|
|
|
|
###############################################################################
|
|
## @brief Packed ray tracing acceleration structure builder instance flags (see
|
|
## ::ze_rtas_builder_instance_exp_flags_t)
|
|
class ze_rtas_builder_packed_instance_exp_flags_t(c_ubyte):
|
|
pass
|
|
|
|
###############################################################################
|
|
## @brief Ray tracing acceleration structure builder build operation flags
|
|
##
|
|
## @details
|
|
## - These flags allow the application to tune the acceleration structure
|
|
## build operation.
|
|
## - The acceleration structure builder implementation might choose to use
|
|
## spatial splitting to split large or long primitives into smaller
|
|
## pieces. This may result in any-hit shaders being invoked multiple
|
|
## times for non-opaque primitives, unless
|
|
## ::ZE_RTAS_BUILDER_BUILD_OP_EXP_FLAG_NO_DUPLICATE_ANYHIT_INVOCATION is specified.
|
|
## - Usage of any of these flags may reduce ray tracing performance.
|
|
class ze_rtas_builder_build_op_exp_flags_v(IntEnum):
|
|
COMPACT = ZE_BIT(0) ## build more compact acceleration structure
|
|
NO_DUPLICATE_ANYHIT_INVOCATION = ZE_BIT(1) ## guarantees single any-hit shader invocation per primitive
|
|
|
|
class ze_rtas_builder_build_op_exp_flags_t(c_int):
|
|
def __str__(self):
|
|
return hex(self.value)
|
|
|
|
|
|
###############################################################################
|
|
## @brief Ray tracing acceleration structure builder build quality hint
|
|
##
|
|
## @details
|
|
## - Depending on use case different quality modes for acceleration
|
|
## structure build are supported.
|
|
## - A low-quality build builds an acceleration structure fast, but at the
|
|
## cost of some reduction in ray tracing performance. This mode is
|
|
## recommended for dynamic content, such as animated characters.
|
|
## - A medium-quality build uses a compromise between build quality and ray
|
|
## tracing performance. This mode should be used by default.
|
|
## - Higher ray tracing performance can be achieved by using a high-quality
|
|
## build, but acceleration structure build performance might be
|
|
## significantly reduced.
|
|
class ze_rtas_builder_build_quality_hint_exp_v(IntEnum):
|
|
LOW = 0 ## build low-quality acceleration structure (fast)
|
|
MEDIUM = 1 ## build medium-quality acceleration structure (slower)
|
|
HIGH = 2 ## build high-quality acceleration structure (slow)
|
|
|
|
class ze_rtas_builder_build_quality_hint_exp_t(c_int):
|
|
def __str__(self):
|
|
return str(ze_rtas_builder_build_quality_hint_exp_v(self.value))
|
|
|
|
|
|
###############################################################################
|
|
## @brief Ray tracing acceleration structure builder geometry type
|
|
class ze_rtas_builder_geometry_type_exp_v(IntEnum):
|
|
TRIANGLES = 0 ## triangle mesh geometry type
|
|
QUADS = 1 ## quad mesh geometry type
|
|
PROCEDURAL = 2 ## procedural geometry type
|
|
INSTANCE = 3 ## instance geometry type
|
|
|
|
class ze_rtas_builder_geometry_type_exp_t(c_int):
|
|
def __str__(self):
|
|
return str(ze_rtas_builder_geometry_type_exp_v(self.value))
|
|
|
|
|
|
###############################################################################
|
|
## @brief Packed ray tracing acceleration structure builder geometry type (see
|
|
## ::ze_rtas_builder_geometry_type_exp_t)
|
|
class ze_rtas_builder_packed_geometry_type_exp_t(c_ubyte):
|
|
pass
|
|
|
|
###############################################################################
|
|
## @brief Ray tracing acceleration structure data buffer element format
|
|
##
|
|
## @details
|
|
## - Specifies the format of data buffer elements.
|
|
## - Data buffers may contain instancing transform matrices, triangle/quad
|
|
## vertex indices, etc...
|
|
class ze_rtas_builder_input_data_format_exp_v(IntEnum):
|
|
FLOAT3 = 0 ## 3-component float vector (see ::ze_rtas_float3_exp_t)
|
|
FLOAT3X4_COLUMN_MAJOR = 1 ## 3x4 affine transformation in column-major format (see
|
|
## ::ze_rtas_transform_float3x4_column_major_exp_t)
|
|
FLOAT3X4_ALIGNED_COLUMN_MAJOR = 2 ## 3x4 affine transformation in column-major format (see
|
|
## ::ze_rtas_transform_float3x4_aligned_column_major_exp_t)
|
|
FLOAT3X4_ROW_MAJOR = 3 ## 3x4 affine transformation in row-major format (see
|
|
## ::ze_rtas_transform_float3x4_row_major_exp_t)
|
|
AABB = 4 ## 3-dimensional axis-aligned bounding-box (see ::ze_rtas_aabb_exp_t)
|
|
TRIANGLE_INDICES_UINT32 = 5 ## Unsigned 32-bit triangle indices (see
|
|
## ::ze_rtas_triangle_indices_uint32_exp_t)
|
|
QUAD_INDICES_UINT32 = 6 ## Unsigned 32-bit quad indices (see ::ze_rtas_quad_indices_uint32_exp_t)
|
|
|
|
class ze_rtas_builder_input_data_format_exp_t(c_int):
|
|
def __str__(self):
|
|
return str(ze_rtas_builder_input_data_format_exp_v(self.value))
|
|
|
|
|
|
###############################################################################
|
|
## @brief Packed ray tracing acceleration structure data buffer element format
|
|
## (see ::ze_rtas_builder_input_data_format_exp_t)
|
|
class ze_rtas_builder_packed_input_data_format_exp_t(c_ubyte):
|
|
pass
|
|
|
|
###############################################################################
|
|
## @brief Handle of ray tracing acceleration structure builder object
|
|
class ze_rtas_builder_exp_handle_t(c_void_p):
|
|
pass
|
|
|
|
###############################################################################
|
|
## @brief Handle of ray tracing acceleration structure builder parallel
|
|
## operation object
|
|
class ze_rtas_parallel_operation_exp_handle_t(c_void_p):
|
|
pass
|
|
|
|
###############################################################################
|
|
## @brief Ray tracing acceleration structure builder descriptor
|
|
class ze_rtas_builder_exp_desc_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("builderVersion", ze_rtas_builder_exp_version_t) ## [in] ray tracing acceleration structure builder version
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Ray tracing acceleration structure builder properties
|
|
class ze_rtas_builder_exp_properties_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in,out][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("flags", ze_rtas_builder_exp_flags_t), ## [out] ray tracing acceleration structure builder flags
|
|
("rtasBufferSizeBytesExpected", c_size_t), ## [out] expected size (in bytes) required for acceleration structure buffer
|
|
## - When using an acceleration structure buffer of this size, the
|
|
## build is expected to succeed; however, it is possible that the build
|
|
## may fail with ::ZE_RESULT_EXP_RTAS_BUILD_RETRY
|
|
("rtasBufferSizeBytesMaxRequired", c_size_t), ## [out] worst-case size (in bytes) required for acceleration structure buffer
|
|
## - When using an acceleration structure buffer of this size, the
|
|
## build is guaranteed to not run out of memory.
|
|
("scratchBufferSizeBytes", c_size_t) ## [out] scratch buffer size (in bytes) required for acceleration
|
|
## structure build.
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Ray tracing acceleration structure builder parallel operation
|
|
## properties
|
|
class ze_rtas_parallel_operation_exp_properties_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in,out][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("flags", ze_rtas_parallel_operation_exp_flags_t), ## [out] ray tracing acceleration structure builder parallel operation
|
|
## flags
|
|
("maxConcurrency", c_ulong) ## [out] maximum number of threads that may join the parallel operation
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Ray tracing acceleration structure device properties
|
|
##
|
|
## @details
|
|
## - This structure may be passed to ::zeDeviceGetProperties, via `pNext`
|
|
## member of ::ze_device_properties_t.
|
|
## - The implementation shall populate `format` with a value other than
|
|
## ::ZE_RTAS_FORMAT_EXP_INVALID when the device supports ray tracing.
|
|
class ze_rtas_device_exp_properties_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in,out][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("flags", ze_rtas_device_exp_flags_t), ## [out] ray tracing acceleration structure device flags
|
|
("rtasFormat", ze_rtas_format_exp_t), ## [out] ray tracing acceleration structure format
|
|
("rtasBufferAlignment", c_ulong) ## [out] required alignment of acceleration structure buffer
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief A 3-component vector type
|
|
class ze_rtas_float3_exp_t(Structure):
|
|
_fields_ = [
|
|
("x", c_float), ## [in] x-coordinate of float3 vector
|
|
("y", c_float), ## [in] y-coordinate of float3 vector
|
|
("z", c_float) ## [in] z-coordinate of float3 vector
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief 3x4 affine transformation in column-major layout
|
|
##
|
|
## @details
|
|
## - A 3x4 affine transformation in column major layout, consisting of vectors
|
|
## - vx=(vx_x, vx_y, vx_z),
|
|
## - vy=(vy_x, vy_y, vy_z),
|
|
## - vz=(vz_x, vz_y, vz_z), and
|
|
## - p=(p_x, p_y, p_z)
|
|
## - The transformation transforms a point (x, y, z) to: `x*vx + y*vy +
|
|
## z*vz + p`.
|
|
class ze_rtas_transform_float3x4_column_major_exp_t(Structure):
|
|
_fields_ = [
|
|
("vx_x", c_float), ## [in] element 0 of column 0 of 3x4 matrix
|
|
("vx_y", c_float), ## [in] element 1 of column 0 of 3x4 matrix
|
|
("vx_z", c_float), ## [in] element 2 of column 0 of 3x4 matrix
|
|
("vy_x", c_float), ## [in] element 0 of column 1 of 3x4 matrix
|
|
("vy_y", c_float), ## [in] element 1 of column 1 of 3x4 matrix
|
|
("vy_z", c_float), ## [in] element 2 of column 1 of 3x4 matrix
|
|
("vz_x", c_float), ## [in] element 0 of column 2 of 3x4 matrix
|
|
("vz_y", c_float), ## [in] element 1 of column 2 of 3x4 matrix
|
|
("vz_z", c_float), ## [in] element 2 of column 2 of 3x4 matrix
|
|
("p_x", c_float), ## [in] element 0 of column 3 of 3x4 matrix
|
|
("p_y", c_float), ## [in] element 1 of column 3 of 3x4 matrix
|
|
("p_z", c_float) ## [in] element 2 of column 3 of 3x4 matrix
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief 3x4 affine transformation in column-major layout with aligned column
|
|
## vectors
|
|
##
|
|
## @details
|
|
## - A 3x4 affine transformation in column major layout, consisting of vectors
|
|
## - vx=(vx_x, vx_y, vx_z),
|
|
## - vy=(vy_x, vy_y, vy_z),
|
|
## - vz=(vz_x, vz_y, vz_z), and
|
|
## - p=(p_x, p_y, p_z)
|
|
## - The transformation transforms a point (x, y, z) to: `x*vx + y*vy +
|
|
## z*vz + p`.
|
|
## - The column vectors are aligned to 16-bytes and pad members are
|
|
## ignored.
|
|
class ze_rtas_transform_float3x4_aligned_column_major_exp_t(Structure):
|
|
_fields_ = [
|
|
("vx_x", c_float), ## [in] element 0 of column 0 of 3x4 matrix
|
|
("vx_y", c_float), ## [in] element 1 of column 0 of 3x4 matrix
|
|
("vx_z", c_float), ## [in] element 2 of column 0 of 3x4 matrix
|
|
("pad0", c_float), ## [in] ignored padding
|
|
("vy_x", c_float), ## [in] element 0 of column 1 of 3x4 matrix
|
|
("vy_y", c_float), ## [in] element 1 of column 1 of 3x4 matrix
|
|
("vy_z", c_float), ## [in] element 2 of column 1 of 3x4 matrix
|
|
("pad1", c_float), ## [in] ignored padding
|
|
("vz_x", c_float), ## [in] element 0 of column 2 of 3x4 matrix
|
|
("vz_y", c_float), ## [in] element 1 of column 2 of 3x4 matrix
|
|
("vz_z", c_float), ## [in] element 2 of column 2 of 3x4 matrix
|
|
("pad2", c_float), ## [in] ignored padding
|
|
("p_x", c_float), ## [in] element 0 of column 3 of 3x4 matrix
|
|
("p_y", c_float), ## [in] element 1 of column 3 of 3x4 matrix
|
|
("p_z", c_float), ## [in] element 2 of column 3 of 3x4 matrix
|
|
("pad3", c_float) ## [in] ignored padding
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief 3x4 affine transformation in row-major layout
|
|
##
|
|
## @details
|
|
## - A 3x4 affine transformation in row-major layout, consisting of vectors
|
|
## - vx=(vx_x, vx_y, vx_z),
|
|
## - vy=(vy_x, vy_y, vy_z),
|
|
## - vz=(vz_x, vz_y, vz_z), and
|
|
## - p=(p_x, p_y, p_z)
|
|
## - The transformation transforms a point (x, y, z) to: `x*vx + y*vy +
|
|
## z*vz + p`.
|
|
class ze_rtas_transform_float3x4_row_major_exp_t(Structure):
|
|
_fields_ = [
|
|
("vx_x", c_float), ## [in] element 0 of row 0 of 3x4 matrix
|
|
("vy_x", c_float), ## [in] element 1 of row 0 of 3x4 matrix
|
|
("vz_x", c_float), ## [in] element 2 of row 0 of 3x4 matrix
|
|
("p_x", c_float), ## [in] element 3 of row 0 of 3x4 matrix
|
|
("vx_y", c_float), ## [in] element 0 of row 1 of 3x4 matrix
|
|
("vy_y", c_float), ## [in] element 1 of row 1 of 3x4 matrix
|
|
("vz_y", c_float), ## [in] element 2 of row 1 of 3x4 matrix
|
|
("p_y", c_float), ## [in] element 3 of row 1 of 3x4 matrix
|
|
("vx_z", c_float), ## [in] element 0 of row 2 of 3x4 matrix
|
|
("vy_z", c_float), ## [in] element 1 of row 2 of 3x4 matrix
|
|
("vz_z", c_float), ## [in] element 2 of row 2 of 3x4 matrix
|
|
("p_z", c_float) ## [in] element 3 of row 2 of 3x4 matrix
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief A 3-dimensional axis-aligned bounding-box with lower and upper bounds
|
|
## in each dimension
|
|
class ze_rtas_aabb_exp_t(Structure):
|
|
_fields_ = [
|
|
("lower", ze_rtas_c_float3_exp_t), ## [in] lower bounds of AABB
|
|
("upper", ze_rtas_c_float3_exp_t) ## [in] upper bounds of AABB
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Triangle represented using 3 vertex indices
|
|
##
|
|
## @details
|
|
## - Represents a triangle using 3 vertex indices that index into a vertex
|
|
## array that needs to be provided together with the index array.
|
|
## - The linear barycentric u/v parametrization of the triangle is defined as:
|
|
## - (u=0, v=0) at v0,
|
|
## - (u=1, v=0) at v1, and
|
|
## - (u=0, v=1) at v2
|
|
class ze_rtas_triangle_indices_uint32_exp_t(Structure):
|
|
_fields_ = [
|
|
("v0", c_ulong), ## [in] first index pointing to the first triangle vertex in vertex array
|
|
("v1", c_ulong), ## [in] second index pointing to the second triangle vertex in vertex
|
|
## array
|
|
("v2", c_ulong) ## [in] third index pointing to the third triangle vertex in vertex array
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Quad represented using 4 vertex indices
|
|
##
|
|
## @details
|
|
## - Represents a quad composed of 4 indices that index into a vertex array
|
|
## that needs to be provided together with the index array.
|
|
## - A quad is a triangle pair represented using 4 vertex indices v0, v1,
|
|
## v2, v3.
|
|
## The first triangle is made out of indices v0, v1, v3 and the second triangle
|
|
## from indices v2, v3, v1. The piecewise linear barycentric u/v parametrization
|
|
## of the quad is defined as:
|
|
## - (u=0, v=0) at v0,
|
|
## - (u=1, v=0) at v1,
|
|
## - (u=0, v=1) at v3, and
|
|
## - (u=1, v=1) at v2
|
|
## This is achieved by correcting the u'/v' coordinates of the second
|
|
## triangle by
|
|
## *u = 1-u'* and *v = 1-v'*, yielding a piecewise linear parametrization.
|
|
class ze_rtas_quad_indices_uint32_exp_t(Structure):
|
|
_fields_ = [
|
|
("v0", c_ulong), ## [in] first index pointing to the first quad vertex in vertex array
|
|
("v1", c_ulong), ## [in] second index pointing to the second quad vertex in vertex array
|
|
("v2", c_ulong), ## [in] third index pointing to the third quad vertex in vertex array
|
|
("v3", c_ulong) ## [in] fourth index pointing to the fourth quad vertex in vertex array
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Ray tracing acceleration structure builder geometry info
|
|
class ze_rtas_builder_geometry_info_exp_t(Structure):
|
|
_fields_ = [
|
|
("geometryType", ze_rtas_builder_packed_geometry_type_exp_t) ## [in] geometry type
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Ray tracing acceleration structure builder triangle mesh geometry info
|
|
##
|
|
## @details
|
|
## - The linear barycentric u/v parametrization of the triangle is defined as:
|
|
## - (u=0, v=0) at v0,
|
|
## - (u=1, v=0) at v1, and
|
|
## - (u=0, v=1) at v2
|
|
class ze_rtas_builder_triangles_geometry_info_exp_t(Structure):
|
|
_fields_ = [
|
|
("geometryType", ze_rtas_builder_packed_geometry_type_exp_t), ## [in] geometry type, must be
|
|
## ::ZE_RTAS_BUILDER_GEOMETRY_TYPE_EXP_TRIANGLES
|
|
("geometryFlags", ze_rtas_builder_packed_geometry_exp_flags_t), ## [in] 0 or some combination of ::ze_rtas_builder_geometry_exp_flag_t
|
|
## bits representing the geometry flags for all primitives of this
|
|
## geometry
|
|
("geometryMask", c_ubyte), ## [in] 8-bit geometry mask for ray masking
|
|
("triangleFormat", ze_rtas_builder_packed_input_data_format_exp_t), ## [in] format of triangle buffer data, must be
|
|
## ::ZE_RTAS_BUILDER_INPUT_DATA_FORMAT_EXP_TRIANGLE_INDICES_UINT32
|
|
("vertexFormat", ze_rtas_builder_packed_input_data_format_exp_t), ## [in] format of vertex buffer data, must be
|
|
## ::ZE_RTAS_BUILDER_INPUT_DATA_FORMAT_EXP_FLOAT3
|
|
("triangleCount", c_ulong), ## [in] number of triangles in triangle buffer
|
|
("vertexCount", c_ulong), ## [in] number of vertices in vertex buffer
|
|
("triangleStride", c_ulong), ## [in] stride (in bytes) of triangles in triangle buffer
|
|
("vertexStride", c_ulong), ## [in] stride (in bytes) of vertices in vertex buffer
|
|
("pTriangleBuffer", c_void_p), ## [in] pointer to array of triangle indices in specified format
|
|
("pVertexBuffer", c_void_p) ## [in] pointer to array of triangle vertices in specified format
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Ray tracing acceleration structure builder quad mesh geometry info
|
|
##
|
|
## @details
|
|
## - A quad is a triangle pair represented using 4 vertex indices v0, v1,
|
|
## v2, v3.
|
|
## The first triangle is made out of indices v0, v1, v3 and the second triangle
|
|
## from indices v2, v3, v1. The piecewise linear barycentric u/v parametrization
|
|
## of the quad is defined as:
|
|
## - (u=0, v=0) at v0,
|
|
## - (u=1, v=0) at v1,
|
|
## - (u=0, v=1) at v3, and
|
|
## - (u=1, v=1) at v2
|
|
## This is achieved by correcting the u'/v' coordinates of the second
|
|
## triangle by
|
|
## *u = 1-u'* and *v = 1-v'*, yielding a piecewise linear parametrization.
|
|
class ze_rtas_builder_quads_geometry_info_exp_t(Structure):
|
|
_fields_ = [
|
|
("geometryType", ze_rtas_builder_packed_geometry_type_exp_t), ## [in] geometry type, must be ::ZE_RTAS_BUILDER_GEOMETRY_TYPE_EXP_QUADS
|
|
("geometryFlags", ze_rtas_builder_packed_geometry_exp_flags_t), ## [in] 0 or some combination of ::ze_rtas_builder_geometry_exp_flag_t
|
|
## bits representing the geometry flags for all primitives of this
|
|
## geometry
|
|
("geometryMask", c_ubyte), ## [in] 8-bit geometry mask for ray masking
|
|
("quadFormat", ze_rtas_builder_packed_input_data_format_exp_t), ## [in] format of quad buffer data, must be
|
|
## ::ZE_RTAS_BUILDER_INPUT_DATA_FORMAT_EXP_QUAD_INDICES_UINT32
|
|
("vertexFormat", ze_rtas_builder_packed_input_data_format_exp_t), ## [in] format of vertex buffer data, must be
|
|
## ::ZE_RTAS_BUILDER_INPUT_DATA_FORMAT_EXP_FLOAT3
|
|
("quadCount", c_ulong), ## [in] number of quads in quad buffer
|
|
("vertexCount", c_ulong), ## [in] number of vertices in vertex buffer
|
|
("quadStride", c_ulong), ## [in] stride (in bytes) of quads in quad buffer
|
|
("vertexStride", c_ulong), ## [in] stride (in bytes) of vertices in vertex buffer
|
|
("pQuadBuffer", c_void_p), ## [in] pointer to array of quad indices in specified format
|
|
("pVertexBuffer", c_void_p) ## [in] pointer to array of quad vertices in specified format
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief AABB callback function parameters
|
|
class ze_rtas_geometry_aabbs_exp_cb_params_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in,out][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("primID", c_ulong), ## [in] first primitive to return bounds for
|
|
("primIDCount", c_ulong), ## [in] number of primitives to return bounds for
|
|
("pGeomUserPtr", c_void_p), ## [in] pointer provided through geometry descriptor
|
|
("pBuildUserPtr", c_void_p), ## [in] pointer provided through ::zeRTASBuilderBuildExp function
|
|
("pBoundsOut", POINTER(ze_rtas_aabb_exp_t)) ## [out] destination buffer to write AABB bounds to
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Callback function pointer type to return AABBs for a range of
|
|
## procedural primitives
|
|
|
|
###############################################################################
|
|
## @brief Ray tracing acceleration structure builder procedural primitives
|
|
## geometry info
|
|
##
|
|
## @details
|
|
## - A host-side bounds callback function is invoked by the acceleration
|
|
## structure builder to query the bounds of procedural primitives on
|
|
## demand. The callback is passed some `pGeomUserPtr` that can point to
|
|
## an application-side representation of the procedural primitives.
|
|
## Further, a second `pBuildUserPtr`, which is set by a parameter to
|
|
## ::zeRTASBuilderBuildExp, is passed to the callback. This allows the
|
|
## build to change the bounds of the procedural geometry, for example, to
|
|
## build a BVH only over a short time range to implement multi-segment
|
|
## motion blur.
|
|
class ze_rtas_builder_procedural_geometry_info_exp_t(Structure):
|
|
_fields_ = [
|
|
("geometryType", ze_rtas_builder_packed_geometry_type_exp_t), ## [in] geometry type, must be
|
|
## ::ZE_RTAS_BUILDER_GEOMETRY_TYPE_EXP_PROCEDURAL
|
|
("geometryFlags", ze_rtas_builder_packed_geometry_exp_flags_t), ## [in] 0 or some combination of ::ze_rtas_builder_geometry_exp_flag_t
|
|
## bits representing the geometry flags for all primitives of this
|
|
## geometry
|
|
("geometryMask", c_ubyte), ## [in] 8-bit geometry mask for ray masking
|
|
("reserved", c_ubyte), ## [in] reserved for future use
|
|
("primCount", c_ulong), ## [in] number of primitives in geometry
|
|
("pfnGetBoundsCb", ze_rtas_geometry_aabbs_cb_exp_t), ## [in] pointer to callback function to get the axis-aligned bounding-box
|
|
## for a range of primitives
|
|
("pGeomUserPtr", c_void_p) ## [in] user data pointer passed to callback
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Ray tracing acceleration structure builder instance geometry info
|
|
class ze_rtas_builder_instance_geometry_info_exp_t(Structure):
|
|
_fields_ = [
|
|
("geometryType", ze_rtas_builder_packed_geometry_type_exp_t), ## [in] geometry type, must be
|
|
## ::ZE_RTAS_BUILDER_GEOMETRY_TYPE_EXP_INSTANCE
|
|
("instanceFlags", ze_rtas_builder_packed_instance_exp_flags_t), ## [in] 0 or some combination of ::ze_rtas_builder_geometry_exp_flag_t
|
|
## bits representing the geometry flags for all primitives of this
|
|
## geometry
|
|
("geometryMask", c_ubyte), ## [in] 8-bit geometry mask for ray masking
|
|
("transformFormat", ze_rtas_builder_packed_input_data_format_exp_t),## [in] format of the specified transformation
|
|
("instanceUserID", c_ulong), ## [in] user-specified identifier for the instance
|
|
("pTransform", c_void_p), ## [in] object-to-world instance transformation in specified format
|
|
("pBounds", POINTER(ze_rtas_aabb_exp_t)), ## [in] object-space axis-aligned bounding-box of the instanced
|
|
## acceleration structure
|
|
("pAccelerationStructure", c_void_p) ## [in] pointer to acceleration structure to instantiate
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief
|
|
class ze_rtas_builder_build_op_exp_desc_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("rtasFormat", ze_rtas_format_exp_t), ## [in] ray tracing acceleration structure format
|
|
("buildQuality", ze_rtas_builder_build_quality_hint_exp_t), ## [in] acceleration structure build quality hint
|
|
("buildFlags", ze_rtas_builder_build_op_exp_flags_t), ## [in] 0 or some combination of ::ze_rtas_builder_build_op_exp_flag_t
|
|
## flags
|
|
("ppGeometries", POINTER(ze_rtas_builder_geometry_info_exp_t*)),## [in][optional][range(0, `numGeometries`)] NULL or a valid array of
|
|
## pointers to geometry infos
|
|
("numGeometries", c_ulong) ## [in] number of geometries in geometry infos array, can be zero when
|
|
## `ppGeometries` is NULL
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Counter-based Event Pools Extension Name
|
|
ZE_EVENT_POOL_COUNTER_BASED_EXP_NAME = "ZE_experimental_event_pool_counter_based"
|
|
|
|
###############################################################################
|
|
## @brief Counter-based Event Pools Extension Version(s)
|
|
class ze_event_pool_counter_based_exp_version_v(IntEnum):
|
|
_1_0 = ZE_MAKE_VERSION( 1, 0 ) ## version 1.0
|
|
CURRENT = ZE_MAKE_VERSION( 1, 0 ) ## latest known version
|
|
|
|
class ze_event_pool_counter_based_exp_version_t(c_int):
|
|
def __str__(self):
|
|
return str(ze_event_pool_counter_based_exp_version_v(self.value))
|
|
|
|
|
|
###############################################################################
|
|
## @brief Supported event flags for defining counter-based event pools.
|
|
class ze_event_pool_counter_based_exp_flags_v(IntEnum):
|
|
IMMEDIATE = ZE_BIT(0) ## Counter-based event pool is used for immediate command lists (default)
|
|
NON_IMMEDIATE = ZE_BIT(1) ## Counter-based event pool is for non-immediate command lists
|
|
|
|
class ze_event_pool_counter_based_exp_flags_t(c_int):
|
|
def __str__(self):
|
|
return hex(self.value)
|
|
|
|
|
|
###############################################################################
|
|
## @brief Event pool descriptor for counter-based events. This structure may be
|
|
## passed to ::zeEventPoolCreate as pNext member of
|
|
## ::ze_event_pool_desc_t.
|
|
class ze_event_pool_counter_based_exp_desc_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("flags", ze_event_pool_counter_based_exp_flags_t) ## [in] mode flags.
|
|
## must be 0 (default) or a valid value of ::ze_event_pool_counter_based_exp_flag_t
|
|
## default behavior is counter-based event pool is only used for
|
|
## immediate command lists.
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Image Memory Properties Extension Name
|
|
ZE_BINDLESS_IMAGE_EXP_NAME = "ZE_experimental_bindless_image"
|
|
|
|
###############################################################################
|
|
## @brief Bindless Image Extension Version(s)
|
|
class ze_bindless_image_exp_version_v(IntEnum):
|
|
_1_0 = ZE_MAKE_VERSION( 1, 0 ) ## version 1.0
|
|
CURRENT = ZE_MAKE_VERSION( 1, 0 ) ## latest known version
|
|
|
|
class ze_bindless_image_exp_version_t(c_int):
|
|
def __str__(self):
|
|
return str(ze_bindless_image_exp_version_v(self.value))
|
|
|
|
|
|
###############################################################################
|
|
## @brief Image flags for Bindless images
|
|
class ze_image_bindless_exp_flags_v(IntEnum):
|
|
BINDLESS = ZE_BIT(0) ## Bindless images are created with ::zeImageCreate. The image handle
|
|
## created with this flag is valid on both host and device.
|
|
SAMPLED_IMAGE = ZE_BIT(1) ## Bindless sampled images are created with ::zeImageCreate by combining
|
|
## BINDLESS and SAMPLED_IMAGE.
|
|
## Create sampled image view from bindless unsampled image using SAMPLED_IMAGE.
|
|
|
|
class ze_image_bindless_exp_flags_t(c_int):
|
|
def __str__(self):
|
|
return hex(self.value)
|
|
|
|
|
|
###############################################################################
|
|
## @brief Image descriptor for bindless images. This structure may be passed to
|
|
## ::zeImageCreate via pNext member of ::ze_image_desc_t.
|
|
class ze_image_bindless_exp_desc_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("flags", ze_image_bindless_exp_flags_t) ## [in] image flags.
|
|
## must be 0 (default) or a valid value of ::ze_image_bindless_exp_flag_t
|
|
## default behavior is bindless images are not used when creating handles
|
|
## via ::zeImageCreate.
|
|
## When the flag is passed to ::zeImageCreate, then only the memory for
|
|
## the image is allocated.
|
|
## Additional image handles can be created with ::zeImageViewCreateExt.
|
|
## When ::ZE_IMAGE_BINDLESS_EXP_FLAG_SAMPLED_IMAGE flag is passed,
|
|
## ::ze_sampler_desc_t must be attached via pNext member of ::ze_image_bindless_exp_desc_t.
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Image descriptor for bindless images created from pitched allocations.
|
|
## This structure may be passed to ::zeImageCreate via pNext member of
|
|
## ::ze_image_desc_t.
|
|
class ze_image_pitched_exp_desc_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("ptr", c_void_p) ## [in] pointer to pitched device allocation allocated using ::zeMemAllocDevice
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Device specific properties for pitched allocations
|
|
##
|
|
## @details
|
|
## - This structure may be passed to ::zeDeviceGetImageProperties via the
|
|
## pNext member of ::ze_device_image_properties_t.
|
|
class ze_device_pitched_alloc_exp_properties_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in,out][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("maxImageLinearWidth", c_size_t), ## [out] Maximum image linear width.
|
|
("maxImageLinearHeight", c_size_t) ## [out] Maximum image linear height.
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Command List Clone Extension Name
|
|
ZE_COMMAND_LIST_CLONE_EXP_NAME = "ZE_experimental_command_list_clone"
|
|
|
|
###############################################################################
|
|
## @brief Command List Clone Extension Version(s)
|
|
class ze_command_list_clone_exp_version_v(IntEnum):
|
|
_1_0 = ZE_MAKE_VERSION( 1, 0 ) ## version 1.0
|
|
CURRENT = ZE_MAKE_VERSION( 1, 0 ) ## latest known version
|
|
|
|
class ze_command_list_clone_exp_version_t(c_int):
|
|
def __str__(self):
|
|
return str(ze_command_list_clone_exp_version_v(self.value))
|
|
|
|
|
|
###############################################################################
|
|
## @brief Immediate Command List Append Extension Name
|
|
ZE_IMMEDIATE_COMMAND_LIST_APPEND_EXP_NAME = "ZE_experimental_immediate_command_list_append"
|
|
|
|
###############################################################################
|
|
## @brief Immediate Command List Append Extension Version(s)
|
|
class ze_immediate_command_list_append_exp_version_v(IntEnum):
|
|
_1_0 = ZE_MAKE_VERSION( 1, 0 ) ## version 1.0
|
|
CURRENT = ZE_MAKE_VERSION( 1, 0 ) ## latest known version
|
|
|
|
class ze_immediate_command_list_append_exp_version_t(c_int):
|
|
def __str__(self):
|
|
return str(ze_immediate_command_list_append_exp_version_v(self.value))
|
|
|
|
|
|
###############################################################################
|
|
## @brief Mutable Command List Extension Name
|
|
ZE_MUTABLE_COMMAND_LIST_EXP_NAME = "ZE_experimental_mutable_command_list"
|
|
|
|
###############################################################################
|
|
## @brief Mutable Command List Extension Version(s)
|
|
class ze_mutable_command_list_exp_version_v(IntEnum):
|
|
_1_0 = ZE_MAKE_VERSION( 1, 0 ) ## version 1.0
|
|
_1_1 = ZE_MAKE_VERSION( 1, 1 ) ## version 1.1
|
|
CURRENT = ZE_MAKE_VERSION( 1, 1 ) ## latest known version
|
|
|
|
class ze_mutable_command_list_exp_version_t(c_int):
|
|
def __str__(self):
|
|
return str(ze_mutable_command_list_exp_version_v(self.value))
|
|
|
|
|
|
###############################################################################
|
|
## @brief Mutable command flags
|
|
class ze_mutable_command_exp_flags_v(IntEnum):
|
|
KERNEL_ARGUMENTS = ZE_BIT(0) ## kernel arguments
|
|
GROUP_COUNT = ZE_BIT(1) ## kernel group count
|
|
GROUP_SIZE = ZE_BIT(2) ## kernel group size
|
|
GLOBAL_OFFSET = ZE_BIT(3) ## kernel global offset
|
|
SIGNAL_EVENT = ZE_BIT(4) ## command signal event
|
|
WAIT_EVENTS = ZE_BIT(5) ## command wait events
|
|
KERNEL_INSTRUCTION = ZE_BIT(6) ## command kernel
|
|
GRAPH_ARGUMENTS = ZE_BIT(7) ## graph arguments
|
|
|
|
class ze_mutable_command_exp_flags_t(c_int):
|
|
def __str__(self):
|
|
return hex(self.value)
|
|
|
|
|
|
###############################################################################
|
|
## @brief Mutable command identifier descriptor
|
|
class ze_mutable_command_id_exp_desc_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("flags", ze_mutable_command_exp_flags_t) ## [in] mutable command flags.
|
|
## - must be 0 (default, equivalent to setting all flags bar kernel
|
|
## instruction), or a valid combination of ::ze_mutable_command_exp_flag_t
|
|
## - in order to include kernel instruction mutation,
|
|
## ::ZE_MUTABLE_COMMAND_EXP_FLAG_KERNEL_INSTRUCTION must be explictly included
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Mutable command list flags
|
|
class ze_mutable_command_list_exp_flags_v(IntEnum):
|
|
RESERVED = ZE_BIT(0) ## reserved
|
|
|
|
class ze_mutable_command_list_exp_flags_t(c_int):
|
|
def __str__(self):
|
|
return hex(self.value)
|
|
|
|
|
|
###############################################################################
|
|
## @brief Mutable command list properties
|
|
class ze_mutable_command_list_exp_properties_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in,out][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("mutableCommandListFlags", ze_mutable_command_list_exp_flags_t), ## [out] mutable command list flags
|
|
("mutableCommandFlags", ze_mutable_command_exp_flags_t) ## [out] mutable command flags
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Mutable command list descriptor
|
|
class ze_mutable_command_list_exp_desc_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("flags", ze_mutable_command_list_exp_flags_t) ## [in] mutable command list flags.
|
|
## - must be 0 (default) or a valid combination of ::ze_mutable_command_list_exp_flag_t
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Mutable commands descriptor
|
|
class ze_mutable_commands_exp_desc_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("flags", c_ulong) ## [in] must be 0, this field is reserved for future use
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Mutable kernel argument descriptor
|
|
class ze_mutable_kernel_argument_exp_desc_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("commandId", c_ulonglong), ## [in] command identifier
|
|
("argIndex", c_ulong), ## [in] kernel argument index
|
|
("argSize", c_size_t), ## [in] kernel argument size
|
|
("pArgValue", c_void_p) ## [in] pointer to kernel argument value
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Mutable kernel group count descriptor
|
|
class ze_mutable_group_count_exp_desc_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("commandId", c_ulonglong), ## [in] command identifier
|
|
("pGroupCount", POINTER(ze_group_count_t)) ## [in] pointer to group count
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Mutable kernel group size descriptor
|
|
class ze_mutable_group_size_exp_desc_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("commandId", c_ulonglong), ## [in] command identifier
|
|
("groupSizeX", c_ulong), ## [in] group size for X dimension to use for the kernel
|
|
("groupSizeY", c_ulong), ## [in] group size for Y dimension to use for the kernel
|
|
("groupSizeZ", c_ulong) ## [in] group size for Z dimension to use for the kernel
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Mutable kernel global offset descriptor
|
|
class ze_mutable_global_offset_exp_desc_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("commandId", c_ulonglong), ## [in] command identifier
|
|
("offsetX", c_ulong), ## [in] global offset for X dimension to use for this kernel
|
|
("offsetY", c_ulong), ## [in] global offset for Y dimension to use for this kernel
|
|
("offsetZ", c_ulong) ## [in] global offset for Z dimension to use for this kernel
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Mutable graph argument descriptor
|
|
class ze_mutable_graph_argument_exp_desc_t(Structure):
|
|
_fields_ = [
|
|
("stype", ze_structure_type_t), ## [in] type of this structure
|
|
("pNext", c_void_p), ## [in][optional] must be null or a pointer to an extension-specific
|
|
## structure (i.e. contains stype and pNext).
|
|
("commandId", c_ulonglong), ## [in] command identifier
|
|
("argIndex", c_ulong), ## [in] graph argument index
|
|
("pArgValue", c_void_p) ## [in] pointer to graph argument value
|
|
]
|
|
|
|
###############################################################################
|
|
__use_win_types = "Windows" == platform.uname()[0]
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeRTASBuilderCreateExp
|
|
if __use_win_types:
|
|
_zeRTASBuilderCreateExp_t = WINFUNCTYPE( ze_result_t, ze_driver_handle_t, POINTER(ze_rtas_builder_exp_desc_t), POINTER(ze_rtas_builder_exp_handle_t) )
|
|
else:
|
|
_zeRTASBuilderCreateExp_t = CFUNCTYPE( ze_result_t, ze_driver_handle_t, POINTER(ze_rtas_builder_exp_desc_t), POINTER(ze_rtas_builder_exp_handle_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeRTASBuilderGetBuildPropertiesExp
|
|
if __use_win_types:
|
|
_zeRTASBuilderGetBuildPropertiesExp_t = WINFUNCTYPE( ze_result_t, ze_rtas_builder_exp_handle_t, POINTER(ze_rtas_builder_build_op_exp_desc_t), POINTER(ze_rtas_builder_exp_properties_t) )
|
|
else:
|
|
_zeRTASBuilderGetBuildPropertiesExp_t = CFUNCTYPE( ze_result_t, ze_rtas_builder_exp_handle_t, POINTER(ze_rtas_builder_build_op_exp_desc_t), POINTER(ze_rtas_builder_exp_properties_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeRTASBuilderBuildExp
|
|
if __use_win_types:
|
|
_zeRTASBuilderBuildExp_t = WINFUNCTYPE( ze_result_t, ze_rtas_builder_exp_handle_t, POINTER(ze_rtas_builder_build_op_exp_desc_t), c_void_p, c_size_t, c_void_p, c_size_t, ze_rtas_parallel_operation_exp_handle_t, c_void_p, POINTER(ze_rtas_aabb_exp_t), POINTER(c_size_t) )
|
|
else:
|
|
_zeRTASBuilderBuildExp_t = CFUNCTYPE( ze_result_t, ze_rtas_builder_exp_handle_t, POINTER(ze_rtas_builder_build_op_exp_desc_t), c_void_p, c_size_t, c_void_p, c_size_t, ze_rtas_parallel_operation_exp_handle_t, c_void_p, POINTER(ze_rtas_aabb_exp_t), POINTER(c_size_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeRTASBuilderDestroyExp
|
|
if __use_win_types:
|
|
_zeRTASBuilderDestroyExp_t = WINFUNCTYPE( ze_result_t, ze_rtas_builder_exp_handle_t )
|
|
else:
|
|
_zeRTASBuilderDestroyExp_t = CFUNCTYPE( ze_result_t, ze_rtas_builder_exp_handle_t )
|
|
|
|
|
|
###############################################################################
|
|
## @brief Table of RTASBuilderExp functions pointers
|
|
class _ze_rtas_builder_exp_dditable_t(Structure):
|
|
_fields_ = [
|
|
("pfnCreateExp", c_void_p), ## _zeRTASBuilderCreateExp_t
|
|
("pfnGetBuildPropertiesExp", c_void_p), ## _zeRTASBuilderGetBuildPropertiesExp_t
|
|
("pfnBuildExp", c_void_p), ## _zeRTASBuilderBuildExp_t
|
|
("pfnDestroyExp", c_void_p) ## _zeRTASBuilderDestroyExp_t
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeRTASParallelOperationCreateExp
|
|
if __use_win_types:
|
|
_zeRTASParallelOperationCreateExp_t = WINFUNCTYPE( ze_result_t, ze_driver_handle_t, POINTER(ze_rtas_parallel_operation_exp_handle_t) )
|
|
else:
|
|
_zeRTASParallelOperationCreateExp_t = CFUNCTYPE( ze_result_t, ze_driver_handle_t, POINTER(ze_rtas_parallel_operation_exp_handle_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeRTASParallelOperationGetPropertiesExp
|
|
if __use_win_types:
|
|
_zeRTASParallelOperationGetPropertiesExp_t = WINFUNCTYPE( ze_result_t, ze_rtas_parallel_operation_exp_handle_t, POINTER(ze_rtas_parallel_operation_exp_properties_t) )
|
|
else:
|
|
_zeRTASParallelOperationGetPropertiesExp_t = CFUNCTYPE( ze_result_t, ze_rtas_parallel_operation_exp_handle_t, POINTER(ze_rtas_parallel_operation_exp_properties_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeRTASParallelOperationJoinExp
|
|
if __use_win_types:
|
|
_zeRTASParallelOperationJoinExp_t = WINFUNCTYPE( ze_result_t, ze_rtas_parallel_operation_exp_handle_t )
|
|
else:
|
|
_zeRTASParallelOperationJoinExp_t = CFUNCTYPE( ze_result_t, ze_rtas_parallel_operation_exp_handle_t )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeRTASParallelOperationDestroyExp
|
|
if __use_win_types:
|
|
_zeRTASParallelOperationDestroyExp_t = WINFUNCTYPE( ze_result_t, ze_rtas_parallel_operation_exp_handle_t )
|
|
else:
|
|
_zeRTASParallelOperationDestroyExp_t = CFUNCTYPE( ze_result_t, ze_rtas_parallel_operation_exp_handle_t )
|
|
|
|
|
|
###############################################################################
|
|
## @brief Table of RTASParallelOperationExp functions pointers
|
|
class _ze_rtas_parallel_operation_exp_dditable_t(Structure):
|
|
_fields_ = [
|
|
("pfnCreateExp", c_void_p), ## _zeRTASParallelOperationCreateExp_t
|
|
("pfnGetPropertiesExp", c_void_p), ## _zeRTASParallelOperationGetPropertiesExp_t
|
|
("pfnJoinExp", c_void_p), ## _zeRTASParallelOperationJoinExp_t
|
|
("pfnDestroyExp", c_void_p) ## _zeRTASParallelOperationDestroyExp_t
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeInit
|
|
if __use_win_types:
|
|
_zeInit_t = WINFUNCTYPE( ze_result_t, ze_init_flags_t )
|
|
else:
|
|
_zeInit_t = CFUNCTYPE( ze_result_t, ze_init_flags_t )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeInitDrivers
|
|
if __use_win_types:
|
|
_zeInitDrivers_t = WINFUNCTYPE( ze_result_t, POINTER(c_ulong), POINTER(ze_driver_handle_t), POINTER(ze_init_driver_type_desc_t) )
|
|
else:
|
|
_zeInitDrivers_t = CFUNCTYPE( ze_result_t, POINTER(c_ulong), POINTER(ze_driver_handle_t), POINTER(ze_init_driver_type_desc_t) )
|
|
|
|
|
|
###############################################################################
|
|
## @brief Table of Global functions pointers
|
|
class _ze_global_dditable_t(Structure):
|
|
_fields_ = [
|
|
("pfnInit", c_void_p), ## _zeInit_t
|
|
("pfnInitDrivers", c_void_p) ## _zeInitDrivers_t
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeDriverGet
|
|
if __use_win_types:
|
|
_zeDriverGet_t = WINFUNCTYPE( ze_result_t, POINTER(c_ulong), POINTER(ze_driver_handle_t) )
|
|
else:
|
|
_zeDriverGet_t = CFUNCTYPE( ze_result_t, POINTER(c_ulong), POINTER(ze_driver_handle_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeDriverGetApiVersion
|
|
if __use_win_types:
|
|
_zeDriverGetApiVersion_t = WINFUNCTYPE( ze_result_t, ze_driver_handle_t, POINTER(ze_api_version_t) )
|
|
else:
|
|
_zeDriverGetApiVersion_t = CFUNCTYPE( ze_result_t, ze_driver_handle_t, POINTER(ze_api_version_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeDriverGetProperties
|
|
if __use_win_types:
|
|
_zeDriverGetProperties_t = WINFUNCTYPE( ze_result_t, ze_driver_handle_t, POINTER(ze_driver_properties_t) )
|
|
else:
|
|
_zeDriverGetProperties_t = CFUNCTYPE( ze_result_t, ze_driver_handle_t, POINTER(ze_driver_properties_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeDriverGetIpcProperties
|
|
if __use_win_types:
|
|
_zeDriverGetIpcProperties_t = WINFUNCTYPE( ze_result_t, ze_driver_handle_t, POINTER(ze_driver_ipc_properties_t) )
|
|
else:
|
|
_zeDriverGetIpcProperties_t = CFUNCTYPE( ze_result_t, ze_driver_handle_t, POINTER(ze_driver_ipc_properties_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeDriverGetExtensionProperties
|
|
if __use_win_types:
|
|
_zeDriverGetExtensionProperties_t = WINFUNCTYPE( ze_result_t, ze_driver_handle_t, POINTER(c_ulong), POINTER(ze_driver_extension_properties_t) )
|
|
else:
|
|
_zeDriverGetExtensionProperties_t = CFUNCTYPE( ze_result_t, ze_driver_handle_t, POINTER(c_ulong), POINTER(ze_driver_extension_properties_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeDriverGetExtensionFunctionAddress
|
|
if __use_win_types:
|
|
_zeDriverGetExtensionFunctionAddress_t = WINFUNCTYPE( ze_result_t, ze_driver_handle_t, c_char_p, POINTER(c_void_p) )
|
|
else:
|
|
_zeDriverGetExtensionFunctionAddress_t = CFUNCTYPE( ze_result_t, ze_driver_handle_t, c_char_p, POINTER(c_void_p) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeDriverGetLastErrorDescription
|
|
if __use_win_types:
|
|
_zeDriverGetLastErrorDescription_t = WINFUNCTYPE( ze_result_t, ze_driver_handle_t, POINTER(c_char_p) )
|
|
else:
|
|
_zeDriverGetLastErrorDescription_t = CFUNCTYPE( ze_result_t, ze_driver_handle_t, POINTER(c_char_p) )
|
|
|
|
|
|
###############################################################################
|
|
## @brief Table of Driver functions pointers
|
|
class _ze_driver_dditable_t(Structure):
|
|
_fields_ = [
|
|
("pfnGet", c_void_p), ## _zeDriverGet_t
|
|
("pfnGetApiVersion", c_void_p), ## _zeDriverGetApiVersion_t
|
|
("pfnGetProperties", c_void_p), ## _zeDriverGetProperties_t
|
|
("pfnGetIpcProperties", c_void_p), ## _zeDriverGetIpcProperties_t
|
|
("pfnGetExtensionProperties", c_void_p), ## _zeDriverGetExtensionProperties_t
|
|
("pfnGetExtensionFunctionAddress", c_void_p), ## _zeDriverGetExtensionFunctionAddress_t
|
|
("pfnGetLastErrorDescription", c_void_p) ## _zeDriverGetLastErrorDescription_t
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeDriverRTASFormatCompatibilityCheckExp
|
|
if __use_win_types:
|
|
_zeDriverRTASFormatCompatibilityCheckExp_t = WINFUNCTYPE( ze_result_t, ze_driver_handle_t, ze_rtas_format_exp_t, ze_rtas_format_exp_t )
|
|
else:
|
|
_zeDriverRTASFormatCompatibilityCheckExp_t = CFUNCTYPE( ze_result_t, ze_driver_handle_t, ze_rtas_format_exp_t, ze_rtas_format_exp_t )
|
|
|
|
|
|
###############################################################################
|
|
## @brief Table of DriverExp functions pointers
|
|
class _ze_driver_exp_dditable_t(Structure):
|
|
_fields_ = [
|
|
("pfnRTASFormatCompatibilityCheckExp", c_void_p) ## _zeDriverRTASFormatCompatibilityCheckExp_t
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeDeviceGet
|
|
if __use_win_types:
|
|
_zeDeviceGet_t = WINFUNCTYPE( ze_result_t, ze_driver_handle_t, POINTER(c_ulong), POINTER(ze_device_handle_t) )
|
|
else:
|
|
_zeDeviceGet_t = CFUNCTYPE( ze_result_t, ze_driver_handle_t, POINTER(c_ulong), POINTER(ze_device_handle_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeDeviceGetSubDevices
|
|
if __use_win_types:
|
|
_zeDeviceGetSubDevices_t = WINFUNCTYPE( ze_result_t, ze_device_handle_t, POINTER(c_ulong), POINTER(ze_device_handle_t) )
|
|
else:
|
|
_zeDeviceGetSubDevices_t = CFUNCTYPE( ze_result_t, ze_device_handle_t, POINTER(c_ulong), POINTER(ze_device_handle_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeDeviceGetProperties
|
|
if __use_win_types:
|
|
_zeDeviceGetProperties_t = WINFUNCTYPE( ze_result_t, ze_device_handle_t, POINTER(ze_device_properties_t) )
|
|
else:
|
|
_zeDeviceGetProperties_t = CFUNCTYPE( ze_result_t, ze_device_handle_t, POINTER(ze_device_properties_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeDeviceGetComputeProperties
|
|
if __use_win_types:
|
|
_zeDeviceGetComputeProperties_t = WINFUNCTYPE( ze_result_t, ze_device_handle_t, POINTER(ze_device_compute_properties_t) )
|
|
else:
|
|
_zeDeviceGetComputeProperties_t = CFUNCTYPE( ze_result_t, ze_device_handle_t, POINTER(ze_device_compute_properties_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeDeviceGetModuleProperties
|
|
if __use_win_types:
|
|
_zeDeviceGetModuleProperties_t = WINFUNCTYPE( ze_result_t, ze_device_handle_t, POINTER(ze_device_module_properties_t) )
|
|
else:
|
|
_zeDeviceGetModuleProperties_t = CFUNCTYPE( ze_result_t, ze_device_handle_t, POINTER(ze_device_module_properties_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeDeviceGetCommandQueueGroupProperties
|
|
if __use_win_types:
|
|
_zeDeviceGetCommandQueueGroupProperties_t = WINFUNCTYPE( ze_result_t, ze_device_handle_t, POINTER(c_ulong), POINTER(ze_command_queue_group_properties_t) )
|
|
else:
|
|
_zeDeviceGetCommandQueueGroupProperties_t = CFUNCTYPE( ze_result_t, ze_device_handle_t, POINTER(c_ulong), POINTER(ze_command_queue_group_properties_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeDeviceGetMemoryProperties
|
|
if __use_win_types:
|
|
_zeDeviceGetMemoryProperties_t = WINFUNCTYPE( ze_result_t, ze_device_handle_t, POINTER(c_ulong), POINTER(ze_device_memory_properties_t) )
|
|
else:
|
|
_zeDeviceGetMemoryProperties_t = CFUNCTYPE( ze_result_t, ze_device_handle_t, POINTER(c_ulong), POINTER(ze_device_memory_properties_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeDeviceGetMemoryAccessProperties
|
|
if __use_win_types:
|
|
_zeDeviceGetMemoryAccessProperties_t = WINFUNCTYPE( ze_result_t, ze_device_handle_t, POINTER(ze_device_memory_access_properties_t) )
|
|
else:
|
|
_zeDeviceGetMemoryAccessProperties_t = CFUNCTYPE( ze_result_t, ze_device_handle_t, POINTER(ze_device_memory_access_properties_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeDeviceGetCacheProperties
|
|
if __use_win_types:
|
|
_zeDeviceGetCacheProperties_t = WINFUNCTYPE( ze_result_t, ze_device_handle_t, POINTER(c_ulong), POINTER(ze_device_cache_properties_t) )
|
|
else:
|
|
_zeDeviceGetCacheProperties_t = CFUNCTYPE( ze_result_t, ze_device_handle_t, POINTER(c_ulong), POINTER(ze_device_cache_properties_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeDeviceGetImageProperties
|
|
if __use_win_types:
|
|
_zeDeviceGetImageProperties_t = WINFUNCTYPE( ze_result_t, ze_device_handle_t, POINTER(ze_device_image_properties_t) )
|
|
else:
|
|
_zeDeviceGetImageProperties_t = CFUNCTYPE( ze_result_t, ze_device_handle_t, POINTER(ze_device_image_properties_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeDeviceGetExternalMemoryProperties
|
|
if __use_win_types:
|
|
_zeDeviceGetExternalMemoryProperties_t = WINFUNCTYPE( ze_result_t, ze_device_handle_t, POINTER(ze_device_external_memory_properties_t) )
|
|
else:
|
|
_zeDeviceGetExternalMemoryProperties_t = CFUNCTYPE( ze_result_t, ze_device_handle_t, POINTER(ze_device_external_memory_properties_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeDeviceGetP2PProperties
|
|
if __use_win_types:
|
|
_zeDeviceGetP2PProperties_t = WINFUNCTYPE( ze_result_t, ze_device_handle_t, ze_device_handle_t, POINTER(ze_device_p2p_properties_t) )
|
|
else:
|
|
_zeDeviceGetP2PProperties_t = CFUNCTYPE( ze_result_t, ze_device_handle_t, ze_device_handle_t, POINTER(ze_device_p2p_properties_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeDeviceCanAccessPeer
|
|
if __use_win_types:
|
|
_zeDeviceCanAccessPeer_t = WINFUNCTYPE( ze_result_t, ze_device_handle_t, ze_device_handle_t, POINTER(ze_bool_t) )
|
|
else:
|
|
_zeDeviceCanAccessPeer_t = CFUNCTYPE( ze_result_t, ze_device_handle_t, ze_device_handle_t, POINTER(ze_bool_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeDeviceGetStatus
|
|
if __use_win_types:
|
|
_zeDeviceGetStatus_t = WINFUNCTYPE( ze_result_t, ze_device_handle_t )
|
|
else:
|
|
_zeDeviceGetStatus_t = CFUNCTYPE( ze_result_t, ze_device_handle_t )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeDeviceGetGlobalTimestamps
|
|
if __use_win_types:
|
|
_zeDeviceGetGlobalTimestamps_t = WINFUNCTYPE( ze_result_t, ze_device_handle_t, POINTER(c_ulonglong), POINTER(c_ulonglong) )
|
|
else:
|
|
_zeDeviceGetGlobalTimestamps_t = CFUNCTYPE( ze_result_t, ze_device_handle_t, POINTER(c_ulonglong), POINTER(c_ulonglong) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeDeviceReserveCacheExt
|
|
if __use_win_types:
|
|
_zeDeviceReserveCacheExt_t = WINFUNCTYPE( ze_result_t, ze_device_handle_t, c_size_t, c_size_t )
|
|
else:
|
|
_zeDeviceReserveCacheExt_t = CFUNCTYPE( ze_result_t, ze_device_handle_t, c_size_t, c_size_t )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeDeviceSetCacheAdviceExt
|
|
if __use_win_types:
|
|
_zeDeviceSetCacheAdviceExt_t = WINFUNCTYPE( ze_result_t, ze_device_handle_t, c_void_p, c_size_t, ze_cache_ext_region_t )
|
|
else:
|
|
_zeDeviceSetCacheAdviceExt_t = CFUNCTYPE( ze_result_t, ze_device_handle_t, c_void_p, c_size_t, ze_cache_ext_region_t )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeDevicePciGetPropertiesExt
|
|
if __use_win_types:
|
|
_zeDevicePciGetPropertiesExt_t = WINFUNCTYPE( ze_result_t, ze_device_handle_t, POINTER(ze_pci_ext_properties_t) )
|
|
else:
|
|
_zeDevicePciGetPropertiesExt_t = CFUNCTYPE( ze_result_t, ze_device_handle_t, POINTER(ze_pci_ext_properties_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeDeviceGetRootDevice
|
|
if __use_win_types:
|
|
_zeDeviceGetRootDevice_t = WINFUNCTYPE( ze_result_t, ze_device_handle_t, POINTER(ze_device_handle_t) )
|
|
else:
|
|
_zeDeviceGetRootDevice_t = CFUNCTYPE( ze_result_t, ze_device_handle_t, POINTER(ze_device_handle_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeDeviceImportExternalSemaphoreExt
|
|
if __use_win_types:
|
|
_zeDeviceImportExternalSemaphoreExt_t = WINFUNCTYPE( ze_result_t, ze_device_handle_t, POINTER(ze_external_semaphore_ext_desc_t), POINTER(ze_external_semaphore_ext_handle_t) )
|
|
else:
|
|
_zeDeviceImportExternalSemaphoreExt_t = CFUNCTYPE( ze_result_t, ze_device_handle_t, POINTER(ze_external_semaphore_ext_desc_t), POINTER(ze_external_semaphore_ext_handle_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeDeviceReleaseExternalSemaphoreExt
|
|
if __use_win_types:
|
|
_zeDeviceReleaseExternalSemaphoreExt_t = WINFUNCTYPE( ze_result_t, ze_external_semaphore_ext_handle_t )
|
|
else:
|
|
_zeDeviceReleaseExternalSemaphoreExt_t = CFUNCTYPE( ze_result_t, ze_external_semaphore_ext_handle_t )
|
|
|
|
|
|
###############################################################################
|
|
## @brief Table of Device functions pointers
|
|
class _ze_device_dditable_t(Structure):
|
|
_fields_ = [
|
|
("pfnGet", c_void_p), ## _zeDeviceGet_t
|
|
("pfnGetSubDevices", c_void_p), ## _zeDeviceGetSubDevices_t
|
|
("pfnGetProperties", c_void_p), ## _zeDeviceGetProperties_t
|
|
("pfnGetComputeProperties", c_void_p), ## _zeDeviceGetComputeProperties_t
|
|
("pfnGetModuleProperties", c_void_p), ## _zeDeviceGetModuleProperties_t
|
|
("pfnGetCommandQueueGroupProperties", c_void_p), ## _zeDeviceGetCommandQueueGroupProperties_t
|
|
("pfnGetMemoryProperties", c_void_p), ## _zeDeviceGetMemoryProperties_t
|
|
("pfnGetMemoryAccessProperties", c_void_p), ## _zeDeviceGetMemoryAccessProperties_t
|
|
("pfnGetCacheProperties", c_void_p), ## _zeDeviceGetCacheProperties_t
|
|
("pfnGetImageProperties", c_void_p), ## _zeDeviceGetImageProperties_t
|
|
("pfnGetExternalMemoryProperties", c_void_p), ## _zeDeviceGetExternalMemoryProperties_t
|
|
("pfnGetP2PProperties", c_void_p), ## _zeDeviceGetP2PProperties_t
|
|
("pfnCanAccessPeer", c_void_p), ## _zeDeviceCanAccessPeer_t
|
|
("pfnGetStatus", c_void_p), ## _zeDeviceGetStatus_t
|
|
("pfnGetGlobalTimestamps", c_void_p), ## _zeDeviceGetGlobalTimestamps_t
|
|
("pfnReserveCacheExt", c_void_p), ## _zeDeviceReserveCacheExt_t
|
|
("pfnSetCacheAdviceExt", c_void_p), ## _zeDeviceSetCacheAdviceExt_t
|
|
("pfnPciGetPropertiesExt", c_void_p), ## _zeDevicePciGetPropertiesExt_t
|
|
("pfnGetRootDevice", c_void_p), ## _zeDeviceGetRootDevice_t
|
|
("pfnImportExternalSemaphoreExt", c_void_p), ## _zeDeviceImportExternalSemaphoreExt_t
|
|
("pfnReleaseExternalSemaphoreExt", c_void_p) ## _zeDeviceReleaseExternalSemaphoreExt_t
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeDeviceGetFabricVertexExp
|
|
if __use_win_types:
|
|
_zeDeviceGetFabricVertexExp_t = WINFUNCTYPE( ze_result_t, ze_device_handle_t, POINTER(ze_fabric_vertex_handle_t) )
|
|
else:
|
|
_zeDeviceGetFabricVertexExp_t = CFUNCTYPE( ze_result_t, ze_device_handle_t, POINTER(ze_fabric_vertex_handle_t) )
|
|
|
|
|
|
###############################################################################
|
|
## @brief Table of DeviceExp functions pointers
|
|
class _ze_device_exp_dditable_t(Structure):
|
|
_fields_ = [
|
|
("pfnGetFabricVertexExp", c_void_p) ## _zeDeviceGetFabricVertexExp_t
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeContextCreate
|
|
if __use_win_types:
|
|
_zeContextCreate_t = WINFUNCTYPE( ze_result_t, ze_driver_handle_t, POINTER(ze_context_desc_t), POINTER(ze_context_handle_t) )
|
|
else:
|
|
_zeContextCreate_t = CFUNCTYPE( ze_result_t, ze_driver_handle_t, POINTER(ze_context_desc_t), POINTER(ze_context_handle_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeContextDestroy
|
|
if __use_win_types:
|
|
_zeContextDestroy_t = WINFUNCTYPE( ze_result_t, ze_context_handle_t )
|
|
else:
|
|
_zeContextDestroy_t = CFUNCTYPE( ze_result_t, ze_context_handle_t )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeContextGetStatus
|
|
if __use_win_types:
|
|
_zeContextGetStatus_t = WINFUNCTYPE( ze_result_t, ze_context_handle_t )
|
|
else:
|
|
_zeContextGetStatus_t = CFUNCTYPE( ze_result_t, ze_context_handle_t )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeContextSystemBarrier
|
|
if __use_win_types:
|
|
_zeContextSystemBarrier_t = WINFUNCTYPE( ze_result_t, ze_context_handle_t, ze_device_handle_t )
|
|
else:
|
|
_zeContextSystemBarrier_t = CFUNCTYPE( ze_result_t, ze_context_handle_t, ze_device_handle_t )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeContextMakeMemoryResident
|
|
if __use_win_types:
|
|
_zeContextMakeMemoryResident_t = WINFUNCTYPE( ze_result_t, ze_context_handle_t, ze_device_handle_t, c_void_p, c_size_t )
|
|
else:
|
|
_zeContextMakeMemoryResident_t = CFUNCTYPE( ze_result_t, ze_context_handle_t, ze_device_handle_t, c_void_p, c_size_t )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeContextEvictMemory
|
|
if __use_win_types:
|
|
_zeContextEvictMemory_t = WINFUNCTYPE( ze_result_t, ze_context_handle_t, ze_device_handle_t, c_void_p, c_size_t )
|
|
else:
|
|
_zeContextEvictMemory_t = CFUNCTYPE( ze_result_t, ze_context_handle_t, ze_device_handle_t, c_void_p, c_size_t )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeContextMakeImageResident
|
|
if __use_win_types:
|
|
_zeContextMakeImageResident_t = WINFUNCTYPE( ze_result_t, ze_context_handle_t, ze_device_handle_t, ze_image_handle_t )
|
|
else:
|
|
_zeContextMakeImageResident_t = CFUNCTYPE( ze_result_t, ze_context_handle_t, ze_device_handle_t, ze_image_handle_t )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeContextEvictImage
|
|
if __use_win_types:
|
|
_zeContextEvictImage_t = WINFUNCTYPE( ze_result_t, ze_context_handle_t, ze_device_handle_t, ze_image_handle_t )
|
|
else:
|
|
_zeContextEvictImage_t = CFUNCTYPE( ze_result_t, ze_context_handle_t, ze_device_handle_t, ze_image_handle_t )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeContextCreateEx
|
|
if __use_win_types:
|
|
_zeContextCreateEx_t = WINFUNCTYPE( ze_result_t, ze_driver_handle_t, POINTER(ze_context_desc_t), c_ulong, POINTER(ze_device_handle_t), POINTER(ze_context_handle_t) )
|
|
else:
|
|
_zeContextCreateEx_t = CFUNCTYPE( ze_result_t, ze_driver_handle_t, POINTER(ze_context_desc_t), c_ulong, POINTER(ze_device_handle_t), POINTER(ze_context_handle_t) )
|
|
|
|
|
|
###############################################################################
|
|
## @brief Table of Context functions pointers
|
|
class _ze_context_dditable_t(Structure):
|
|
_fields_ = [
|
|
("pfnCreate", c_void_p), ## _zeContextCreate_t
|
|
("pfnDestroy", c_void_p), ## _zeContextDestroy_t
|
|
("pfnGetStatus", c_void_p), ## _zeContextGetStatus_t
|
|
("pfnSystemBarrier", c_void_p), ## _zeContextSystemBarrier_t
|
|
("pfnMakeMemoryResident", c_void_p), ## _zeContextMakeMemoryResident_t
|
|
("pfnEvictMemory", c_void_p), ## _zeContextEvictMemory_t
|
|
("pfnMakeImageResident", c_void_p), ## _zeContextMakeImageResident_t
|
|
("pfnEvictImage", c_void_p), ## _zeContextEvictImage_t
|
|
("pfnCreateEx", c_void_p) ## _zeContextCreateEx_t
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeCommandQueueCreate
|
|
if __use_win_types:
|
|
_zeCommandQueueCreate_t = WINFUNCTYPE( ze_result_t, ze_context_handle_t, ze_device_handle_t, POINTER(ze_command_queue_desc_t), POINTER(ze_command_queue_handle_t) )
|
|
else:
|
|
_zeCommandQueueCreate_t = CFUNCTYPE( ze_result_t, ze_context_handle_t, ze_device_handle_t, POINTER(ze_command_queue_desc_t), POINTER(ze_command_queue_handle_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeCommandQueueDestroy
|
|
if __use_win_types:
|
|
_zeCommandQueueDestroy_t = WINFUNCTYPE( ze_result_t, ze_command_queue_handle_t )
|
|
else:
|
|
_zeCommandQueueDestroy_t = CFUNCTYPE( ze_result_t, ze_command_queue_handle_t )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeCommandQueueExecuteCommandLists
|
|
if __use_win_types:
|
|
_zeCommandQueueExecuteCommandLists_t = WINFUNCTYPE( ze_result_t, ze_command_queue_handle_t, c_ulong, POINTER(ze_command_list_handle_t), ze_fence_handle_t )
|
|
else:
|
|
_zeCommandQueueExecuteCommandLists_t = CFUNCTYPE( ze_result_t, ze_command_queue_handle_t, c_ulong, POINTER(ze_command_list_handle_t), ze_fence_handle_t )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeCommandQueueSynchronize
|
|
if __use_win_types:
|
|
_zeCommandQueueSynchronize_t = WINFUNCTYPE( ze_result_t, ze_command_queue_handle_t, c_ulonglong )
|
|
else:
|
|
_zeCommandQueueSynchronize_t = CFUNCTYPE( ze_result_t, ze_command_queue_handle_t, c_ulonglong )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeCommandQueueGetOrdinal
|
|
if __use_win_types:
|
|
_zeCommandQueueGetOrdinal_t = WINFUNCTYPE( ze_result_t, ze_command_queue_handle_t, POINTER(c_ulong) )
|
|
else:
|
|
_zeCommandQueueGetOrdinal_t = CFUNCTYPE( ze_result_t, ze_command_queue_handle_t, POINTER(c_ulong) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeCommandQueueGetIndex
|
|
if __use_win_types:
|
|
_zeCommandQueueGetIndex_t = WINFUNCTYPE( ze_result_t, ze_command_queue_handle_t, POINTER(c_ulong) )
|
|
else:
|
|
_zeCommandQueueGetIndex_t = CFUNCTYPE( ze_result_t, ze_command_queue_handle_t, POINTER(c_ulong) )
|
|
|
|
|
|
###############################################################################
|
|
## @brief Table of CommandQueue functions pointers
|
|
class _ze_command_queue_dditable_t(Structure):
|
|
_fields_ = [
|
|
("pfnCreate", c_void_p), ## _zeCommandQueueCreate_t
|
|
("pfnDestroy", c_void_p), ## _zeCommandQueueDestroy_t
|
|
("pfnExecuteCommandLists", c_void_p), ## _zeCommandQueueExecuteCommandLists_t
|
|
("pfnSynchronize", c_void_p), ## _zeCommandQueueSynchronize_t
|
|
("pfnGetOrdinal", c_void_p), ## _zeCommandQueueGetOrdinal_t
|
|
("pfnGetIndex", c_void_p) ## _zeCommandQueueGetIndex_t
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeCommandListCreate
|
|
if __use_win_types:
|
|
_zeCommandListCreate_t = WINFUNCTYPE( ze_result_t, ze_context_handle_t, ze_device_handle_t, POINTER(ze_command_list_desc_t), POINTER(ze_command_list_handle_t) )
|
|
else:
|
|
_zeCommandListCreate_t = CFUNCTYPE( ze_result_t, ze_context_handle_t, ze_device_handle_t, POINTER(ze_command_list_desc_t), POINTER(ze_command_list_handle_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeCommandListCreateImmediate
|
|
if __use_win_types:
|
|
_zeCommandListCreateImmediate_t = WINFUNCTYPE( ze_result_t, ze_context_handle_t, ze_device_handle_t, POINTER(ze_command_queue_desc_t), POINTER(ze_command_list_handle_t) )
|
|
else:
|
|
_zeCommandListCreateImmediate_t = CFUNCTYPE( ze_result_t, ze_context_handle_t, ze_device_handle_t, POINTER(ze_command_queue_desc_t), POINTER(ze_command_list_handle_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeCommandListDestroy
|
|
if __use_win_types:
|
|
_zeCommandListDestroy_t = WINFUNCTYPE( ze_result_t, ze_command_list_handle_t )
|
|
else:
|
|
_zeCommandListDestroy_t = CFUNCTYPE( ze_result_t, ze_command_list_handle_t )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeCommandListClose
|
|
if __use_win_types:
|
|
_zeCommandListClose_t = WINFUNCTYPE( ze_result_t, ze_command_list_handle_t )
|
|
else:
|
|
_zeCommandListClose_t = CFUNCTYPE( ze_result_t, ze_command_list_handle_t )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeCommandListReset
|
|
if __use_win_types:
|
|
_zeCommandListReset_t = WINFUNCTYPE( ze_result_t, ze_command_list_handle_t )
|
|
else:
|
|
_zeCommandListReset_t = CFUNCTYPE( ze_result_t, ze_command_list_handle_t )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeCommandListAppendWriteGlobalTimestamp
|
|
if __use_win_types:
|
|
_zeCommandListAppendWriteGlobalTimestamp_t = WINFUNCTYPE( ze_result_t, ze_command_list_handle_t, POINTER(c_ulonglong), ze_event_handle_t, c_ulong, POINTER(ze_event_handle_t) )
|
|
else:
|
|
_zeCommandListAppendWriteGlobalTimestamp_t = CFUNCTYPE( ze_result_t, ze_command_list_handle_t, POINTER(c_ulonglong), ze_event_handle_t, c_ulong, POINTER(ze_event_handle_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeCommandListAppendBarrier
|
|
if __use_win_types:
|
|
_zeCommandListAppendBarrier_t = WINFUNCTYPE( ze_result_t, ze_command_list_handle_t, ze_event_handle_t, c_ulong, POINTER(ze_event_handle_t) )
|
|
else:
|
|
_zeCommandListAppendBarrier_t = CFUNCTYPE( ze_result_t, ze_command_list_handle_t, ze_event_handle_t, c_ulong, POINTER(ze_event_handle_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeCommandListAppendMemoryRangesBarrier
|
|
if __use_win_types:
|
|
_zeCommandListAppendMemoryRangesBarrier_t = WINFUNCTYPE( ze_result_t, ze_command_list_handle_t, c_ulong, POINTER(c_size_t), POINTER(c_void_p), ze_event_handle_t, c_ulong, POINTER(ze_event_handle_t) )
|
|
else:
|
|
_zeCommandListAppendMemoryRangesBarrier_t = CFUNCTYPE( ze_result_t, ze_command_list_handle_t, c_ulong, POINTER(c_size_t), POINTER(c_void_p), ze_event_handle_t, c_ulong, POINTER(ze_event_handle_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeCommandListAppendMemoryCopy
|
|
if __use_win_types:
|
|
_zeCommandListAppendMemoryCopy_t = WINFUNCTYPE( ze_result_t, ze_command_list_handle_t, c_void_p, c_void_p, c_size_t, ze_event_handle_t, c_ulong, POINTER(ze_event_handle_t) )
|
|
else:
|
|
_zeCommandListAppendMemoryCopy_t = CFUNCTYPE( ze_result_t, ze_command_list_handle_t, c_void_p, c_void_p, c_size_t, ze_event_handle_t, c_ulong, POINTER(ze_event_handle_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeCommandListAppendMemoryFill
|
|
if __use_win_types:
|
|
_zeCommandListAppendMemoryFill_t = WINFUNCTYPE( ze_result_t, ze_command_list_handle_t, c_void_p, c_void_p, c_size_t, c_size_t, ze_event_handle_t, c_ulong, POINTER(ze_event_handle_t) )
|
|
else:
|
|
_zeCommandListAppendMemoryFill_t = CFUNCTYPE( ze_result_t, ze_command_list_handle_t, c_void_p, c_void_p, c_size_t, c_size_t, ze_event_handle_t, c_ulong, POINTER(ze_event_handle_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeCommandListAppendMemoryCopyRegion
|
|
if __use_win_types:
|
|
_zeCommandListAppendMemoryCopyRegion_t = WINFUNCTYPE( ze_result_t, ze_command_list_handle_t, c_void_p, POINTER(ze_copy_region_t), c_ulong, c_ulong, c_void_p, POINTER(ze_copy_region_t), c_ulong, c_ulong, ze_event_handle_t, c_ulong, POINTER(ze_event_handle_t) )
|
|
else:
|
|
_zeCommandListAppendMemoryCopyRegion_t = CFUNCTYPE( ze_result_t, ze_command_list_handle_t, c_void_p, POINTER(ze_copy_region_t), c_ulong, c_ulong, c_void_p, POINTER(ze_copy_region_t), c_ulong, c_ulong, ze_event_handle_t, c_ulong, POINTER(ze_event_handle_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeCommandListAppendMemoryCopyFromContext
|
|
if __use_win_types:
|
|
_zeCommandListAppendMemoryCopyFromContext_t = WINFUNCTYPE( ze_result_t, ze_command_list_handle_t, c_void_p, ze_context_handle_t, c_void_p, c_size_t, ze_event_handle_t, c_ulong, POINTER(ze_event_handle_t) )
|
|
else:
|
|
_zeCommandListAppendMemoryCopyFromContext_t = CFUNCTYPE( ze_result_t, ze_command_list_handle_t, c_void_p, ze_context_handle_t, c_void_p, c_size_t, ze_event_handle_t, c_ulong, POINTER(ze_event_handle_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeCommandListAppendImageCopy
|
|
if __use_win_types:
|
|
_zeCommandListAppendImageCopy_t = WINFUNCTYPE( ze_result_t, ze_command_list_handle_t, ze_image_handle_t, ze_image_handle_t, ze_event_handle_t, c_ulong, POINTER(ze_event_handle_t) )
|
|
else:
|
|
_zeCommandListAppendImageCopy_t = CFUNCTYPE( ze_result_t, ze_command_list_handle_t, ze_image_handle_t, ze_image_handle_t, ze_event_handle_t, c_ulong, POINTER(ze_event_handle_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeCommandListAppendImageCopyRegion
|
|
if __use_win_types:
|
|
_zeCommandListAppendImageCopyRegion_t = WINFUNCTYPE( ze_result_t, ze_command_list_handle_t, ze_image_handle_t, ze_image_handle_t, POINTER(ze_image_region_t), POINTER(ze_image_region_t), ze_event_handle_t, c_ulong, POINTER(ze_event_handle_t) )
|
|
else:
|
|
_zeCommandListAppendImageCopyRegion_t = CFUNCTYPE( ze_result_t, ze_command_list_handle_t, ze_image_handle_t, ze_image_handle_t, POINTER(ze_image_region_t), POINTER(ze_image_region_t), ze_event_handle_t, c_ulong, POINTER(ze_event_handle_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeCommandListAppendImageCopyToMemory
|
|
if __use_win_types:
|
|
_zeCommandListAppendImageCopyToMemory_t = WINFUNCTYPE( ze_result_t, ze_command_list_handle_t, c_void_p, ze_image_handle_t, POINTER(ze_image_region_t), ze_event_handle_t, c_ulong, POINTER(ze_event_handle_t) )
|
|
else:
|
|
_zeCommandListAppendImageCopyToMemory_t = CFUNCTYPE( ze_result_t, ze_command_list_handle_t, c_void_p, ze_image_handle_t, POINTER(ze_image_region_t), ze_event_handle_t, c_ulong, POINTER(ze_event_handle_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeCommandListAppendImageCopyFromMemory
|
|
if __use_win_types:
|
|
_zeCommandListAppendImageCopyFromMemory_t = WINFUNCTYPE( ze_result_t, ze_command_list_handle_t, ze_image_handle_t, c_void_p, POINTER(ze_image_region_t), ze_event_handle_t, c_ulong, POINTER(ze_event_handle_t) )
|
|
else:
|
|
_zeCommandListAppendImageCopyFromMemory_t = CFUNCTYPE( ze_result_t, ze_command_list_handle_t, ze_image_handle_t, c_void_p, POINTER(ze_image_region_t), ze_event_handle_t, c_ulong, POINTER(ze_event_handle_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeCommandListAppendMemoryPrefetch
|
|
if __use_win_types:
|
|
_zeCommandListAppendMemoryPrefetch_t = WINFUNCTYPE( ze_result_t, ze_command_list_handle_t, c_void_p, c_size_t )
|
|
else:
|
|
_zeCommandListAppendMemoryPrefetch_t = CFUNCTYPE( ze_result_t, ze_command_list_handle_t, c_void_p, c_size_t )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeCommandListAppendMemAdvise
|
|
if __use_win_types:
|
|
_zeCommandListAppendMemAdvise_t = WINFUNCTYPE( ze_result_t, ze_command_list_handle_t, ze_device_handle_t, c_void_p, c_size_t, ze_memory_advice_t )
|
|
else:
|
|
_zeCommandListAppendMemAdvise_t = CFUNCTYPE( ze_result_t, ze_command_list_handle_t, ze_device_handle_t, c_void_p, c_size_t, ze_memory_advice_t )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeCommandListAppendSignalEvent
|
|
if __use_win_types:
|
|
_zeCommandListAppendSignalEvent_t = WINFUNCTYPE( ze_result_t, ze_command_list_handle_t, ze_event_handle_t )
|
|
else:
|
|
_zeCommandListAppendSignalEvent_t = CFUNCTYPE( ze_result_t, ze_command_list_handle_t, ze_event_handle_t )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeCommandListAppendWaitOnEvents
|
|
if __use_win_types:
|
|
_zeCommandListAppendWaitOnEvents_t = WINFUNCTYPE( ze_result_t, ze_command_list_handle_t, c_ulong, POINTER(ze_event_handle_t) )
|
|
else:
|
|
_zeCommandListAppendWaitOnEvents_t = CFUNCTYPE( ze_result_t, ze_command_list_handle_t, c_ulong, POINTER(ze_event_handle_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeCommandListAppendEventReset
|
|
if __use_win_types:
|
|
_zeCommandListAppendEventReset_t = WINFUNCTYPE( ze_result_t, ze_command_list_handle_t, ze_event_handle_t )
|
|
else:
|
|
_zeCommandListAppendEventReset_t = CFUNCTYPE( ze_result_t, ze_command_list_handle_t, ze_event_handle_t )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeCommandListAppendQueryKernelTimestamps
|
|
if __use_win_types:
|
|
_zeCommandListAppendQueryKernelTimestamps_t = WINFUNCTYPE( ze_result_t, ze_command_list_handle_t, c_ulong, POINTER(ze_event_handle_t), c_void_p, POINTER(c_size_t), ze_event_handle_t, c_ulong, POINTER(ze_event_handle_t) )
|
|
else:
|
|
_zeCommandListAppendQueryKernelTimestamps_t = CFUNCTYPE( ze_result_t, ze_command_list_handle_t, c_ulong, POINTER(ze_event_handle_t), c_void_p, POINTER(c_size_t), ze_event_handle_t, c_ulong, POINTER(ze_event_handle_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeCommandListAppendLaunchKernel
|
|
if __use_win_types:
|
|
_zeCommandListAppendLaunchKernel_t = WINFUNCTYPE( ze_result_t, ze_command_list_handle_t, ze_kernel_handle_t, POINTER(ze_group_count_t), ze_event_handle_t, c_ulong, POINTER(ze_event_handle_t) )
|
|
else:
|
|
_zeCommandListAppendLaunchKernel_t = CFUNCTYPE( ze_result_t, ze_command_list_handle_t, ze_kernel_handle_t, POINTER(ze_group_count_t), ze_event_handle_t, c_ulong, POINTER(ze_event_handle_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeCommandListAppendLaunchCooperativeKernel
|
|
if __use_win_types:
|
|
_zeCommandListAppendLaunchCooperativeKernel_t = WINFUNCTYPE( ze_result_t, ze_command_list_handle_t, ze_kernel_handle_t, POINTER(ze_group_count_t), ze_event_handle_t, c_ulong, POINTER(ze_event_handle_t) )
|
|
else:
|
|
_zeCommandListAppendLaunchCooperativeKernel_t = CFUNCTYPE( ze_result_t, ze_command_list_handle_t, ze_kernel_handle_t, POINTER(ze_group_count_t), ze_event_handle_t, c_ulong, POINTER(ze_event_handle_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeCommandListAppendLaunchKernelIndirect
|
|
if __use_win_types:
|
|
_zeCommandListAppendLaunchKernelIndirect_t = WINFUNCTYPE( ze_result_t, ze_command_list_handle_t, ze_kernel_handle_t, POINTER(ze_group_count_t), ze_event_handle_t, c_ulong, POINTER(ze_event_handle_t) )
|
|
else:
|
|
_zeCommandListAppendLaunchKernelIndirect_t = CFUNCTYPE( ze_result_t, ze_command_list_handle_t, ze_kernel_handle_t, POINTER(ze_group_count_t), ze_event_handle_t, c_ulong, POINTER(ze_event_handle_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeCommandListAppendLaunchMultipleKernelsIndirect
|
|
if __use_win_types:
|
|
_zeCommandListAppendLaunchMultipleKernelsIndirect_t = WINFUNCTYPE( ze_result_t, ze_command_list_handle_t, c_ulong, POINTER(ze_kernel_handle_t), POINTER(c_ulong), POINTER(ze_group_count_t), ze_event_handle_t, c_ulong, POINTER(ze_event_handle_t) )
|
|
else:
|
|
_zeCommandListAppendLaunchMultipleKernelsIndirect_t = CFUNCTYPE( ze_result_t, ze_command_list_handle_t, c_ulong, POINTER(ze_kernel_handle_t), POINTER(c_ulong), POINTER(ze_group_count_t), ze_event_handle_t, c_ulong, POINTER(ze_event_handle_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeCommandListAppendImageCopyToMemoryExt
|
|
if __use_win_types:
|
|
_zeCommandListAppendImageCopyToMemoryExt_t = WINFUNCTYPE( ze_result_t, ze_command_list_handle_t, c_void_p, ze_image_handle_t, POINTER(ze_image_region_t), c_ulong, c_ulong, ze_event_handle_t, c_ulong, POINTER(ze_event_handle_t) )
|
|
else:
|
|
_zeCommandListAppendImageCopyToMemoryExt_t = CFUNCTYPE( ze_result_t, ze_command_list_handle_t, c_void_p, ze_image_handle_t, POINTER(ze_image_region_t), c_ulong, c_ulong, ze_event_handle_t, c_ulong, POINTER(ze_event_handle_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeCommandListAppendImageCopyFromMemoryExt
|
|
if __use_win_types:
|
|
_zeCommandListAppendImageCopyFromMemoryExt_t = WINFUNCTYPE( ze_result_t, ze_command_list_handle_t, ze_image_handle_t, c_void_p, POINTER(ze_image_region_t), c_ulong, c_ulong, ze_event_handle_t, c_ulong, POINTER(ze_event_handle_t) )
|
|
else:
|
|
_zeCommandListAppendImageCopyFromMemoryExt_t = CFUNCTYPE( ze_result_t, ze_command_list_handle_t, ze_image_handle_t, c_void_p, POINTER(ze_image_region_t), c_ulong, c_ulong, ze_event_handle_t, c_ulong, POINTER(ze_event_handle_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeCommandListHostSynchronize
|
|
if __use_win_types:
|
|
_zeCommandListHostSynchronize_t = WINFUNCTYPE( ze_result_t, ze_command_list_handle_t, c_ulonglong )
|
|
else:
|
|
_zeCommandListHostSynchronize_t = CFUNCTYPE( ze_result_t, ze_command_list_handle_t, c_ulonglong )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeCommandListGetDeviceHandle
|
|
if __use_win_types:
|
|
_zeCommandListGetDeviceHandle_t = WINFUNCTYPE( ze_result_t, ze_command_list_handle_t, POINTER(ze_device_handle_t) )
|
|
else:
|
|
_zeCommandListGetDeviceHandle_t = CFUNCTYPE( ze_result_t, ze_command_list_handle_t, POINTER(ze_device_handle_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeCommandListGetContextHandle
|
|
if __use_win_types:
|
|
_zeCommandListGetContextHandle_t = WINFUNCTYPE( ze_result_t, ze_command_list_handle_t, POINTER(ze_context_handle_t) )
|
|
else:
|
|
_zeCommandListGetContextHandle_t = CFUNCTYPE( ze_result_t, ze_command_list_handle_t, POINTER(ze_context_handle_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeCommandListGetOrdinal
|
|
if __use_win_types:
|
|
_zeCommandListGetOrdinal_t = WINFUNCTYPE( ze_result_t, ze_command_list_handle_t, POINTER(c_ulong) )
|
|
else:
|
|
_zeCommandListGetOrdinal_t = CFUNCTYPE( ze_result_t, ze_command_list_handle_t, POINTER(c_ulong) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeCommandListImmediateGetIndex
|
|
if __use_win_types:
|
|
_zeCommandListImmediateGetIndex_t = WINFUNCTYPE( ze_result_t, ze_command_list_handle_t, POINTER(c_ulong) )
|
|
else:
|
|
_zeCommandListImmediateGetIndex_t = CFUNCTYPE( ze_result_t, ze_command_list_handle_t, POINTER(c_ulong) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeCommandListIsImmediate
|
|
if __use_win_types:
|
|
_zeCommandListIsImmediate_t = WINFUNCTYPE( ze_result_t, ze_command_list_handle_t, POINTER(ze_bool_t) )
|
|
else:
|
|
_zeCommandListIsImmediate_t = CFUNCTYPE( ze_result_t, ze_command_list_handle_t, POINTER(ze_bool_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeCommandListAppendSignalExternalSemaphoreExt
|
|
if __use_win_types:
|
|
_zeCommandListAppendSignalExternalSemaphoreExt_t = WINFUNCTYPE( ze_result_t, ze_command_list_handle_t, c_ulong, POINTER(ze_external_semaphore_ext_handle_t), POINTER(ze_external_semaphore_signal_params_ext_t), ze_event_handle_t, c_ulong, POINTER(ze_event_handle_t) )
|
|
else:
|
|
_zeCommandListAppendSignalExternalSemaphoreExt_t = CFUNCTYPE( ze_result_t, ze_command_list_handle_t, c_ulong, POINTER(ze_external_semaphore_ext_handle_t), POINTER(ze_external_semaphore_signal_params_ext_t), ze_event_handle_t, c_ulong, POINTER(ze_event_handle_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeCommandListAppendWaitExternalSemaphoreExt
|
|
if __use_win_types:
|
|
_zeCommandListAppendWaitExternalSemaphoreExt_t = WINFUNCTYPE( ze_result_t, ze_command_list_handle_t, c_ulong, POINTER(ze_external_semaphore_ext_handle_t), POINTER(ze_external_semaphore_wait_params_ext_t), ze_event_handle_t, c_ulong, POINTER(ze_event_handle_t) )
|
|
else:
|
|
_zeCommandListAppendWaitExternalSemaphoreExt_t = CFUNCTYPE( ze_result_t, ze_command_list_handle_t, c_ulong, POINTER(ze_external_semaphore_ext_handle_t), POINTER(ze_external_semaphore_wait_params_ext_t), ze_event_handle_t, c_ulong, POINTER(ze_event_handle_t) )
|
|
|
|
|
|
###############################################################################
|
|
## @brief Table of CommandList functions pointers
|
|
class _ze_command_list_dditable_t(Structure):
|
|
_fields_ = [
|
|
("pfnCreate", c_void_p), ## _zeCommandListCreate_t
|
|
("pfnCreateImmediate", c_void_p), ## _zeCommandListCreateImmediate_t
|
|
("pfnDestroy", c_void_p), ## _zeCommandListDestroy_t
|
|
("pfnClose", c_void_p), ## _zeCommandListClose_t
|
|
("pfnReset", c_void_p), ## _zeCommandListReset_t
|
|
("pfnAppendWriteGlobalTimestamp", c_void_p), ## _zeCommandListAppendWriteGlobalTimestamp_t
|
|
("pfnAppendBarrier", c_void_p), ## _zeCommandListAppendBarrier_t
|
|
("pfnAppendMemoryRangesBarrier", c_void_p), ## _zeCommandListAppendMemoryRangesBarrier_t
|
|
("pfnAppendMemoryCopy", c_void_p), ## _zeCommandListAppendMemoryCopy_t
|
|
("pfnAppendMemoryFill", c_void_p), ## _zeCommandListAppendMemoryFill_t
|
|
("pfnAppendMemoryCopyRegion", c_void_p), ## _zeCommandListAppendMemoryCopyRegion_t
|
|
("pfnAppendMemoryCopyFromContext", c_void_p), ## _zeCommandListAppendMemoryCopyFromContext_t
|
|
("pfnAppendImageCopy", c_void_p), ## _zeCommandListAppendImageCopy_t
|
|
("pfnAppendImageCopyRegion", c_void_p), ## _zeCommandListAppendImageCopyRegion_t
|
|
("pfnAppendImageCopyToMemory", c_void_p), ## _zeCommandListAppendImageCopyToMemory_t
|
|
("pfnAppendImageCopyFromMemory", c_void_p), ## _zeCommandListAppendImageCopyFromMemory_t
|
|
("pfnAppendMemoryPrefetch", c_void_p), ## _zeCommandListAppendMemoryPrefetch_t
|
|
("pfnAppendMemAdvise", c_void_p), ## _zeCommandListAppendMemAdvise_t
|
|
("pfnAppendSignalEvent", c_void_p), ## _zeCommandListAppendSignalEvent_t
|
|
("pfnAppendWaitOnEvents", c_void_p), ## _zeCommandListAppendWaitOnEvents_t
|
|
("pfnAppendEventReset", c_void_p), ## _zeCommandListAppendEventReset_t
|
|
("pfnAppendQueryKernelTimestamps", c_void_p), ## _zeCommandListAppendQueryKernelTimestamps_t
|
|
("pfnAppendLaunchKernel", c_void_p), ## _zeCommandListAppendLaunchKernel_t
|
|
("pfnAppendLaunchCooperativeKernel", c_void_p), ## _zeCommandListAppendLaunchCooperativeKernel_t
|
|
("pfnAppendLaunchKernelIndirect", c_void_p), ## _zeCommandListAppendLaunchKernelIndirect_t
|
|
("pfnAppendLaunchMultipleKernelsIndirect", c_void_p), ## _zeCommandListAppendLaunchMultipleKernelsIndirect_t
|
|
("pfnAppendImageCopyToMemoryExt", c_void_p), ## _zeCommandListAppendImageCopyToMemoryExt_t
|
|
("pfnAppendImageCopyFromMemoryExt", c_void_p), ## _zeCommandListAppendImageCopyFromMemoryExt_t
|
|
("pfnHostSynchronize", c_void_p), ## _zeCommandListHostSynchronize_t
|
|
("pfnGetDeviceHandle", c_void_p), ## _zeCommandListGetDeviceHandle_t
|
|
("pfnGetContextHandle", c_void_p), ## _zeCommandListGetContextHandle_t
|
|
("pfnGetOrdinal", c_void_p), ## _zeCommandListGetOrdinal_t
|
|
("pfnImmediateGetIndex", c_void_p), ## _zeCommandListImmediateGetIndex_t
|
|
("pfnIsImmediate", c_void_p), ## _zeCommandListIsImmediate_t
|
|
("pfnAppendSignalExternalSemaphoreExt", c_void_p), ## _zeCommandListAppendSignalExternalSemaphoreExt_t
|
|
("pfnAppendWaitExternalSemaphoreExt", c_void_p) ## _zeCommandListAppendWaitExternalSemaphoreExt_t
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeCommandListCreateCloneExp
|
|
if __use_win_types:
|
|
_zeCommandListCreateCloneExp_t = WINFUNCTYPE( ze_result_t, ze_command_list_handle_t, POINTER(ze_command_list_handle_t) )
|
|
else:
|
|
_zeCommandListCreateCloneExp_t = CFUNCTYPE( ze_result_t, ze_command_list_handle_t, POINTER(ze_command_list_handle_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeCommandListImmediateAppendCommandListsExp
|
|
if __use_win_types:
|
|
_zeCommandListImmediateAppendCommandListsExp_t = WINFUNCTYPE( ze_result_t, ze_command_list_handle_t, c_ulong, POINTER(ze_command_list_handle_t), ze_event_handle_t, c_ulong, POINTER(ze_event_handle_t) )
|
|
else:
|
|
_zeCommandListImmediateAppendCommandListsExp_t = CFUNCTYPE( ze_result_t, ze_command_list_handle_t, c_ulong, POINTER(ze_command_list_handle_t), ze_event_handle_t, c_ulong, POINTER(ze_event_handle_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeCommandListGetNextCommandIdExp
|
|
if __use_win_types:
|
|
_zeCommandListGetNextCommandIdExp_t = WINFUNCTYPE( ze_result_t, ze_command_list_handle_t, POINTER(ze_mutable_command_id_exp_desc_t), POINTER(c_ulonglong) )
|
|
else:
|
|
_zeCommandListGetNextCommandIdExp_t = CFUNCTYPE( ze_result_t, ze_command_list_handle_t, POINTER(ze_mutable_command_id_exp_desc_t), POINTER(c_ulonglong) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeCommandListUpdateMutableCommandsExp
|
|
if __use_win_types:
|
|
_zeCommandListUpdateMutableCommandsExp_t = WINFUNCTYPE( ze_result_t, ze_command_list_handle_t, POINTER(ze_mutable_commands_exp_desc_t) )
|
|
else:
|
|
_zeCommandListUpdateMutableCommandsExp_t = CFUNCTYPE( ze_result_t, ze_command_list_handle_t, POINTER(ze_mutable_commands_exp_desc_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeCommandListUpdateMutableCommandSignalEventExp
|
|
if __use_win_types:
|
|
_zeCommandListUpdateMutableCommandSignalEventExp_t = WINFUNCTYPE( ze_result_t, ze_command_list_handle_t, c_ulonglong, ze_event_handle_t )
|
|
else:
|
|
_zeCommandListUpdateMutableCommandSignalEventExp_t = CFUNCTYPE( ze_result_t, ze_command_list_handle_t, c_ulonglong, ze_event_handle_t )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeCommandListUpdateMutableCommandWaitEventsExp
|
|
if __use_win_types:
|
|
_zeCommandListUpdateMutableCommandWaitEventsExp_t = WINFUNCTYPE( ze_result_t, ze_command_list_handle_t, c_ulonglong, c_ulong, POINTER(ze_event_handle_t) )
|
|
else:
|
|
_zeCommandListUpdateMutableCommandWaitEventsExp_t = CFUNCTYPE( ze_result_t, ze_command_list_handle_t, c_ulonglong, c_ulong, POINTER(ze_event_handle_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeCommandListGetNextCommandIdWithKernelsExp
|
|
if __use_win_types:
|
|
_zeCommandListGetNextCommandIdWithKernelsExp_t = WINFUNCTYPE( ze_result_t, ze_command_list_handle_t, POINTER(ze_mutable_command_id_exp_desc_t), c_ulong, POINTER(ze_kernel_handle_t), POINTER(c_ulonglong) )
|
|
else:
|
|
_zeCommandListGetNextCommandIdWithKernelsExp_t = CFUNCTYPE( ze_result_t, ze_command_list_handle_t, POINTER(ze_mutable_command_id_exp_desc_t), c_ulong, POINTER(ze_kernel_handle_t), POINTER(c_ulonglong) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeCommandListUpdateMutableCommandKernelsExp
|
|
if __use_win_types:
|
|
_zeCommandListUpdateMutableCommandKernelsExp_t = WINFUNCTYPE( ze_result_t, ze_command_list_handle_t, c_ulong, POINTER(c_ulonglong), POINTER(ze_kernel_handle_t) )
|
|
else:
|
|
_zeCommandListUpdateMutableCommandKernelsExp_t = CFUNCTYPE( ze_result_t, ze_command_list_handle_t, c_ulong, POINTER(c_ulonglong), POINTER(ze_kernel_handle_t) )
|
|
|
|
|
|
###############################################################################
|
|
## @brief Table of CommandListExp functions pointers
|
|
class _ze_command_list_exp_dditable_t(Structure):
|
|
_fields_ = [
|
|
("pfnCreateCloneExp", c_void_p), ## _zeCommandListCreateCloneExp_t
|
|
("pfnImmediateAppendCommandListsExp", c_void_p), ## _zeCommandListImmediateAppendCommandListsExp_t
|
|
("pfnGetNextCommandIdExp", c_void_p), ## _zeCommandListGetNextCommandIdExp_t
|
|
("pfnUpdateMutableCommandsExp", c_void_p), ## _zeCommandListUpdateMutableCommandsExp_t
|
|
("pfnUpdateMutableCommandSignalEventExp", c_void_p), ## _zeCommandListUpdateMutableCommandSignalEventExp_t
|
|
("pfnUpdateMutableCommandWaitEventsExp", c_void_p), ## _zeCommandListUpdateMutableCommandWaitEventsExp_t
|
|
("pfnGetNextCommandIdWithKernelsExp", c_void_p), ## _zeCommandListGetNextCommandIdWithKernelsExp_t
|
|
("pfnUpdateMutableCommandKernelsExp", c_void_p) ## _zeCommandListUpdateMutableCommandKernelsExp_t
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeImageGetProperties
|
|
if __use_win_types:
|
|
_zeImageGetProperties_t = WINFUNCTYPE( ze_result_t, ze_device_handle_t, POINTER(ze_image_desc_t), POINTER(ze_image_properties_t) )
|
|
else:
|
|
_zeImageGetProperties_t = CFUNCTYPE( ze_result_t, ze_device_handle_t, POINTER(ze_image_desc_t), POINTER(ze_image_properties_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeImageCreate
|
|
if __use_win_types:
|
|
_zeImageCreate_t = WINFUNCTYPE( ze_result_t, ze_context_handle_t, ze_device_handle_t, POINTER(ze_image_desc_t), POINTER(ze_image_handle_t) )
|
|
else:
|
|
_zeImageCreate_t = CFUNCTYPE( ze_result_t, ze_context_handle_t, ze_device_handle_t, POINTER(ze_image_desc_t), POINTER(ze_image_handle_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeImageDestroy
|
|
if __use_win_types:
|
|
_zeImageDestroy_t = WINFUNCTYPE( ze_result_t, ze_image_handle_t )
|
|
else:
|
|
_zeImageDestroy_t = CFUNCTYPE( ze_result_t, ze_image_handle_t )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeImageGetAllocPropertiesExt
|
|
if __use_win_types:
|
|
_zeImageGetAllocPropertiesExt_t = WINFUNCTYPE( ze_result_t, ze_context_handle_t, ze_image_handle_t, POINTER(ze_image_allocation_ext_properties_t) )
|
|
else:
|
|
_zeImageGetAllocPropertiesExt_t = CFUNCTYPE( ze_result_t, ze_context_handle_t, ze_image_handle_t, POINTER(ze_image_allocation_ext_properties_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeImageViewCreateExt
|
|
if __use_win_types:
|
|
_zeImageViewCreateExt_t = WINFUNCTYPE( ze_result_t, ze_context_handle_t, ze_device_handle_t, POINTER(ze_image_desc_t), ze_image_handle_t, POINTER(ze_image_handle_t) )
|
|
else:
|
|
_zeImageViewCreateExt_t = CFUNCTYPE( ze_result_t, ze_context_handle_t, ze_device_handle_t, POINTER(ze_image_desc_t), ze_image_handle_t, POINTER(ze_image_handle_t) )
|
|
|
|
|
|
###############################################################################
|
|
## @brief Table of Image functions pointers
|
|
class _ze_image_dditable_t(Structure):
|
|
_fields_ = [
|
|
("pfnGetProperties", c_void_p), ## _zeImageGetProperties_t
|
|
("pfnCreate", c_void_p), ## _zeImageCreate_t
|
|
("pfnDestroy", c_void_p), ## _zeImageDestroy_t
|
|
("pfnGetAllocPropertiesExt", c_void_p), ## _zeImageGetAllocPropertiesExt_t
|
|
("pfnViewCreateExt", c_void_p) ## _zeImageViewCreateExt_t
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeImageGetMemoryPropertiesExp
|
|
if __use_win_types:
|
|
_zeImageGetMemoryPropertiesExp_t = WINFUNCTYPE( ze_result_t, ze_image_handle_t, POINTER(ze_image_memory_properties_exp_t) )
|
|
else:
|
|
_zeImageGetMemoryPropertiesExp_t = CFUNCTYPE( ze_result_t, ze_image_handle_t, POINTER(ze_image_memory_properties_exp_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeImageViewCreateExp
|
|
if __use_win_types:
|
|
_zeImageViewCreateExp_t = WINFUNCTYPE( ze_result_t, ze_context_handle_t, ze_device_handle_t, POINTER(ze_image_desc_t), ze_image_handle_t, POINTER(ze_image_handle_t) )
|
|
else:
|
|
_zeImageViewCreateExp_t = CFUNCTYPE( ze_result_t, ze_context_handle_t, ze_device_handle_t, POINTER(ze_image_desc_t), ze_image_handle_t, POINTER(ze_image_handle_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeImageGetDeviceOffsetExp
|
|
if __use_win_types:
|
|
_zeImageGetDeviceOffsetExp_t = WINFUNCTYPE( ze_result_t, ze_image_handle_t, POINTER(c_ulonglong) )
|
|
else:
|
|
_zeImageGetDeviceOffsetExp_t = CFUNCTYPE( ze_result_t, ze_image_handle_t, POINTER(c_ulonglong) )
|
|
|
|
|
|
###############################################################################
|
|
## @brief Table of ImageExp functions pointers
|
|
class _ze_image_exp_dditable_t(Structure):
|
|
_fields_ = [
|
|
("pfnGetMemoryPropertiesExp", c_void_p), ## _zeImageGetMemoryPropertiesExp_t
|
|
("pfnViewCreateExp", c_void_p), ## _zeImageViewCreateExp_t
|
|
("pfnGetDeviceOffsetExp", c_void_p) ## _zeImageGetDeviceOffsetExp_t
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeMemAllocShared
|
|
if __use_win_types:
|
|
_zeMemAllocShared_t = WINFUNCTYPE( ze_result_t, ze_context_handle_t, POINTER(ze_device_mem_alloc_desc_t), POINTER(ze_host_mem_alloc_desc_t), c_size_t, c_size_t, ze_device_handle_t, POINTER(c_void_p) )
|
|
else:
|
|
_zeMemAllocShared_t = CFUNCTYPE( ze_result_t, ze_context_handle_t, POINTER(ze_device_mem_alloc_desc_t), POINTER(ze_host_mem_alloc_desc_t), c_size_t, c_size_t, ze_device_handle_t, POINTER(c_void_p) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeMemAllocDevice
|
|
if __use_win_types:
|
|
_zeMemAllocDevice_t = WINFUNCTYPE( ze_result_t, ze_context_handle_t, POINTER(ze_device_mem_alloc_desc_t), c_size_t, c_size_t, ze_device_handle_t, POINTER(c_void_p) )
|
|
else:
|
|
_zeMemAllocDevice_t = CFUNCTYPE( ze_result_t, ze_context_handle_t, POINTER(ze_device_mem_alloc_desc_t), c_size_t, c_size_t, ze_device_handle_t, POINTER(c_void_p) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeMemAllocHost
|
|
if __use_win_types:
|
|
_zeMemAllocHost_t = WINFUNCTYPE( ze_result_t, ze_context_handle_t, POINTER(ze_host_mem_alloc_desc_t), c_size_t, c_size_t, POINTER(c_void_p) )
|
|
else:
|
|
_zeMemAllocHost_t = CFUNCTYPE( ze_result_t, ze_context_handle_t, POINTER(ze_host_mem_alloc_desc_t), c_size_t, c_size_t, POINTER(c_void_p) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeMemFree
|
|
if __use_win_types:
|
|
_zeMemFree_t = WINFUNCTYPE( ze_result_t, ze_context_handle_t, c_void_p )
|
|
else:
|
|
_zeMemFree_t = CFUNCTYPE( ze_result_t, ze_context_handle_t, c_void_p )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeMemGetAllocProperties
|
|
if __use_win_types:
|
|
_zeMemGetAllocProperties_t = WINFUNCTYPE( ze_result_t, ze_context_handle_t, c_void_p, POINTER(ze_memory_allocation_properties_t), POINTER(ze_device_handle_t) )
|
|
else:
|
|
_zeMemGetAllocProperties_t = CFUNCTYPE( ze_result_t, ze_context_handle_t, c_void_p, POINTER(ze_memory_allocation_properties_t), POINTER(ze_device_handle_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeMemGetAddressRange
|
|
if __use_win_types:
|
|
_zeMemGetAddressRange_t = WINFUNCTYPE( ze_result_t, ze_context_handle_t, c_void_p, POINTER(c_void_p), POINTER(c_size_t) )
|
|
else:
|
|
_zeMemGetAddressRange_t = CFUNCTYPE( ze_result_t, ze_context_handle_t, c_void_p, POINTER(c_void_p), POINTER(c_size_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeMemGetIpcHandle
|
|
if __use_win_types:
|
|
_zeMemGetIpcHandle_t = WINFUNCTYPE( ze_result_t, ze_context_handle_t, c_void_p, POINTER(ze_ipc_mem_handle_t) )
|
|
else:
|
|
_zeMemGetIpcHandle_t = CFUNCTYPE( ze_result_t, ze_context_handle_t, c_void_p, POINTER(ze_ipc_mem_handle_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeMemOpenIpcHandle
|
|
if __use_win_types:
|
|
_zeMemOpenIpcHandle_t = WINFUNCTYPE( ze_result_t, ze_context_handle_t, ze_device_handle_t, ze_ipc_mem_handle_t, ze_ipc_memory_flags_t, POINTER(c_void_p) )
|
|
else:
|
|
_zeMemOpenIpcHandle_t = CFUNCTYPE( ze_result_t, ze_context_handle_t, ze_device_handle_t, ze_ipc_mem_handle_t, ze_ipc_memory_flags_t, POINTER(c_void_p) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeMemCloseIpcHandle
|
|
if __use_win_types:
|
|
_zeMemCloseIpcHandle_t = WINFUNCTYPE( ze_result_t, ze_context_handle_t, c_void_p )
|
|
else:
|
|
_zeMemCloseIpcHandle_t = CFUNCTYPE( ze_result_t, ze_context_handle_t, c_void_p )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeMemFreeExt
|
|
if __use_win_types:
|
|
_zeMemFreeExt_t = WINFUNCTYPE( ze_result_t, ze_context_handle_t, POINTER(ze_memory_free_ext_desc_t), c_void_p )
|
|
else:
|
|
_zeMemFreeExt_t = CFUNCTYPE( ze_result_t, ze_context_handle_t, POINTER(ze_memory_free_ext_desc_t), c_void_p )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeMemPutIpcHandle
|
|
if __use_win_types:
|
|
_zeMemPutIpcHandle_t = WINFUNCTYPE( ze_result_t, ze_context_handle_t, ze_ipc_mem_handle_t )
|
|
else:
|
|
_zeMemPutIpcHandle_t = CFUNCTYPE( ze_result_t, ze_context_handle_t, ze_ipc_mem_handle_t )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeMemGetPitchFor2dImage
|
|
if __use_win_types:
|
|
_zeMemGetPitchFor2dImage_t = WINFUNCTYPE( ze_result_t, ze_context_handle_t, ze_device_handle_t, c_size_t, c_size_t, c_int, * )
|
|
else:
|
|
_zeMemGetPitchFor2dImage_t = CFUNCTYPE( ze_result_t, ze_context_handle_t, ze_device_handle_t, c_size_t, c_size_t, c_int, * )
|
|
|
|
|
|
###############################################################################
|
|
## @brief Table of Mem functions pointers
|
|
class _ze_mem_dditable_t(Structure):
|
|
_fields_ = [
|
|
("pfnAllocShared", c_void_p), ## _zeMemAllocShared_t
|
|
("pfnAllocDevice", c_void_p), ## _zeMemAllocDevice_t
|
|
("pfnAllocHost", c_void_p), ## _zeMemAllocHost_t
|
|
("pfnFree", c_void_p), ## _zeMemFree_t
|
|
("pfnGetAllocProperties", c_void_p), ## _zeMemGetAllocProperties_t
|
|
("pfnGetAddressRange", c_void_p), ## _zeMemGetAddressRange_t
|
|
("pfnGetIpcHandle", c_void_p), ## _zeMemGetIpcHandle_t
|
|
("pfnOpenIpcHandle", c_void_p), ## _zeMemOpenIpcHandle_t
|
|
("pfnCloseIpcHandle", c_void_p), ## _zeMemCloseIpcHandle_t
|
|
("pfnFreeExt", c_void_p), ## _zeMemFreeExt_t
|
|
("pfnPutIpcHandle", c_void_p), ## _zeMemPutIpcHandle_t
|
|
("pfnGetPitchFor2dImage", c_void_p) ## _zeMemGetPitchFor2dImage_t
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeMemGetIpcHandleFromFileDescriptorExp
|
|
if __use_win_types:
|
|
_zeMemGetIpcHandleFromFileDescriptorExp_t = WINFUNCTYPE( ze_result_t, ze_context_handle_t, c_ulonglong, POINTER(ze_ipc_mem_handle_t) )
|
|
else:
|
|
_zeMemGetIpcHandleFromFileDescriptorExp_t = CFUNCTYPE( ze_result_t, ze_context_handle_t, c_ulonglong, POINTER(ze_ipc_mem_handle_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeMemGetFileDescriptorFromIpcHandleExp
|
|
if __use_win_types:
|
|
_zeMemGetFileDescriptorFromIpcHandleExp_t = WINFUNCTYPE( ze_result_t, ze_context_handle_t, ze_ipc_mem_handle_t, POINTER(c_ulonglong) )
|
|
else:
|
|
_zeMemGetFileDescriptorFromIpcHandleExp_t = CFUNCTYPE( ze_result_t, ze_context_handle_t, ze_ipc_mem_handle_t, POINTER(c_ulonglong) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeMemSetAtomicAccessAttributeExp
|
|
if __use_win_types:
|
|
_zeMemSetAtomicAccessAttributeExp_t = WINFUNCTYPE( ze_result_t, ze_context_handle_t, ze_device_handle_t, c_void_p, c_size_t, ze_memory_atomic_attr_exp_flags_t )
|
|
else:
|
|
_zeMemSetAtomicAccessAttributeExp_t = CFUNCTYPE( ze_result_t, ze_context_handle_t, ze_device_handle_t, c_void_p, c_size_t, ze_memory_atomic_attr_exp_flags_t )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeMemGetAtomicAccessAttributeExp
|
|
if __use_win_types:
|
|
_zeMemGetAtomicAccessAttributeExp_t = WINFUNCTYPE( ze_result_t, ze_context_handle_t, ze_device_handle_t, c_void_p, c_size_t, POINTER(ze_memory_atomic_attr_exp_flags_t) )
|
|
else:
|
|
_zeMemGetAtomicAccessAttributeExp_t = CFUNCTYPE( ze_result_t, ze_context_handle_t, ze_device_handle_t, c_void_p, c_size_t, POINTER(ze_memory_atomic_attr_exp_flags_t) )
|
|
|
|
|
|
###############################################################################
|
|
## @brief Table of MemExp functions pointers
|
|
class _ze_mem_exp_dditable_t(Structure):
|
|
_fields_ = [
|
|
("pfnGetIpcHandleFromFileDescriptorExp", c_void_p), ## _zeMemGetIpcHandleFromFileDescriptorExp_t
|
|
("pfnGetFileDescriptorFromIpcHandleExp", c_void_p), ## _zeMemGetFileDescriptorFromIpcHandleExp_t
|
|
("pfnSetAtomicAccessAttributeExp", c_void_p), ## _zeMemSetAtomicAccessAttributeExp_t
|
|
("pfnGetAtomicAccessAttributeExp", c_void_p) ## _zeMemGetAtomicAccessAttributeExp_t
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeFenceCreate
|
|
if __use_win_types:
|
|
_zeFenceCreate_t = WINFUNCTYPE( ze_result_t, ze_command_queue_handle_t, POINTER(ze_fence_desc_t), POINTER(ze_fence_handle_t) )
|
|
else:
|
|
_zeFenceCreate_t = CFUNCTYPE( ze_result_t, ze_command_queue_handle_t, POINTER(ze_fence_desc_t), POINTER(ze_fence_handle_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeFenceDestroy
|
|
if __use_win_types:
|
|
_zeFenceDestroy_t = WINFUNCTYPE( ze_result_t, ze_fence_handle_t )
|
|
else:
|
|
_zeFenceDestroy_t = CFUNCTYPE( ze_result_t, ze_fence_handle_t )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeFenceHostSynchronize
|
|
if __use_win_types:
|
|
_zeFenceHostSynchronize_t = WINFUNCTYPE( ze_result_t, ze_fence_handle_t, c_ulonglong )
|
|
else:
|
|
_zeFenceHostSynchronize_t = CFUNCTYPE( ze_result_t, ze_fence_handle_t, c_ulonglong )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeFenceQueryStatus
|
|
if __use_win_types:
|
|
_zeFenceQueryStatus_t = WINFUNCTYPE( ze_result_t, ze_fence_handle_t )
|
|
else:
|
|
_zeFenceQueryStatus_t = CFUNCTYPE( ze_result_t, ze_fence_handle_t )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeFenceReset
|
|
if __use_win_types:
|
|
_zeFenceReset_t = WINFUNCTYPE( ze_result_t, ze_fence_handle_t )
|
|
else:
|
|
_zeFenceReset_t = CFUNCTYPE( ze_result_t, ze_fence_handle_t )
|
|
|
|
|
|
###############################################################################
|
|
## @brief Table of Fence functions pointers
|
|
class _ze_fence_dditable_t(Structure):
|
|
_fields_ = [
|
|
("pfnCreate", c_void_p), ## _zeFenceCreate_t
|
|
("pfnDestroy", c_void_p), ## _zeFenceDestroy_t
|
|
("pfnHostSynchronize", c_void_p), ## _zeFenceHostSynchronize_t
|
|
("pfnQueryStatus", c_void_p), ## _zeFenceQueryStatus_t
|
|
("pfnReset", c_void_p) ## _zeFenceReset_t
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeEventPoolCreate
|
|
if __use_win_types:
|
|
_zeEventPoolCreate_t = WINFUNCTYPE( ze_result_t, ze_context_handle_t, POINTER(ze_event_pool_desc_t), c_ulong, POINTER(ze_device_handle_t), POINTER(ze_event_pool_handle_t) )
|
|
else:
|
|
_zeEventPoolCreate_t = CFUNCTYPE( ze_result_t, ze_context_handle_t, POINTER(ze_event_pool_desc_t), c_ulong, POINTER(ze_device_handle_t), POINTER(ze_event_pool_handle_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeEventPoolDestroy
|
|
if __use_win_types:
|
|
_zeEventPoolDestroy_t = WINFUNCTYPE( ze_result_t, ze_event_pool_handle_t )
|
|
else:
|
|
_zeEventPoolDestroy_t = CFUNCTYPE( ze_result_t, ze_event_pool_handle_t )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeEventPoolGetIpcHandle
|
|
if __use_win_types:
|
|
_zeEventPoolGetIpcHandle_t = WINFUNCTYPE( ze_result_t, ze_event_pool_handle_t, POINTER(ze_ipc_event_pool_handle_t) )
|
|
else:
|
|
_zeEventPoolGetIpcHandle_t = CFUNCTYPE( ze_result_t, ze_event_pool_handle_t, POINTER(ze_ipc_event_pool_handle_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeEventPoolOpenIpcHandle
|
|
if __use_win_types:
|
|
_zeEventPoolOpenIpcHandle_t = WINFUNCTYPE( ze_result_t, ze_context_handle_t, ze_ipc_event_pool_handle_t, POINTER(ze_event_pool_handle_t) )
|
|
else:
|
|
_zeEventPoolOpenIpcHandle_t = CFUNCTYPE( ze_result_t, ze_context_handle_t, ze_ipc_event_pool_handle_t, POINTER(ze_event_pool_handle_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeEventPoolCloseIpcHandle
|
|
if __use_win_types:
|
|
_zeEventPoolCloseIpcHandle_t = WINFUNCTYPE( ze_result_t, ze_event_pool_handle_t )
|
|
else:
|
|
_zeEventPoolCloseIpcHandle_t = CFUNCTYPE( ze_result_t, ze_event_pool_handle_t )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeEventPoolPutIpcHandle
|
|
if __use_win_types:
|
|
_zeEventPoolPutIpcHandle_t = WINFUNCTYPE( ze_result_t, ze_context_handle_t, ze_ipc_event_pool_handle_t )
|
|
else:
|
|
_zeEventPoolPutIpcHandle_t = CFUNCTYPE( ze_result_t, ze_context_handle_t, ze_ipc_event_pool_handle_t )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeEventPoolGetContextHandle
|
|
if __use_win_types:
|
|
_zeEventPoolGetContextHandle_t = WINFUNCTYPE( ze_result_t, ze_event_pool_handle_t, POINTER(ze_context_handle_t) )
|
|
else:
|
|
_zeEventPoolGetContextHandle_t = CFUNCTYPE( ze_result_t, ze_event_pool_handle_t, POINTER(ze_context_handle_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeEventPoolGetFlags
|
|
if __use_win_types:
|
|
_zeEventPoolGetFlags_t = WINFUNCTYPE( ze_result_t, ze_event_pool_handle_t, POINTER(ze_event_pool_flags_t) )
|
|
else:
|
|
_zeEventPoolGetFlags_t = CFUNCTYPE( ze_result_t, ze_event_pool_handle_t, POINTER(ze_event_pool_flags_t) )
|
|
|
|
|
|
###############################################################################
|
|
## @brief Table of EventPool functions pointers
|
|
class _ze_event_pool_dditable_t(Structure):
|
|
_fields_ = [
|
|
("pfnCreate", c_void_p), ## _zeEventPoolCreate_t
|
|
("pfnDestroy", c_void_p), ## _zeEventPoolDestroy_t
|
|
("pfnGetIpcHandle", c_void_p), ## _zeEventPoolGetIpcHandle_t
|
|
("pfnOpenIpcHandle", c_void_p), ## _zeEventPoolOpenIpcHandle_t
|
|
("pfnCloseIpcHandle", c_void_p), ## _zeEventPoolCloseIpcHandle_t
|
|
("pfnPutIpcHandle", c_void_p), ## _zeEventPoolPutIpcHandle_t
|
|
("pfnGetContextHandle", c_void_p), ## _zeEventPoolGetContextHandle_t
|
|
("pfnGetFlags", c_void_p) ## _zeEventPoolGetFlags_t
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeEventCreate
|
|
if __use_win_types:
|
|
_zeEventCreate_t = WINFUNCTYPE( ze_result_t, ze_event_pool_handle_t, POINTER(ze_event_desc_t), POINTER(ze_event_handle_t) )
|
|
else:
|
|
_zeEventCreate_t = CFUNCTYPE( ze_result_t, ze_event_pool_handle_t, POINTER(ze_event_desc_t), POINTER(ze_event_handle_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeEventDestroy
|
|
if __use_win_types:
|
|
_zeEventDestroy_t = WINFUNCTYPE( ze_result_t, ze_event_handle_t )
|
|
else:
|
|
_zeEventDestroy_t = CFUNCTYPE( ze_result_t, ze_event_handle_t )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeEventHostSignal
|
|
if __use_win_types:
|
|
_zeEventHostSignal_t = WINFUNCTYPE( ze_result_t, ze_event_handle_t )
|
|
else:
|
|
_zeEventHostSignal_t = CFUNCTYPE( ze_result_t, ze_event_handle_t )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeEventHostSynchronize
|
|
if __use_win_types:
|
|
_zeEventHostSynchronize_t = WINFUNCTYPE( ze_result_t, ze_event_handle_t, c_ulonglong )
|
|
else:
|
|
_zeEventHostSynchronize_t = CFUNCTYPE( ze_result_t, ze_event_handle_t, c_ulonglong )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeEventQueryStatus
|
|
if __use_win_types:
|
|
_zeEventQueryStatus_t = WINFUNCTYPE( ze_result_t, ze_event_handle_t )
|
|
else:
|
|
_zeEventQueryStatus_t = CFUNCTYPE( ze_result_t, ze_event_handle_t )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeEventHostReset
|
|
if __use_win_types:
|
|
_zeEventHostReset_t = WINFUNCTYPE( ze_result_t, ze_event_handle_t )
|
|
else:
|
|
_zeEventHostReset_t = CFUNCTYPE( ze_result_t, ze_event_handle_t )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeEventQueryKernelTimestamp
|
|
if __use_win_types:
|
|
_zeEventQueryKernelTimestamp_t = WINFUNCTYPE( ze_result_t, ze_event_handle_t, POINTER(ze_kernel_timestamp_result_t) )
|
|
else:
|
|
_zeEventQueryKernelTimestamp_t = CFUNCTYPE( ze_result_t, ze_event_handle_t, POINTER(ze_kernel_timestamp_result_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeEventQueryKernelTimestampsExt
|
|
if __use_win_types:
|
|
_zeEventQueryKernelTimestampsExt_t = WINFUNCTYPE( ze_result_t, ze_event_handle_t, ze_device_handle_t, POINTER(c_ulong), POINTER(ze_event_query_kernel_timestamps_results_ext_properties_t) )
|
|
else:
|
|
_zeEventQueryKernelTimestampsExt_t = CFUNCTYPE( ze_result_t, ze_event_handle_t, ze_device_handle_t, POINTER(c_ulong), POINTER(ze_event_query_kernel_timestamps_results_ext_properties_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeEventGetEventPool
|
|
if __use_win_types:
|
|
_zeEventGetEventPool_t = WINFUNCTYPE( ze_result_t, ze_event_handle_t, POINTER(ze_event_pool_handle_t) )
|
|
else:
|
|
_zeEventGetEventPool_t = CFUNCTYPE( ze_result_t, ze_event_handle_t, POINTER(ze_event_pool_handle_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeEventGetSignalScope
|
|
if __use_win_types:
|
|
_zeEventGetSignalScope_t = WINFUNCTYPE( ze_result_t, ze_event_handle_t, POINTER(ze_event_scope_flags_t) )
|
|
else:
|
|
_zeEventGetSignalScope_t = CFUNCTYPE( ze_result_t, ze_event_handle_t, POINTER(ze_event_scope_flags_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeEventGetWaitScope
|
|
if __use_win_types:
|
|
_zeEventGetWaitScope_t = WINFUNCTYPE( ze_result_t, ze_event_handle_t, POINTER(ze_event_scope_flags_t) )
|
|
else:
|
|
_zeEventGetWaitScope_t = CFUNCTYPE( ze_result_t, ze_event_handle_t, POINTER(ze_event_scope_flags_t) )
|
|
|
|
|
|
###############################################################################
|
|
## @brief Table of Event functions pointers
|
|
class _ze_event_dditable_t(Structure):
|
|
_fields_ = [
|
|
("pfnCreate", c_void_p), ## _zeEventCreate_t
|
|
("pfnDestroy", c_void_p), ## _zeEventDestroy_t
|
|
("pfnHostSignal", c_void_p), ## _zeEventHostSignal_t
|
|
("pfnHostSynchronize", c_void_p), ## _zeEventHostSynchronize_t
|
|
("pfnQueryStatus", c_void_p), ## _zeEventQueryStatus_t
|
|
("pfnHostReset", c_void_p), ## _zeEventHostReset_t
|
|
("pfnQueryKernelTimestamp", c_void_p), ## _zeEventQueryKernelTimestamp_t
|
|
("pfnQueryKernelTimestampsExt", c_void_p), ## _zeEventQueryKernelTimestampsExt_t
|
|
("pfnGetEventPool", c_void_p), ## _zeEventGetEventPool_t
|
|
("pfnGetSignalScope", c_void_p), ## _zeEventGetSignalScope_t
|
|
("pfnGetWaitScope", c_void_p) ## _zeEventGetWaitScope_t
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeEventQueryTimestampsExp
|
|
if __use_win_types:
|
|
_zeEventQueryTimestampsExp_t = WINFUNCTYPE( ze_result_t, ze_event_handle_t, ze_device_handle_t, POINTER(c_ulong), POINTER(ze_kernel_timestamp_result_t) )
|
|
else:
|
|
_zeEventQueryTimestampsExp_t = CFUNCTYPE( ze_result_t, ze_event_handle_t, ze_device_handle_t, POINTER(c_ulong), POINTER(ze_kernel_timestamp_result_t) )
|
|
|
|
|
|
###############################################################################
|
|
## @brief Table of EventExp functions pointers
|
|
class _ze_event_exp_dditable_t(Structure):
|
|
_fields_ = [
|
|
("pfnQueryTimestampsExp", c_void_p) ## _zeEventQueryTimestampsExp_t
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeModuleCreate
|
|
if __use_win_types:
|
|
_zeModuleCreate_t = WINFUNCTYPE( ze_result_t, ze_context_handle_t, ze_device_handle_t, POINTER(ze_module_desc_t), POINTER(ze_module_handle_t), POINTER(ze_module_build_log_handle_t) )
|
|
else:
|
|
_zeModuleCreate_t = CFUNCTYPE( ze_result_t, ze_context_handle_t, ze_device_handle_t, POINTER(ze_module_desc_t), POINTER(ze_module_handle_t), POINTER(ze_module_build_log_handle_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeModuleDestroy
|
|
if __use_win_types:
|
|
_zeModuleDestroy_t = WINFUNCTYPE( ze_result_t, ze_module_handle_t )
|
|
else:
|
|
_zeModuleDestroy_t = CFUNCTYPE( ze_result_t, ze_module_handle_t )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeModuleDynamicLink
|
|
if __use_win_types:
|
|
_zeModuleDynamicLink_t = WINFUNCTYPE( ze_result_t, c_ulong, POINTER(ze_module_handle_t), POINTER(ze_module_build_log_handle_t) )
|
|
else:
|
|
_zeModuleDynamicLink_t = CFUNCTYPE( ze_result_t, c_ulong, POINTER(ze_module_handle_t), POINTER(ze_module_build_log_handle_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeModuleGetNativeBinary
|
|
if __use_win_types:
|
|
_zeModuleGetNativeBinary_t = WINFUNCTYPE( ze_result_t, ze_module_handle_t, POINTER(c_size_t), POINTER(c_ubyte) )
|
|
else:
|
|
_zeModuleGetNativeBinary_t = CFUNCTYPE( ze_result_t, ze_module_handle_t, POINTER(c_size_t), POINTER(c_ubyte) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeModuleGetGlobalPointer
|
|
if __use_win_types:
|
|
_zeModuleGetGlobalPointer_t = WINFUNCTYPE( ze_result_t, ze_module_handle_t, c_char_p, POINTER(c_size_t), POINTER(c_void_p) )
|
|
else:
|
|
_zeModuleGetGlobalPointer_t = CFUNCTYPE( ze_result_t, ze_module_handle_t, c_char_p, POINTER(c_size_t), POINTER(c_void_p) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeModuleGetKernelNames
|
|
if __use_win_types:
|
|
_zeModuleGetKernelNames_t = WINFUNCTYPE( ze_result_t, ze_module_handle_t, POINTER(c_ulong), POINTER(c_char_p) )
|
|
else:
|
|
_zeModuleGetKernelNames_t = CFUNCTYPE( ze_result_t, ze_module_handle_t, POINTER(c_ulong), POINTER(c_char_p) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeModuleGetProperties
|
|
if __use_win_types:
|
|
_zeModuleGetProperties_t = WINFUNCTYPE( ze_result_t, ze_module_handle_t, POINTER(ze_module_properties_t) )
|
|
else:
|
|
_zeModuleGetProperties_t = CFUNCTYPE( ze_result_t, ze_module_handle_t, POINTER(ze_module_properties_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeModuleGetFunctionPointer
|
|
if __use_win_types:
|
|
_zeModuleGetFunctionPointer_t = WINFUNCTYPE( ze_result_t, ze_module_handle_t, c_char_p, POINTER(c_void_p) )
|
|
else:
|
|
_zeModuleGetFunctionPointer_t = CFUNCTYPE( ze_result_t, ze_module_handle_t, c_char_p, POINTER(c_void_p) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeModuleInspectLinkageExt
|
|
if __use_win_types:
|
|
_zeModuleInspectLinkageExt_t = WINFUNCTYPE( ze_result_t, POINTER(ze_linkage_inspection_ext_desc_t), c_ulong, POINTER(ze_module_handle_t), POINTER(ze_module_build_log_handle_t) )
|
|
else:
|
|
_zeModuleInspectLinkageExt_t = CFUNCTYPE( ze_result_t, POINTER(ze_linkage_inspection_ext_desc_t), c_ulong, POINTER(ze_module_handle_t), POINTER(ze_module_build_log_handle_t) )
|
|
|
|
|
|
###############################################################################
|
|
## @brief Table of Module functions pointers
|
|
class _ze_module_dditable_t(Structure):
|
|
_fields_ = [
|
|
("pfnCreate", c_void_p), ## _zeModuleCreate_t
|
|
("pfnDestroy", c_void_p), ## _zeModuleDestroy_t
|
|
("pfnDynamicLink", c_void_p), ## _zeModuleDynamicLink_t
|
|
("pfnGetNativeBinary", c_void_p), ## _zeModuleGetNativeBinary_t
|
|
("pfnGetGlobalPointer", c_void_p), ## _zeModuleGetGlobalPointer_t
|
|
("pfnGetKernelNames", c_void_p), ## _zeModuleGetKernelNames_t
|
|
("pfnGetProperties", c_void_p), ## _zeModuleGetProperties_t
|
|
("pfnGetFunctionPointer", c_void_p), ## _zeModuleGetFunctionPointer_t
|
|
("pfnInspectLinkageExt", c_void_p) ## _zeModuleInspectLinkageExt_t
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeModuleBuildLogDestroy
|
|
if __use_win_types:
|
|
_zeModuleBuildLogDestroy_t = WINFUNCTYPE( ze_result_t, ze_module_build_log_handle_t )
|
|
else:
|
|
_zeModuleBuildLogDestroy_t = CFUNCTYPE( ze_result_t, ze_module_build_log_handle_t )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeModuleBuildLogGetString
|
|
if __use_win_types:
|
|
_zeModuleBuildLogGetString_t = WINFUNCTYPE( ze_result_t, ze_module_build_log_handle_t, POINTER(c_size_t), c_char_p )
|
|
else:
|
|
_zeModuleBuildLogGetString_t = CFUNCTYPE( ze_result_t, ze_module_build_log_handle_t, POINTER(c_size_t), c_char_p )
|
|
|
|
|
|
###############################################################################
|
|
## @brief Table of ModuleBuildLog functions pointers
|
|
class _ze_module_build_log_dditable_t(Structure):
|
|
_fields_ = [
|
|
("pfnDestroy", c_void_p), ## _zeModuleBuildLogDestroy_t
|
|
("pfnGetString", c_void_p) ## _zeModuleBuildLogGetString_t
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeKernelCreate
|
|
if __use_win_types:
|
|
_zeKernelCreate_t = WINFUNCTYPE( ze_result_t, ze_module_handle_t, POINTER(ze_kernel_desc_t), POINTER(ze_kernel_handle_t) )
|
|
else:
|
|
_zeKernelCreate_t = CFUNCTYPE( ze_result_t, ze_module_handle_t, POINTER(ze_kernel_desc_t), POINTER(ze_kernel_handle_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeKernelDestroy
|
|
if __use_win_types:
|
|
_zeKernelDestroy_t = WINFUNCTYPE( ze_result_t, ze_kernel_handle_t )
|
|
else:
|
|
_zeKernelDestroy_t = CFUNCTYPE( ze_result_t, ze_kernel_handle_t )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeKernelSetCacheConfig
|
|
if __use_win_types:
|
|
_zeKernelSetCacheConfig_t = WINFUNCTYPE( ze_result_t, ze_kernel_handle_t, ze_cache_config_flags_t )
|
|
else:
|
|
_zeKernelSetCacheConfig_t = CFUNCTYPE( ze_result_t, ze_kernel_handle_t, ze_cache_config_flags_t )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeKernelSetGroupSize
|
|
if __use_win_types:
|
|
_zeKernelSetGroupSize_t = WINFUNCTYPE( ze_result_t, ze_kernel_handle_t, c_ulong, c_ulong, c_ulong )
|
|
else:
|
|
_zeKernelSetGroupSize_t = CFUNCTYPE( ze_result_t, ze_kernel_handle_t, c_ulong, c_ulong, c_ulong )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeKernelSuggestGroupSize
|
|
if __use_win_types:
|
|
_zeKernelSuggestGroupSize_t = WINFUNCTYPE( ze_result_t, ze_kernel_handle_t, c_ulong, c_ulong, c_ulong, POINTER(c_ulong), POINTER(c_ulong), POINTER(c_ulong) )
|
|
else:
|
|
_zeKernelSuggestGroupSize_t = CFUNCTYPE( ze_result_t, ze_kernel_handle_t, c_ulong, c_ulong, c_ulong, POINTER(c_ulong), POINTER(c_ulong), POINTER(c_ulong) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeKernelSuggestMaxCooperativeGroupCount
|
|
if __use_win_types:
|
|
_zeKernelSuggestMaxCooperativeGroupCount_t = WINFUNCTYPE( ze_result_t, ze_kernel_handle_t, POINTER(c_ulong) )
|
|
else:
|
|
_zeKernelSuggestMaxCooperativeGroupCount_t = CFUNCTYPE( ze_result_t, ze_kernel_handle_t, POINTER(c_ulong) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeKernelSetArgumentValue
|
|
if __use_win_types:
|
|
_zeKernelSetArgumentValue_t = WINFUNCTYPE( ze_result_t, ze_kernel_handle_t, c_ulong, c_size_t, c_void_p )
|
|
else:
|
|
_zeKernelSetArgumentValue_t = CFUNCTYPE( ze_result_t, ze_kernel_handle_t, c_ulong, c_size_t, c_void_p )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeKernelSetIndirectAccess
|
|
if __use_win_types:
|
|
_zeKernelSetIndirectAccess_t = WINFUNCTYPE( ze_result_t, ze_kernel_handle_t, ze_kernel_indirect_access_flags_t )
|
|
else:
|
|
_zeKernelSetIndirectAccess_t = CFUNCTYPE( ze_result_t, ze_kernel_handle_t, ze_kernel_indirect_access_flags_t )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeKernelGetIndirectAccess
|
|
if __use_win_types:
|
|
_zeKernelGetIndirectAccess_t = WINFUNCTYPE( ze_result_t, ze_kernel_handle_t, POINTER(ze_kernel_indirect_access_flags_t) )
|
|
else:
|
|
_zeKernelGetIndirectAccess_t = CFUNCTYPE( ze_result_t, ze_kernel_handle_t, POINTER(ze_kernel_indirect_access_flags_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeKernelGetSourceAttributes
|
|
if __use_win_types:
|
|
_zeKernelGetSourceAttributes_t = WINFUNCTYPE( ze_result_t, ze_kernel_handle_t, POINTER(c_ulong), POINTER(c_char_p) )
|
|
else:
|
|
_zeKernelGetSourceAttributes_t = CFUNCTYPE( ze_result_t, ze_kernel_handle_t, POINTER(c_ulong), POINTER(c_char_p) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeKernelGetProperties
|
|
if __use_win_types:
|
|
_zeKernelGetProperties_t = WINFUNCTYPE( ze_result_t, ze_kernel_handle_t, POINTER(ze_kernel_properties_t) )
|
|
else:
|
|
_zeKernelGetProperties_t = CFUNCTYPE( ze_result_t, ze_kernel_handle_t, POINTER(ze_kernel_properties_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeKernelGetName
|
|
if __use_win_types:
|
|
_zeKernelGetName_t = WINFUNCTYPE( ze_result_t, ze_kernel_handle_t, POINTER(c_size_t), c_char_p )
|
|
else:
|
|
_zeKernelGetName_t = CFUNCTYPE( ze_result_t, ze_kernel_handle_t, POINTER(c_size_t), c_char_p )
|
|
|
|
|
|
###############################################################################
|
|
## @brief Table of Kernel functions pointers
|
|
class _ze_kernel_dditable_t(Structure):
|
|
_fields_ = [
|
|
("pfnCreate", c_void_p), ## _zeKernelCreate_t
|
|
("pfnDestroy", c_void_p), ## _zeKernelDestroy_t
|
|
("pfnSetCacheConfig", c_void_p), ## _zeKernelSetCacheConfig_t
|
|
("pfnSetGroupSize", c_void_p), ## _zeKernelSetGroupSize_t
|
|
("pfnSuggestGroupSize", c_void_p), ## _zeKernelSuggestGroupSize_t
|
|
("pfnSuggestMaxCooperativeGroupCount", c_void_p), ## _zeKernelSuggestMaxCooperativeGroupCount_t
|
|
("pfnSetArgumentValue", c_void_p), ## _zeKernelSetArgumentValue_t
|
|
("pfnSetIndirectAccess", c_void_p), ## _zeKernelSetIndirectAccess_t
|
|
("pfnGetIndirectAccess", c_void_p), ## _zeKernelGetIndirectAccess_t
|
|
("pfnGetSourceAttributes", c_void_p), ## _zeKernelGetSourceAttributes_t
|
|
("pfnGetProperties", c_void_p), ## _zeKernelGetProperties_t
|
|
("pfnGetName", c_void_p) ## _zeKernelGetName_t
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeKernelSetGlobalOffsetExp
|
|
if __use_win_types:
|
|
_zeKernelSetGlobalOffsetExp_t = WINFUNCTYPE( ze_result_t, ze_kernel_handle_t, c_ulong, c_ulong, c_ulong )
|
|
else:
|
|
_zeKernelSetGlobalOffsetExp_t = CFUNCTYPE( ze_result_t, ze_kernel_handle_t, c_ulong, c_ulong, c_ulong )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeKernelSchedulingHintExp
|
|
if __use_win_types:
|
|
_zeKernelSchedulingHintExp_t = WINFUNCTYPE( ze_result_t, ze_kernel_handle_t, POINTER(ze_scheduling_hint_exp_desc_t) )
|
|
else:
|
|
_zeKernelSchedulingHintExp_t = CFUNCTYPE( ze_result_t, ze_kernel_handle_t, POINTER(ze_scheduling_hint_exp_desc_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeKernelGetBinaryExp
|
|
if __use_win_types:
|
|
_zeKernelGetBinaryExp_t = WINFUNCTYPE( ze_result_t, ze_kernel_handle_t, POINTER(c_size_t), POINTER(c_ubyte) )
|
|
else:
|
|
_zeKernelGetBinaryExp_t = CFUNCTYPE( ze_result_t, ze_kernel_handle_t, POINTER(c_size_t), POINTER(c_ubyte) )
|
|
|
|
|
|
###############################################################################
|
|
## @brief Table of KernelExp functions pointers
|
|
class _ze_kernel_exp_dditable_t(Structure):
|
|
_fields_ = [
|
|
("pfnSetGlobalOffsetExp", c_void_p), ## _zeKernelSetGlobalOffsetExp_t
|
|
("pfnSchedulingHintExp", c_void_p), ## _zeKernelSchedulingHintExp_t
|
|
("pfnGetBinaryExp", c_void_p) ## _zeKernelGetBinaryExp_t
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeSamplerCreate
|
|
if __use_win_types:
|
|
_zeSamplerCreate_t = WINFUNCTYPE( ze_result_t, ze_context_handle_t, ze_device_handle_t, POINTER(ze_sampler_desc_t), POINTER(ze_sampler_handle_t) )
|
|
else:
|
|
_zeSamplerCreate_t = CFUNCTYPE( ze_result_t, ze_context_handle_t, ze_device_handle_t, POINTER(ze_sampler_desc_t), POINTER(ze_sampler_handle_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeSamplerDestroy
|
|
if __use_win_types:
|
|
_zeSamplerDestroy_t = WINFUNCTYPE( ze_result_t, ze_sampler_handle_t )
|
|
else:
|
|
_zeSamplerDestroy_t = CFUNCTYPE( ze_result_t, ze_sampler_handle_t )
|
|
|
|
|
|
###############################################################################
|
|
## @brief Table of Sampler functions pointers
|
|
class _ze_sampler_dditable_t(Structure):
|
|
_fields_ = [
|
|
("pfnCreate", c_void_p), ## _zeSamplerCreate_t
|
|
("pfnDestroy", c_void_p) ## _zeSamplerDestroy_t
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zePhysicalMemCreate
|
|
if __use_win_types:
|
|
_zePhysicalMemCreate_t = WINFUNCTYPE( ze_result_t, ze_context_handle_t, ze_device_handle_t, POINTER(ze_physical_mem_desc_t), POINTER(ze_physical_mem_handle_t) )
|
|
else:
|
|
_zePhysicalMemCreate_t = CFUNCTYPE( ze_result_t, ze_context_handle_t, ze_device_handle_t, POINTER(ze_physical_mem_desc_t), POINTER(ze_physical_mem_handle_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zePhysicalMemDestroy
|
|
if __use_win_types:
|
|
_zePhysicalMemDestroy_t = WINFUNCTYPE( ze_result_t, ze_context_handle_t, ze_physical_mem_handle_t )
|
|
else:
|
|
_zePhysicalMemDestroy_t = CFUNCTYPE( ze_result_t, ze_context_handle_t, ze_physical_mem_handle_t )
|
|
|
|
|
|
###############################################################################
|
|
## @brief Table of PhysicalMem functions pointers
|
|
class _ze_physical_mem_dditable_t(Structure):
|
|
_fields_ = [
|
|
("pfnCreate", c_void_p), ## _zePhysicalMemCreate_t
|
|
("pfnDestroy", c_void_p) ## _zePhysicalMemDestroy_t
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeVirtualMemReserve
|
|
if __use_win_types:
|
|
_zeVirtualMemReserve_t = WINFUNCTYPE( ze_result_t, ze_context_handle_t, c_void_p, c_size_t, POINTER(c_void_p) )
|
|
else:
|
|
_zeVirtualMemReserve_t = CFUNCTYPE( ze_result_t, ze_context_handle_t, c_void_p, c_size_t, POINTER(c_void_p) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeVirtualMemFree
|
|
if __use_win_types:
|
|
_zeVirtualMemFree_t = WINFUNCTYPE( ze_result_t, ze_context_handle_t, c_void_p, c_size_t )
|
|
else:
|
|
_zeVirtualMemFree_t = CFUNCTYPE( ze_result_t, ze_context_handle_t, c_void_p, c_size_t )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeVirtualMemQueryPageSize
|
|
if __use_win_types:
|
|
_zeVirtualMemQueryPageSize_t = WINFUNCTYPE( ze_result_t, ze_context_handle_t, ze_device_handle_t, c_size_t, POINTER(c_size_t) )
|
|
else:
|
|
_zeVirtualMemQueryPageSize_t = CFUNCTYPE( ze_result_t, ze_context_handle_t, ze_device_handle_t, c_size_t, POINTER(c_size_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeVirtualMemMap
|
|
if __use_win_types:
|
|
_zeVirtualMemMap_t = WINFUNCTYPE( ze_result_t, ze_context_handle_t, c_void_p, c_size_t, ze_physical_mem_handle_t, c_size_t, ze_memory_access_attribute_t )
|
|
else:
|
|
_zeVirtualMemMap_t = CFUNCTYPE( ze_result_t, ze_context_handle_t, c_void_p, c_size_t, ze_physical_mem_handle_t, c_size_t, ze_memory_access_attribute_t )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeVirtualMemUnmap
|
|
if __use_win_types:
|
|
_zeVirtualMemUnmap_t = WINFUNCTYPE( ze_result_t, ze_context_handle_t, c_void_p, c_size_t )
|
|
else:
|
|
_zeVirtualMemUnmap_t = CFUNCTYPE( ze_result_t, ze_context_handle_t, c_void_p, c_size_t )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeVirtualMemSetAccessAttribute
|
|
if __use_win_types:
|
|
_zeVirtualMemSetAccessAttribute_t = WINFUNCTYPE( ze_result_t, ze_context_handle_t, c_void_p, c_size_t, ze_memory_access_attribute_t )
|
|
else:
|
|
_zeVirtualMemSetAccessAttribute_t = CFUNCTYPE( ze_result_t, ze_context_handle_t, c_void_p, c_size_t, ze_memory_access_attribute_t )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeVirtualMemGetAccessAttribute
|
|
if __use_win_types:
|
|
_zeVirtualMemGetAccessAttribute_t = WINFUNCTYPE( ze_result_t, ze_context_handle_t, c_void_p, c_size_t, POINTER(ze_memory_access_attribute_t), POINTER(c_size_t) )
|
|
else:
|
|
_zeVirtualMemGetAccessAttribute_t = CFUNCTYPE( ze_result_t, ze_context_handle_t, c_void_p, c_size_t, POINTER(ze_memory_access_attribute_t), POINTER(c_size_t) )
|
|
|
|
|
|
###############################################################################
|
|
## @brief Table of VirtualMem functions pointers
|
|
class _ze_virtual_mem_dditable_t(Structure):
|
|
_fields_ = [
|
|
("pfnReserve", c_void_p), ## _zeVirtualMemReserve_t
|
|
("pfnFree", c_void_p), ## _zeVirtualMemFree_t
|
|
("pfnQueryPageSize", c_void_p), ## _zeVirtualMemQueryPageSize_t
|
|
("pfnMap", c_void_p), ## _zeVirtualMemMap_t
|
|
("pfnUnmap", c_void_p), ## _zeVirtualMemUnmap_t
|
|
("pfnSetAccessAttribute", c_void_p), ## _zeVirtualMemSetAccessAttribute_t
|
|
("pfnGetAccessAttribute", c_void_p) ## _zeVirtualMemGetAccessAttribute_t
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeFabricVertexGetExp
|
|
if __use_win_types:
|
|
_zeFabricVertexGetExp_t = WINFUNCTYPE( ze_result_t, ze_driver_handle_t, POINTER(c_ulong), POINTER(ze_fabric_vertex_handle_t) )
|
|
else:
|
|
_zeFabricVertexGetExp_t = CFUNCTYPE( ze_result_t, ze_driver_handle_t, POINTER(c_ulong), POINTER(ze_fabric_vertex_handle_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeFabricVertexGetSubVerticesExp
|
|
if __use_win_types:
|
|
_zeFabricVertexGetSubVerticesExp_t = WINFUNCTYPE( ze_result_t, ze_fabric_vertex_handle_t, POINTER(c_ulong), POINTER(ze_fabric_vertex_handle_t) )
|
|
else:
|
|
_zeFabricVertexGetSubVerticesExp_t = CFUNCTYPE( ze_result_t, ze_fabric_vertex_handle_t, POINTER(c_ulong), POINTER(ze_fabric_vertex_handle_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeFabricVertexGetPropertiesExp
|
|
if __use_win_types:
|
|
_zeFabricVertexGetPropertiesExp_t = WINFUNCTYPE( ze_result_t, ze_fabric_vertex_handle_t, POINTER(ze_fabric_vertex_exp_properties_t) )
|
|
else:
|
|
_zeFabricVertexGetPropertiesExp_t = CFUNCTYPE( ze_result_t, ze_fabric_vertex_handle_t, POINTER(ze_fabric_vertex_exp_properties_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeFabricVertexGetDeviceExp
|
|
if __use_win_types:
|
|
_zeFabricVertexGetDeviceExp_t = WINFUNCTYPE( ze_result_t, ze_fabric_vertex_handle_t, POINTER(ze_device_handle_t) )
|
|
else:
|
|
_zeFabricVertexGetDeviceExp_t = CFUNCTYPE( ze_result_t, ze_fabric_vertex_handle_t, POINTER(ze_device_handle_t) )
|
|
|
|
|
|
###############################################################################
|
|
## @brief Table of FabricVertexExp functions pointers
|
|
class _ze_fabric_vertex_exp_dditable_t(Structure):
|
|
_fields_ = [
|
|
("pfnGetExp", c_void_p), ## _zeFabricVertexGetExp_t
|
|
("pfnGetSubVerticesExp", c_void_p), ## _zeFabricVertexGetSubVerticesExp_t
|
|
("pfnGetPropertiesExp", c_void_p), ## _zeFabricVertexGetPropertiesExp_t
|
|
("pfnGetDeviceExp", c_void_p) ## _zeFabricVertexGetDeviceExp_t
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeFabricEdgeGetExp
|
|
if __use_win_types:
|
|
_zeFabricEdgeGetExp_t = WINFUNCTYPE( ze_result_t, ze_fabric_vertex_handle_t, ze_fabric_vertex_handle_t, POINTER(c_ulong), POINTER(ze_fabric_edge_handle_t) )
|
|
else:
|
|
_zeFabricEdgeGetExp_t = CFUNCTYPE( ze_result_t, ze_fabric_vertex_handle_t, ze_fabric_vertex_handle_t, POINTER(c_ulong), POINTER(ze_fabric_edge_handle_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeFabricEdgeGetVerticesExp
|
|
if __use_win_types:
|
|
_zeFabricEdgeGetVerticesExp_t = WINFUNCTYPE( ze_result_t, ze_fabric_edge_handle_t, POINTER(ze_fabric_vertex_handle_t), POINTER(ze_fabric_vertex_handle_t) )
|
|
else:
|
|
_zeFabricEdgeGetVerticesExp_t = CFUNCTYPE( ze_result_t, ze_fabric_edge_handle_t, POINTER(ze_fabric_vertex_handle_t), POINTER(ze_fabric_vertex_handle_t) )
|
|
|
|
###############################################################################
|
|
## @brief Function-pointer for zeFabricEdgeGetPropertiesExp
|
|
if __use_win_types:
|
|
_zeFabricEdgeGetPropertiesExp_t = WINFUNCTYPE( ze_result_t, ze_fabric_edge_handle_t, POINTER(ze_fabric_edge_exp_properties_t) )
|
|
else:
|
|
_zeFabricEdgeGetPropertiesExp_t = CFUNCTYPE( ze_result_t, ze_fabric_edge_handle_t, POINTER(ze_fabric_edge_exp_properties_t) )
|
|
|
|
|
|
###############################################################################
|
|
## @brief Table of FabricEdgeExp functions pointers
|
|
class _ze_fabric_edge_exp_dditable_t(Structure):
|
|
_fields_ = [
|
|
("pfnGetExp", c_void_p), ## _zeFabricEdgeGetExp_t
|
|
("pfnGetVerticesExp", c_void_p), ## _zeFabricEdgeGetVerticesExp_t
|
|
("pfnGetPropertiesExp", c_void_p) ## _zeFabricEdgeGetPropertiesExp_t
|
|
]
|
|
|
|
###############################################################################
|
|
class _ze_dditable_t(Structure):
|
|
_fields_ = [
|
|
("RTASBuilderExp", _ze_rtas_builder_exp_dditable_t),
|
|
("RTASParallelOperationExp", _ze_rtas_parallel_operation_exp_dditable_t),
|
|
("Global", _ze_global_dditable_t),
|
|
("Driver", _ze_driver_dditable_t),
|
|
("DriverExp", _ze_driver_exp_dditable_t),
|
|
("Device", _ze_device_dditable_t),
|
|
("DeviceExp", _ze_device_exp_dditable_t),
|
|
("Context", _ze_context_dditable_t),
|
|
("CommandQueue", _ze_command_queue_dditable_t),
|
|
("CommandList", _ze_command_list_dditable_t),
|
|
("CommandListExp", _ze_command_list_exp_dditable_t),
|
|
("Image", _ze_image_dditable_t),
|
|
("ImageExp", _ze_image_exp_dditable_t),
|
|
("Mem", _ze_mem_dditable_t),
|
|
("MemExp", _ze_mem_exp_dditable_t),
|
|
("Fence", _ze_fence_dditable_t),
|
|
("EventPool", _ze_event_pool_dditable_t),
|
|
("Event", _ze_event_dditable_t),
|
|
("EventExp", _ze_event_exp_dditable_t),
|
|
("Module", _ze_module_dditable_t),
|
|
("ModuleBuildLog", _ze_module_build_log_dditable_t),
|
|
("Kernel", _ze_kernel_dditable_t),
|
|
("KernelExp", _ze_kernel_exp_dditable_t),
|
|
("Sampler", _ze_sampler_dditable_t),
|
|
("PhysicalMem", _ze_physical_mem_dditable_t),
|
|
("VirtualMem", _ze_virtual_mem_dditable_t),
|
|
("FabricVertexExp", _ze_fabric_vertex_exp_dditable_t),
|
|
("FabricEdgeExp", _ze_fabric_edge_exp_dditable_t)
|
|
]
|
|
|
|
###############################################################################
|
|
## @brief ze device-driver interfaces
|
|
class ZE_DDI:
|
|
def __init__(self, version : ze_api_version_t):
|
|
# load the ze_loader library
|
|
if "Windows" == platform.uname()[0]:
|
|
self.__dll = WinDLL("ze_loader.dll")
|
|
else:
|
|
self.__dll = CDLL("ze_loader.so")
|
|
|
|
# fill the ddi tables
|
|
self.__dditable = _ze_dditable_t()
|
|
|
|
# call driver to get function pointers
|
|
_RTASBuilderExp = _ze_rtas_builder_exp_dditable_t()
|
|
r = ze_result_v(self.__dll.zeGetRTASBuilderExpProcAddrTable(version, byref(_RTASBuilderExp)))
|
|
if r != ze_result_v.SUCCESS:
|
|
raise Exception(r)
|
|
self.__dditable.RTASBuilderExp = _RTASBuilderExp
|
|
|
|
# attach function interface to function address
|
|
self.zeRTASBuilderCreateExp = _zeRTASBuilderCreateExp_t(self.__dditable.RTASBuilderExp.pfnCreateExp)
|
|
self.zeRTASBuilderGetBuildPropertiesExp = _zeRTASBuilderGetBuildPropertiesExp_t(self.__dditable.RTASBuilderExp.pfnGetBuildPropertiesExp)
|
|
self.zeRTASBuilderBuildExp = _zeRTASBuilderBuildExp_t(self.__dditable.RTASBuilderExp.pfnBuildExp)
|
|
self.zeRTASBuilderDestroyExp = _zeRTASBuilderDestroyExp_t(self.__dditable.RTASBuilderExp.pfnDestroyExp)
|
|
|
|
# call driver to get function pointers
|
|
_RTASParallelOperationExp = _ze_rtas_parallel_operation_exp_dditable_t()
|
|
r = ze_result_v(self.__dll.zeGetRTASParallelOperationExpProcAddrTable(version, byref(_RTASParallelOperationExp)))
|
|
if r != ze_result_v.SUCCESS:
|
|
raise Exception(r)
|
|
self.__dditable.RTASParallelOperationExp = _RTASParallelOperationExp
|
|
|
|
# attach function interface to function address
|
|
self.zeRTASParallelOperationCreateExp = _zeRTASParallelOperationCreateExp_t(self.__dditable.RTASParallelOperationExp.pfnCreateExp)
|
|
self.zeRTASParallelOperationGetPropertiesExp = _zeRTASParallelOperationGetPropertiesExp_t(self.__dditable.RTASParallelOperationExp.pfnGetPropertiesExp)
|
|
self.zeRTASParallelOperationJoinExp = _zeRTASParallelOperationJoinExp_t(self.__dditable.RTASParallelOperationExp.pfnJoinExp)
|
|
self.zeRTASParallelOperationDestroyExp = _zeRTASParallelOperationDestroyExp_t(self.__dditable.RTASParallelOperationExp.pfnDestroyExp)
|
|
|
|
# call driver to get function pointers
|
|
_Global = _ze_global_dditable_t()
|
|
r = ze_result_v(self.__dll.zeGetGlobalProcAddrTable(version, byref(_Global)))
|
|
if r != ze_result_v.SUCCESS:
|
|
raise Exception(r)
|
|
self.__dditable.Global = _Global
|
|
|
|
# attach function interface to function address
|
|
self.zeInit = _zeInit_t(self.__dditable.Global.pfnInit)
|
|
self.zeInitDrivers = _zeInitDrivers_t(self.__dditable.Global.pfnInitDrivers)
|
|
|
|
# call driver to get function pointers
|
|
_Driver = _ze_driver_dditable_t()
|
|
r = ze_result_v(self.__dll.zeGetDriverProcAddrTable(version, byref(_Driver)))
|
|
if r != ze_result_v.SUCCESS:
|
|
raise Exception(r)
|
|
self.__dditable.Driver = _Driver
|
|
|
|
# attach function interface to function address
|
|
self.zeDriverGet = _zeDriverGet_t(self.__dditable.Driver.pfnGet)
|
|
self.zeDriverGetApiVersion = _zeDriverGetApiVersion_t(self.__dditable.Driver.pfnGetApiVersion)
|
|
self.zeDriverGetProperties = _zeDriverGetProperties_t(self.__dditable.Driver.pfnGetProperties)
|
|
self.zeDriverGetIpcProperties = _zeDriverGetIpcProperties_t(self.__dditable.Driver.pfnGetIpcProperties)
|
|
self.zeDriverGetExtensionProperties = _zeDriverGetExtensionProperties_t(self.__dditable.Driver.pfnGetExtensionProperties)
|
|
self.zeDriverGetExtensionFunctionAddress = _zeDriverGetExtensionFunctionAddress_t(self.__dditable.Driver.pfnGetExtensionFunctionAddress)
|
|
self.zeDriverGetLastErrorDescription = _zeDriverGetLastErrorDescription_t(self.__dditable.Driver.pfnGetLastErrorDescription)
|
|
|
|
# call driver to get function pointers
|
|
_DriverExp = _ze_driver_exp_dditable_t()
|
|
r = ze_result_v(self.__dll.zeGetDriverExpProcAddrTable(version, byref(_DriverExp)))
|
|
if r != ze_result_v.SUCCESS:
|
|
raise Exception(r)
|
|
self.__dditable.DriverExp = _DriverExp
|
|
|
|
# attach function interface to function address
|
|
self.zeDriverRTASFormatCompatibilityCheckExp = _zeDriverRTASFormatCompatibilityCheckExp_t(self.__dditable.DriverExp.pfnRTASFormatCompatibilityCheckExp)
|
|
|
|
# call driver to get function pointers
|
|
_Device = _ze_device_dditable_t()
|
|
r = ze_result_v(self.__dll.zeGetDeviceProcAddrTable(version, byref(_Device)))
|
|
if r != ze_result_v.SUCCESS:
|
|
raise Exception(r)
|
|
self.__dditable.Device = _Device
|
|
|
|
# attach function interface to function address
|
|
self.zeDeviceGet = _zeDeviceGet_t(self.__dditable.Device.pfnGet)
|
|
self.zeDeviceGetSubDevices = _zeDeviceGetSubDevices_t(self.__dditable.Device.pfnGetSubDevices)
|
|
self.zeDeviceGetProperties = _zeDeviceGetProperties_t(self.__dditable.Device.pfnGetProperties)
|
|
self.zeDeviceGetComputeProperties = _zeDeviceGetComputeProperties_t(self.__dditable.Device.pfnGetComputeProperties)
|
|
self.zeDeviceGetModuleProperties = _zeDeviceGetModuleProperties_t(self.__dditable.Device.pfnGetModuleProperties)
|
|
self.zeDeviceGetCommandQueueGroupProperties = _zeDeviceGetCommandQueueGroupProperties_t(self.__dditable.Device.pfnGetCommandQueueGroupProperties)
|
|
self.zeDeviceGetMemoryProperties = _zeDeviceGetMemoryProperties_t(self.__dditable.Device.pfnGetMemoryProperties)
|
|
self.zeDeviceGetMemoryAccessProperties = _zeDeviceGetMemoryAccessProperties_t(self.__dditable.Device.pfnGetMemoryAccessProperties)
|
|
self.zeDeviceGetCacheProperties = _zeDeviceGetCacheProperties_t(self.__dditable.Device.pfnGetCacheProperties)
|
|
self.zeDeviceGetImageProperties = _zeDeviceGetImageProperties_t(self.__dditable.Device.pfnGetImageProperties)
|
|
self.zeDeviceGetExternalMemoryProperties = _zeDeviceGetExternalMemoryProperties_t(self.__dditable.Device.pfnGetExternalMemoryProperties)
|
|
self.zeDeviceGetP2PProperties = _zeDeviceGetP2PProperties_t(self.__dditable.Device.pfnGetP2PProperties)
|
|
self.zeDeviceCanAccessPeer = _zeDeviceCanAccessPeer_t(self.__dditable.Device.pfnCanAccessPeer)
|
|
self.zeDeviceGetStatus = _zeDeviceGetStatus_t(self.__dditable.Device.pfnGetStatus)
|
|
self.zeDeviceGetGlobalTimestamps = _zeDeviceGetGlobalTimestamps_t(self.__dditable.Device.pfnGetGlobalTimestamps)
|
|
self.zeDeviceReserveCacheExt = _zeDeviceReserveCacheExt_t(self.__dditable.Device.pfnReserveCacheExt)
|
|
self.zeDeviceSetCacheAdviceExt = _zeDeviceSetCacheAdviceExt_t(self.__dditable.Device.pfnSetCacheAdviceExt)
|
|
self.zeDevicePciGetPropertiesExt = _zeDevicePciGetPropertiesExt_t(self.__dditable.Device.pfnPciGetPropertiesExt)
|
|
self.zeDeviceGetRootDevice = _zeDeviceGetRootDevice_t(self.__dditable.Device.pfnGetRootDevice)
|
|
self.zeDeviceImportExternalSemaphoreExt = _zeDeviceImportExternalSemaphoreExt_t(self.__dditable.Device.pfnImportExternalSemaphoreExt)
|
|
self.zeDeviceReleaseExternalSemaphoreExt = _zeDeviceReleaseExternalSemaphoreExt_t(self.__dditable.Device.pfnReleaseExternalSemaphoreExt)
|
|
|
|
# call driver to get function pointers
|
|
_DeviceExp = _ze_device_exp_dditable_t()
|
|
r = ze_result_v(self.__dll.zeGetDeviceExpProcAddrTable(version, byref(_DeviceExp)))
|
|
if r != ze_result_v.SUCCESS:
|
|
raise Exception(r)
|
|
self.__dditable.DeviceExp = _DeviceExp
|
|
|
|
# attach function interface to function address
|
|
self.zeDeviceGetFabricVertexExp = _zeDeviceGetFabricVertexExp_t(self.__dditable.DeviceExp.pfnGetFabricVertexExp)
|
|
|
|
# call driver to get function pointers
|
|
_Context = _ze_context_dditable_t()
|
|
r = ze_result_v(self.__dll.zeGetContextProcAddrTable(version, byref(_Context)))
|
|
if r != ze_result_v.SUCCESS:
|
|
raise Exception(r)
|
|
self.__dditable.Context = _Context
|
|
|
|
# attach function interface to function address
|
|
self.zeContextCreate = _zeContextCreate_t(self.__dditable.Context.pfnCreate)
|
|
self.zeContextDestroy = _zeContextDestroy_t(self.__dditable.Context.pfnDestroy)
|
|
self.zeContextGetStatus = _zeContextGetStatus_t(self.__dditable.Context.pfnGetStatus)
|
|
self.zeContextSystemBarrier = _zeContextSystemBarrier_t(self.__dditable.Context.pfnSystemBarrier)
|
|
self.zeContextMakeMemoryResident = _zeContextMakeMemoryResident_t(self.__dditable.Context.pfnMakeMemoryResident)
|
|
self.zeContextEvictMemory = _zeContextEvictMemory_t(self.__dditable.Context.pfnEvictMemory)
|
|
self.zeContextMakeImageResident = _zeContextMakeImageResident_t(self.__dditable.Context.pfnMakeImageResident)
|
|
self.zeContextEvictImage = _zeContextEvictImage_t(self.__dditable.Context.pfnEvictImage)
|
|
self.zeContextCreateEx = _zeContextCreateEx_t(self.__dditable.Context.pfnCreateEx)
|
|
|
|
# call driver to get function pointers
|
|
_CommandQueue = _ze_command_queue_dditable_t()
|
|
r = ze_result_v(self.__dll.zeGetCommandQueueProcAddrTable(version, byref(_CommandQueue)))
|
|
if r != ze_result_v.SUCCESS:
|
|
raise Exception(r)
|
|
self.__dditable.CommandQueue = _CommandQueue
|
|
|
|
# attach function interface to function address
|
|
self.zeCommandQueueCreate = _zeCommandQueueCreate_t(self.__dditable.CommandQueue.pfnCreate)
|
|
self.zeCommandQueueDestroy = _zeCommandQueueDestroy_t(self.__dditable.CommandQueue.pfnDestroy)
|
|
self.zeCommandQueueExecuteCommandLists = _zeCommandQueueExecuteCommandLists_t(self.__dditable.CommandQueue.pfnExecuteCommandLists)
|
|
self.zeCommandQueueSynchronize = _zeCommandQueueSynchronize_t(self.__dditable.CommandQueue.pfnSynchronize)
|
|
self.zeCommandQueueGetOrdinal = _zeCommandQueueGetOrdinal_t(self.__dditable.CommandQueue.pfnGetOrdinal)
|
|
self.zeCommandQueueGetIndex = _zeCommandQueueGetIndex_t(self.__dditable.CommandQueue.pfnGetIndex)
|
|
|
|
# call driver to get function pointers
|
|
_CommandList = _ze_command_list_dditable_t()
|
|
r = ze_result_v(self.__dll.zeGetCommandListProcAddrTable(version, byref(_CommandList)))
|
|
if r != ze_result_v.SUCCESS:
|
|
raise Exception(r)
|
|
self.__dditable.CommandList = _CommandList
|
|
|
|
# attach function interface to function address
|
|
self.zeCommandListCreate = _zeCommandListCreate_t(self.__dditable.CommandList.pfnCreate)
|
|
self.zeCommandListCreateImmediate = _zeCommandListCreateImmediate_t(self.__dditable.CommandList.pfnCreateImmediate)
|
|
self.zeCommandListDestroy = _zeCommandListDestroy_t(self.__dditable.CommandList.pfnDestroy)
|
|
self.zeCommandListClose = _zeCommandListClose_t(self.__dditable.CommandList.pfnClose)
|
|
self.zeCommandListReset = _zeCommandListReset_t(self.__dditable.CommandList.pfnReset)
|
|
self.zeCommandListAppendWriteGlobalTimestamp = _zeCommandListAppendWriteGlobalTimestamp_t(self.__dditable.CommandList.pfnAppendWriteGlobalTimestamp)
|
|
self.zeCommandListAppendBarrier = _zeCommandListAppendBarrier_t(self.__dditable.CommandList.pfnAppendBarrier)
|
|
self.zeCommandListAppendMemoryRangesBarrier = _zeCommandListAppendMemoryRangesBarrier_t(self.__dditable.CommandList.pfnAppendMemoryRangesBarrier)
|
|
self.zeCommandListAppendMemoryCopy = _zeCommandListAppendMemoryCopy_t(self.__dditable.CommandList.pfnAppendMemoryCopy)
|
|
self.zeCommandListAppendMemoryFill = _zeCommandListAppendMemoryFill_t(self.__dditable.CommandList.pfnAppendMemoryFill)
|
|
self.zeCommandListAppendMemoryCopyRegion = _zeCommandListAppendMemoryCopyRegion_t(self.__dditable.CommandList.pfnAppendMemoryCopyRegion)
|
|
self.zeCommandListAppendMemoryCopyFromContext = _zeCommandListAppendMemoryCopyFromContext_t(self.__dditable.CommandList.pfnAppendMemoryCopyFromContext)
|
|
self.zeCommandListAppendImageCopy = _zeCommandListAppendImageCopy_t(self.__dditable.CommandList.pfnAppendImageCopy)
|
|
self.zeCommandListAppendImageCopyRegion = _zeCommandListAppendImageCopyRegion_t(self.__dditable.CommandList.pfnAppendImageCopyRegion)
|
|
self.zeCommandListAppendImageCopyToMemory = _zeCommandListAppendImageCopyToMemory_t(self.__dditable.CommandList.pfnAppendImageCopyToMemory)
|
|
self.zeCommandListAppendImageCopyFromMemory = _zeCommandListAppendImageCopyFromMemory_t(self.__dditable.CommandList.pfnAppendImageCopyFromMemory)
|
|
self.zeCommandListAppendMemoryPrefetch = _zeCommandListAppendMemoryPrefetch_t(self.__dditable.CommandList.pfnAppendMemoryPrefetch)
|
|
self.zeCommandListAppendMemAdvise = _zeCommandListAppendMemAdvise_t(self.__dditable.CommandList.pfnAppendMemAdvise)
|
|
self.zeCommandListAppendSignalEvent = _zeCommandListAppendSignalEvent_t(self.__dditable.CommandList.pfnAppendSignalEvent)
|
|
self.zeCommandListAppendWaitOnEvents = _zeCommandListAppendWaitOnEvents_t(self.__dditable.CommandList.pfnAppendWaitOnEvents)
|
|
self.zeCommandListAppendEventReset = _zeCommandListAppendEventReset_t(self.__dditable.CommandList.pfnAppendEventReset)
|
|
self.zeCommandListAppendQueryKernelTimestamps = _zeCommandListAppendQueryKernelTimestamps_t(self.__dditable.CommandList.pfnAppendQueryKernelTimestamps)
|
|
self.zeCommandListAppendLaunchKernel = _zeCommandListAppendLaunchKernel_t(self.__dditable.CommandList.pfnAppendLaunchKernel)
|
|
self.zeCommandListAppendLaunchCooperativeKernel = _zeCommandListAppendLaunchCooperativeKernel_t(self.__dditable.CommandList.pfnAppendLaunchCooperativeKernel)
|
|
self.zeCommandListAppendLaunchKernelIndirect = _zeCommandListAppendLaunchKernelIndirect_t(self.__dditable.CommandList.pfnAppendLaunchKernelIndirect)
|
|
self.zeCommandListAppendLaunchMultipleKernelsIndirect = _zeCommandListAppendLaunchMultipleKernelsIndirect_t(self.__dditable.CommandList.pfnAppendLaunchMultipleKernelsIndirect)
|
|
self.zeCommandListAppendImageCopyToMemoryExt = _zeCommandListAppendImageCopyToMemoryExt_t(self.__dditable.CommandList.pfnAppendImageCopyToMemoryExt)
|
|
self.zeCommandListAppendImageCopyFromMemoryExt = _zeCommandListAppendImageCopyFromMemoryExt_t(self.__dditable.CommandList.pfnAppendImageCopyFromMemoryExt)
|
|
self.zeCommandListHostSynchronize = _zeCommandListHostSynchronize_t(self.__dditable.CommandList.pfnHostSynchronize)
|
|
self.zeCommandListGetDeviceHandle = _zeCommandListGetDeviceHandle_t(self.__dditable.CommandList.pfnGetDeviceHandle)
|
|
self.zeCommandListGetContextHandle = _zeCommandListGetContextHandle_t(self.__dditable.CommandList.pfnGetContextHandle)
|
|
self.zeCommandListGetOrdinal = _zeCommandListGetOrdinal_t(self.__dditable.CommandList.pfnGetOrdinal)
|
|
self.zeCommandListImmediateGetIndex = _zeCommandListImmediateGetIndex_t(self.__dditable.CommandList.pfnImmediateGetIndex)
|
|
self.zeCommandListIsImmediate = _zeCommandListIsImmediate_t(self.__dditable.CommandList.pfnIsImmediate)
|
|
self.zeCommandListAppendSignalExternalSemaphoreExt = _zeCommandListAppendSignalExternalSemaphoreExt_t(self.__dditable.CommandList.pfnAppendSignalExternalSemaphoreExt)
|
|
self.zeCommandListAppendWaitExternalSemaphoreExt = _zeCommandListAppendWaitExternalSemaphoreExt_t(self.__dditable.CommandList.pfnAppendWaitExternalSemaphoreExt)
|
|
|
|
# call driver to get function pointers
|
|
_CommandListExp = _ze_command_list_exp_dditable_t()
|
|
r = ze_result_v(self.__dll.zeGetCommandListExpProcAddrTable(version, byref(_CommandListExp)))
|
|
if r != ze_result_v.SUCCESS:
|
|
raise Exception(r)
|
|
self.__dditable.CommandListExp = _CommandListExp
|
|
|
|
# attach function interface to function address
|
|
self.zeCommandListCreateCloneExp = _zeCommandListCreateCloneExp_t(self.__dditable.CommandListExp.pfnCreateCloneExp)
|
|
self.zeCommandListImmediateAppendCommandListsExp = _zeCommandListImmediateAppendCommandListsExp_t(self.__dditable.CommandListExp.pfnImmediateAppendCommandListsExp)
|
|
self.zeCommandListGetNextCommandIdExp = _zeCommandListGetNextCommandIdExp_t(self.__dditable.CommandListExp.pfnGetNextCommandIdExp)
|
|
self.zeCommandListUpdateMutableCommandsExp = _zeCommandListUpdateMutableCommandsExp_t(self.__dditable.CommandListExp.pfnUpdateMutableCommandsExp)
|
|
self.zeCommandListUpdateMutableCommandSignalEventExp = _zeCommandListUpdateMutableCommandSignalEventExp_t(self.__dditable.CommandListExp.pfnUpdateMutableCommandSignalEventExp)
|
|
self.zeCommandListUpdateMutableCommandWaitEventsExp = _zeCommandListUpdateMutableCommandWaitEventsExp_t(self.__dditable.CommandListExp.pfnUpdateMutableCommandWaitEventsExp)
|
|
self.zeCommandListGetNextCommandIdWithKernelsExp = _zeCommandListGetNextCommandIdWithKernelsExp_t(self.__dditable.CommandListExp.pfnGetNextCommandIdWithKernelsExp)
|
|
self.zeCommandListUpdateMutableCommandKernelsExp = _zeCommandListUpdateMutableCommandKernelsExp_t(self.__dditable.CommandListExp.pfnUpdateMutableCommandKernelsExp)
|
|
|
|
# call driver to get function pointers
|
|
_Image = _ze_image_dditable_t()
|
|
r = ze_result_v(self.__dll.zeGetImageProcAddrTable(version, byref(_Image)))
|
|
if r != ze_result_v.SUCCESS:
|
|
raise Exception(r)
|
|
self.__dditable.Image = _Image
|
|
|
|
# attach function interface to function address
|
|
self.zeImageGetProperties = _zeImageGetProperties_t(self.__dditable.Image.pfnGetProperties)
|
|
self.zeImageCreate = _zeImageCreate_t(self.__dditable.Image.pfnCreate)
|
|
self.zeImageDestroy = _zeImageDestroy_t(self.__dditable.Image.pfnDestroy)
|
|
self.zeImageGetAllocPropertiesExt = _zeImageGetAllocPropertiesExt_t(self.__dditable.Image.pfnGetAllocPropertiesExt)
|
|
self.zeImageViewCreateExt = _zeImageViewCreateExt_t(self.__dditable.Image.pfnViewCreateExt)
|
|
|
|
# call driver to get function pointers
|
|
_ImageExp = _ze_image_exp_dditable_t()
|
|
r = ze_result_v(self.__dll.zeGetImageExpProcAddrTable(version, byref(_ImageExp)))
|
|
if r != ze_result_v.SUCCESS:
|
|
raise Exception(r)
|
|
self.__dditable.ImageExp = _ImageExp
|
|
|
|
# attach function interface to function address
|
|
self.zeImageGetMemoryPropertiesExp = _zeImageGetMemoryPropertiesExp_t(self.__dditable.ImageExp.pfnGetMemoryPropertiesExp)
|
|
self.zeImageViewCreateExp = _zeImageViewCreateExp_t(self.__dditable.ImageExp.pfnViewCreateExp)
|
|
self.zeImageGetDeviceOffsetExp = _zeImageGetDeviceOffsetExp_t(self.__dditable.ImageExp.pfnGetDeviceOffsetExp)
|
|
|
|
# call driver to get function pointers
|
|
_Mem = _ze_mem_dditable_t()
|
|
r = ze_result_v(self.__dll.zeGetMemProcAddrTable(version, byref(_Mem)))
|
|
if r != ze_result_v.SUCCESS:
|
|
raise Exception(r)
|
|
self.__dditable.Mem = _Mem
|
|
|
|
# attach function interface to function address
|
|
self.zeMemAllocShared = _zeMemAllocShared_t(self.__dditable.Mem.pfnAllocShared)
|
|
self.zeMemAllocDevice = _zeMemAllocDevice_t(self.__dditable.Mem.pfnAllocDevice)
|
|
self.zeMemAllocHost = _zeMemAllocHost_t(self.__dditable.Mem.pfnAllocHost)
|
|
self.zeMemFree = _zeMemFree_t(self.__dditable.Mem.pfnFree)
|
|
self.zeMemGetAllocProperties = _zeMemGetAllocProperties_t(self.__dditable.Mem.pfnGetAllocProperties)
|
|
self.zeMemGetAddressRange = _zeMemGetAddressRange_t(self.__dditable.Mem.pfnGetAddressRange)
|
|
self.zeMemGetIpcHandle = _zeMemGetIpcHandle_t(self.__dditable.Mem.pfnGetIpcHandle)
|
|
self.zeMemOpenIpcHandle = _zeMemOpenIpcHandle_t(self.__dditable.Mem.pfnOpenIpcHandle)
|
|
self.zeMemCloseIpcHandle = _zeMemCloseIpcHandle_t(self.__dditable.Mem.pfnCloseIpcHandle)
|
|
self.zeMemFreeExt = _zeMemFreeExt_t(self.__dditable.Mem.pfnFreeExt)
|
|
self.zeMemPutIpcHandle = _zeMemPutIpcHandle_t(self.__dditable.Mem.pfnPutIpcHandle)
|
|
self.zeMemGetPitchFor2dImage = _zeMemGetPitchFor2dImage_t(self.__dditable.Mem.pfnGetPitchFor2dImage)
|
|
|
|
# call driver to get function pointers
|
|
_MemExp = _ze_mem_exp_dditable_t()
|
|
r = ze_result_v(self.__dll.zeGetMemExpProcAddrTable(version, byref(_MemExp)))
|
|
if r != ze_result_v.SUCCESS:
|
|
raise Exception(r)
|
|
self.__dditable.MemExp = _MemExp
|
|
|
|
# attach function interface to function address
|
|
self.zeMemGetIpcHandleFromFileDescriptorExp = _zeMemGetIpcHandleFromFileDescriptorExp_t(self.__dditable.MemExp.pfnGetIpcHandleFromFileDescriptorExp)
|
|
self.zeMemGetFileDescriptorFromIpcHandleExp = _zeMemGetFileDescriptorFromIpcHandleExp_t(self.__dditable.MemExp.pfnGetFileDescriptorFromIpcHandleExp)
|
|
self.zeMemSetAtomicAccessAttributeExp = _zeMemSetAtomicAccessAttributeExp_t(self.__dditable.MemExp.pfnSetAtomicAccessAttributeExp)
|
|
self.zeMemGetAtomicAccessAttributeExp = _zeMemGetAtomicAccessAttributeExp_t(self.__dditable.MemExp.pfnGetAtomicAccessAttributeExp)
|
|
|
|
# call driver to get function pointers
|
|
_Fence = _ze_fence_dditable_t()
|
|
r = ze_result_v(self.__dll.zeGetFenceProcAddrTable(version, byref(_Fence)))
|
|
if r != ze_result_v.SUCCESS:
|
|
raise Exception(r)
|
|
self.__dditable.Fence = _Fence
|
|
|
|
# attach function interface to function address
|
|
self.zeFenceCreate = _zeFenceCreate_t(self.__dditable.Fence.pfnCreate)
|
|
self.zeFenceDestroy = _zeFenceDestroy_t(self.__dditable.Fence.pfnDestroy)
|
|
self.zeFenceHostSynchronize = _zeFenceHostSynchronize_t(self.__dditable.Fence.pfnHostSynchronize)
|
|
self.zeFenceQueryStatus = _zeFenceQueryStatus_t(self.__dditable.Fence.pfnQueryStatus)
|
|
self.zeFenceReset = _zeFenceReset_t(self.__dditable.Fence.pfnReset)
|
|
|
|
# call driver to get function pointers
|
|
_EventPool = _ze_event_pool_dditable_t()
|
|
r = ze_result_v(self.__dll.zeGetEventPoolProcAddrTable(version, byref(_EventPool)))
|
|
if r != ze_result_v.SUCCESS:
|
|
raise Exception(r)
|
|
self.__dditable.EventPool = _EventPool
|
|
|
|
# attach function interface to function address
|
|
self.zeEventPoolCreate = _zeEventPoolCreate_t(self.__dditable.EventPool.pfnCreate)
|
|
self.zeEventPoolDestroy = _zeEventPoolDestroy_t(self.__dditable.EventPool.pfnDestroy)
|
|
self.zeEventPoolGetIpcHandle = _zeEventPoolGetIpcHandle_t(self.__dditable.EventPool.pfnGetIpcHandle)
|
|
self.zeEventPoolOpenIpcHandle = _zeEventPoolOpenIpcHandle_t(self.__dditable.EventPool.pfnOpenIpcHandle)
|
|
self.zeEventPoolCloseIpcHandle = _zeEventPoolCloseIpcHandle_t(self.__dditable.EventPool.pfnCloseIpcHandle)
|
|
self.zeEventPoolPutIpcHandle = _zeEventPoolPutIpcHandle_t(self.__dditable.EventPool.pfnPutIpcHandle)
|
|
self.zeEventPoolGetContextHandle = _zeEventPoolGetContextHandle_t(self.__dditable.EventPool.pfnGetContextHandle)
|
|
self.zeEventPoolGetFlags = _zeEventPoolGetFlags_t(self.__dditable.EventPool.pfnGetFlags)
|
|
|
|
# call driver to get function pointers
|
|
_Event = _ze_event_dditable_t()
|
|
r = ze_result_v(self.__dll.zeGetEventProcAddrTable(version, byref(_Event)))
|
|
if r != ze_result_v.SUCCESS:
|
|
raise Exception(r)
|
|
self.__dditable.Event = _Event
|
|
|
|
# attach function interface to function address
|
|
self.zeEventCreate = _zeEventCreate_t(self.__dditable.Event.pfnCreate)
|
|
self.zeEventDestroy = _zeEventDestroy_t(self.__dditable.Event.pfnDestroy)
|
|
self.zeEventHostSignal = _zeEventHostSignal_t(self.__dditable.Event.pfnHostSignal)
|
|
self.zeEventHostSynchronize = _zeEventHostSynchronize_t(self.__dditable.Event.pfnHostSynchronize)
|
|
self.zeEventQueryStatus = _zeEventQueryStatus_t(self.__dditable.Event.pfnQueryStatus)
|
|
self.zeEventHostReset = _zeEventHostReset_t(self.__dditable.Event.pfnHostReset)
|
|
self.zeEventQueryKernelTimestamp = _zeEventQueryKernelTimestamp_t(self.__dditable.Event.pfnQueryKernelTimestamp)
|
|
self.zeEventQueryKernelTimestampsExt = _zeEventQueryKernelTimestampsExt_t(self.__dditable.Event.pfnQueryKernelTimestampsExt)
|
|
self.zeEventGetEventPool = _zeEventGetEventPool_t(self.__dditable.Event.pfnGetEventPool)
|
|
self.zeEventGetSignalScope = _zeEventGetSignalScope_t(self.__dditable.Event.pfnGetSignalScope)
|
|
self.zeEventGetWaitScope = _zeEventGetWaitScope_t(self.__dditable.Event.pfnGetWaitScope)
|
|
|
|
# call driver to get function pointers
|
|
_EventExp = _ze_event_exp_dditable_t()
|
|
r = ze_result_v(self.__dll.zeGetEventExpProcAddrTable(version, byref(_EventExp)))
|
|
if r != ze_result_v.SUCCESS:
|
|
raise Exception(r)
|
|
self.__dditable.EventExp = _EventExp
|
|
|
|
# attach function interface to function address
|
|
self.zeEventQueryTimestampsExp = _zeEventQueryTimestampsExp_t(self.__dditable.EventExp.pfnQueryTimestampsExp)
|
|
|
|
# call driver to get function pointers
|
|
_Module = _ze_module_dditable_t()
|
|
r = ze_result_v(self.__dll.zeGetModuleProcAddrTable(version, byref(_Module)))
|
|
if r != ze_result_v.SUCCESS:
|
|
raise Exception(r)
|
|
self.__dditable.Module = _Module
|
|
|
|
# attach function interface to function address
|
|
self.zeModuleCreate = _zeModuleCreate_t(self.__dditable.Module.pfnCreate)
|
|
self.zeModuleDestroy = _zeModuleDestroy_t(self.__dditable.Module.pfnDestroy)
|
|
self.zeModuleDynamicLink = _zeModuleDynamicLink_t(self.__dditable.Module.pfnDynamicLink)
|
|
self.zeModuleGetNativeBinary = _zeModuleGetNativeBinary_t(self.__dditable.Module.pfnGetNativeBinary)
|
|
self.zeModuleGetGlobalPointer = _zeModuleGetGlobalPointer_t(self.__dditable.Module.pfnGetGlobalPointer)
|
|
self.zeModuleGetKernelNames = _zeModuleGetKernelNames_t(self.__dditable.Module.pfnGetKernelNames)
|
|
self.zeModuleGetProperties = _zeModuleGetProperties_t(self.__dditable.Module.pfnGetProperties)
|
|
self.zeModuleGetFunctionPointer = _zeModuleGetFunctionPointer_t(self.__dditable.Module.pfnGetFunctionPointer)
|
|
self.zeModuleInspectLinkageExt = _zeModuleInspectLinkageExt_t(self.__dditable.Module.pfnInspectLinkageExt)
|
|
|
|
# call driver to get function pointers
|
|
_ModuleBuildLog = _ze_module_build_log_dditable_t()
|
|
r = ze_result_v(self.__dll.zeGetModuleBuildLogProcAddrTable(version, byref(_ModuleBuildLog)))
|
|
if r != ze_result_v.SUCCESS:
|
|
raise Exception(r)
|
|
self.__dditable.ModuleBuildLog = _ModuleBuildLog
|
|
|
|
# attach function interface to function address
|
|
self.zeModuleBuildLogDestroy = _zeModuleBuildLogDestroy_t(self.__dditable.ModuleBuildLog.pfnDestroy)
|
|
self.zeModuleBuildLogGetString = _zeModuleBuildLogGetString_t(self.__dditable.ModuleBuildLog.pfnGetString)
|
|
|
|
# call driver to get function pointers
|
|
_Kernel = _ze_kernel_dditable_t()
|
|
r = ze_result_v(self.__dll.zeGetKernelProcAddrTable(version, byref(_Kernel)))
|
|
if r != ze_result_v.SUCCESS:
|
|
raise Exception(r)
|
|
self.__dditable.Kernel = _Kernel
|
|
|
|
# attach function interface to function address
|
|
self.zeKernelCreate = _zeKernelCreate_t(self.__dditable.Kernel.pfnCreate)
|
|
self.zeKernelDestroy = _zeKernelDestroy_t(self.__dditable.Kernel.pfnDestroy)
|
|
self.zeKernelSetCacheConfig = _zeKernelSetCacheConfig_t(self.__dditable.Kernel.pfnSetCacheConfig)
|
|
self.zeKernelSetGroupSize = _zeKernelSetGroupSize_t(self.__dditable.Kernel.pfnSetGroupSize)
|
|
self.zeKernelSuggestGroupSize = _zeKernelSuggestGroupSize_t(self.__dditable.Kernel.pfnSuggestGroupSize)
|
|
self.zeKernelSuggestMaxCooperativeGroupCount = _zeKernelSuggestMaxCooperativeGroupCount_t(self.__dditable.Kernel.pfnSuggestMaxCooperativeGroupCount)
|
|
self.zeKernelSetArgumentValue = _zeKernelSetArgumentValue_t(self.__dditable.Kernel.pfnSetArgumentValue)
|
|
self.zeKernelSetIndirectAccess = _zeKernelSetIndirectAccess_t(self.__dditable.Kernel.pfnSetIndirectAccess)
|
|
self.zeKernelGetIndirectAccess = _zeKernelGetIndirectAccess_t(self.__dditable.Kernel.pfnGetIndirectAccess)
|
|
self.zeKernelGetSourceAttributes = _zeKernelGetSourceAttributes_t(self.__dditable.Kernel.pfnGetSourceAttributes)
|
|
self.zeKernelGetProperties = _zeKernelGetProperties_t(self.__dditable.Kernel.pfnGetProperties)
|
|
self.zeKernelGetName = _zeKernelGetName_t(self.__dditable.Kernel.pfnGetName)
|
|
|
|
# call driver to get function pointers
|
|
_KernelExp = _ze_kernel_exp_dditable_t()
|
|
r = ze_result_v(self.__dll.zeGetKernelExpProcAddrTable(version, byref(_KernelExp)))
|
|
if r != ze_result_v.SUCCESS:
|
|
raise Exception(r)
|
|
self.__dditable.KernelExp = _KernelExp
|
|
|
|
# attach function interface to function address
|
|
self.zeKernelSetGlobalOffsetExp = _zeKernelSetGlobalOffsetExp_t(self.__dditable.KernelExp.pfnSetGlobalOffsetExp)
|
|
self.zeKernelSchedulingHintExp = _zeKernelSchedulingHintExp_t(self.__dditable.KernelExp.pfnSchedulingHintExp)
|
|
self.zeKernelGetBinaryExp = _zeKernelGetBinaryExp_t(self.__dditable.KernelExp.pfnGetBinaryExp)
|
|
|
|
# call driver to get function pointers
|
|
_Sampler = _ze_sampler_dditable_t()
|
|
r = ze_result_v(self.__dll.zeGetSamplerProcAddrTable(version, byref(_Sampler)))
|
|
if r != ze_result_v.SUCCESS:
|
|
raise Exception(r)
|
|
self.__dditable.Sampler = _Sampler
|
|
|
|
# attach function interface to function address
|
|
self.zeSamplerCreate = _zeSamplerCreate_t(self.__dditable.Sampler.pfnCreate)
|
|
self.zeSamplerDestroy = _zeSamplerDestroy_t(self.__dditable.Sampler.pfnDestroy)
|
|
|
|
# call driver to get function pointers
|
|
_PhysicalMem = _ze_physical_mem_dditable_t()
|
|
r = ze_result_v(self.__dll.zeGetPhysicalMemProcAddrTable(version, byref(_PhysicalMem)))
|
|
if r != ze_result_v.SUCCESS:
|
|
raise Exception(r)
|
|
self.__dditable.PhysicalMem = _PhysicalMem
|
|
|
|
# attach function interface to function address
|
|
self.zePhysicalMemCreate = _zePhysicalMemCreate_t(self.__dditable.PhysicalMem.pfnCreate)
|
|
self.zePhysicalMemDestroy = _zePhysicalMemDestroy_t(self.__dditable.PhysicalMem.pfnDestroy)
|
|
|
|
# call driver to get function pointers
|
|
_VirtualMem = _ze_virtual_mem_dditable_t()
|
|
r = ze_result_v(self.__dll.zeGetVirtualMemProcAddrTable(version, byref(_VirtualMem)))
|
|
if r != ze_result_v.SUCCESS:
|
|
raise Exception(r)
|
|
self.__dditable.VirtualMem = _VirtualMem
|
|
|
|
# attach function interface to function address
|
|
self.zeVirtualMemReserve = _zeVirtualMemReserve_t(self.__dditable.VirtualMem.pfnReserve)
|
|
self.zeVirtualMemFree = _zeVirtualMemFree_t(self.__dditable.VirtualMem.pfnFree)
|
|
self.zeVirtualMemQueryPageSize = _zeVirtualMemQueryPageSize_t(self.__dditable.VirtualMem.pfnQueryPageSize)
|
|
self.zeVirtualMemMap = _zeVirtualMemMap_t(self.__dditable.VirtualMem.pfnMap)
|
|
self.zeVirtualMemUnmap = _zeVirtualMemUnmap_t(self.__dditable.VirtualMem.pfnUnmap)
|
|
self.zeVirtualMemSetAccessAttribute = _zeVirtualMemSetAccessAttribute_t(self.__dditable.VirtualMem.pfnSetAccessAttribute)
|
|
self.zeVirtualMemGetAccessAttribute = _zeVirtualMemGetAccessAttribute_t(self.__dditable.VirtualMem.pfnGetAccessAttribute)
|
|
|
|
# call driver to get function pointers
|
|
_FabricVertexExp = _ze_fabric_vertex_exp_dditable_t()
|
|
r = ze_result_v(self.__dll.zeGetFabricVertexExpProcAddrTable(version, byref(_FabricVertexExp)))
|
|
if r != ze_result_v.SUCCESS:
|
|
raise Exception(r)
|
|
self.__dditable.FabricVertexExp = _FabricVertexExp
|
|
|
|
# attach function interface to function address
|
|
self.zeFabricVertexGetExp = _zeFabricVertexGetExp_t(self.__dditable.FabricVertexExp.pfnGetExp)
|
|
self.zeFabricVertexGetSubVerticesExp = _zeFabricVertexGetSubVerticesExp_t(self.__dditable.FabricVertexExp.pfnGetSubVerticesExp)
|
|
self.zeFabricVertexGetPropertiesExp = _zeFabricVertexGetPropertiesExp_t(self.__dditable.FabricVertexExp.pfnGetPropertiesExp)
|
|
self.zeFabricVertexGetDeviceExp = _zeFabricVertexGetDeviceExp_t(self.__dditable.FabricVertexExp.pfnGetDeviceExp)
|
|
|
|
# call driver to get function pointers
|
|
_FabricEdgeExp = _ze_fabric_edge_exp_dditable_t()
|
|
r = ze_result_v(self.__dll.zeGetFabricEdgeExpProcAddrTable(version, byref(_FabricEdgeExp)))
|
|
if r != ze_result_v.SUCCESS:
|
|
raise Exception(r)
|
|
self.__dditable.FabricEdgeExp = _FabricEdgeExp
|
|
|
|
# attach function interface to function address
|
|
self.zeFabricEdgeGetExp = _zeFabricEdgeGetExp_t(self.__dditable.FabricEdgeExp.pfnGetExp)
|
|
self.zeFabricEdgeGetVerticesExp = _zeFabricEdgeGetVerticesExp_t(self.__dditable.FabricEdgeExp.pfnGetVerticesExp)
|
|
self.zeFabricEdgeGetPropertiesExp = _zeFabricEdgeGetPropertiesExp_t(self.__dditable.FabricEdgeExp.pfnGetPropertiesExp)
|
|
|
|
# success!
|