Skip to content

Commit a3e3d88

Browse files
committed
DDI Handle Extension Spec Update
Signed-off-by: Neil R. Spruit <neil.r.spruit@intel.com>
1 parent 16fffbb commit a3e3d88

File tree

10 files changed

+228
-9
lines changed

10 files changed

+228
-9
lines changed

include/ze.py

Lines changed: 41 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
SPDX-License-Identifier: MIT
55
66
@file ze.py
7-
@version v1.11-r1.11.8
7+
@version v1.12-r1.11.9
88
99
"""
1010
import platform
@@ -316,6 +316,7 @@ class ze_structure_type_v(IntEnum):
316316
PITCHED_IMAGE_EXP_DESC = 0x0002001F ## ::ze_image_pitched_exp_desc_t
317317
MUTABLE_GRAPH_ARGUMENT_EXP_DESC = 0x00020020 ## ::ze_mutable_graph_argument_exp_desc_t
318318
INIT_DRIVER_TYPE_DESC = 0x00020021 ## ::ze_init_driver_type_desc_t
319+
DRIVER_DDI_HANDLES_EXT_PROPERTIES = 0x00020022 ## ::ze_driver_ddi_handles_ext_properties_t
319320

320321
class ze_structure_type_t(c_int):
321322
def __str__(self):
@@ -2114,6 +2115,45 @@ class ze_relaxed_allocation_limits_exp_desc_t(Structure):
21142115
## @brief Get Kernel Binary Extension Name
21152116
ZE_GET_KERNEL_BINARY_EXP_NAME = "ZE_extension_kernel_binary_exp"
21162117

2118+
###############################################################################
2119+
## @brief Driver Direct Device Interface (DDI) Handles Extension Name
2120+
ZE_DRIVER_DDI_HANDLES_EXT_NAME = "ZE_extension_driver_ddi_handles"
2121+
2122+
###############################################################################
2123+
## @brief Driver Direct Device Interface (DDI) Handles Extension Version(s)
2124+
class ze_driver_ddi_handles_ext_version_v(IntEnum):
2125+
_1_0 = ZE_MAKE_VERSION( 1, 0 ) ## version 1.0
2126+
CURRENT = ZE_MAKE_VERSION( 1, 0 ) ## latest known version
2127+
2128+
class ze_driver_ddi_handles_ext_version_t(c_int):
2129+
def __str__(self):
2130+
return str(ze_driver_ddi_handles_ext_version_v(self.value))
2131+
2132+
2133+
###############################################################################
2134+
## @brief Driver Direct Device Interface (DDI) Handle Extension Flags
2135+
class ze_driver_ddi_handle_ext_flags_v(IntEnum):
2136+
DDI_HANDLE_EXT_SUPPORTED = ZE_BIT(0) ## Driver Supports DDI Handles Extension
2137+
2138+
class ze_driver_ddi_handle_ext_flags_t(c_int):
2139+
def __str__(self):
2140+
return hex(self.value)
2141+
2142+
2143+
###############################################################################
2144+
## @brief Driver DDI Handles properties queried using ::zeDriverGetProperties
2145+
##
2146+
## @details
2147+
## - This structure may be returned from ::zeDriverGetProperties, via the
2148+
## `pNext` member of ::ze_driver_properties_t.
2149+
class ze_driver_ddi_handles_ext_properties_t(Structure):
2150+
_fields_ = [
2151+
("stype", ze_structure_type_t), ## [in] type of this structure
2152+
("pNext", c_void_p), ## [in,out][optional] must be null or a pointer to an extension-specific
2153+
## structure (i.e. contains stype and pNext).
2154+
("flags", ze_driver_ddi_handle_ext_flags_t) ## [out] 0 (none) or a valid combination of ::ze_driver_ddi_handle_ext_flags_t
2155+
]
2156+
21172157
###############################################################################
21182158
## @brief Cache_Reservation Extension Name
21192159
ZE_CACHE_RESERVATION_EXT_NAME = "ZE_extension_cache_reservation"

include/ze_api.h

Lines changed: 54 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
* SPDX-License-Identifier: MIT
66
*
77
* @file ze_api.h
8-
* @version v1.11-r1.11.8
8+
* @version v1.12-r1.11.9
99
*
1010
*/
1111
#ifndef _ZE_API_H
@@ -345,6 +345,7 @@ typedef enum _ze_structure_type_t
345345
ZE_STRUCTURE_TYPE_PITCHED_IMAGE_EXP_DESC = 0x0002001F, ///< ::ze_image_pitched_exp_desc_t
346346
ZE_STRUCTURE_TYPE_MUTABLE_GRAPH_ARGUMENT_EXP_DESC = 0x00020020, ///< ::ze_mutable_graph_argument_exp_desc_t
347347
ZE_STRUCTURE_TYPE_INIT_DRIVER_TYPE_DESC = 0x00020021, ///< ::ze_init_driver_type_desc_t
348+
ZE_STRUCTURE_TYPE_DRIVER_DDI_HANDLES_EXT_PROPERTIES = 0x00020022, ///< ::ze_driver_ddi_handles_ext_properties_t
348349
ZE_STRUCTURE_TYPE_FORCE_UINT32 = 0x7fffffff
349350

350351
} ze_structure_type_t;
@@ -689,6 +690,10 @@ typedef struct _ze_float_atomic_ext_properties_t ze_float_atomic_ext_properties_
689690
/// @brief Forward-declare ze_relaxed_allocation_limits_exp_desc_t
690691
typedef struct _ze_relaxed_allocation_limits_exp_desc_t ze_relaxed_allocation_limits_exp_desc_t;
691692

693+
///////////////////////////////////////////////////////////////////////////////
694+
/// @brief Forward-declare ze_driver_ddi_handles_ext_properties_t
695+
typedef struct _ze_driver_ddi_handles_ext_properties_t ze_driver_ddi_handles_ext_properties_t;
696+
692697
///////////////////////////////////////////////////////////////////////////////
693698
/// @brief Forward-declare ze_cache_reservation_ext_desc_t
694699
typedef struct _ze_cache_reservation_ext_desc_t ze_cache_reservation_ext_desc_t;
@@ -7692,6 +7697,54 @@ zeKernelGetBinaryExp(
76927697
uint8_t* pKernelBinary ///< [in,out] pointer to storage area for GEN ISA binary function.
76937698
);
76947699

7700+
#if !defined(__GNUC__)
7701+
#pragma endregion
7702+
#endif
7703+
// Intel 'oneAPI' Level-Zero Extension for Driver Direct Device Interface (DDI) Handles
7704+
#if !defined(__GNUC__)
7705+
#pragma region driverDDIHandles
7706+
#endif
7707+
///////////////////////////////////////////////////////////////////////////////
7708+
#ifndef ZE_DRIVER_DDI_HANDLES_EXT_NAME
7709+
/// @brief Driver Direct Device Interface (DDI) Handles Extension Name
7710+
#define ZE_DRIVER_DDI_HANDLES_EXT_NAME "ZE_extension_driver_ddi_handles"
7711+
#endif // ZE_DRIVER_DDI_HANDLES_EXT_NAME
7712+
7713+
///////////////////////////////////////////////////////////////////////////////
7714+
/// @brief Driver Direct Device Interface (DDI) Handles Extension Version(s)
7715+
typedef enum _ze_driver_ddi_handles_ext_version_t
7716+
{
7717+
ZE_DRIVER_DDI_HANDLES_EXT_VERSION_1_0 = ZE_MAKE_VERSION( 1, 0 ), ///< version 1.0
7718+
ZE_DRIVER_DDI_HANDLES_EXT_VERSION_CURRENT = ZE_MAKE_VERSION( 1, 0 ), ///< latest known version
7719+
ZE_DRIVER_DDI_HANDLES_EXT_VERSION_FORCE_UINT32 = 0x7fffffff
7720+
7721+
} ze_driver_ddi_handles_ext_version_t;
7722+
7723+
///////////////////////////////////////////////////////////////////////////////
7724+
/// @brief Driver Direct Device Interface (DDI) Handle Extension Flags
7725+
typedef uint32_t ze_driver_ddi_handle_ext_flags_t;
7726+
typedef enum _ze_driver_ddi_handle_ext_flag_t
7727+
{
7728+
ZE_DRIVER_DDI_HANDLE_EXT_FLAG_DDI_HANDLE_EXT_SUPPORTED = ZE_BIT(0), ///< Driver Supports DDI Handles Extension
7729+
ZE_DRIVER_DDI_HANDLE_EXT_FLAG_FORCE_UINT32 = 0x7fffffff
7730+
7731+
} ze_driver_ddi_handle_ext_flag_t;
7732+
7733+
///////////////////////////////////////////////////////////////////////////////
7734+
/// @brief Driver DDI Handles properties queried using ::zeDriverGetProperties
7735+
///
7736+
/// @details
7737+
/// - This structure may be returned from ::zeDriverGetProperties, via the
7738+
/// `pNext` member of ::ze_driver_properties_t.
7739+
typedef struct _ze_driver_ddi_handles_ext_properties_t
7740+
{
7741+
ze_structure_type_t stype; ///< [in] type of this structure
7742+
void* pNext; ///< [in,out][optional] must be null or a pointer to an extension-specific
7743+
///< structure (i.e. contains stype and pNext).
7744+
ze_driver_ddi_handle_ext_flags_t flags; ///< [out] 0 (none) or a valid combination of ::ze_driver_ddi_handle_ext_flags_t
7745+
7746+
} ze_driver_ddi_handles_ext_properties_t;
7747+
76957748
#if !defined(__GNUC__)
76967749
#pragma endregion
76977750
#endif

include/ze_ddi.h

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
* SPDX-License-Identifier: MIT
66
*
77
* @file ze_ddi.h
8-
* @version v1.11-r1.11.8
8+
* @version v1.12-r1.11.9
99
*
1010
*/
1111
#ifndef _ZE_DDI_H
@@ -2575,6 +2575,39 @@ typedef struct _ze_dditable_t
25752575
ze_fabric_vertex_exp_dditable_t FabricVertexExp;
25762576
ze_fabric_edge_exp_dditable_t FabricEdgeExp;
25772577
} ze_dditable_t;
2578+
/// @brief Container for all DDI tables with version and tables set by the Driver
2579+
typedef struct _ze_dditable_driver_t
2580+
{
2581+
ze_api_version_t version;
2582+
ze_rtas_builder_exp_dditable_t * RTASBuilderExp;
2583+
ze_rtas_parallel_operation_exp_dditable_t * RTASParallelOperationExp;
2584+
ze_global_dditable_t * Global;
2585+
ze_driver_dditable_t * Driver;
2586+
ze_driver_exp_dditable_t * DriverExp;
2587+
ze_device_dditable_t * Device;
2588+
ze_device_exp_dditable_t * DeviceExp;
2589+
ze_context_dditable_t * Context;
2590+
ze_command_queue_dditable_t * CommandQueue;
2591+
ze_command_list_dditable_t * CommandList;
2592+
ze_command_list_exp_dditable_t * CommandListExp;
2593+
ze_image_dditable_t * Image;
2594+
ze_image_exp_dditable_t * ImageExp;
2595+
ze_mem_dditable_t * Mem;
2596+
ze_mem_exp_dditable_t * MemExp;
2597+
ze_fence_dditable_t * Fence;
2598+
ze_event_pool_dditable_t * EventPool;
2599+
ze_event_dditable_t * Event;
2600+
ze_event_exp_dditable_t * EventExp;
2601+
ze_module_dditable_t * Module;
2602+
ze_module_build_log_dditable_t * ModuleBuildLog;
2603+
ze_kernel_dditable_t * Kernel;
2604+
ze_kernel_exp_dditable_t * KernelExp;
2605+
ze_sampler_dditable_t * Sampler;
2606+
ze_physical_mem_dditable_t * PhysicalMem;
2607+
ze_virtual_mem_dditable_t * VirtualMem;
2608+
ze_fabric_vertex_exp_dditable_t * FabricVertexExp;
2609+
ze_fabric_edge_exp_dditable_t * FabricEdgeExp;
2610+
} ze_dditable_driver_t;
25782611

25792612
#if defined(__cplusplus)
25802613
} // extern "C"

include/ze_ddi_common.h

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
/*
2+
*
3+
* Copyright (C) 2024 Intel Corporation
4+
*
5+
* SPDX-License-Identifier: MIT
6+
*
7+
* @file ze_ddi_common.h
8+
* @version v1.12-r1.11.9
9+
*
10+
*/
11+
#ifndef _ZE_DDI_H
12+
#define _ZE_DDI_H
13+
#if defined(__cplusplus)
14+
#pragma once
15+
#endif
16+
#include "ze_ddi.h"
17+
#include "zet_ddi.h"
18+
#include "zes_ddi.h"
19+
20+
#if defined(__cplusplus)
21+
extern "C" {
22+
#endif
23+
24+
/// @brief Container of all dditables for dispatchable functions
25+
typedef struct _ze_dispatch_t
26+
{
27+
ze_dditable_driver_t *pCore; // [in] pointer to _ze_dditable_t_ object related to this handle
28+
zet_dditable_driver_t *pTools; // [in] pointer to _zet_dditable_t_ object related to this handle
29+
zes_dditable_driver_t *pSysman; // [in] pointer to _zes_dditable_t_ object related to this handle
30+
} ze_dispatch_t;
31+
/// @brief Handle with pointer to Dispatch Container allocated by the driver at the beginning of every L0 object handle
32+
typedef struct _ze_handle_t
33+
{
34+
ze_dispatch_t *pDispatch; // [in] pointer to _ze_dispatch_t_ object related to this handle
35+
} ze_handle_t;
36+
37+
#if defined(__cplusplus)
38+
} // extern "C"
39+
#endif
40+
41+
#endif // _ZE_DDI_H

include/zes.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
SPDX-License-Identifier: MIT
55
66
@file zes.py
7-
@version v1.11-r1.11.8
7+
@version v1.12-r1.11.9
88
99
"""
1010
import platform

