From eacec2ae125bfc1134e0dd3a9347cf8a51f3b3f1 Mon Sep 17 00:00:00 2001 From: Morph <39850852+Morph1984@users.noreply.github.com> Date: Thu, 6 Jul 2023 20:30:54 -0400 Subject: [PATCH 1/3] ci: Download and install Vulkan SDK directly from LunarG --- .ci/scripts/windows/install-vulkan-sdk.ps1 | 33 ++++++++++++++++++++++ .ci/templates/build-msvc.yml | 9 ++++-- .github/workflows/verify.yml | 5 +++- 3 files changed, 43 insertions(+), 4 deletions(-) create mode 100644 .ci/scripts/windows/install-vulkan-sdk.ps1 diff --git a/.ci/scripts/windows/install-vulkan-sdk.ps1 b/.ci/scripts/windows/install-vulkan-sdk.ps1 new file mode 100644 index 000000000..778a2c2ff --- /dev/null +++ b/.ci/scripts/windows/install-vulkan-sdk.ps1 @@ -0,0 +1,33 @@ +# SPDX-FileCopyrightText: 2023 yuzu Emulator Project +# SPDX-License-Identifier: GPL-3.0-or-later + +$ErrorActionPreference = "Stop" + +$VulkanSDKVer = "1.3.243.0" +$ExeFile = "VulkanSDK-$VulkanSDKVer-Installer.exe" +$Uri = "https://sdk.lunarg.com/sdk/download/$VulkanSDKVer/windows/$ExeFile" +$Destination = "./$ExeFile" + +echo "Downloading Vulkan SDK $VulkanSDKVer from $Uri" +$WebClient = New-Object System.Net.WebClient +$WebClient.DownloadFile($Uri, $Destination) +echo "Finished downloading $ExeFile" + +$VULKAN_SDK = "C:/VulkanSDK/$VulkanSDKVer" +$Arguments = "--root `"$VULKAN_SDK`" --accept-licenses --default-answer --confirm-command install" + +echo "Installing Vulkan SDK $VulkanSDKVer" +$InstallProcess = Start-Process -FilePath $Destination -NoNewWindow -PassThru -Wait -ArgumentList $Arguments +$ExitCode = $InstallProcess.ExitCode + +if ($ExitCode -ne 0) { + echo "Error installing Vulkan SDK $VulkanSDKVer (Error: $ExitCode)" + Exit $ExitCode +} + +echo "Finished installing Vulkan SDK $VulkanSDKVer" + +if ("$env:GITHUB_ACTIONS" -eq "true") { + echo "VULKAN_SDK=$VULKAN_SDK" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append + echo "$VULKAN_SDK/Bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append +} diff --git a/.ci/templates/build-msvc.yml b/.ci/templates/build-msvc.yml index ceb7e0c32..d069fa9c3 100644 --- a/.ci/templates/build-msvc.yml +++ b/.ci/templates/build-msvc.yml @@ -7,9 +7,12 @@ parameters: version: '' steps: -- script: choco install vulkan-sdk - displayName: 'Install vulkan-sdk' -- script: refreshenv && mkdir build && cd build && cmake -E env CXXFLAGS="/Gw /GA /Gr /Ob2" cmake -G "Visual Studio 17 2022" -A x64 -DCMAKE_POLICY_DEFAULT_CMP0069=NEW -DYUZU_ENABLE_LTO=ON -DYUZU_USE_BUNDLED_QT=1 -DYUZU_USE_BUNDLED_SDL2=1 -DYUZU_USE_QT_WEB_ENGINE=ON -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON -DYUZU_ENABLE_COMPATIBILITY_REPORTING=${COMPAT} -DYUZU_TESTS=OFF -DUSE_DISCORD_PRESENCE=ON -DENABLE_QT_TRANSLATION=ON -DDISPLAY_VERSION=${{ parameters['version'] }} -DCMAKE_BUILD_TYPE=Release -DYUZU_CRASH_DUMPS=ON .. && cd .. +- task: Powershell@2 + displayName: 'Install Vulkan SDK' + inputs: + targetType: 'filePath' + filePath: './.ci/scripts/windows/install-vulkan-sdk.ps1' +- script: refreshenv && glslangValidator --version && mkdir build && cd build && cmake -E env CXXFLAGS="/Gw /GA /Gr /Ob2" cmake -G "Visual Studio 17 2022" -A x64 -DCMAKE_POLICY_DEFAULT_CMP0069=NEW -DYUZU_ENABLE_LTO=ON -DYUZU_USE_BUNDLED_QT=1 -DYUZU_USE_BUNDLED_SDL2=1 -DYUZU_USE_QT_WEB_ENGINE=ON -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON -DYUZU_ENABLE_COMPATIBILITY_REPORTING=${COMPAT} -DYUZU_TESTS=OFF -DUSE_DISCORD_PRESENCE=ON -DENABLE_QT_TRANSLATION=ON -DDISPLAY_VERSION=${{ parameters['version'] }} -DCMAKE_BUILD_TYPE=Release -DYUZU_CRASH_DUMPS=ON .. && cd .. displayName: 'Configure CMake' - task: MSBuild@1 displayName: 'Build' diff --git a/.github/workflows/verify.yml b/.github/workflows/verify.yml index b5d338199..19c3a4089 100644 --- a/.github/workflows/verify.yml +++ b/.github/workflows/verify.yml @@ -84,13 +84,16 @@ jobs: # due to how chocolatey works, only cmd.exe is supported here shell: cmd run: | - choco install vulkan-sdk wget + choco install wget call refreshenv wget https://github.com/mbitsnbites/buildcache/releases/download/v0.27.6/buildcache-windows.zip 7z x buildcache-windows.zip copy buildcache\bin\buildcache.exe C:\ProgramData\chocolatey\bin rmdir buildcache echo %PATH% >> %GITHUB_PATH% + - name: Install Vulkan SDK + shell: pwsh + run: .\.ci\scripts\windows\install-vulkan-sdk.ps1 - name: Set up MSVC uses: ilammy/msvc-dev-cmd@v1 - uses: actions/checkout@v3 From c652e42492b7f41e9a65a229b2868bea39ad6adb Mon Sep 17 00:00:00 2001 From: Morph <39850852+Morph1984@users.noreply.github.com> Date: Thu, 6 Jul 2023 22:34:26 -0400 Subject: [PATCH 2/3] github: Checkout source first (MSVC) --- .github/workflows/verify.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/verify.yml b/.github/workflows/verify.yml index 19c3a4089..6420fd82b 100644 --- a/.github/workflows/verify.yml +++ b/.github/workflows/verify.yml @@ -73,6 +73,10 @@ jobs: needs: format runs-on: windows-2022 steps: + - uses: actions/checkout@v3 + with: + submodules: recursive + fetch-depth: 0 - name: Set up cache uses: actions/cache@v3 with: @@ -96,10 +100,6 @@ jobs: run: .\.ci\scripts\windows\install-vulkan-sdk.ps1 - name: Set up MSVC uses: ilammy/msvc-dev-cmd@v1 - - uses: actions/checkout@v3 - with: - submodules: recursive - fetch-depth: 0 - name: Configure env: CC: cl.exe From e3937fe8ad7f64406ec1547df4649ed80663819a Mon Sep 17 00:00:00 2001 From: Morph <39850852+Morph1984@users.noreply.github.com> Date: Fri, 7 Jul 2023 01:23:40 -0400 Subject: [PATCH 3/3] general: Update VulkanSDK and Vulkan-Headers Latest as of this commit --- .ci/scripts/windows/install-vulkan-sdk.ps1 | 2 +- CMakeLists.txt | 2 +- externals/Vulkan-Headers | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.ci/scripts/windows/install-vulkan-sdk.ps1 b/.ci/scripts/windows/install-vulkan-sdk.ps1 index 778a2c2ff..de218d90a 100644 --- a/.ci/scripts/windows/install-vulkan-sdk.ps1 +++ b/.ci/scripts/windows/install-vulkan-sdk.ps1 @@ -3,7 +3,7 @@ $ErrorActionPreference = "Stop" -$VulkanSDKVer = "1.3.243.0" +$VulkanSDKVer = "1.3.250.1" $ExeFile = "VulkanSDK-$VulkanSDKVer-Installer.exe" $Uri = "https://sdk.lunarg.com/sdk/download/$VulkanSDKVer/windows/$ExeFile" $Destination = "./$ExeFile" diff --git a/CMakeLists.txt b/CMakeLists.txt index 26e93b038..7f8febb90 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -285,7 +285,7 @@ find_package(ZLIB 1.2 REQUIRED) find_package(zstd 1.5 REQUIRED) if (NOT YUZU_USE_EXTERNAL_VULKAN_HEADERS) - find_package(Vulkan 1.3.246 REQUIRED) + find_package(Vulkan 1.3.256 REQUIRED) endif() if (ENABLE_LIBUSB) diff --git a/externals/Vulkan-Headers b/externals/Vulkan-Headers index 63af1cf1e..ed857118e 160000 --- a/externals/Vulkan-Headers +++ b/externals/Vulkan-Headers @@ -1 +1 @@ -Subproject commit 63af1cf1ee906ba4dcd5a324bdd0201d4f4bfd12 +Subproject commit ed857118e243fdc0f3a100f00ac9919e874cfe63