diff options
| author | Jeremy Kniager <jeremyk@lunarg.com> | 2019-03-27 15:09:56 -0600 |
|---|---|---|
| committer | jeremyk-lunarg <jeremyk@lunarg.com> | 2019-04-08 14:57:12 -0600 |
| commit | 4cf18420820194b7725a19981ada2b31c2e9fe05 (patch) | |
| tree | b76478e4d105026ac988a5f7b1c9b862c29bff3e | |
| parent | d3f3846e6710873c677235fdc38b8d3d3215d276 (diff) | |
| download | usermoji-4cf18420820194b7725a19981ada2b31c2e9fe05.tar.xz | |
vulkaninfo: Add VK_KHR_depth_stencil_resolve
Added output for the following structure from
extension VK_KHR_depth_stencil_resolve:
VkPhysicalDeviceDepthStencilResolvePropertiesKHR
Change-Id: Ib997c0c8d8f35be14cd611e6b6473accc28a2985
| -rw-r--r-- | vulkaninfo/vulkaninfo.c | 78 |
1 files changed, 77 insertions, 1 deletions
diff --git a/vulkaninfo/vulkaninfo.c b/vulkaninfo/vulkaninfo.c index 61085cb5..c71331e0 100644 --- a/vulkaninfo/vulkaninfo.c +++ b/vulkaninfo/vulkaninfo.c @@ -974,7 +974,9 @@ static void AppGpuInit(struct AppGpu *gpu, struct AppInstance *inst, uint32_t id {.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT, .mem_size = sizeof(VkPhysicalDeviceTransformFeedbackPropertiesEXT)}, {.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT, - .mem_size = sizeof(VkPhysicalDeviceFragmentDensityMapPropertiesEXT)}}; + .mem_size = sizeof(VkPhysicalDeviceFragmentDensityMapPropertiesEXT)}, + {.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR, + .mem_size = sizeof(VkPhysicalDeviceDepthStencilResolvePropertiesKHR)}}; uint32_t chain_info_len = ARRAY_SIZE(chain_info); @@ -4567,6 +4569,80 @@ static void AppGpuDumpProps(const struct AppGpu *gpu, FILE *out) { printf("\tfragmentDensityInvocations = %" PRIuLEAST32 "\n", fragment_density_map_properties->fragmentDensityInvocations); } + } else if (structure->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR && + CheckPhysicalDeviceExtensionIncluded(VK_KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME, gpu->device_extensions, + gpu->device_extension_count)) { + VkPhysicalDeviceDepthStencilResolvePropertiesKHR *depth_stencil_resolve_properties = + (VkPhysicalDeviceDepthStencilResolvePropertiesKHR *)structure; + if (html_output) { + fprintf(out, "\n\t\t\t\t\t<details><summary>VkPhysicalDeviceDepthStencilResolveProperties</summary>\n"); + fprintf(out, + "\t\t\t\t\t\t<details><summary>supportedDepthResolveModes</summary></details>\n"); + if (depth_stencil_resolve_properties->supportedDepthResolveModes == 0) { + printf("\t\t\t\t\t\t<details><summary><span class='val'>VK_RESOLVE_MODE_NONE_KHR</span></summary></details>\n"); + } else { + if (depth_stencil_resolve_properties->supportedDepthResolveModes & VK_RESOLVE_MODE_SAMPLE_ZERO_BIT_KHR) + printf("\t\t\t\t\t\t<details><summary><span class='val'>VK_RESOLVE_MODE_SAMPLE_ZERO_BIT_KHR</span></summary></details>\n"); + if (depth_stencil_resolve_properties->supportedDepthResolveModes & VK_RESOLVE_MODE_AVERAGE_BIT_KHR) + printf("\t\t\t\t\t\t<details><summary><span class='val'>VK_RESOLVE_MODE_AVERAGE_BIT_KHR</span></summary></details>\n"); + if (depth_stencil_resolve_properties->supportedDepthResolveModes & VK_RESOLVE_MODE_MIN_BIT_KHR) + printf("\t\t\t\t\t\t<details><summary><span class='val'>VK_RESOLVE_MODE_MIN_BIT_KHR</span></summary></details>\n"); + if (depth_stencil_resolve_properties->supportedDepthResolveModes & VK_RESOLVE_MODE_MAX_BIT_KHR) + printf("\t\t\t\t\t\t<details><summary><span class='val'>VK_RESOLVE_MODE_MAX_BIT_KHR</span></summary></details>\n"); + } + fprintf(out, + "\t\t\t\t\t\t<details><summary>supportedStencilResolveModes</summary></details>\n"); + if (depth_stencil_resolve_properties->supportedStencilResolveModes == 0) { + printf("\t\t\t\t\t\t<details><summary><span class='val'>VK_RESOLVE_MODE_NONE_KHR</span></summary></details>\n"); + } else { + if (depth_stencil_resolve_properties->supportedStencilResolveModes & VK_RESOLVE_MODE_SAMPLE_ZERO_BIT_KHR) + printf("\t\t\t\t\t\t<details><summary><span class='val'>VK_RESOLVE_MODE_SAMPLE_ZERO_BIT_KHR</span></summary></details>\n"); + if (depth_stencil_resolve_properties->supportedStencilResolveModes & VK_RESOLVE_MODE_AVERAGE_BIT_KHR) + printf("\t\t\t\t\t\t<details><summary><span class='val'>VK_RESOLVE_MODE_AVERAGE_BIT_KHR</span></summary></details>\n"); + if (depth_stencil_resolve_properties->supportedStencilResolveModes & VK_RESOLVE_MODE_MIN_BIT_KHR) + printf("\t\t\t\t\t\t<details><summary><span class='val'>VK_RESOLVE_MODE_MIN_BIT_KHR</span></summary></details>\n"); + if (depth_stencil_resolve_properties->supportedStencilResolveModes & VK_RESOLVE_MODE_MAX_BIT_KHR) + printf("\t\t\t\t\t\t<details><summary><span class='val'>VK_RESOLVE_MODE_MAX_BIT_KHR</span></summary></details>\n"); + } + fprintf(out, + "\t\t\t\t\t\t<details><summary>independentResolveNone = <span class='val'>%" PRIuLEAST32 "</span></summary></details>\n", + depth_stencil_resolve_properties->independentResolveNone); + fprintf(out, + "\t\t\t\t\t\t<details><summary>independentResolve = <span class='val'>%" PRIuLEAST32 + "</span></summary></details>\n", + depth_stencil_resolve_properties->independentResolve); + } else if (human_readable_output) { + printf("\nVkPhysicalDeviceDepthStencilResolveProperties\n"); + printf("============================================\n"); + printf("\t\tsupportedDepthResolveModes:\n"); + if (depth_stencil_resolve_properties->supportedDepthResolveModes == 0) { + printf("\t\t\tVK_RESOLVE_MODE_NONE_KHR\n"); + } else { + if (depth_stencil_resolve_properties->supportedDepthResolveModes & VK_RESOLVE_MODE_SAMPLE_ZERO_BIT_KHR) + printf("\t\t\tVK_RESOLVE_MODE_SAMPLE_ZERO_BIT_KHR\n"); + if (depth_stencil_resolve_properties->supportedDepthResolveModes & VK_RESOLVE_MODE_AVERAGE_BIT_KHR) + printf("\t\t\tVK_RESOLVE_MODE_AVERAGE_BIT_KHR\n"); + if (depth_stencil_resolve_properties->supportedDepthResolveModes & VK_RESOLVE_MODE_MIN_BIT_KHR) + printf("\t\t\tVK_RESOLVE_MODE_MIN_BIT_KHR\n"); + if (depth_stencil_resolve_properties->supportedDepthResolveModes & VK_RESOLVE_MODE_MAX_BIT_KHR) + printf("\t\t\tVK_RESOLVE_MODE_MAX_BIT_KHR\n"); + } + printf("\t\tsupportedStencilResolveModes:\n"); + if (depth_stencil_resolve_properties->supportedStencilResolveModes == 0) { + printf("\t\t\tVK_RESOLVE_MODE_NONE_KHR\n"); + } else { + if (depth_stencil_resolve_properties->supportedStencilResolveModes & VK_RESOLVE_MODE_SAMPLE_ZERO_BIT_KHR) + printf("\t\t\tVK_RESOLVE_MODE_SAMPLE_ZERO_BIT_KHR\n"); + if (depth_stencil_resolve_properties->supportedStencilResolveModes & VK_RESOLVE_MODE_AVERAGE_BIT_KHR) + printf("\t\t\tVK_RESOLVE_MODE_AVERAGE_BIT_KHR\n"); + if (depth_stencil_resolve_properties->supportedStencilResolveModes & VK_RESOLVE_MODE_MIN_BIT_KHR) + printf("\t\t\tVK_RESOLVE_MODE_MIN_BIT_KHR\n"); + if (depth_stencil_resolve_properties->supportedStencilResolveModes & VK_RESOLVE_MODE_MAX_BIT_KHR) + printf("\t\t\tVK_RESOLVE_MODE_MAX_BIT_KHR\n"); + } + printf("\t\tindependentResolveNone = %" PRIuLEAST32 "\n", depth_stencil_resolve_properties->independentResolveNone); + printf("\t\tindependentResolve = %" PRIuLEAST32 "\n", depth_stencil_resolve_properties->independentResolve); + } } place = structure->pNext; |