include/zes_api.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
* SPDX-License-Identifier: MIT
66
*
77
* @file zes_api.h
8-
* @version v1.11-r1.11.8
8+
* @version v1.12-r1.11.9
99
*
1010
*/
1111
#ifndef _ZES_API_H

include/zes_ddi.h

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
* SPDX-License-Identifier: MIT
66
*
77
* @file zes_ddi.h
8-
* @version v1.11-r1.11.8
8+
* @version v1.12-r1.11.9
99
*
1010
*/
1111
#ifndef _ZES_DDI_H
@@ -1983,6 +1983,35 @@ typedef struct _zes_dditable_t
19831983
zes_diagnostics_dditable_t Diagnostics;
19841984
zes_vf_management_exp_dditable_t VFManagementExp;
19851985
} zes_dditable_t;
1986+
/// @brief Container for all DDI tables with version and tables set by the Driver
1987+
typedef struct _zes_dditable_driver_t
1988+
{
1989+
ze_api_version_t version;
1990+
zes_global_dditable_t * Global;
1991+
zes_device_dditable_t * Device;
1992+
zes_device_exp_dditable_t * DeviceExp;
1993+
zes_driver_dditable_t * Driver;
1994+
zes_driver_exp_dditable_t * DriverExp;
1995+
zes_overclock_dditable_t * Overclock;
1996+
zes_scheduler_dditable_t * Scheduler;
1997+
zes_performance_factor_dditable_t * PerformanceFactor;
1998+
zes_power_dditable_t * Power;
1999+
zes_frequency_dditable_t * Frequency;
2000+
zes_engine_dditable_t * Engine;
2001+
zes_standby_dditable_t * Standby;
2002+
zes_firmware_dditable_t * Firmware;
2003+
zes_firmware_exp_dditable_t * FirmwareExp;
2004+
zes_memory_dditable_t * Memory;
2005+
zes_fabric_port_dditable_t * FabricPort;
2006+
zes_temperature_dditable_t * Temperature;
2007+
zes_psu_dditable_t * Psu;
2008+
zes_fan_dditable_t * Fan;
2009+
zes_led_dditable_t * Led;
2010+
zes_ras_dditable_t * Ras;
2011+
zes_ras_exp_dditable_t * RasExp;
2012+
zes_diagnostics_dditable_t * Diagnostics;
2013+
zes_vf_management_exp_dditable_t * VFManagementExp;
2014+
} zes_dditable_driver_t;
19862015

