From bc1b4b85b01aee30a14c234143e72ef3435f9660 Mon Sep 17 00:00:00 2001 From: ReinUsesLisp Date: Tue, 17 Mar 2020 01:39:38 -0300 Subject: renderer_vulkan: Query device names from the backend --- src/yuzu/configuration/configure_graphics.cpp | 41 ++++----------------------- 1 file changed, 6 insertions(+), 35 deletions(-) (limited to 'src/yuzu/configuration/configure_graphics.cpp') diff --git a/src/yuzu/configuration/configure_graphics.cpp b/src/yuzu/configuration/configure_graphics.cpp index a821c7b3c..d29332033 100644 --- a/src/yuzu/configuration/configure_graphics.cpp +++ b/src/yuzu/configuration/configure_graphics.cpp @@ -14,6 +14,9 @@ #include "core/settings.h" #include "ui_configure_graphics.h" #include "yuzu/configuration/configure_graphics.h" +#ifdef HAS_VULKAN +#include "video_core/renderer_vulkan/renderer_vulkan.h" +#endif namespace { enum class Resolution : int { @@ -165,41 +168,9 @@ void ConfigureGraphics::UpdateDeviceComboBox() { void ConfigureGraphics::RetrieveVulkanDevices() { #ifdef HAS_VULKAN - QVulkanInstance instance; - instance.setApiVersion(QVersionNumber(1, 1, 0)); - if (!instance.create()) { - LOG_INFO(Frontend, "Vulkan 1.1 not available"); - return; - } - const auto vkEnumeratePhysicalDevices{reinterpret_cast( - instance.getInstanceProcAddr("vkEnumeratePhysicalDevices"))}; - if (vkEnumeratePhysicalDevices == nullptr) { - LOG_INFO(Frontend, "Failed to get pointer to vkEnumeratePhysicalDevices"); - return; - } - u32 physical_device_count; - if (vkEnumeratePhysicalDevices(instance.vkInstance(), &physical_device_count, nullptr) != - VK_SUCCESS) { - LOG_INFO(Frontend, "Failed to get physical devices count"); - return; - } - std::vector physical_devices(physical_device_count); - if (vkEnumeratePhysicalDevices(instance.vkInstance(), &physical_device_count, - physical_devices.data()) != VK_SUCCESS) { - LOG_INFO(Frontend, "Failed to get physical devices"); - return; - } - - const auto vkGetPhysicalDeviceProperties{reinterpret_cast( - instance.getInstanceProcAddr("vkGetPhysicalDeviceProperties"))}; - if (vkGetPhysicalDeviceProperties == nullptr) { - LOG_INFO(Frontend, "Failed to get pointer to vkGetPhysicalDeviceProperties"); - return; - } - for (const auto physical_device : physical_devices) { - VkPhysicalDeviceProperties properties; - vkGetPhysicalDeviceProperties(physical_device, &properties); - vulkan_devices.push_back(QString::fromUtf8(properties.deviceName)); + vulkan_devices.clear(); + for (auto& name : Vulkan::RendererVulkan::EnumerateDevices()) { + vulkan_devices.push_back(QString::fromStdString(name)); } #endif } -- cgit v1.2.3 From bf1d66b7c074c02aa8148f2edbdc959082c229e1 Mon Sep 17 00:00:00 2001 From: ReinUsesLisp Date: Thu, 2 Apr 2020 02:32:58 -0300 Subject: yuzu: Drop SDL2 and Qt frontend Vulkan requirements Create Vulkan instances and surfaces from the Vulkan backend. --- src/yuzu/configuration/configure_graphics.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'src/yuzu/configuration/configure_graphics.cpp') diff --git a/src/yuzu/configuration/configure_graphics.cpp b/src/yuzu/configuration/configure_graphics.cpp index d29332033..ea667caef 100644 --- a/src/yuzu/configuration/configure_graphics.cpp +++ b/src/yuzu/configuration/configure_graphics.cpp @@ -14,6 +14,7 @@ #include "core/settings.h" #include "ui_configure_graphics.h" #include "yuzu/configuration/configure_graphics.h" + #ifdef HAS_VULKAN #include "video_core/renderer_vulkan/renderer_vulkan.h" #endif -- cgit v1.2.3