Skip to content
Merged
Show file tree
Hide file tree
Changes from all 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
8 changes: 6 additions & 2 deletions .github/workflows/build-msi-package.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,13 @@ jobs:
runs-on: [windows-latest]
steps:
- uses: actions/checkout@v3
- name: Setup Windows build environment
uses: ilammy/msvc-dev-cmd@v1
with:
arch: x64
- name: Build Loader on Latest Windows
run: |
mkdir build
cd build
cmake -D BUILD_INSTALLER=1 ..
cmake --build . --config Release --target package
cmake -G "Ninja" -D CMAKE_BUILD_TYPE=Release -D BUILD_INSTALLER=1 ..
cmake --build . --target package
13 changes: 6 additions & 7 deletions .github/workflows/build-multi-static.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,9 +50,8 @@ jobs:
{name: ubuntu, vmaj: 20, vmin: '04'},
{name: ubuntu, vmaj: 22, vmin: '04'},
{name: ubuntu, vmaj: 24, vmin: '04'},
{name: sles, vmaj: 15, vmin: 2},
{name: sles, vmaj: 15, vmin: 3},
{name: sles, vmaj: 15, vmin: 4},
{name: sles, vmaj: 15, vmin: 6},
{name: rhel, vmaj: 8, vmin: 6},
{name: windows}
]
Expand All @@ -65,7 +64,7 @@ jobs:
env:
MSYS_NO_PATHCONV: 1
MOUNT_TARGET: ${{ matrix.os.name == 'windows' && 'C:/project' || '/project' }}
# -j breaks the Visual Studio configuration selection
# Ninja handles parallelism internally; -j not needed for Windows
PARALLEL: ${{ ! (matrix.os.name == 'windows') && '-j' || '' }}
ARCH_SUFFIX: ${{ matrix.arch != '' && format('_{0}', matrix.arch) || '' }}
steps:
Expand Down Expand Up @@ -128,17 +127,17 @@ jobs:
- name: Build (Windows)
if: matrix.os.name == 'windows'
run: |
$ws = "${{ github.workspace }}".Replace('\', '/')
mkdir build
cd build
cmake `
-G "Visual Studio 17 2022" `
-A x64 `
-G "Ninja" `
-D CMAKE_BUILD_TYPE=Release `
-D BUILD_STATIC=1 `
-D CMAKE_INSTALL_PREFIX="${{ matrix.target == 'install' && '../level-zero-install' || matrix.target == 'package' && 'C:/Program Files' || '' }}" `
-D CPACK_OUTPUT_FILE_PREFIX="${{ github.workspace }}/level-zero-package" `
-D CPACK_OUTPUT_FILE_PREFIX="$ws/level-zero-package" `
..
cmake --build . --config Release --target ${{ matrix.target }}
cmake --build . --target ${{ matrix.target }}
shell: powershell
- name: Build (Linux)
if: matrix.os.name != 'windows'
Expand Down
37 changes: 28 additions & 9 deletions .github/workflows/build-multi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,24 @@ jobs:
short-sha=$(git rev-parse --short=7 ${GITHUB_SHA})
ref-slug=$(echo ${{ github.ref_name }} | tr '/_' '-')
EOF
- name: "Registry login: ghcr.io"
# Uses built-in github.token (replaces hardcoded sys-lzdev PAT) and
# github.actor as the username (any non-empty string works with token auth).
run: |
echo ${{ github.token }} |
docker login -u ${{ github.actor }} --password-stdin ghcr.io
- name: List available base images
if: github.event_name == 'workflow_dispatch'
run: |
for distro in ubuntu sles rhel; do
echo "=== ${distro} ==="
# GitHub Packages API - lists all versions with their tags
curl -s \
-H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" \
-H "Accept: application/vnd.github+json" \
"https://api.github.com/orgs/oneapi-src/packages/container/level-zero-linux-compute%2F${distro}/versions?per_page=100" \
| 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)"
done

build:
# Notes on formatting:
Expand All @@ -50,9 +68,8 @@ jobs:
{name: ubuntu, vmaj: 20, vmin: '04'},
{name: ubuntu, vmaj: 22, vmin: '04'},
{name: ubuntu, vmaj: 24, vmin: '04'},
{name: sles, vmaj: 15, vmin: 2},
{name: sles, vmaj: 15, vmin: 3},
{name: sles, vmaj: 15, vmin: 4},
{name: sles, vmaj: 15, vmin: 6},
{name: rhel, vmaj: 8, vmin: 6},
{name: windows}
]
Expand All @@ -65,7 +82,7 @@ jobs:
env:
MSYS_NO_PATHCONV: 1
MOUNT_TARGET: ${{ matrix.os.name == 'windows' && 'C:/project' || '/project' }}
# -j breaks the Visual Studio configuration selection
# Ninja handles parallelism internally; -j not needed for Windows
PARALLEL: ${{ ! (matrix.os.name == 'windows') && '-j' || '' }}
ARCH_SUFFIX: ${{ matrix.arch != '' && format('_{0}', matrix.arch) || '' }}
steps:
Expand Down Expand Up @@ -104,9 +121,11 @@ jobs:
run: echo "DOCKER_IMAGE=localhost/${{ github.repository }}/${{ steps.const.outputs.os-string }}" >> ${GITHUB_ENV}
- name: "Registry login: ghcr.io"
if: matrix.os.name != 'windows'
# Uses built-in github.token (replaces hardcoded sys-lzdev PAT) and
# github.actor as the username (any non-empty string works with token auth).
run: |
echo ${{ secrets.GITHUB_TOKEN }} |
docker login -u sys-lzdev --password-stdin ghcr.io
echo ${{ github.token }} |
docker login -u ${{ github.actor }} --password-stdin ghcr.io
- name: Verify Docker configuration
if: matrix.os.name != 'windows'
run: |
Expand All @@ -133,16 +152,16 @@ jobs:
- name: Build (Windows)
if: matrix.os.name == 'windows'
run: |
$ws = "${{ github.workspace }}".Replace('\', '/')
mkdir build
cd build
cmake `
-G "Visual Studio 17 2022" `
-A x64 `
-G "Ninja" `
-D CMAKE_BUILD_TYPE=Release `
-D CMAKE_INSTALL_PREFIX="${{ matrix.target == 'install' && '../level-zero-install' || matrix.target == 'package' && 'C:/Program Files' || '' }}" `
-D CPACK_OUTPUT_FILE_PREFIX="${{ github.workspace }}/level-zero-package" `
-D CPACK_OUTPUT_FILE_PREFIX="$ws/level-zero-package" `
..
cmake --build . --config Release --target ${{ matrix.target }}
cmake --build . --target ${{ matrix.target }}
shell: powershell
- name: Build (Linux)
if: matrix.os.name != 'windows'
Expand Down
40 changes: 34 additions & 6 deletions .github/workflows/build-quick-static-n-1.yml
Original file line number Diff line number Diff line change
Expand Up @@ -86,27 +86,55 @@ jobs:
fetch-depth: 0
path: master

- name: Setup Windows build environment
uses: ilammy/msvc-dev-cmd@v1
with:
arch: x64

# Build static loader from master branch
- name: Build Static Loader from master
run: |
cd master
mkdir build
cd build
cmake -D BUILD_L0_LOADER_TESTS=1 -D BUILD_STATIC=1 ..
cmake --build . --config Release
cmake -G "Ninja" -D CMAKE_BUILD_TYPE=Release -D BUILD_L0_LOADER_TESTS=1 -D BUILD_STATIC=1 ..
cmake --build .
# TEMPORARY WORKAROUND — safe to remove once this PR's changes have merged to master.
#
# Background: The CI was switched from the Visual Studio generator (-G "Visual Studio 17 2022")
# to Ninja (-G "Ninja") because windows-latest now ships with Visual Studio 2026 (v18),
# which CMake 3.31 does not recognise as a valid generator.
#
# The VS generator is multi-config and places build outputs under bin/<CONFIG>/
# (e.g. bin/Release/). Ninja is single-config and places outputs directly under bin/.
#
# master's test/CMakeLists.txt still contains hardcoded bin/$<CONFIG>/ paths in its
# CTest ENVIRONMENT properties (e.g. bin/Release/ze_null_test1.dll). This PR fixes
# those paths to use $<TARGET_FILE_DIR:ze_null_test1>/ which is generator-agnostic,
# but until that fix lands on master the n-1 build (which checks out master for the
# static loader) will fail to find the DLLs.
#
# This junction makes bin/Release/ point to bin/ so the old hardcoded paths resolve
# correctly. Once the fix is on master, Ninja will place DLLs in bin/ and the CTest
# properties will resolve directly there — this junction will never be traversed and
# can be removed along with this comment.
# This command assumes default shell is 'powershell'
if (-not (Test-Path bin\Release)) {
New-Item -ItemType Junction -Path bin\Release -Target (Resolve-Path bin).Path
}

# Build dynamic loader from PR branch
- name: Build Dynamic Loader from PR
run: |
cd pr
mkdir dynamic_build
cd dynamic_build
cmake -D BUILD_L0_LOADER_TESTS=0 -D BUILD_STATIC=0 ..
cmake --build . --config Release
cmake -G "Ninja" -D CMAKE_BUILD_TYPE=Release -D BUILD_L0_LOADER_TESTS=0 -D BUILD_STATIC=0 ..
cmake --build .

# Run CTest in static loader's build directory, using PR dynamic loader via ZEL_LIBRARY_PATH
- name: Run CTest with PR dynamic loader and master static loader
env:
ZEL_LIBRARY_PATH: '${{ github.workspace }}\\pr\\dynamic_build\\bin\\Release'
ZEL_LIBRARY_PATH: '${{ github.workspace }}\\pr\\dynamic_build\\bin'
working-directory: master/build
run: ctest -C Release -V
run: ctest -V
16 changes: 10 additions & 6 deletions .github/workflows/build-quick-static.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,20 +49,24 @@ jobs:
runs-on: [windows-latest]
steps:
- uses: actions/checkout@v3
- name: Setup Windows build environment
uses: ilammy/msvc-dev-cmd@v1
with:
arch: x64
- name: Build Static Loader on Latest Windows
run: |
mkdir build
cd build
cmake -D BUILD_L0_LOADER_TESTS=1 -D BUILD_STATIC=1 ..
cmake --build . --config Release
cmake -G "Ninja" -D CMAKE_BUILD_TYPE=Release -D BUILD_L0_LOADER_TESTS=1 -D BUILD_STATIC=1 ..
cmake --build .
- name: Build Dynamic Loader on Latest Windows
run: |
cd ${{ github.workspace }}
mkdir dynamic_build
cd dynamic_build
cmake -D BUILD_L0_LOADER_TESTS=0 -D BUILD_STATIC=0 ..
cmake --build . --config Release
cmake -G "Ninja" -D CMAKE_BUILD_TYPE=Release -D BUILD_L0_LOADER_TESTS=0 -D BUILD_STATIC=0 ..
cmake --build .
- env:
ZEL_LIBRARY_PATH: '${{ github.workspace }}/dynamic_build/bin/Release'
ZEL_LIBRARY_PATH: '${{ github.workspace }}/dynamic_build/bin'
working-directory: build
run: ctest -C Release -V
run: ctest -V
14 changes: 9 additions & 5 deletions .github/workflows/build-quick.yml
Original file line number Diff line number Diff line change
Expand Up @@ -72,15 +72,19 @@ jobs:
runs-on: [windows-latest]
steps:
- uses: actions/checkout@v3
- name: Setup Windows build environment
uses: ilammy/msvc-dev-cmd@v1
with:
arch: x64
- name: Build Loader on Latest Windows
run: |
mkdir build
cd build
cmake -D BUILD_L0_LOADER_TESTS=1 ..
cmake --build . --config Release
cmake -G "Ninja" -D CMAKE_BUILD_TYPE=Release -D BUILD_L0_LOADER_TESTS=1 ..
cmake --build .
- env:
ZEL_LIBRARY_PATH: '${{ github.workspace }}/build/bin/Release'
ZEL_LIBRARY_PATH: '${{ github.workspace }}/build/bin'
working-directory: build
run: ctest -C Release -V
run: ctest -V
- working-directory: build
run: cmake --build . --config Release --target install
run: cmake --build . --target install
7 changes: 6 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,12 @@
# Level zero loader changelog
## v1.30.0
* Remove SPDLog from project entirely
* Add New custom C++ smaller Logger, to replace SPDLog
* Add future Enhancements to new Logger with available with expiremental =2 settings
* Fix: Bug where zeInitDrivers was not enabling lifehandle trackers in validation layer
## v1.29.0
* Update to L0 Zero Spec v1.16.24: https://oneapi-src.github.io/level-zero-spec/releases/index.html#level-zero-v1-16-24
* fix: CONTRIBUTING.md to correct command line for updating spec
* Fix: CONTRIBUTING.md to correct command line for updating spec
* Add to_string support support for callbacks (#463)
## v1.28.6
* Remove level-zero* (non-Canonical) package names when building DEBs with CPack
Expand Down
8 changes: 4 additions & 4 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ if(MSVC AND (MSVC_VERSION LESS 1900))
endif()

# This project follows semantic versioning (https://semver.org/)
project(level-zero VERSION 1.29.0)
project(level-zero VERSION 1.30.0)
include(GNUInstallDirs)

find_package(Git)
Expand Down Expand Up @@ -244,21 +244,21 @@ if(BUILD_INSTALLER)
endif()

install(FILES ${LEVEL_ZERO_API_HEADERS}
DESTINATION ./include/level_zero
DESTINATION include/level_zero
COMPONENT ${SDK_COMPONENT_STRING}
)

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

install(FILES ${LEVEL_ZERO_LAYERS_API_HEADERS}
DESTINATION ./include/level_zero/layers
DESTINATION include/level_zero/layers
COMPONENT ${SDK_COMPONENT_STRING}
)

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

install(FILES ${LEVEL_ZERO_LOADER_API_HEADERS}
DESTINATION ./include/level_zero/loader
DESTINATION include/level_zero/loader
COMPONENT ${SDK_COMPONENT_STRING}
)

Expand Down
4 changes: 2 additions & 2 deletions PRODUCT_GUID.txt
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
1.29.0
22be7d28-d853-4d43-95c8-074d8b96fc0e
1.30.0
b9f3aba2-8a14-4ba1-9492-488d559b8275
2 changes: 1 addition & 1 deletion os_release_info.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ set(_os_release_info TRUE)
# of the local cmake environment.

# Set cmake policies for at least this level:
cmake_minimum_required(VERSION 3.5.0)
cmake_minimum_required(VERSION 3.12.0)


# Function get_os_release_info - Determine and return OS name and version
Expand Down
Loading
Loading