Compare commits

...

5 Commits

Author SHA1 Message Date
Evan Husted
845dd9a8db vk: regression: potentially fix various random graphical anomalies 2025-01-05 22:25:05 -06:00
Evan Husted
b661bdd997 Revert "infra: feat: XML Solution"
This reverts commit cc84041270.
2025-01-05 16:41:08 -06:00
Evan Husted
cc84041270 infra: feat: XML Solution 2025-01-05 16:33:44 -06:00
Evan Husted
987ab9be41 Fix part 2 2025-01-05 16:03:34 -06:00
Evan Husted
8a2bc3957a UI: fix: new updates not being autoloaded 2025-01-05 15:45:01 -06:00
2 changed files with 15 additions and 8 deletions

View File

@@ -168,14 +168,16 @@ 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);
if (index >= 0) if (index >= 0)
@@ -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)

View File

@@ -1,4 +1,5 @@
using DynamicData; using DynamicData;
using DynamicData.Kernel;
using Gommon; using Gommon;
using LibHac; using LibHac;
using LibHac.Common; using LibHac.Common;
@@ -1069,10 +1070,11 @@ namespace Ryujinx.Ava.Utilities.AppLibrary
{ {
if (update == null) return false; if (update == null) return false;
var currentlySelected = TitleUpdates.Items.FindFirst(it => var currentlySelected = TitleUpdates.Items.FirstOrOptional(it =>
it.TitleUpdate.TitleIdBase == update.TitleIdBase && it.IsSelected); it.TitleUpdate.TitleIdBase == update.TitleIdBase && it.IsSelected);
var shouldSelect = currentlySelected.Check(curr => curr.TitleUpdate?.Version < update.Version); var shouldSelect = !currentlySelected.HasValue ||
currentlySelected.Value.TitleUpdate.Version < update.Version;
_titleUpdates.AddOrUpdate((update, shouldSelect)); _titleUpdates.AddOrUpdate((update, shouldSelect));
@@ -1463,7 +1465,7 @@ namespace Ryujinx.Ava.Utilities.AppLibrary
TitleUpdatesHelper.LoadTitleUpdatesJson(_virtualFileSystem, application.IdBase); TitleUpdatesHelper.LoadTitleUpdatesJson(_virtualFileSystem, application.IdBase);
it.AddOrUpdate(savedUpdates); it.AddOrUpdate(savedUpdates);
var selectedUpdate = savedUpdates.FindFirst(update => update.IsSelected); var selectedUpdate = savedUpdates.FirstOrOptional(update => update.IsSelected);
if (TryGetTitleUpdatesFromFile(application.Path, out var bundledUpdates)) if (TryGetTitleUpdatesFromFile(application.Path, out var bundledUpdates))
{ {
@@ -1475,10 +1477,11 @@ namespace Ryujinx.Ava.Utilities.AppLibrary
if (!savedUpdateLookup.Contains(update)) if (!savedUpdateLookup.Contains(update))
{ {
bool shouldSelect = false; bool shouldSelect = false;
if (selectedUpdate.Check(su => su.Update?.Version < update.Version)) if (!selectedUpdate.HasValue || selectedUpdate.Value.Item1.Version < update.Version)
{ {
shouldSelect = true; shouldSelect = true;
_titleUpdates.AddOrUpdate((selectedUpdate.Value.Update, false)); if (selectedUpdate.HasValue)
_titleUpdates.AddOrUpdate((selectedUpdate.Value.Update, false));
selectedUpdate = (update, true); selectedUpdate = (update, true);
} }