aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Kniager <jeremyk@lunarg.com>2019-01-03 13:12:40 -0700
committerjeremyk-lunarg <jeremyk@lunarg.com>2019-01-09 10:54:27 -0700
commitbc3f579d5bb7e0b6ad715d7e194a0bf70e164654 (patch)
treed2b665b2d7a27c1fac12a75d3ba7caf4e30f2651
parenta5ca93503e5528f1b3f08fad106daa02fc1afdea (diff)
downloadusermoji-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.c49
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;
}