Skip to content

Commit 9be93d5

Browse files
authored
Merge branch 'master' into python_bindings
2 parents 244e5f5 + b3567ec commit 9be93d5

39 files changed

Lines changed: 16372 additions & 2321 deletions

CHANGELOG.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,13 @@
11
# Level zero loader changelog
2+
## v1.28.0
3+
* feature: Update to support L0 Spec v1.15.31
4+
* Loader Driver Interaction conformance tests for Sysman Exp and Ext APIs (#418)
5+
* Loader Driver Interaction conformance tests for Sysman Modules (#411)
6+
* Ensure explicit multidriver teardown during context destroy (#416)
7+
* fix memory leaks in loader (#417)
8+
* Update Tracing Layer Documentation for the expanded support (#414)
9+
* Expand Loader API Documentation to be more detailed (#410)
10+
* Added tests for Loader Driver interaction conformance for Sysman Modules (#409)
211
## v1.27.0
312
* feature: Update to support L0 Spec v1.15.26
413
* fix: fix Driver Search Paths for all Linux Distros

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ if(MSVC AND (MSVC_VERSION LESS 1900))
1313
endif()
1414

1515
# This project follows semantic versioning (https://semver.org/)
16-
project(level-zero VERSION 1.27.0)
16+
project(level-zero VERSION 1.28.0)
1717
include(GNUInstallDirs)
1818

1919
find_package(Git)

PRODUCT_GUID.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
1.27.0
2-
ed00a7db-f557-48c2-9f90-c1f97b56ad91
1+
1.28.0
2+
152a1567-448a-42b3-9cdd-83c1bdc21421

README.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,33 @@ validation layer is enabled. Following variables need to be set to enable API lo
8484
By default logs will be written to the log file, as described above. To print the logs
8585
to stderr instead, `ZEL_LOADER_LOG_CONSOLE=1` needs to be set.
8686

87+
The API logging output format includes both function entry and exit information, showing parameter names on entry and parameter values with the result code on exit. Each log entry is timestamped and includes the logger name and log level. Example output:
88+
89+
```
90+
[2026-01-14 09:01:38.951] [ze_loader] [trace] zeContextCreate(hDriver, desc, phContext)
91+
[2026-01-14 09:01:38.951] [ze_loader] [trace] SUCCESS (ZE_RESULT_SUCCESS) in zeContextCreate(hDriver=0x5b261fa70588, desc={stype=0x7ffdd20fe1e0, flags=0}, phContext=0x7ffdd20fe148)
92+
[2026-01-14 09:01:38.951] [ze_loader] [trace] zeCommandListCreateImmediate(hContext, hDevice, altdesc, phCommandList)
93+
[2026-01-14 09:01:38.951] [ze_loader] [trace] SUCCESS (ZE_RESULT_SUCCESS) in zeCommandListCreateImmediate(hContext=0x5b261fa74228, hDevice=0x5b261fa708b8, altdesc={stype=0x7ffdd20fe240, ordinal=0, index=0, flags=0, mode=0x7ffdd20fe25c, priority=0x7ffdd20fe260}, phCommandList=0x7ffdd20fe150)
94+
[2026-01-14 09:01:38.951] [ze_loader] [trace] zeEventPoolCreate(hContext, desc, numDevices, phDevicesLocal, phEventPool)
95+
[2026-01-14 09:01:38.951] [ze_loader] [trace] SUCCESS (ZE_RESULT_SUCCESS) in zeEventPoolCreate(hContext=0x5b261fa74228, desc={stype=0x7ffdd20fe200, flags=1, count=1}, numDevices=1, phDevices=0x7ffdd20fe138, phEventPool=0x7ffdd20fe160)
96+
[2026-01-14 09:01:38.951] [ze_loader] [trace] zeEventCreate(hEventPool, desc, phEvent)
97+
[2026-01-14 09:01:38.951] [ze_loader] [trace] SUCCESS (ZE_RESULT_SUCCESS) in zeEventCreate(hEventPool=0x5b261fa19c18, desc={stype=0x7ffdd20fe220, index=0, signal=4, wait=4}, phEvent=0x7ffdd20fe158)
98+
[2026-01-14 09:01:38.951] [ze_loader] [trace] zeCommandListAppendSignalEvent(hCommandList, hEvent)
99+
[2026-01-14 09:01:38.952] [ze_loader] [trace] SUCCESS (ZE_RESULT_SUCCESS) in zeCommandListAppendSignalEvent(hCommandList=0x5b261fa743c8, hEvent=0x5b261c69e5d8)
100+
[2026-01-14 09:01:38.952] [ze_loader] [trace] zeEventHostSynchronize(hEvent, timeout)
101+
[2026-01-14 09:01:38.954] [ze_loader] [trace] SUCCESS (ZE_RESULT_SUCCESS) in zeEventHostSynchronize(hEvent=0x5b261c69e5d8, timeout=18446744073709551615)
102+
[2026-01-14 09:01:38.954] [ze_loader] [trace] zeContextDestroy(hContext)
103+
[2026-01-14 09:01:38.954] [ze_loader] [trace] SUCCESS (ZE_RESULT_SUCCESS) in zeContextDestroy(hContext=0x5b261fa74228)
104+
[2026-01-14 09:01:38.954] [ze_loader] [trace] zeCommandListDestroy(hCommandList)
105+
[2026-01-14 09:01:38.955] [ze_loader] [trace] SUCCESS (ZE_RESULT_SUCCESS) in zeCommandListDestroy(hCommandList=0x5b261fa743c8)
106+
[2026-01-14 09:01:38.955] [ze_loader] [trace] zeEventDestroy(hEvent)
107+
[2026-01-14 09:01:38.955] [ze_loader] [trace] SUCCESS (ZE_RESULT_SUCCESS) in zeEventDestroy(hEvent=0x5b261c69e5d8)
108+
[2026-01-14 09:01:38.955] [ze_loader] [trace] zeEventPoolDestroy(hEventPool)
109+
[2026-01-14 09:01:38.955] [ze_loader] [trace] SUCCESS (ZE_RESULT_SUCCESS) in zeEventPoolDestroy(hEventPool=0x5b261fa19c18)
110+
```
111+
112+
113+
87114
# Driver/Device Sorting
88115

89116
As of v1.20.3 of the Loader, Drivers and Devices reported to the user are sorted to enable the first device to be the best available device.

include/ze.py

Lines changed: 16 additions & 11 deletions
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.15-r1.15.26
7+
@version v1.15-r1.15.31
88

99
"""
1010
import platform
@@ -1040,10 +1040,11 @@ class ze_command_queue_flags_v(IntEnum):
10401040
## the next to define an in-order list, and application is allowed to
10411041
## pass signal and wait events
10421042
## to each appended command to implement more complex dependency graphs.
1043-
COPY_OFFLOAD_HINT = ZE_BIT(2) ## Try to offload copy operations to different engines. Applicable only
1044-
## for compute queues.
1045-
## This is only a hint. Driver may ignore it per append call, based on
1046-
## platform capabilities or internal heuristics.
1043+
COPY_OFFLOAD_HINT = ZE_BIT(2) ## To be used only when creating immediate command lists and only for
1044+
## compute queues.
1045+
## Try to offload copy operations to different engines. This is only a hint.
1046+
## Driver may ignore it per append call, based on platform capabilities
1047+
## or internal heuristics.
10471048

10481049
class ze_command_queue_flags_t(c_int):
10491050
def __str__(self):
@@ -1124,6 +1125,10 @@ class ze_command_list_flags_v(IntEnum):
11241125
## more complex dependency graphs. Cannot be combined with ::ZE_COMMAND_LIST_FLAG_RELAXED_ORDERING.
11251126
EXP_CLONEABLE = ZE_BIT(4) ## this command list may be cloned using ::zeCommandListCreateCloneExp
11261127
## after ::zeCommandListClose.
1128+
COPY_OFFLOAD_HINT = ZE_BIT(5) ## Try to offload copy operations to different engines. Applicable only
1129+
## for compute queues.
1130+
## This is only a hint. Driver may ignore it per append call, based on
1131+
## platform capabilities or internal heuristics.
11271132

11281133
class ze_command_list_flags_t(c_int):
11291134
def __str__(self):
@@ -2048,21 +2053,21 @@ def __str__(self):
20482053
## - Implementation must support ::ZE_MODULE_PROGRAM_EXP_NAME extension
20492054
## - Modules support import and export linkage for functions and global
20502055
## variables.
2051-
## - SPIR-V import and export linkage types are used. See SPIR-V
2052-
## specification for linkage details.
20532056
## - pInputModules, pBuildFlags, and pConstants from ::ze_module_desc_t is
20542057
## ignored.
20552058
## - Format in ::ze_module_desc_t needs to be set to
2056-
## ::ZE_MODULE_FORMAT_IL_SPIRV.
2059+
## ::ZE_MODULE_FORMAT_IL_SPIRV or ::ZE_MODULE_FORMAT_NATIVE.
2060+
## - All modules in the list must be of the same format and match the
2061+
## format specified in ::ze_module_desc_t.
20572062
class ze_module_program_exp_desc_t(Structure):
20582063
_fields_ = [
20592064
("stype", ze_structure_type_t), ## [in] type of this structure
20602065
("pNext", c_void_p), ## [in][optional] must be null or a pointer to an extension-specific
20612066
## structure (i.e. contains stype and pNext).
20622067
("count", c_ulong), ## [in] Count of input modules
2063-
("inputSizes", POINTER(c_size_t)), ## [in][range(0, count)] sizes of each input IL module in pInputModules.
2064-
("pInputModules", POINTER(c_ubyte*)), ## [in][range(0, count)] pointer to an array of IL (e.g. SPIR-V modules).
2065-
## Valid only for SPIR-V input.
2068+
("inputSizes", POINTER(c_size_t)), ## [in][range(0, count)] sizes of each input module in pInputModules.
2069+
("pInputModules", POINTER(c_ubyte*)), ## [in][range(0, count)] pointer to an array of binary modules in format
2070+
## specified as part of ::ze_module_desc_t.
20662071
("pBuildFlags", POINTER(c_char_p)), ## [in][optional][range(0, count)] array of strings containing build
20672072
## flags. See pBuildFlags in ::ze_module_desc_t.
20682073
("pConstants", POINTER(ze_module_constants_t*)) ## [in][optional][range(0, count)] pointer to array of specialization

include/ze_api.h

Lines changed: 26 additions & 18 deletions
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.15-r1.15.26
8+
* @version v1.15-r1.15.31
99
*
1010
*/
1111
#ifndef _ZE_API_H
@@ -3042,10 +3042,11 @@ typedef enum _ze_command_queue_flag_t
30423042
///< the next to define an in-order list, and application is allowed to
30433043
///< pass signal and wait events
30443044
///< to each appended command to implement more complex dependency graphs.
3045-
ZE_COMMAND_QUEUE_FLAG_COPY_OFFLOAD_HINT = ZE_BIT(2), ///< Try to offload copy operations to different engines. Applicable only
3046-
///< for compute queues.
3047-
///< This is only a hint. Driver may ignore it per append call, based on
3048-
///< platform capabilities or internal heuristics.
3045+
ZE_COMMAND_QUEUE_FLAG_COPY_OFFLOAD_HINT = ZE_BIT(2), ///< To be used only when creating immediate command lists and only for
3046+
///< compute queues.
3047+
///< Try to offload copy operations to different engines. This is only a hint.
3048+
///< Driver may ignore it per append call, based on platform capabilities
3049+
///< or internal heuristics.
30493050
ZE_COMMAND_QUEUE_FLAG_FORCE_UINT32 = 0x7fffffff ///< Value marking end of ZE_COMMAND_QUEUE_FLAG_* ENUMs
30503051

30513052
} ze_command_queue_flag_t;
@@ -3376,6 +3377,10 @@ typedef enum _ze_command_list_flag_t
33763377
///< more complex dependency graphs. Cannot be combined with ::ZE_COMMAND_LIST_FLAG_RELAXED_ORDERING.
33773378
ZE_COMMAND_LIST_FLAG_EXP_CLONEABLE = ZE_BIT(4), ///< this command list may be cloned using ::zeCommandListCreateCloneExp
33783379
///< after ::zeCommandListClose.
3380+
ZE_COMMAND_LIST_FLAG_COPY_OFFLOAD_HINT = ZE_BIT(5), ///< Try to offload copy operations to different engines. Applicable only
3381+
///< for compute queues.
3382+
///< This is only a hint. Driver may ignore it per append call, based on
3383+
///< platform capabilities or internal heuristics.
33793384
ZE_COMMAND_LIST_FLAG_FORCE_UINT32 = 0x7fffffff ///< Value marking end of ZE_COMMAND_LIST_FLAG_* ENUMs
33803385

33813386
} ze_command_list_flag_t;
@@ -3429,7 +3434,7 @@ typedef struct _ze_command_list_desc_t
34293434
/// + `nullptr == desc`
34303435
/// + `nullptr == phCommandList`
34313436
/// - ::ZE_RESULT_ERROR_INVALID_ENUMERATION
3432-
/// + `0x1f < desc->flags`
3437+
/// + `0x3f < desc->flags`
34333438
/// - ::ZE_RESULT_ERROR_UNSUPPORTED_ENUMERATION
34343439
ZE_APIEXPORT ze_result_t ZE_APICALL
34353440
zeCommandListCreate(
@@ -4103,6 +4108,7 @@ zeCommandListAppendMemoryCopy(
41034108
/// + `nullptr == ptr`
41044109
/// + `nullptr == pattern`
41054110
/// - ::ZE_RESULT_ERROR_INVALID_SYNCHRONIZATION_OBJECT
4111+
/// - ::ZE_RESULT_ERROR_UNSUPPORTED_ALIGNMENT
41064112
/// - ::ZE_RESULT_ERROR_INVALID_SIZE
41074113
/// + `(nullptr == phWaitEvents) && (0 < numWaitEvents)`
41084114
ZE_APIEXPORT ze_result_t ZE_APICALL
@@ -8632,21 +8638,21 @@ typedef enum _ze_module_program_exp_version_t
86328638
/// - Implementation must support ::ZE_MODULE_PROGRAM_EXP_NAME extension
86338639
/// - Modules support import and export linkage for functions and global
86348640
/// variables.
8635-
/// - SPIR-V import and export linkage types are used. See SPIR-V
8636-
/// specification for linkage details.
86378641
/// - pInputModules, pBuildFlags, and pConstants from ::ze_module_desc_t is
86388642
/// ignored.
86398643
/// - Format in ::ze_module_desc_t needs to be set to
8640-
/// ::ZE_MODULE_FORMAT_IL_SPIRV.
8644+
/// ::ZE_MODULE_FORMAT_IL_SPIRV or ::ZE_MODULE_FORMAT_NATIVE.
8645+
/// - All modules in the list must be of the same format and match the
8646+
/// format specified in ::ze_module_desc_t.
86418647
typedef struct _ze_module_program_exp_desc_t
86428648
{
86438649
ze_structure_type_t stype; ///< [in] type of this structure
86448650
const void* pNext; ///< [in][optional] must be null or a pointer to an extension-specific
86458651
///< structure (i.e. contains stype and pNext).
86468652
uint32_t count; ///< [in] Count of input modules
8647-
const size_t* inputSizes; ///< [in][range(0, count)] sizes of each input IL module in pInputModules.
8648-
const uint8_t** pInputModules; ///< [in][range(0, count)] pointer to an array of IL (e.g. SPIR-V modules).
8649-
///< Valid only for SPIR-V input.
8653+
const size_t* inputSizes; ///< [in][range(0, count)] sizes of each input module in pInputModules.
8654+
const uint8_t** pInputModules; ///< [in][range(0, count)] pointer to an array of binary modules in format
8655+
///< specified as part of ::ze_module_desc_t.
86508656
const char** pBuildFlags; ///< [in][optional][range(0, count)] array of strings containing build
86518657
///< flags. See pBuildFlags in ::ze_module_desc_t.
86528658
const ze_module_constants_t** pConstants; ///< [in][optional][range(0, count)] pointer to array of specialization
@@ -9976,9 +9982,10 @@ ZE_APIEXPORT ze_result_t ZE_APICALL
99769982
zeCommandListAppendSignalExternalSemaphoreExt(
99779983
ze_command_list_handle_t hCommandList, ///< [in] The command list handle.
99789984
uint32_t numSemaphores, ///< [in] The number of external semaphores.
9979-
ze_external_semaphore_ext_handle_t* phSemaphores, ///< [in][range(0, numSemaphores)] The vector of external semaphore handles
9980-
///< to be appended into command list.
9981-
ze_external_semaphore_signal_params_ext_t* signalParams, ///< [in] Signal parameters.
9985+
ze_external_semaphore_ext_handle_t* phSemaphores, ///< [in][range(0, numSemaphores)] The array of pointers to external
9986+
///< semaphore handles to be appended into command list.
9987+
ze_external_semaphore_signal_params_ext_t* signalParams, ///< [in][range(0, numSemaphores)] The array of pointers to external
9988+
///< semaphore signal parameters.
99829989
ze_event_handle_t hSignalEvent, ///< [in][optional] handle of the event to signal on completion
99839990
uint32_t numWaitEvents, ///< [in][optional] number of events to wait on before launching; must be 0
99849991
///< if `nullptr == phWaitEvents`
@@ -10025,9 +10032,10 @@ ZE_APIEXPORT ze_result_t ZE_APICALL
1002510032
zeCommandListAppendWaitExternalSemaphoreExt(
1002610033
ze_command_list_handle_t hCommandList, ///< [in] The command list handle.
1002710034
uint32_t numSemaphores, ///< [in] The number of external semaphores.
10028-
ze_external_semaphore_ext_handle_t* phSemaphores, ///< [in] [range(0,numSemaphores)] The vector of external semaphore handles
10029-
///< to append into command list.
10030-
ze_external_semaphore_wait_params_ext_t* waitParams, ///< [in] Wait parameters.
10035+
ze_external_semaphore_ext_handle_t* phSemaphores, ///< [in][range(0,numSemaphores)] The array of pointers to external
10036+
///< semaphore handles to append into command list.
10037+
ze_external_semaphore_wait_params_ext_t* waitParams, ///< [in][range(0,numSemaphores)] The array of pointers to external
10038+
///< semaphore wait parameters.
1003110039
ze_event_handle_t hSignalEvent, ///< [in][optional] handle of the event to signal on completion
1003210040
uint32_t numWaitEvents, ///< [in][optional] number of events to wait on before launching; must be 0
1003310041
///< if `nullptr == phWaitEvents`

include/ze_ddi.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 ze_ddi.h
8-
* @version v1.15-r1.15.26
8+
* @version v1.15-r1.15.31
99
*
1010
*/
1111
#ifndef _ZE_DDI_H

include/ze_ddi_common.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 ze_ddi_common.h
8-
* @version v1.15-r1.15.26
8+
* @version v1.15-r1.15.31
99
*
1010
*/
1111
#ifndef _ZE_DDI_COMMON_H

include/zer.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 zer.py
7-
@version v1.15-r1.15.26
7+
@version v1.15-r1.15.31
88
99
"""
1010
import platform

include/zer_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 zer_api.h
8-
* @version v1.15-r1.15.26
8+
* @version v1.15-r1.15.31
99
*
1010
*/
1111
#ifndef _ZER_API_H

0 commit comments

Comments
 (0)