From 5e453384b73751d471467b34bb3e4e19e1073b96 Mon Sep 17 00:00:00 2001 From: Charles Giessen Date: Mon, 12 Aug 2019 15:17:34 -0600 Subject: vulkaninfo: Support for VK_EXT_full_screen_exclusive Change-Id: Id3d0dfff6f2efff42a79630b096cdd2829d00e40 --- vulkaninfo/vulkaninfo.c | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/vulkaninfo/vulkaninfo.c b/vulkaninfo/vulkaninfo.c index 14e0f9b9..54c4a4a6 100644 --- a/vulkaninfo/vulkaninfo.c +++ b/vulkaninfo/vulkaninfo.c @@ -2011,7 +2011,15 @@ static void AppDumpSurfaceCapabilities(struct AppInstance *inst, struct AppGpu * struct pNextChainBuildingBlockInfo sur_cap2_chain_info[] = { {.sType = VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR, - .mem_size = sizeof(VkSharedPresentSurfaceCapabilitiesKHR)}}; + .mem_size = sizeof(VkSharedPresentSurfaceCapabilitiesKHR)}, + {.sType = VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR, + .mem_size = sizeof(VkSurfaceProtectedCapabilitiesKHR)} +#ifdef VK_USE_PLATFORM_WIN32_KHR + , + {.sType = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT, + .mem_size = sizeof(VkSurfaceCapabilitiesFullScreenExclusiveEXT)} +#endif + }; uint32_t sur_cap2_chain_info_len = ARRAY_SIZE(sur_cap2_chain_info); @@ -2133,6 +2141,25 @@ static void AppDumpSurfaceCapabilities(struct AppInstance *inst, struct AppGpu * printf("\tsupportsProtected = %" PRIuLEAST32 "\n", protected_surface_capabilities->supportsProtected); } } +#ifdef VK_USE_PLATFORM_WIN32_KHR + else if (work->sType == VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT && + CheckPhysicalDeviceExtensionIncluded(VK_EXT_FULL_SCREEN_EXCLUSIVE_EXTENSION_NAME, gpu->device_extensions, + gpu->device_extension_count)) { + VkSurfaceCapabilitiesFullScreenExclusiveEXT *full_screen_exclusive = + (VkSurfaceCapabilitiesFullScreenExclusiveEXT *)place; + if (html_output) { + fprintf(out, "\t\t\t\t\t\t
VkSurfaceCapabilitiesFullScreenExclusiveEXT\n"); + fprintf(out, + "\t\t\t\t\t\t\t
fullScreenExclusive = %" PRIuLEAST32 + "
\n", + full_screen_exclusive->fullScreenExclusiveSupported); + fprintf(out, "\t\t\t\t\t\t
\n"); + } else if (human_readable_output) { + printf("VkSurfaceCapabilitiesFullScreenExclusiveEXT\n"); + printf("\tfullScreenExclusive = %" PRIuLEAST32 "\n", full_screen_exclusive->fullScreenExclusiveSupported); + } + } +#endif place = work->pNext; } freepNextChain(surface_capabilities2.pNext); -- cgit v1.2.3