aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCharles Giessen <charles@lunarg.com>2021-09-24 14:09:58 -0600
committerMike Schuchardt <mikes@lunarg.com>2022-01-26 14:29:01 -0800
commit3ed7fe55cdd334a552ffd33d6d8d80496ecc96cf (patch)
treee3eec59fdac475913e7d96bd6a12af878910573a
parent5ac40c6583b7d47467545a01af0a52eedc7ae9b9 (diff)
downloadusermoji-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.py4
-rw-r--r--vulkaninfo/generated/vulkaninfo.hpp39
-rw-r--r--vulkaninfo/vulkaninfo.cpp2
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();
}
}