From 1626752592910fc4fdb33a239c93056b29cf7d31 Mon Sep 17 00:00:00 2001 From: Charles Giessen Date: Fri, 27 Sep 2024 14:53:08 -0500 Subject: vulkaninfo: Correctly query per-surface queue support The previous implementation did not differentiate when a single queue supported a specific surface. It will now print 'true' if all surfaces support presentation with a queue, 'false' if none, and otherwise prints each surface type's support if they aren't uniform in value. This makes the info regarding which queue supports presentation on a surface much easier to validate the correctness of. --- vulkaninfo/vulkaninfo.cpp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'vulkaninfo/vulkaninfo.cpp') diff --git a/vulkaninfo/vulkaninfo.cpp b/vulkaninfo/vulkaninfo.cpp index 09030a0d..08eb80bf 100644 --- a/vulkaninfo/vulkaninfo.cpp +++ b/vulkaninfo/vulkaninfo.cpp @@ -396,17 +396,19 @@ void GpuDumpQueueProps(Printer &p, AppGpu &gpu, const AppQueueFamilyProperties & p.PrintKeyString("queueFlags", VkQueueFlagsString(props.queueFlags)); p.PrintKeyValue("timestampValidBits", props.timestampValidBits); - if (queue.is_present_platform_agnostic) { - p.PrintKeyString("present support", queue.platforms_support_present ? "true" : "false"); + if (!queue.can_present) { + p.PrintKeyString("present support", "false"); + } else if (queue.can_always_present) { + p.PrintKeyString("present support", "true"); } else { size_t width = 0; - for (auto &surface : gpu.inst.surface_extensions) { - if (surface.name.size() > width) width = surface.name.size(); + for (const auto &support : queue.present_support) { + if (support.first.size() > width) width = support.first.size(); } ObjectWrapper obj_present_support(p, "present support"); p.SetMinKeyWidth(width); - for (auto &surface : gpu.inst.surface_extensions) { - p.PrintKeyString(surface.name, surface.supports_present ? "true" : "false"); + for (const auto &support : queue.present_support) { + p.PrintKeyString(support.first, support.second ? "true" : "false"); } } chain_iterator_queue_properties2(p, gpu, queue.pNext); -- cgit v1.2.3