aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Graphics.Gpu/Memory/Buffer.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Ryujinx.Graphics.Gpu/Memory/Buffer.cs')
-rw-r--r--Ryujinx.Graphics.Gpu/Memory/Buffer.cs15
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;
}