mirror of
https://git.naxdy.org/Mirror/Ryujinx.git
synced 2025-01-12 21:59:12 +00:00
Rework check fix
This commit is contained in:
parent
1e50368a30
commit
51626cd346
3 changed files with 28 additions and 10 deletions
|
@ -215,17 +215,11 @@ namespace Ryujinx.Ava.UI.ViewModels
|
||||||
_graphicsBackendIndex = value;
|
_graphicsBackendIndex = value;
|
||||||
OnPropertyChanged();
|
OnPropertyChanged();
|
||||||
OnPropertyChanged(nameof(IsVulkanSelected));
|
OnPropertyChanged(nameof(IsVulkanSelected));
|
||||||
OnPropertyChanged(nameof(IsSpirVAvailable));
|
OnPropertyChanged(nameof(IsOpenGLSelected));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool SpirVCapability()
|
public bool IsOpenGLSelected => !IsVulkanSelected;
|
||||||
{
|
|
||||||
bool isSpirVSupported = HwCapabilitiesFacade.SupportsSpirV;
|
|
||||||
return isSpirVSupported;
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool IsSpirVAvailable => !IsVulkanSelected && SpirVCapability();
|
|
||||||
|
|
||||||
public int ScalingFilter
|
public int ScalingFilter
|
||||||
{
|
{
|
||||||
|
|
|
@ -64,7 +64,7 @@
|
||||||
ToolTip.Tip="{locale:Locale ShaderCacheToggleTooltip}">
|
ToolTip.Tip="{locale:Locale ShaderCacheToggleTooltip}">
|
||||||
<TextBlock Text="{locale:Locale SettingsTabGraphicsEnableShaderCache}" />
|
<TextBlock Text="{locale:Locale SettingsTabGraphicsEnableShaderCache}" />
|
||||||
</CheckBox>
|
</CheckBox>
|
||||||
<CheckBox IsChecked="{Binding EnableOGLSpirV}" IsVisible="{Binding IsSpirVAvailable}"
|
<CheckBox IsChecked="{Binding EnableOGLSpirV}" IsVisible="{Binding IsOpenGLSelected}"
|
||||||
ToolTip.Tip="{locale:Locale OGLSpirVTooltip}">
|
ToolTip.Tip="{locale:Locale OGLSpirVTooltip}">
|
||||||
<TextBlock Text="{locale:Locale SettingsTabGraphicsEnableOGLSpirV}" />
|
<TextBlock Text="{locale:Locale SettingsTabGraphicsEnableOGLSpirV}" />
|
||||||
</CheckBox>
|
</CheckBox>
|
||||||
|
|
|
@ -78,6 +78,7 @@ namespace Ryujinx.Graphics.Gpu.Shader
|
||||||
private readonly ShaderCacheHashTable _graphicsShaderCache;
|
private readonly ShaderCacheHashTable _graphicsShaderCache;
|
||||||
private readonly DiskCacheHostStorage _diskCacheHostStorage;
|
private readonly DiskCacheHostStorage _diskCacheHostStorage;
|
||||||
private readonly BackgroundDiskCacheWriter _cacheWriter;
|
private readonly BackgroundDiskCacheWriter _cacheWriter;
|
||||||
|
private static bool _isSpirVCapable;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Event for signalling shader cache loading progress.
|
/// Event for signalling shader cache loading progress.
|
||||||
|
@ -101,6 +102,8 @@ namespace Ryujinx.Graphics.Gpu.Shader
|
||||||
|
|
||||||
string diskCacheTitleId = GetDiskCachePath();
|
string diskCacheTitleId = GetDiskCachePath();
|
||||||
|
|
||||||
|
_isSpirVCapable = OpenGlSpirVCapable();
|
||||||
|
|
||||||
_computeShaderCache = new ComputeShaderCacheHashTable();
|
_computeShaderCache = new ComputeShaderCacheHashTable();
|
||||||
_graphicsShaderCache = new ShaderCacheHashTable();
|
_graphicsShaderCache = new ShaderCacheHashTable();
|
||||||
_diskCacheHostStorage = new DiskCacheHostStorage(diskCacheTitleId);
|
_diskCacheHostStorage = new DiskCacheHostStorage(diskCacheTitleId);
|
||||||
|
@ -718,6 +721,27 @@ namespace Ryujinx.Graphics.Gpu.Shader
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Checks if SpirV is available on OpenGL
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// True or false
|
||||||
|
/// </remarks>
|
||||||
|
private bool OpenGlSpirVCapable()
|
||||||
|
{
|
||||||
|
bool spirV = _context.Capabilities.SupportsSpirV;
|
||||||
|
if (!spirV)
|
||||||
|
{
|
||||||
|
Logger.Warning?.PrintMsg(LogClass.Gpu, $"Spir-V Not Available on OpenGL for your GPU");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Logger.Warning?.PrintMsg(LogClass.Gpu, $"Spir-V !Available! on OpenGL for your GPU");
|
||||||
|
}
|
||||||
|
return spirV;
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Creates shader translation options with the requested graphics API and flags.
|
/// Creates shader translation options with the requested graphics API and flags.
|
||||||
/// The shader language is choosen based on the current configuration and graphics API.
|
/// The shader language is choosen based on the current configuration and graphics API.
|
||||||
|
@ -727,7 +751,7 @@ namespace Ryujinx.Graphics.Gpu.Shader
|
||||||
/// <returns>Translation options</returns>
|
/// <returns>Translation options</returns>
|
||||||
private static TranslationOptions CreateTranslationOptions(TargetApi api, TranslationFlags flags)
|
private static TranslationOptions CreateTranslationOptions(TargetApi api, TranslationFlags flags)
|
||||||
{
|
{
|
||||||
TargetLanguage lang = (GraphicsConfig.EnableSpirvCompilationOnVulkan && api == TargetApi.Vulkan) || (GraphicsConfig.EnableOGLSpirV && api == TargetApi.OpenGL)
|
TargetLanguage lang = (GraphicsConfig.EnableSpirvCompilationOnVulkan && api == TargetApi.Vulkan) || (GraphicsConfig.EnableOGLSpirV && _isSpirVCapable)
|
||||||
? TargetLanguage.Spirv
|
? TargetLanguage.Spirv
|
||||||
: TargetLanguage.Glsl;
|
: TargetLanguage.Glsl;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue