Skip to content

Commit 5fcd30e

Browse files
authored
Merge pull request #67 from CapsCollective/feature/vulkan-upgrade
Upgraded Vulkan version to Vulkan 1.3.296
2 parents b7a76b0 + 0cc4c93 commit 5fcd30e

File tree

15 files changed

+114
-74
lines changed

15 files changed

+114
-74
lines changed

.gitmodules

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,3 +43,6 @@
4343
[submodule "vendor/freetype"]
4444
path = vendor/freetype
4545
url = https://github.com/freetype/freetype.git
46+
[submodule "vendor/vulkan/Vulkan-Utility-Libraries"]
47+
path = vendor/vulkan/Vulkan-Utility-Libraries
48+
url = https://github.com/KhronosGroup/Vulkan-Utility-Libraries.git

engine/render/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ all: $(renderLib) $(vertObjects) $(fragObjects)
3434

3535
# Build the static library
3636
$(renderLib): $(renderObjects)
37-
-$(RM) $(call platformpth,$(renderLib))
37+
$(RM) $(call platformpth,$(renderLib))
3838
$(call COMBINE_LIBS, $(renderLibs), $(renderObjects), $(libDir), render)
3939

4040
# Add all rules from dependency files

engine/window/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ compileFlags += -I $(vendorDir)/glfw/include
2121

2222
# Build the static library
2323
$(windowLib): $(windowObjects)
24-
-$(RM) $(call platformpth,$(windowLib))
24+
$(RM) $(call platformpth,$(windowLib))
2525
$(call COMBINE_LIBS, $(windowLibs), $(windowObjects), $(libDir), window)
2626

2727
# Add all rules from dependency files

