Skip to content

Commit 20b37f4

Browse files
authored
Merge branch 'master' into master
2 parents fc07360 + cf405bd commit 20b37f4

75 files changed

Lines changed: 1199 additions & 15822 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/build-msi-package.yml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,13 @@ jobs:
1313
runs-on: [windows-latest]
1414
steps:
1515
- uses: actions/checkout@v3
16+
- name: Setup Windows build environment
17+
uses: ilammy/msvc-dev-cmd@v1
18+
with:
19+
arch: x64
1620
- name: Build Loader on Latest Windows
1721
run: |
1822
mkdir build
1923
cd build
20-
cmake -D BUILD_INSTALLER=1 ..
21-
cmake --build . --config Release --target package
24+
cmake -G "Ninja" -D CMAKE_BUILD_TYPE=Release -D BUILD_INSTALLER=1 ..
25+
cmake --build . --target package

.github/workflows/build-multi-static.yml

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,8 @@ jobs:
5050
{name: ubuntu, vmaj: 20, vmin: '04'},
5151
{name: ubuntu, vmaj: 22, vmin: '04'},
5252
{name: ubuntu, vmaj: 24, vmin: '04'},
53-
{name: sles, vmaj: 15, vmin: 2},
54-
{name: sles, vmaj: 15, vmin: 3},
5553
{name: sles, vmaj: 15, vmin: 4},
54+
{name: sles, vmaj: 15, vmin: 6},
5655
{name: rhel, vmaj: 8, vmin: 6},
5756
{name: windows}
5857
]
@@ -65,7 +64,7 @@ jobs:
6564
env:
6665
MSYS_NO_PATHCONV: 1
6766
MOUNT_TARGET: ${{ matrix.os.name == 'windows' && 'C:/project' || '/project' }}
68-
# -j breaks the Visual Studio configuration selection
67+
# Ninja handles parallelism internally; -j not needed for Windows
6968
PARALLEL: ${{ ! (matrix.os.name == 'windows') && '-j' || '' }}
7069
ARCH_SUFFIX: ${{ matrix.arch != '' && format('_{0}', matrix.arch) || '' }}
7170
steps:
@@ -128,17 +127,17 @@ jobs:
128127
- name: Build (Windows)
129128
if: matrix.os.name == 'windows'
130129
run: |
130+
$ws = "${{ github.workspace }}".Replace('\', '/')
131131
mkdir build
132132
cd build
133133
cmake `
134-
-G "Visual Studio 17 2022" `
135-
-A x64 `
134+
-G "Ninja" `
136135
-D CMAKE_BUILD_TYPE=Release `
137136
-D BUILD_STATIC=1 `
138137
-D CMAKE_INSTALL_PREFIX="${{ matrix.target == 'install' && '../level-zero-install' || matrix.target == 'package' && 'C:/Program Files' || '' }}" `
139-
-D CPACK_OUTPUT_FILE_PREFIX="${{ github.workspace }}/level-zero-package" `
138+
-D CPACK_OUTPUT_FILE_PREFIX="$ws/level-zero-package" `
140139
..
141-
cmake --build . --config Release --target ${{ matrix.target }}
140+
cmake --build . --target ${{ matrix.target }}
142141
shell: powershell
143142
- name: Build (Linux)
144143
if: matrix.os.name != 'windows'

.github/workflows/build-multi.yml

Lines changed: 28 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,24 @@ jobs:
3030
short-sha=$(git rev-parse --short=7 ${GITHUB_SHA})
3131
ref-slug=$(echo ${{ github.ref_name }} | tr '/_' '-')
3232
EOF
33+
- name: "Registry login: ghcr.io"
34+
# Uses built-in github.token (replaces hardcoded sys-lzdev PAT) and
35+
# github.actor as the username (any non-empty string works with token auth).
36+
run: |
37+
echo ${{ github.token }} |
38+
docker login -u ${{ github.actor }} --password-stdin ghcr.io
39+
- name: List available base images
40+
if: github.event_name == 'workflow_dispatch'
41+
run: |
42+
for distro in ubuntu sles rhel; do
43+
echo "=== ${distro} ==="
44+
# GitHub Packages API - lists all versions with their tags
45+
curl -s \
46+
-H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" \
47+
-H "Accept: application/vnd.github+json" \
48+
"https://api.github.com/orgs/oneapi-src/packages/container/level-zero-linux-compute%2F${distro}/versions?per_page=100" \
49+
| python3 -c "import sys,json; d=json.load(sys.stdin); print('\n'.join(sorted(t for v in d for t in v.get('metadata',{}).get('container',{}).get('tags',[]))) or '(no tags found)') if isinstance(d,list) else print('API error:',d.get('message','unknown'))" 2>/dev/null || echo "(query failed)"
50+
done
3351
3452
build:
3553
# Notes on formatting:
@@ -50,9 +68,8 @@ jobs:
5068
{name: ubuntu, vmaj: 20, vmin: '04'},
5169
{name: ubuntu, vmaj: 22, vmin: '04'},
5270
{name: ubuntu, vmaj: 24, vmin: '04'},
53-
{name: sles, vmaj: 15, vmin: 2},
54-
{name: sles, vmaj: 15, vmin: 3},
5571
{name: sles, vmaj: 15, vmin: 4},
72+
{name: sles, vmaj: 15, vmin: 6},
5673
{name: rhel, vmaj: 8, vmin: 6},
5774
{name: windows}
5875
]
@@ -65,7 +82,7 @@ jobs:
6582
env:
6683
MSYS_NO_PATHCONV: 1
6784
MOUNT_TARGET: ${{ matrix.os.name == 'windows' && 'C:/project' || '/project' }}
68-
# -j breaks the Visual Studio configuration selection
85+
# Ninja handles parallelism internally; -j not needed for Windows
6986
PARALLEL: ${{ ! (matrix.os.name == 'windows') && '-j' || '' }}
7087
ARCH_SUFFIX: ${{ matrix.arch != '' && format('_{0}', matrix.arch) || '' }}
7188
steps:
@@ -104,9 +121,11 @@ jobs:
104121
run: echo "DOCKER_IMAGE=localhost/${{ github.repository }}/${{ steps.const.outputs.os-string }}" >> ${GITHUB_ENV}
105122
- name: "Registry login: ghcr.io"
106123
if: matrix.os.name != 'windows'
124+
# Uses built-in github.token (replaces hardcoded sys-lzdev PAT) and
125+
# github.actor as the username (any non-empty string works with token auth).
107126
run: |
108-
echo ${{ secrets.GITHUB_TOKEN }} |
109-
docker login -u sys-lzdev --password-stdin ghcr.io
127+
echo ${{ github.token }} |
128+
docker login -u ${{ github.actor }} --password-stdin ghcr.io
110129
- name: Verify Docker configuration
111130
if: matrix.os.name != 'windows'
112131
run: |
@@ -133,16 +152,16 @@ jobs:
133152
- name: Build (Windows)
134153
if: matrix.os.name == 'windows'
135154
run: |
155+
$ws = "${{ github.workspace }}".Replace('\', '/')
136156
mkdir build
137157
cd build
138158
cmake `
139-
-G "Visual Studio 17 2022" `
140-
-A x64 `
159+
-G "Ninja" `
141160
-D CMAKE_BUILD_TYPE=Release `
142161
-D CMAKE_INSTALL_PREFIX="${{ matrix.target == 'install' && '../level-zero-install' || matrix.target == 'package' && 'C:/Program Files' || '' }}" `
143-
-D CPACK_OUTPUT_FILE_PREFIX="${{ github.workspace }}/level-zero-package" `
162+
-D CPACK_OUTPUT_FILE_PREFIX="$ws/level-zero-package" `
144163
..
145-
cmake --build . --config Release --target ${{ matrix.target }}
164+
cmake --build . --target ${{ matrix.target }}
146165
shell: powershell
147166
- name: Build (Linux)
148167
if: matrix.os.name != 'windows'

.github/workflows/build-quick-static-n-1.yml

Lines changed: 34 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -86,27 +86,55 @@ jobs:
8686
fetch-depth: 0
8787
path: master
8888

89+
- name: Setup Windows build environment
90+
uses: ilammy/msvc-dev-cmd@v1
91+
with:
92+
arch: x64
93+
8994
# Build static loader from master branch
9095
- name: Build Static Loader from master
9196
run: |
9297
cd master
9398
mkdir build
9499
cd build
95-
cmake -D BUILD_L0_LOADER_TESTS=1 -D BUILD_STATIC=1 ..
96-
cmake --build . --config Release
100+
cmake -G "Ninja" -D CMAKE_BUILD_TYPE=Release -D BUILD_L0_LOADER_TESTS=1 -D BUILD_STATIC=1 ..
101+
cmake --build .
102+
# TEMPORARY WORKAROUND — safe to remove once this PR's changes have merged to master.
103+
#
104+
# Background: The CI was switched from the Visual Studio generator (-G "Visual Studio 17 2022")
105+
# to Ninja (-G "Ninja") because windows-latest now ships with Visual Studio 2026 (v18),
106+
# which CMake 3.31 does not recognise as a valid generator.
107+
#
108+
# The VS generator is multi-config and places build outputs under bin/<CONFIG>/
109+
# (e.g. bin/Release/). Ninja is single-config and places outputs directly under bin/.
110+
#
111+
# master's test/CMakeLists.txt still contains hardcoded bin/$<CONFIG>/ paths in its
112+
# CTest ENVIRONMENT properties (e.g. bin/Release/ze_null_test1.dll). This PR fixes
113+
# those paths to use $<TARGET_FILE_DIR:ze_null_test1>/ which is generator-agnostic,
114+
# but until that fix lands on master the n-1 build (which checks out master for the
115+
# static loader) will fail to find the DLLs.
116+
#
117+
# This junction makes bin/Release/ point to bin/ so the old hardcoded paths resolve
118+
# correctly. Once the fix is on master, Ninja will place DLLs in bin/ and the CTest
119+
# properties will resolve directly there — this junction will never be traversed and
120+
# can be removed along with this comment.
121+
# This command assumes default shell is 'powershell'
122+
if (-not (Test-Path bin\Release)) {
123+
New-Item -ItemType Junction -Path bin\Release -Target (Resolve-Path bin).Path
124+
}
97125
98126
# Build dynamic loader from PR branch
99127
- name: Build Dynamic Loader from PR
100128
run: |
101129
cd pr
102130
mkdir dynamic_build
103131
cd dynamic_build
104-
cmake -D BUILD_L0_LOADER_TESTS=0 -D BUILD_STATIC=0 ..
105-
cmake --build . --config Release
132+
cmake -G "Ninja" -D CMAKE_BUILD_TYPE=Release -D BUILD_L0_LOADER_TESTS=0 -D BUILD_STATIC=0 ..
133+
cmake --build .
106134
107135
# Run CTest in static loader's build directory, using PR dynamic loader via ZEL_LIBRARY_PATH
108136
- name: Run CTest with PR dynamic loader and master static loader
109137
env:
110-
ZEL_LIBRARY_PATH: '${{ github.workspace }}\\pr\\dynamic_build\\bin\\Release'
138+
ZEL_LIBRARY_PATH: '${{ github.workspace }}\\pr\\dynamic_build\\bin'
111139
working-directory: master/build
112-
run: ctest -C Release -V
140+
run: ctest -V

.github/workflows/build-quick-static.yml

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -49,20 +49,24 @@ jobs:
4949
runs-on: [windows-latest]
5050
steps:
5151
- uses: actions/checkout@v3
52+
- name: Setup Windows build environment
53+
uses: ilammy/msvc-dev-cmd@v1
54+
with:
55+
arch: x64
5256
- name: Build Static Loader on Latest Windows
5357
run: |
5458
mkdir build
5559
cd build
56-
cmake -D BUILD_L0_LOADER_TESTS=1 -D BUILD_STATIC=1 ..
57-
cmake --build . --config Release
60+
cmake -G "Ninja" -D CMAKE_BUILD_TYPE=Release -D BUILD_L0_LOADER_TESTS=1 -D BUILD_STATIC=1 ..
61+
cmake --build .
5862
- name: Build Dynamic Loader on Latest Windows
5963
run: |
6064
cd ${{ github.workspace }}
6165
mkdir dynamic_build
6266
cd dynamic_build
63-
cmake -D BUILD_L0_LOADER_TESTS=0 -D BUILD_STATIC=0 ..
64-
cmake --build . --config Release
67+
cmake -G "Ninja" -D CMAKE_BUILD_TYPE=Release -D BUILD_L0_LOADER_TESTS=0 -D BUILD_STATIC=0 ..
68+
cmake --build .
6569
- env:
66-
ZEL_LIBRARY_PATH: '${{ github.workspace }}/dynamic_build/bin/Release'
70+
ZEL_LIBRARY_PATH: '${{ github.workspace }}/dynamic_build/bin'
6771
working-directory: build
68-
run: ctest -C Release -V
72+
run: ctest -V

.github/workflows/build-quick.yml

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -72,15 +72,19 @@ jobs:
7272
runs-on: [windows-latest]
7373
steps:
7474
- uses: actions/checkout@v3
75+
- name: Setup Windows build environment
76+
uses: ilammy/msvc-dev-cmd@v1
77+
with:
78+
arch: x64
7579
- name: Build Loader on Latest Windows
7680
run: |
7781
mkdir build
7882
cd build
79-
cmake -D BUILD_L0_LOADER_TESTS=1 ..
80-
cmake --build . --config Release
83+
cmake -G "Ninja" -D CMAKE_BUILD_TYPE=Release -D BUILD_L0_LOADER_TESTS=1 ..
84+
cmake --build .
8185
- env:
82-
ZEL_LIBRARY_PATH: '${{ github.workspace }}/build/bin/Release'
86+
ZEL_LIBRARY_PATH: '${{ github.workspace }}/build/bin'
8387
working-directory: build
84-
run: ctest -C Release -V
88+
run: ctest -V
8589
- working-directory: build
86-
run: cmake --build . --config Release --target install
90+
run: cmake --build . --target install

CHANGELOG.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,12 @@
11
# Level zero loader changelog
2+
## v1.30.0
3+
* Remove SPDLog from project entirely
4+
* Add New custom C++ smaller Logger, to replace SPDLog
5+
* Add future Enhancements to new Logger with available with expiremental =2 settings
6+
* Fix: Bug where zeInitDrivers was not enabling lifehandle trackers in validation layer
27
## v1.29.0
38
* Update to L0 Zero Spec v1.16.24: https://oneapi-src.github.io/level-zero-spec/releases/index.html#level-zero-v1-16-24
4-
* fix: CONTRIBUTING.md to correct command line for updating spec
9+
* Fix: CONTRIBUTING.md to correct command line for updating spec
510
* Add to_string support support for callbacks (#463)
611
## v1.28.6
712
* Remove level-zero* (non-Canonical) package names when building DEBs with CPack

CMakeLists.txt

Lines changed: 4 additions & 15 deletions
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.29.0)
16+
project(level-zero VERSION 1.30.0)
1717
include(GNUInstallDirs)
1818

1919
find_package(Git)
@@ -38,17 +38,6 @@ else()
3838
endif()
3939
add_definitions(-DLOADER_VERSION_SHA="${VERSION_SHA}")
4040

41-
if(SYSTEM_SPDLOG)
42-
find_package(spdlog CONFIG)
43-
if(spdlog_FOUND)
44-
message(STATUS "System spdlog found.")
45-
else()
46-
message(FATAL_ERROR "SYSTEM_SPDLOG specified but spdlog wasn't found.")
47-
endif()
48-
else()
49-
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/third_party/spdlog_headers")
50-
endif()
51-
5241
include(FetchContent)
5342

5443
if(BUILD_L0_LOADER_TESTS)
@@ -255,21 +244,21 @@ if(BUILD_INSTALLER)
255244
endif()
256245

257246
install(FILES ${LEVEL_ZERO_API_HEADERS}
258-
DESTINATION ./include/level_zero
247+
DESTINATION include/level_zero
259248
COMPONENT ${SDK_COMPONENT_STRING}
260249
)
261250

262251
file(GLOB LEVEL_ZERO_LAYERS_API_HEADERS "${CMAKE_CURRENT_SOURCE_DIR}/include/layers/*.h")
263252

264253
install(FILES ${LEVEL_ZERO_LAYERS_API_HEADERS}
265-
DESTINATION ./include/level_zero/layers
254+
DESTINATION include/level_zero/layers
266255
COMPONENT ${SDK_COMPONENT_STRING}
267256
)
268257

269258
file(GLOB LEVEL_ZERO_LOADER_API_HEADERS "${CMAKE_CURRENT_SOURCE_DIR}/include/loader/*.h")
270259

271260
install(FILES ${LEVEL_ZERO_LOADER_API_HEADERS}
272-
DESTINATION ./include/level_zero/loader
261+
DESTINATION include/level_zero/loader
273262
COMPONENT ${SDK_COMPONENT_STRING}
274263
)
275264

PRODUCT_GUID.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
1.29.0
2-
22be7d28-d853-4d43-95c8-074d8b96fc0e
1+
1.30.0
2+
b9f3aba2-8a14-4ba1-9492-488d559b8275

0 commit comments

Comments
 (0)