From e8cd9488751afd27550f65961c4e372425a53af6 Mon Sep 17 00:00:00 2001 From: Mike Schuchardt Date: Sun, 30 Jun 2019 21:46:41 -0700 Subject: vulkaninfo: Update output for float controls "separate" struct members were renamed and changed from a boolean to an enum to accommodate a wider variety of hardware implementations. --- vulkaninfo/vulkaninfo.c | 38 +++++++++++++++++++++++++++----------- 1 file changed, 27 insertions(+), 11 deletions(-) diff --git a/vulkaninfo/vulkaninfo.c b/vulkaninfo/vulkaninfo.c index ca1b8ec2..c499937d 100644 --- a/vulkaninfo/vulkaninfo.c +++ b/vulkaninfo/vulkaninfo.c @@ -558,6 +558,7 @@ static const char *VkFormatString(VkFormat fmt) { return "UNKNOWN_FORMAT"; } } + #if defined(VK_USE_PLATFORM_XCB_KHR) || defined(VK_USE_PLATFORM_XLIB_KHR) || defined(VK_USE_PLATFORM_WIN32_KHR) || \ defined(VK_USE_PLATFORM_MACOS_MVK) || defined(VK_USE_PLATFORM_WAYLAND_KHR) static const char *VkPresentModeString(VkPresentModeKHR mode) { @@ -578,6 +579,20 @@ static const char *VkPresentModeString(VkPresentModeKHR mode) { } #endif +static const char *VkShaderFloatControlsIndependenceString(const VkShaderFloatControlsIndependenceKHR indep) { + switch (indep) { +#define STR(r) \ + case VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_##r: \ + return #r + STR(32_BIT_ONLY_KHR); + STR(ALL_KHR); + STR(NONE_KHR); +#undef STR + default: + return "UNKNOWN_INDEPENDENCE"; + } +} + static bool CheckExtensionEnabled(const char *extension_to_check, const char **extension_list, uint32_t extension_count) { for (uint32_t i = 0; i < extension_count; ++i) { if (!strncmp(extension_to_check, extension_list[i], VK_MAX_EXTENSION_NAME_SIZE)) { @@ -4622,13 +4637,13 @@ static void AppGpuDumpProps(const struct AppGpu *gpu, FILE *out) { if (html_output) { fprintf(out, "\n\t\t\t\t\t
VkPhysicalDeviceFloatControlsProperties\n"); fprintf(out, - "\t\t\t\t\t\t
separateDenormSettings = %" PRIuLEAST32 - "
\n", - float_control_props->separateDenormSettings); + "\t\t\t\t\t\t
denormBehaviorIndependence = %s
\n", + VkShaderFloatControlsIndependenceString(float_control_props->denormBehaviorIndependence)); fprintf(out, - "\t\t\t\t\t\t
separateRoundingModeSettings = %" PRIuLEAST32 - "
\n", - float_control_props->separateRoundingModeSettings); + "\t\t\t\t\t\t
roundingModeIndependence = %s
\n", + VkShaderFloatControlsIndependenceString(float_control_props->roundingModeIndependence)); fprintf(out, "\t\t\t\t\t\t
shaderSignedZeroInfNanPreserveFloat16 = %" PRIuLEAST32 "
\n", @@ -4693,16 +4708,17 @@ static void AppGpuDumpProps(const struct AppGpu *gpu, FILE *out) { } else if (human_readable_output) { printf("\nVkPhysicalDeviceFloatControlsProperties:\n"); printf("========================================\n"); - printf("\tseparateDenormSettings = %" PRIuLEAST32 "\n", float_control_props->separateDenormSettings); - printf("\tseparateRoundingModeSettings = %" PRIuLEAST32 "\n", - float_control_props->separateRoundingModeSettings); + printf("\tdenormBehaviorIndependence = %s\n", + VkShaderFloatControlsIndependenceString(float_control_props->denormBehaviorIndependence)); + printf("\troundingModeIndependence = %s\n", + VkShaderFloatControlsIndependenceString(float_control_props->roundingModeIndependence)); printf("\tshaderSignedZeroInfNanPreserveFloat16 = %" PRIuLEAST32 "\n", float_control_props->shaderSignedZeroInfNanPreserveFloat16); printf("\tshaderSignedZeroInfNanPreserveFloat32 = %" PRIuLEAST32 "\n", float_control_props->shaderSignedZeroInfNanPreserveFloat32); printf("\tshaderSignedZeroInfNanPreserveFloat64 = %" PRIuLEAST32 "\n", float_control_props->shaderSignedZeroInfNanPreserveFloat64); - printf("\tshaderDenormPreserveFloat16 = %" PRIuLEAST32 "\n", + printf("\tshaderDenormPreserveFloat16 = %" PRIuLEAST32 "\n", float_control_props->shaderDenormPreserveFloat16); printf("\tshaderDenormPreserveFloat32 = %" PRIuLEAST32 "\n", float_control_props->shaderDenormPreserveFloat32); @@ -4718,7 +4734,7 @@ static void AppGpuDumpProps(const struct AppGpu *gpu, FILE *out) { float_control_props->shaderRoundingModeRTEFloat16); printf("\tshaderRoundingModeRTEFloat32 = %" PRIuLEAST32 "\n", float_control_props->shaderRoundingModeRTEFloat32); - printf("\tshaderRoundingModeRTEFloat64 = %" PRIuLEAST32 "\n", + printf("\tshaderRoundingModeRTEFloat64 = %" PRIuLEAST32 "\n", float_control_props->shaderRoundingModeRTEFloat64); printf("\tshaderRoundingModeRTZFloat16 = %" PRIuLEAST32 "\n", float_control_props->shaderRoundingModeRTZFloat16); -- cgit v1.2.3