Kaynağa Gözat

vk: regression: potentially fix various random graphical anomalies

Evan Husted 1 yıl önce
ebeveyn
işleme
845dd9a8db

+ 7 - 3
src/Ryujinx.Graphics.Vulkan/BufferMirrorRangeList.cs

@@ -168,13 +168,15 @@ namespace Ryujinx.Graphics.Vulkan
             return BinarySearch(list, offset, size) >= 0;
             return BinarySearch(list, offset, size) >= 0;
         }
         }
 
 
-        public readonly IEnumerable<Range> FindOverlaps(int offset, int size)
+        public readonly List<Range> FindOverlaps(int offset, int size)
         {
         {
             var list = _ranges;
             var list = _ranges;
             if (list == null)
             if (list == null)
             {
             {
-                yield break;
+                return null;
             }
             }
+            
+            List<Range> result = null;
 
 
             int index = BinarySearch(list, offset, size);
             int index = BinarySearch(list, offset, size);
 
 
@@ -187,10 +189,12 @@ namespace Ryujinx.Graphics.Vulkan
 
 
                 do
                 do
                 {
                 {
-                    yield return list[index++];
+                    (result ??= []).Add(list[index++]);
                 }
                 }
                 while (index < list.Count && list[index].OverlapsWith(offset, size));
                 while (index < list.Count && list[index].OverlapsWith(offset, size));
             }
             }
+
+            return result;
         }
         }
 
 
         private static int BinarySearch(List<Range> list, int offset, int size)
         private static int BinarySearch(List<Range> list, int offset, int size)