aboutsummaryrefslogtreecommitdiff
path: root/vulkaninfo/vulkaninfo.c
diff options
context:
space:
mode:
authorCharles Giessen <charles@lunarg.com>2019-08-05 16:18:25 -0600
committerCharles Giessen <46324611+charles-lunarg@users.noreply.github.com>2019-08-05 16:41:54 -0600
commite394cf132f86a8e2659f87474594f37a5c8a3aea (patch)
tree477207acdffb94b7a3d244fab10e3e2a2ab8545f /vulkaninfo/vulkaninfo.c
parent3a4935fc8debe43e9cd37a926c7f0eda1368f4c8 (diff)
downloadvulkan-tools-e394cf132f86a8e2659f87474594f37a5c8a3aea.tar.gz
vulkaninfo: VK_EXT_fragment_shader_interlock
Adds support for the extension Change-Id: Ifc18acbdeae3b1b5b568e9a3ddaffb444d14ef86
Diffstat (limited to 'vulkaninfo/vulkaninfo.c')
-rw-r--r--vulkaninfo/vulkaninfo.c33
1 files changed, 32 insertions, 1 deletions
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<details><summary>VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT</summary>\n");
+ fprintf(out,
+ "\t\t\t\t\t\t<details><summary>fragmentShaderPixelInterlock = <span "
+ "class='val'>%" PRIuLEAST32 "</span></summary></details>\n",
+ fragment_shader_features->fragmentShaderPixelInterlock);
+ fprintf(out,
+ "\t\t\t\t\t\t<details><summary>fragmentShaderSampleInterlock = <span "
+ "class='val'>%" PRIuLEAST32 "</span></summary></details>\n",
+ fragment_shader_features->fragmentShaderSampleInterlock);
+ fprintf(out,
+ "\t\t\t\t\t\t<details><summary>fragmentShaderShadingRateInterlock = <span "
+ "class='val'>%" PRIuLEAST32 "</span></summary></details>\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;
}