diff options
| author | Jeremy Kniager <jeremyk@lunarg.com> | 2019-01-03 13:12:40 -0700 |
|---|---|---|
| committer | jeremyk-lunarg <jeremyk@lunarg.com> | 2019-01-09 10:54:27 -0700 |
| commit | bc3f579d5bb7e0b6ad715d7e194a0bf70e164654 (patch) | |
| tree | d2b665b2d7a27c1fac12a75d3ba7caf4e30f2651 | |
| parent | a5ca93503e5528f1b3f08fad106daa02fc1afdea (diff) | |
| download | usermoji-bc3f579d5bb7e0b6ad715d7e194a0bf70e164654.tar.xz | |
vulkaninfo: Add VK_EXT_transform_feedback
Added output for the following structures from
extension VK_EXT_transform_feedback:
VkPhysicalDeviceTransformFeedbackFeaturesEXT
VkPhysicalDeviceTransformFeedbackPropertiesEXT
Change-Id: I60c907a26071ddc315d588b9cdc395f4d3bc446d
| -rw-r--r-- | vulkaninfo/vulkaninfo.c | 49 |
1 files changed, 47 insertions, 2 deletions
diff --git a/vulkaninfo/vulkaninfo.c b/vulkaninfo/vulkaninfo.c index eb631744..a02991ee 100644 --- a/vulkaninfo/vulkaninfo.c +++ b/vulkaninfo/vulkaninfo.c @@ -993,7 +993,9 @@ static void AppGpuInit(struct AppGpu *gpu, struct AppInstance *inst, uint32_t id {.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR, .mem_size = sizeof(VkPhysicalDeviceFloatControlsPropertiesKHR)}, {.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT, - .mem_size = sizeof(VkPhysicalDevicePCIBusInfoPropertiesEXT)}}; + .mem_size = sizeof(VkPhysicalDevicePCIBusInfoPropertiesEXT)}, + {.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT, + .mem_size = sizeof(VkPhysicalDeviceTransformFeedbackPropertiesEXT)}}; uint32_t chain_info_len = ARRAY_SIZE(chain_info); @@ -1095,7 +1097,9 @@ static void AppGpuInit(struct AppGpu *gpu, struct AppInstance *inst, uint32_t id {.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR, .mem_size = sizeof(VkPhysicalDeviceFloat16Int8FeaturesKHR)}, {.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR, - .mem_size = sizeof(VkPhysicalDeviceShaderAtomicInt64FeaturesKHR)}}; + .mem_size = sizeof(VkPhysicalDeviceShaderAtomicInt64FeaturesKHR)}, + {.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT, + .mem_size = sizeof(VkPhysicalDeviceTransformFeedbackFeaturesEXT)}}; uint32_t chain_info_len = ARRAY_SIZE(chain_info); @@ -2337,6 +2341,19 @@ static void AppGpuDumpFeatures(const struct AppGpu *gpu, FILE *out) { printf("\tshaderBufferInt64Atomics = %" PRIuLEAST32 "\n", shader_atomic_int64_features->shaderBufferInt64Atomics); printf("\tshaderSharedInt64Atomics = %" PRIuLEAST32 "\n", shader_atomic_int64_features->shaderSharedInt64Atomics); } + } else if (structure->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT && CheckPhysicalDeviceExtensionIncluded(VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME, gpu->device_extensions, gpu->device_extension_count)) { + VkPhysicalDeviceTransformFeedbackFeaturesEXT *transform_feedback_features = (VkPhysicalDeviceTransformFeedbackFeaturesEXT*)structure; + if (html_output) { + fprintf(out, "\n\t\t\t\t\t<details><summary>VkPhysicalDeviceTransformFeedbackFeatures</summary>\n"); + fprintf(out, "\t\t\t\t\t\t<details><summary>transformFeedback = <div class='val'>%" PRIuLEAST32 "</div></summary></details>\n", transform_feedback_features->transformFeedback); + fprintf(out, "\t\t\t\t\t\t<details><summary>geometryStreams = <div class='val'>%" PRIuLEAST32 "</div></summary></details>\n", transform_feedback_features->geometryStreams); + } + else if (human_readable_output) { + printf("\nVkPhysicalDeviceTransformFeedbackFeatures:\n"); + printf("==========================================\n"); + printf("\ttransformFeedback = %" PRIuLEAST32 "\n", transform_feedback_features->transformFeedback); + printf("\tgeometryStreams = %" PRIuLEAST32 "\n", transform_feedback_features->geometryStreams); + } } place = structure->pNext; } @@ -3094,6 +3111,34 @@ static void AppGpuDumpProps(const struct AppGpu *gpu, FILE *out) { printf("\tpciDevice = %" PRIuLEAST32 "\n", pci_bus_properties->pciDevice); printf("\tpciFunction = %" PRIuLEAST32 "\n", pci_bus_properties->pciFunction); } + } else if (structure->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT && CheckPhysicalDeviceExtensionIncluded(VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME, gpu->device_extensions, gpu->device_extension_count)) { + VkPhysicalDeviceTransformFeedbackPropertiesEXT *transform_feedback_properties = (VkPhysicalDeviceTransformFeedbackPropertiesEXT*)structure; + if (html_output) { + fprintf(out, "\n\t\t\t\t\t<details><summary>VkPhysicalDeviceTransformFeedbackProperties</summary>\n"); + fprintf(out, "\t\t\t\t\t\t<details><summary>maxTransformFeedbackStreams = <div class='val'>%" PRIuLEAST32 "</div></summary></details>\n", transform_feedback_properties->maxTransformFeedbackStreams); + fprintf(out, "\t\t\t\t\t\t<details><summary>maxTransformFeedbackBuffers = <div class='val'>%" PRIuLEAST32 "</div></summary></details>\n", transform_feedback_properties->maxTransformFeedbackBuffers); + fprintf(out, "\t\t\t\t\t\t<details><summary>maxTransformFeedbackBufferSize = <div class='val'>%" PRIuLEAST64 "</div></summary></details>\n", transform_feedback_properties->maxTransformFeedbackBufferSize); + fprintf(out, "\t\t\t\t\t\t<details><summary>maxTransformFeedbackStreamDataSize = <div class='val'>%" PRIuLEAST32 "</div></summary></details>\n", transform_feedback_properties->maxTransformFeedbackStreamDataSize); + fprintf(out, "\t\t\t\t\t\t<details><summary>maxTransformFeedbackBufferDataSize = <div class='val'>%" PRIuLEAST32 "</div></summary></details>\n", transform_feedback_properties->maxTransformFeedbackBufferDataSize); + fprintf(out, "\t\t\t\t\t\t<details><summary>maxTransformFeedbackBufferDataStride = <div class='val'>%" PRIuLEAST32 "</div></summary></details>\n", transform_feedback_properties->maxTransformFeedbackBufferDataStride); + fprintf(out, "\t\t\t\t\t\t<details><summary>transformFeedbackQueries = <div class='val'>%" PRIuLEAST32 "</div></summary></details>\n", transform_feedback_properties->transformFeedbackQueries); + fprintf(out, "\t\t\t\t\t\t<details><summary>transformFeedbackStreamsLinesTriangles = <div class='val'>%" PRIuLEAST32 "</div></summary></details>\n", transform_feedback_properties->transformFeedbackStreamsLinesTriangles); + fprintf(out, "\t\t\t\t\t\t<details><summary>transformFeedbackRasterizationStreamSelect = <div class='val'>%" PRIuLEAST32 "</div></summary></details>\n", transform_feedback_properties->transformFeedbackRasterizationStreamSelect); + fprintf(out, "\t\t\t\t\t\t<details><summary>transformFeedbackDraw = <div class='val'>%" PRIuLEAST32 "</div></summary></details>\n", transform_feedback_properties->transformFeedbackDraw); + } else if (human_readable_output) { + printf("\nVkPhysicalDeviceTransformFeedbackProperties\n"); + printf("===========================================\n"); + printf("\tmaxTransformFeedbackStreams = %" PRIuLEAST32 "\n", transform_feedback_properties->maxTransformFeedbackStreams); + printf("\tmaxTransformFeedbackBuffers = %" PRIuLEAST32 "\n", transform_feedback_properties->maxTransformFeedbackBuffers); + printf("\tmaxTransformFeedbackBufferSize = %" PRIuLEAST64 "\n", transform_feedback_properties->maxTransformFeedbackBufferSize); + printf("\tmaxTransformFeedbackStreamDataSize = %" PRIuLEAST32 "\n", transform_feedback_properties->maxTransformFeedbackStreamDataSize); + printf("\tmaxTransformFeedbackBufferDataSize = %" PRIuLEAST32 "\n", transform_feedback_properties->maxTransformFeedbackBufferDataSize); + printf("\tmaxTransformFeedbackBufferDataStride = %" PRIuLEAST32 "\n", transform_feedback_properties->maxTransformFeedbackBufferDataStride); + printf("\ttransformFeedbackQueries = %" PRIuLEAST32 "\n", transform_feedback_properties->transformFeedbackQueries); + printf("\ttransformFeedbackStreamsLinesTriangles = %" PRIuLEAST32 "\n", transform_feedback_properties->transformFeedbackStreamsLinesTriangles); + printf("\ttransformFeedbackRasterizationStreamSelect = %" PRIuLEAST32 "\n", transform_feedback_properties->transformFeedbackRasterizationStreamSelect); + printf("\ttransformFeedbackDraw = %" PRIuLEAST32 "\n", transform_feedback_properties->transformFeedbackDraw); + } } place = structure->pNext; } |
