Vendor.cs 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. using Silk.NET.Vulkan;
  2. using System.Text.RegularExpressions;
  3. namespace Ryujinx.Graphics.Vulkan
  4. {
  5. enum Vendor
  6. {
  7. Amd,
  8. ImgTec,
  9. Intel,
  10. Nvidia,
  11. ARM,
  12. Broadcom,
  13. Qualcomm,
  14. Apple,
  15. Unknown,
  16. }
  17. static class VendorUtils
  18. {
  19. public static Vendor FromId(uint id)
  20. {
  21. return id switch
  22. {
  23. 0x1002 => Vendor.Amd,
  24. 0x1010 => Vendor.ImgTec,
  25. 0x106B => Vendor.Apple,
  26. 0x10DE => Vendor.Nvidia,
  27. 0x13B5 => Vendor.ARM,
  28. 0x14E4 => Vendor.Broadcom,
  29. 0x8086 => Vendor.Intel,
  30. 0x5143 => Vendor.Qualcomm,
  31. _ => Vendor.Unknown,
  32. };
  33. }
  34. public static string GetNameFromId(uint id)
  35. {
  36. return id switch
  37. {
  38. 0x1002 => "AMD",
  39. 0x1010 => "ImgTec",
  40. 0x106B => "Apple",
  41. 0x10DE => "NVIDIA",
  42. 0x13B5 => "ARM",
  43. 0x14E4 => "Broadcom",
  44. 0x1AE0 => "Google",
  45. 0x5143 => "Qualcomm",
  46. 0x8086 => "Intel",
  47. 0x10001 => "Vivante",
  48. 0x10002 => "VeriSilicon",
  49. 0x10003 => "Kazan",
  50. 0x10004 => "Codeplay Software Ltd.",
  51. 0x10005 => "Mesa",
  52. 0x10006 => "PoCL",
  53. _ => $"0x{id:X}",
  54. };
  55. }
  56. public static string GetFriendlyDriverName(DriverId id)
  57. {
  58. return id switch
  59. {
  60. DriverId.AmdProprietary => "AMD",
  61. DriverId.AmdOpenSource => "AMD (Open)",
  62. DriverId.MesaRadv => "RADV",
  63. DriverId.NvidiaProprietary => "NVIDIA",
  64. DriverId.IntelProprietaryWindows => "Intel",
  65. DriverId.IntelOpenSourceMesa => "Intel (Open)",
  66. DriverId.ImaginationProprietary => "Imagination",
  67. DriverId.QualcommProprietary => "Qualcomm",
  68. DriverId.ArmProprietary => "ARM",
  69. DriverId.GoogleSwiftshader => "SwiftShader",
  70. DriverId.GgpProprietary => "GGP",
  71. DriverId.BroadcomProprietary => "Broadcom",
  72. DriverId.MesaLlvmpipe => "LLVMpipe",
  73. DriverId.Moltenvk => "MoltenVK",
  74. DriverId.CoreaviProprietary => "CoreAVI",
  75. DriverId.JuiceProprietary => "Juice",
  76. DriverId.VerisiliconProprietary => "Verisilicon",
  77. DriverId.MesaTurnip => "Turnip",
  78. DriverId.MesaV3DV => "V3DV",
  79. DriverId.MesaPanvk => "PanVK",
  80. DriverId.SamsungProprietary => "Samsung",
  81. DriverId.MesaVenus => "Venus",
  82. DriverId.MesaDozen => "Dozen",
  83. DriverId.MesaNvk => "NVK",
  84. DriverId.ImaginationOpenSourceMesa => "Imagination (Open)",
  85. DriverId.MesaHoneykrisp => "Honeykrisp",
  86. _ => id.ToString(),
  87. };
  88. }
  89. }
  90. }