From 5b3662b793b3a34acc12c45c3c1691b7302d4b1d Mon Sep 17 00:00:00 2001 From: gdkchan Date: Tue, 14 Nov 2023 23:24:42 -0300 Subject: [PATCH] Disable DMA GPU copy for block linear to linear copies (#5927) * Disable DMA GPU copy for block linear to linear copies * Simplify check * PR feedback --- src/Ryujinx.Graphics.Gpu/Engine/Dma/DmaClass.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/Ryujinx.Graphics.Gpu/Engine/Dma/DmaClass.cs b/src/Ryujinx.Graphics.Gpu/Engine/Dma/DmaClass.cs index e6557780b..199cc423e 100644 --- a/src/Ryujinx.Graphics.Gpu/Engine/Dma/DmaClass.cs +++ b/src/Ryujinx.Graphics.Gpu/Engine/Dma/DmaClass.cs @@ -279,7 +279,11 @@ namespace Ryujinx.Graphics.Gpu.Engine.Dma bool completeSource = IsTextureCopyComplete(src, srcLinear, srcBpp, srcStride, xCount, yCount); bool completeDest = IsTextureCopyComplete(dst, dstLinear, dstBpp, dstStride, xCount, yCount); - if (completeSource && completeDest) + // Try to set the texture data directly, + // but only if we are doing a complete copy, + // and not for block linear to linear copies, since those are typically accessed from the CPU. + + if (completeSource && completeDest && !(dstLinear && !srcLinear)) { var target = memoryManager.Physical.TextureCache.FindTexture( memoryManager,