From fa6e1b09497dffc02b619e50991375d593889f74 Mon Sep 17 00:00:00 2001 From: lightningterror <18107717+lightningterror@users.noreply.github.com> Date: Thu, 22 Jan 2026 13:14:15 +0100 Subject: [PATCH] GS/DX12: Don't end render passes on enhanced barriers. --- pcsx2/GS/Renderers/DX12/GSDevice12.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pcsx2/GS/Renderers/DX12/GSDevice12.cpp b/pcsx2/GS/Renderers/DX12/GSDevice12.cpp index c24a89be43..5563eab7c2 100644 --- a/pcsx2/GS/Renderers/DX12/GSDevice12.cpp +++ b/pcsx2/GS/Renderers/DX12/GSDevice12.cpp @@ -3992,10 +3992,6 @@ GSTexture12* GSDevice12::SetupPrimitiveTrackingDATE(GSHWDrawConfig& config, Pipe void GSDevice12::FeedbackBarrier(const GSTexture12* texture) { - // The DX12 spec notes "You may not read from, or consume, a write that occurred within the same render pass". - // The only exception being the implicit reads for render target blending or depth testing. - // Thus, in addition to a barrier, we need to end the render pass. - EndRenderPass(); if (m_enhanced_barriers) { // Enhanced barriers allows for single resource feedback. @@ -4008,6 +4004,10 @@ void GSDevice12::FeedbackBarrier(const GSTexture12* texture) } else { + // The DX12 spec notes "You may not read from, or consume, a write that occurred within the same render pass". + // The only exception being the implicit reads for render target blending or depth testing. + // Thus, in addition to a barrier, we need to end the render pass. + EndRenderPass(); // Specify null for the after resource as both resources are used after the barrier. // While this may also be true before the barrier, we only write using the main resource. D3D12_RESOURCE_BARRIER barrier = {D3D12_RESOURCE_BARRIER_TYPE_ALIASING, D3D12_RESOURCE_BARRIER_FLAG_NONE};