From e394cf132f86a8e2659f87474594f37a5c8a3aea Mon Sep 17 00:00:00 2001 From: Charles Giessen Date: Mon, 5 Aug 2019 16:18:25 -0600 Subject: vulkaninfo: VK_EXT_fragment_shader_interlock Adds support for the extension Change-Id: Ifc18acbdeae3b1b5b568e9a3ddaffb444d14ef86 --- vulkaninfo/vulkaninfo.c | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/vulkaninfo/vulkaninfo.c b/vulkaninfo/vulkaninfo.c index ee0dea13..87d05305 100644 --- a/vulkaninfo/vulkaninfo.c +++ b/vulkaninfo/vulkaninfo.c @@ -1106,7 +1106,9 @@ static void AppGpuInit(struct AppGpu *gpu, struct AppInstance *inst, uint32_t id {.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT, .mem_size = sizeof(VkPhysicalDeviceHostQueryResetFeaturesEXT)}, {.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR, - .mem_size = sizeof(VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR)}}; + .mem_size = sizeof(VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR)}, + {.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT, + .mem_size = sizeof(VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT)}}; uint32_t chain_info_len = ARRAY_SIZE(chain_info); @@ -3409,6 +3411,35 @@ static void AppGpuDumpFeatures(const struct AppGpu *gpu, FILE *out) { printf("=======================================================\n"); printf("\tuniformBufferStandardLayout = %" PRIuLEAST32 "\n", standard_features->uniformBufferStandardLayout); } + } else if (structure->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT && + CheckPhysicalDeviceExtensionIncluded(VK_EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME, gpu->device_extensions, + gpu->device_extension_count)) { + VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT *fragment_shader_features = + (VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT *)structure; + if (html_output) { + fprintf(out, "\t\t\t\t\t
VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT\n"); + fprintf(out, + "\t\t\t\t\t\t
fragmentShaderPixelInterlock = %" PRIuLEAST32 "
\n", + fragment_shader_features->fragmentShaderPixelInterlock); + fprintf(out, + "\t\t\t\t\t\t
fragmentShaderSampleInterlock = %" PRIuLEAST32 "
\n", + fragment_shader_features->fragmentShaderSampleInterlock); + fprintf(out, + "\t\t\t\t\t\t
fragmentShaderShadingRateInterlock = %" PRIuLEAST32 "
\n", + fragment_shader_features->fragmentShaderShadingRateInterlock); + } else if (human_readable_output) { + printf("\nVkPhysicalDeviceFragmentShaderInterlockFeaturesEXT:\n"); + printf("===================================================\n"); + printf("\tfragmentShaderPixelInterlock = %" PRIuLEAST32 "\n", + fragment_shader_features->fragmentShaderPixelInterlock); + printf("\tfragmentShaderSampleInterlock = %" PRIuLEAST32 "\n", + fragment_shader_features->fragmentShaderSampleInterlock); + printf("\tfragmentShaderShadingRateInterlock = %" PRIuLEAST32 "\n", + fragment_shader_features->fragmentShaderShadingRateInterlock); + } } place = structure->pNext; } -- cgit v1.2.3