aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorspencer-lunarg <spencer@lunarg.com>2025-12-24 11:00:08 -0500
committerCharles Giessen <46324611+charles-lunarg@users.noreply.github.com>2025-12-24 11:01:17 -0600
commite32b975cd846b79ed648c2bffde848875955f8fd (patch)
tree00e781f19a662d17367d7ac4d276ee5ab8fbfec5
parent1343cb3a9ca1a52fc6575f1471cf2b656bf1050a (diff)
downloadusermoji-e32b975cd846b79ed648c2bffde848875955f8fd.tar.xz
info: Add vkGetPhysicalDeviceFragmentShadingRatesKHR
-rw-r--r--scripts/generators/vulkaninfo_generator.py3
-rw-r--r--vulkaninfo/generated/vulkaninfo.hpp5
-rw-r--r--vulkaninfo/vulkaninfo.cpp13
-rw-r--r--vulkaninfo/vulkaninfo.h5
-rw-r--r--vulkaninfo/vulkaninfo_functions.h2
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);