Compare commits
1 commit
6653826530
...
8009836f0e
Author | SHA1 | Date | |
---|---|---|---|
|
8009836f0e |
3 changed files with 27 additions and 54 deletions
|
@ -667,36 +667,8 @@ namespace Ryujinx.Graphics.Vulkan
|
||||||
|
|
||||||
if (PrepareOutputBuffer(cbs, hostSize, buffer, out VkBuffer copyToBuffer, out BufferHolder tempCopyHolder))
|
if (PrepareOutputBuffer(cbs, hostSize, buffer, out VkBuffer copyToBuffer, out BufferHolder tempCopyHolder))
|
||||||
{
|
{
|
||||||
// No barrier necessary, as this is a temporary copy buffer.
|
|
||||||
offset = 0;
|
offset = 0;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
BufferHolder.InsertBufferBarrier(
|
|
||||||
_gd,
|
|
||||||
cbs.CommandBuffer,
|
|
||||||
copyToBuffer,
|
|
||||||
BufferHolder.DefaultAccessFlags,
|
|
||||||
AccessFlags.TransferWriteBit,
|
|
||||||
PipelineStageFlags.AllCommandsBit,
|
|
||||||
PipelineStageFlags.TransferBit,
|
|
||||||
offset,
|
|
||||||
outSize);
|
|
||||||
}
|
|
||||||
|
|
||||||
InsertImageBarrier(
|
|
||||||
_gd.Api,
|
|
||||||
cbs.CommandBuffer,
|
|
||||||
image,
|
|
||||||
TextureStorage.DefaultAccessMask,
|
|
||||||
AccessFlags.TransferReadBit,
|
|
||||||
PipelineStageFlags.AllCommandsBit,
|
|
||||||
PipelineStageFlags.TransferBit,
|
|
||||||
Info.Format.ConvertAspectFlags(),
|
|
||||||
FirstLayer + layer,
|
|
||||||
FirstLevel + level,
|
|
||||||
1,
|
|
||||||
1);
|
|
||||||
|
|
||||||
CopyFromOrToBuffer(cbs.CommandBuffer, copyToBuffer, image, hostSize, true, layer, level, 1, 1, singleSlice: true, offset, stride);
|
CopyFromOrToBuffer(cbs.CommandBuffer, copyToBuffer, image, hostSize, true, layer, level, 1, 1, singleSlice: true, offset, stride);
|
||||||
|
|
||||||
|
@ -705,19 +677,6 @@ namespace Ryujinx.Graphics.Vulkan
|
||||||
CopyDataToOutputBuffer(cbs, tempCopyHolder, autoBuffer, hostSize, range.Offset);
|
CopyDataToOutputBuffer(cbs, tempCopyHolder, autoBuffer, hostSize, range.Offset);
|
||||||
tempCopyHolder.Dispose();
|
tempCopyHolder.Dispose();
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
BufferHolder.InsertBufferBarrier(
|
|
||||||
_gd,
|
|
||||||
cbs.CommandBuffer,
|
|
||||||
copyToBuffer,
|
|
||||||
AccessFlags.TransferWriteBit,
|
|
||||||
BufferHolder.DefaultAccessFlags,
|
|
||||||
PipelineStageFlags.TransferBit,
|
|
||||||
PipelineStageFlags.AllCommandsBit,
|
|
||||||
offset,
|
|
||||||
outSize);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private ReadOnlySpan<byte> GetData(CommandBufferPool cbp, PersistentFlushBuffer flushBuffer)
|
private ReadOnlySpan<byte> GetData(CommandBufferPool cbp, PersistentFlushBuffer flushBuffer)
|
||||||
|
|
|
@ -1,20 +1,21 @@
|
||||||
|
using LibHac.Ns;
|
||||||
using Ryujinx.Ava.Common.Locale;
|
using Ryujinx.Ava.Common.Locale;
|
||||||
|
|
||||||
namespace Ryujinx.Ava.UI.Models
|
namespace Ryujinx.Ava.UI.Models
|
||||||
{
|
{
|
||||||
public class TitleUpdateModel
|
public class TitleUpdateModel
|
||||||
{
|
{
|
||||||
public uint Version { get; }
|
public ApplicationControlProperty Control { get; }
|
||||||
public string Path { get; }
|
public string Path { get; }
|
||||||
public string Label { get; }
|
|
||||||
|
|
||||||
public TitleUpdateModel(uint version, string displayVersion, string path)
|
public string Label => LocaleManager.Instance.UpdateAndGetDynamicValue(
|
||||||
{
|
System.IO.Path.GetExtension(Path)?.ToLower() == ".xci" ? LocaleKeys.TitleBundledUpdateVersionLabel : LocaleKeys.TitleUpdateVersionLabel,
|
||||||
Version = version;
|
Control.DisplayVersionString.ToString()
|
||||||
Label = LocaleManager.Instance.UpdateAndGetDynamicValue(
|
|
||||||
System.IO.Path.GetExtension(path)?.ToLower() == ".xci" ? LocaleKeys.TitleBundledUpdateVersionLabel : LocaleKeys.TitleUpdateVersionLabel,
|
|
||||||
displayVersion
|
|
||||||
);
|
);
|
||||||
|
|
||||||
|
public TitleUpdateModel(ApplicationControlProperty control, string path)
|
||||||
|
{
|
||||||
|
Control = control;
|
||||||
Path = path;
|
Path = path;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -131,11 +131,26 @@ namespace Ryujinx.Ava.UI.ViewModels
|
||||||
|
|
||||||
public void SortUpdates()
|
public void SortUpdates()
|
||||||
{
|
{
|
||||||
var sortedUpdates = TitleUpdates.OrderByDescending(update => update.Version);
|
var list = TitleUpdates.ToList();
|
||||||
|
|
||||||
|
list.Sort((first, second) =>
|
||||||
|
{
|
||||||
|
if (string.IsNullOrEmpty(first.Control.DisplayVersionString.ToString()))
|
||||||
|
{
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (string.IsNullOrEmpty(second.Control.DisplayVersionString.ToString()))
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return Version.Parse(first.Control.DisplayVersionString.ToString()).CompareTo(Version.Parse(second.Control.DisplayVersionString.ToString())) * -1;
|
||||||
|
});
|
||||||
|
|
||||||
Views.Clear();
|
Views.Clear();
|
||||||
Views.Add(new BaseModel());
|
Views.Add(new BaseModel());
|
||||||
Views.AddRange(sortedUpdates);
|
Views.AddRange(list);
|
||||||
|
|
||||||
if (SelectedUpdate == null)
|
if (SelectedUpdate == null)
|
||||||
{
|
{
|
||||||
|
@ -189,9 +204,7 @@ namespace Ryujinx.Ava.UI.ViewModels
|
||||||
controlNca.OpenFileSystem(NcaSectionType.Data, IntegrityCheckLevel.None).OpenFile(ref nacpFile.Ref, "/control.nacp".ToU8Span(), OpenMode.Read).ThrowIfFailure();
|
controlNca.OpenFileSystem(NcaSectionType.Data, IntegrityCheckLevel.None).OpenFile(ref nacpFile.Ref, "/control.nacp".ToU8Span(), OpenMode.Read).ThrowIfFailure();
|
||||||
nacpFile.Get.Read(out _, 0, SpanHelpers.AsByteSpan(ref controlData), ReadOption.None).ThrowIfFailure();
|
nacpFile.Get.Read(out _, 0, SpanHelpers.AsByteSpan(ref controlData), ReadOption.None).ThrowIfFailure();
|
||||||
|
|
||||||
var displayVersion = controlData.DisplayVersionString.ToString();
|
var update = new TitleUpdateModel(controlData, path);
|
||||||
var update = new TitleUpdateModel(content.Version.Version, displayVersion, path);
|
|
||||||
|
|
||||||
TitleUpdates.Add(update);
|
TitleUpdates.Add(update);
|
||||||
|
|
||||||
if (selected)
|
if (selected)
|
||||||
|
|
Loading…
Add table
Reference in a new issue