vulkan: Intel Arc on Linux also has the push descriptors bug.

This commit is contained in:
GreemDev 2025-10-01 13:03:22 -05:00
parent 8d0e28ed9d
commit 5fb0b5e7ec
2 changed files with 4 additions and 2 deletions

View File

@ -160,7 +160,7 @@ namespace Ryujinx.Graphics.Vulkan
private static bool HasPushDescriptorsBug(VulkanRenderer gd) private static bool HasPushDescriptorsBug(VulkanRenderer gd)
{ {
// Those GPUs/drivers do not work properly with push descriptors, so we must force disable them. // Those GPUs/drivers do not work properly with push descriptors, so we must force disable them.
return gd.IsNvidiaPreTuring || (gd.IsIntelArc && gd.IsIntelWindows); return gd.IsNvidiaPreTuring || (gd.IsIntelArc && (gd.IsIntelWindows && gd.IsIntelLinux));
} }
private static bool CanUsePushDescriptors(VulkanRenderer gd, ResourceLayout layout, bool isCompute) private static bool CanUsePushDescriptors(VulkanRenderer gd, ResourceLayout layout, bool isCompute)

View File

@ -91,6 +91,7 @@ namespace Ryujinx.Graphics.Vulkan
internal Vendor Vendor { get; private set; } internal Vendor Vendor { get; private set; }
internal bool IsAmdWindows { get; private set; } internal bool IsAmdWindows { get; private set; }
internal bool IsIntelWindows { get; private set; } internal bool IsIntelWindows { get; private set; }
internal bool IsIntelLinux { get; private set; }
internal bool IsAmdGcn { get; private set; } internal bool IsAmdGcn { get; private set; }
internal bool IsAmdRdna3 { get; private set; } internal bool IsAmdRdna3 { get; private set; }
internal bool IsNvidiaPreTuring { get; private set; } internal bool IsNvidiaPreTuring { get; private set; }
@ -359,6 +360,7 @@ namespace Ryujinx.Graphics.Vulkan
IsAmdWindows = Vendor == Vendor.Amd && OperatingSystem.IsWindows(); IsAmdWindows = Vendor == Vendor.Amd && OperatingSystem.IsWindows();
IsIntelWindows = Vendor == Vendor.Intel && OperatingSystem.IsWindows(); IsIntelWindows = Vendor == Vendor.Intel && OperatingSystem.IsWindows();
IsIntelLinux = Vendor == Vendor.Intel && OperatingSystem.IsLinux();
IsTBDR = IsTBDR =
Vendor is Vendor.Apple or Vendor is Vendor.Apple or
Vendor.Qualcomm or Vendor.Qualcomm or
@ -398,7 +400,7 @@ namespace Ryujinx.Graphics.Vulkan
} }
else if (Vendor == Vendor.Intel) else if (Vendor == Vendor.Intel)
{ {
IsIntelArc = GpuRenderer.StartsWith("Intel(R) Arc(TM)"); IsIntelArc = GpuRenderer.StartsWithIgnoreCase("Intel(R) Arc(TM)");
} }
IsQualcommProprietary = hasDriverProperties && driverProperties.DriverID == DriverId.QualcommProprietary; IsQualcommProprietary = hasDriverProperties && driverProperties.DriverID == DriverId.QualcommProprietary;