From 651d8a4a7d80bd050738fdd442dc318a95ed133c Mon Sep 17 00:00:00 2001 From: "Unknown W. Brackets" Date: Sat, 14 Jun 2014 13:20:48 -0700 Subject: [PATCH] Support inter-buffer memcpy transfer. Seeing some games using it like 3rd Birthday uses block transfers, to copy a frame to the other buffer. --- GPU/GLES/Framebuffer.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/GPU/GLES/Framebuffer.cpp b/GPU/GLES/Framebuffer.cpp index 48204a1daa..9ed88769f6 100644 --- a/GPU/GLES/Framebuffer.cpp +++ b/GPU/GLES/Framebuffer.cpp @@ -2073,11 +2073,12 @@ bool FramebufferManager::NotifyFramebufferCopy(u32 src, u32 dst, int size, bool if (srcBuffer == dstBuffer) { WARN_LOG_REPORT_ONCE(dstsrccpy, G3D, "Intra-buffer memcpy (not supported) %08x -> %08x", src, dst); } else { - WARN_LOG_REPORT_ONCE(dstnotsrccpy, G3D, "Inter-buffer memcpy (not supported) %08x -> %08x", src, dst); + WARN_LOG_REPORT_ONCE(dstnotsrccpy, G3D, "Inter-buffer memcpy %08x -> %08x", src, dst); // Just do the blit! - // if (g_Config.bBlockTransferGPU) { - // BlitFramebuffer_(dstBuffer, 0, 0, srcBuffer, 0, 0, srcBuffer->width, srcBuffer->height, 0); - // } + if (g_Config.bBlockTransferGPU) { + BlitFramebuffer_(dstBuffer, 0, dstY, srcBuffer, 0, srcY, srcBuffer->width, srcH, 0); + SetColorUpdated(dstBuffer); + } } return false; } else if (dstBuffer) {