From 7081c2de65ded60fb59b44009a5b5a07201f6fcb Mon Sep 17 00:00:00 2001 From: RSDuck Date: Thu, 7 Jan 2021 22:39:36 +0100 Subject: [PATCH] readd vram invalidation through display capture also remove stray printf --- src/GPU.cpp | 1 - src/GPU2D_Soft.cpp | 6 +++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/GPU.cpp b/src/GPU.cpp index 2b61b4c8..f490f84c 100644 --- a/src/GPU.cpp +++ b/src/GPU.cpp @@ -1178,7 +1178,6 @@ NonStupidBitField VRAMTrackingSet(i*VRAMBitsPerMapping, VRAMBitsPerMapping); banksToBeZeroed |= currentMappings[i]; Mapping[i] = currentMappings[i]; diff --git a/src/GPU2D_Soft.cpp b/src/GPU2D_Soft.cpp index c686bad7..16d9cab3 100644 --- a/src/GPU2D_Soft.cpp +++ b/src/GPU2D_Soft.cpp @@ -372,9 +372,6 @@ void GPU2D_Soft::DoCapture(u32 line, u32 width) u16* dst = (u16*)GPU::VRAM[dstvram]; u32 dstaddr = (((CaptureCnt >> 18) & 0x3) << 14) + (line * width); - static_assert(GPU::VRAMDirtyGranularity == 512); - GPU::VRAMDirty[dstvram][(dstaddr & 0x1FFFF) / GPU::VRAMDirtyGranularity] = true; - // TODO: handle 3D in accelerated mode!! u32* srcA; @@ -467,6 +464,9 @@ void GPU2D_Soft::DoCapture(u32 line, u32 width) dstaddr &= 0xFFFF; srcBaddr &= 0xFFFF; + static_assert(GPU::VRAMDirtyGranularity == 512); + GPU::VRAMDirty[dstvram][(dstaddr * 2) / GPU::VRAMDirtyGranularity] = true; + switch ((CaptureCnt >> 29) & 0x3) { case 0: // source A