Explorar el Código

Fix off by one error in pages count calculation on GPU pool (#1511)

gdkchan hace 5 años
padre
commit
09341dc11d
Se han modificado 1 ficheros con 6 adiciones y 1 borrados
  1. 6 1
      Ryujinx.Graphics.Gpu/Image/Pool.cs

+ 6 - 1
Ryujinx.Graphics.Gpu/Image/Pool.cs

@@ -1,3 +1,4 @@
+using Ryujinx.Common;
 using Ryujinx.Graphics.Gpu.Memory;
 using System;
 
@@ -49,7 +50,11 @@ namespace Ryujinx.Graphics.Gpu.Image
             Address = address;
             Size    = size;
 
-            _modifiedRanges = new (ulong, ulong)[size / PhysicalMemory.PageSize];
+            ulong endAddress = BitUtils.AlignUp(Address + Size, PhysicalMemory.PageSize);
+
+            ulong pagesCount = (endAddress - BitUtils.AlignDown(Address, PhysicalMemory.PageSize)) / PhysicalMemory.PageSize;
+
+            _modifiedRanges = new (ulong, ulong)[pagesCount];
         }
 
         /// <summary>