From 91420a402c9e786ddef2811bb671003dd0a40565 Mon Sep 17 00:00:00 2001 From: gdkchan Date: Sat, 9 Jun 2018 00:46:06 -0300 Subject: Use source texture size when doing reads for texure copy --- Ryujinx.Core/Gpu/NvGpuEngine2d.cs | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) (limited to 'Ryujinx.Core/Gpu/NvGpuEngine2d.cs') diff --git a/Ryujinx.Core/Gpu/NvGpuEngine2d.cs b/Ryujinx.Core/Gpu/NvGpuEngine2d.cs index c419355e..fd19bc54 100644 --- a/Ryujinx.Core/Gpu/NvGpuEngine2d.cs +++ b/Ryujinx.Core/Gpu/NvGpuEngine2d.cs @@ -98,9 +98,19 @@ namespace Ryujinx.Core.Gpu if (IsFbTexture) { + //TODO: Change this when the correct frame buffer resolution is used. + //Currently, the frame buffer size is hardcoded to 1280x720. + SrcWidth = 1280; + SrcHeight = 720; + Gpu.Renderer.GetFrameBufferData(Tag, (byte[] Buffer) => { - CopyTexture(Vmm, DstTexture, Buffer); + CopyTexture( + Vmm, + DstTexture, + Buffer, + SrcWidth, + SrcHeight); }); } else @@ -109,13 +119,23 @@ namespace Ryujinx.Core.Gpu byte[] Buffer = Vmm.ReadBytes(SrcAddress, Size); - CopyTexture(Vmm, DstTexture, Buffer); + CopyTexture( + Vmm, + DstTexture, + Buffer, + SrcWidth, + SrcHeight); } } - private void CopyTexture(NvGpuVmm Vmm, Texture Texture, byte[] Buffer) + private void CopyTexture( + NvGpuVmm Vmm, + Texture Texture, + byte[] Buffer, + int Width, + int Height) { - TextureWriter.Write(Vmm, Texture, Buffer); + TextureWriter.Write(Vmm, Texture, Buffer, Width, Height); } private long MakeInt64From2xInt32(NvGpuEngine2dReg Reg) -- cgit v1.2.3