UI: Friendly driver name reporting. (#6530)
* Implement friendly VkDriverID names for UI. * Capitalise NVIDIA * Prefer vendor name on macOS * Typo fix Co-authored-by: gdkchan <gab.dark.100@gmail.com> --------- Co-authored-by: gdkchan <gab.dark.100@gmail.com>
This commit is contained in:
parent
b323a01738
commit
7124d679fd
2 changed files with 35 additions and 4 deletions
|
@ -1,3 +1,4 @@
|
||||||
|
using Silk.NET.Vulkan;
|
||||||
using System.Text.RegularExpressions;
|
using System.Text.RegularExpressions;
|
||||||
|
|
||||||
namespace Ryujinx.Graphics.Vulkan
|
namespace Ryujinx.Graphics.Vulkan
|
||||||
|
@ -61,5 +62,36 @@ namespace Ryujinx.Graphics.Vulkan
|
||||||
_ => $"0x{id:X}",
|
_ => $"0x{id:X}",
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static string GetFriendlyDriverName(DriverId id)
|
||||||
|
{
|
||||||
|
return id switch
|
||||||
|
{
|
||||||
|
DriverId.AmdProprietary => "AMD",
|
||||||
|
DriverId.AmdOpenSource => "AMD (Open)",
|
||||||
|
DriverId.ArmProprietary => "ARM",
|
||||||
|
DriverId.BroadcomProprietary => "Broadcom",
|
||||||
|
DriverId.CoreaviProprietary => "CoreAVI",
|
||||||
|
DriverId.GgpProprietary => "GGP",
|
||||||
|
DriverId.GoogleSwiftshader => "SwiftShader",
|
||||||
|
DriverId.ImaginationProprietary => "Imagination",
|
||||||
|
DriverId.IntelOpenSourceMesa => "Intel (Open)",
|
||||||
|
DriverId.IntelProprietaryWindows => "Intel",
|
||||||
|
DriverId.JuiceProprietary => "Juice",
|
||||||
|
DriverId.MesaDozen => "Dozen",
|
||||||
|
DriverId.MesaLlvmpipe => "LLVMpipe",
|
||||||
|
DriverId.MesaPanvk => "PanVK",
|
||||||
|
DriverId.MesaRadv => "RADV",
|
||||||
|
DriverId.MesaTurnip => "Turnip",
|
||||||
|
DriverId.MesaV3DV => "V3DV",
|
||||||
|
DriverId.MesaVenus => "Venus",
|
||||||
|
DriverId.Moltenvk => "MoltenVK",
|
||||||
|
DriverId.NvidiaProprietary => "NVIDIA",
|
||||||
|
DriverId.QualcommProprietary => "Qualcomm",
|
||||||
|
DriverId.SamsungProprietary => "Samsung",
|
||||||
|
DriverId.VerisiliconProprietary => "Verisilicon",
|
||||||
|
_ => id.ToString(),
|
||||||
|
};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -313,8 +313,6 @@ namespace Ryujinx.Graphics.Vulkan
|
||||||
|
|
||||||
var hasDriverProperties = _physicalDevice.TryGetPhysicalDeviceDriverPropertiesKHR(Api, out var driverProperties);
|
var hasDriverProperties = _physicalDevice.TryGetPhysicalDeviceDriverPropertiesKHR(Api, out var driverProperties);
|
||||||
|
|
||||||
string vendorName = VendorUtils.GetNameFromId(properties.VendorID);
|
|
||||||
|
|
||||||
Vendor = VendorUtils.FromId(properties.VendorID);
|
Vendor = VendorUtils.FromId(properties.VendorID);
|
||||||
|
|
||||||
IsAmdWindows = Vendor == Vendor.Amd && OperatingSystem.IsWindows();
|
IsAmdWindows = Vendor == Vendor.Amd && OperatingSystem.IsWindows();
|
||||||
|
@ -326,8 +324,9 @@ namespace Ryujinx.Graphics.Vulkan
|
||||||
Vendor == Vendor.Broadcom ||
|
Vendor == Vendor.Broadcom ||
|
||||||
Vendor == Vendor.ImgTec;
|
Vendor == Vendor.ImgTec;
|
||||||
|
|
||||||
GpuVendor = vendorName;
|
GpuVendor = VendorUtils.GetNameFromId(properties.VendorID);
|
||||||
GpuDriver = hasDriverProperties ? Marshal.PtrToStringAnsi((IntPtr)driverProperties.DriverName) : vendorName; // Fall back to vendor name if driver name isn't available.
|
GpuDriver = hasDriverProperties && !OperatingSystem.IsMacOS() ?
|
||||||
|
VendorUtils.GetFriendlyDriverName(driverProperties.DriverID) : GpuVendor; // Fallback to vendor name if driver is unavailable or on MacOS where vendor is preferred.
|
||||||
|
|
||||||
fixed (byte* deviceName = properties.DeviceName)
|
fixed (byte* deviceName = properties.DeviceName)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue