Merge branch 'master' into ShaderTranslationDelayHack
This commit is contained in:
commit
afd0b6ad9a
@ -13,7 +13,7 @@ mkdir -p AppDir/usr/bin
|
|||||||
|
|
||||||
cp distribution/linux/Ryujinx.desktop AppDir/Ryujinx.desktop
|
cp distribution/linux/Ryujinx.desktop AppDir/Ryujinx.desktop
|
||||||
cp distribution/linux/appimage/AppRun AppDir/AppRun
|
cp distribution/linux/appimage/AppRun AppDir/AppRun
|
||||||
cp src/Ryujinx.UI.Common/Resources/Logo_Ryujinx.png AppDir/Ryujinx.svg
|
cp distribution/misc/Logo.svg AppDir/Ryujinx.svg
|
||||||
|
|
||||||
|
|
||||||
cp -r "$BUILDDIR"/* AppDir/usr/bin/
|
cp -r "$BUILDDIR"/* AppDir/usr/bin/
|
||||||
|
@ -9,20 +9,12 @@ namespace Ryujinx.Audio.Backends.Dummy
|
|||||||
{
|
{
|
||||||
public class DummyHardwareDeviceDriver : IHardwareDeviceDriver
|
public class DummyHardwareDeviceDriver : IHardwareDeviceDriver
|
||||||
{
|
{
|
||||||
private readonly ManualResetEvent _updateRequiredEvent;
|
private readonly ManualResetEvent _updateRequiredEvent = new(false);
|
||||||
private readonly ManualResetEvent _pauseEvent;
|
private readonly ManualResetEvent _pauseEvent = new(true);
|
||||||
|
|
||||||
public static bool IsSupported => true;
|
public static bool IsSupported => true;
|
||||||
|
|
||||||
public float Volume { get; set; }
|
public float Volume { get; set; } = 1f;
|
||||||
|
|
||||||
public DummyHardwareDeviceDriver()
|
|
||||||
{
|
|
||||||
_updateRequiredEvent = new ManualResetEvent(false);
|
|
||||||
_pauseEvent = new ManualResetEvent(true);
|
|
||||||
|
|
||||||
Volume = 1f;
|
|
||||||
}
|
|
||||||
|
|
||||||
public IHardwareDeviceSession OpenDeviceSession(Direction direction, IVirtualMemoryManager memoryManager, SampleFormat sampleFormat, uint sampleRate, uint channelCount)
|
public IHardwareDeviceSession OpenDeviceSession(Direction direction, IVirtualMemoryManager memoryManager, SampleFormat sampleFormat, uint sampleRate, uint channelCount)
|
||||||
{
|
{
|
||||||
@ -60,7 +52,7 @@ namespace Ryujinx.Audio.Backends.Dummy
|
|||||||
Dispose(true);
|
Dispose(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected virtual void Dispose(bool disposing)
|
private void Dispose(bool disposing)
|
||||||
{
|
{
|
||||||
if (disposing)
|
if (disposing)
|
||||||
{
|
{
|
||||||
|
@ -17,7 +17,7 @@ namespace Ryujinx.Common.Configuration
|
|||||||
|
|
||||||
public ulong Pack() => BitTricks.PackBitFields([(uint)Hack, (uint)Value], PackedFormat);
|
public ulong Pack() => BitTricks.PackBitFields([(uint)Hack, (uint)Value], PackedFormat);
|
||||||
|
|
||||||
public static EnabledDirtyHack FromPacked(ulong packedHack)
|
public static EnabledDirtyHack Unpack(ulong packedHack)
|
||||||
{
|
{
|
||||||
var unpackedFields = BitTricks.UnpackBitFields(packedHack, PackedFormat);
|
var unpackedFields = BitTricks.UnpackBitFields(packedHack, PackedFormat);
|
||||||
if (unpackedFields is not [var hack, var value])
|
if (unpackedFields is not [var hack, var value])
|
||||||
@ -39,7 +39,7 @@ namespace Ryujinx.Common.Configuration
|
|||||||
|
|
||||||
public DirtyHackCollection(ulong[] packedHacks)
|
public DirtyHackCollection(ulong[] packedHacks)
|
||||||
{
|
{
|
||||||
foreach ((DirtyHacks dirtyHacks, int value) in packedHacks.Select(EnabledDirtyHack.FromPacked))
|
foreach ((DirtyHacks dirtyHacks, int value) in packedHacks.Select(EnabledDirtyHack.Unpack))
|
||||||
{
|
{
|
||||||
Add(dirtyHacks, value);
|
Add(dirtyHacks, value);
|
||||||
}
|
}
|
||||||
|
@ -301,6 +301,8 @@ namespace Ryujinx.Ava.UI.ViewModels
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public string ShaderTranslationDelayTooltipText => $"Current value: {ShaderTranslationDelay}";
|
||||||
|
|
||||||
public int ShaderTranslationDelay
|
public int ShaderTranslationDelay
|
||||||
{
|
{
|
||||||
get => _shaderTranslationSleepDelay;
|
get => _shaderTranslationSleepDelay;
|
||||||
@ -308,7 +310,7 @@ namespace Ryujinx.Ava.UI.ViewModels
|
|||||||
{
|
{
|
||||||
_shaderTranslationSleepDelay = value;
|
_shaderTranslationSleepDelay = value;
|
||||||
|
|
||||||
OnPropertyChanged();
|
OnPropertiesChanged(nameof(ShaderTranslationDelay), nameof(ShaderTranslationDelayTooltipText));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -56,7 +56,7 @@
|
|||||||
</StackPanel>
|
</StackPanel>
|
||||||
<Slider HorizontalAlignment="Center"
|
<Slider HorizontalAlignment="Center"
|
||||||
Value="{Binding ShaderTranslationDelay}"
|
Value="{Binding ShaderTranslationDelay}"
|
||||||
ToolTip.Tip="{Binding ShaderTranslationDelay}"
|
ToolTip.Tip="{Binding ShaderTranslationDelayTooltipText}"
|
||||||
Width="175"
|
Width="175"
|
||||||
Margin="0,-3,0,0"
|
Margin="0,-3,0,0"
|
||||||
Height="32"
|
Height="32"
|
||||||
|
@ -752,11 +752,12 @@ namespace Ryujinx.Ava.Utilities.Configuration
|
|||||||
Hacks.ShowDirtyHacks.Value = configurationFileFormat.ShowDirtyHacks;
|
Hacks.ShowDirtyHacks.Value = configurationFileFormat.ShowDirtyHacks;
|
||||||
|
|
||||||
{
|
{
|
||||||
EnabledDirtyHack[] hacks = (configurationFileFormat.DirtyHacks ?? []).Select(EnabledDirtyHack.FromPacked).ToArray();
|
EnabledDirtyHack[] hacks = (configurationFileFormat.DirtyHacks ?? []).Select(EnabledDirtyHack.Unpack).ToArray();
|
||||||
|
|
||||||
Hacks.Xc2MenuSoftlockFix.Value = hacks.Any(it => it.Hack == DirtyHacks.Xc2MenuSoftlockFix);
|
Hacks.Xc2MenuSoftlockFix.Value = hacks.Any(it => it.Hack == DirtyHacks.Xc2MenuSoftlockFix);
|
||||||
|
|
||||||
var shaderCompilationThreadSleep = hacks.FirstOrDefault(it => it.Hack == DirtyHacks.ShaderCompilationThreadSleep);
|
var shaderCompilationThreadSleep = hacks.FirstOrDefault(it =>
|
||||||
|
it.Hack == DirtyHacks.ShaderCompilationThreadSleep);
|
||||||
Hacks.EnableShaderCompilationThreadSleep.Value = shaderCompilationThreadSleep != null;
|
Hacks.EnableShaderCompilationThreadSleep.Value = shaderCompilationThreadSleep != null;
|
||||||
Hacks.ShaderCompilationThreadSleepDelay.Value = shaderCompilationThreadSleep?.Value ?? 0;
|
Hacks.ShaderCompilationThreadSleepDelay.Value = shaderCompilationThreadSleep?.Value ?? 0;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user