diff options
author | gdkchan <gab.dark.100@gmail.com> | 2023-11-14 23:24:42 -0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-11-14 23:24:42 -0300 |
commit | 5b3662b793b3a34acc12c45c3c1691b7302d4b1d (patch) | |
tree | d4abe7f35b329b751376933606621191a3233a3d /src | |
parent | 1329c47ea46d3fa152dabe02cff82db84429545a (diff) |
Disable DMA GPU copy for block linear to linear copies (#5927)1.1.1083
* Disable DMA GPU copy for block linear to linear copies
* Simplify check
* PR feedback
Diffstat (limited to 'src')
-rw-r--r-- | src/Ryujinx.Graphics.Gpu/Engine/Dma/DmaClass.cs | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/Ryujinx.Graphics.Gpu/Engine/Dma/DmaClass.cs b/src/Ryujinx.Graphics.Gpu/Engine/Dma/DmaClass.cs index e6557780..199cc423 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, |