From 4aa49a917ce4ed531fd59afa0b3aec8b0d2cb200 Mon Sep 17 00:00:00 2001 From: lightningterror <18107717+lightningterror@users.noreply.github.com> Date: Fri, 9 Jan 2026 00:57:18 +0100 Subject: [PATCH] 2 --- pcsx2/GS/Renderers/DX11/GSDevice11.cpp | 2 +- pcsx2/GS/Renderers/DX12/GSDevice12.cpp | 7 ++++++- pcsx2/GS/Renderers/OpenGL/GSDeviceOGL.cpp | 2 +- pcsx2/GS/Renderers/Vulkan/GSDeviceVK.cpp | 4 ++-- 4 files changed, 10 insertions(+), 5 deletions(-) diff --git a/pcsx2/GS/Renderers/DX11/GSDevice11.cpp b/pcsx2/GS/Renderers/DX11/GSDevice11.cpp index 5c191ceb8d..6860fe68ce 100644 --- a/pcsx2/GS/Renderers/DX11/GSDevice11.cpp +++ b/pcsx2/GS/Renderers/DX11/GSDevice11.cpp @@ -2737,7 +2737,7 @@ void GSDevice11::RenderHW(GSHWDrawConfig& config) else if (config.destination_alpha == GSHWDrawConfig::DestinationAlphaMode::Depth) { PSSetShaderResource(2, config.rt); - config.rt = nullptr; + config.rt = (config.rt == m_state.cached_rt_view) ? nullptr : m_state.cached_rt_view; OMSetRenderTargets(config.rt, config.ds, &config.scissor, read_only_dsv); } diff --git a/pcsx2/GS/Renderers/DX12/GSDevice12.cpp b/pcsx2/GS/Renderers/DX12/GSDevice12.cpp index cb6ca2d8ff..c0bb5853a7 100644 --- a/pcsx2/GS/Renderers/DX12/GSDevice12.cpp +++ b/pcsx2/GS/Renderers/DX12/GSDevice12.cpp @@ -4145,7 +4145,12 @@ void GSDevice12::RenderHW(GSHWDrawConfig& config) else if (config.destination_alpha == GSHWDrawConfig::DestinationAlphaMode::Depth) { PSSetShaderResource(2, draw_rt, true); - draw_rt = nullptr; + if ((draw_rt == m_current_render_target)) + Console.Warning("DATE RT SAME"); + else + Console.Warning("DATE RT NOT SAME"); + + draw_rt = (draw_rt == m_current_render_target) ? nullptr : m_current_render_target; OMSetRenderTargets(draw_rt, draw_ds, config.scissor, config.tex && config.tex == config.ds); } diff --git a/pcsx2/GS/Renderers/OpenGL/GSDeviceOGL.cpp b/pcsx2/GS/Renderers/OpenGL/GSDeviceOGL.cpp index 316fcea641..d4dbde48bb 100644 --- a/pcsx2/GS/Renderers/OpenGL/GSDeviceOGL.cpp +++ b/pcsx2/GS/Renderers/OpenGL/GSDeviceOGL.cpp @@ -2631,7 +2631,7 @@ void GSDeviceOGL::RenderHW(GSHWDrawConfig& config) else if (config.destination_alpha == GSHWDrawConfig::DestinationAlphaMode::Depth) { PSSetShaderResource(2, config.rt); - config.rt = nullptr; + config.rt = (config.rt == GLState::rt) ? nullptr : GLState::rt; OMSetRenderTargets(config.rt, config.ds, &config.scissor); } diff --git a/pcsx2/GS/Renderers/Vulkan/GSDeviceVK.cpp b/pcsx2/GS/Renderers/Vulkan/GSDeviceVK.cpp index 993a7fe2d5..005322afc9 100644 --- a/pcsx2/GS/Renderers/Vulkan/GSDeviceVK.cpp +++ b/pcsx2/GS/Renderers/Vulkan/GSDeviceVK.cpp @@ -5716,8 +5716,8 @@ void GSDeviceVK::RenderHW(GSHWDrawConfig& config) break; case GSHWDrawConfig::DestinationAlphaMode::Depth: - PSSetShaderResource(2, config.rt, true); - draw_rt = nullptr; + PSSetShaderResource(2, draw_rt, true); + draw_rt = (draw_rt == m_current_render_target) ? nullptr : m_current_render_target; OMSetRenderTargets(draw_rt, draw_ds, config.scissor, static_cast(pipe.feedback_loop_flags)); break; }