diff --git a/rpcs3/Emu/RSX/D3D12/D3D12RenderTargetSets.cpp b/rpcs3/Emu/RSX/D3D12/D3D12RenderTargetSets.cpp index 7faab5c99b..f131d0b102 100644 --- a/rpcs3/Emu/RSX/D3D12/D3D12RenderTargetSets.cpp +++ b/rpcs3/Emu/RSX/D3D12/D3D12RenderTargetSets.cpp @@ -15,11 +15,11 @@ void D3D12GSRender::PrepareRenderTargets() { // FBO location has changed, previous data might be copied - u32 address_a = GetAddress(m_surface_offset_a, m_context_dma_color_a - 0xfeed0000); - u32 address_b = GetAddress(m_surface_offset_b, m_context_dma_color_b - 0xfeed0000); - u32 address_c = GetAddress(m_surface_offset_c, m_context_dma_color_c - 0xfeed0000); - u32 address_d = GetAddress(m_surface_offset_d, m_context_dma_color_d - 0xfeed0000); - u32 address_z = GetAddress(m_surface_offset_z, m_context_dma_z - 0xfeed0000); + u32 address_a = m_set_context_dma_color_a ? GetAddress(m_surface_offset_a, m_context_dma_color_a - 0xfeed0000) : 0; + u32 address_b = m_set_context_dma_color_b ? GetAddress(m_surface_offset_b, m_context_dma_color_b - 0xfeed0000) : 0; + u32 address_c = m_set_context_dma_color_c ? GetAddress(m_surface_offset_c, m_context_dma_color_c - 0xfeed0000) : 0; + u32 address_d = m_set_context_dma_color_d ? GetAddress(m_surface_offset_d, m_context_dma_color_d - 0xfeed0000) : 0; + u32 address_z = m_set_context_dma_z ? GetAddress(m_surface_offset_z, m_context_dma_z - 0xfeed0000) : 0; ID3D12GraphicsCommandList *copycmdlist; check(m_device->CreateCommandList(0, D3D12_COMMAND_LIST_TYPE_DIRECT, getCurrentResourceStorage().m_commandAllocator, nullptr, IID_PPV_ARGS(©cmdlist)));