From: Jeremy Kniager Date: Mon, 29 Apr 2019 22:03:56 +0000 (-0600) Subject: vulkaninfo: VK_KHR_surface_protected_capabilities X-Git-Tag: upstream/1.2.179~262 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=6a45e1d6a86a176501c773cd33695dcdee1c5e21;p=platform%2Fupstream%2FVulkan-Tools.git vulkaninfo: VK_KHR_surface_protected_capabilities Added output for the following structures from extension VK_KHR_surface_protected_capabilities: VkSurfaceProtectedCapabilitiesKHR Change-Id: I5fb89b8118abbdb3876463f2ff5f96c08221781b --- diff --git a/vulkaninfo/vulkaninfo.c b/vulkaninfo/vulkaninfo.c index e4bed85..9005e25 100644 --- a/vulkaninfo/vulkaninfo.c +++ b/vulkaninfo/vulkaninfo.c @@ -1969,14 +1969,16 @@ static void AppDumpSurfaceCapabilities(struct AppInstance *inst, struct AppGpu * // Get additional surface capability information from vkGetPhysicalDeviceSurfaceCapabilities2KHR if (CheckExtensionEnabled(VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME, gpu->inst->inst_extensions, gpu->inst->inst_extensions_count)) { - VkSurfaceCapabilities2KHR surface_capabilities2 = {VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR}; - VkSharedPresentSurfaceCapabilitiesKHR shared_surface_capabilities = { - VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR}; + VkSurfaceCapabilities2KHR surface_capabilities2; - if (CheckExtensionEnabled(VK_KHR_SHARED_PRESENTABLE_IMAGE_EXTENSION_NAME, gpu->inst->inst_extensions, - gpu->inst->inst_extensions_count)) { - surface_capabilities2.pNext = &shared_surface_capabilities; - } + struct pNextChainBuildingBlockInfo sur_cap2_chain_info[] = { + {.sType = VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR, + .mem_size = sizeof(VkSharedPresentSurfaceCapabilitiesKHR)}}; + + uint32_t sur_cap2_chain_info_len = ARRAY_SIZE(sur_cap2_chain_info); + + surface_capabilities2.sType = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR; + buildpNextChain((struct VkStructureHeader *)&surface_capabilities2, sur_cap2_chain_info, sur_cap2_chain_info_len); VkPhysicalDeviceSurfaceInfo2KHR surface_info; surface_info.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR; @@ -1989,7 +1991,8 @@ static void AppDumpSurfaceCapabilities(struct AppInstance *inst, struct AppGpu * void *place = surface_capabilities2.pNext; while (place) { struct VkStructureHeader *work = (struct VkStructureHeader *)place; - if (work->sType == VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR) { + if (work->sType == VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR && CheckExtensionEnabled(VK_KHR_SHARED_PRESENTABLE_IMAGE_EXTENSION_NAME, gpu->inst->inst_extensions, + gpu->inst->inst_extensions_count)) { VkSharedPresentSurfaceCapabilitiesKHR *shared_surface_capabilities = (VkSharedPresentSurfaceCapabilitiesKHR *)place; if (html_output) { @@ -2075,6 +2078,21 @@ static void AppDumpSurfaceCapabilities(struct AppInstance *inst, struct AppGpu * printf("\t\tVK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT\n"); } } + } else if (work->sType == VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR && CheckExtensionEnabled(VK_KHR_SURFACE_PROTECTED_CAPABILITIES_EXTENSION_NAME, gpu->inst->inst_extensions, + gpu->inst->inst_extensions_count)) { + VkSurfaceProtectedCapabilitiesKHR *protected_surface_capabilities = + (VkSurfaceProtectedCapabilitiesKHR *)place; + if (html_output) { + fprintf(out, "\t\t\t\t\t\t
VkSurfaceProtectedCapabilities\n"); + fprintf(out, + "\t\t\t\t\t\t\t
supportsProtected = %" PRIuLEAST32 + "
\n", + protected_surface_capabilities->supportsProtected); + fprintf(out, "\t\t\t\t\t\t
\n"); + } else if (human_readable_output) { + printf("VkSurfaceProtectedCapabilities\n"); + printf("\tsupportsProtected = %" PRIuLEAST32 "\n", protected_surface_capabilities->supportsProtected); + } } place = work->pNext; }