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

This commit is contained in:
GreemDev
2025-10-01 14:20:02 -05:00
committed by KeatonTheBot
parent cd477cf744
commit 61d0430006
2 changed files with 4 additions and 2 deletions
@@ -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)
@@ -88,6 +88,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; }
@@ -354,6 +355,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.Qualcomm or Vendor.ARM or Vendor.Broadcom or Vendor.ImgTec; Vendor is Vendor.Apple or Vendor.Qualcomm or Vendor.ARM or Vendor.Broadcom or Vendor.ImgTec;
@@ -389,7 +391,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;