mirror of
https://git.ryujinx.app/ryubing/ryujinx.git
synced 2025-04-30 20:57:43 +02:00

Metal sounded like a good idea to get in the emulator but frankly I underestimated just how experimental and not ready it was. From my write up in the Discord: ``` As is, Metal supports only a few games. The games it does support freeze on first use of not playing them via Vulkan, because shader translation is broken. So you need to use a dirty hack to not delete all your shaders. Not to mention it breaks many games via MoltenVK because of changes to the shared GPU code. Merging Metal seemed like a great idea, because of the few games it does support. But I don't think it's worth it. Many of the games it breaks via MoltenVK *don't work via Metal*. Which effectively makes current Ryubing worse for Mac users than Ryujinx 1.1.1403. I think what I'm gonna do is revert Metal, and reopen it as a PR. That way, you can still take advantage of the Metal backend as is, but without making other games worse with no solution. ``` For what it's worth, the shader translation part could at least be "fixed" by always applying a 30ms delay for shader translation to Metal. That being said, that solution sucks ass. The MoltenVK regressions are even worse. I hope this is not a let down to the Mac users. I hope you realize I'm reverting this because you're actively getting a worse experience with it in the emulator.
304 lines
18 KiB
XML
304 lines
18 KiB
XML
<UserControl
|
|
x:Class="Ryujinx.Ava.UI.Views.Settings.SettingsGraphicsView"
|
|
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:controls="clr-namespace:Ryujinx.Ava.UI.Controls"
|
|
xmlns:ui="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
|
|
xmlns:ext="clr-namespace:Ryujinx.Ava.Common.Markup"
|
|
xmlns:viewModels="clr-namespace:Ryujinx.Ava.UI.ViewModels"
|
|
Design.Width="1000"
|
|
mc:Ignorable="d"
|
|
x:DataType="viewModels:SettingsViewModel">
|
|
<Design.DataContext>
|
|
<viewModels:SettingsViewModel />
|
|
</Design.DataContext>
|
|
<ScrollViewer
|
|
Name="GraphicsPage"
|
|
HorizontalAlignment="Stretch"
|
|
VerticalAlignment="Stretch"
|
|
HorizontalScrollBarVisibility="Disabled"
|
|
VerticalScrollBarVisibility="Auto">
|
|
<Border Classes="settings">
|
|
<StackPanel
|
|
Margin="10"
|
|
HorizontalAlignment="Stretch"
|
|
Orientation="Vertical"
|
|
Spacing="10">
|
|
<TextBlock Classes="h1" Text="{ext:Locale SettingsTabGraphicsAPI}" />
|
|
<StackPanel Margin="10,0,0,0" Orientation="Vertical" Spacing="10">
|
|
<StackPanel Orientation="Horizontal">
|
|
<TextBlock VerticalAlignment="Center"
|
|
ToolTip.Tip="{ext:Locale SettingsTabGraphicsBackendTooltip}"
|
|
Text="{ext:Locale SettingsTabGraphicsBackend}"
|
|
Width="250" />
|
|
<ComboBox Width="350"
|
|
HorizontalContentAlignment="Left"
|
|
ToolTip.Tip="{ext:Locale SettingsTabGraphicsBackendTooltip}"
|
|
SelectedIndex="{Binding GraphicsBackendIndex}">
|
|
<ComboBoxItem IsVisible="{Binding IsVulkanAvailable}">
|
|
<TextBlock Text="Vulkan" />
|
|
</ComboBoxItem>
|
|
<ComboBoxItem IsEnabled="{Binding IsOpenGLAvailable}">
|
|
<TextBlock Text="OpenGL" />
|
|
</ComboBoxItem>
|
|
</ComboBox>
|
|
</StackPanel>
|
|
<StackPanel Orientation="Horizontal" IsVisible="{Binding IsVulkanSelected}">
|
|
<TextBlock VerticalAlignment="Center"
|
|
ToolTip.Tip="{ext:Locale SettingsTabGraphicsPreferredGpuTooltip}"
|
|
Text="{ext:Locale SettingsTabGraphicsPreferredGpu}"
|
|
Width="250" />
|
|
<ComboBox Width="350"
|
|
HorizontalContentAlignment="Left"
|
|
ToolTip.Tip="{ext:Locale SettingsTabGraphicsPreferredGpuTooltip}"
|
|
SelectedIndex="{Binding PreferredGpuIndex}"
|
|
ItemsSource="{Binding AvailableGpus}"/>
|
|
</StackPanel>
|
|
</StackPanel>
|
|
<Separator Height="1" />
|
|
<TextBlock Classes="h1" Text="{ext:Locale SettingsTabGraphicsFeatures}" />
|
|
<StackPanel Margin="10,0,0,0" Orientation="Vertical" Spacing="10">
|
|
<StackPanel Orientation="Vertical">
|
|
<CheckBox IsChecked="{Binding EnableShaderCache}"
|
|
ToolTip.Tip="{ext:Locale ShaderCacheToggleTooltip}">
|
|
<TextBlock Text="{ext:Locale SettingsTabGraphicsEnableShaderCache}" />
|
|
</CheckBox>
|
|
<CheckBox IsChecked="{Binding EnableTextureRecompression}"
|
|
ToolTip.Tip="{ext:Locale SettingsEnableTextureRecompressionTooltip}">
|
|
<TextBlock Text="{ext:Locale SettingsEnableTextureRecompression}" />
|
|
</CheckBox>
|
|
<CheckBox IsChecked="{Binding EnableMacroHLE}"
|
|
ToolTip.Tip="{ext:Locale SettingsEnableMacroHLETooltip}">
|
|
<TextBlock Text="{ext:Locale SettingsEnableMacroHLE}" />
|
|
</CheckBox>
|
|
<CheckBox IsChecked="{Binding EnableColorSpacePassthrough}"
|
|
IsVisible="{Binding ColorSpacePassthroughAvailable}"
|
|
ToolTip.Tip="{ext:Locale SettingsEnableColorSpacePassthroughTooltip}">
|
|
<TextBlock Text="{ext:Locale SettingsEnableColorSpacePassthrough}" />
|
|
</CheckBox>
|
|
</StackPanel>
|
|
<StackPanel Orientation="Horizontal">
|
|
<TextBlock VerticalAlignment="Center"
|
|
ToolTip.Tip="{ext:Locale ResolutionScaleTooltip}"
|
|
Text="{ext:Locale SettingsTabGraphicsResolutionScale}"
|
|
Width="250" />
|
|
<ComboBox SelectedIndex="{Binding ResolutionScale}"
|
|
Width="350"
|
|
HorizontalContentAlignment="Left"
|
|
ToolTip.Tip="{ext:Locale ResolutionScaleTooltip}">
|
|
<ComboBoxItem>
|
|
<TextBlock Text="{ext:Locale SettingsTabGraphicsResolutionScaleNative}" />
|
|
</ComboBoxItem>
|
|
<ComboBoxItem>
|
|
<TextBlock Text="{ext:Locale SettingsTabGraphicsResolutionScale2x}" />
|
|
</ComboBoxItem>
|
|
<ComboBoxItem>
|
|
<TextBlock Text="{ext:Locale SettingsTabGraphicsResolutionScale3x}" />
|
|
</ComboBoxItem>
|
|
<ComboBoxItem>
|
|
<TextBlock Text="{ext:Locale SettingsTabGraphicsResolutionScale4x}" />
|
|
</ComboBoxItem>
|
|
<ComboBoxItem>
|
|
<TextBlock Text="{ext:Locale SettingsTabGraphicsResolutionScaleCustom}" />
|
|
</ComboBoxItem>
|
|
</ComboBox>
|
|
<ui:NumberBox
|
|
Margin="10,0,0,0"
|
|
ToolTip.Tip="{ext:Locale ResolutionScaleEntryTooltip}"
|
|
MinWidth="150"
|
|
SmallChange="0.1"
|
|
LargeChange="1"
|
|
SimpleNumberFormat="F2"
|
|
SpinButtonPlacementMode="Inline"
|
|
IsVisible="{Binding IsCustomResolutionScaleActive}"
|
|
Maximum="100"
|
|
Minimum="0.1"
|
|
Value="{Binding CustomResolutionScale}" />
|
|
</StackPanel>
|
|
<StackPanel
|
|
HorizontalAlignment="Stretch"
|
|
Orientation="Vertical"
|
|
Spacing="10">
|
|
<StackPanel Orientation="Horizontal">
|
|
<TextBlock VerticalAlignment="Center"
|
|
ToolTip.Tip="{ext:Locale GraphicsAATooltip}"
|
|
Text="{ext:Locale GraphicsAALabel}"
|
|
Width="250" />
|
|
<ComboBox Width="350"
|
|
HorizontalContentAlignment="Left"
|
|
ToolTip.Tip="{ext:Locale GraphicsAATooltip}"
|
|
SelectedIndex="{Binding AntiAliasingEffect}">
|
|
<ComboBoxItem>
|
|
<TextBlock Text="{ext:Locale SettingsTabLoggingGraphicsBackendLogLevelNone}" />
|
|
</ComboBoxItem>
|
|
<ComboBoxItem>
|
|
<TextBlock Text="FXAA" />
|
|
</ComboBoxItem>
|
|
<ComboBoxItem>
|
|
<TextBlock Text="{ext:Locale SmaaLow}" />
|
|
</ComboBoxItem>
|
|
<ComboBoxItem>
|
|
<TextBlock Text="{ext:Locale SmaaMedium}" />
|
|
</ComboBoxItem>
|
|
<ComboBoxItem>
|
|
<TextBlock Text="{ext:Locale SmaaHigh}" />
|
|
</ComboBoxItem>
|
|
<ComboBoxItem>
|
|
<TextBlock Text="{ext:Locale SmaaUltra}" />
|
|
</ComboBoxItem>
|
|
</ComboBox>
|
|
</StackPanel>
|
|
</StackPanel>
|
|
<StackPanel
|
|
HorizontalAlignment="Stretch"
|
|
Orientation="Vertical"
|
|
Spacing="10">
|
|
<StackPanel Orientation="Horizontal">
|
|
<TextBlock VerticalAlignment="Center"
|
|
ToolTip.Tip="{ext:Locale GraphicsScalingFilterTooltip}"
|
|
Text="{ext:Locale GraphicsScalingFilterLabel}"
|
|
Width="250" />
|
|
<ComboBox Width="350"
|
|
HorizontalContentAlignment="Left"
|
|
ToolTip.Tip="{ext:Locale GraphicsScalingFilterTooltip}"
|
|
SelectedIndex="{Binding ScalingFilter}">
|
|
<ComboBoxItem>
|
|
<TextBlock Text="{ext:Locale GraphicsScalingFilterBilinear}" />
|
|
</ComboBoxItem>
|
|
<ComboBoxItem>
|
|
<TextBlock Text="{ext:Locale GraphicsScalingFilterNearest}" />
|
|
</ComboBoxItem>
|
|
<ComboBoxItem>
|
|
<TextBlock Text="{ext:Locale GraphicsScalingFilterFsr}" />
|
|
</ComboBoxItem>
|
|
<ComboBoxItem>
|
|
<TextBlock Text="{ext:Locale GraphicsScalingFilterArea}" />
|
|
</ComboBoxItem>
|
|
</ComboBox>
|
|
<controls:SliderScroll Value="{Binding ScalingFilterLevel}"
|
|
ToolTip.Tip="{ext:Locale GraphicsScalingFilterLevelTooltip}"
|
|
MinWidth="150"
|
|
Margin="10,-3,0,0"
|
|
Height="32"
|
|
Padding="0,-5"
|
|
IsVisible="{Binding IsScalingFilterActive}"
|
|
TickFrequency="1"
|
|
IsSnapToTickEnabled="True"
|
|
LargeChange="10"
|
|
SmallChange="1"
|
|
VerticalAlignment="Center"
|
|
Minimum="0"
|
|
Maximum="100" />
|
|
<TextBlock Margin="5,0"
|
|
Width="40"
|
|
IsVisible="{Binding IsScalingFilterActive}"
|
|
Text="{Binding ScalingFilterLevelText}"/>
|
|
</StackPanel>
|
|
</StackPanel>
|
|
<StackPanel Orientation="Horizontal">
|
|
<TextBlock VerticalAlignment="Center"
|
|
ToolTip.Tip="{ext:Locale AnisotropyTooltip}"
|
|
Text="{ext:Locale SettingsTabGraphicsAnisotropicFiltering}"
|
|
Width="250" />
|
|
<ComboBox SelectedIndex="{Binding MaxAnisotropy}"
|
|
Width="350"
|
|
HorizontalContentAlignment="Left"
|
|
ToolTip.Tip="{ext:Locale AnisotropyTooltip}">
|
|
<ComboBoxItem>
|
|
<TextBlock
|
|
Text="{ext:Locale SettingsTabGraphicsAnisotropicFilteringAuto}" />
|
|
</ComboBoxItem>
|
|
<ComboBoxItem>
|
|
<TextBlock Text="{ext:Locale SettingsTabGraphicsAnisotropicFiltering2x}" />
|
|
</ComboBoxItem>
|
|
<ComboBoxItem>
|
|
<TextBlock Text="{ext:Locale SettingsTabGraphicsAnisotropicFiltering4x}" />
|
|
</ComboBoxItem>
|
|
<ComboBoxItem>
|
|
<TextBlock Text="{ext:Locale SettingsTabGraphicsAnisotropicFiltering8x}" />
|
|
</ComboBoxItem>
|
|
<ComboBoxItem>
|
|
<TextBlock
|
|
Text="{ext:Locale SettingsTabGraphicsAnisotropicFiltering16x}" />
|
|
</ComboBoxItem>
|
|
</ComboBox>
|
|
</StackPanel>
|
|
<StackPanel Orientation="Horizontal">
|
|
<TextBlock VerticalAlignment="Center"
|
|
ToolTip.Tip="{ext:Locale AspectRatioTooltip}"
|
|
Text="{ext:Locale SettingsTabGraphicsAspectRatio}"
|
|
Width="250" />
|
|
<ComboBox SelectedIndex="{Binding AspectRatio}"
|
|
Width="350"
|
|
HorizontalContentAlignment="Left"
|
|
ToolTip.Tip="{ext:Locale AspectRatioTooltip}">
|
|
<ComboBoxItem>
|
|
<TextBlock Text="{ext:Locale SettingsTabGraphicsAspectRatio4x3}" />
|
|
</ComboBoxItem>
|
|
<ComboBoxItem>
|
|
<TextBlock Text="{ext:Locale SettingsTabGraphicsAspectRatio16x9}" />
|
|
</ComboBoxItem>
|
|
<ComboBoxItem>
|
|
<TextBlock Text="{ext:Locale SettingsTabGraphicsAspectRatio16x10}" />
|
|
</ComboBoxItem>
|
|
<ComboBoxItem>
|
|
<TextBlock Text="{ext:Locale SettingsTabGraphicsAspectRatio21x9}" />
|
|
</ComboBoxItem>
|
|
<ComboBoxItem>
|
|
<TextBlock Text="{ext:Locale SettingsTabGraphicsAspectRatio32x9}" />
|
|
</ComboBoxItem>
|
|
<ComboBoxItem>
|
|
<TextBlock Text="{ext:Locale SettingsTabGraphicsAspectRatioStretch}" />
|
|
</ComboBoxItem>
|
|
</ComboBox>
|
|
</StackPanel>
|
|
</StackPanel>
|
|
<StackPanel
|
|
Margin="10,0,0,0"
|
|
HorizontalAlignment="Stretch"
|
|
Orientation="Vertical"
|
|
Spacing="10">
|
|
<StackPanel Orientation="Horizontal">
|
|
<TextBlock VerticalAlignment="Center"
|
|
ToolTip.Tip="{ext:Locale GraphicsBackendThreadingTooltip}"
|
|
Text="{ext:Locale SettingsTabGraphicsBackendMultithreading}"
|
|
Width="250" />
|
|
<ComboBox Width="350"
|
|
HorizontalContentAlignment="Left"
|
|
ToolTip.Tip="{ext:Locale GalThreadingTooltip}"
|
|
SelectedIndex="{Binding GraphicsBackendMultithreadingIndex}">
|
|
<ComboBoxItem>
|
|
<TextBlock Text="{ext:Locale CommonAuto}" />
|
|
</ComboBoxItem>
|
|
<ComboBoxItem>
|
|
<TextBlock Text="{ext:Locale CommonOff}" />
|
|
</ComboBoxItem>
|
|
<ComboBoxItem>
|
|
<TextBlock Text="{ext:Locale CommonOn}" />
|
|
</ComboBoxItem>
|
|
</ComboBox>
|
|
</StackPanel>
|
|
</StackPanel>
|
|
<Separator Height="1" />
|
|
<TextBlock Classes="h1" Text="{ext:Locale SettingsTabGraphicsDeveloperOptions}" />
|
|
<StackPanel
|
|
Margin="10,0,0,0"
|
|
HorizontalAlignment="Stretch"
|
|
Orientation="Vertical"
|
|
Spacing="10">
|
|
<StackPanel Orientation="Horizontal">
|
|
<TextBlock VerticalAlignment="Center"
|
|
ToolTip.Tip="{ext:Locale ShaderDumpPathTooltip}"
|
|
Text="{ext:Locale SettingsTabGraphicsShaderDumpPath}"
|
|
Width="250" />
|
|
<TextBox Text="{Binding ShaderDumpPath}"
|
|
Width="350"
|
|
ToolTip.Tip="{ext:Locale ShaderDumpPathTooltip}" />
|
|
</StackPanel>
|
|
</StackPanel>
|
|
</StackPanel>
|
|
</Border>
|
|
</ScrollViewer>
|
|
</UserControl>
|