Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DDI Handle Extension Spec Update #244

Closed
wants to merge 5 commits into from
Closed
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 41 additions & 1 deletion include/ze.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
SPDX-License-Identifier: MIT

@file ze.py
@version v1.11-r1.11.8
@version v1.12-r1.11.11

"""
import platform
Expand Down Expand Up @@ -316,6 +316,7 @@ class ze_structure_type_v(IntEnum):
PITCHED_IMAGE_EXP_DESC = 0x0002001F ## ::ze_image_pitched_exp_desc_t
MUTABLE_GRAPH_ARGUMENT_EXP_DESC = 0x00020020 ## ::ze_mutable_graph_argument_exp_desc_t
INIT_DRIVER_TYPE_DESC = 0x00020021 ## ::ze_init_driver_type_desc_t
DRIVER_DDI_HANDLES_EXT_PROPERTIES = 0x00020022 ## ::ze_driver_ddi_handles_ext_properties_t

class ze_structure_type_t(c_int):
def __str__(self):
Expand Down Expand Up @@ -2114,6 +2115,45 @@ class ze_relaxed_allocation_limits_exp_desc_t(Structure):
## @brief Get Kernel Binary Extension Name
ZE_GET_KERNEL_BINARY_EXP_NAME = "ZE_extension_kernel_binary_exp"

###############################################################################
## @brief Driver Direct Device Interface (DDI) Handles Extension Name
ZE_DRIVER_DDI_HANDLES_EXT_NAME = "ZE_extension_driver_ddi_handles"

###############################################################################
## @brief Driver Direct Device Interface (DDI) Handles Extension Version(s)
class ze_driver_ddi_handles_ext_version_v(IntEnum):
_1_0 = ZE_MAKE_VERSION( 1, 0 ) ## version 1.0
CURRENT = ZE_MAKE_VERSION( 1, 0 ) ## latest known version

class ze_driver_ddi_handles_ext_version_t(c_int):
def __str__(self):
return str(ze_driver_ddi_handles_ext_version_v(self.value))


###############################################################################
## @brief Driver Direct Device Interface (DDI) Handle Extension Flags
class ze_driver_ddi_handle_ext_flags_v(IntEnum):
DDI_HANDLE_EXT_SUPPORTED = ZE_BIT(0) ## Driver Supports DDI Handles Extension

class ze_driver_ddi_handle_ext_flags_t(c_int):
def __str__(self):
return hex(self.value)


###############################################################################
## @brief Driver DDI Handles properties queried using ::zeDriverGetProperties
##
## @details
## - This structure may be returned from ::zeDriverGetProperties, via the
## `pNext` member of ::ze_driver_properties_t.
class ze_driver_ddi_handles_ext_properties_t(Structure):
_fields_ = [
("stype", ze_structure_type_t), ## [in] type of this structure
("pNext", c_void_p), ## [in,out][optional] must be null or a pointer to an extension-specific
## structure (i.e. contains stype and pNext).
("flags", ze_driver_ddi_handle_ext_flags_t) ## [out] 0 (none) or a valid combination of ::ze_driver_ddi_handle_ext_flags_t
]

###############################################################################
## @brief Cache_Reservation Extension Name
ZE_CACHE_RESERVATION_EXT_NAME = "ZE_extension_cache_reservation"
Expand Down
55 changes: 54 additions & 1 deletion include/ze_api.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
* SPDX-License-Identifier: MIT
*
* @file ze_api.h
* @version v1.11-r1.11.8
* @version v1.12-r1.11.11
*
*/
#ifndef _ZE_API_H
Expand Down Expand Up @@ -345,6 +345,7 @@ typedef enum _ze_structure_type_t
ZE_STRUCTURE_TYPE_PITCHED_IMAGE_EXP_DESC = 0x0002001F, ///< ::ze_image_pitched_exp_desc_t
ZE_STRUCTURE_TYPE_MUTABLE_GRAPH_ARGUMENT_EXP_DESC = 0x00020020, ///< ::ze_mutable_graph_argument_exp_desc_t
ZE_STRUCTURE_TYPE_INIT_DRIVER_TYPE_DESC = 0x00020021, ///< ::ze_init_driver_type_desc_t
ZE_STRUCTURE_TYPE_DRIVER_DDI_HANDLES_EXT_PROPERTIES = 0x00020022, ///< ::ze_driver_ddi_handles_ext_properties_t
ZE_STRUCTURE_TYPE_FORCE_UINT32 = 0x7fffffff

} ze_structure_type_t;
Expand Down Expand Up @@ -689,6 +690,10 @@ typedef struct _ze_float_atomic_ext_properties_t ze_float_atomic_ext_properties_
/// @brief Forward-declare ze_relaxed_allocation_limits_exp_desc_t
typedef struct _ze_relaxed_allocation_limits_exp_desc_t ze_relaxed_allocation_limits_exp_desc_t;

///////////////////////////////////////////////////////////////////////////////
/// @brief Forward-declare ze_driver_ddi_handles_ext_properties_t
typedef struct _ze_driver_ddi_handles_ext_properties_t ze_driver_ddi_handles_ext_properties_t;

///////////////////////////////////////////////////////////////////////////////
/// @brief Forward-declare ze_cache_reservation_ext_desc_t
typedef struct _ze_cache_reservation_ext_desc_t ze_cache_reservation_ext_desc_t;
Expand Down Expand Up @@ -7692,6 +7697,54 @@ zeKernelGetBinaryExp(
uint8_t* pKernelBinary ///< [in,out] pointer to storage area for GEN ISA binary function.
);

#if !defined(__GNUC__)
#pragma endregion
#endif
// Intel 'oneAPI' Level-Zero Extension for Driver Direct Device Interface (DDI) Handles
#if !defined(__GNUC__)
#pragma region driverDDIHandles
#endif
///////////////////////////////////////////////////////////////////////////////
#ifndef ZE_DRIVER_DDI_HANDLES_EXT_NAME
/// @brief Driver Direct Device Interface (DDI) Handles Extension Name
#define ZE_DRIVER_DDI_HANDLES_EXT_NAME "ZE_extension_driver_ddi_handles"
#endif // ZE_DRIVER_DDI_HANDLES_EXT_NAME

///////////////////////////////////////////////////////////////////////////////
/// @brief Driver Direct Device Interface (DDI) Handles Extension Version(s)
typedef enum _ze_driver_ddi_handles_ext_version_t
{
ZE_DRIVER_DDI_HANDLES_EXT_VERSION_1_0 = ZE_MAKE_VERSION( 1, 0 ), ///< version 1.0
ZE_DRIVER_DDI_HANDLES_EXT_VERSION_CURRENT = ZE_MAKE_VERSION( 1, 0 ), ///< latest known version
ZE_DRIVER_DDI_HANDLES_EXT_VERSION_FORCE_UINT32 = 0x7fffffff

} ze_driver_ddi_handles_ext_version_t;

///////////////////////////////////////////////////////////////////////////////
/// @brief Driver Direct Device Interface (DDI) Handle Extension Flags
typedef uint32_t ze_driver_ddi_handle_ext_flags_t;
typedef enum _ze_driver_ddi_handle_ext_flag_t
{
ZE_DRIVER_DDI_HANDLE_EXT_FLAG_DDI_HANDLE_EXT_SUPPORTED = ZE_BIT(0), ///< Driver Supports DDI Handles Extension
ZE_DRIVER_DDI_HANDLE_EXT_FLAG_FORCE_UINT32 = 0x7fffffff

} ze_driver_ddi_handle_ext_flag_t;

///////////////////////////////////////////////////////////////////////////////
/// @brief Driver DDI Handles properties queried using ::zeDriverGetProperties
///
/// @details
/// - This structure may be returned from ::zeDriverGetProperties, via the
/// `pNext` member of ::ze_driver_properties_t.
typedef struct _ze_driver_ddi_handles_ext_properties_t
{
ze_structure_type_t stype; ///< [in] type of this structure
void* pNext; ///< [in,out][optional] must be null or a pointer to an extension-specific
///< structure (i.e. contains stype and pNext).
ze_driver_ddi_handle_ext_flags_t flags; ///< [out] 0 (none) or a valid combination of ::ze_driver_ddi_handle_ext_flags_t

} ze_driver_ddi_handles_ext_properties_t;

#if !defined(__GNUC__)
#pragma endregion
#endif
Expand Down
35 changes: 34 additions & 1 deletion include/ze_ddi.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
* SPDX-License-Identifier: MIT
*
* @file ze_ddi.h
* @version v1.11-r1.11.8
* @version v1.12-r1.11.11
*
*/
#ifndef _ZE_DDI_H
Expand Down Expand Up @@ -2575,6 +2575,39 @@ typedef struct _ze_dditable_t
ze_fabric_vertex_exp_dditable_t FabricVertexExp;
ze_fabric_edge_exp_dditable_t FabricEdgeExp;
} ze_dditable_t;
/// @brief Container for all DDI tables with version and tables set by the Driver
typedef struct _ze_dditable_driver_t
{
ze_api_version_t version;
ze_rtas_builder_exp_dditable_t * RTASBuilderExp;
ze_rtas_parallel_operation_exp_dditable_t * RTASParallelOperationExp;
ze_global_dditable_t * Global;
ze_driver_dditable_t * Driver;
ze_driver_exp_dditable_t * DriverExp;
ze_device_dditable_t * Device;
ze_device_exp_dditable_t * DeviceExp;
ze_context_dditable_t * Context;
ze_command_queue_dditable_t * CommandQueue;
ze_command_list_dditable_t * CommandList;
ze_command_list_exp_dditable_t * CommandListExp;
ze_image_dditable_t * Image;
ze_image_exp_dditable_t * ImageExp;
ze_mem_dditable_t * Mem;
ze_mem_exp_dditable_t * MemExp;
ze_fence_dditable_t * Fence;
ze_event_pool_dditable_t * EventPool;
ze_event_dditable_t * Event;
ze_event_exp_dditable_t * EventExp;
ze_module_dditable_t * Module;
ze_module_build_log_dditable_t * ModuleBuildLog;
ze_kernel_dditable_t * Kernel;
ze_kernel_exp_dditable_t * KernelExp;
ze_sampler_dditable_t * Sampler;
ze_physical_mem_dditable_t * PhysicalMem;
ze_virtual_mem_dditable_t * VirtualMem;
ze_fabric_vertex_exp_dditable_t * FabricVertexExp;
ze_fabric_edge_exp_dditable_t * FabricEdgeExp;
} ze_dditable_driver_t;

#if defined(__cplusplus)
} // extern "C"
Expand Down
36 changes: 36 additions & 0 deletions include/ze_ddi_common.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
/*
*
* Copyright (C) 2024 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
* @file ze_ddi_common.h
* @version v1.12-r1.11.11
*
*/
#ifndef _ZE_DDI_COMMON_H
#define _ZE_DDI_COMMON_H
#if defined(__cplusplus)
#pragma once
#endif
#include "ze_ddi.h"
#include "zet_ddi.h"
#include "zes_ddi.h"

#if defined(__cplusplus)
extern "C" {
#endif

/// @brief Handle with pointers to Dispatch Tables allocated by the driver at the beginning of every L0 object handle.
typedef struct _ze_handle_t
{
ze_dditable_driver_t *pCore; // [in] pointer to _ze_dditable_t_ object related to this handle
zet_dditable_driver_t *pTools; // [in] pointer to _zet_dditable_t_ object related to this handle
zes_dditable_driver_t *pSysman; // [in] pointer to _zes_dditable_t_ object related to this handle
} ze_handle_t;

#if defined(__cplusplus)
} // extern "C"
#endif

#endif // _ZE_DDI_COMMON_H
2 changes: 1 addition & 1 deletion include/zes.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
SPDX-License-Identifier: MIT

@file zes.py
@version v1.11-r1.11.8
@version v1.12-r1.11.11

"""
import platform
Expand Down
2 changes: 1 addition & 1 deletion include/zes_api.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
* SPDX-License-Identifier: MIT
*
* @file zes_api.h
* @version v1.11-r1.11.8
* @version v1.12-r1.11.11
*
*/
#ifndef _ZES_API_H
Expand Down
31 changes: 30 additions & 1 deletion include/zes_ddi.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
* SPDX-License-Identifier: MIT
*
* @file zes_ddi.h
* @version v1.11-r1.11.8
* @version v1.12-r1.11.11
*
*/
#ifndef _ZES_DDI_H
Expand Down Expand Up @@ -1983,6 +1983,35 @@ typedef struct _zes_dditable_t
zes_diagnostics_dditable_t Diagnostics;
zes_vf_management_exp_dditable_t VFManagementExp;
} zes_dditable_t;
/// @brief Container for all DDI tables with version and tables set by the Driver
typedef struct _zes_dditable_driver_t
{
ze_api_version_t version;
zes_global_dditable_t * Global;
zes_device_dditable_t * Device;
zes_device_exp_dditable_t * DeviceExp;
zes_driver_dditable_t * Driver;
zes_driver_exp_dditable_t * DriverExp;
zes_overclock_dditable_t * Overclock;
zes_scheduler_dditable_t * Scheduler;
zes_performance_factor_dditable_t * PerformanceFactor;
zes_power_dditable_t * Power;
zes_frequency_dditable_t * Frequency;
zes_engine_dditable_t * Engine;
zes_standby_dditable_t * Standby;
zes_firmware_dditable_t * Firmware;
zes_firmware_exp_dditable_t * FirmwareExp;
zes_memory_dditable_t * Memory;
zes_fabric_port_dditable_t * FabricPort;
zes_temperature_dditable_t * Temperature;
zes_psu_dditable_t * Psu;
zes_fan_dditable_t * Fan;
zes_led_dditable_t * Led;
zes_ras_dditable_t * Ras;
zes_ras_exp_dditable_t * RasExp;
zes_diagnostics_dditable_t * Diagnostics;
zes_vf_management_exp_dditable_t * VFManagementExp;
} zes_dditable_driver_t;

