diff options
Diffstat (limited to 'Ryujinx.Graphics.Gpu/Memory/Buffer.cs')
-rw-r--r-- | Ryujinx.Graphics.Gpu/Memory/Buffer.cs | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/Ryujinx.Graphics.Gpu/Memory/Buffer.cs b/Ryujinx.Graphics.Gpu/Memory/Buffer.cs index 842249f3..a624386e 100644 --- a/Ryujinx.Graphics.Gpu/Memory/Buffer.cs +++ b/Ryujinx.Graphics.Gpu/Memory/Buffer.cs @@ -470,19 +470,16 @@ namespace Ryujinx.Graphics.Gpu.Memory return false; } - if (address < Address) - { - address = Address; - } + ulong maxAddress = Math.Max(address, Address); + ulong minEndAddress = Math.Min(address + size, Address + Size); - ulong maxSize = Address + Size - address; - - if (size > maxSize) + if (maxAddress >= minEndAddress) { - size = maxSize; + // Access doesn't overlap. + return false; } - ForceDirty(address, size); + ForceDirty(maxAddress, minEndAddress - maxAddress); return true; } |