@@ -53,22 +53,21 @@ jobs:
5353 linux :
5454 needs : check_vvl
5555 runs-on : ubuntu-24.04
56- name : " linux (address sanitizer, ${{matrix.config}}, robinhood ${{matrix.robin_hood }} )"
56+ name : " linux (address sanitizer, ${{matrix.config}}, custom_hash_map ${{matrix.custom_hash_map }} )"
5757 strategy :
5858 fail-fast : false
5959 matrix :
6060 config : [ release ]
61- # Test with Robin Hood disabled
61+ # Test with Custom hash map both enabled and disabled
6262 # Chromium build, and some package managers don't use it.
63- robin_hood : [ "ON", "OFF" ]
63+ custom_hash_map : [ "ON", "OFF" ]
6464 steps :
6565 - uses : actions/checkout@v4
66- - uses : lukka/get-cmake@latest
6766 -
uses :
hendrikmuhs/[email protected] 6867 with :
69- key : ${{ matrix.config }}-address-${{matrix.robin_hood }}
70- - run : sudo apt-get -qq update && sudo apt-get install -y libwayland-dev xorg-dev
71- - run : python scripts/tests_vksc.py --build --config ${{ matrix.config }} --cmake='-DUSE_ROBIN_HOOD_HASHING =${{matrix.robin_hood }}'
68+ key : ${{ matrix.config }}-address-${{matrix.custom_hash_map }}
69+ - run : sudo apt-get -qq update && sudo apt-get install -y libwayland-dev xorg-dev xvfb
70+ - run : python scripts/tests_vksc.py --build --config ${{ matrix.config }} --cmake='-DUSE_CUSTOM_HASH_MAP =${{matrix.custom_hash_map }}'
7271 env :
7372 CFLAGS : -fsanitize=address
7473 CXXFLAGS : -fsanitize=address
@@ -93,61 +92,84 @@ jobs:
9392 VKSC_DEVSIM_PROFILE_FILE : ${{ github.workspace }}/tests/vulkansc/device_profiles/max_profile.json
9493 VKSC_LAYER_TESTS_NO_SPV_DEBUG_INFO : TRUE
9594
96- # Make sure a debug version builds, but no need to run tests on it (since we do with release already)
97- linux-debug :
95+ linux-tsan :
9896 needs : check_vvl
9997 runs-on : ubuntu-24.04
100- name : " linux (Build Only , ${{matrix.config}}, robinhood ${{matrix.robin_hood }} )"
98+ name : " linux (thread sanitizer , ${{matrix.config}}, custom_hash_map ${{matrix.custom_hash_map }} )"
10199 strategy :
102100 fail-fast : false
103101 matrix :
104- config : [ debug ]
105- robin_hood : [ "ON" ]
102+ # Have found over time debug finds nothing extra, while taking the longest and using the most CI minutes.
103+ config : [ release ]
104+ custom_hash_map : [ "ON" ]
105+
106106 steps :
107107 - uses : actions/checkout@v4
108- - uses : lukka/get-cmake@latest
109108 -
uses :
hendrikmuhs/[email protected] 110109 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 }}'
110+ key : ${{ matrix.config }}-thread -${{matrix.custom_hash_map }}
111+ - run : sudo apt-get -qq update && sudo apt-get install -y libwayland-dev xorg-dev xvfb
112+ - run : python scripts/tests_vksc.py --build --config ${{ matrix.config }} --cmake='-DUSE_CUSTOM_HASH_MAP =${{matrix.custom_hash_map }}'
114113 env :
114+ CFLAGS : -fsanitize=thread
115+ CXXFLAGS : -fsanitize=thread
116+ LDFLAGS : -fsanitize=thread
115117 CMAKE_C_COMPILER_LAUNCHER : ccache
116118 CMAKE_CXX_COMPILER_LAUNCHER : ccache
119+ # Thread Sanitize will take about 9x longer to run than Address Sanitize.
120+ # The main reason we have Max Core and Min Core is to catch issues with Vulkan 1.x vs Vulkan 1.y version issues.
121+ # In effort to reduce the bottle neck time in testing, skipping these for Thread Sanitize.
122+ - name : Test Max Profile
123+ run : python scripts/tests_vksc.py --test --tsan
124+ env :
125+ VKSC_DEVSIM_PROFILE_FILE : ${{ github.workspace }}/tests/vulkansc/device_profiles/max_profile.json
117126
118- linux-tsan :
127+ linux-ubsan :
119128 needs : check_vvl
120129 runs-on : ubuntu-24.04
121- name : " linux (thread sanitizer, ${{matrix.config}}, robinhood ${{matrix.robin_hood}} )"
130+ name : " linux (undefined behavior sanitizer, debug )"
122131 strategy :
123132 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-
129133 steps :
130134 - uses : actions/checkout@v4
131- - uses : lukka/get-cmake@latest
132135 -
uses :
hendrikmuhs/[email protected] 133136 with :
134- key : ${{ matrix.config }}-thread-${{matrix.robin_hood}}
137+ key : linux-ubsan
135138 - 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}} '
139+ - run : python scripts/tests_vksc.py --build --config debug --cmake='-DVVL_ENABLE_UBSAN=ON '
137140 env :
138- CFLAGS : -fsanitize=thread
139- CXXFLAGS : -fsanitize=thread
140- LDFLAGS : -fsanitize=thread
141141 CMAKE_C_COMPILER_LAUNCHER : ccache
142142 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.
146143 - name : Test Max Profile
147- run : python scripts/tests_vksc.py --test --tsan
144+ run : python scripts/tests_vksc.py --test
148145 env :
149146 VKSC_DEVSIM_PROFILE_FILE : ${{ github.workspace }}/tests/vulkansc/device_profiles/max_profile.json
150147
148+ # Ensure we can build on an older Ubuntu distro with an older version of CMake.
149+ linux_back_compat :
150+ needs : check_vvl
151+ runs-on : ubuntu-22.04
152+ name : " Ubuntu Backcompat"
153+ steps :
154+ - uses : actions/checkout@v4
155+ - name : Test Minimum CMake Version
156+ uses : lukka/get-cmake@latest
157+ with :
158+ cmakeVersion : 3.22.1
159+ -
uses :
hendrikmuhs/[email protected] 160+ with :
161+ key : linux_back_compat
162+ - run : sudo apt-get -qq update && sudo apt-get install -y libwayland-dev xorg-dev
163+ - run : cmake -S . -B build/ -D UPDATE_DEPS=ON -D CMAKE_BUILD_TYPE=Debug
164+ env :
165+ CMAKE_C_COMPILER_LAUNCHER : ccache
166+ CMAKE_CXX_COMPILER_LAUNCHER : ccache
167+ # Linker warnings as errors
168+ LDFLAGS : -Wl,--fatal-warnings
169+ - run : cmake --build build
170+ - run : cmake --install build --prefix /tmp
171+
172+
151173 windows :
152174 needs : check_vvl
153175 runs-on : windows-2022
@@ -167,14 +189,13 @@ jobs:
167189 uses : actions/cache@v4
168190 with :
169191 path : |
170- build-ci/external/glslang/build/install
171- build-ci/external/googltest/build/install
172- build-ci/external/mimalloc/build/install
173- build-ci/external/robin-hood-hashing/build/install
174- build-ci/external/SPIRV-Headers/build/install
175- build-ci/external/SPIRV-Tools/build/install
176- build-ci/external/Vulkan-Headers/build/install
177- build-ci/external/Vulkan-Utility-Libraries/build/install
192+ ${{ github.workspace }}/external/glslang/build/install
193+ ${{ github.workspace }}/external/googltest/build/install
194+ ${{ github.workspace }}/external/mimalloc/build/install
195+ ${{ github.workspace }}/external/SPIRV-Headers/build/install
196+ ${{ github.workspace }}/external/SPIRV-Tools/build/install
197+ ${{ github.workspace }}/external/Vulkan-Headers/build/install
198+ ${{ github.workspace }}/external/Vulkan-Utility-Libraries/build/install
178199 key : windows-dependencies-${{ matrix.arch }}-${{ hashfiles('scripts/known_good.json') }}
179200 - name : Build
180201 run : python3 scripts/tests_vksc.py --build --config debug --cmake='-DUPDATE_DEPS_SKIP_EXISTING_INSTALL=ON'
@@ -203,7 +224,6 @@ jobs:
203224 - uses : actions/setup-python@v5
204225 with :
205226 python-version : ' 3.10'
206- - uses : lukka/get-cmake@latest
207227 - run : |
208228 cmake -S. -B build \
209229 -D BUILD_WERROR=ON \
0 commit comments