#if defined(__cplusplus)
} // extern "C"
Expand Down
2 changes: 1 addition & 1 deletion include/zet.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
SPDX-License-Identifier: MIT

@file zet.py
@version v1.11-r1.11.8
@version v1.12-r1.11.11

"""
import platform
Expand Down
2 changes: 1 addition & 1 deletion include/zet_api.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
* SPDX-License-Identifier: MIT
*
* @file zet_api.h
* @version v1.11-r1.11.8
* @version v1.12-r1.11.11
*
*/
#ifndef _ZET_API_H
Expand Down
25 changes: 24 additions & 1 deletion include/zet_ddi.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
* SPDX-License-Identifier: MIT
*
* @file zet_ddi.h
* @version v1.11-r1.11.8
* @version v1.12-r1.11.11
*
*/
#ifndef _ZET_DDI_H
Expand Down Expand Up @@ -1166,6 +1166,29 @@ typedef struct _zet_dditable_t
zet_tracer_exp_dditable_t TracerExp;
zet_debug_dditable_t Debug;
} zet_dditable_t;
/// @brief Container for all DDI tables with version and tables set by the Driver
typedef struct _zet_dditable_driver_t
{
ze_api_version_t version;
zet_metric_programmable_exp_dditable_t * MetricProgrammableExp;
zet_metric_tracer_exp_dditable_t * MetricTracerExp;
zet_metric_decoder_exp_dditable_t * MetricDecoderExp;
zet_device_dditable_t * Device;
zet_device_exp_dditable_t * DeviceExp;
zet_context_dditable_t * Context;
zet_command_list_dditable_t * CommandList;
zet_module_dditable_t * Module;
zet_kernel_dditable_t * Kernel;
zet_metric_dditable_t * Metric;
zet_metric_exp_dditable_t * MetricExp;
zet_metric_group_dditable_t * MetricGroup;
zet_metric_group_exp_dditable_t * MetricGroupExp;
zet_metric_streamer_dditable_t * MetricStreamer;
zet_metric_query_pool_dditable_t * MetricQueryPool;
zet_metric_query_dditable_t * MetricQuery;
zet_tracer_exp_dditable_t * TracerExp;
zet_debug_dditable_t * Debug;
} zet_dditable_driver_t;

#if defined(__cplusplus)
} // extern "C"
Expand Down
1 change: 1 addition & 0 deletions source/drivers/null/ze_null.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
#include "zet_ddi.h"
#include "zes_ddi.h"
#include "ze_util.h"
#include "ze_ddi_common.h"

namespace driver
{
Expand Down
1 change: 1 addition & 0 deletions source/layers/validation/ze_validation_layer.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
#include "ze_ddi.h"
#include "zet_ddi.h"
#include "zes_ddi.h"
#include "ze_ddi_common.h"
#include "ze_util.h"
#include "loader/ze_loader.h"
#include "handle_lifetime.h"
Expand Down
1 change: 1 addition & 0 deletions source/lib/ze_lib.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
#pragma once
#include "ze_api.h"
#include "ze_ddi.h"
#include "ze_ddi_common.h"
#include "zet_api.h"
#include "zet_ddi.h"
#include "zes_api.h"
Expand Down
1 change: 1 addition & 0 deletions source/lib/ze_libddi.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
#include "ze_lib.h"
#ifndef DYNAMIC_LOAD_LOADER
#include "ze_ddi.h"
#include "ze_ddi_common.h"
#endif

namespace ze_lib
Expand Down
1 change: 1 addition & 0 deletions source/loader/ze_loader_internal.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
#include "ze_ddi.h"
#include "zet_ddi.h"
#include "zes_ddi.h"
#include "ze_ddi_common.h"

#include "ze_util.h"
#include "ze_object.h"
Expand Down
Loading