Don't make Intel Mesa pay for Intel Windows bugs

This commit is contained in:
gdk 2021-12-09 20:07:15 -03:00 committed by riperiperi
parent cd01a2f74a
commit 5738b66b75
2 changed files with 5 additions and 2 deletions

View file

@ -243,7 +243,7 @@ namespace Ryujinx.Graphics.Vulkan
data.Length);
// Not flushing commands here causes glitches on Intel (driver bug?)
if (_gd.Vendor == Vendor.Intel)
if (_gd.IsIntelWindows)
{
_gd.FlushAllCommands();
}

View file

@ -73,6 +73,7 @@ namespace Ryujinx.Graphics.Vulkan
private Func<string[]> GetRequiredExtensions;
internal Vendor Vendor { get; private set; }
internal bool IsIntelWindows { get; private set; }
public string GpuVendor { get; private set; }
public string GpuRenderer { get; private set; }
public string GpuVersion { get; private set; }
@ -266,7 +267,7 @@ namespace Ryujinx.Graphics.Vulkan
return new Capabilities(
api: TargetApi.Vulkan,
GpuVendor,
hasFrontFacingBug: Vendor == Vendor.Intel && RuntimeInformation.IsOSPlatform(OSPlatform.Windows),
hasFrontFacingBug: IsIntelWindows,
hasVectorIndexingBug: false,
supportsAstcCompression: features.TextureCompressionAstcLdr,
supports3DTextureCompression: true,
@ -341,6 +342,8 @@ namespace Ryujinx.Graphics.Vulkan
_ => Vendor.Unknown
};
IsIntelWindows = Vendor == Vendor.Intel && RuntimeInformation.IsOSPlatform(OSPlatform.Windows);
GpuVendor = vendorName;
GpuRenderer = Marshal.PtrToStringAnsi((IntPtr)properties.DeviceName);
GpuVersion = $"Vulkan v{ParseStandardVulkanVersion(properties.ApiVersion)}, Driver v{ParseDriverVersion(ref properties)}";