diff options
| author | spencer-lunarg <spencer@lunarg.com> | 2025-12-24 11:00:08 -0500 |
|---|---|---|
| committer | Charles Giessen <46324611+charles-lunarg@users.noreply.github.com> | 2025-12-24 11:01:17 -0600 |
| commit | e32b975cd846b79ed648c2bffde848875955f8fd (patch) | |
| tree | 00e781f19a662d17367d7ac4d276ee5ab8fbfec5 | |
| parent | 1343cb3a9ca1a52fc6575f1471cf2b656bf1050a (diff) | |
| download | usermoji-e32b975cd846b79ed648c2bffde848875955f8fd.tar.xz | |
info: Add vkGetPhysicalDeviceFragmentShadingRatesKHR
| -rw-r--r-- | scripts/generators/vulkaninfo_generator.py | 3 | ||||
| -rw-r--r-- | vulkaninfo/generated/vulkaninfo.hpp | 5 | ||||
| -rw-r--r-- | vulkaninfo/vulkaninfo.cpp | 13 | ||||
| -rw-r--r-- | vulkaninfo/vulkaninfo.h | 5 | ||||
| -rw-r--r-- | vulkaninfo/vulkaninfo_functions.h | 2 |
5 files changed, 27 insertions, 1 deletions
diff --git a/scripts/generators/vulkaninfo_generator.py b/scripts/generators/vulkaninfo_generator.py index 1d14e866..a5745dc0 100644 --- a/scripts/generators/vulkaninfo_generator.py +++ b/scripts/generators/vulkaninfo_generator.py @@ -76,7 +76,8 @@ std::string to_hex_str(Printer &p, const T i) { STRUCTURES_TO_GEN = ['VkExtent3D', 'VkExtent2D', 'VkPhysicalDeviceLimits', 'VkPhysicalDeviceFeatures', 'VkPhysicalDeviceSparseProperties', 'VkSurfaceCapabilitiesKHR', 'VkSurfaceFormatKHR', 'VkLayerProperties', 'VkPhysicalDeviceToolProperties', 'VkFormatProperties', 'VkSurfacePresentScalingCapabilitiesKHR', 'VkSurfacePresentModeCompatibilityKHR', 'VkPhysicalDeviceHostImageCopyProperties', - 'VkVideoProfileInfoKHR', 'VkVideoCapabilitiesKHR', 'VkVideoFormatPropertiesKHR', 'VkCooperativeMatrixPropertiesKHR'] + 'VkVideoProfileInfoKHR', 'VkVideoCapabilitiesKHR', 'VkVideoFormatPropertiesKHR', 'VkCooperativeMatrixPropertiesKHR', + 'VkPhysicalDeviceFragmentShadingRateKHR'] ENUMS_TO_GEN = ['VkResult', 'VkFormat', 'VkPresentModeKHR', 'VkPhysicalDeviceType', 'VkImageTiling', 'VkTimeDomainKHR'] FLAGS_TO_GEN = ['VkSurfaceTransformFlagsKHR', 'VkCompositeAlphaFlagsKHR', 'VkSurfaceCounterFlagsEXT', 'VkQueueFlags', diff --git a/vulkaninfo/generated/vulkaninfo.hpp b/vulkaninfo/generated/vulkaninfo.hpp index edb44718..152e4058 100644 --- a/vulkaninfo/generated/vulkaninfo.hpp +++ b/vulkaninfo/generated/vulkaninfo.hpp @@ -5141,6 +5141,11 @@ void DumpVkPhysicalDeviceFragmentShadingRateFeaturesKHR(Printer &p, std::string p.PrintKeyBool("primitiveFragmentShadingRate", static_cast<bool>(obj.primitiveFragmentShadingRate)); p.PrintKeyBool("attachmentFragmentShadingRate", static_cast<bool>(obj.attachmentFragmentShadingRate)); } +void DumpVkPhysicalDeviceFragmentShadingRateKHR(Printer &p, std::string name, const VkPhysicalDeviceFragmentShadingRateKHR &obj) { + ObjectWrapper object{p, name}; + DumpVkSampleCountFlags(p, "sampleCounts", obj.sampleCounts); + DumpVkExtent2D(p, "fragmentSize", obj.fragmentSize); +} void DumpVkPhysicalDeviceFragmentShadingRatePropertiesKHR(Printer &p, std::string name, const VkPhysicalDeviceFragmentShadingRatePropertiesKHR &obj) { ObjectWrapper object{p, name}; diff --git a/vulkaninfo/vulkaninfo.cpp b/vulkaninfo/vulkaninfo.cpp index 25fdf39b..3ca55738 100644 --- a/vulkaninfo/vulkaninfo.cpp +++ b/vulkaninfo/vulkaninfo.cpp @@ -618,6 +618,18 @@ void GpuDumpCalibrateableTimeDomain(Printer &p, AppGpu &gpu) { } } +void GpuDumpFragmentShadingRate(Printer &p, AppGpu &gpu) { + auto props = GetFragmentShadingRateInfo(gpu); + if (props.size() > 0) { + p.SetSubHeader(); + ObjectWrapper obj(p, "vkGetPhysicalDeviceFragmentShadingRatesKHR"); + for (const auto prop : props) { + DumpVkPhysicalDeviceFragmentShadingRateKHR(p, "VkPhysicalDeviceFragmentShadingRateKHR", prop); + p.AddNewline(); + } + } +} + void GpuDevDump(Printer &p, AppGpu &gpu) { p.SetHeader(); ObjectWrapper obj_format_props(p, "Format Properties"); @@ -765,6 +777,7 @@ void DumpGpu(Printer &p, AppGpu &gpu, const ShowSettings &show) { if (show.all) { GpuDumpCooperativeMatrix(p, gpu); GpuDumpCalibrateableTimeDomain(p, gpu); + GpuDumpFragmentShadingRate(p, gpu); } if (p.Type() != OutputType::text || show.formats) { diff --git a/vulkaninfo/vulkaninfo.h b/vulkaninfo/vulkaninfo.h index ed62a208..35d2c693 100644 --- a/vulkaninfo/vulkaninfo.h +++ b/vulkaninfo/vulkaninfo.h @@ -1896,6 +1896,11 @@ std::vector<VkTimeDomainKHR> GetTimeDomainInfo(AppGpu &gpu) { return GetVector<VkTimeDomainKHR>("vkGetPhysicalDeviceCalibrateableTimeDomainsKHR", vkGetPhysicalDeviceCalibrateableTimeDomainsKHR, gpu.phys_device); } +std::vector<VkPhysicalDeviceFragmentShadingRateKHR> GetFragmentShadingRateInfo(AppGpu &gpu) { + if (vkGetPhysicalDeviceFragmentShadingRatesKHR == nullptr) return {}; + return GetVector<VkPhysicalDeviceFragmentShadingRateKHR>("vkGetPhysicalDeviceFragmentShadingRatesKHR", + vkGetPhysicalDeviceFragmentShadingRatesKHR, gpu.phys_device); +} // --------- Format Properties ----------// // can't use autogen because that is put in a header that we can't include because that header depends on stuff defined here diff --git a/vulkaninfo/vulkaninfo_functions.h b/vulkaninfo/vulkaninfo_functions.h index bdb7106e..8e967b98 100644 --- a/vulkaninfo/vulkaninfo_functions.h +++ b/vulkaninfo/vulkaninfo_functions.h @@ -115,6 +115,7 @@ PFN_vkGetPhysicalDeviceToolPropertiesEXT vkGetPhysicalDeviceToolPropertiesEXT; PFN_vkGetPhysicalDeviceFormatProperties2KHR vkGetPhysicalDeviceFormatProperties2KHR; PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR; PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsKHR vkGetPhysicalDeviceCalibrateableTimeDomainsKHR; +PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR vkGetPhysicalDeviceFragmentShadingRatesKHR; // Device functions PFN_vkCreateImage vkCreateImage; @@ -247,6 +248,7 @@ static void load_vulkan_instance_functions(VkInstance instance) { LOAD_INSTANCE_FUNCTION(instance, vkGetPhysicalDeviceFormatProperties2KHR); LOAD_INSTANCE_FUNCTION(instance, vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR); LOAD_INSTANCE_FUNCTION(instance, vkGetPhysicalDeviceCalibrateableTimeDomainsKHR); + LOAD_INSTANCE_FUNCTION(instance, vkGetPhysicalDeviceFragmentShadingRatesKHR); // Load device functions using vkGetInstanceProcAddr, vulkaninfo doesn't care about the extra indirection it causes LOAD_INSTANCE_FUNCTION(instance, vkCreateImage); |
