Files
UnrealEngine/Engine/Source/ThirdParty/Intel/oneAPILevelZero/1.21.9/include/zet.py
Brandyn / Techy fcc1b09210 init
2026-04-04 15:40:51 -05:00

1886 lines
112 KiB
Python

"""
Copyright (C) 2019-2021 Intel Corporation
SPDX-License-Identifier: MIT
@file zet.py
@version v1.12-r1.12.15
"""
import platform
from ctypes import *
from enum import *
###############################################################################
__version__ = "1.0"
###############################################################################
## @brief Handle to a driver instance
class zet_driver_handle_t(c_void_p):
pass
###############################################################################
## @brief Handle of device object
class zet_device_handle_t(c_void_p):
pass
###############################################################################
## @brief Handle of context object
class zet_context_handle_t(c_void_p):
pass
###############################################################################
## @brief Handle of command list object
class zet_command_list_handle_t(c_void_p):
pass
###############################################################################
## @brief Handle of module object
class zet_module_handle_t(c_void_p):
pass
###############################################################################
## @brief Handle of function object
class zet_kernel_handle_t(c_void_p):
pass
###############################################################################
## @brief Handle of metric group's object
class zet_metric_group_handle_t(c_void_p):
pass
###############################################################################
## @brief Handle of metric's object
class zet_metric_handle_t(c_void_p):
pass
###############################################################################
## @brief Handle of metric streamer's object
class zet_metric_streamer_handle_t(c_void_p):
pass
###############################################################################
## @brief Handle of metric query pool's object
class zet_metric_query_pool_handle_t(c_void_p):
pass
###############################################################################
## @brief Handle of metric query's object
class zet_metric_query_handle_t(c_void_p):
pass
###############################################################################
## @brief Handle of tracer object
class zet_tracer_exp_handle_t(c_void_p):
pass
###############################################################################
## @brief Debug session handle
class zet_debug_session_handle_t(c_void_p):
pass
###############################################################################
## @brief Defines structure types
class zet_structure_type_v(IntEnum):
METRIC_GROUP_PROPERTIES = 0x1 ## ::zet_metric_group_properties_t
METRIC_PROPERTIES = 0x2 ## ::zet_metric_properties_t
METRIC_STREAMER_DESC = 0x3 ## ::zet_metric_streamer_desc_t
METRIC_QUERY_POOL_DESC = 0x4 ## ::zet_metric_query_pool_desc_t
PROFILE_PROPERTIES = 0x5 ## ::zet_profile_properties_t
DEVICE_DEBUG_PROPERTIES = 0x6 ## ::zet_device_debug_properties_t
DEBUG_MEMORY_SPACE_DESC = 0x7 ## ::zet_debug_memory_space_desc_t
DEBUG_REGSET_PROPERTIES = 0x8 ## ::zet_debug_regset_properties_t
GLOBAL_METRICS_TIMESTAMPS_EXP_PROPERTIES = 0x9 ## ::zet_metric_global_timestamps_resolution_exp_t. Deprecated, use
## ::ZET_STRUCTURE_TYPE_METRIC_GLOBAL_TIMESTAMPS_RESOLUTION_EXP.
METRIC_GLOBAL_TIMESTAMPS_RESOLUTION_EXP = 0x9 ## ::zet_metric_global_timestamps_resolution_exp_t
TRACER_EXP_DESC = 0x00010001 ## ::zet_tracer_exp_desc_t
METRICS_CALCULATE_EXP_DESC = 0x00010002 ## ::zet_metric_calculate_exp_desc_t. Deprecated, use
## ::ZET_STRUCTURE_TYPE_METRIC_CALCULATE_EXP_DESC.
METRIC_CALCULATE_EXP_DESC = 0x00010002 ## ::zet_metric_calculate_exp_desc_t
METRIC_PROGRAMMABLE_EXP_PROPERTIES = 0x00010003 ## ::zet_metric_programmable_exp_properties_t
METRIC_PROGRAMMABLE_PARAM_INFO_EXP = 0x00010004 ## ::zet_metric_programmable_param_info_exp_t
METRIC_PROGRAMMABLE_PARAM_VALUE_INFO_EXP = 0x00010005 ## ::zet_metric_programmable_param_value_info_exp_t
METRIC_GROUP_TYPE_EXP = 0x00010006 ## ::zet_metric_group_type_exp_t
EXPORT_DMA_EXP_PROPERTIES = 0x00010007 ## ::zet_export_dma_buf_exp_properties_t
METRIC_TRACER_EXP_DESC = 0x00010008 ## ::zet_metric_tracer_exp_desc_t
class zet_structure_type_t(c_int):
def __str__(self):
return str(zet_structure_type_v(self.value))
###############################################################################
## @brief Base for all properties types
class zet_base_properties_t(Structure):
_fields_ = [
("stype", zet_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 zet_base_desc_t(Structure):
_fields_ = [
("stype", zet_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 Supported value types
class zet_value_type_v(IntEnum):
UINT32 = 0 ## 32-bit unsigned-integer
UINT64 = 1 ## 64-bit unsigned-integer
FLOAT32 = 2 ## 32-bit floating-point
FLOAT64 = 3 ## 64-bit floating-point
BOOL8 = 4 ## 8-bit boolean
STRING = 5 ## C string
UINT8 = 6 ## 8-bit unsigned-integer
UINT16 = 7 ## 16-bit unsigned-integer
class zet_value_type_t(c_int):
def __str__(self):
return str(zet_value_type_v(self.value))
###############################################################################
## @brief Union of values
class zet_value_t(Structure):
_fields_ = [
("ui32", c_ulong), ## [out] 32-bit unsigned-integer
("ui64", c_ulonglong), ## [out] 64-bit unsigned-integer
("fp32", c_float), ## [out] 32-bit floating-point
("fp64", c_double), ## [out] 64-bit floating-point
("b8", ze_bool_t) ## [out] 8-bit boolean
]
###############################################################################
## @brief Typed value
class zet_typed_value_t(Structure):
_fields_ = [
("type", zet_value_type_t), ## [out] type of value
("value", zet_value_t) ## [out] value
]
###############################################################################
## @brief Enables driver instrumentation and dependencies for device metrics
###############################################################################
## @brief Enables driver instrumentation and dependencies for program
## instrumentation
###############################################################################
## @brief Enables driver instrumentation and dependencies for program debugging
###############################################################################
## @brief Supported module debug info formats.
class zet_module_debug_info_format_v(IntEnum):
ELF_DWARF = 0 ## Format is ELF/DWARF
class zet_module_debug_info_format_t(c_int):
def __str__(self):
return str(zet_module_debug_info_format_v(self.value))
###############################################################################
## @brief Supported device debug property flags
class zet_device_debug_property_flags_v(IntEnum):
ATTACH = ZE_BIT(0) ## the device supports attaching for debug
class zet_device_debug_property_flags_t(c_int):
def __str__(self):
return hex(self.value)
###############################################################################
## @brief Device debug properties queried using ::zetDeviceGetDebugProperties.
class zet_device_debug_properties_t(Structure):
_fields_ = [
("stype", zet_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", zet_device_debug_property_flags_t) ## [out] returns 0 (none) or a valid combination of
## ::zet_device_debug_property_flag_t
]
###############################################################################
## @brief Debug configuration provided to ::zetDebugAttach
class zet_debug_config_t(Structure):
_fields_ = [
("pid", c_ulong) ## [in] the host process identifier
]
###############################################################################
## @brief Supported debug event flags.
class zet_debug_event_flags_v(IntEnum):
NEED_ACK = ZE_BIT(0) ## The event needs to be acknowledged by calling
## ::zetDebugAcknowledgeEvent.
class zet_debug_event_flags_t(c_int):
def __str__(self):
return hex(self.value)
###############################################################################
## @brief Supported debug event types.
class zet_debug_event_type_v(IntEnum):
INVALID = 0 ## The event is invalid
DETACHED = 1 ## The tool was detached
PROCESS_ENTRY = 2 ## The debuggee process created command queues on the device
PROCESS_EXIT = 3 ## The debuggee process destroyed all command queues on the device
MODULE_LOAD = 4 ## An in-memory module was loaded onto the device
MODULE_UNLOAD = 5 ## An in-memory module is about to get unloaded from the device
THREAD_STOPPED = 6 ## The thread stopped due to a device exception
THREAD_UNAVAILABLE = 7 ## The thread is not available to be stopped
PAGE_FAULT = 8 ## A page request could not be completed on the device
class zet_debug_event_type_t(c_int):
def __str__(self):
return str(zet_debug_event_type_v(self.value))
###############################################################################
## @brief Supported debug detach reasons.
class zet_debug_detach_reason_v(IntEnum):
INVALID = 0 ## The detach reason is not valid
HOST_EXIT = 1 ## The host process exited
class zet_debug_detach_reason_t(c_int):
def __str__(self):
return str(zet_debug_detach_reason_v(self.value))
###############################################################################
## @brief Event information for ::ZET_DEBUG_EVENT_TYPE_DETACHED
class zet_debug_event_info_detached_t(Structure):
_fields_ = [
("reason", zet_debug_detach_reason_t) ## [out] the detach reason
]
###############################################################################
## @brief Event information for ::ZET_DEBUG_EVENT_TYPE_MODULE_LOAD and
## ::ZET_DEBUG_EVENT_TYPE_MODULE_UNLOAD
class zet_debug_event_info_module_t(Structure):
_fields_ = [
("format", zet_module_debug_info_format_t), ## [out] the module format
("moduleBegin", c_ulonglong), ## [out] the begin address of the in-memory module (inclusive)
("moduleEnd", c_ulonglong), ## [out] the end address of the in-memory module (exclusive)
("load", c_ulonglong) ## [out] the load address of the module on the device
]
###############################################################################
## @brief Event information for ::ZET_DEBUG_EVENT_TYPE_THREAD_STOPPED and
## ::ZET_DEBUG_EVENT_TYPE_THREAD_UNAVAILABLE
class zet_debug_event_info_thread_stopped_t(Structure):
_fields_ = [
("thread", ze_device_thread_t) ## [out] the stopped/unavailable thread
]
###############################################################################
## @brief Page fault reasons.
class zet_debug_page_fault_reason_v(IntEnum):
INVALID = 0 ## The page fault reason is not valid
MAPPING_ERROR = 1 ## The address is not mapped
PERMISSION_ERROR = 2 ## Invalid access permissions
class zet_debug_page_fault_reason_t(c_int):
def __str__(self):
return str(zet_debug_page_fault_reason_v(self.value))
###############################################################################
## @brief Event information for ::ZET_DEBUG_EVENT_TYPE_PAGE_FAULT
class zet_debug_event_info_page_fault_t(Structure):
_fields_ = [
("address", c_ulonglong), ## [out] the faulting address
("mask", c_ulonglong), ## [out] the alignment mask
("reason", zet_debug_page_fault_reason_t) ## [out] the page fault reason
]
###############################################################################
## @brief Event type-specific information
class zet_debug_event_info_t(Structure):
_fields_ = [
("detached", zet_debug_event_info_detached_t), ## [out] type == ::ZET_DEBUG_EVENT_TYPE_DETACHED
("module", zet_debug_event_info_module_t), ## [out] type == ::ZET_DEBUG_EVENT_TYPE_MODULE_LOAD or
## ::ZET_DEBUG_EVENT_TYPE_MODULE_UNLOAD
("thread", zet_debug_event_info_thread_stopped_t), ## [out] type == ::ZET_DEBUG_EVENT_TYPE_THREAD_STOPPED or
## ::ZET_DEBUG_EVENT_TYPE_THREAD_UNAVAILABLE
("page_fault", zet_debug_event_info_page_fault_t) ## [out] type == ::ZET_DEBUG_EVENT_TYPE_PAGE_FAULT
]
###############################################################################
## @brief A debug event on the device.
class zet_debug_event_t(Structure):
_fields_ = [
("type", zet_debug_event_type_t), ## [out] the event type
("flags", zet_debug_event_flags_t), ## [out] returns 0 (none) or a combination of ::zet_debug_event_flag_t
("info", zet_debug_event_info_t) ## [out] event type specific information
]
###############################################################################
## @brief Supported device memory space types.
class zet_debug_memory_space_type_v(IntEnum):
DEFAULT = 0 ## default memory space (attribute may be omitted)
SLM = 1 ## shared local memory space (GPU-only)
ELF = 2 ## ELF file memory space
class zet_debug_memory_space_type_t(c_int):
def __str__(self):
return str(zet_debug_memory_space_type_v(self.value))
###############################################################################
## @brief Device memory space descriptor
class zet_debug_memory_space_desc_t(Structure):
_fields_ = [
("stype", zet_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).
("type", zet_debug_memory_space_type_t), ## [in] type of memory space
("address", c_ulonglong) ## [in] the virtual address within the memory space
]
###############################################################################
## @brief Supported general register set flags.
class zet_debug_regset_flags_v(IntEnum):
READABLE = ZE_BIT(0) ## register set is readable
WRITEABLE = ZE_BIT(1) ## register set is writeable
class zet_debug_regset_flags_t(c_int):
def __str__(self):
return hex(self.value)
###############################################################################
## @brief Device register set properties queried using
## ::zetDebugGetRegisterSetProperties.
class zet_debug_regset_properties_t(Structure):
_fields_ = [
("stype", zet_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", c_ulong), ## [out] device-specific register set type
("version", c_ulong), ## [out] device-specific version of this register set
("generalFlags", zet_debug_regset_flags_t), ## [out] general register set flags
("deviceFlags", c_ulong), ## [out] device-specific register set flags
("count", c_ulong), ## [out] number of registers in the set
("bitSize", c_ulong), ## [out] the size of a register in bits
("byteSize", c_ulong) ## [out] the size required for reading or writing a register in bytes
]
###############################################################################
## @brief Maximum metric group name string size
ZET_MAX_METRIC_GROUP_NAME = 256
###############################################################################
## @brief Maximum metric group description string size
ZET_MAX_METRIC_GROUP_DESCRIPTION = 256
###############################################################################
## @brief Metric group sampling type
class zet_metric_group_sampling_type_flags_v(IntEnum):
EVENT_BASED = ZE_BIT(0) ## Event based sampling
TIME_BASED = ZE_BIT(1) ## Time based sampling
EXP_TRACER_BASED = ZE_BIT(2) ## Experimental Tracer based sampling
class zet_metric_group_sampling_type_flags_t(c_int):
def __str__(self):
return hex(self.value)
###############################################################################
## @brief Metric group properties queried using ::zetMetricGroupGetProperties
class zet_metric_group_properties_t(Structure):
_fields_ = [
("stype", zet_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).
("name", c_char * ZET_MAX_METRIC_GROUP_NAME), ## [out] metric group name
("description", c_char * ZET_MAX_METRIC_GROUP_DESCRIPTION), ## [out] metric group description
("samplingType", zet_metric_group_sampling_type_flags_t), ## [out] metric group sampling type.
## returns a combination of ::zet_metric_group_sampling_type_flag_t.
("domain", c_ulong), ## [out] metric group domain number. Cannot use multiple, simultaneous
## metric groups from the same domain.
("metricCount", c_ulong) ## [out] metric count belonging to this group
]
###############################################################################
## @brief Metric types
class zet_metric_type_v(IntEnum):
DURATION = 0 ## Metric type: duration
EVENT = 1 ## Metric type: event
EVENT_WITH_RANGE = 2 ## Metric type: event with range
THROUGHPUT = 3 ## Metric type: throughput
TIMESTAMP = 4 ## Metric type: timestamp
FLAG = 5 ## Metric type: flag
RATIO = 6 ## Metric type: ratio
RAW = 7 ## Metric type: raw
EVENT_EXP_TIMESTAMP = 0x7ffffff9 ## Metric type: event with only timestamp and value has no meaning
EVENT_EXP_START = 0x7ffffffa ## Metric type: the first event of a start/end event pair
EVENT_EXP_END = 0x7ffffffb ## Metric type: the second event of a start/end event pair
EVENT_EXP_MONOTONIC_WRAPS_VALUE = 0x7ffffffc ## Metric type: value of the event is a monotonically increasing value
## that can wrap around
EXP_EXPORT_DMA_BUF = 0x7ffffffd ## Metric which exports linux dma_buf, which could be imported/mapped to
## the host process
IP_EXP = 0x7ffffffe ## Metric type: instruction pointer. Deprecated, use
## ::ZET_METRIC_TYPE_IP.
IP = 0x7ffffffe ## Metric type: instruction pointer
class zet_metric_type_t(c_int):
def __str__(self):
return str(zet_metric_type_v(self.value))
###############################################################################
## @brief Metric group calculation type
class zet_metric_group_calculation_type_v(IntEnum):
METRIC_VALUES = 0 ## Calculated metric values from raw data.
MAX_METRIC_VALUES = 1 ## Maximum metric values.
class zet_metric_group_calculation_type_t(c_int):
def __str__(self):
return str(zet_metric_group_calculation_type_v(self.value))
###############################################################################
## @brief Maximum metric name string size
ZET_MAX_METRIC_NAME = 256
###############################################################################
## @brief Maximum metric description string size
ZET_MAX_METRIC_DESCRIPTION = 256
###############################################################################
## @brief Maximum metric component string size
ZET_MAX_METRIC_COMPONENT = 256
###############################################################################
## @brief Maximum metric result units string size
ZET_MAX_METRIC_RESULT_UNITS = 256
###############################################################################
## @brief Metric properties queried using ::zetMetricGetProperties
class zet_metric_properties_t(Structure):
_fields_ = [
("stype", zet_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).
("name", c_char * ZET_MAX_METRIC_NAME), ## [out] metric name
("description", c_char * ZET_MAX_METRIC_DESCRIPTION), ## [out] metric description
("component", c_char * ZET_MAX_METRIC_COMPONENT), ## [out] metric component
("tierNumber", c_ulong), ## [out] number of tier
("metricType", zet_metric_type_t), ## [out] metric type
("resultType", zet_value_type_t), ## [out] metric result type
("resultUnits", c_char * ZET_MAX_METRIC_RESULT_UNITS) ## [out] metric result units
]
###############################################################################
## @brief Metric streamer descriptor
class zet_metric_streamer_desc_t(Structure):
_fields_ = [
("stype", zet_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).
("notifyEveryNReports", c_ulong), ## [in,out] number of collected reports after which notification event
## will be signaled. If the requested value is not supported exactly,
## then the driver may use a value that is the closest supported
## approximation and shall update this member during ::zetMetricStreamerOpen.
("samplingPeriod", c_ulong) ## [in,out] streamer sampling period in nanoseconds. If the requested
## value is not supported exactly, then the driver may use a value that
## is the closest supported approximation and shall update this member
## during ::zetMetricStreamerOpen.
]
###############################################################################
## @brief Metric query pool types
class zet_metric_query_pool_type_v(IntEnum):
PERFORMANCE = 0 ## Performance metric query pool.
EXECUTION = 1 ## Skips workload execution between begin/end calls.
class zet_metric_query_pool_type_t(c_int):
def __str__(self):
return str(zet_metric_query_pool_type_v(self.value))
###############################################################################
## @brief Metric query pool description
class zet_metric_query_pool_desc_t(Structure):
_fields_ = [
("stype", zet_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).
("type", zet_metric_query_pool_type_t), ## [in] Query pool type.
("count", c_ulong) ## [in] Internal slots count within query pool object.
]
###############################################################################
## @brief Supportted profile features
class zet_profile_flags_v(IntEnum):
REGISTER_REALLOCATION = ZE_BIT(0) ## request the compiler attempt to minimize register usage as much as
## possible to allow for instrumentation
FREE_REGISTER_INFO = ZE_BIT(1) ## request the compiler generate free register info
class zet_profile_flags_t(c_int):
def __str__(self):
return hex(self.value)
###############################################################################
## @brief Profiling meta-data for instrumentation
class zet_profile_properties_t(Structure):
_fields_ = [
("stype", zet_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", zet_profile_flags_t), ## [out] indicates which flags were enabled during compilation.
## returns 0 (none) or a combination of ::zet_profile_flag_t
("numTokens", c_ulong) ## [out] number of tokens immediately following this structure
]
###############################################################################
## @brief Supported profile token types
class zet_profile_token_type_v(IntEnum):
FREE_REGISTER = 0 ## GRF info
class zet_profile_token_type_t(c_int):
def __str__(self):
return str(zet_profile_token_type_v(self.value))
###############################################################################
## @brief Profile free register token detailing unused registers in the current
## function
class zet_profile_free_register_token_t(Structure):
_fields_ = [
("type", zet_profile_token_type_t), ## [out] type of token
("size", c_ulong), ## [out] total size of the token, in bytes
("count", c_ulong) ## [out] number of register sequences immediately following this
## structure
]
###############################################################################
## @brief Profile register sequence detailing consecutive bytes, all of which
## are unused
class zet_profile_register_sequence_t(Structure):
_fields_ = [
("start", c_ulong), ## [out] starting byte in the register table, representing the start of
## unused bytes in the current function
("count", c_ulong) ## [out] number of consecutive bytes in the sequence, starting from start
]
###############################################################################
## @brief API Tracing Experimental Extension Name
ZET_API_TRACING_EXP_NAME = "ZET_experimental_api_tracing"
###############################################################################
## @brief API Tracing Experimental Extension Version(s)
class zet_api_tracing_exp_version_v(IntEnum):
_1_0 = ZE_MAKE_VERSION( 1, 0 ) ## version 1.0
CURRENT = ZE_MAKE_VERSION( 1, 0 ) ## latest known version
class zet_api_tracing_exp_version_t(c_int):
def __str__(self):
return str(zet_api_tracing_exp_version_v(self.value))
###############################################################################
## @brief Alias the existing callbacks definition for 'core' callbacks
class zet_core_callbacks_t(ze_callbacks_t):
pass
###############################################################################
## @brief Tracer descriptor
class zet_tracer_exp_desc_t(Structure):
_fields_ = [
("stype", zet_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).
("pUserData", c_void_p) ## [in] pointer passed to every tracer's callbacks
]
###############################################################################
## @brief Concurrent Metric Groups Experimental Extension Name
ZET_CONCURRENT_METRIC_GROUPS_EXP_NAME = "ZET_experimental_concurrent_metric_groups"
###############################################################################
## @brief Concurrent Metric Groups Experimental Extension Version(s)
class zet_concurrent_metric_groups_exp_version_v(IntEnum):
_1_0 = ZE_MAKE_VERSION( 1, 0 ) ## version 1.0
CURRENT = ZE_MAKE_VERSION( 1, 0 ) ## latest known version
class zet_concurrent_metric_groups_exp_version_t(c_int):
def __str__(self):
return str(zet_concurrent_metric_groups_exp_version_v(self.value))
###############################################################################
## @brief Metric Tracer Experimental Extension Name
ZET_METRICS_TRACER_EXP_NAME = "ZET_experimental_metric_tracer"
###############################################################################
## @brief Metric Tracer Experimental Extension Version(s)
class zet_metric_tracer_exp_version_v(IntEnum):
_1_0 = ZE_MAKE_VERSION( 1, 0 ) ## version 1.0
CURRENT = ZE_MAKE_VERSION( 1, 0 ) ## latest known version
class zet_metric_tracer_exp_version_t(c_int):
def __str__(self):
return str(zet_metric_tracer_exp_version_v(self.value))
###############################################################################
## @brief Handle of metric tracer's object
class zet_metric_tracer_exp_handle_t(c_void_p):
pass
###############################################################################
## @brief Handle of metric decoder's object
class zet_metric_decoder_exp_handle_t(c_void_p):
pass
###############################################################################
## @brief Metric tracer descriptor
class zet_metric_tracer_exp_desc_t(Structure):
_fields_ = [
("stype", zet_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).
("notifyEveryNBytes", c_ulong) ## [in,out] number of collected bytes after which notification event will
## be signaled. If the requested value is not supported exactly, then the
## driver may use a value that is the closest supported approximation and
## shall update this member during ::zetMetricTracerCreateExp.
]
###############################################################################
## @brief Decoded metric entry
class zet_metric_entry_exp_t(Structure):
_fields_ = [
("value", zet_value_t), ## [out] value of the decodable metric entry or event. Number is
## meaningful based on the metric type.
("timeStamp", c_ulonglong), ## [out] timestamp at which the event happened.
("metricIndex", c_ulong), ## [out] index to the decodable metric handle in the input array
## (phMetric) in ::zetMetricTracerDecodeExp().
("onSubdevice", ze_bool_t), ## [out] True if the event occurred on a sub-device; false means the
## device on which the metric tracer was opened does not have
## sub-devices.
("subdeviceId", c_ulong) ## [out] If onSubdevice is true, this gives the ID of the sub-device.
]
###############################################################################
## @brief Metric group type
class zet_metric_group_type_exp_flags_v(IntEnum):
EXPORT_DMA_BUF = ZE_BIT(0) ## Metric group and metrics exports memory using linux dma-buf, which
## could be imported/mapped to the host process. Properties of the
## dma_buf could be queried using ::zet_export_dma_buf_exp_properties_t.
USER_CREATED = ZE_BIT(1) ## Metric group created using ::zetDeviceCreateMetricGroupsFromMetricsExp
OTHER = ZE_BIT(2) ## Metric group which has a collection of metrics
class zet_metric_group_type_exp_flags_t(c_int):
def __str__(self):
return hex(self.value)
###############################################################################
## @brief Query the metric group type using `pNext` of
## ::zet_metric_group_properties_t
class zet_metric_group_type_exp_t(Structure):
_fields_ = [
("stype", zet_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", zet_metric_group_type_exp_flags_t) ## [out] metric group type.
## returns a combination of ::zet_metric_group_type_exp_flags_t.
]
###############################################################################
## @brief Exported dma_buf properties queried using `pNext` of
## ::zet_metric_group_properties_t or ::zet_metric_properties_t
class zet_export_dma_buf_exp_properties_t(Structure):
_fields_ = [
("stype", zet_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).
("fd", c_int), ## [out] the file descriptor handle that could be used to import the
## memory by the host process.
("size", c_size_t) ## [out] size in bytes of the dma_buf
]
###############################################################################
## @brief Calculating Multiple Metrics Experimental Extension Name
ZET_MULTI_METRICS_EXP_NAME = "ZET_experimental_calculate_multiple_metrics"
###############################################################################
## @brief Calculating Multiple Metrics Experimental Extension Version(s)
class ze_calculate_multiple_metrics_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_calculate_multiple_metrics_exp_version_t(c_int):
def __str__(self):
return str(ze_calculate_multiple_metrics_exp_version_v(self.value))
###############################################################################
## @brief Global Metric Timestamps Experimental Extension Name
ZET_GLOBAL_METRICS_TIMESTAMPS_EXP_NAME = "ZET_experimental_global_metric_timestamps"
###############################################################################
## @brief Global Metric Timestamps Experimental Extension Version(s)
class ze_metric_global_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_metric_global_timestamps_exp_version_t(c_int):
def __str__(self):
return str(ze_metric_global_timestamps_exp_version_v(self.value))
###############################################################################
## @brief Metric timestamps resolution
##
## @details
## - This structure may be returned from ::zetMetricGroupGetProperties via
## the `pNext` member of ::zet_metric_group_properties_t.
## - Used for mapping metric timestamps to other timers.
class zet_metric_global_timestamps_resolution_exp_t(Structure):
_fields_ = [
("stype", zet_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).
("timerResolution", c_ulonglong), ## [out] Returns the resolution of metrics timer (used for timestamps) in
## cycles/sec.
("timestampValidBits", c_ulonglong) ## [out] Returns the number of valid bits in the timestamp value.
]
###############################################################################
## @brief Exporting Metrics Data Experimental Extension Name
ZET_EXPORT_METRICS_DATA_EXP_NAME = "ZET_experimental_metric_export_data"
###############################################################################
## @brief Exporting Metrics Data Experimental Extension Version(s)
class zet_export_metric_data_exp_version_v(IntEnum):
_1_0 = ZE_MAKE_VERSION( 1, 0 ) ## version 1.0
CURRENT = ZE_MAKE_VERSION( 1, 0 ) ## latest known version
class zet_export_metric_data_exp_version_t(c_int):
def __str__(self):
return str(zet_export_metric_data_exp_version_v(self.value))
###############################################################################
## @brief Maximum count of characters in export data element name
ZET_MAX_METRIC_EXPORT_DATA_ELEMENT_NAME_EXP = 256
###############################################################################
## @brief Maximum export data element description string size
ZET_MAX_METRIC_EXPORT_DATA_ELEMENT_DESCRIPTION_EXP = 256
###############################################################################
## @brief Metrics calculation descriptor
class zet_metric_calculate_exp_desc_t(Structure):
_fields_ = [
("stype", zet_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).
("rawReportSkipCount", c_ulong) ## [in] number of reports to skip during calculation
]
###############################################################################
## @brief Programmable Metrics Experimental Extension Name
ZET_PROGRAMMABLE_METRICS_EXP_NAME = "ZET_experimental_programmable_metrics"
###############################################################################
## @brief Programmable Metrics Experimental Extension Version(s)
class zet_metric_programmable_exp_version_v(IntEnum):
_1_1 = ZE_MAKE_VERSION( 1, 1 ) ## version 1.1
CURRENT = ZE_MAKE_VERSION( 1, 1 ) ## latest known version
class zet_metric_programmable_exp_version_t(c_int):
def __str__(self):
return str(zet_metric_programmable_exp_version_v(self.value))
###############################################################################
## @brief Maximum count of characters in export data element name
ZET_MAX_PROGRAMMABLE_METRICS_ELEMENT_NAME_EXP = 256
###############################################################################
## @brief Maximum export data element description string size
ZET_MAX_PROGRAMMABLE_METRICS_ELEMENT_DESCRIPTION_EXP = 256
###############################################################################
## @brief Maximum count of characters in metric group name prefix
ZET_MAX_METRIC_GROUP_NAME_PREFIX_EXP = 64
###############################################################################
## @brief Maximum metric programmable name string size
ZET_MAX_METRIC_PROGRAMMABLE_NAME_EXP = 128
###############################################################################
## @brief Maximum metric programmable description string size
ZET_MAX_METRIC_PROGRAMMABLE_DESCRIPTION_EXP = 128
###############################################################################
## @brief Maximum metric programmable component string size
ZET_MAX_METRIC_PROGRAMMABLE_COMPONENT_EXP = 128
###############################################################################
## @brief Maximum metric programmable parameter string size
ZET_MAX_METRIC_PROGRAMMABLE_PARAMETER_NAME_EXP = 128
###############################################################################
## @brief Maximum value for programmable value description
ZET_MAX_METRIC_PROGRAMMABLE_VALUE_DESCRIPTION_EXP = 128
###############################################################################
## @brief Maximum value metric group name prefix
ZE_MAX_METRIC_GROUP_NAME_PREFIX = 64
###############################################################################
## @brief Handle of metric programmable's object
class zet_metric_programmable_exp_handle_t(c_void_p):
pass
###############################################################################
## @brief Metric Programmable properties queried using
## ::zetMetricProgrammableGetPropertiesExp
class zet_metric_programmable_exp_properties_t(Structure):
_fields_ = [
("stype", zet_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).
("name", c_char * ZET_MAX_METRIC_PROGRAMMABLE_NAME_EXP), ## [out] metric programmable name
("description", c_char * ZET_MAX_METRIC_PROGRAMMABLE_DESCRIPTION_EXP), ## [out] metric programmable description
("component", c_char * ZET_MAX_METRIC_PROGRAMMABLE_COMPONENT_EXP), ## [out] metric programmable component
("tierNumber", c_ulong), ## [out] tier number
("domain", c_ulong), ## [out] metric domain number.
("parameterCount", c_ulong), ## [out] number of parameters in the programmable
("samplingType", zet_metric_group_sampling_type_flags_t), ## [out] metric sampling type.
## returns a combination of ::zet_metric_group_sampling_type_flag_t.
("sourceId", c_ulong) ## [out] unique metric source identifier(within platform)to identify the
## HW block where the metric is collected.
]
###############################################################################
## @brief Metric Programmable Parameter types
class zet_metric_programmable_param_type_exp_v(IntEnum):
DISAGGREGATION = 0 ## Metric is disaggregated.
LATENCY = 1 ## Metric for latency measurement.
NORMALIZATION_UTILIZATION = 2 ## Produces normalization in percent using raw_metric * 100 / cycles / HW
## instance_count.
NORMALIZATION_AVERAGE = 3 ## Produces normalization using raw_metric / HW instance_count.
NORMALIZATION_RATE = 4 ## Produces normalization average using raw_metric / timestamp.
NORMALIZATION_BYTES = 5 ## Produces normalization average using raw_metric * n bytes.
GENERIC = 6 ## Generic Parameter type. Please refer the parameter's description.
class zet_metric_programmable_param_type_exp_t(c_int):
def __str__(self):
return str(zet_metric_programmable_param_type_exp_v(self.value))
###############################################################################
## @brief Supported value info types
class zet_value_info_type_exp_v(IntEnum):
UINT32 = 0 ## 32-bit unsigned-integer
UINT64 = 1 ## 64-bit unsigned-integer
FLOAT32 = 2 ## 32-bit floating-point
FLOAT64 = 3 ## 64-bit floating-point
BOOL8 = 4 ## 8-bit boolean
UINT8 = 5 ## 8-bit unsigned-integer
UINT16 = 6 ## 16-bit unsigned-integer
UINT64_RANGE = 7 ## 64-bit unsigned-integer range (minimum and maximum)
FLOAT64_RANGE = 8 ## 64-bit floating point range (minimum and maximum)
class zet_value_info_type_exp_t(c_int):
def __str__(self):
return str(zet_value_info_type_exp_v(self.value))
###############################################################################
## @brief Value info of type uint64_t range
class zet_value_uint64_range_exp_t(Structure):
_fields_ = [
("ui64Min", c_ulonglong), ## [out] minimum value of the range
("ui64Max", c_ulonglong) ## [out] maximum value of the range
]
###############################################################################
## @brief Value info of type float64 range
class zet_value_fp64_range_exp_t(Structure):
_fields_ = [
("fp64Min", c_double), ## [out] minimum value of the range
("fp64Max", c_double) ## [out] maximum value of the range
]
###############################################################################
## @brief Union of value information
class zet_value_info_exp_t(Structure):
_fields_ = [
("ui32", c_ulong), ## [out] 32-bit unsigned-integer
("ui64", c_ulonglong), ## [out] 64-bit unsigned-integer
("fp32", c_float), ## [out] 32-bit floating-point
("fp64", c_double), ## [out] 64-bit floating-point
("b8", ze_bool_t), ## [out] 8-bit boolean
("ui8", c_ubyte), ## [out] 8-bit unsigned integer
("ui16", c_ushort), ## [out] 16-bit unsigned integer
("ui64Range", zet_value_uint64_range_exp_t), ## [out] minimum and maximum value of the range
("fp64Range", zet_value_fp64_range_exp_t) ## [out] minimum and maximum value of the range
]
###############################################################################
## @brief Metric Programmable parameter information
class zet_metric_programmable_param_info_exp_t(Structure):
_fields_ = [
("stype", zet_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", zet_metric_programmable_param_type_exp_t), ## [out] programmable parameter type
("name", c_char * ZET_MAX_METRIC_PROGRAMMABLE_PARAMETER_NAME_EXP), ## [out] metric programmable parameter name
("valueInfoType", zet_value_info_type_exp_t), ## [out] value info type
("defaultValue", zet_value_t), ## [out] default value for the parameter
("valueInfoCount", c_ulong) ## [out] count of ::zet_metric_programmable_param_value_info_exp_t
]
###############################################################################
## @brief Metric Programmable parameter value information
class zet_metric_programmable_param_value_info_exp_t(Structure):
_fields_ = [
("stype", zet_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).
("valueInfo", zet_value_info_exp_t), ## [out] information about the parameter value
("description", c_char * ZET_MAX_METRIC_PROGRAMMABLE_VALUE_DESCRIPTION_EXP) ## [out] description about the value
]
###############################################################################
## @brief Metric Programmable parameter value
class zet_metric_programmable_param_value_exp_t(Structure):
_fields_ = [
("value", zet_value_t) ## [in] parameter value
]
###############################################################################
__use_win_types = "Windows" == platform.uname()[0]
###############################################################################
## @brief Function-pointer for zetMetricProgrammableGetExp
if __use_win_types:
_zetMetricProgrammableGetExp_t = WINFUNCTYPE( ze_result_t, zet_device_handle_t, POINTER(c_ulong), POINTER(zet_metric_programmable_exp_handle_t) )
else:
_zetMetricProgrammableGetExp_t = CFUNCTYPE( ze_result_t, zet_device_handle_t, POINTER(c_ulong), POINTER(zet_metric_programmable_exp_handle_t) )
###############################################################################
## @brief Function-pointer for zetMetricProgrammableGetPropertiesExp
if __use_win_types:
_zetMetricProgrammableGetPropertiesExp_t = WINFUNCTYPE( ze_result_t, zet_metric_programmable_exp_handle_t, POINTER(zet_metric_programmable_exp_properties_t) )
else:
_zetMetricProgrammableGetPropertiesExp_t = CFUNCTYPE( ze_result_t, zet_metric_programmable_exp_handle_t, POINTER(zet_metric_programmable_exp_properties_t) )
###############################################################################
## @brief Function-pointer for zetMetricProgrammableGetParamInfoExp
if __use_win_types:
_zetMetricProgrammableGetParamInfoExp_t = WINFUNCTYPE( ze_result_t, zet_metric_programmable_exp_handle_t, POINTER(c_ulong), POINTER(zet_metric_programmable_param_info_exp_t) )
else:
_zetMetricProgrammableGetParamInfoExp_t = CFUNCTYPE( ze_result_t, zet_metric_programmable_exp_handle_t, POINTER(c_ulong), POINTER(zet_metric_programmable_param_info_exp_t) )
###############################################################################
## @brief Function-pointer for zetMetricProgrammableGetParamValueInfoExp
if __use_win_types:
_zetMetricProgrammableGetParamValueInfoExp_t = WINFUNCTYPE( ze_result_t, zet_metric_programmable_exp_handle_t, c_ulong, POINTER(c_ulong), POINTER(zet_metric_programmable_param_value_info_exp_t) )
else:
_zetMetricProgrammableGetParamValueInfoExp_t = CFUNCTYPE( ze_result_t, zet_metric_programmable_exp_handle_t, c_ulong, POINTER(c_ulong), POINTER(zet_metric_programmable_param_value_info_exp_t) )
###############################################################################
## @brief Table of MetricProgrammableExp functions pointers
class _zet_metric_programmable_exp_dditable_t(Structure):
_fields_ = [
("pfnGetExp", c_void_p), ## _zetMetricProgrammableGetExp_t
("pfnGetPropertiesExp", c_void_p), ## _zetMetricProgrammableGetPropertiesExp_t
("pfnGetParamInfoExp", c_void_p), ## _zetMetricProgrammableGetParamInfoExp_t
("pfnGetParamValueInfoExp", c_void_p) ## _zetMetricProgrammableGetParamValueInfoExp_t
]
###############################################################################
## @brief Function-pointer for zetMetricTracerCreateExp
if __use_win_types:
_zetMetricTracerCreateExp_t = WINFUNCTYPE( ze_result_t, zet_context_handle_t, zet_device_handle_t, c_ulong, POINTER(zet_metric_group_handle_t), POINTER(zet_metric_tracer_exp_desc_t), ze_event_handle_t, POINTER(zet_metric_tracer_exp_handle_t) )
else:
_zetMetricTracerCreateExp_t = CFUNCTYPE( ze_result_t, zet_context_handle_t, zet_device_handle_t, c_ulong, POINTER(zet_metric_group_handle_t), POINTER(zet_metric_tracer_exp_desc_t), ze_event_handle_t, POINTER(zet_metric_tracer_exp_handle_t) )
###############################################################################
## @brief Function-pointer for zetMetricTracerDestroyExp
if __use_win_types:
_zetMetricTracerDestroyExp_t = WINFUNCTYPE( ze_result_t, zet_metric_tracer_exp_handle_t )
else:
_zetMetricTracerDestroyExp_t = CFUNCTYPE( ze_result_t, zet_metric_tracer_exp_handle_t )
###############################################################################
## @brief Function-pointer for zetMetricTracerEnableExp
if __use_win_types:
_zetMetricTracerEnableExp_t = WINFUNCTYPE( ze_result_t, zet_metric_tracer_exp_handle_t, ze_bool_t )
else:
_zetMetricTracerEnableExp_t = CFUNCTYPE( ze_result_t, zet_metric_tracer_exp_handle_t, ze_bool_t )
###############################################################################
## @brief Function-pointer for zetMetricTracerDisableExp
if __use_win_types:
_zetMetricTracerDisableExp_t = WINFUNCTYPE( ze_result_t, zet_metric_tracer_exp_handle_t, ze_bool_t )
else:
_zetMetricTracerDisableExp_t = CFUNCTYPE( ze_result_t, zet_metric_tracer_exp_handle_t, ze_bool_t )
###############################################################################
## @brief Function-pointer for zetMetricTracerReadDataExp
if __use_win_types:
_zetMetricTracerReadDataExp_t = WINFUNCTYPE( ze_result_t, zet_metric_tracer_exp_handle_t, POINTER(c_size_t), POINTER(c_ubyte) )
else:
_zetMetricTracerReadDataExp_t = CFUNCTYPE( ze_result_t, zet_metric_tracer_exp_handle_t, POINTER(c_size_t), POINTER(c_ubyte) )
###############################################################################
## @brief Function-pointer for zetMetricTracerDecodeExp
if __use_win_types:
_zetMetricTracerDecodeExp_t = WINFUNCTYPE( ze_result_t, zet_metric_decoder_exp_handle_t, POINTER(c_size_t), POINTER(c_ubyte), c_ulong, POINTER(zet_metric_handle_t), POINTER(c_ulong), POINTER(c_ulong), POINTER(c_ulong), POINTER(zet_metric_entry_exp_t) )
else:
_zetMetricTracerDecodeExp_t = CFUNCTYPE( ze_result_t, zet_metric_decoder_exp_handle_t, POINTER(c_size_t), POINTER(c_ubyte), c_ulong, POINTER(zet_metric_handle_t), POINTER(c_ulong), POINTER(c_ulong), POINTER(c_ulong), POINTER(zet_metric_entry_exp_t) )
###############################################################################
## @brief Table of MetricTracerExp functions pointers
class _zet_metric_tracer_exp_dditable_t(Structure):
_fields_ = [
("pfnCreateExp", c_void_p), ## _zetMetricTracerCreateExp_t
("pfnDestroyExp", c_void_p), ## _zetMetricTracerDestroyExp_t
("pfnEnableExp", c_void_p), ## _zetMetricTracerEnableExp_t
("pfnDisableExp", c_void_p), ## _zetMetricTracerDisableExp_t
("pfnReadDataExp", c_void_p), ## _zetMetricTracerReadDataExp_t
("pfnDecodeExp", c_void_p) ## _zetMetricTracerDecodeExp_t
]
###############################################################################
## @brief Function-pointer for zetMetricDecoderCreateExp
if __use_win_types:
_zetMetricDecoderCreateExp_t = WINFUNCTYPE( ze_result_t, zet_metric_tracer_exp_handle_t, POINTER(zet_metric_decoder_exp_handle_t) )
else:
_zetMetricDecoderCreateExp_t = CFUNCTYPE( ze_result_t, zet_metric_tracer_exp_handle_t, POINTER(zet_metric_decoder_exp_handle_t) )
###############################################################################
## @brief Function-pointer for zetMetricDecoderDestroyExp
if __use_win_types:
_zetMetricDecoderDestroyExp_t = WINFUNCTYPE( ze_result_t, zet_metric_decoder_exp_handle_t )
else:
_zetMetricDecoderDestroyExp_t = CFUNCTYPE( ze_result_t, zet_metric_decoder_exp_handle_t )
###############################################################################
## @brief Function-pointer for zetMetricDecoderGetDecodableMetricsExp
if __use_win_types:
_zetMetricDecoderGetDecodableMetricsExp_t = WINFUNCTYPE( ze_result_t, zet_metric_decoder_exp_handle_t, POINTER(c_ulong), POINTER(zet_metric_handle_t) )
else:
_zetMetricDecoderGetDecodableMetricsExp_t = CFUNCTYPE( ze_result_t, zet_metric_decoder_exp_handle_t, POINTER(c_ulong), POINTER(zet_metric_handle_t) )
###############################################################################
## @brief Table of MetricDecoderExp functions pointers
class _zet_metric_decoder_exp_dditable_t(Structure):
_fields_ = [
("pfnCreateExp", c_void_p), ## _zetMetricDecoderCreateExp_t
("pfnDestroyExp", c_void_p), ## _zetMetricDecoderDestroyExp_t
("pfnGetDecodableMetricsExp", c_void_p) ## _zetMetricDecoderGetDecodableMetricsExp_t
]
###############################################################################
## @brief Function-pointer for zetDeviceGetDebugProperties
if __use_win_types:
_zetDeviceGetDebugProperties_t = WINFUNCTYPE( ze_result_t, zet_device_handle_t, POINTER(zet_device_debug_properties_t) )
else:
_zetDeviceGetDebugProperties_t = CFUNCTYPE( ze_result_t, zet_device_handle_t, POINTER(zet_device_debug_properties_t) )
###############################################################################
## @brief Table of Device functions pointers
class _zet_device_dditable_t(Structure):
_fields_ = [
("pfnGetDebugProperties", c_void_p) ## _zetDeviceGetDebugProperties_t
]
###############################################################################
## @brief Function-pointer for zetDeviceGetConcurrentMetricGroupsExp
if __use_win_types:
_zetDeviceGetConcurrentMetricGroupsExp_t = WINFUNCTYPE( ze_result_t, zet_device_handle_t, c_ulong, *, *, * )
else:
_zetDeviceGetConcurrentMetricGroupsExp_t = CFUNCTYPE( ze_result_t, zet_device_handle_t, c_ulong, *, *, * )
###############################################################################
## @brief Function-pointer for zetDeviceCreateMetricGroupsFromMetricsExp
if __use_win_types:
_zetDeviceCreateMetricGroupsFromMetricsExp_t = WINFUNCTYPE( ze_result_t, zet_device_handle_t, c_ulong, *, *, *, *, POINTER(zet_metric_group_handle_t) )
else:
_zetDeviceCreateMetricGroupsFromMetricsExp_t = CFUNCTYPE( ze_result_t, zet_device_handle_t, c_ulong, *, *, *, *, POINTER(zet_metric_group_handle_t) )
###############################################################################
## @brief Table of DeviceExp functions pointers
class _zet_device_exp_dditable_t(Structure):
_fields_ = [
("pfnGetConcurrentMetricGroupsExp", c_void_p), ## _zetDeviceGetConcurrentMetricGroupsExp_t
("pfnCreateMetricGroupsFromMetricsExp", c_void_p) ## _zetDeviceCreateMetricGroupsFromMetricsExp_t
]
###############################################################################
## @brief Function-pointer for zetContextActivateMetricGroups
if __use_win_types:
_zetContextActivateMetricGroups_t = WINFUNCTYPE( ze_result_t, zet_context_handle_t, zet_device_handle_t, c_ulong, POINTER(zet_metric_group_handle_t) )
else:
_zetContextActivateMetricGroups_t = CFUNCTYPE( ze_result_t, zet_context_handle_t, zet_device_handle_t, c_ulong, POINTER(zet_metric_group_handle_t) )
###############################################################################
## @brief Table of Context functions pointers
class _zet_context_dditable_t(Structure):
_fields_ = [
("pfnActivateMetricGroups", c_void_p) ## _zetContextActivateMetricGroups_t
]
###############################################################################
## @brief Function-pointer for zetCommandListAppendMetricStreamerMarker
if __use_win_types:
_zetCommandListAppendMetricStreamerMarker_t = WINFUNCTYPE( ze_result_t, zet_command_list_handle_t, zet_metric_streamer_handle_t, c_ulong )
else:
_zetCommandListAppendMetricStreamerMarker_t = CFUNCTYPE( ze_result_t, zet_command_list_handle_t, zet_metric_streamer_handle_t, c_ulong )
###############################################################################
## @brief Function-pointer for zetCommandListAppendMetricQueryBegin
if __use_win_types:
_zetCommandListAppendMetricQueryBegin_t = WINFUNCTYPE( ze_result_t, zet_command_list_handle_t, zet_metric_query_handle_t )
else:
_zetCommandListAppendMetricQueryBegin_t = CFUNCTYPE( ze_result_t, zet_command_list_handle_t, zet_metric_query_handle_t )
###############################################################################
## @brief Function-pointer for zetCommandListAppendMetricQueryEnd
if __use_win_types:
_zetCommandListAppendMetricQueryEnd_t = WINFUNCTYPE( ze_result_t, zet_command_list_handle_t, zet_metric_query_handle_t, ze_event_handle_t, c_ulong, POINTER(ze_event_handle_t) )
else:
_zetCommandListAppendMetricQueryEnd_t = CFUNCTYPE( ze_result_t, zet_command_list_handle_t, zet_metric_query_handle_t, ze_event_handle_t, c_ulong, POINTER(ze_event_handle_t) )
###############################################################################
## @brief Function-pointer for zetCommandListAppendMetricMemoryBarrier
if __use_win_types:
_zetCommandListAppendMetricMemoryBarrier_t = WINFUNCTYPE( ze_result_t, zet_command_list_handle_t )
else:
_zetCommandListAppendMetricMemoryBarrier_t = CFUNCTYPE( ze_result_t, zet_command_list_handle_t )
###############################################################################
## @brief Table of CommandList functions pointers
class _zet_command_list_dditable_t(Structure):
_fields_ = [
("pfnAppendMetricStreamerMarker", c_void_p), ## _zetCommandListAppendMetricStreamerMarker_t
("pfnAppendMetricQueryBegin", c_void_p), ## _zetCommandListAppendMetricQueryBegin_t
("pfnAppendMetricQueryEnd", c_void_p), ## _zetCommandListAppendMetricQueryEnd_t
("pfnAppendMetricMemoryBarrier", c_void_p) ## _zetCommandListAppendMetricMemoryBarrier_t
]
###############################################################################
## @brief Function-pointer for zetModuleGetDebugInfo
if __use_win_types:
_zetModuleGetDebugInfo_t = WINFUNCTYPE( ze_result_t, zet_module_handle_t, zet_module_debug_info_format_t, POINTER(c_size_t), POINTER(c_ubyte) )
else:
_zetModuleGetDebugInfo_t = CFUNCTYPE( ze_result_t, zet_module_handle_t, zet_module_debug_info_format_t, POINTER(c_size_t), POINTER(c_ubyte) )
###############################################################################
## @brief Table of Module functions pointers
class _zet_module_dditable_t(Structure):
_fields_ = [
("pfnGetDebugInfo", c_void_p) ## _zetModuleGetDebugInfo_t
]
###############################################################################
## @brief Function-pointer for zetKernelGetProfileInfo
if __use_win_types:
_zetKernelGetProfileInfo_t = WINFUNCTYPE( ze_result_t, zet_kernel_handle_t, POINTER(zet_profile_properties_t) )
else:
_zetKernelGetProfileInfo_t = CFUNCTYPE( ze_result_t, zet_kernel_handle_t, POINTER(zet_profile_properties_t) )
###############################################################################
## @brief Table of Kernel functions pointers
class _zet_kernel_dditable_t(Structure):
_fields_ = [
("pfnGetProfileInfo", c_void_p) ## _zetKernelGetProfileInfo_t
]
###############################################################################
## @brief Function-pointer for zetMetricGet
if __use_win_types:
_zetMetricGet_t = WINFUNCTYPE( ze_result_t, zet_metric_group_handle_t, POINTER(c_ulong), POINTER(zet_metric_handle_t) )
else:
_zetMetricGet_t = CFUNCTYPE( ze_result_t, zet_metric_group_handle_t, POINTER(c_ulong), POINTER(zet_metric_handle_t) )
###############################################################################
## @brief Function-pointer for zetMetricGetProperties
if __use_win_types:
_zetMetricGetProperties_t = WINFUNCTYPE( ze_result_t, zet_metric_handle_t, POINTER(zet_metric_properties_t) )
else:
_zetMetricGetProperties_t = CFUNCTYPE( ze_result_t, zet_metric_handle_t, POINTER(zet_metric_properties_t) )
###############################################################################
## @brief Table of Metric functions pointers
class _zet_metric_dditable_t(Structure):
_fields_ = [
("pfnGet", c_void_p), ## _zetMetricGet_t
("pfnGetProperties", c_void_p) ## _zetMetricGetProperties_t
]
###############################################################################
## @brief Function-pointer for zetMetricCreateFromProgrammableExp
if __use_win_types:
_zetMetricCreateFromProgrammableExp_t = WINFUNCTYPE( ze_result_t, zet_metric_programmable_exp_handle_t, POINTER(zet_metric_programmable_param_value_exp_t), c_ulong, c_char_p, c_char_p, POINTER(c_ulong), POINTER(zet_metric_handle_t) )
else:
_zetMetricCreateFromProgrammableExp_t = CFUNCTYPE( ze_result_t, zet_metric_programmable_exp_handle_t, POINTER(zet_metric_programmable_param_value_exp_t), c_ulong, c_char_p, c_char_p, POINTER(c_ulong), POINTER(zet_metric_handle_t) )
###############################################################################
## @brief Function-pointer for zetMetricDestroyExp
if __use_win_types:
_zetMetricDestroyExp_t = WINFUNCTYPE( ze_result_t, zet_metric_handle_t )
else:
_zetMetricDestroyExp_t = CFUNCTYPE( ze_result_t, zet_metric_handle_t )
###############################################################################
## @brief Function-pointer for zetMetricCreateFromProgrammableExp2
if __use_win_types:
_zetMetricCreateFromProgrammableExp2_t = WINFUNCTYPE( ze_result_t, zet_metric_programmable_exp_handle_t, c_ulong, POINTER(zet_metric_programmable_param_value_exp_t), c_char_p, c_char_p, POINTER(c_ulong), POINTER(zet_metric_handle_t) )
else:
_zetMetricCreateFromProgrammableExp2_t = CFUNCTYPE( ze_result_t, zet_metric_programmable_exp_handle_t, c_ulong, POINTER(zet_metric_programmable_param_value_exp_t), c_char_p, c_char_p, POINTER(c_ulong), POINTER(zet_metric_handle_t) )
###############################################################################
## @brief Table of MetricExp functions pointers
class _zet_metric_exp_dditable_t(Structure):
_fields_ = [
("pfnCreateFromProgrammableExp", c_void_p), ## _zetMetricCreateFromProgrammableExp_t
("pfnDestroyExp", c_void_p), ## _zetMetricDestroyExp_t
("pfnCreateFromProgrammableExp2", c_void_p) ## _zetMetricCreateFromProgrammableExp2_t
]
###############################################################################
## @brief Function-pointer for zetMetricGroupGet
if __use_win_types:
_zetMetricGroupGet_t = WINFUNCTYPE( ze_result_t, zet_device_handle_t, POINTER(c_ulong), POINTER(zet_metric_group_handle_t) )
else:
_zetMetricGroupGet_t = CFUNCTYPE( ze_result_t, zet_device_handle_t, POINTER(c_ulong), POINTER(zet_metric_group_handle_t) )
###############################################################################
## @brief Function-pointer for zetMetricGroupGetProperties
if __use_win_types:
_zetMetricGroupGetProperties_t = WINFUNCTYPE( ze_result_t, zet_metric_group_handle_t, POINTER(zet_metric_group_properties_t) )
else:
_zetMetricGroupGetProperties_t = CFUNCTYPE( ze_result_t, zet_metric_group_handle_t, POINTER(zet_metric_group_properties_t) )
###############################################################################
## @brief Function-pointer for zetMetricGroupCalculateMetricValues
if __use_win_types:
_zetMetricGroupCalculateMetricValues_t = WINFUNCTYPE( ze_result_t, zet_metric_group_handle_t, zet_metric_group_calculation_type_t, c_size_t, POINTER(c_ubyte), POINTER(c_ulong), POINTER(zet_typed_value_t) )
else:
_zetMetricGroupCalculateMetricValues_t = CFUNCTYPE( ze_result_t, zet_metric_group_handle_t, zet_metric_group_calculation_type_t, c_size_t, POINTER(c_ubyte), POINTER(c_ulong), POINTER(zet_typed_value_t) )
###############################################################################
## @brief Table of MetricGroup functions pointers
class _zet_metric_group_dditable_t(Structure):
_fields_ = [
("pfnGet", c_void_p), ## _zetMetricGroupGet_t
("pfnGetProperties", c_void_p), ## _zetMetricGroupGetProperties_t
("pfnCalculateMetricValues", c_void_p) ## _zetMetricGroupCalculateMetricValues_t
]
###############################################################################
## @brief Function-pointer for zetMetricGroupCalculateMultipleMetricValuesExp
if __use_win_types:
_zetMetricGroupCalculateMultipleMetricValuesExp_t = WINFUNCTYPE( ze_result_t, zet_metric_group_handle_t, zet_metric_group_calculation_type_t, c_size_t, POINTER(c_ubyte), POINTER(c_ulong), POINTER(c_ulong), POINTER(c_ulong), POINTER(zet_typed_value_t) )
else:
_zetMetricGroupCalculateMultipleMetricValuesExp_t = CFUNCTYPE( ze_result_t, zet_metric_group_handle_t, zet_metric_group_calculation_type_t, c_size_t, POINTER(c_ubyte), POINTER(c_ulong), POINTER(c_ulong), POINTER(c_ulong), POINTER(zet_typed_value_t) )
###############################################################################
## @brief Function-pointer for zetMetricGroupGetGlobalTimestampsExp
if __use_win_types:
_zetMetricGroupGetGlobalTimestampsExp_t = WINFUNCTYPE( ze_result_t, zet_metric_group_handle_t, ze_bool_t, POINTER(c_ulonglong), POINTER(c_ulonglong) )
else:
_zetMetricGroupGetGlobalTimestampsExp_t = CFUNCTYPE( ze_result_t, zet_metric_group_handle_t, ze_bool_t, POINTER(c_ulonglong), POINTER(c_ulonglong) )
###############################################################################
## @brief Function-pointer for zetMetricGroupGetExportDataExp
if __use_win_types:
_zetMetricGroupGetExportDataExp_t = WINFUNCTYPE( ze_result_t, zet_metric_group_handle_t, POINTER(c_ubyte), c_size_t, POINTER(c_size_t), * )
else:
_zetMetricGroupGetExportDataExp_t = CFUNCTYPE( ze_result_t, zet_metric_group_handle_t, POINTER(c_ubyte), c_size_t, POINTER(c_size_t), * )
###############################################################################
## @brief Function-pointer for zetMetricGroupCalculateMetricExportDataExp
if __use_win_types:
_zetMetricGroupCalculateMetricExportDataExp_t = WINFUNCTYPE( ze_result_t, ze_driver_handle_t, zet_metric_group_calculation_type_t, c_size_t, POINTER(c_ubyte), POINTER(zet_metric_calculate_exp_desc_t), POINTER(c_ulong), POINTER(c_ulong), POINTER(c_ulong), POINTER(zet_typed_value_t) )
else:
_zetMetricGroupCalculateMetricExportDataExp_t = CFUNCTYPE( ze_result_t, ze_driver_handle_t, zet_metric_group_calculation_type_t, c_size_t, POINTER(c_ubyte), POINTER(zet_metric_calculate_exp_desc_t), POINTER(c_ulong), POINTER(c_ulong), POINTER(c_ulong), POINTER(zet_typed_value_t) )
###############################################################################
## @brief Function-pointer for zetMetricGroupCreateExp
if __use_win_types:
_zetMetricGroupCreateExp_t = WINFUNCTYPE( ze_result_t, zet_device_handle_t, c_char_p, c_char_p, zet_metric_group_sampling_type_flags_t, POINTER(zet_metric_group_handle_t) )
else:
_zetMetricGroupCreateExp_t = CFUNCTYPE( ze_result_t, zet_device_handle_t, c_char_p, c_char_p, zet_metric_group_sampling_type_flags_t, POINTER(zet_metric_group_handle_t) )
###############################################################################
## @brief Function-pointer for zetMetricGroupAddMetricExp
if __use_win_types:
_zetMetricGroupAddMetricExp_t = WINFUNCTYPE( ze_result_t, zet_metric_group_handle_t, zet_metric_handle_t, *, c_char_p )
else:
_zetMetricGroupAddMetricExp_t = CFUNCTYPE( ze_result_t, zet_metric_group_handle_t, zet_metric_handle_t, *, c_char_p )
###############################################################################
## @brief Function-pointer for zetMetricGroupRemoveMetricExp
if __use_win_types:
_zetMetricGroupRemoveMetricExp_t = WINFUNCTYPE( ze_result_t, zet_metric_group_handle_t, zet_metric_handle_t )
else:
_zetMetricGroupRemoveMetricExp_t = CFUNCTYPE( ze_result_t, zet_metric_group_handle_t, zet_metric_handle_t )
###############################################################################
## @brief Function-pointer for zetMetricGroupCloseExp
if __use_win_types:
_zetMetricGroupCloseExp_t = WINFUNCTYPE( ze_result_t, zet_metric_group_handle_t )
else:
_zetMetricGroupCloseExp_t = CFUNCTYPE( ze_result_t, zet_metric_group_handle_t )
###############################################################################
## @brief Function-pointer for zetMetricGroupDestroyExp
if __use_win_types:
_zetMetricGroupDestroyExp_t = WINFUNCTYPE( ze_result_t, zet_metric_group_handle_t )
else:
_zetMetricGroupDestroyExp_t = CFUNCTYPE( ze_result_t, zet_metric_group_handle_t )
###############################################################################
## @brief Table of MetricGroupExp functions pointers
class _zet_metric_group_exp_dditable_t(Structure):
_fields_ = [
("pfnCalculateMultipleMetricValuesExp", c_void_p), ## _zetMetricGroupCalculateMultipleMetricValuesExp_t
("pfnGetGlobalTimestampsExp", c_void_p), ## _zetMetricGroupGetGlobalTimestampsExp_t
("pfnGetExportDataExp", c_void_p), ## _zetMetricGroupGetExportDataExp_t
("pfnCalculateMetricExportDataExp", c_void_p), ## _zetMetricGroupCalculateMetricExportDataExp_t
("pfnCreateExp", c_void_p), ## _zetMetricGroupCreateExp_t
("pfnAddMetricExp", c_void_p), ## _zetMetricGroupAddMetricExp_t
("pfnRemoveMetricExp", c_void_p), ## _zetMetricGroupRemoveMetricExp_t
("pfnCloseExp", c_void_p), ## _zetMetricGroupCloseExp_t
("pfnDestroyExp", c_void_p) ## _zetMetricGroupDestroyExp_t
]
###############################################################################
## @brief Function-pointer for zetMetricStreamerOpen
if __use_win_types:
_zetMetricStreamerOpen_t = WINFUNCTYPE( ze_result_t, zet_context_handle_t, zet_device_handle_t, zet_metric_group_handle_t, POINTER(zet_metric_streamer_desc_t), ze_event_handle_t, POINTER(zet_metric_streamer_handle_t) )
else:
_zetMetricStreamerOpen_t = CFUNCTYPE( ze_result_t, zet_context_handle_t, zet_device_handle_t, zet_metric_group_handle_t, POINTER(zet_metric_streamer_desc_t), ze_event_handle_t, POINTER(zet_metric_streamer_handle_t) )
###############################################################################
## @brief Function-pointer for zetMetricStreamerClose
if __use_win_types:
_zetMetricStreamerClose_t = WINFUNCTYPE( ze_result_t, zet_metric_streamer_handle_t )
else:
_zetMetricStreamerClose_t = CFUNCTYPE( ze_result_t, zet_metric_streamer_handle_t )
###############################################################################
## @brief Function-pointer for zetMetricStreamerReadData
if __use_win_types:
_zetMetricStreamerReadData_t = WINFUNCTYPE( ze_result_t, zet_metric_streamer_handle_t, c_ulong, POINTER(c_size_t), POINTER(c_ubyte) )
else:
_zetMetricStreamerReadData_t = CFUNCTYPE( ze_result_t, zet_metric_streamer_handle_t, c_ulong, POINTER(c_size_t), POINTER(c_ubyte) )
###############################################################################
## @brief Table of MetricStreamer functions pointers
class _zet_metric_streamer_dditable_t(Structure):
_fields_ = [
("pfnOpen", c_void_p), ## _zetMetricStreamerOpen_t
("pfnClose", c_void_p), ## _zetMetricStreamerClose_t
("pfnReadData", c_void_p) ## _zetMetricStreamerReadData_t
]
###############################################################################
## @brief Function-pointer for zetMetricQueryPoolCreate
if __use_win_types:
_zetMetricQueryPoolCreate_t = WINFUNCTYPE( ze_result_t, zet_context_handle_t, zet_device_handle_t, zet_metric_group_handle_t, POINTER(zet_metric_query_pool_desc_t), POINTER(zet_metric_query_pool_handle_t) )
else:
_zetMetricQueryPoolCreate_t = CFUNCTYPE( ze_result_t, zet_context_handle_t, zet_device_handle_t, zet_metric_group_handle_t, POINTER(zet_metric_query_pool_desc_t), POINTER(zet_metric_query_pool_handle_t) )
###############################################################################
## @brief Function-pointer for zetMetricQueryPoolDestroy
if __use_win_types:
_zetMetricQueryPoolDestroy_t = WINFUNCTYPE( ze_result_t, zet_metric_query_pool_handle_t )
else:
_zetMetricQueryPoolDestroy_t = CFUNCTYPE( ze_result_t, zet_metric_query_pool_handle_t )
###############################################################################
## @brief Table of MetricQueryPool functions pointers
class _zet_metric_query_pool_dditable_t(Structure):
_fields_ = [
("pfnCreate", c_void_p), ## _zetMetricQueryPoolCreate_t
("pfnDestroy", c_void_p) ## _zetMetricQueryPoolDestroy_t
]
###############################################################################
## @brief Function-pointer for zetMetricQueryCreate
if __use_win_types:
_zetMetricQueryCreate_t = WINFUNCTYPE( ze_result_t, zet_metric_query_pool_handle_t, c_ulong, POINTER(zet_metric_query_handle_t) )
else:
_zetMetricQueryCreate_t = CFUNCTYPE( ze_result_t, zet_metric_query_pool_handle_t, c_ulong, POINTER(zet_metric_query_handle_t) )
###############################################################################
## @brief Function-pointer for zetMetricQueryDestroy
if __use_win_types:
_zetMetricQueryDestroy_t = WINFUNCTYPE( ze_result_t, zet_metric_query_handle_t )
else:
_zetMetricQueryDestroy_t = CFUNCTYPE( ze_result_t, zet_metric_query_handle_t )
###############################################################################
## @brief Function-pointer for zetMetricQueryReset
if __use_win_types:
_zetMetricQueryReset_t = WINFUNCTYPE( ze_result_t, zet_metric_query_handle_t )
else:
_zetMetricQueryReset_t = CFUNCTYPE( ze_result_t, zet_metric_query_handle_t )
###############################################################################
## @brief Function-pointer for zetMetricQueryGetData
if __use_win_types:
_zetMetricQueryGetData_t = WINFUNCTYPE( ze_result_t, zet_metric_query_handle_t, POINTER(c_size_t), POINTER(c_ubyte) )
else:
_zetMetricQueryGetData_t = CFUNCTYPE( ze_result_t, zet_metric_query_handle_t, POINTER(c_size_t), POINTER(c_ubyte) )
###############################################################################
## @brief Table of MetricQuery functions pointers
class _zet_metric_query_dditable_t(Structure):
_fields_ = [
("pfnCreate", c_void_p), ## _zetMetricQueryCreate_t
("pfnDestroy", c_void_p), ## _zetMetricQueryDestroy_t
("pfnReset", c_void_p), ## _zetMetricQueryReset_t
("pfnGetData", c_void_p) ## _zetMetricQueryGetData_t
]
###############################################################################
## @brief Function-pointer for zetTracerExpCreate
if __use_win_types:
_zetTracerExpCreate_t = WINFUNCTYPE( ze_result_t, zet_context_handle_t, POINTER(zet_tracer_exp_desc_t), POINTER(zet_tracer_exp_handle_t) )
else:
_zetTracerExpCreate_t = CFUNCTYPE( ze_result_t, zet_context_handle_t, POINTER(zet_tracer_exp_desc_t), POINTER(zet_tracer_exp_handle_t) )
###############################################################################
## @brief Function-pointer for zetTracerExpDestroy
if __use_win_types:
_zetTracerExpDestroy_t = WINFUNCTYPE( ze_result_t, zet_tracer_exp_handle_t )
else:
_zetTracerExpDestroy_t = CFUNCTYPE( ze_result_t, zet_tracer_exp_handle_t )
###############################################################################
## @brief Function-pointer for zetTracerExpSetPrologues
if __use_win_types:
_zetTracerExpSetPrologues_t = WINFUNCTYPE( ze_result_t, zet_tracer_exp_handle_t, POINTER(zet_core_callbacks_t) )
else:
_zetTracerExpSetPrologues_t = CFUNCTYPE( ze_result_t, zet_tracer_exp_handle_t, POINTER(zet_core_callbacks_t) )
###############################################################################
## @brief Function-pointer for zetTracerExpSetEpilogues
if __use_win_types:
_zetTracerExpSetEpilogues_t = WINFUNCTYPE( ze_result_t, zet_tracer_exp_handle_t, POINTER(zet_core_callbacks_t) )
else:
_zetTracerExpSetEpilogues_t = CFUNCTYPE( ze_result_t, zet_tracer_exp_handle_t, POINTER(zet_core_callbacks_t) )
###############################################################################
## @brief Function-pointer for zetTracerExpSetEnabled
if __use_win_types:
_zetTracerExpSetEnabled_t = WINFUNCTYPE( ze_result_t, zet_tracer_exp_handle_t, ze_bool_t )
else:
_zetTracerExpSetEnabled_t = CFUNCTYPE( ze_result_t, zet_tracer_exp_handle_t, ze_bool_t )
###############################################################################
## @brief Table of TracerExp functions pointers
class _zet_tracer_exp_dditable_t(Structure):
_fields_ = [
("pfnCreate", c_void_p), ## _zetTracerExpCreate_t
("pfnDestroy", c_void_p), ## _zetTracerExpDestroy_t
("pfnSetPrologues", c_void_p), ## _zetTracerExpSetPrologues_t
("pfnSetEpilogues", c_void_p), ## _zetTracerExpSetEpilogues_t
("pfnSetEnabled", c_void_p) ## _zetTracerExpSetEnabled_t
]
###############################################################################
## @brief Function-pointer for zetDebugAttach
if __use_win_types:
_zetDebugAttach_t = WINFUNCTYPE( ze_result_t, zet_device_handle_t, POINTER(zet_debug_config_t), POINTER(zet_debug_session_handle_t) )
else:
_zetDebugAttach_t = CFUNCTYPE( ze_result_t, zet_device_handle_t, POINTER(zet_debug_config_t), POINTER(zet_debug_session_handle_t) )
###############################################################################
## @brief Function-pointer for zetDebugDetach
if __use_win_types:
_zetDebugDetach_t = WINFUNCTYPE( ze_result_t, zet_debug_session_handle_t )
else:
_zetDebugDetach_t = CFUNCTYPE( ze_result_t, zet_debug_session_handle_t )
###############################################################################
## @brief Function-pointer for zetDebugReadEvent
if __use_win_types:
_zetDebugReadEvent_t = WINFUNCTYPE( ze_result_t, zet_debug_session_handle_t, c_ulonglong, POINTER(zet_debug_event_t) )
else:
_zetDebugReadEvent_t = CFUNCTYPE( ze_result_t, zet_debug_session_handle_t, c_ulonglong, POINTER(zet_debug_event_t) )
###############################################################################
## @brief Function-pointer for zetDebugAcknowledgeEvent
if __use_win_types:
_zetDebugAcknowledgeEvent_t = WINFUNCTYPE( ze_result_t, zet_debug_session_handle_t, POINTER(zet_debug_event_t) )
else:
_zetDebugAcknowledgeEvent_t = CFUNCTYPE( ze_result_t, zet_debug_session_handle_t, POINTER(zet_debug_event_t) )
###############################################################################
## @brief Function-pointer for zetDebugInterrupt
if __use_win_types:
_zetDebugInterrupt_t = WINFUNCTYPE( ze_result_t, zet_debug_session_handle_t, ze_device_thread_t )
else:
_zetDebugInterrupt_t = CFUNCTYPE( ze_result_t, zet_debug_session_handle_t, ze_device_thread_t )
###############################################################################
## @brief Function-pointer for zetDebugResume
if __use_win_types:
_zetDebugResume_t = WINFUNCTYPE( ze_result_t, zet_debug_session_handle_t, ze_device_thread_t )
else:
_zetDebugResume_t = CFUNCTYPE( ze_result_t, zet_debug_session_handle_t, ze_device_thread_t )
###############################################################################
## @brief Function-pointer for zetDebugReadMemory
if __use_win_types:
_zetDebugReadMemory_t = WINFUNCTYPE( ze_result_t, zet_debug_session_handle_t, ze_device_thread_t, POINTER(zet_debug_memory_space_desc_t), c_size_t, c_void_p )
else:
_zetDebugReadMemory_t = CFUNCTYPE( ze_result_t, zet_debug_session_handle_t, ze_device_thread_t, POINTER(zet_debug_memory_space_desc_t), c_size_t, c_void_p )
###############################################################################
## @brief Function-pointer for zetDebugWriteMemory
if __use_win_types:
_zetDebugWriteMemory_t = WINFUNCTYPE( ze_result_t, zet_debug_session_handle_t, ze_device_thread_t, POINTER(zet_debug_memory_space_desc_t), c_size_t, c_void_p )
else:
_zetDebugWriteMemory_t = CFUNCTYPE( ze_result_t, zet_debug_session_handle_t, ze_device_thread_t, POINTER(zet_debug_memory_space_desc_t), c_size_t, c_void_p )
###############################################################################
## @brief Function-pointer for zetDebugGetRegisterSetProperties
if __use_win_types:
_zetDebugGetRegisterSetProperties_t = WINFUNCTYPE( ze_result_t, zet_device_handle_t, POINTER(c_ulong), POINTER(zet_debug_regset_properties_t) )
else:
_zetDebugGetRegisterSetProperties_t = CFUNCTYPE( ze_result_t, zet_device_handle_t, POINTER(c_ulong), POINTER(zet_debug_regset_properties_t) )
###############################################################################
## @brief Function-pointer for zetDebugReadRegisters
if __use_win_types:
_zetDebugReadRegisters_t = WINFUNCTYPE( ze_result_t, zet_debug_session_handle_t, ze_device_thread_t, c_ulong, c_ulong, c_ulong, c_void_p )
else:
_zetDebugReadRegisters_t = CFUNCTYPE( ze_result_t, zet_debug_session_handle_t, ze_device_thread_t, c_ulong, c_ulong, c_ulong, c_void_p )
###############################################################################
## @brief Function-pointer for zetDebugWriteRegisters
if __use_win_types:
_zetDebugWriteRegisters_t = WINFUNCTYPE( ze_result_t, zet_debug_session_handle_t, ze_device_thread_t, c_ulong, c_ulong, c_ulong, c_void_p )
else:
_zetDebugWriteRegisters_t = CFUNCTYPE( ze_result_t, zet_debug_session_handle_t, ze_device_thread_t, c_ulong, c_ulong, c_ulong, c_void_p )
###############################################################################
## @brief Function-pointer for zetDebugGetThreadRegisterSetProperties
if __use_win_types:
_zetDebugGetThreadRegisterSetProperties_t = WINFUNCTYPE( ze_result_t, zet_debug_session_handle_t, ze_device_thread_t, POINTER(c_ulong), POINTER(zet_debug_regset_properties_t) )
else:
_zetDebugGetThreadRegisterSetProperties_t = CFUNCTYPE( ze_result_t, zet_debug_session_handle_t, ze_device_thread_t, POINTER(c_ulong), POINTER(zet_debug_regset_properties_t) )
###############################################################################
## @brief Table of Debug functions pointers
class _zet_debug_dditable_t(Structure):
_fields_ = [
("pfnAttach", c_void_p), ## _zetDebugAttach_t
("pfnDetach", c_void_p), ## _zetDebugDetach_t
("pfnReadEvent", c_void_p), ## _zetDebugReadEvent_t
("pfnAcknowledgeEvent", c_void_p), ## _zetDebugAcknowledgeEvent_t
("pfnInterrupt", c_void_p), ## _zetDebugInterrupt_t
("pfnResume", c_void_p), ## _zetDebugResume_t
("pfnReadMemory", c_void_p), ## _zetDebugReadMemory_t
("pfnWriteMemory", c_void_p), ## _zetDebugWriteMemory_t
("pfnGetRegisterSetProperties", c_void_p), ## _zetDebugGetRegisterSetProperties_t
("pfnReadRegisters", c_void_p), ## _zetDebugReadRegisters_t
("pfnWriteRegisters", c_void_p), ## _zetDebugWriteRegisters_t
("pfnGetThreadRegisterSetProperties", c_void_p) ## _zetDebugGetThreadRegisterSetProperties_t
]
###############################################################################
class _zet_dditable_t(Structure):
_fields_ = [
("MetricProgrammableExp", _zet_metric_programmable_exp_dditable_t),
("MetricTracerExp", _zet_metric_tracer_exp_dditable_t),
("MetricDecoderExp", _zet_metric_decoder_exp_dditable_t),
("Device", _zet_device_dditable_t),
("DeviceExp", _zet_device_exp_dditable_t),
("Context", _zet_context_dditable_t),
("CommandList", _zet_command_list_dditable_t),
("Module", _zet_module_dditable_t),
("Kernel", _zet_kernel_dditable_t),
("Metric", _zet_metric_dditable_t),
("MetricExp", _zet_metric_exp_dditable_t),
("MetricGroup", _zet_metric_group_dditable_t),
("MetricGroupExp", _zet_metric_group_exp_dditable_t),
("MetricStreamer", _zet_metric_streamer_dditable_t),
("MetricQueryPool", _zet_metric_query_pool_dditable_t),
("MetricQuery", _zet_metric_query_dditable_t),
("TracerExp", _zet_tracer_exp_dditable_t),
("Debug", _zet_debug_dditable_t)
]
###############################################################################
## @brief zet device-driver interfaces
class ZET_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 = _zet_dditable_t()
# call driver to get function pointers
_MetricProgrammableExp = _zet_metric_programmable_exp_dditable_t()
r = ze_result_v(self.__dll.zetGetMetricProgrammableExpProcAddrTable(version, byref(_MetricProgrammableExp)))
if r != ze_result_v.SUCCESS:
raise Exception(r)
self.__dditable.MetricProgrammableExp = _MetricProgrammableExp
# attach function interface to function address
self.zetMetricProgrammableGetExp = _zetMetricProgrammableGetExp_t(self.__dditable.MetricProgrammableExp.pfnGetExp)
self.zetMetricProgrammableGetPropertiesExp = _zetMetricProgrammableGetPropertiesExp_t(self.__dditable.MetricProgrammableExp.pfnGetPropertiesExp)
self.zetMetricProgrammableGetParamInfoExp = _zetMetricProgrammableGetParamInfoExp_t(self.__dditable.MetricProgrammableExp.pfnGetParamInfoExp)
self.zetMetricProgrammableGetParamValueInfoExp = _zetMetricProgrammableGetParamValueInfoExp_t(self.__dditable.MetricProgrammableExp.pfnGetParamValueInfoExp)
# call driver to get function pointers
_MetricTracerExp = _zet_metric_tracer_exp_dditable_t()
r = ze_result_v(self.__dll.zetGetMetricTracerExpProcAddrTable(version, byref(_MetricTracerExp)))
if r != ze_result_v.SUCCESS:
raise Exception(r)
self.__dditable.MetricTracerExp = _MetricTracerExp
# attach function interface to function address
self.zetMetricTracerCreateExp = _zetMetricTracerCreateExp_t(self.__dditable.MetricTracerExp.pfnCreateExp)
self.zetMetricTracerDestroyExp = _zetMetricTracerDestroyExp_t(self.__dditable.MetricTracerExp.pfnDestroyExp)
self.zetMetricTracerEnableExp = _zetMetricTracerEnableExp_t(self.__dditable.MetricTracerExp.pfnEnableExp)
self.zetMetricTracerDisableExp = _zetMetricTracerDisableExp_t(self.__dditable.MetricTracerExp.pfnDisableExp)
self.zetMetricTracerReadDataExp = _zetMetricTracerReadDataExp_t(self.__dditable.MetricTracerExp.pfnReadDataExp)
self.zetMetricTracerDecodeExp = _zetMetricTracerDecodeExp_t(self.__dditable.MetricTracerExp.pfnDecodeExp)
# call driver to get function pointers
_MetricDecoderExp = _zet_metric_decoder_exp_dditable_t()
r = ze_result_v(self.__dll.zetGetMetricDecoderExpProcAddrTable(version, byref(_MetricDecoderExp)))
if r != ze_result_v.SUCCESS:
raise Exception(r)
self.__dditable.MetricDecoderExp = _MetricDecoderExp
# attach function interface to function address
self.zetMetricDecoderCreateExp = _zetMetricDecoderCreateExp_t(self.__dditable.MetricDecoderExp.pfnCreateExp)
self.zetMetricDecoderDestroyExp = _zetMetricDecoderDestroyExp_t(self.__dditable.MetricDecoderExp.pfnDestroyExp)
self.zetMetricDecoderGetDecodableMetricsExp = _zetMetricDecoderGetDecodableMetricsExp_t(self.__dditable.MetricDecoderExp.pfnGetDecodableMetricsExp)
# call driver to get function pointers
_Device = _zet_device_dditable_t()
r = ze_result_v(self.__dll.zetGetDeviceProcAddrTable(version, byref(_Device)))
if r != ze_result_v.SUCCESS:
raise Exception(r)
self.__dditable.Device = _Device
# attach function interface to function address
self.zetDeviceGetDebugProperties = _zetDeviceGetDebugProperties_t(self.__dditable.Device.pfnGetDebugProperties)
# call driver to get function pointers
_DeviceExp = _zet_device_exp_dditable_t()
r = ze_result_v(self.__dll.zetGetDeviceExpProcAddrTable(version, byref(_DeviceExp)))
if r != ze_result_v.SUCCESS:
raise Exception(r)
self.__dditable.DeviceExp = _DeviceExp
# attach function interface to function address
self.zetDeviceGetConcurrentMetricGroupsExp = _zetDeviceGetConcurrentMetricGroupsExp_t(self.__dditable.DeviceExp.pfnGetConcurrentMetricGroupsExp)
self.zetDeviceCreateMetricGroupsFromMetricsExp = _zetDeviceCreateMetricGroupsFromMetricsExp_t(self.__dditable.DeviceExp.pfnCreateMetricGroupsFromMetricsExp)
# call driver to get function pointers
_Context = _zet_context_dditable_t()
r = ze_result_v(self.__dll.zetGetContextProcAddrTable(version, byref(_Context)))
if r != ze_result_v.SUCCESS:
raise Exception(r)
self.__dditable.Context = _Context
# attach function interface to function address
self.zetContextActivateMetricGroups = _zetContextActivateMetricGroups_t(self.__dditable.Context.pfnActivateMetricGroups)
# call driver to get function pointers
_CommandList = _zet_command_list_dditable_t()
r = ze_result_v(self.__dll.zetGetCommandListProcAddrTable(version, byref(_CommandList)))
if r != ze_result_v.SUCCESS:
raise Exception(r)
self.__dditable.CommandList = _CommandList
# attach function interface to function address
self.zetCommandListAppendMetricStreamerMarker = _zetCommandListAppendMetricStreamerMarker_t(self.__dditable.CommandList.pfnAppendMetricStreamerMarker)
self.zetCommandListAppendMetricQueryBegin = _zetCommandListAppendMetricQueryBegin_t(self.__dditable.CommandList.pfnAppendMetricQueryBegin)
self.zetCommandListAppendMetricQueryEnd = _zetCommandListAppendMetricQueryEnd_t(self.__dditable.CommandList.pfnAppendMetricQueryEnd)
self.zetCommandListAppendMetricMemoryBarrier = _zetCommandListAppendMetricMemoryBarrier_t(self.__dditable.CommandList.pfnAppendMetricMemoryBarrier)
# call driver to get function pointers
_Module = _zet_module_dditable_t()
r = ze_result_v(self.__dll.zetGetModuleProcAddrTable(version, byref(_Module)))
if r != ze_result_v.SUCCESS:
raise Exception(r)
self.__dditable.Module = _Module
# attach function interface to function address
self.zetModuleGetDebugInfo = _zetModuleGetDebugInfo_t(self.__dditable.Module.pfnGetDebugInfo)
# call driver to get function pointers
_Kernel = _zet_kernel_dditable_t()
r = ze_result_v(self.__dll.zetGetKernelProcAddrTable(version, byref(_Kernel)))
if r != ze_result_v.SUCCESS:
raise Exception(r)
self.__dditable.Kernel = _Kernel
# attach function interface to function address
self.zetKernelGetProfileInfo = _zetKernelGetProfileInfo_t(self.__dditable.Kernel.pfnGetProfileInfo)
# call driver to get function pointers
_Metric = _zet_metric_dditable_t()
r = ze_result_v(self.__dll.zetGetMetricProcAddrTable(version, byref(_Metric)))
if r != ze_result_v.SUCCESS:
raise Exception(r)
self.__dditable.Metric = _Metric
# attach function interface to function address
self.zetMetricGet = _zetMetricGet_t(self.__dditable.Metric.pfnGet)
self.zetMetricGetProperties = _zetMetricGetProperties_t(self.__dditable.Metric.pfnGetProperties)
# call driver to get function pointers
_MetricExp = _zet_metric_exp_dditable_t()
r = ze_result_v(self.__dll.zetGetMetricExpProcAddrTable(version, byref(_MetricExp)))
if r != ze_result_v.SUCCESS:
raise Exception(r)
self.__dditable.MetricExp = _MetricExp
# attach function interface to function address
self.zetMetricCreateFromProgrammableExp = _zetMetricCreateFromProgrammableExp_t(self.__dditable.MetricExp.pfnCreateFromProgrammableExp)
self.zetMetricDestroyExp = _zetMetricDestroyExp_t(self.__dditable.MetricExp.pfnDestroyExp)
self.zetMetricCreateFromProgrammableExp2 = _zetMetricCreateFromProgrammableExp2_t(self.__dditable.MetricExp.pfnCreateFromProgrammableExp2)
# call driver to get function pointers
_MetricGroup = _zet_metric_group_dditable_t()
r = ze_result_v(self.__dll.zetGetMetricGroupProcAddrTable(version, byref(_MetricGroup)))
if r != ze_result_v.SUCCESS:
raise Exception(r)
self.__dditable.MetricGroup = _MetricGroup
# attach function interface to function address
self.zetMetricGroupGet = _zetMetricGroupGet_t(self.__dditable.MetricGroup.pfnGet)
self.zetMetricGroupGetProperties = _zetMetricGroupGetProperties_t(self.__dditable.MetricGroup.pfnGetProperties)
self.zetMetricGroupCalculateMetricValues = _zetMetricGroupCalculateMetricValues_t(self.__dditable.MetricGroup.pfnCalculateMetricValues)
# call driver to get function pointers
_MetricGroupExp = _zet_metric_group_exp_dditable_t()
r = ze_result_v(self.__dll.zetGetMetricGroupExpProcAddrTable(version, byref(_MetricGroupExp)))
if r != ze_result_v.SUCCESS:
raise Exception(r)
self.__dditable.MetricGroupExp = _MetricGroupExp
# attach function interface to function address
self.zetMetricGroupCalculateMultipleMetricValuesExp = _zetMetricGroupCalculateMultipleMetricValuesExp_t(self.__dditable.MetricGroupExp.pfnCalculateMultipleMetricValuesExp)
self.zetMetricGroupGetGlobalTimestampsExp = _zetMetricGroupGetGlobalTimestampsExp_t(self.__dditable.MetricGroupExp.pfnGetGlobalTimestampsExp)
self.zetMetricGroupGetExportDataExp = _zetMetricGroupGetExportDataExp_t(self.__dditable.MetricGroupExp.pfnGetExportDataExp)
self.zetMetricGroupCalculateMetricExportDataExp = _zetMetricGroupCalculateMetricExportDataExp_t(self.__dditable.MetricGroupExp.pfnCalculateMetricExportDataExp)
self.zetMetricGroupCreateExp = _zetMetricGroupCreateExp_t(self.__dditable.MetricGroupExp.pfnCreateExp)
self.zetMetricGroupAddMetricExp = _zetMetricGroupAddMetricExp_t(self.__dditable.MetricGroupExp.pfnAddMetricExp)
self.zetMetricGroupRemoveMetricExp = _zetMetricGroupRemoveMetricExp_t(self.__dditable.MetricGroupExp.pfnRemoveMetricExp)
self.zetMetricGroupCloseExp = _zetMetricGroupCloseExp_t(self.__dditable.MetricGroupExp.pfnCloseExp)
self.zetMetricGroupDestroyExp = _zetMetricGroupDestroyExp_t(self.__dditable.MetricGroupExp.pfnDestroyExp)
# call driver to get function pointers
_MetricStreamer = _zet_metric_streamer_dditable_t()
r = ze_result_v(self.__dll.zetGetMetricStreamerProcAddrTable(version, byref(_MetricStreamer)))
if r != ze_result_v.SUCCESS:
raise Exception(r)
self.__dditable.MetricStreamer = _MetricStreamer
# attach function interface to function address
self.zetMetricStreamerOpen = _zetMetricStreamerOpen_t(self.__dditable.MetricStreamer.pfnOpen)
self.zetMetricStreamerClose = _zetMetricStreamerClose_t(self.__dditable.MetricStreamer.pfnClose)
self.zetMetricStreamerReadData = _zetMetricStreamerReadData_t(self.__dditable.MetricStreamer.pfnReadData)
# call driver to get function pointers
_MetricQueryPool = _zet_metric_query_pool_dditable_t()
r = ze_result_v(self.__dll.zetGetMetricQueryPoolProcAddrTable(version, byref(_MetricQueryPool)))
if r != ze_result_v.SUCCESS:
raise Exception(r)
self.__dditable.MetricQueryPool = _MetricQueryPool
# attach function interface to function address
self.zetMetricQueryPoolCreate = _zetMetricQueryPoolCreate_t(self.__dditable.MetricQueryPool.pfnCreate)
self.zetMetricQueryPoolDestroy = _zetMetricQueryPoolDestroy_t(self.__dditable.MetricQueryPool.pfnDestroy)
# call driver to get function pointers
_MetricQuery = _zet_metric_query_dditable_t()
r = ze_result_v(self.__dll.zetGetMetricQueryProcAddrTable(version, byref(_MetricQuery)))
if r != ze_result_v.SUCCESS:
raise Exception(r)
self.__dditable.MetricQuery = _MetricQuery
# attach function interface to function address
self.zetMetricQueryCreate = _zetMetricQueryCreate_t(self.__dditable.MetricQuery.pfnCreate)
self.zetMetricQueryDestroy = _zetMetricQueryDestroy_t(self.__dditable.MetricQuery.pfnDestroy)
self.zetMetricQueryReset = _zetMetricQueryReset_t(self.__dditable.MetricQuery.pfnReset)
self.zetMetricQueryGetData = _zetMetricQueryGetData_t(self.__dditable.MetricQuery.pfnGetData)
# call driver to get function pointers
_TracerExp = _zet_tracer_exp_dditable_t()
r = ze_result_v(self.__dll.zetGetTracerExpProcAddrTable(version, byref(_TracerExp)))
if r != ze_result_v.SUCCESS:
raise Exception(r)
self.__dditable.TracerExp = _TracerExp
# attach function interface to function address
self.zetTracerExpCreate = _zetTracerExpCreate_t(self.__dditable.TracerExp.pfnCreate)
self.zetTracerExpDestroy = _zetTracerExpDestroy_t(self.__dditable.TracerExp.pfnDestroy)
self.zetTracerExpSetPrologues = _zetTracerExpSetPrologues_t(self.__dditable.TracerExp.pfnSetPrologues)
self.zetTracerExpSetEpilogues = _zetTracerExpSetEpilogues_t(self.__dditable.TracerExp.pfnSetEpilogues)
self.zetTracerExpSetEnabled = _zetTracerExpSetEnabled_t(self.__dditable.TracerExp.pfnSetEnabled)
# call driver to get function pointers
_Debug = _zet_debug_dditable_t()
r = ze_result_v(self.__dll.zetGetDebugProcAddrTable(version, byref(_Debug)))
if r != ze_result_v.SUCCESS:
raise Exception(r)
self.__dditable.Debug = _Debug
# attach function interface to function address
self.zetDebugAttach = _zetDebugAttach_t(self.__dditable.Debug.pfnAttach)
self.zetDebugDetach = _zetDebugDetach_t(self.__dditable.Debug.pfnDetach)
self.zetDebugReadEvent = _zetDebugReadEvent_t(self.__dditable.Debug.pfnReadEvent)
self.zetDebugAcknowledgeEvent = _zetDebugAcknowledgeEvent_t(self.__dditable.Debug.pfnAcknowledgeEvent)
self.zetDebugInterrupt = _zetDebugInterrupt_t(self.__dditable.Debug.pfnInterrupt)
self.zetDebugResume = _zetDebugResume_t(self.__dditable.Debug.pfnResume)
self.zetDebugReadMemory = _zetDebugReadMemory_t(self.__dditable.Debug.pfnReadMemory)
self.zetDebugWriteMemory = _zetDebugWriteMemory_t(self.__dditable.Debug.pfnWriteMemory)
self.zetDebugGetRegisterSetProperties = _zetDebugGetRegisterSetProperties_t(self.__dditable.Debug.pfnGetRegisterSetProperties)
self.zetDebugReadRegisters = _zetDebugReadRegisters_t(self.__dditable.Debug.pfnReadRegisters)
self.zetDebugWriteRegisters = _zetDebugWriteRegisters_t(self.__dditable.Debug.pfnWriteRegisters)
self.zetDebugGetThreadRegisterSetProperties = _zetDebugGetThreadRegisterSetProperties_t(self.__dditable.Debug.pfnGetThreadRegisterSetProperties)
# success!