From: Charles Giessen Date: Thu, 10 Jun 2021 22:19:21 +0000 (-0600) Subject: vulkaninfo: Improve formatting of surface caps X-Git-Tag: upstream/1.3.208~116 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=53231a96c0a69f03fd8a4d8770662df570ef9504;p=platform%2Fupstream%2FVulkan-Tools.git vulkaninfo: Improve formatting of surface caps VkSurfaceCapabilities has the width & height way out to the right while the rest of the structure doesn't. This makes it look inconsistent. This PR also changes the layout of the flag and flagbit printers to return earlier if possible. Change-Id: I1b478838b3c95e33354d3daf13040e891454324e --- diff --git a/scripts/vulkaninfo_generator.py b/scripts/vulkaninfo_generator.py index 7f1e136..dfa2e0e 100644 --- a/scripts/vulkaninfo_generator.py +++ b/scripts/vulkaninfo_generator.py @@ -441,7 +441,7 @@ def PrintGetFlagStrings(name, bitmask): "GetStrings(" + name + " value) {\n" out += " std::vector strings;\n" - out += " if (value == 0) strings.push_back(\"None\");\n" + out += " if (value == 0) { strings.push_back(\"None\"); return strings; }\n" for v in bitmask.options: val = v.value if isinstance(v.value, str) else str(hex(v.value)) out += " if (" + val + " & value) strings.push_back(\"" + \ @@ -454,13 +454,13 @@ def PrintFlags(bitmask, name): out = "void Dump" + name + \ "(Printer &p, std::string name, " + name + " value, int width = 0) {\n" out += " if (p.Type() == OutputType::json) { p.PrintKeyValue(name, value); return; }\n" - out += " auto strings = " + bitmask.name + \ - "GetStrings(static_cast<" + bitmask.name + ">(value));\n" out += " if (static_cast<" + bitmask.name + ">(value) == 0) {\n" out += " ArrayWrapper arr(p, name, 0);\n" out += " p.SetAsType().PrintString(\"None\");\n" out += " return;\n" out += " }\n" + out += " auto strings = " + bitmask.name + \ + "GetStrings(static_cast<" + bitmask.name + ">(value));\n" out += " ArrayWrapper arr(p, name, strings.size());\n" out += " for(auto& str : strings){\n" out += " p.SetAsType().PrintString(str);\n" diff --git a/vulkaninfo/generated/vulkaninfo.hpp b/vulkaninfo/generated/vulkaninfo.hpp index 0e72915..dd333f3 100644 --- a/vulkaninfo/generated/vulkaninfo.hpp +++ b/vulkaninfo/generated/vulkaninfo.hpp @@ -495,7 +495,7 @@ void DumpVkShaderFloatControlsIndependence(Printer &p, std::string name, VkShade } std::vectorVkCompositeAlphaFlagBitsKHRGetStrings(VkCompositeAlphaFlagBitsKHR value) { std::vector strings; - if (value == 0) strings.push_back("None"); + if (value == 0) { strings.push_back("None"); return strings; } if (0x1 & value) strings.push_back("COMPOSITE_ALPHA_OPAQUE_BIT_KHR"); if (0x2 & value) strings.push_back("COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR"); if (0x4 & value) strings.push_back("COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR"); @@ -504,12 +504,12 @@ std::vectorVkCompositeAlphaFlagBitsKHRGetStrings(VkCompositeAlphaF } void DumpVkCompositeAlphaFlagsKHR(Printer &p, std::string name, VkCompositeAlphaFlagsKHR value, int width = 0) { if (p.Type() == OutputType::json) { p.PrintKeyValue(name, value); return; } - auto strings = VkCompositeAlphaFlagBitsKHRGetStrings(static_cast(value)); if (static_cast(value) == 0) { ArrayWrapper arr(p, name, 0); p.SetAsType().PrintString("None"); return; } + auto strings = VkCompositeAlphaFlagBitsKHRGetStrings(static_cast(value)); ArrayWrapper arr(p, name, strings.size()); for(auto& str : strings){ p.SetAsType().PrintString(str); @@ -522,7 +522,7 @@ void DumpVkCompositeAlphaFlagBitsKHR(Printer &p, std::string name, VkCompositeAl std::vectorVkDeviceGroupPresentModeFlagBitsKHRGetStrings(VkDeviceGroupPresentModeFlagBitsKHR value) { std::vector strings; - if (value == 0) strings.push_back("None"); + if (value == 0) { strings.push_back("None"); return strings; } if (0x1 & value) strings.push_back("DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR"); if (0x2 & value) strings.push_back("DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR"); if (0x4 & value) strings.push_back("DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR"); @@ -531,12 +531,12 @@ std::vectorVkDeviceGroupPresentModeFlagBitsKHRGetStrings(VkDeviceG } void DumpVkDeviceGroupPresentModeFlagsKHR(Printer &p, std::string name, VkDeviceGroupPresentModeFlagsKHR value, int width = 0) { if (p.Type() == OutputType::json) { p.PrintKeyValue(name, value); return; } - auto strings = VkDeviceGroupPresentModeFlagBitsKHRGetStrings(static_cast(value)); if (static_cast(value) == 0) { ArrayWrapper arr(p, name, 0); p.SetAsType().PrintString("None"); return; } + auto strings = VkDeviceGroupPresentModeFlagBitsKHRGetStrings(static_cast(value)); ArrayWrapper arr(p, name, strings.size()); for(auto& str : strings){ p.SetAsType().PrintString(str); @@ -549,7 +549,7 @@ void DumpVkDeviceGroupPresentModeFlagBitsKHR(Printer &p, std::string name, VkDev std::vectorVkFormatFeatureFlagBitsGetStrings(VkFormatFeatureFlagBits value) { std::vector strings; - if (value == 0) strings.push_back("None"); + if (value == 0) { strings.push_back("None"); return strings; } if (0x1 & value) strings.push_back("FORMAT_FEATURE_SAMPLED_IMAGE_BIT"); if (0x2 & value) strings.push_back("FORMAT_FEATURE_STORAGE_IMAGE_BIT"); if (0x4 & value) strings.push_back("FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT"); @@ -585,12 +585,12 @@ std::vectorVkFormatFeatureFlagBitsGetStrings(VkFormatFeatureFlagBi } void DumpVkFormatFeatureFlags(Printer &p, std::string name, VkFormatFeatureFlags value, int width = 0) { if (p.Type() == OutputType::json) { p.PrintKeyValue(name, value); return; } - auto strings = VkFormatFeatureFlagBitsGetStrings(static_cast(value)); if (static_cast(value) == 0) { ArrayWrapper arr(p, name, 0); p.SetAsType().PrintString("None"); return; } + auto strings = VkFormatFeatureFlagBitsGetStrings(static_cast(value)); ArrayWrapper arr(p, name, strings.size()); for(auto& str : strings){ p.SetAsType().PrintString(str); @@ -603,7 +603,7 @@ void DumpVkFormatFeatureFlagBits(Printer &p, std::string name, VkFormatFeatureFl std::vectorVkImageUsageFlagBitsGetStrings(VkImageUsageFlagBits value) { std::vector strings; - if (value == 0) strings.push_back("None"); + if (value == 0) { strings.push_back("None"); return strings; } if (0x1 & value) strings.push_back("IMAGE_USAGE_TRANSFER_SRC_BIT"); if (0x2 & value) strings.push_back("IMAGE_USAGE_TRANSFER_DST_BIT"); if (0x4 & value) strings.push_back("IMAGE_USAGE_SAMPLED_BIT"); @@ -624,12 +624,12 @@ std::vectorVkImageUsageFlagBitsGetStrings(VkImageUsageFlagBits val } void DumpVkImageUsageFlags(Printer &p, std::string name, VkImageUsageFlags value, int width = 0) { if (p.Type() == OutputType::json) { p.PrintKeyValue(name, value); return; } - auto strings = VkImageUsageFlagBitsGetStrings(static_cast(value)); if (static_cast(value) == 0) { ArrayWrapper arr(p, name, 0); p.SetAsType().PrintString("None"); return; } + auto strings = VkImageUsageFlagBitsGetStrings(static_cast(value)); ArrayWrapper arr(p, name, strings.size()); for(auto& str : strings){ p.SetAsType().PrintString(str); @@ -642,19 +642,19 @@ void DumpVkImageUsageFlagBits(Printer &p, std::string name, VkImageUsageFlagBits std::vectorVkMemoryHeapFlagBitsGetStrings(VkMemoryHeapFlagBits value) { std::vector strings; - if (value == 0) strings.push_back("None"); + if (value == 0) { strings.push_back("None"); return strings; } if (0x1 & value) strings.push_back("MEMORY_HEAP_DEVICE_LOCAL_BIT"); if (0x2 & value) strings.push_back("MEMORY_HEAP_MULTI_INSTANCE_BIT"); return strings; } void DumpVkMemoryHeapFlags(Printer &p, std::string name, VkMemoryHeapFlags value, int width = 0) { if (p.Type() == OutputType::json) { p.PrintKeyValue(name, value); return; } - auto strings = VkMemoryHeapFlagBitsGetStrings(static_cast(value)); if (static_cast(value) == 0) { ArrayWrapper arr(p, name, 0); p.SetAsType().PrintString("None"); return; } + auto strings = VkMemoryHeapFlagBitsGetStrings(static_cast(value)); ArrayWrapper arr(p, name, strings.size()); for(auto& str : strings){ p.SetAsType().PrintString(str); @@ -667,7 +667,7 @@ void DumpVkMemoryHeapFlagBits(Printer &p, std::string name, VkMemoryHeapFlagBits std::vectorVkMemoryPropertyFlagBitsGetStrings(VkMemoryPropertyFlagBits value) { std::vector strings; - if (value == 0) strings.push_back("None"); + if (value == 0) { strings.push_back("None"); return strings; } if (0x1 & value) strings.push_back("MEMORY_PROPERTY_DEVICE_LOCAL_BIT"); if (0x2 & value) strings.push_back("MEMORY_PROPERTY_HOST_VISIBLE_BIT"); if (0x4 & value) strings.push_back("MEMORY_PROPERTY_HOST_COHERENT_BIT"); @@ -680,12 +680,12 @@ std::vectorVkMemoryPropertyFlagBitsGetStrings(VkMemoryPropertyFlag } void DumpVkMemoryPropertyFlags(Printer &p, std::string name, VkMemoryPropertyFlags value, int width = 0) { if (p.Type() == OutputType::json) { p.PrintKeyValue(name, value); return; } - auto strings = VkMemoryPropertyFlagBitsGetStrings(static_cast(value)); if (static_cast(value) == 0) { ArrayWrapper arr(p, name, 0); p.SetAsType().PrintString("None"); return; } + auto strings = VkMemoryPropertyFlagBitsGetStrings(static_cast(value)); ArrayWrapper arr(p, name, strings.size()); for(auto& str : strings){ p.SetAsType().PrintString(str); @@ -731,7 +731,7 @@ std::string VkQueueFlagsString(VkQueueFlags value, int width = 0) { } std::vectorVkResolveModeFlagBitsGetStrings(VkResolveModeFlagBits value) { std::vector strings; - if (value == 0) strings.push_back("None"); + if (value == 0) { strings.push_back("None"); return strings; } if (0 & value) strings.push_back("RESOLVE_MODE_NONE"); if (0x1 & value) strings.push_back("RESOLVE_MODE_SAMPLE_ZERO_BIT"); if (0x2 & value) strings.push_back("RESOLVE_MODE_AVERAGE_BIT"); @@ -741,12 +741,12 @@ std::vectorVkResolveModeFlagBitsGetStrings(VkResolveModeFlagBits v } void DumpVkResolveModeFlags(Printer &p, std::string name, VkResolveModeFlags value, int width = 0) { if (p.Type() == OutputType::json) { p.PrintKeyValue(name, value); return; } - auto strings = VkResolveModeFlagBitsGetStrings(static_cast(value)); if (static_cast(value) == 0) { ArrayWrapper arr(p, name, 0); p.SetAsType().PrintString("None"); return; } + auto strings = VkResolveModeFlagBitsGetStrings(static_cast(value)); ArrayWrapper arr(p, name, strings.size()); for(auto& str : strings){ p.SetAsType().PrintString(str); @@ -759,7 +759,7 @@ void DumpVkResolveModeFlagBits(Printer &p, std::string name, VkResolveModeFlagBi std::vectorVkSampleCountFlagBitsGetStrings(VkSampleCountFlagBits value) { std::vector strings; - if (value == 0) strings.push_back("None"); + if (value == 0) { strings.push_back("None"); return strings; } if (0x1 & value) strings.push_back("SAMPLE_COUNT_1_BIT"); if (0x2 & value) strings.push_back("SAMPLE_COUNT_2_BIT"); if (0x4 & value) strings.push_back("SAMPLE_COUNT_4_BIT"); @@ -771,12 +771,12 @@ std::vectorVkSampleCountFlagBitsGetStrings(VkSampleCountFlagBits v } void DumpVkSampleCountFlags(Printer &p, std::string name, VkSampleCountFlags value, int width = 0) { if (p.Type() == OutputType::json) { p.PrintKeyValue(name, value); return; } - auto strings = VkSampleCountFlagBitsGetStrings(static_cast(value)); if (static_cast(value) == 0) { ArrayWrapper arr(p, name, 0); p.SetAsType().PrintString("None"); return; } + auto strings = VkSampleCountFlagBitsGetStrings(static_cast(value)); ArrayWrapper arr(p, name, strings.size()); for(auto& str : strings){ p.SetAsType().PrintString(str); @@ -789,7 +789,7 @@ void DumpVkSampleCountFlagBits(Printer &p, std::string name, VkSampleCountFlagBi std::vectorVkShaderStageFlagBitsGetStrings(VkShaderStageFlagBits value) { std::vector strings; - if (value == 0) strings.push_back("None"); + if (value == 0) { strings.push_back("None"); return strings; } if (0x1 & value) strings.push_back("SHADER_STAGE_VERTEX_BIT"); if (0x2 & value) strings.push_back("SHADER_STAGE_TESSELLATION_CONTROL_BIT"); if (0x4 & value) strings.push_back("SHADER_STAGE_TESSELLATION_EVALUATION_BIT"); @@ -810,12 +810,12 @@ std::vectorVkShaderStageFlagBitsGetStrings(VkShaderStageFlagBits v } void DumpVkShaderStageFlags(Printer &p, std::string name, VkShaderStageFlags value, int width = 0) { if (p.Type() == OutputType::json) { p.PrintKeyValue(name, value); return; } - auto strings = VkShaderStageFlagBitsGetStrings(static_cast(value)); if (static_cast(value) == 0) { ArrayWrapper arr(p, name, 0); p.SetAsType().PrintString("None"); return; } + auto strings = VkShaderStageFlagBitsGetStrings(static_cast(value)); ArrayWrapper arr(p, name, strings.size()); for(auto& str : strings){ p.SetAsType().PrintString(str); @@ -828,7 +828,7 @@ void DumpVkShaderStageFlagBits(Printer &p, std::string name, VkShaderStageFlagBi std::vectorVkSubgroupFeatureFlagBitsGetStrings(VkSubgroupFeatureFlagBits value) { std::vector strings; - if (value == 0) strings.push_back("None"); + if (value == 0) { strings.push_back("None"); return strings; } if (0x1 & value) strings.push_back("SUBGROUP_FEATURE_BASIC_BIT"); if (0x2 & value) strings.push_back("SUBGROUP_FEATURE_VOTE_BIT"); if (0x4 & value) strings.push_back("SUBGROUP_FEATURE_ARITHMETIC_BIT"); @@ -842,12 +842,12 @@ std::vectorVkSubgroupFeatureFlagBitsGetStrings(VkSubgroupFeatureFl } void DumpVkSubgroupFeatureFlags(Printer &p, std::string name, VkSubgroupFeatureFlags value, int width = 0) { if (p.Type() == OutputType::json) { p.PrintKeyValue(name, value); return; } - auto strings = VkSubgroupFeatureFlagBitsGetStrings(static_cast(value)); if (static_cast(value) == 0) { ArrayWrapper arr(p, name, 0); p.SetAsType().PrintString("None"); return; } + auto strings = VkSubgroupFeatureFlagBitsGetStrings(static_cast(value)); ArrayWrapper arr(p, name, strings.size()); for(auto& str : strings){ p.SetAsType().PrintString(str); @@ -860,18 +860,18 @@ void DumpVkSubgroupFeatureFlagBits(Printer &p, std::string name, VkSubgroupFeatu std::vectorVkSurfaceCounterFlagBitsEXTGetStrings(VkSurfaceCounterFlagBitsEXT value) { std::vector strings; - if (value == 0) strings.push_back("None"); + if (value == 0) { strings.push_back("None"); return strings; } if (0x1 & value) strings.push_back("SURFACE_COUNTER_VBLANK_BIT_EXT"); return strings; } void DumpVkSurfaceCounterFlagsEXT(Printer &p, std::string name, VkSurfaceCounterFlagsEXT value, int width = 0) { if (p.Type() == OutputType::json) { p.PrintKeyValue(name, value); return; } - auto strings = VkSurfaceCounterFlagBitsEXTGetStrings(static_cast(value)); if (static_cast(value) == 0) { ArrayWrapper arr(p, name, 0); p.SetAsType().PrintString("None"); return; } + auto strings = VkSurfaceCounterFlagBitsEXTGetStrings(static_cast(value)); ArrayWrapper arr(p, name, strings.size()); for(auto& str : strings){ p.SetAsType().PrintString(str); @@ -884,7 +884,7 @@ void DumpVkSurfaceCounterFlagBitsEXT(Printer &p, std::string name, VkSurfaceCoun std::vectorVkSurfaceTransformFlagBitsKHRGetStrings(VkSurfaceTransformFlagBitsKHR value) { std::vector strings; - if (value == 0) strings.push_back("None"); + if (value == 0) { strings.push_back("None"); return strings; } if (0x1 & value) strings.push_back("SURFACE_TRANSFORM_IDENTITY_BIT_KHR"); if (0x2 & value) strings.push_back("SURFACE_TRANSFORM_ROTATE_90_BIT_KHR"); if (0x4 & value) strings.push_back("SURFACE_TRANSFORM_ROTATE_180_BIT_KHR"); @@ -898,12 +898,12 @@ std::vectorVkSurfaceTransformFlagBitsKHRGetStrings(VkSurfaceTransf } void DumpVkSurfaceTransformFlagsKHR(Printer &p, std::string name, VkSurfaceTransformFlagsKHR value, int width = 0) { if (p.Type() == OutputType::json) { p.PrintKeyValue(name, value); return; } - auto strings = VkSurfaceTransformFlagBitsKHRGetStrings(static_cast(value)); if (static_cast(value) == 0) { ArrayWrapper arr(p, name, 0); p.SetAsType().PrintString("None"); return; } + auto strings = VkSurfaceTransformFlagBitsKHRGetStrings(static_cast(value)); ArrayWrapper arr(p, name, strings.size()); for(auto& str : strings){ p.SetAsType().PrintString(str); @@ -916,7 +916,7 @@ void DumpVkSurfaceTransformFlagBitsKHR(Printer &p, std::string name, VkSurfaceTr std::vectorVkToolPurposeFlagBitsEXTGetStrings(VkToolPurposeFlagBitsEXT value) { std::vector strings; - if (value == 0) strings.push_back("None"); + if (value == 0) { strings.push_back("None"); return strings; } if (0x1 & value) strings.push_back("TOOL_PURPOSE_VALIDATION_BIT_EXT"); if (0x2 & value) strings.push_back("TOOL_PURPOSE_PROFILING_BIT_EXT"); if (0x4 & value) strings.push_back("TOOL_PURPOSE_TRACING_BIT_EXT"); @@ -928,12 +928,12 @@ std::vectorVkToolPurposeFlagBitsEXTGetStrings(VkToolPurposeFlagBit } void DumpVkToolPurposeFlagsEXT(Printer &p, std::string name, VkToolPurposeFlagsEXT value, int width = 0) { if (p.Type() == OutputType::json) { p.PrintKeyValue(name, value); return; } - auto strings = VkToolPurposeFlagBitsEXTGetStrings(static_cast(value)); if (static_cast(value) == 0) { ArrayWrapper arr(p, name, 0); p.SetAsType().PrintString("None"); return; } + auto strings = VkToolPurposeFlagBitsEXTGetStrings(static_cast(value)); ArrayWrapper arr(p, name, strings.size()); for(auto& str : strings){ p.SetAsType().PrintString(str); diff --git a/vulkaninfo/outputprinter.h b/vulkaninfo/outputprinter.h index 4169a23..37a0a9f 100644 --- a/vulkaninfo/outputprinter.h +++ b/vulkaninfo/outputprinter.h @@ -272,6 +272,16 @@ class Printer { return *this; } + Printer &SetIgnoreMinWidth() { + ignore_min_width_parameter = true; + return *this; + } + + Printer &UnsetIgnoreMinWidth() { + ignore_min_width_parameter = false; + return *this; + } + Printer &SetElementIndex(int index) { assert(index >= 0 && "cannot set element index to a negative value"); element_index = index; @@ -462,10 +472,9 @@ class Printer { void PrintKeyValue(std::string key, T value, size_t min_key_width = 0, std::string value_description = "") { switch (output_type) { case (OutputType::text): - if (min_key_width > key.size()) { - out << std::string(static_cast(indents), '\t') << key << std::string(min_key_width - key.size(), ' '); - } else { - out << std::string(static_cast(indents), '\t') << key; + out << std::string(static_cast(indents), '\t') << key; + if (min_key_width > key.size() && !ignore_min_width_parameter) { + out << std::string(min_key_width - key.size(), ' '); } out << " = " << value; if (value_description != "") { @@ -674,6 +683,8 @@ class Printer { // make object titles the color of types bool set_object_name_as_type = false; + bool ignore_min_width_parameter = false; + // objects which are in an array int element_index = -1; // negative one is the sentinel value diff --git a/vulkaninfo/vulkaninfo.cpp b/vulkaninfo/vulkaninfo.cpp index 63b78ba..a4face9 100644 --- a/vulkaninfo/vulkaninfo.cpp +++ b/vulkaninfo/vulkaninfo.cpp @@ -155,8 +155,9 @@ void DumpPresentModes(Printer &p, AppSurface &surface) { void DumpSurfaceCapabilities(Printer &p, AppInstance &inst, AppGpu &gpu, AppSurface &surface) { auto &surf_cap = surface.surface_capabilities; - p.SetSubHeader(); + p.SetSubHeader().SetIgnoreMinWidth(); DumpVkSurfaceCapabilitiesKHR(p, "VkSurfaceCapabilitiesKHR", surf_cap); + p.UnsetIgnoreMinWidth(); if (inst.CheckExtensionEnabled(VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME)) { p.SetSubHeader();