Browse Source

Refactor out to common function

Signed-off-by: crueter <crueter@eden-emu.dev>
pull/3636/head
crueter 1 week ago
parent
commit
f36b14d53b
No known key found for this signature in database GPG Key ID: 425ACD2D4830EBC6
  1. 51
      src/video_core/vulkan_common/vulkan_device.cpp
  2. 60
      src/video_core/vulkan_common/vulkan_wrapper.cpp
  3. 3
      src/video_core/vulkan_common/vulkan_wrapper.h
  4. 98
      src/yuzu/vk_device_info.cpp

51
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 { 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 { bool Device::ShouldBoostClocks() const {

60
src/video_core/vulkan_common/vulkan_wrapper.cpp

@ -1012,4 +1012,64 @@ std::optional<std::vector<VkLayerProperties>> EnumerateInstanceLayerProperties(
return properties; 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 } // namespace Vulkan::vk

3
src/video_core/vulkan_common/vulkan_wrapper.h

@ -14,6 +14,7 @@
#include <type_traits> #include <type_traits>
#include <utility> #include <utility>
#include <vector> #include <vector>
#include <vulkan/vulkan_core.h>
#include "common/common_types.h" #include "common/common_types.h"
#include "video_core/vulkan_common/vulkan.h" #include "video_core/vulkan_common/vulkan.h"
@ -1601,4 +1602,6 @@ std::optional<std::vector<VkExtensionProperties>> EnumerateInstanceExtensionProp
std::optional<std::vector<VkLayerProperties>> EnumerateInstanceLayerProperties( std::optional<std::vector<VkLayerProperties>> EnumerateInstanceLayerProperties(
const InstanceDispatch& dld); const InstanceDispatch& dld);
std::string GetDriverName(VkPhysicalDeviceDriverProperties driver);
} // namespace Vulkan::vk } // namespace Vulkan::vk

98
src/yuzu/vk_device_info.cpp

@ -65,99 +65,11 @@ void PopulateRecords(std::vector<Record>& records, QWindow* window) try {
bool has_broken_compute{Vulkan::Device::CheckBrokenCompute( bool has_broken_compute{Vulkan::Device::CheckBrokenCompute(
driverID, properties.properties.driverVersion)}; 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)); records.push_back(VkDeviceInfo::Record(name, present_modes, has_broken_compute));
} }

Loading…
Cancel
Save