From 928b5694ede76d1687d17e2a18d334bf16519a13 Mon Sep 17 00:00:00 2001
From: Connor McLaughlin <stenzek@gmail.com>
Date: Sun, 11 Jul 2021 14:07:33 +1000
Subject: [PATCH] GPU/D3D12: Fix VRAM getting trashed on interlace switch

---
 src/core/gpu_hw_d3d12.cpp | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/core/gpu_hw_d3d12.cpp b/src/core/gpu_hw_d3d12.cpp
index 237880dc3..6680b6f61 100644
--- a/src/core/gpu_hw_d3d12.cpp
+++ b/src/core/gpu_hw_d3d12.cpp
@@ -755,8 +755,11 @@ void GPU_HW_D3D12::ClearDisplay()
 {
   GPU_HW::ClearDisplay();
 
+  m_host_display->ClearDisplayTexture();
+
   static constexpr float clear_color[4] = {0.0f, 0.0f, 0.0f, 1.0f};
-  g_d3d12_context->GetCommandList()->ClearRenderTargetView(m_vram_texture.GetRTVOrDSVDescriptor(), clear_color, 0,
+  m_display_texture.TransitionToState(D3D12_RESOURCE_STATE_RENDER_TARGET);
+  g_d3d12_context->GetCommandList()->ClearRenderTargetView(m_display_texture.GetRTVOrDSVDescriptor(), clear_color, 0,
                                                            nullptr);
 }