diff --git a/UnleashedRecomp/gpu/video.cpp b/UnleashedRecomp/gpu/video.cpp index 7b8d3f33..4614ccec 100644 --- a/UnleashedRecomp/gpu/video.cpp +++ b/UnleashedRecomp/gpu/video.cpp @@ -36,7 +36,7 @@ #include "../../tools/ShaderRecomp/ShaderRecomp/shader_common.h" -#if defined(SWA_D3D12) +#ifdef SWA_D3D12 #include "shader/copy_vs.hlsl.dxil.h" #include "shader/csd_filter_ps.hlsl.dxil.h" #include "shader/enhanced_motion_blur_ps.hlsl.dxil.h" @@ -78,7 +78,7 @@ extern "C" namespace plume { -#if defined(SWA_D3D12) +#ifdef SWA_D3D12 extern std::unique_ptr CreateD3D12Interface(); #endif extern std::unique_ptr CreateVulkanInterface(); @@ -180,7 +180,7 @@ static FORCEINLINE void SetDirtyValue(bool& dirtyState, T& dest, const T& src) } } -#if defined(SWA_D3D12) +#ifdef SWA_D3D12 static bool g_vulkan = false; #else static constexpr bool g_vulkan = true; @@ -590,13 +590,18 @@ static std::unique_ptr g_buttonBcDiff; static void LoadEmbeddedResources() { - const size_t decompressedSize = g_vulkan ? g_spirvCacheDecompressedSize : g_dxilCacheDecompressedSize; - g_shaderCache = std::make_unique(decompressedSize); - - ZSTD_decompress(g_shaderCache.get(), - decompressedSize, - g_vulkan ? g_compressedSpirvCache : g_compressedDxilCache, - g_vulkan ? g_spirvCacheCompressedSize : g_dxilCacheCompressedSize); + if (g_vulkan) + { + g_shaderCache = std::make_unique(g_spirvCacheDecompressedSize); + ZSTD_decompress(g_shaderCache.get(), g_spirvCacheDecompressedSize, g_compressedSpirvCache, g_spirvCacheCompressedSize); + } +#ifdef SWA_D3D12 + else + { + g_shaderCache = std::make_unique(g_dxilCacheDecompressedSize); + ZSTD_decompress(g_shaderCache.get(), g_dxilCacheDecompressedSize, g_compressedDxilCache, g_dxilCacheCompressedSize); + } +#endif g_buttonBcDiff = decompressZstd(g_button_bc_diff, g_button_bc_diff_uncompressed_size); } @@ -1073,7 +1078,7 @@ static GuestShader* g_csdShader; static std::unique_ptr g_enhancedMotionBlurShader; -#if defined(SWA_D3D12) +#ifdef SWA_D3D12 #define CREATE_SHADER(NAME) \ g_device->createShader( \ @@ -1308,13 +1313,13 @@ void Video::CreateHostDevice() Window::Init(); -#if defined(SWA_D3D12) +#ifdef SWA_D3D12 g_vulkan = DetectWine() || Config::GraphicsAPI == EGraphicsAPI::Vulkan; #endif LoadEmbeddedResources(); -#if defined(SWA_D3D12) +#ifdef SWA_D3D12 g_interface = g_vulkan ? CreateVulkanInterface() : CreateD3D12Interface(); #else g_interface = CreateVulkanInterface(); @@ -2832,7 +2837,7 @@ static RenderShader* GetOrLinkShader(GuestShader* guestShader, uint32_t specCons shader = guestShader->linkedShaders[specConstants].get(); } -#if defined(SWA_D3D12) +#ifdef SWA_D3D12 if (shader == nullptr) { static Mutex g_compiledSpecConstantLibraryBlobMutex; diff --git a/UnleashedRecomp/gpu/video.h b/UnleashedRecomp/gpu/video.h index 1471bc02..34ddf886 100644 --- a/UnleashedRecomp/gpu/video.h +++ b/UnleashedRecomp/gpu/video.h @@ -274,7 +274,7 @@ struct GuestShader : GuestResource std::unique_ptr shader; struct ShaderCacheEntry* shaderCacheEntry = nullptr; ankerl::unordered_dense::map> linkedShaders; -#if defined(SWA_D3D12) +#ifdef SWA_D3D12 std::vector> shaderBlobs; ComPtr libraryBlob; #endif diff --git a/UnleashedRecomp/stdafx.h b/UnleashedRecomp/stdafx.h index 5b00b817..f673f185 100644 --- a/UnleashedRecomp/stdafx.h +++ b/UnleashedRecomp/stdafx.h @@ -6,7 +6,7 @@ #include #endif -#if defined(SWA_D3D12) +#ifdef SWA_D3D12 #include #endif diff --git a/UnleashedRecomp/user/config.h b/UnleashedRecomp/user/config.h index de2355bb..f1b3ce57 100644 --- a/UnleashedRecomp/user/config.h +++ b/UnleashedRecomp/user/config.h @@ -28,7 +28,7 @@ public: CONFIG_DEFINE_LOCALISED("Audio", bool, MusicAttenuation, false); CONFIG_DEFINE_LOCALISED("Audio", bool, BattleTheme, true); -#if defined(SWA_D3D12) +#ifdef SWA_D3D12 CONFIG_DEFINE_ENUM("Video", EGraphicsAPI, GraphicsAPI, EGraphicsAPI::D3D12); #else CONFIG_DEFINE_ENUM("Video", EGraphicsAPI, GraphicsAPI, EGraphicsAPI::Vulkan); diff --git a/UnleashedRecomp/user/config_detail.h b/UnleashedRecomp/user/config_detail.h index fb0543a3..7ca8a902 100644 --- a/UnleashedRecomp/user/config_detail.h +++ b/UnleashedRecomp/user/config_detail.h @@ -95,7 +95,7 @@ CONFIG_DEFINE_ENUM_TEMPLATE(EVoiceLanguage) enum class EGraphicsAPI : uint32_t { -#if defined(SWA_D3D12) +#ifdef SWA_D3D12 D3D12, #endif Vulkan @@ -103,7 +103,7 @@ enum class EGraphicsAPI : uint32_t CONFIG_DEFINE_ENUM_TEMPLATE(EGraphicsAPI) { -#if defined(SWA_D3D12) +#ifdef SWA_D3D12 { "D3D12", EGraphicsAPI::D3D12 }, #endif { "Vulkan", EGraphicsAPI::Vulkan } diff --git a/tools/ShaderRecomp b/tools/ShaderRecomp index 12b38144..4b69741e 160000 --- a/tools/ShaderRecomp +++ b/tools/ShaderRecomp @@ -1 +1 @@ -Subproject commit 12b38144b9ff5d131e0d30af22bd38607d07d9fd +Subproject commit 4b69741e196e0a8aed9d51bbe0cf24019afab08e