From cf89e0348667115695d4271732fc9e04da430499 Mon Sep 17 00:00:00 2001 From: Isaac Marovitz Date: Wed, 26 Mar 2025 09:07:12 -0400 Subject: [PATCH] Add Metal CMake option Signed-off-by: Isaac Marovitz --- UnleashedRecomp/CMakeLists.txt | 4 ++++ UnleashedRecomp/gpu/video.cpp | 7 +++++++ 2 files changed, 11 insertions(+) diff --git a/UnleashedRecomp/CMakeLists.txt b/UnleashedRecomp/CMakeLists.txt index e39571e..3eabba5 100644 --- a/UnleashedRecomp/CMakeLists.txt +++ b/UnleashedRecomp/CMakeLists.txt @@ -4,6 +4,10 @@ if (WIN32) option(UNLEASHED_RECOMP_D3D12 "Add D3D12 support for rendering" ON) endif() +if (APPLE) + option(UNLEASHED_RECOMP_METAL "Add Metal support for rendering" ON) +endif() + if (CMAKE_SYSTEM_NAME MATCHES "Linux") option(UNLEASHED_RECOMP_FLATPAK "Configure the build for Flatpak compatibility." OFF) endif() diff --git a/UnleashedRecomp/gpu/video.cpp b/UnleashedRecomp/gpu/video.cpp index 854d474..faa4a87 100644 --- a/UnleashedRecomp/gpu/video.cpp +++ b/UnleashedRecomp/gpu/video.cpp @@ -785,6 +785,13 @@ static void LoadEmbeddedResources() g_shaderCache = std::make_unique(g_spirvCacheDecompressedSize); ZSTD_decompress(g_shaderCache.get(), g_spirvCacheDecompressedSize, g_compressedSpirvCache, g_spirvCacheCompressedSize); } +#ifdef UNLEASHED_RECOMP_METAL + else + { + g_shaderCache = std::make_unique(g_airCacheDecompressedSize); + ZSTD_decompress(g_shaderCache.get(), g_airCacheDecompressedSize, g_compressedAirCache, g_airCacheCompressedSize); + } +#endif #ifdef UNLEASHED_RECOMP_D3D12 else {