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)
{
// 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)

View File

@ -91,6 +91,7 @@ namespace Ryujinx.Graphics.Vulkan
internal Vendor Vendor { get; private set; }
internal bool IsAmdWindows { get; private set; }
internal bool IsIntelWindows { get; private set; }
internal bool IsIntelLinux { get; private set; }
internal bool IsAmdGcn { get; private set; }
internal bool IsAmdRdna3 { get; private set; }
internal bool IsNvidiaPreTuring { get; private set; }
@ -359,6 +360,7 @@ namespace Ryujinx.Graphics.Vulkan
IsAmdWindows = Vendor == Vendor.Amd && OperatingSystem.IsWindows();
IsIntelWindows = Vendor == Vendor.Intel && OperatingSystem.IsWindows();
IsIntelLinux = Vendor == Vendor.Intel && OperatingSystem.IsLinux();
IsTBDR =
Vendor is Vendor.Apple or
Vendor.Qualcomm or
@ -398,7 +400,7 @@ namespace Ryujinx.Graphics.Vulkan
}
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;