From b62130dab99a4d31c967862f66654823e041aa1f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Leclercq?= Date: Fri, 30 Oct 2020 23:06:56 +0100 Subject: [PATCH] VulkanRenderer: Fix physical device bullshit Keep a single list instead of many --- include/Nazara/VulkanRenderer/VulkanRenderer.hpp | 1 - src/Nazara/VulkanRenderer/VulkanRenderer.cpp | 14 +++++++++----- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/include/Nazara/VulkanRenderer/VulkanRenderer.hpp b/include/Nazara/VulkanRenderer/VulkanRenderer.hpp index d52086dce..881118bfe 100644 --- a/include/Nazara/VulkanRenderer/VulkanRenderer.hpp +++ b/include/Nazara/VulkanRenderer/VulkanRenderer.hpp @@ -41,7 +41,6 @@ namespace Nz private: std::list m_devices; - std::vector m_physDevices; ParameterList m_initializationParameters; Vk::Instance m_instance; }; diff --git a/src/Nazara/VulkanRenderer/VulkanRenderer.cpp b/src/Nazara/VulkanRenderer/VulkanRenderer.cpp index 6f1213a34..cb349a454 100644 --- a/src/Nazara/VulkanRenderer/VulkanRenderer.cpp +++ b/src/Nazara/VulkanRenderer/VulkanRenderer.cpp @@ -32,8 +32,10 @@ namespace Nz std::shared_ptr VulkanRenderer::InstanciateRenderDevice(std::size_t deviceIndex) { - assert(deviceIndex < m_physDevices.size()); - return Vulkan::SelectDevice(m_physDevices[deviceIndex]); + const auto& physDevices = Vulkan::GetPhysicalDevices(); + + assert(deviceIndex < physDevices.size()); + return Vulkan::SelectDevice(physDevices[deviceIndex]); } bool VulkanRenderer::Prepare(const ParameterList& parameters) @@ -61,10 +63,12 @@ namespace Nz std::vector VulkanRenderer::QueryRenderDevices() const { - std::vector devices; - devices.reserve(m_physDevices.size()); + const auto& physDevices = Vulkan::GetPhysicalDevices(); - for (const Vk::PhysicalDevice& physDevice : m_physDevices) + std::vector devices; + devices.reserve(physDevices.size()); + + for (const Vk::PhysicalDevice& physDevice : physDevices) { RenderDeviceInfo& device = devices.emplace_back(); device.name = physDevice.properties.deviceName;