mirror of
https://git.ryujinx.app/ryubing/ryujinx.git
synced 2025-04-24 06:47:44 +02:00
Merge branch 'master_Tweaks' into 'master'
Added: Fix Occlusion Culling See merge request ryubing/ryujinx!18
This commit is contained in:
commit
e1cd6b777a
15 changed files with 2844 additions and 2576 deletions
|
@ -22047,6 +22047,81 @@
|
||||||
"zh_TW": "選擇將與 Vulkan 圖形後端一起使用的顯示卡。\n\n不會影響 OpenGL 將使用的 GPU。\n\n如果不確定,請設定為標記為「dGPU」的 GPU。如果沒有,則保持原狀。"
|
"zh_TW": "選擇將與 Vulkan 圖形後端一起使用的顯示卡。\n\n不會影響 OpenGL 將使用的 GPU。\n\n如果不確定,請設定為標記為「dGPU」的 GPU。如果沒有,則保持原狀。"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"ID": "SettingsTabTweaks",
|
||||||
|
"Translations": {
|
||||||
|
"ar_SA": "باتشات",
|
||||||
|
"de_DE": "Tweaks",
|
||||||
|
"el_GR": "Patches",
|
||||||
|
"en_US": "Tweaks",
|
||||||
|
"es_ES": "Parches",
|
||||||
|
"fr_FR": "Patches",
|
||||||
|
"he_IL": "פאצ'ים",
|
||||||
|
"it_IT": "Tweaks",
|
||||||
|
"ja_JP": "パッチ",
|
||||||
|
"ko_KR": "패치",
|
||||||
|
"no_NO": "Patcher",
|
||||||
|
"pl_PL": "Tweak'i",
|
||||||
|
"pt_BR": "Patches",
|
||||||
|
"ru_RU": "Твики",
|
||||||
|
"sv_SE": "Patcher",
|
||||||
|
"th_TH": "แพตช์",
|
||||||
|
"tr_TR": "Tweaks",
|
||||||
|
"uk_UA": "Твіки",
|
||||||
|
"zh_CN": "补丁",
|
||||||
|
"zh_TW": "補丁"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ID": "SettingsTabTweaksTitle",
|
||||||
|
"Translations": {
|
||||||
|
"ar_SA": "باتشات: تجارب وتحديثات",
|
||||||
|
"de_DE": "Tweaks: Experimente & Patches",
|
||||||
|
"el_GR": "Patches: Πειράματα & Διορθώσεις",
|
||||||
|
"en_US": "Tweaks: Experiments & Patches",
|
||||||
|
"es_ES": "Parches: Experimentos y Ajustes",
|
||||||
|
"fr_FR": "Patches : Expériences et Corrections",
|
||||||
|
"he_IL": "פאצ'ים: ניסויים ותיקונים",
|
||||||
|
"it_IT": "Tweaks: Esperimenti e Patch",
|
||||||
|
"ja_JP": "パッチ: 実験と修正",
|
||||||
|
"ko_KR": "패치: 실험 및 수정",
|
||||||
|
"no_NO": "Patcher: Eksperimenter og Utbedringer",
|
||||||
|
"pl_PL": "Tweak'i: Eksperymenty i Łatki",
|
||||||
|
"pt_BR": "Patches: Experimentos e Correções",
|
||||||
|
"ru_RU": "Твики: Эксперименты и Патчи",
|
||||||
|
"sv_SE": "Patcher: Experiment och Korrigeringar",
|
||||||
|
"th_TH": "แพตช์: การทดลองและการแก้ไข",
|
||||||
|
"tr_TR": "Tweaks: Deneyler ve Yamalar",
|
||||||
|
"uk_UA": "Твіки: Експерименти та Патчі",
|
||||||
|
"zh_CN": "补丁:实验与修复",
|
||||||
|
"zh_TW": "補丁:實驗與修復"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ID": "SettingsTabTweaksDescription",
|
||||||
|
"Translations": {
|
||||||
|
"ar_SA": "تحذير! يجب تغيير هذه الخيارات فقط إذا كانت لعبتك لا تعمل بشكل صحيح.",
|
||||||
|
"de_DE": "Warnung! Diese Optionen sollten nur geändert werden, wenn dein Spiel nicht ordnungsgemäß funktioniert.",
|
||||||
|
"el_GR": "Προειδοποίηση! Αυτές οι ρυθμίσεις πρέπει να αλλάξουν μόνο αν το παιχνίδι σας δεν λειτουργεί σωστά.",
|
||||||
|
"en_US": "Warning! These options should only be changed if your game is not working properly.",
|
||||||
|
"es_ES": "Advertencia! Estas opciones deben cambiarse solo si tu juego no funciona correctamente.",
|
||||||
|
"fr_FR": "Avertissement! Ces options doivent être modifiées uniquement si votre jeu ne fonctionne pas correctement.",
|
||||||
|
"he_IL": "אזהרה! יש לשנות את האפשרויות הללו רק אם המשחק שלך לא פועל כראוי.",
|
||||||
|
"it_IT": "Avviso! Queste opzioni devono essere modificate solo se il tuo gioco non funziona correttamente.",
|
||||||
|
"ja_JP": "警告! ゲームが正常に動作しない場合にのみ、これらのオプションを変更してください。",
|
||||||
|
"ko_KR": "경고! 게임이 제대로 작동하지 않으면 이 옵션들을 변경해야 합니다.",
|
||||||
|
"no_NO": "Advarsel! Disse alternativene bør kun endres hvis spillet ditt ikke fungerer som det skal.",
|
||||||
|
"pl_PL": "Ostrzeżenie! Te opcje należy zmienić tylko wtedy, gdy twoja gra nie działa poprawnie.",
|
||||||
|
"pt_BR": "Aviso! Essas opções devem ser alteradas apenas se o seu jogo não estiver funcionando corretamente.",
|
||||||
|
"ru_RU": "Предупреждение! Эти параметры следует изменить только в случае, если ваша игра работает неправильно.",
|
||||||
|
"sv_SE": "Varning! Dessa alternativ bör endast ändras om ditt spel inte fungerar som det ska.",
|
||||||
|
"th_TH": "คำเตือน! ควรเปลี่ยนตัวเลือกเหล่านี้เฉพาะในกรณีที่เกมของคุณทำงานไม่ถูกต้อง.",
|
||||||
|
"tr_TR": "Uyarı! Bu seçenekler, oyununuz düzgün çalışmıyorsa yalnızca değiştirilmelidir.",
|
||||||
|
"uk_UA": "Попередження! Ці налаштування слід змінити лише в тому випадку, якщо ваша гра не працює належним чином.",
|
||||||
|
"zh_CN": "警告! 只有在游戏无法正常运行的情况下,请更改这些选项。",
|
||||||
|
"zh_TW": "警告! 只有當遊戲無法正常運行時,請更改這些選項。"
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"ID": "SettingsAppRequiredRestartMessage",
|
"ID": "SettingsAppRequiredRestartMessage",
|
||||||
"Translations": {
|
"Translations": {
|
||||||
|
@ -24621,6 +24696,56 @@
|
||||||
"zh_CN": "动态 Rich Presence",
|
"zh_CN": "动态 Rich Presence",
|
||||||
"zh_TW": "動態 Rich Presence"
|
"zh_TW": "動態 Rich Presence"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ID": "FixOcclusionCulling",
|
||||||
|
"Translations": {
|
||||||
|
"ar_SA": "",
|
||||||
|
"de_DE": "",
|
||||||
|
"el_GR": "",
|
||||||
|
"en_US": "Fix Occlusion Culling - flickering of objects.",
|
||||||
|
"es_ES": "",
|
||||||
|
"fr_FR": "",
|
||||||
|
"he_IL": "",
|
||||||
|
"it_IT": "",
|
||||||
|
"ja_JP": "",
|
||||||
|
"ko_KR": "",
|
||||||
|
"no_NO": "",
|
||||||
|
"pl_PL": "",
|
||||||
|
"pt_BR": "",
|
||||||
|
"ru_RU": "",
|
||||||
|
"sv_SE": "",
|
||||||
|
"th_TH": "",
|
||||||
|
"tr_TR": "",
|
||||||
|
"uk_UA": "",
|
||||||
|
"zh_CN": "",
|
||||||
|
"zh_TW": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ID": "FixOcclusionCullingTooltip",
|
||||||
|
"Translations": {
|
||||||
|
"ar_SA": "",
|
||||||
|
"de_DE": "",
|
||||||
|
"el_GR": "",
|
||||||
|
"en_US": "Eliminates visual artifacts in the form of chaotic flickering of objects on the screen.\nThe solution is relevant for games where such an effect is observed (for example, Alan Wake).",
|
||||||
|
"es_ES": "",
|
||||||
|
"fr_FR": "",
|
||||||
|
"he_IL": "",
|
||||||
|
"it_IT": "",
|
||||||
|
"ja_JP": "",
|
||||||
|
"ko_KR": "",
|
||||||
|
"no_NO": "",
|
||||||
|
"pl_PL": "",
|
||||||
|
"pt_BR": "",
|
||||||
|
"ru_RU": "",
|
||||||
|
"sv_SE": "",
|
||||||
|
"th_TH": "",
|
||||||
|
"tr_TR": "",
|
||||||
|
"uk_UA": "",
|
||||||
|
"zh_CN": "",
|
||||||
|
"zh_TW": ""
|
||||||
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
@ -165,6 +165,11 @@ namespace Ryujinx.Graphics.Gpu.Engine.Threed
|
||||||
Timestamp = ticks,
|
Timestamp = ticks,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if (GraphicsConfig.FixOcclusionCulling && result <= 0)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (counter?.Invalid != true)
|
if (counter?.Invalid != true)
|
||||||
{
|
{
|
||||||
_channel.MemoryManager.Write(gpuVa, counterData);
|
_channel.MemoryManager.Write(gpuVa, counterData);
|
||||||
|
|
|
@ -72,6 +72,11 @@ namespace Ryujinx.Graphics.Gpu
|
||||||
/// Enables or disables color space passthrough, if available.
|
/// Enables or disables color space passthrough, if available.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static bool EnableColorSpacePassthrough = false;
|
public static bool EnableColorSpacePassthrough = false;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Enables or disables fix occlusion culling.
|
||||||
|
/// </summary>
|
||||||
|
public static bool FixOcclusionCulling = true;
|
||||||
}
|
}
|
||||||
#pragma warning restore CA2211
|
#pragma warning restore CA2211
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,7 +15,7 @@ namespace Ryujinx.Ava.Systems.Configuration
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The current version of the file format
|
/// The current version of the file format
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public const int CurrentVersion = 69;
|
public const int CurrentVersion = 70;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Version of the configuration file format
|
/// Version of the configuration file format
|
||||||
|
@ -469,6 +469,11 @@ namespace Ryujinx.Ava.Systems.Configuration
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public ulong[] DirtyHacks { get; set; }
|
public ulong[] DirtyHacks { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Fixes Occlusion Culling in Games (test feature)
|
||||||
|
/// </summary>
|
||||||
|
public bool FixOcclusionCulling { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Loads a configuration file from disk
|
/// Loads a configuration file from disk
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -156,6 +156,8 @@ namespace Ryujinx.Ava.Systems.Configuration
|
||||||
Multiplayer.LdnPassphrase.Value = cff.MultiplayerLdnPassphrase;
|
Multiplayer.LdnPassphrase.Value = cff.MultiplayerLdnPassphrase;
|
||||||
Multiplayer.LdnServer.Value = cff.LdnServer;
|
Multiplayer.LdnServer.Value = cff.LdnServer;
|
||||||
|
|
||||||
|
Tweaks.FixOcclusionCulling.Value = cff.FixOcclusionCulling;
|
||||||
|
|
||||||
{
|
{
|
||||||
Hacks.ShowDirtyHacks.Value = cff.ShowDirtyHacks;
|
Hacks.ShowDirtyHacks.Value = cff.ShowDirtyHacks;
|
||||||
|
|
||||||
|
@ -461,7 +463,8 @@ namespace Ryujinx.Ava.Systems.Configuration
|
||||||
TurboModeWhileHeld = false
|
TurboModeWhileHeld = false
|
||||||
};
|
};
|
||||||
}),
|
}),
|
||||||
(69, static cff => cff.SkipUserProfiles = false)
|
(69, static cff => cff.SkipUserProfiles = false),
|
||||||
|
(70, static cff => cff.FixOcclusionCulling = false)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -643,6 +643,21 @@ namespace Ryujinx.Ava.Systems.Configuration
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Tweaks Section
|
||||||
|
/// </summary>
|
||||||
|
public class TweaksSection
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Enable or disable Fix Occlusion Culling
|
||||||
|
/// </summary>
|
||||||
|
public ReactiveObject<bool> FixOcclusionCulling { get; private set; }
|
||||||
|
public TweaksSection()
|
||||||
|
{
|
||||||
|
FixOcclusionCulling = new ReactiveObject<bool>();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Multiplayer configuration section
|
/// Multiplayer configuration section
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -781,6 +796,11 @@ namespace Ryujinx.Ava.Systems.Configuration
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public GraphicsSection Graphics { get; private set; }
|
public GraphicsSection Graphics { get; private set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The Tweaks Section
|
||||||
|
/// </summary>
|
||||||
|
public TweaksSection Tweaks { get; private set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The Hid section
|
/// The Hid section
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -842,6 +862,7 @@ namespace Ryujinx.Ava.Systems.Configuration
|
||||||
Logger = new LoggerSection();
|
Logger = new LoggerSection();
|
||||||
System = new SystemSection();
|
System = new SystemSection();
|
||||||
Graphics = new GraphicsSection();
|
Graphics = new GraphicsSection();
|
||||||
|
Tweaks = new TweaksSection();
|
||||||
Hid = new HidSection();
|
Hid = new HidSection();
|
||||||
Multiplayer = new MultiplayerSection();
|
Multiplayer = new MultiplayerSection();
|
||||||
Hacks = new HacksSection();
|
Hacks = new HacksSection();
|
||||||
|
|
|
@ -147,6 +147,7 @@ namespace Ryujinx.Ava.Systems.Configuration
|
||||||
LdnServer = Multiplayer.LdnServer,
|
LdnServer = Multiplayer.LdnServer,
|
||||||
ShowDirtyHacks = Hacks.ShowDirtyHacks,
|
ShowDirtyHacks = Hacks.ShowDirtyHacks,
|
||||||
DirtyHacks = Hacks.EnabledHacks.Select(it => it.Pack()).ToArray(),
|
DirtyHacks = Hacks.EnabledHacks.Select(it => it.Pack()).ToArray(),
|
||||||
|
FixOcclusionCulling = Tweaks.FixOcclusionCulling,
|
||||||
};
|
};
|
||||||
|
|
||||||
return configurationFile;
|
return configurationFile;
|
||||||
|
@ -320,6 +321,7 @@ namespace Ryujinx.Ava.Systems.Configuration
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
Tweaks.FixOcclusionCulling.Value = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static GraphicsBackend DefaultGraphicsBackend()
|
private static GraphicsBackend DefaultGraphicsBackend()
|
||||||
|
|
|
@ -383,6 +383,8 @@ namespace Ryujinx.Ava.UI.ViewModels
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public bool FixOcclusionCulling { get; set; }
|
||||||
|
|
||||||
public SettingsViewModel(
|
public SettingsViewModel(
|
||||||
VirtualFileSystem virtualFileSystem,
|
VirtualFileSystem virtualFileSystem,
|
||||||
ContentManager contentManager,
|
ContentManager contentManager,
|
||||||
|
@ -659,6 +661,9 @@ namespace Ryujinx.Ava.UI.ViewModels
|
||||||
DisableP2P = config.Multiplayer.DisableP2p;
|
DisableP2P = config.Multiplayer.DisableP2p;
|
||||||
LdnPassphrase = config.Multiplayer.LdnPassphrase;
|
LdnPassphrase = config.Multiplayer.LdnPassphrase;
|
||||||
LdnServer = config.Multiplayer.LdnServer;
|
LdnServer = config.Multiplayer.LdnServer;
|
||||||
|
|
||||||
|
// Tweaks
|
||||||
|
FixOcclusionCulling = config.Tweaks.FixOcclusionCulling.Value;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SaveSettings()
|
public void SaveSettings()
|
||||||
|
@ -785,6 +790,9 @@ namespace Ryujinx.Ava.UI.ViewModels
|
||||||
config.Hacks.DisableNifmIsAnyInternetRequestAccepted.Value =
|
config.Hacks.DisableNifmIsAnyInternetRequestAccepted.Value =
|
||||||
DirtyHacks.NifmDisableIsAnyInternetRequestAccepted;
|
DirtyHacks.NifmDisableIsAnyInternetRequestAccepted;
|
||||||
|
|
||||||
|
// Tweaks
|
||||||
|
config.Tweaks.FixOcclusionCulling.Value = FixOcclusionCulling;
|
||||||
|
|
||||||
config.ToFileFormat().SaveConfig(Program.ConfigurationPath);
|
config.ToFileFormat().SaveConfig(Program.ConfigurationPath);
|
||||||
|
|
||||||
MainWindow.UpdateGraphicsConfig();
|
MainWindow.UpdateGraphicsConfig();
|
||||||
|
|
65
src/Ryujinx/UI/Views/Settings/SettingsTweaksView.axaml
Normal file
65
src/Ryujinx/UI/Views/Settings/SettingsTweaksView.axaml
Normal file
|
@ -0,0 +1,65 @@
|
||||||
|
<UserControl
|
||||||
|
x:Class="Ryujinx.Ava.UI.Views.Settings.SettingsTweaksView"
|
||||||
|
xmlns="https://github.com/avaloniaui"
|
||||||
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||||
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
|
xmlns:ext="clr-namespace:Ryujinx.Ava.Common.Markup"
|
||||||
|
xmlns:viewModels="clr-namespace:Ryujinx.Ava.UI.ViewModels"
|
||||||
|
xmlns:helpers="clr-namespace:Ryujinx.Ava.UI.Helpers"
|
||||||
|
mc:Ignorable="d"
|
||||||
|
x:DataType="viewModels:SettingsViewModel"
|
||||||
|
x:CompileBindings="True"
|
||||||
|
Focusable="True">
|
||||||
|
<Design.DataContext>
|
||||||
|
<viewModels:SettingsViewModel />
|
||||||
|
</Design.DataContext>
|
||||||
|
<UserControl.Styles>
|
||||||
|
<Style Selector="TextBlock.DefaultEnable" >
|
||||||
|
<Setter Property="Foreground" Value="SeaGreen"/>
|
||||||
|
<Setter Property="Margin" Value="5,0,0,0"/>
|
||||||
|
<Setter Property="VerticalAlignment" Value="Center"/>
|
||||||
|
</Style>
|
||||||
|
<Style Selector="TextBlock.DefaultDisable" >
|
||||||
|
<Setter Property="Foreground" Value="IndianRed"/>
|
||||||
|
<Setter Property="Margin" Value="5,0,0,0"/>
|
||||||
|
<Setter Property="VerticalAlignment" Value="Center"/>
|
||||||
|
</Style>
|
||||||
|
|
||||||
|
</UserControl.Styles>
|
||||||
|
<ScrollViewer
|
||||||
|
Name="HotkeysPage"
|
||||||
|
HorizontalAlignment="Stretch"
|
||||||
|
VerticalAlignment="Stretch"
|
||||||
|
HorizontalScrollBarVisibility="Disabled"
|
||||||
|
VerticalScrollBarVisibility="Auto">
|
||||||
|
<Border Classes="settings">
|
||||||
|
<StackPanel
|
||||||
|
Name="SettingButtons"
|
||||||
|
Margin="10"
|
||||||
|
Orientation="Vertical"
|
||||||
|
Spacing="10">
|
||||||
|
<TextBlock
|
||||||
|
HorizontalAlignment="Center"
|
||||||
|
Classes="h1"
|
||||||
|
Text="{ext:Locale SettingsTabTweaksTitle}" />
|
||||||
|
<TextBlock
|
||||||
|
HorizontalAlignment="Center"
|
||||||
|
Foreground="{DynamicResource SecondaryTextColor}"
|
||||||
|
TextDecorations="Underline"
|
||||||
|
Text="{ext:Locale SettingsTabTweaksDescription}" />
|
||||||
|
<Separator/>
|
||||||
|
<StackPanel Orientation="Vertical">
|
||||||
|
<CheckBox IsChecked="{Binding FixOcclusionCulling}"
|
||||||
|
ToolTip.Tip="{ext:Locale FixOcclusionCullingTooltip}">
|
||||||
|
<StackPanel Orientation="Horizontal">
|
||||||
|
<TextBlock Text="{ext:Locale FixOcclusionCulling}" />
|
||||||
|
<TextBlock Classes="DefaultEnable" Text="Default: enable" />
|
||||||
|
</StackPanel>
|
||||||
|
</CheckBox>
|
||||||
|
|
||||||
|
</StackPanel>
|
||||||
|
</StackPanel>
|
||||||
|
</Border>
|
||||||
|
</ScrollViewer>
|
||||||
|
</UserControl>
|
12
src/Ryujinx/UI/Views/Settings/SettingsTweaksView.axaml.cs
Normal file
12
src/Ryujinx/UI/Views/Settings/SettingsTweaksView.axaml.cs
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
using Avalonia.Controls;
|
||||||
|
|
||||||
|
namespace Ryujinx.Ava.UI.Views.Settings
|
||||||
|
{
|
||||||
|
public partial class SettingsTweaksView : UserControl
|
||||||
|
{
|
||||||
|
public SettingsTweaksView()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -34,6 +34,7 @@
|
||||||
<settings:SettingsSystemView Name="SystemPage" />
|
<settings:SettingsSystemView Name="SystemPage" />
|
||||||
<settings:SettingsCPUView Name="CpuPage" />
|
<settings:SettingsCPUView Name="CpuPage" />
|
||||||
<settings:SettingsGraphicsView Name="GraphicsPage" />
|
<settings:SettingsGraphicsView Name="GraphicsPage" />
|
||||||
|
<settings:SettingsTweaksView Name="TweaksPage" />
|
||||||
<settings:SettingsAudioView Name="AudioPage" />
|
<settings:SettingsAudioView Name="AudioPage" />
|
||||||
<settings:SettingsNetworkView Name="NetworkPage" />
|
<settings:SettingsNetworkView Name="NetworkPage" />
|
||||||
<settings:SettingsLoggingView Name="LoggingPage" />
|
<settings:SettingsLoggingView Name="LoggingPage" />
|
||||||
|
@ -101,6 +102,10 @@
|
||||||
Content="{ext:Locale SettingsTabGraphics}"
|
Content="{ext:Locale SettingsTabGraphics}"
|
||||||
Tag="GraphicsPage"
|
Tag="GraphicsPage"
|
||||||
IconSource="Image" />
|
IconSource="Image" />
|
||||||
|
<ui:NavigationViewItem
|
||||||
|
Content="{ext:Locale SettingsTabTweaks}"
|
||||||
|
Tag="TweaksPage"
|
||||||
|
IconSource="Repair" />
|
||||||
<ui:NavigationViewItem
|
<ui:NavigationViewItem
|
||||||
Content="{ext:Locale SettingsTabAudio}"
|
Content="{ext:Locale SettingsTabAudio}"
|
||||||
IconSource="Audio"
|
IconSource="Audio"
|
||||||
|
|
|
@ -70,6 +70,9 @@ namespace Ryujinx.Ava.UI.Windows
|
||||||
case nameof(GraphicsPage):
|
case nameof(GraphicsPage):
|
||||||
NavPanel.Content = GraphicsPage;
|
NavPanel.Content = GraphicsPage;
|
||||||
break;
|
break;
|
||||||
|
case nameof(TweaksPage):
|
||||||
|
NavPanel.Content = TweaksPage;
|
||||||
|
break;
|
||||||
case nameof(AudioPage):
|
case nameof(AudioPage):
|
||||||
NavPanel.Content = AudioPage;
|
NavPanel.Content = AudioPage;
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -569,6 +569,7 @@ namespace Ryujinx.Ava.UI.Windows
|
||||||
GraphicsConfig.EnableShaderCache = ConfigurationState.Instance.Graphics.EnableShaderCache;
|
GraphicsConfig.EnableShaderCache = ConfigurationState.Instance.Graphics.EnableShaderCache;
|
||||||
GraphicsConfig.EnableTextureRecompression = ConfigurationState.Instance.Graphics.EnableTextureRecompression;
|
GraphicsConfig.EnableTextureRecompression = ConfigurationState.Instance.Graphics.EnableTextureRecompression;
|
||||||
GraphicsConfig.EnableMacroHLE = ConfigurationState.Instance.Graphics.EnableMacroHLE;
|
GraphicsConfig.EnableMacroHLE = ConfigurationState.Instance.Graphics.EnableMacroHLE;
|
||||||
|
GraphicsConfig.FixOcclusionCulling = ConfigurationState.Instance.Tweaks.FixOcclusionCulling;
|
||||||
#pragma warning restore IDE0055
|
#pragma warning restore IDE0055
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -43,6 +43,7 @@
|
||||||
<settings:SettingsSystemView Name="SystemPage" />
|
<settings:SettingsSystemView Name="SystemPage" />
|
||||||
<settings:SettingsCPUView Name="CpuPage" />
|
<settings:SettingsCPUView Name="CpuPage" />
|
||||||
<settings:SettingsGraphicsView Name="GraphicsPage" />
|
<settings:SettingsGraphicsView Name="GraphicsPage" />
|
||||||
|
<settings:SettingsTweaksView Name="TweaksPage" />
|
||||||
<settings:SettingsAudioView Name="AudioPage" />
|
<settings:SettingsAudioView Name="AudioPage" />
|
||||||
<settings:SettingsNetworkView Name="NetworkPage" />
|
<settings:SettingsNetworkView Name="NetworkPage" />
|
||||||
<settings:SettingsLoggingView Name="LoggingPage" />
|
<settings:SettingsLoggingView Name="LoggingPage" />
|
||||||
|
@ -88,6 +89,10 @@
|
||||||
Content="{ext:Locale SettingsTabGraphics}"
|
Content="{ext:Locale SettingsTabGraphics}"
|
||||||
Tag="GraphicsPage"
|
Tag="GraphicsPage"
|
||||||
IconSource="Image" />
|
IconSource="Image" />
|
||||||
|
<ui:NavigationViewItem
|
||||||
|
Content="{ext:Locale SettingsTabTweaks}"
|
||||||
|
Tag="TweaksPage"
|
||||||
|
IconSource="Repair" />
|
||||||
<ui:NavigationViewItem
|
<ui:NavigationViewItem
|
||||||
Content="{ext:Locale SettingsTabAudio}"
|
Content="{ext:Locale SettingsTabAudio}"
|
||||||
IconSource="Audio"
|
IconSource="Audio"
|
||||||
|
|
|
@ -88,6 +88,9 @@ namespace Ryujinx.Ava.UI.Windows
|
||||||
case "GraphicsPage":
|
case "GraphicsPage":
|
||||||
NavPanel.Content = GraphicsPage;
|
NavPanel.Content = GraphicsPage;
|
||||||
break;
|
break;
|
||||||
|
case "TweaksPage":
|
||||||
|
NavPanel.Content = TweaksPage;
|
||||||
|
break;
|
||||||
case "AudioPage":
|
case "AudioPage":
|
||||||
NavPanel.Content = AudioPage;
|
NavPanel.Content = AudioPage;
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Add table
Reference in a new issue