From 53600746c705d208a4b237303a2523f66f2988c5 Mon Sep 17 00:00:00 2001 From: Stenzek Date: Fri, 31 May 2024 19:48:44 +1000 Subject: [PATCH] GPU: Cancel VRAM writes on Reset --- src/core/gpu.cpp | 3 +++ src/core/gpu_hw.cpp | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/core/gpu.cpp b/src/core/gpu.cpp index f5416862e..fdd358e8a 100644 --- a/src/core/gpu.cpp +++ b/src/core/gpu.cpp @@ -180,6 +180,9 @@ void GPU::Reset(bool clear_vram) std::memset(g_gpu_clut, 0, sizeof(g_gpu_clut)); } + // Cancel VRAM writes. + m_blitter_state = BlitterState::Idle; + // Force event to reschedule itself. m_crtc_tick_event->Deactivate(); m_command_tick_event->Deactivate(); diff --git a/src/core/gpu_hw.cpp b/src/core/gpu_hw.cpp index 19e7dfd48..003ed6b7f 100644 --- a/src/core/gpu_hw.cpp +++ b/src/core/gpu_hw.cpp @@ -232,11 +232,11 @@ bool GPU_HW::Initialize() void GPU_HW::Reset(bool clear_vram) { - GPU::Reset(clear_vram); - if (m_batch_vertex_ptr) UnmapGPUBuffer(0, 0); + GPU::Reset(clear_vram); + if (m_sw_renderer) m_sw_renderer->Reset();