diff options
| author | Charles Giessen <charles@lunarg.com> | 2021-09-24 14:09:58 -0600 |
|---|---|---|
| committer | Mike Schuchardt <mikes@lunarg.com> | 2022-01-26 14:29:01 -0800 |
| commit | 3ed7fe55cdd334a552ffd33d6d8d80496ecc96cf (patch) | |
| tree | e3eec59fdac475913e7d96bd6a12af878910573a | |
| parent | 5ac40c6583b7d47467545a01af0a52eedc7ae9b9 (diff) | |
| download | usermoji-3ed7fe55cdd334a552ffd33d6d8d80496ecc96cf.tar.xz | |
vulkaninfo: Update to 1.3
Only changes are making the autogen print all required structs, and
moving from using the EXT version of tool properties to the core version.
| -rw-r--r-- | scripts/vulkaninfo_generator.py | 4 | ||||
| -rw-r--r-- | vulkaninfo/generated/vulkaninfo.hpp | 39 | ||||
| -rw-r--r-- | vulkaninfo/vulkaninfo.cpp | 2 |
3 files changed, 42 insertions, 3 deletions
diff --git a/scripts/vulkaninfo_generator.py b/scripts/vulkaninfo_generator.py index ceea1962..f4a00125 100644 --- a/scripts/vulkaninfo_generator.py +++ b/scripts/vulkaninfo_generator.py @@ -86,11 +86,11 @@ std::string to_hex_str(Printer &p, T i) { # used in the .cpp code structures_to_gen = ['VkExtent3D', 'VkExtent2D', 'VkPhysicalDeviceLimits', 'VkPhysicalDeviceFeatures', 'VkPhysicalDeviceSparseProperties', - 'VkSurfaceCapabilitiesKHR', 'VkSurfaceFormatKHR', 'VkLayerProperties', 'VkPhysicalDeviceToolPropertiesEXT'] + 'VkSurfaceCapabilitiesKHR', 'VkSurfaceFormatKHR', 'VkLayerProperties', 'VkPhysicalDeviceToolProperties'] enums_to_gen = ['VkResult', 'VkFormat', 'VkPresentModeKHR', 'VkPhysicalDeviceType', 'VkImageTiling'] flags_to_gen = ['VkSurfaceTransformFlagsKHR', 'VkCompositeAlphaFlagsKHR', 'VkSurfaceCounterFlagsEXT', - 'VkDeviceGroupPresentModeFlagsKHR', 'VkFormatFeatureFlags', 'VkMemoryPropertyFlags', 'VkMemoryHeapFlags'] + 'VkDeviceGroupPresentModeFlagsKHR', 'VkFormatFeatureFlags', 'VkFormatFeatureFlags2', 'VkMemoryPropertyFlags', 'VkMemoryHeapFlags'] flags_strings_to_gen = ['VkQueueFlags'] struct_short_versions_to_gen = ['VkExtent3D'] diff --git a/vulkaninfo/generated/vulkaninfo.hpp b/vulkaninfo/generated/vulkaninfo.hpp index b852b1f5..ad0e0851 100644 --- a/vulkaninfo/generated/vulkaninfo.hpp +++ b/vulkaninfo/generated/vulkaninfo.hpp @@ -994,6 +994,37 @@ void DumpVkSurfaceTransformFlagBitsKHR(Printer &p, std::string name, VkSurfaceTr p.PrintKeyString(name, strings.at(0), width); } +std::vector<const char *>VkToolPurposeFlagBitsGetStrings(VkToolPurposeFlagBits value) { + std::vector<const char *> strings; + if (value == 0) { strings.push_back("None"); return strings; } + if (0x1 & value) strings.push_back("TOOL_PURPOSE_VALIDATION_BIT"); + if (0x2 & value) strings.push_back("TOOL_PURPOSE_PROFILING_BIT"); + if (0x4 & value) strings.push_back("TOOL_PURPOSE_TRACING_BIT"); + if (0x8 & value) strings.push_back("TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT"); + if (0x10 & value) strings.push_back("TOOL_PURPOSE_MODIFYING_FEATURES_BIT"); + if (0x20 & value) strings.push_back("TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT"); + if (0x40 & value) strings.push_back("TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT"); + return strings; +} +void DumpVkToolPurposeFlags(Printer &p, std::string name, VkToolPurposeFlags value, int width = 0) { + if (p.Type() == OutputType::json) { p.PrintKeyValue(name, value); return; } + if (static_cast<VkToolPurposeFlagBits>(value) == 0) { + ArrayWrapper arr(p, name, 0); + if (p.Type() != OutputType::vkconfig_output) + p.SetAsType().PrintString("None"); + return; + } + auto strings = VkToolPurposeFlagBitsGetStrings(static_cast<VkToolPurposeFlagBits>(value)); + ArrayWrapper arr(p, name, strings.size()); + for(auto& str : strings){ + p.SetAsType().PrintString(str); + } +} +void DumpVkToolPurposeFlagBits(Printer &p, std::string name, VkToolPurposeFlagBits value, int width = 0) { + auto strings = VkToolPurposeFlagBitsGetStrings(value); + p.PrintKeyString(name, strings.at(0), width); +} + void DumpVkDrmFormatModifierProperties2EXT(Printer &p, std::string name, VkDrmFormatModifierProperties2EXT &obj) { ObjectWrapper object{p, name}; p.PrintKeyValue("drmFormatModifier", obj.drmFormatModifier, 27); @@ -1986,6 +2017,14 @@ void DumpVkPhysicalDeviceTimelineSemaphoreProperties(Printer &p, std::string nam ObjectWrapper object{p, name}; p.PrintKeyValue("maxTimelineSemaphoreValueDifference", obj.maxTimelineSemaphoreValueDifference, 35); } +void DumpVkPhysicalDeviceToolProperties(Printer &p, std::string name, VkPhysicalDeviceToolProperties &obj) { + ObjectWrapper object{p, name}; + p.PrintKeyString("name", obj.name, 16); + p.PrintKeyString("version", obj.version, 16); + DumpVkToolPurposeFlags(p, "purposes", obj.purposes, 16); + p.PrintKeyString("description", obj.description, 16); + p.PrintKeyString("layer", obj.layer, 16); +} void DumpVkPhysicalDeviceTransformFeedbackFeaturesEXT(Printer &p, std::string name, VkPhysicalDeviceTransformFeedbackFeaturesEXT &obj) { ObjectWrapper object{p, name}; p.PrintKeyBool("transformFeedback", static_cast<bool>(obj.transformFeedback), 17); diff --git a/vulkaninfo/vulkaninfo.cpp b/vulkaninfo/vulkaninfo.cpp index 1e24ce81..01ed1743 100644 --- a/vulkaninfo/vulkaninfo.cpp +++ b/vulkaninfo/vulkaninfo.cpp @@ -550,7 +550,7 @@ void GpuDumpToolingInfo(Printer &p, AppGpu &gpu) { p.SetSubHeader(); ObjectWrapper obj(p, "Tooling Info"); for (auto tool : tools) { - DumpVkPhysicalDeviceToolPropertiesEXT(p, tool.name, tool); + DumpVkPhysicalDeviceToolProperties(p, tool.name, tool); p.AddNewline(); } } |
