From f36b14d53b298755be4dd2d384beddab63f2db6d Mon Sep 17 00:00:00 2001 From: crueter Date: Tue, 24 Feb 2026 21:48:37 -0500 Subject: [PATCH] Refactor out to common function Signed-off-by: crueter --- .../vulkan_common/vulkan_device.cpp | 51 +--------- .../vulkan_common/vulkan_wrapper.cpp | 60 ++++++++++++ src/video_core/vulkan_common/vulkan_wrapper.h | 3 + src/yuzu/vk_device_info.cpp | 98 +------------------ 4 files changed, 69 insertions(+), 143 deletions(-) diff --git a/src/video_core/vulkan_common/vulkan_device.cpp b/src/video_core/vulkan_common/vulkan_device.cpp index 8cb2ebfb62..3d98f2cbf7 100644 --- a/src/video_core/vulkan_common/vulkan_device.cpp +++ b/src/video_core/vulkan_common/vulkan_device.cpp @@ -850,56 +850,7 @@ bool Device::IsFormatSupported(VkFormat wanted_format, VkFormatFeatureFlags want } std::string Device::GetDriverName() const { - switch (properties.driver.driverID) { - case VK_DRIVER_ID_AMD_PROPRIETARY: - return "AMD"; - case VK_DRIVER_ID_AMD_OPEN_SOURCE: - return "AMDVLK"; - case VK_DRIVER_ID_MESA_RADV: - return "RADV"; - case VK_DRIVER_ID_NVIDIA_PROPRIETARY: - return "NVIDIA"; - case VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS: - return "Intel"; - case VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA: - return "ANV"; - case VK_DRIVER_ID_IMAGINATION_PROPRIETARY: - return "PowerVR"; - case VK_DRIVER_ID_QUALCOMM_PROPRIETARY: - return "Qualcomm"; - case VK_DRIVER_ID_ARM_PROPRIETARY: - return "Mali"; - case VK_DRIVER_ID_SAMSUNG_PROPRIETARY: - return "Xclipse"; - case VK_DRIVER_ID_GOOGLE_SWIFTSHADER: - return "SwiftShader"; - case VK_DRIVER_ID_BROADCOM_PROPRIETARY: - return "Broadcom"; - case VK_DRIVER_ID_MESA_LLVMPIPE: - return "Lavapipe"; - case VK_DRIVER_ID_MOLTENVK: - return "MoltenVK"; - case VK_DRIVER_ID_VERISILICON_PROPRIETARY: - return "Vivante"; - case VK_DRIVER_ID_MESA_TURNIP: - return "Turnip"; - case VK_DRIVER_ID_MESA_V3DV: - return "V3DV"; - case VK_DRIVER_ID_MESA_PANVK: - return "PanVK"; - case VK_DRIVER_ID_MESA_VENUS: - return "Venus"; - case VK_DRIVER_ID_MESA_DOZEN: - return "Dozen"; - case VK_DRIVER_ID_MESA_NVK: - return "NVK"; - case VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA: - return "PVR"; - // case VK_DRIVER_ID_MESA_AGXV: - // return "Asahi"; - default: - return properties.driver.driverName; - } + return vk::GetDriverName(properties.driver); } bool Device::ShouldBoostClocks() const { diff --git a/src/video_core/vulkan_common/vulkan_wrapper.cpp b/src/video_core/vulkan_common/vulkan_wrapper.cpp index 534a11edd4..3c7abfbada 100644 --- a/src/video_core/vulkan_common/vulkan_wrapper.cpp +++ b/src/video_core/vulkan_common/vulkan_wrapper.cpp @@ -1012,4 +1012,64 @@ std::optional> EnumerateInstanceLayerProperties( return properties; } +std::string GetDriverName(VkPhysicalDeviceDriverProperties driver) { + switch (driver.driverID) { + case VK_DRIVER_ID_AMD_PROPRIETARY: + return "AMD"; + case VK_DRIVER_ID_AMD_OPEN_SOURCE: + return "AMDVLK"; + case VK_DRIVER_ID_MESA_RADV: + return "RADV"; + case VK_DRIVER_ID_NVIDIA_PROPRIETARY: + return "NVIDIA"; + case VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS: + return "Intel"; + case VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA: + return "ANV"; + case VK_DRIVER_ID_IMAGINATION_PROPRIETARY: + return "PowerVR"; + case VK_DRIVER_ID_QUALCOMM_PROPRIETARY: + return "Qualcomm"; + case VK_DRIVER_ID_ARM_PROPRIETARY: + return "Mali"; + case VK_DRIVER_ID_SAMSUNG_PROPRIETARY: + return "Xclipse"; + case VK_DRIVER_ID_GOOGLE_SWIFTSHADER: + return "SwiftShader"; + case VK_DRIVER_ID_BROADCOM_PROPRIETARY: + return "Broadcom"; + case VK_DRIVER_ID_MESA_LLVMPIPE: + return "Lavapipe"; + case VK_DRIVER_ID_MOLTENVK: + return "MoltenVK"; + case VK_DRIVER_ID_VERISILICON_PROPRIETARY: + return "Vivante"; + case VK_DRIVER_ID_MESA_TURNIP: + return "Turnip"; + case VK_DRIVER_ID_MESA_V3DV: + return "V3DV"; + case VK_DRIVER_ID_MESA_PANVK: + return "PanVK"; + case VK_DRIVER_ID_MESA_VENUS: + return "Venus"; + case VK_DRIVER_ID_MESA_DOZEN: + return "Dozen"; + case VK_DRIVER_ID_MESA_NVK: + return "NVK"; + case VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA: + return "PVR"; + case VK_DRIVER_ID_MESA_HONEYKRISP: + return "HoneyKrisp"; + case VK_DRIVER_ID_MESA_KOSMICKRISP: + return "KosmicKrisp"; + case VK_DRIVER_ID_GGP_PROPRIETARY: + case VK_DRIVER_ID_COREAVI_PROPRIETARY: + case VK_DRIVER_ID_JUICE_PROPRIETARY: + case VK_DRIVER_ID_VULKAN_SC_EMULATION_ON_VULKAN: + case VK_DRIVER_ID_MAX_ENUM: + default: + return driver.driverName; + } +} + } // namespace Vulkan::vk diff --git a/src/video_core/vulkan_common/vulkan_wrapper.h b/src/video_core/vulkan_common/vulkan_wrapper.h index 04b9420d98..06d243d5ff 100644 --- a/src/video_core/vulkan_common/vulkan_wrapper.h +++ b/src/video_core/vulkan_common/vulkan_wrapper.h @@ -14,6 +14,7 @@ #include #include #include +#include #include "common/common_types.h" #include "video_core/vulkan_common/vulkan.h" @@ -1601,4 +1602,6 @@ std::optional> EnumerateInstanceExtensionProp std::optional> EnumerateInstanceLayerProperties( const InstanceDispatch& dld); +std::string GetDriverName(VkPhysicalDeviceDriverProperties driver); + } // namespace Vulkan::vk diff --git a/src/yuzu/vk_device_info.cpp b/src/yuzu/vk_device_info.cpp index 1deac68d97..45faecb95d 100644 --- a/src/yuzu/vk_device_info.cpp +++ b/src/yuzu/vk_device_info.cpp @@ -65,99 +65,11 @@ void PopulateRecords(std::vector& records, QWindow* window) try { bool has_broken_compute{Vulkan::Device::CheckBrokenCompute( driverID, properties.properties.driverVersion)}; - std::string driver_string{}; - - // TODO: This can be moved to a utility function but I'm lazy. - switch (driverID) { - case VK_DRIVER_ID_MESA_DOZEN: - driver_string = "Dozen"; - break; - case VK_DRIVER_ID_MOLTENVK: - driver_string = "MoltenVK"; - break; - case VK_DRIVER_ID_AMD_OPEN_SOURCE: - driver_string = "AMDVLK"; - break; - case VK_DRIVER_ID_GOOGLE_SWIFTSHADER: - driver_string = "SwiftShader"; - break; - case VK_DRIVER_ID_MESA_LLVMPIPE: - driver_string = "llvmpipe"; - break; - case VK_DRIVER_ID_SAMSUNG_PROPRIETARY: - driver_string = "Samsung"; - break; - case VK_DRIVER_ID_COREAVI_PROPRIETARY: - driver_string = "Coreavi"; - break; - case VK_DRIVER_ID_JUICE_PROPRIETARY: - case VK_DRIVER_ID_MESA_VENUS: - driver_string = "Virtualized"; - break; - case VK_DRIVER_ID_VERISILICON_PROPRIETARY: - driver_string = "Verisilicon"; - break; - case VK_DRIVER_ID_AMD_PROPRIETARY: - driver_string = "AMD"; - break; - case VK_DRIVER_ID_NVIDIA_PROPRIETARY: - driver_string = "Nvidia"; - break; - case VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS: - driver_string = "Intel"; - break; - case VK_DRIVER_ID_IMAGINATION_PROPRIETARY: - driver_string = "Imagination"; - break; - case VK_DRIVER_ID_QUALCOMM_PROPRIETARY: - driver_string = "Qualcomm"; - break; - case VK_DRIVER_ID_ARM_PROPRIETARY: - driver_string = "ARM"; - break; - // ? - case VK_DRIVER_ID_GGP_PROPRIETARY: - driver_string = "GGP"; - break; - case VK_DRIVER_ID_BROADCOM_PROPRIETARY: - driver_string = "Broadcom"; - break; - case VK_DRIVER_ID_MESA_NVK: - driver_string = "Nouveau"; - break; - case VK_DRIVER_ID_MESA_TURNIP: - driver_string = "Turnip"; - break; - case VK_DRIVER_ID_MESA_PANVK: - driver_string = "Panfrost"; - break; - case VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA: - driver_string = "PowerVR MESA"; - break; - case VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA: - driver_string = "ANV"; - break; - case VK_DRIVER_ID_MESA_RADV: - driver_string = "RADV"; - break; - case VK_DRIVER_ID_MESA_V3DV: - driver_string = "V3DV"; - break; - case VK_DRIVER_ID_MESA_HONEYKRISP: - driver_string = "HoneyKrisp"; - break; - case VK_DRIVER_ID_MESA_KOSMICKRISP: - driver_string = "KosmicKrisp"; - break; - case VK_DRIVER_ID_MAX_ENUM: - case VK_DRIVER_ID_VULKAN_SC_EMULATION_ON_VULKAN: - default: - break; - } - - if (!driver_string.empty()) { - name = fmt::format("{} ({})", name, driver_string); - } + std::string driver_string = Vulkan::vk::GetDriverName(driver_properties); + + if (driver_string.empty()) driver_string = "Unknown"; + + name = fmt::format("{} ({})", name, driver_string); records.push_back(VkDeviceInfo::Record(name, present_modes, has_broken_compute)); }