19872016
#if defined(__cplusplus)
19882017
} // extern "C"

include/zet.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
SPDX-License-Identifier: MIT
55
66
@file zet.py
7-
@version v1.11-r1.11.8
7+
@version v1.12-r1.11.9
88
99
"""
1010
import platform

include/zet_api.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
* SPDX-License-Identifier: MIT
66
*
77
* @file zet_api.h
8-
* @version v1.11-r1.11.8
8+
* @version v1.12-r1.11.9
99
*
1010
*/
1111
#ifndef _ZET_API_H

include/zet_ddi.h

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
* SPDX-License-Identifier: MIT
66
*
77
* @file zet_ddi.h
8-
* @version v1.11-r1.11.8
8+
* @version v1.12-r1.11.9
99
*
1010
*/
1111
#ifndef _ZET_DDI_H
@@ -1166,6 +1166,29 @@ typedef struct _zet_dditable_t
11661166
zet_tracer_exp_dditable_t TracerExp;
11671167
zet_debug_dditable_t Debug;
11681168
} zet_dditable_t;
1169+
/// @brief Container for all DDI tables with version and tables set by the Driver
1170+
typedef struct _zet_dditable_driver_t
1171+
{
1172+
ze_api_version_t version;
1173+
zet_metric_programmable_exp_dditable_t * MetricProgrammableExp;
1174+
zet_metric_tracer_exp_dditable_t * MetricTracerExp;
1175+
zet_metric_decoder_exp_dditable_t * MetricDecoderExp;
1176+
zet_device_dditable_t * Device;
1177+
zet_device_exp_dditable_t * DeviceExp;
1178+
zet_context_dditable_t * Context;
1179+
zet_command_list_dditable_t * CommandList;
1180+
zet_module_dditable_t * Module;
1181+
zet_kernel_dditable_t * Kernel;
1182+
zet_metric_dditable_t * Metric;
1183+
zet_metric_exp_dditable_t * MetricExp;
1184+
zet_metric_group_dditable_t * MetricGroup;
1185+
zet_metric_group_exp_dditable_t * MetricGroupExp;
1186+
zet_metric_streamer_dditable_t * MetricStreamer;
1187+
zet_metric_query_pool_dditable_t * MetricQueryPool;
1188+
zet_metric_query_dditable_t * MetricQuery;
1189+
zet_tracer_exp_dditable_t * TracerExp;
1190+
zet_debug_dditable_t * Debug;
1191+
} zet_dditable_driver_t;
11691192

11701193
#if defined(__cplusplus)
11711194
} // extern "C"

0 commit comments

Comments
 (0)