diff --git a/src/yuzu/vk_device_info.cpp b/src/yuzu/vk_device_info.cpp index 7df31a7237..0346ca255e 100644 --- a/src/yuzu/vk_device_info.cpp +++ b/src/yuzu/vk_device_info.cpp @@ -49,15 +49,22 @@ void PopulateRecords(std::vector& records, QWindow* window) try { const auto physical_device = vk::PhysicalDevice(device, dld); std::string name = physical_device.GetProperties().deviceName; - VkPhysicalDeviceProperties2 properties2{}; - VkPhysicalDeviceVulkan12Properties vk12props{}; - properties2.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2; - vk12props.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES; - properties2.pNext = &vk12props; + const std::vector present_modes = + physical_device.GetSurfacePresentModesKHR(*surface); - physical_device.GetProperties2(properties2); + VkPhysicalDeviceDriverProperties driver_properties{}; + driver_properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES; + driver_properties.pNext = nullptr; + VkPhysicalDeviceProperties2 properties{}; + properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR; + properties.pNext = &driver_properties; + dld.vkGetPhysicalDeviceProperties2(physical_device, &properties); + + const auto driverID = driver_properties.driverID; + + bool has_broken_compute{Vulkan::Device::CheckBrokenCompute( + driverID, properties.properties.driverVersion)}; - const auto driverID = vk12props.driverID; std::string driver_string{}; switch (driverID) { @@ -110,20 +117,6 @@ void PopulateRecords(std::vector& records, QWindow* window) try { name = fmt::format("{} ({})", name, driver_string); } - const std::vector present_modes = - physical_device.GetSurfacePresentModesKHR(*surface); - - VkPhysicalDeviceDriverProperties driver_properties{}; - driver_properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES; - driver_properties.pNext = nullptr; - VkPhysicalDeviceProperties2 properties{}; - properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR; - properties.pNext = &driver_properties; - dld.vkGetPhysicalDeviceProperties2(physical_device, &properties); - - bool has_broken_compute{Vulkan::Device::CheckBrokenCompute( - driver_properties.driverID, properties.properties.driverVersion)}; - records.push_back(VkDeviceInfo::Record(name, present_modes, has_broken_compute)); } } catch (const Vulkan::vk::Exception& exception) {