From 756d001d3565e8d9c669de83378b99c5bfe762c5 Mon Sep 17 00:00:00 2001 From: "Skyth (Asilkan)" <19259897+blueskythlikesclouds@users.noreply.github.com> Date: Thu, 6 Mar 2025 01:53:36 +0300 Subject: [PATCH] Disable hardware resolve on Intel GPUs. (#853) --- UnleashedRecomp/gpu/video.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/UnleashedRecomp/gpu/video.cpp b/UnleashedRecomp/gpu/video.cpp index 3919877..e24ce4d 100644 --- a/UnleashedRecomp/gpu/video.cpp +++ b/UnleashedRecomp/gpu/video.cpp @@ -287,8 +287,8 @@ static constexpr bool g_vulkan = true; static bool g_triangleStripWorkaround = false; -static constexpr bool g_hardwareResolve = true; -static constexpr bool g_hardwareDepthResolve = true; +static bool g_hardwareResolve = true; +static bool g_hardwareDepthResolve = true; static std::unique_ptr g_interface; static std::unique_ptr g_device; @@ -1698,6 +1698,10 @@ bool Video::CreateHostDevice(const char *sdlVideoDriver) continue; } } + + // Hardware resolve seems to be completely bugged on Intel D3D12 drivers. + g_hardwareResolve = (deviceDescription.vendor != RenderDeviceVendor::INTEL); + g_hardwareDepthResolve = (deviceDescription.vendor != RenderDeviceVendor::INTEL); } g_vulkan = (interfaceFunction == CreateVulkanInterfaceWrapper); @@ -2326,6 +2330,8 @@ static void DrawProfiler() ImGui::Text("Triangle Fan: %s", g_capabilities.triangleFan ? "Supported" : "Unsupported"); ImGui::Text("Dynamic Depth Bias: %s", g_capabilities.dynamicDepthBias ? "Supported" : "Unsupported"); ImGui::Text("Triangle Strip Workaround: %s", g_triangleStripWorkaround ? "Enabled" : "Disabled"); + ImGui::Text("Hardware Resolve: %s", g_hardwareResolve ? "Enabled" : "Disabled"); + ImGui::Text("Hardware Depth Resolve: %s", g_hardwareDepthResolve ? "Enabled" : "Disabled"); ImGui::NewLine(); ImGui::Text("API: %s", g_vulkan ? "Vulkan" : "D3D12");