Skip to content
Open
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
24 changes: 12 additions & 12 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ jobs:
matrix:
compiler: [ {cc: gcc, cxx: g++}, {cc: clang, cxx: clang++} ]
config: [ Debug, Release ]
os: [ ubuntu-22.04, ubuntu-24.04 ]
os: [ ubuntu-26.04, ubuntu-24.04 ]
steps:
- uses: actions/checkout@v7
- uses: actions/setup-python@v6
Expand All @@ -54,10 +54,10 @@ jobs:
# practice to try and support them so they don't have to install
# the CMake tarball. Ideally the minimum we use matches what the default
# package provided by Ubuntu via APT.
if: ${{ matrix.os == 'ubuntu-22.04' }}
if: ${{ matrix.os == 'ubuntu-24.04' }}
uses: lukka/get-cmake@latest
with:
cmakeVersion: 3.22.1
cmakeVersion: 3.28.3
- run: sudo apt update
- run: sudo apt install --yes --no-install-recommends libwayland-dev libxrandr-dev
- run: |
Expand All @@ -83,7 +83,7 @@ jobs:

linux-no-asm:
needs: codegen
runs-on: ubuntu-24.04
runs-on: ubuntu-26.04
timeout-minutes: 30
steps:
- uses: actions/checkout@v7
Expand All @@ -104,7 +104,7 @@ jobs:

linux-32:
needs: codegen
runs-on: ubuntu-24.04
runs-on: ubuntu-26.04
timeout-minutes: 30
strategy:
matrix:
Expand All @@ -116,7 +116,7 @@ jobs:
python-version: '3.11'
- uses: lukka/get-cmake@latest
with:
cmakeVersion: 3.22.1
cmakeVersion: 3.28.3
- name: Enable 32 bit
run: sudo dpkg --add-architecture i386
- run: sudo apt-get update
Expand All @@ -143,7 +143,7 @@ jobs:

linux-32-no-asm:
needs: codegen
runs-on: ubuntu-24.04
runs-on: ubuntu-26.04
timeout-minutes: 30
steps:
- uses: actions/checkout@v7
Expand All @@ -152,7 +152,7 @@ jobs:
python-version: '3.11'
- uses: lukka/get-cmake@latest
with:
cmakeVersion: 3.22.1
cmakeVersion: 3.28.3
- name: Enable 32 bit
run: sudo dpkg --add-architecture i386
- run: sudo apt-get update
Expand All @@ -178,7 +178,7 @@ jobs:

linux-arm:
needs: codegen
runs-on: ubuntu-24.04-arm
runs-on: ubuntu-26.04-arm
timeout-minutes: 30
steps:
- uses: actions/checkout@v7
Expand All @@ -188,7 +188,7 @@ jobs:
- name: Test CMake min
uses: lukka/get-cmake@latest
with:
cmakeVersion: 3.22.1
cmakeVersion: 3.28.3
- run: sudo apt update
- run: sudo apt install --yes --no-install-recommends libwayland-dev libxrandr-dev
- run: |
Expand All @@ -204,7 +204,7 @@ jobs:

linux-threading:
needs: codegen
runs-on: ubuntu-24.04-arm
runs-on: ubuntu-26.04-arm
timeout-minutes: 30
steps:
- uses: actions/checkout@v7
Expand All @@ -214,7 +214,7 @@ jobs:
- name: Test CMake min
uses: lukka/get-cmake@latest
with:
cmakeVersion: 3.22.1
cmakeVersion: 3.28.3
- run: sudo apt update
- run: sudo apt install --yes --no-install-recommends libwayland-dev libxrandr-dev
- run: |
Expand Down
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
# ~~~
cmake_minimum_required(VERSION 3.22.1)
cmake_minimum_required(VERSION 3.28.3)

project(VULKAN_LOADER VERSION 1.4.356 LANGUAGES C)

Expand Down
40 changes: 17 additions & 23 deletions loader/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -113,8 +113,6 @@ set(OPT_LOADER_SRCS dev_ext_trampoline.c phys_dev_ext.c)

set(ASM_FAILURE_MSG "Support for unknown physical device and device functions is disabled due to missing the required assembly support code. \
To support unknown functions, assembly must be added for the platform.\n")
set(ARMASM_CMAKE_FAILURE_MSG "Support for unknown physical device and device functions is disabled due to the CMake version ${CMAKE_VERSION} \
being older than 3.26. Please update CMake to version 3.26 or newer.\n")

# Check for assembler support
if(WIN32 AND NOT USE_GAS)
Expand All @@ -136,27 +134,23 @@ if(WIN32 AND NOT USE_GAS)
endif()
if (USE_MASM)
if(SYSTEM_PROCESSOR MATCHES "arm")
if(CMAKE_VERSION VERSION_LESS "3.26.0")
set(ASM_FAILURE_MSG ${ARMASM_CMAKE_FAILURE_MSG})
else()
# CMake's MARMASM detection regex only matches "ARM64", so for arm64ec it
# picks the 32-bit armasm, and even on arm64 it leaves the compiler as a bare
# name that the check below can't run without the dev tools on PATH. Resolve
# armasm64 (next to the C compiler) and use its full path. Drop this once
# CMake's detection learns about ARM64EC.
if(SYSTEM_PROCESSOR MATCHES "arm64")
get_filename_component(MARMASM_TOOLCHAIN_DIR "${CMAKE_C_COMPILER}" DIRECTORY)
find_program(MARMASM_ARMASM64 NAMES armasm64 HINTS "${MARMASM_TOOLCHAIN_DIR}")
endif()
if(MARMASM_ARMASM64)
set(CMAKE_ASM_MARMASM_COMPILER "${MARMASM_ARMASM64}")
endif()
enable_language(ASM_MARMASM)
set(LOADER_ASM_DIALECT "MARMASM")
if(MARMASM_ARMASM64)
# enable_language resets the compiler to a bare name; re-assert the full path.
set(CMAKE_ASM_MARMASM_COMPILER "${MARMASM_ARMASM64}")
endif()
# CMake's MARMASM detection regex only matches "ARM64", so for arm64ec it
# picks the 32-bit armasm, and even on arm64 it leaves the compiler as a bare
# name that the check below can't run without the dev tools on PATH. Resolve
# armasm64 (next to the C compiler) and use its full path. Drop this once
# CMake's detection learns about ARM64EC.
if(SYSTEM_PROCESSOR MATCHES "arm64")
get_filename_component(MARMASM_TOOLCHAIN_DIR "${CMAKE_C_COMPILER}" DIRECTORY)
find_program(MARMASM_ARMASM64 NAMES armasm64 HINTS "${MARMASM_TOOLCHAIN_DIR}")
endif()
if(MARMASM_ARMASM64)
set(CMAKE_ASM_MARMASM_COMPILER "${MARMASM_ARMASM64}")
endif()
enable_language(ASM_MARMASM)
set(LOADER_ASM_DIALECT "MARMASM")
if(MARMASM_ARMASM64)
# enable_language resets the compiler to a bare name; re-assert the full path.
set(CMAKE_ASM_MARMASM_COMPILER "${MARMASM_ARMASM64}")
endif()
else()
enable_language(ASM_MASM)
Expand Down
Loading