From f35af5f703d1011bfb401972813f3d12d9a4a385 Mon Sep 17 00:00:00 2001 From: riperiperi Date: Sat, 29 Feb 2020 20:50:44 +0000 Subject: [PATCH] Reduce copy destination size by target mipmap level, rather than source size. (#959) * Change destination size by target mipmap level, rather than source. * Check dst for Texture3D rather than src. --- Ryujinx.Graphics.OpenGL/TextureCopyUnscaled.cs | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/Ryujinx.Graphics.OpenGL/TextureCopyUnscaled.cs b/Ryujinx.Graphics.OpenGL/TextureCopyUnscaled.cs index 2597214a2..cf13db8af 100644 --- a/Ryujinx.Graphics.OpenGL/TextureCopyUnscaled.cs +++ b/Ryujinx.Graphics.OpenGL/TextureCopyUnscaled.cs @@ -14,19 +14,19 @@ namespace Ryujinx.Graphics.OpenGL int srcDepth = src.DepthOrLayers; int srcLevels = src.Levels; - srcWidth = Math.Max(1, srcWidth >> dstLevel); - srcHeight = Math.Max(1, srcHeight >> dstLevel); - - if (src.Target == Target.Texture3D) - { - srcDepth = Math.Max(1, srcDepth >> dstLevel); - } - int dstWidth = dst.Width; int dstHeight = dst.Height; int dstDepth = dst.DepthOrLayers; int dstLevels = dst.Levels; + dstWidth = Math.Max(1, dstWidth >> dstLevel); + dstHeight = Math.Max(1, dstHeight >> dstLevel); + + if (dst.Target == Target.Texture3D) + { + dstDepth = Math.Max(1, dstDepth >> dstLevel); + } + // When copying from a compressed to a non-compressed format, // the non-compressed texture will have the size of the texture // in blocks (not in texels), so we must adjust that size to