From 5937e0bf124462fb3d47036f1e8f0a58766e845b Mon Sep 17 00:00:00 2001 From: OpenSauce04 Date: Fri, 11 Jul 2025 21:18:43 +0100 Subject: [PATCH] externals: Upgraded Vulkan dependencies to vulkan-sdk-1.4.313.0 --- .gitmodules | 8 ++- externals/CMakeLists.txt | 5 +- externals/glslang | 2 +- externals/sirit/CMakeLists.txt | 91 ++++++++++++++++++++++++++++++++++ externals/{ => sirit}/sirit | 0 externals/spirv-headers | 1 + externals/spirv-tools | 1 + externals/vulkan-headers | 2 +- 8 files changed, 106 insertions(+), 4 deletions(-) create mode 100644 externals/sirit/CMakeLists.txt rename externals/{ => sirit}/sirit (100%) create mode 160000 externals/spirv-headers create mode 160000 externals/spirv-tools diff --git a/.gitmodules b/.gitmodules index 6722560ca..ed5d9f0f9 100644 --- a/.gitmodules +++ b/.gitmodules @@ -77,7 +77,7 @@ path = externals/vulkan-headers url = https://github.com/KhronosGroup/Vulkan-Headers [submodule "sirit"] - path = externals/sirit + path = externals/sirit/sirit url = https://github.com/azahar-emu/sirit [submodule "faad2"] path = externals/faad2/faad2 @@ -94,3 +94,9 @@ [submodule "compatibility-list"] path = dist/compatibility_list url = https://github.com/azahar-emu/compatibility-list +[submodule "spirv-tools"] + path = externals/spirv-tools + url = https://github.com/KhronosGroup/SPIRV-Tools +[submodule "spirv-headers"] + path = externals/spirv-headers + url = https://github.com/KhronosGroup/SPIRV-Headers diff --git a/externals/CMakeLists.txt b/externals/CMakeLists.txt index 496b4c1a6..4b8c516bc 100644 --- a/externals/CMakeLists.txt +++ b/externals/CMakeLists.txt @@ -392,13 +392,16 @@ if (ENABLE_VULKAN) get_target_property(GLSLANG_PREFIX glslang::SPIRV INTERFACE_INCLUDE_DIRECTORIES) target_include_directories(SPIRV SYSTEM INTERFACE "${GLSLANG_PREFIX}/glslang") else() + set(SPIRV-Headers_SOURCE_DIR "${CMAKE_SOURCE_DIR}/externals/spirv-headers") + add_subdirectory(spirv-headers EXCLUDE_FROM_ALL) + set(SPIRV_SKIP_EXECUTABLES ON) + add_subdirectory(spirv-tools EXCLUDE_FROM_ALL) set(SKIP_GLSLANG_INSTALL ON CACHE BOOL "") set(ENABLE_GLSLANG_BINARIES OFF CACHE BOOL "") set(ENABLE_SPVREMAPPER OFF CACHE BOOL "") set(ENABLE_CTEST OFF CACHE BOOL "") set(ENABLE_HLSL OFF CACHE BOOL "") set(BUILD_EXTERNAL OFF CACHE BOOL "") - set(ALLOW_EXTERNAL_SPIRV_TOOLS ON) add_subdirectory(glslang) endif() diff --git a/externals/glslang b/externals/glslang index b3a6aa7b0..fc9889c88 160000 --- a/externals/glslang +++ b/externals/glslang @@ -1 +1 @@ -Subproject commit b3a6aa7b03c51ba976e4f4e96b1e31f77f43f312 +Subproject commit fc9889c889561c5882e83819dcaffef5ed45529b diff --git a/externals/sirit/CMakeLists.txt b/externals/sirit/CMakeLists.txt new file mode 100644 index 000000000..3197a943b --- /dev/null +++ b/externals/sirit/CMakeLists.txt @@ -0,0 +1,91 @@ +# This file has been adapted from dynarmic + +cmake_minimum_required(VERSION 3.8) +project(sirit CXX) + +# Determine if we're built as a subproject (using add_subdirectory) +# or if this is the master project. +set(MASTER_PROJECT OFF) +if (CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR) + set(MASTER_PROJECT ON) +endif() + +# Sirit project options +option(SIRIT_TESTS "Build tests" OFF) +option(SIRIT_USE_SYSTEM_SPIRV_HEADERS "Use system SPIR-V headers" OFF) + +# Default to a Release build +if (NOT CMAKE_BUILD_TYPE) + set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Choose the type of build, options are: Debug Release RelWithDebInfo MinSizeRel." FORCE) + message(STATUS "Defaulting to a Release build") +endif() + +# Set hard requirements for C++ +set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_CXX_EXTENSIONS OFF) + +# Warn on CMake API deprecations +set(CMAKE_WARN_DEPRECATED ON) + +# Disable in-source builds +set(CMAKE_DISABLE_SOURCE_CHANGES ON) +set(CMAKE_DISABLE_IN_SOURCE_BUILD ON) +if ("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}") + message(SEND_ERROR "In-source builds are not allowed.") +endif() + +# Add the module directory to the list of paths +list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/CMakeModules") + +# Compiler flags +if (MSVC) + set(SIRIT_CXX_FLAGS + /std:c++latest # CMAKE_CXX_STANDARD as no effect on MSVC until CMake 3.10. + /W4 + /w34263 # Non-virtual member function hides base class virtual function + /w44265 # Class has virtual functions, but destructor is not virtual + /w34456 # Declaration of 'var' hides previous local declaration + /w34457 # Declaration of 'var' hides function parameter + /w34458 # Declaration of 'var' hides class member + /w34459 # Declaration of 'var' hides global definition + /w34946 # Reinterpret-cast between related types + /wd4592 # Symbol will be dynamically initialized (implementation limitation) + /permissive- # Stricter C++ standards conformance + /MP + /Zi + /Zo + /EHsc + /Zc:throwingNew # Assumes new never returns null + /Zc:inline # Omits inline functions from object-file output + /DNOMINMAX + /WX) + + if (CMAKE_VS_PLATFORM_TOOLSET MATCHES "LLVM-vs[0-9]+") + list(APPEND SIRIT_CXX_FLAGS + -Qunused-arguments + -Wno-missing-braces) + endif() +else() + set(SIRIT_CXX_FLAGS + -Wall + -Wextra + -Wcast-qual + -pedantic + -pedantic-errors + -Wfatal-errors + -Wno-missing-braces + -Wconversion + -Wsign-conversion + -Wshadow + -Werror) +endif() + +# Enable unit-testing. +enable_testing(true) + +# Sirit project files +add_subdirectory(sirit/src) +if (SIRIT_TESTS) + add_subdirectory(sirit/tests) +endif() diff --git a/externals/sirit b/externals/sirit/sirit similarity index 100% rename from externals/sirit rename to externals/sirit/sirit diff --git a/externals/spirv-headers b/externals/spirv-headers new file mode 160000 index 000000000..aa6cef192 --- /dev/null +++ b/externals/spirv-headers @@ -0,0 +1 @@ +Subproject commit aa6cef192b8e693916eb713e7a9ccadf06062ceb diff --git a/externals/spirv-tools b/externals/spirv-tools new file mode 160000 index 000000000..a62abcb40 --- /dev/null +++ b/externals/spirv-tools @@ -0,0 +1 @@ +Subproject commit a62abcb402009b9ca5975e6167c09f237f630e0e diff --git a/externals/vulkan-headers b/externals/vulkan-headers index d4a196d8c..409c16be5 160000 --- a/externals/vulkan-headers +++ b/externals/vulkan-headers @@ -1 +1 @@ -Subproject commit d4a196d8c84e032d27f999adcea3075517c1c97f +Subproject commit 409c16be502e39fe70dd6fe2d9ad4842ef2c9a53