1886 lines
112 KiB
Python
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!
|