scripts/package.sh

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -55,17 +55,17 @@ SCRIPT_PATH=\$(dirname \"\$0\")
5555
SCRIPT_PATH=\$(cd \"\$SCRIPT_PATH\" && pwd)
5656
cd \"\$SCRIPT_PATH/Contents\" && ./$RUN_SCRIPT_NAME"
5757
chmod +x "$PKG_FILE"
58+
59+
# Add the run script
60+
generate_script "$PKG_FILE/$CONTENTS_DIR_NAME/$RUN_SCRIPT_NAME" "#!/bin/bash
61+
$ENV_VARS
62+
./$EXE_NAME"
5863
else
5964
# Create the package directory
6065
mkdir -p "$PKG_FILE"
6166
fi
6267
CONTENTS_DIR="$PKG_FILE/$CONTENTS_DIR_NAME"
6368

64-
# Add the run script
65-
generate_script "$CONTENTS_DIR/$RUN_SCRIPT_NAME" "#!/bin/bash
66-
$ENV_VARS
67-
./$EXE_NAME"
68-
6969
# Copy across all build directory to contents
7070
cp -r "$BUILD_DIR"/* "$CONTENTS_DIR"
7171

@@ -81,9 +81,3 @@ for EXCLUDE in $EXCLUDES; do
8181
rm -rf "$EXCLUDE_PATH"
8282
fi
8383
done
84-
85-
if [ -z "$( ls -A "$CONTENTS_DIR/lib" )" ]; then
86-
rm -rf "$CONTENTS_DIR/lib"
87-
fi
88-
89-
rm -rf "$CONTENTS_DIR/assets"

scripts/packagelibs.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ param( [String] $LibSourceDir, [String] $LibDestDir )
1010

1111
robocopy $LibSourceDir $LibDestDir /e /im /is /it
1212

13-
if (Test-Path -Path "$LibDestDir/lib/*.dll")
13+
if (Test-Path -Path "$LibSourceDir/lib/*.dll")
1414
{
1515
robocopy $LibDestDir/lib LibDestDir *.dll /mov /im /is /it
1616
}

scripts/setup.ps1

Lines changed: 54 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@ param (
1010
)
1111

1212
[string] $Root_Dir=(pwd)
13-
[string] $Vulkan_Version= "v1.3.250"
14-
[string] $Spirv_Version="sdk-1.3.250.1"
15-
[string] $Glslang_Version="12.2.0"
13+
[string] $Vulkan_Version= "vulkan-sdk-1.3.296.0"
14+
[string] $Spirv_Version="vulkan-sdk-1.3.296.0"
15+
[string] $Glslang_Version="vulkan-sdk-1.3.296.0"
1616
[string] $Robin_Hood_Hashing_Version="3.11.5"
1717
[string] $Generator="MinGW Makefiles"
1818
[string] $Vendor_Dir="$Root_Dir/vendor".Replace('\','/')
@@ -46,7 +46,7 @@ function Update-Submodule {
4646

4747
function Checkout-Tags {
4848
param([string] $Path=@(), [string] $Tag=@())
49-
git -C "$Path" fetch --all --tags ; git -C "$Path" checkout tags/"$Tag"
49+
git -C "$Path" fetch --all --tags --force ; git -C "$Path" checkout tags/"$Tag"
5050
}
5151

5252
function Setup-Utest {
@@ -165,7 +165,9 @@ function Setup-Glslang {
165165
$CMAKE_COMPILER `
166166
-DBUILD_EXTERNAL=OFF `
167167
-DCMAKE_INSTALL_PREFIX="$build_dir" `
168-
-DCMAKE_BUILD_TYPE=Release `
168+
-DCMAKE_BUILD_TYPE=Release ` `
169+
-DSPIRV-Tools-opt_INCLUDE_DIRS="$Vulkan_Vendor_Dir\SPIRV-Tools\build\install\include" `
170+
-DALLOW_EXTERNAL_SPIRV_TOOLS=1 `
169171
-S"$Vendor_Dir/glslang" `
170172
-B"$build_dir"
171173

@@ -196,17 +198,16 @@ function Setup-Vulkan-Headers {
196198
Make-Dir $build_dir
197199

198200
cmake `
199-
-G "$Generator" `
200201
$CMAKE_COMPILER `
201202
-DCMAKE_INSTALL_PREFIX="$build_dir/install" `
202203
-B"$build_dir" `
203204
-S"$Vulkan_Vendor_Dir/Vulkan-Headers"
204205

205-
mingw32-make -C $build_dir install -j"$env:NUMBER_OF_PROCESSORS"
206+
cmake --build "$build_dir" --target install
206207

207208
Make-Dir $Vulkan_Include_Dir
208209

209-
Get-ChildItem "$Vulkan_Vendor_Dir/Vulkan-Headers/build/install/include" | Copy-Item -Destination $Vulkan_Include_Dir -Recurse
210+
Get-ChildItem "$Vulkan_Vendor_Dir/Vulkan-Headers/build/install/include" | Copy-Item -Destination $Vulkan_Include_Dir -Recurse -Force
210211
}
211212

212213
function Setup-Vulkan-Loader {
@@ -221,16 +222,17 @@ function Setup-Vulkan-Loader {
221222

222223
cmake `
223224
$CMAKE_COMPILER `
225+
-G "$Generator" `
224226
-DCMAKE_INSTALL_PREFIX="$build_dir" `
225227
-DVULKAN_HEADERS_INSTALL_DIR="$Vulkan_Vendor_Dir/Vulkan-Headers/build/install" `
226228
-S"$Vulkan_Vendor_Dir/Vulkan-Loader" `
227229
-B"$build_dir"
228230

229-
cmake --build "$build_dir" --parallel $env:NUMBER_OF_PROCESSORS --config Release
231+
cmake --build "$build_dir" --parallel $env:NUMBER_OF_PROCESSORS
230232

231233
Make-Dir $Vulkan_Lib_Dir
232234

233-
Copy-Item -Path "$build_dir/loader/Release/*" -Destination $Vulkan_Lib_Dir -Include "*.dll" -Recurse
235+
Copy-Item -Path "$build_dir/loader/*" -Destination "$Vulkan_Lib_Dir" -Include "*.dll" -Recurse
234236
}
235237

236238
function Setup-Robin-Hood-Hashing {
@@ -289,28 +291,42 @@ function Setup-Spirv-Tools {
289291
Make-Dir $build_dir
290292

291293
cmake `
292-
.. `
293294
$CMAKE_COMPILER `
294295
-DCMAKE_BUILD_TYPE=Release `
295296
-DSPIRV_SKIP_TESTS=ON `
296297
-DSPIRV_WERROR=OFF `
297-
-DSPIRV-Headers_SOURCE_DIR="$Vulkan_Vendor_Dir/SPIRV-Headers" `
298-
-DCMAKE_INSTALL_PREFIX="$build_dir\install" `
299-
-S"$Vulkan_Vendor_Dir\SPIRV-Tools" `
298+
-DSPIRV-Headers_SOURCE_DIR="$Vulkan_Vendor_Dir\\SPIRV-Headers" `
299+
-DCMAKE_INSTALL_PREFIX="$build_dir\\install" `
300+
-S"$Vulkan_Vendor_Dir\\SPIRV-Tools" `
300301
-B"$build_dir"
301302

302-
cmake `
303-
$CMAKE_COMPILER `
304-
-DCMAKE_BUILD_TYPE=Release `
305-
-DSPIRV_SKIP_TESTS=ON `
306-
-DSPIRV_WERROR=OFF `
307-
-DSPIRV-Headers_SOURCE_DIR="$Vulkan_Vendor_Dir/SPIRV-Headers" `
308-
-DCMAKE_INSTALL_PREFIX="$build_dir\install" `
309-
-S"$Vulkan_Vendor_Dir\SPIRV-Tools" `
310-
-B"$build_dir"
311303
cmake --build $build_dir --parallel $env:NUMBER_OF_PROCESSORS --target install --config Release
312304
}
313305

306+
function Setup-Vulkan-Utility-Libraries
307+
{
308+
Write-Output "Setting up Vulkan Utility Libraries..."
309+
Write-Output "Cloning Vulkan Utility Libraries..."
310+
311+
Update-Submodule vulkan\Vulkan-Utility-Libraries
312+
313+
Checkout-Tags "$Vulkan_Vendor_Dir\Vulkan-Utility-Libraries" "$Vulkan_Version"
314+
315+
Write-Output "Building Vulkan Validation Layers..."
316+
[string] $build_dir = "$Vulkan_Vendor_Dir\Vulkan-Utility-Libraries/build"
317+
318+
cmake `
319+
$CMAKE_COMPILER `
320+
-S "${Vulkan_Vendor_Dir}\Vulkan-Utility-Libraries" `
321+
-B "$build_dir" `
322+
-DCMAKE_BUILD_TYPE=Release `
323+
-DUPDATE_DEPS=OFF `
324+
-DVULKAN_HEADERS_INSTALL_DIR="$Vulkan_Vendor_Dir\Vulkan-Headers\build\install" `
325+
-DCMAKE_INSTALL_PREFIX="$build_dir\install"
326+
327+
cmake --build $build_dir --target install --config Release --parallel $env:NUMBER_OF_PROCESSORS
328+
}
329+
314330
function Setup-Validation-Layers {
315331
Write-Output "Setting up Vulkan Validation Layers..."
316332
Write-Output "Cloning Vulkan ValidationLayers..."
@@ -323,16 +339,17 @@ function Setup-Validation-Layers {
323339

324340
Make-Dir $build_dir
325341

326-
cmake `
327-
$CMAKE_COMPILER `
328-
-DVULKAN_HEADERS_INSTALL_DIR="$Vulkan_Vendor_Dir/Vulkan-Headers/build/install" `
329-
-DGLSLANG_INSTALL_DIR="$Vulkan_Vendor_Dir/glslang/build/install" `
330-
-DSPIRV_HEADERS_INSTALL_DIR="$Vulkan_Vendor_Dir/SPIRV-Headers/build/install" `
331-
-DSPIRV_TOOLS_INSTALL_DIR="$Vulkan_Vendor_Dir/SPIRV-Tools/build/install" `
332-
-DROBIN_HOOD_HASHING_INSTALL_DIR="$Vulkan_Vendor_Dir/robin-hood-hashing/build/install" `
333-
-DCMAKE_INSTALL_PREFIX="$build_dir" `
334-
-DBUILD_TESTS=OFF `
335-
-S"$Vulkan_Vendor_Dir/Vulkan-ValidationLayers" `
342+
cmake `
343+
$CMAKE_COMPILER `
344+
-DVULKAN_HEADERS_INSTALL_DIR="$Vulkan_Vendor_Dir/Vulkan-Headers/build/install" `
345+
-DGLSLANG_INSTALL_DIR="$Vulkan_Vendor_Dir/glslang/build" `
346+
-DSPIRV_HEADERS_INSTALL_DIR="$Vulkan_Vendor_Dir/SPIRV-Headers/build/install" `
347+
-DSPIRV_TOOLS_INSTALL_DIR="$Vulkan_Vendor_Dir/SPIRV-Tools/build/install" `
348+
-DROBIN_HOOD_HASHING_INSTALL_DIR="$Vulkan_Vendor_Dir/robin-hood-hashing/build/install" `
349+
-DVULKAN_UTILITY_LIBRARIES_INSTALL_DIR="$Vulkan_Vendor_Dir/Vulkan-Utility-Libraries/build/install" `
350+
-DCMAKE_INSTALL_PREFIX="$build_dir" `
351+
-DBUILD_TESTS=OFF `
352+
-S"$Vulkan_Vendor_Dir/Vulkan-ValidationLayers" `
336353
-B"$build_dir"
337354

338355
cmake --build $build_dir --parallel $env:NUMBER_OF_PROCESSORS --target install --config Release
@@ -354,16 +371,17 @@ Setup-Zlib
354371
Setup-LibPng
355372
Setup-FreeType
356373
Setup-Glfw
374+
Setup-Vulkan-Headers
375+
Setup-Spirv-Headers
376+
Setup-Spirv-Tools
357377
Setup-Glslang
358378
Setup-Volk
359-
Setup-Vulkan-Headers
360379
Setup-Vulkan-Loader
361380

362381
if ($Include_Validation_Layers)
363382
{
364383
Setup-Robin-Hood-Hashing
365-
Setup-Spirv-Headers
366-
Setup-Spirv-Tools
384+
Setup-Vulkan-Utility-Libraries
367385
Setup-Validation-Layers
368386

369387
Write-Output "Configuring environment file..."

scripts/setup.sh

Lines changed: 41 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,11 @@ else
2626
fi
2727

2828
# Set setup details
29-
VULKAN_VERSION="v1.3.250"
30-
SPIRV_VERSION="sdk-1.3.250.1"
31-
GLSLANG_VERSION="12.2.0"
29+
VULKAN_VERSION="vulkan-sdk-1.3.296.0"
30+
SPIRV_VERSION="vulkan-sdk-1.3.296.0"
31+
GLSLANG_VERSION="vulkan-sdk-1.3.296.0"
3232
ROBIN_HOOD_HASHING_VERSION="3.11.5"
33-
MOLTENVK_VERSION="v1.2.4"
33+
MOLTENVK_VERSION="v1.2.11"
3434
GENERATOR="Unix Makefiles"
3535
VENDOR_DIR="${ROOT_DIR}/vendor"
3636

@@ -45,7 +45,7 @@ update_submodules() {
4545
}
4646

4747
checkout_tags() {
48-
git -C "$1" fetch --all --tags ; git -C "$1" checkout tags/"$2"
48+
git -C "$1" fetch --all --tags --force ; git -C "$1" checkout tags/"$2"
4949
}
5050

5151
setup_utest() {
@@ -78,8 +78,13 @@ setup_glslang() {
7878
-DCMAKE_INSTALL_PREFIX="${VENDOR_DIR}"/glslang/build \
7979
-G "${GENERATOR}" -DCMAKE_BUILD_TYPE=Release \
8080
-DCMAKE_INSTALL_PREFIX="${VENDOR_DIR}"/glslang/build/install \
81+
-DALLOW_EXTERNAL_SPIRV_TOOLS=1 \
82+
-DSPIRV-Tools-opt_INCLUDE_DIRS="${VULKAN_VENDOR_DIR}"/SPIRV-Tools/build/install/include \
8183
-S"${VENDOR_DIR}"/glslang \
8284
-B"${VENDOR_DIR}"/glslang/build
85+
86+
ln -sfn "${VULKAN_VENDOR_DIR}"/SPIRV-Tools "${VENDOR_DIR}"/glslang/External/spirv-tools
87+
8388
cmake --build "${VENDOR_DIR}"/glslang/build --target install -- -j"${NUMBER_OF_PROCESSORS}"
8489
}
8590

@@ -141,7 +146,7 @@ setup_moltenVk() {
141146
checkout_tags "${VULKAN_VENDOR_DIR}"/MoltenVK ${MOLTENVK_VERSION}
142147

143148
echo "Building MoltenVk..."
144-
(cd "${VULKAN_VENDOR_DIR}"/MoltenVK ; ./fetchDependencies --macos --v-headers-root "${VULKAN_VENDOR_DIR}"/Vulkan-Headers)
149+
(cd "${VULKAN_VENDOR_DIR}"/MoltenVK ; ./fetchDependencies --macos --v-headers-root "${VULKAN_VENDOR_DIR}"/Vulkan-Headers --glslang-root "${VENDOR_DIR}"/glslang)
145150
make -C "${VULKAN_VENDOR_DIR}"/MoltenVK macos -j"${NUMBER_OF_PROCESSORS}"
146151
mkdir -p "${VULKAN_LIB_DIR}"/icd.d
147152
mkdir -p "${VULKAN_INCLUDE_DIR}"
@@ -191,6 +196,23 @@ setup_spirv_tools() {
191196
mkdir -p "${BUILD_DIR}"
192197
cmake -DCMAKE_BUILD_TYPE=Release -DSPIRV_SKIP_TESTS=ON -DSPIRV_WERROR=OFF -DSPIRV-Headers_SOURCE_DIR="${VULKAN_VENDOR_DIR}/SPIRV-Headers" -DCMAKE_INSTALL_PREFIX="${BUILD_DIR}"/install -S"${VULKAN_VENDOR_DIR}"/SPIRV-Tools -B"${BUILD_DIR}"
193198
cmake --build "${BUILD_DIR}" --target install --config Release -j"${NUMBER_OF_PROCESSORS}"
199+
200+
ln -sfn "${VULKAN_VENDOR_DIR}"/SPIRV-Headers "${VULKAN_VENDOR_DIR}"/SPIRV-Tools/external/spirv-headers
201+
}
202+
203+
setup_vulkan_utility_libraries() {
204+
echo "Setting up Vulkan Utility Libraries..."
205+
echo "Cloning Vulkan Utility Libraries..."
206+
207+
update_submodules vulkan/Vulkan-Utility-Libraries
208+
checkout_tags "${VULKAN_VENDOR_DIR}"/Vulkan-Utility-Libraries "$VULKAN_VERSION"
209+
210+
echo "Building Vulkan Utility Libraries..."
211+
local BUILD_DIR="${VULKAN_VENDOR_DIR}"/Vulkan-Utility-Libraries/build
212+
mkdir -p "${BUILD_DIR}"
213+
214+
cmake -S "${VULKAN_VENDOR_DIR}"/Vulkan-Utility-Libraries -B "${BUILD_DIR}" -DCMAKE_BUILD_TYPE=Release -DUPDATE_DEPS=OFF -DVULKAN_HEADERS_INSTALL_DIR="${VULKAN_VENDOR_DIR}"/Vulkan-Headers/build/install -DCMAKE_INSTALL_PREFIX="${BUILD_DIR}"/install
215+
cmake --build "${BUILD_DIR}" --target install --config Release -j"${NUMBER_OF_PROCESSORS}"
194216
}
195217

196218
setup_validation_layers() {
@@ -203,15 +225,16 @@ setup_validation_layers() {
203225
local BUILD_DIR="${VULKAN_VENDOR_DIR}"/Vulkan-ValidationLayers/build
204226
mkdir -p "${BUILD_DIR}"
205227
cmake \
206-
-DVULKAN_HEADERS_INSTALL_DIR="${VULKAN_VENDOR_DIR}"/Vulkan-Headers/build/install \
207-
-DGLSLANG_INSTALL_DIR="${VENDOR_DIR}"/glslang/build/install \
208-
-DSPIRV_HEADERS_INSTALL_DIR="${VULKAN_VENDOR_DIR}"/SPIRV-Headers/build/install \
209-
-DSPIRV_TOOLS_INSTALL_DIR="${VULKAN_VENDOR_DIR}"/SPIRV-Tools/build/install \
210-
-DROBIN_HOOD_HASHING_INSTALL_DIR="${VULKAN_VENDOR_DIR}"/robin-hood-hashing/build/install \
211-
-DCMAKE_BUILD_TYPE=Release \
212-
-DCMAKE_INSTALL_PREFIX="${BUILD_DIR}" \
213-
-DBUILD_TESTS=OFF \
214-
-S"${VULKAN_VENDOR_DIR}"/Vulkan-ValidationLayers \
228+
-DVULKAN_HEADERS_INSTALL_DIR="${VULKAN_VENDOR_DIR}"/Vulkan-Headers/build/install \
229+
-DGLSLANG_INSTALL_DIR="${VENDOR_DIR}"/glslang/build/install \
230+
-DSPIRV_HEADERS_INSTALL_DIR="${VULKAN_VENDOR_DIR}"/SPIRV-Headers/build/install \
231+
-DSPIRV_TOOLS_INSTALL_DIR="${VULKAN_VENDOR_DIR}"/SPIRV-Tools/build/install \
232+
-DROBIN_HOOD_HASHING_INSTALL_DIR="${VULKAN_VENDOR_DIR}"/robin-hood-hashing/build/install \
233+
-DVULKAN_UTILITY_LIBRARIES_INSTALL_DIR="${VULKAN_VENDOR_DIR}"/Vulkan-Utility-Libraries/build/install \
234+
-DCMAKE_BUILD_TYPE=Release \
235+
-DCMAKE_INSTALL_PREFIX="${BUILD_DIR}" \
236+
-DBUILD_TESTS=OFF \
237+
-S"${VULKAN_VENDOR_DIR}"/Vulkan-ValidationLayers \
215238
-B"${BUILD_DIR}"
216239
cmake --build "${BUILD_DIR}" --config Release --target install -j"${NUMBER_OF_PROCESSORS}"
217240
mkdir -p "${VULKAN_LIB_DIR}"/explicit_layer.d
@@ -261,6 +284,8 @@ echo "Setting up dependencies..."
261284

262285
setup_utest
263286
setup_glfw
287+
setup_spirv_headers
288+
setup_spirv_tools
264289
setup_glslang
265290
setup_glm
266291
setup_volk
@@ -276,8 +301,7 @@ fi
276301

277302
if [[ $* == *--include-validation-layers* ]]; then
278303
setup_robin_hood_hashing
279-
setup_spirv_headers
280-
setup_spirv_tools
304+
setup_vulkan_utility_libraries
281305
setup_validation_layers
282306
fi
283307

vendor/glslang

Submodule glslang updated 950 files

vendor/vulkan/MoltenVK

Submodule MoltenVK updated 239 files

vendor/vulkan/SPIRV-Headers

Submodule SPIRV-Headers updated 49 files

0 commit comments

Comments
 (0)