1- # Copyright (c) 2021-2024 Valve Corporation
2- # Copyright (c) 2021-2024 LunarG, Inc.
3- # Copyright (c) 2023-2024 RasterGrid Kft.
1+ # Copyright (c) 2021-2025 Valve Corporation
2+ # Copyright (c) 2021-2025 LunarG, Inc.
3+ # Copyright (c) 2023-2025 RasterGrid Kft.
44#
55# Licensed under the Apache License, Version 2.0 (the "License");
66# you may not use this file except in compliance with the License.
@@ -37,7 +37,7 @@ permissions:
3737
3838jobs :
3939 code-format :
40- runs-on : ubuntu-22 .04
40+ runs-on : ubuntu-24 .04
4141 steps :
4242 - uses : actions/checkout@v4
4343 with :
@@ -50,66 +50,29 @@ jobs:
5050 - name : Execute Source Code Format Checking Script
5151 run : python3 scripts/check_code_format.py --fetch-main --target-refspec=FETCH_HEAD
5252
53- # Ensure we can build on an older Ubuntu distro with an older version of CMake.
54- linux_back_compat :
55- needs : check_vvl
56- runs-on : ubuntu-20.04
57- name : " Ubuntu Backcompat"
58- steps :
59- - uses : actions/checkout@v4
60- - name : Test Minimum CMake Version
61- uses : lukka/get-cmake@latest
62- with :
63- cmakeVersion : 3.17.2
64- -
uses :
hendrikmuhs/[email protected] 65- with :
66- key : linux_back_compat
67- - run : sudo apt-get -qq update && sudo apt-get install -y libwayland-dev xorg-dev
68- - run : cmake -S . -B build/ -D UPDATE_DEPS=ON -D CMAKE_BUILD_TYPE=Debug
69- env :
70- CMAKE_C_COMPILER_LAUNCHER : ccache
71- CMAKE_CXX_COMPILER_LAUNCHER : ccache
72- # Linker warnings as errors
73- LDFLAGS : -Wl,--fatal-warnings
74- - run : cmake --build build
75- - run : cmake --install build --prefix /tmp
76-
7753 linux :
7854 needs : check_vvl
79- runs-on : ubuntu-22 .04
80- name : " linux (${{matrix.sanitize}} sanitizer, ${{matrix.config}}, robinhood ${{matrix.robin_hood}} )"
55+ runs-on : ubuntu-24 .04
56+ name : " linux (address sanitizer, ${{matrix.config}}, robinhood ${{matrix.robin_hood}} )"
8157 strategy :
8258 fail-fast : false
8359 matrix :
84- sanitize : [ address, thread ]
85- config : [debug, release]
86- robin_hood : [ "ON" ]
87- include :
88- # Test with Robin Hood disabled
89- # Chromium build, and some package managers don't use it.
90- - config : release
91- robin_hood : " OFF"
92- sanitize : address
93- exclude :
94- # Have found over time this finds nothing extra, while taking the longest and using the most CI minutes.
95- - config : debug
96- robin_hood : " ON"
97- sanitize : thread
60+ config : [ release ]
61+ # Test with Robin Hood disabled
62+ # Chromium build, and some package managers don't use it.
63+ robin_hood : [ "ON", "OFF" ]
9864 steps :
9965 - uses : actions/checkout@v4
10066 - uses : lukka/get-cmake@latest
10167 -
uses :
hendrikmuhs/[email protected] 10268 with :
103- key : ${{ matrix.config }}-${{ matrix.sanitize }}-${{matrix.robin_hood}}
104- # This is to combat a bug when using 6.6 linux kernels with thread/address sanitizer
105- # https://github.com/google/sanitizers/issues/1716
106- - run : sudo sysctl vm.mmap_rnd_bits=28
69+ key : ${{ matrix.config }}-address-${{matrix.robin_hood}}
10770 - run : sudo apt-get -qq update && sudo apt-get install -y libwayland-dev xorg-dev
10871 - run : python scripts/tests_vksc.py --build --config ${{ matrix.config }} --cmake='-DUSE_ROBIN_HOOD_HASHING=${{matrix.robin_hood}}'
10972 env :
110- CFLAGS : -fsanitize=${{ matrix.sanitize }}
111- CXXFLAGS : -fsanitize=${{ matrix.sanitize }}
112- LDFLAGS : -fsanitize=${{ matrix.sanitize }}
73+ CFLAGS : -fsanitize=address
74+ CXXFLAGS : -fsanitize=address
75+ LDFLAGS : -fsanitize=address
11376 CMAKE_C_COMPILER_LAUNCHER : ccache
11477 CMAKE_CXX_COMPILER_LAUNCHER : ccache
11578 - name : Test Max Profile
@@ -130,6 +93,61 @@ jobs:
13093 VKSC_DEVSIM_PROFILE_FILE : ${{ github.workspace }}/tests/vulkansc/device_profiles/max_profile.json
13194 VKSC_LAYER_TESTS_NO_SPV_DEBUG_INFO : TRUE
13295
96+ # Make sure a debug version builds, but no need to run tests on it (since we do with release already)
97+ linux-debug :
98+ needs : check_vvl
99+ runs-on : ubuntu-24.04
100+ name : " linux (Build Only, ${{matrix.config}}, robinhood ${{matrix.robin_hood}} )"
101+ strategy :
102+ fail-fast : false
103+ matrix :
104+ config : [ debug ]
105+ robin_hood : [ "ON" ]
106+ steps :
107+ - uses : actions/checkout@v4
108+ - uses : lukka/get-cmake@latest
109+ -
uses :
hendrikmuhs/[email protected] 110+ with :
111+ key : ${{ matrix.config }}-buildOnly-${{matrix.robin_hood}}
112+ - run : sudo apt-get -qq update && sudo apt-get install -y libwayland-dev xorg-dev
113+ - run : python scripts/tests_vksc.py --build --config ${{ matrix.config }} --cmake='-DUSE_ROBIN_HOOD_HASHING=${{matrix.robin_hood}}'
114+ env :
115+ CMAKE_C_COMPILER_LAUNCHER : ccache
116+ CMAKE_CXX_COMPILER_LAUNCHER : ccache
117+
118+ linux-tsan :
119+ needs : check_vvl
120+ runs-on : ubuntu-24.04
121+ name : " linux (thread sanitizer, ${{matrix.config}}, robinhood ${{matrix.robin_hood}} )"
122+ strategy :
123+ fail-fast : false
124+ matrix :
125+ # Have found over time debug finds nothing extra, while taking the longest and using the most CI minutes.
126+ config : [ release ]
127+ robin_hood : [ "ON" ]
128+
129+ steps :
130+ - uses : actions/checkout@v4
131+ - uses : lukka/get-cmake@latest
132+ -
uses :
hendrikmuhs/[email protected] 133+ with :
134+ key : ${{ matrix.config }}-thread-${{matrix.robin_hood}}
135+ - run : sudo apt-get -qq update && sudo apt-get install -y libwayland-dev xorg-dev
136+ - run : python scripts/tests_vksc.py --build --config ${{ matrix.config }} --cmake='-DUSE_ROBIN_HOOD_HASHING=${{matrix.robin_hood}}'
137+ env :
138+ CFLAGS : -fsanitize=thread
139+ CXXFLAGS : -fsanitize=thread
140+ LDFLAGS : -fsanitize=thread
141+ CMAKE_C_COMPILER_LAUNCHER : ccache
142+ CMAKE_CXX_COMPILER_LAUNCHER : ccache
143+ # Thread Sanitize will take about 9x longer to run than Address Sanitize.
144+ # The main reason we have Max Core and Min Core is to catch issues with Vulkan 1.x vs Vulkan 1.y version issues.
145+ # In effort to reduce the bottle neck time in testing, skipping these for Thread Sanitize.
146+ - name : Test Max Profile
147+ run : python scripts/tests_vksc.py --test --tsan
148+ env :
149+ VKSC_DEVSIM_PROFILE_FILE : ${{ github.workspace }}/tests/vulkansc/device_profiles/max_profile.json
150+
133151 windows :
134152 needs : check_vvl
135153 runs-on : windows-2022
0 commit comments