diff options
| author | Charles Giessen <charles@lunarg.com> | 2021-11-29 22:44:05 -0700 |
|---|---|---|
| committer | Charles Giessen <46324611+charles-lunarg@users.noreply.github.com> | 2022-02-02 16:22:12 -0700 |
| commit | cc0a0325deac7a20532766840edbed5167c2b183 (patch) | |
| tree | 5d26f18d6ee82e3f6351c0c07ad48120f2b93869 | |
| parent | 7a132ba4df38473423a2e1c0d212df2134bebc77 (diff) | |
| download | usermoji-cc0a0325deac7a20532766840edbed5167c2b183.tar.xz | |
vulkaninfo: bitmask printers check for 0 value
Only generate the early exit if there doesn't exist an bitmask which has a
value of 0. For example, VK_RESOLVE_MODE_NONE has a value of 0, but it would
never be printed without this special case.
| -rw-r--r-- | scripts/vulkaninfo_generator.py | 7 | ||||
| -rw-r--r-- | vulkaninfo/generated/vulkaninfo.hpp | 32 |
2 files changed, 20 insertions, 19 deletions
diff --git a/scripts/vulkaninfo_generator.py b/scripts/vulkaninfo_generator.py index 50bfcfb0..e7381e8b 100644 --- a/scripts/vulkaninfo_generator.py +++ b/scripts/vulkaninfo_generator.py @@ -430,9 +430,12 @@ def PrintEnum(enum, gen): def PrintGetFlagStrings(name, bitmask): out = '' - out += f"std::vector<const char *>{name}GetStrings({name} value) {{\n" + out += f"std::vector<const char *> {name}GetStrings({name} value) {{\n" out += f" std::vector<const char *> strings;\n" - out += f" if (value == 0) {{ strings.push_back(\"None\"); return strings; }}\n" + # If a bitmask contains a field whose value is zero, we want to support printing the correct bitflag + # Otherwise, use "None" for when there are not bits set in the bitmask + if bitmask.options[0].value != "0": + out += f" if (value == 0) {{ strings.push_back(\"None\"); return strings; }}\n" for v in bitmask.options: out += f" if ({v.name} & value) strings.push_back(\"{str(v.name[3:])}\");\n" out += f" return strings;\n}}\n" diff --git a/vulkaninfo/generated/vulkaninfo.hpp b/vulkaninfo/generated/vulkaninfo.hpp index 69661bb0..89fbc936 100644 --- a/vulkaninfo/generated/vulkaninfo.hpp +++ b/vulkaninfo/generated/vulkaninfo.hpp @@ -515,7 +515,7 @@ void DumpVkShaderFloatControlsIndependence(Printer &p, std::string name, VkShade p.PrintKeyString(name, VkShaderFloatControlsIndependenceString(value)); } } -std::vector<const char *>VkCompositeAlphaFlagBitsKHRGetStrings(VkCompositeAlphaFlagBitsKHR value) { +std::vector<const char *> VkCompositeAlphaFlagBitsKHRGetStrings(VkCompositeAlphaFlagBitsKHR value) { std::vector<const char *> strings; if (value == 0) { strings.push_back("None"); return strings; } if (VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR & value) strings.push_back("COMPOSITE_ALPHA_OPAQUE_BIT_KHR"); @@ -543,7 +543,7 @@ void DumpVkCompositeAlphaFlagBitsKHR(Printer &p, std::string name, VkCompositeAl p.PrintKeyString(name, strings.at(0)); } -std::vector<const char *>VkDeviceGroupPresentModeFlagBitsKHRGetStrings(VkDeviceGroupPresentModeFlagBitsKHR value) { +std::vector<const char *> VkDeviceGroupPresentModeFlagBitsKHRGetStrings(VkDeviceGroupPresentModeFlagBitsKHR value) { std::vector<const char *> strings; if (value == 0) { strings.push_back("None"); return strings; } if (VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR & value) strings.push_back("DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR"); @@ -571,7 +571,7 @@ void DumpVkDeviceGroupPresentModeFlagBitsKHR(Printer &p, std::string name, VkDev p.PrintKeyString(name, strings.at(0)); } -std::vector<const char *>VkFormatFeatureFlagBitsGetStrings(VkFormatFeatureFlagBits value) { +std::vector<const char *> VkFormatFeatureFlagBitsGetStrings(VkFormatFeatureFlagBits value) { std::vector<const char *> strings; if (value == 0) { strings.push_back("None"); return strings; } if (VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT & value) strings.push_back("FORMAT_FEATURE_SAMPLED_IMAGE_BIT"); @@ -626,7 +626,7 @@ void DumpVkFormatFeatureFlagBits(Printer &p, std::string name, VkFormatFeatureFl p.PrintKeyString(name, strings.at(0)); } -std::vector<const char *>VkFormatFeatureFlagBits2GetStrings(VkFormatFeatureFlagBits2 value) { +std::vector<const char *> VkFormatFeatureFlagBits2GetStrings(VkFormatFeatureFlagBits2 value) { std::vector<const char *> strings; if (value == 0) { strings.push_back("None"); return strings; } if (VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT & value) strings.push_back("FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT"); @@ -685,7 +685,7 @@ void DumpVkFormatFeatureFlagBits2(Printer &p, std::string name, VkFormatFeatureF p.PrintKeyString(name, strings.at(0)); } -std::vector<const char *>VkImageUsageFlagBitsGetStrings(VkImageUsageFlagBits value) { +std::vector<const char *> VkImageUsageFlagBitsGetStrings(VkImageUsageFlagBits value) { std::vector<const char *> strings; if (value == 0) { strings.push_back("None"); return strings; } if (VK_IMAGE_USAGE_TRANSFER_SRC_BIT & value) strings.push_back("IMAGE_USAGE_TRANSFER_SRC_BIT"); @@ -726,7 +726,7 @@ void DumpVkImageUsageFlagBits(Printer &p, std::string name, VkImageUsageFlagBits p.PrintKeyString(name, strings.at(0)); } -std::vector<const char *>VkMemoryHeapFlagBitsGetStrings(VkMemoryHeapFlagBits value) { +std::vector<const char *> VkMemoryHeapFlagBitsGetStrings(VkMemoryHeapFlagBits value) { std::vector<const char *> strings; if (value == 0) { strings.push_back("None"); return strings; } if (VK_MEMORY_HEAP_DEVICE_LOCAL_BIT & value) strings.push_back("MEMORY_HEAP_DEVICE_LOCAL_BIT"); @@ -752,7 +752,7 @@ void DumpVkMemoryHeapFlagBits(Printer &p, std::string name, VkMemoryHeapFlagBits p.PrintKeyString(name, strings.at(0)); } -std::vector<const char *>VkMemoryPropertyFlagBitsGetStrings(VkMemoryPropertyFlagBits value) { +std::vector<const char *> VkMemoryPropertyFlagBitsGetStrings(VkMemoryPropertyFlagBits value) { std::vector<const char *> strings; if (value == 0) { strings.push_back("None"); return strings; } if (VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT & value) strings.push_back("MEMORY_PROPERTY_DEVICE_LOCAL_BIT"); @@ -818,9 +818,8 @@ std::string VkQueueFlagsString(VkQueueFlags value) { } return out; } -std::vector<const char *>VkResolveModeFlagBitsGetStrings(VkResolveModeFlagBits value) { +std::vector<const char *> VkResolveModeFlagBitsGetStrings(VkResolveModeFlagBits value) { std::vector<const char *> strings; - if (value == 0) { strings.push_back("None"); return strings; } if (VK_RESOLVE_MODE_NONE & value) strings.push_back("RESOLVE_MODE_NONE"); if (VK_RESOLVE_MODE_SAMPLE_ZERO_BIT & value) strings.push_back("RESOLVE_MODE_SAMPLE_ZERO_BIT"); if (VK_RESOLVE_MODE_AVERAGE_BIT & value) strings.push_back("RESOLVE_MODE_AVERAGE_BIT"); @@ -847,7 +846,7 @@ void DumpVkResolveModeFlagBits(Printer &p, std::string name, VkResolveModeFlagBi p.PrintKeyString(name, strings.at(0)); } -std::vector<const char *>VkSampleCountFlagBitsGetStrings(VkSampleCountFlagBits value) { +std::vector<const char *> VkSampleCountFlagBitsGetStrings(VkSampleCountFlagBits value) { std::vector<const char *> strings; if (value == 0) { strings.push_back("None"); return strings; } if (VK_SAMPLE_COUNT_1_BIT & value) strings.push_back("SAMPLE_COUNT_1_BIT"); @@ -878,7 +877,7 @@ void DumpVkSampleCountFlagBits(Printer &p, std::string name, VkSampleCountFlagBi p.PrintKeyString(name, strings.at(0)); } -std::vector<const char *>VkShaderStageFlagBitsGetStrings(VkShaderStageFlagBits value) { +std::vector<const char *> VkShaderStageFlagBitsGetStrings(VkShaderStageFlagBits value) { std::vector<const char *> strings; if (value == 0) { strings.push_back("None"); return strings; } if (VK_SHADER_STAGE_VERTEX_BIT & value) strings.push_back("SHADER_STAGE_VERTEX_BIT"); @@ -919,7 +918,7 @@ void DumpVkShaderStageFlagBits(Printer &p, std::string name, VkShaderStageFlagBi p.PrintKeyString(name, strings.at(0)); } -std::vector<const char *>VkSubgroupFeatureFlagBitsGetStrings(VkSubgroupFeatureFlagBits value) { +std::vector<const char *> VkSubgroupFeatureFlagBitsGetStrings(VkSubgroupFeatureFlagBits value) { std::vector<const char *> strings; if (value == 0) { strings.push_back("None"); return strings; } if (VK_SUBGROUP_FEATURE_BASIC_BIT & value) strings.push_back("SUBGROUP_FEATURE_BASIC_BIT"); @@ -952,7 +951,7 @@ void DumpVkSubgroupFeatureFlagBits(Printer &p, std::string name, VkSubgroupFeatu p.PrintKeyString(name, strings.at(0)); } -std::vector<const char *>VkSurfaceCounterFlagBitsEXTGetStrings(VkSurfaceCounterFlagBitsEXT value) { +std::vector<const char *> VkSurfaceCounterFlagBitsEXTGetStrings(VkSurfaceCounterFlagBitsEXT value) { std::vector<const char *> strings; if (value == 0) { strings.push_back("None"); return strings; } if (VK_SURFACE_COUNTER_VBLANK_BIT_EXT & value) strings.push_back("SURFACE_COUNTER_VBLANK_BIT_EXT"); @@ -977,7 +976,7 @@ void DumpVkSurfaceCounterFlagBitsEXT(Printer &p, std::string name, VkSurfaceCoun p.PrintKeyString(name, strings.at(0)); } -std::vector<const char *>VkSurfaceTransformFlagBitsKHRGetStrings(VkSurfaceTransformFlagBitsKHR value) { +std::vector<const char *> VkSurfaceTransformFlagBitsKHRGetStrings(VkSurfaceTransformFlagBitsKHR value) { std::vector<const char *> strings; if (value == 0) { strings.push_back("None"); return strings; } if (VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR & value) strings.push_back("SURFACE_TRANSFORM_IDENTITY_BIT_KHR"); @@ -1010,7 +1009,7 @@ void DumpVkSurfaceTransformFlagBitsKHR(Printer &p, std::string name, VkSurfaceTr p.PrintKeyString(name, strings.at(0)); } -std::vector<const char *>VkToolPurposeFlagBitsGetStrings(VkToolPurposeFlagBits value) { +std::vector<const char *> VkToolPurposeFlagBitsGetStrings(VkToolPurposeFlagBits value) { std::vector<const char *> strings; if (value == 0) { strings.push_back("None"); return strings; } if (VK_TOOL_PURPOSE_VALIDATION_BIT & value) strings.push_back("TOOL_PURPOSE_VALIDATION_BIT"); @@ -1041,9 +1040,8 @@ void DumpVkToolPurposeFlagBits(Printer &p, std::string name, VkToolPurposeFlagBi p.PrintKeyString(name, strings.at(0)); } -std::vector<const char *>VkVideoCodecOperationFlagBitsKHRGetStrings(VkVideoCodecOperationFlagBitsKHR value) { +std::vector<const char *> VkVideoCodecOperationFlagBitsKHRGetStrings(VkVideoCodecOperationFlagBitsKHR value) { std::vector<const char *> strings; - if (value == 0) { strings.push_back("None"); return strings; } if (VK_VIDEO_CODEC_OPERATION_INVALID_BIT_KHR & value) strings.push_back("VIDEO_CODEC_OPERATION_INVALID_BIT_KHR"); if (VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT & value) strings.push_back("VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT"); if (VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_EXT & value) strings.push_back("VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_EXT"); |
