diff --git a/Ryujinx.Graphics.Vulkan/BufferHolder.cs b/Ryujinx.Graphics.Vulkan/BufferHolder.cs index 77ec623e2..2f1d2b489 100644 --- a/Ryujinx.Graphics.Vulkan/BufferHolder.cs +++ b/Ryujinx.Graphics.Vulkan/BufferHolder.cs @@ -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(); } diff --git a/Ryujinx.Graphics.Vulkan/VulkanGraphicsDevice.cs b/Ryujinx.Graphics.Vulkan/VulkanGraphicsDevice.cs index 81c0269b8..00ffb327b 100644 --- a/Ryujinx.Graphics.Vulkan/VulkanGraphicsDevice.cs +++ b/Ryujinx.Graphics.Vulkan/VulkanGraphicsDevice.cs @@ -73,6 +73,7 @@ namespace Ryujinx.Graphics.Vulkan private Func 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)}";