From 636ca3363d089f01f60c3fd13d9ee4934036a837 Mon Sep 17 00:00:00 2001 From: Charles Giessen Date: Wed, 7 Aug 2019 16:44:48 -0600 Subject: vulkaninfo: support for texel_buffer_alingment_ext Change-Id: I424862d61714b93462bc847c63ae95d6716da154 --- vulkaninfo/vulkaninfo.c | 177 ++++++++++++++++++++++++++++++------------------ 1 file changed, 111 insertions(+), 66 deletions(-) diff --git a/vulkaninfo/vulkaninfo.c b/vulkaninfo/vulkaninfo.c index 32fa5a9c..c8136047 100644 --- a/vulkaninfo/vulkaninfo.c +++ b/vulkaninfo/vulkaninfo.c @@ -980,7 +980,9 @@ static void AppGpuInit(struct AppGpu *gpu, struct AppInstance *inst, uint32_t id {.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT, .mem_size = sizeof(VkPhysicalDeviceDescriptorIndexingPropertiesEXT)}, {.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR, - .mem_size = sizeof(VkPhysicalDeviceDepthStencilResolvePropertiesKHR)}}; + .mem_size = sizeof(VkPhysicalDeviceDepthStencilResolvePropertiesKHR)}, + {.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT, + .mem_size = sizeof(VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT)}}; uint32_t chain_info_len = ARRAY_SIZE(chain_info); @@ -1110,7 +1112,9 @@ static void AppGpuInit(struct AppGpu *gpu, struct AppInstance *inst, uint32_t id {.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT, .mem_size = sizeof(VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT)}, {.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR, - .mem_size = sizeof(VkPhysicalDeviceImagelessFramebufferFeaturesKHR)}}; + .mem_size = sizeof(VkPhysicalDeviceImagelessFramebufferFeaturesKHR)}, + {.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT, + .mem_size = sizeof(VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT)}}; uint32_t chain_info_len = ARRAY_SIZE(chain_info); @@ -3460,6 +3464,23 @@ static void AppGpuDumpFeatures(const struct AppGpu *gpu, FILE *out) { printf("================================================\n"); printf("\timagelessFramebuffer = %" PRIuLEAST32 "\n", imageless_framebuffer->imagelessFramebuffer); } + } else if (structure->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT && + CheckPhysicalDeviceExtensionIncluded(VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME, gpu->device_extensions, + gpu->device_extension_count)) { + VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT *texel_buffer_alignment = + (VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT *)structure; + if (html_output) { + fprintf(out, "\n\t\t\t\t\t
VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT\n"); + fprintf(out, + "\t\t\t\t\t\t
texelBufferAlignment = %" PRIuLEAST32 + "
\n", + texel_buffer_alignment->texelBufferAlignment); + fprintf(out, "\t\t\t\t\t
\n"); + } else if (human_readable_output) { + printf("\nVkPhysicalDeviceTexelBufferAlignmentFeaturesEXT:\n"); + printf("=======================================================\n"); + printf("\ttexelBufferAlignment = %" PRIuLEAST32 "\n", texel_buffer_alignment->texelBufferAlignment); + } } place = structure->pNext; } @@ -4496,10 +4517,10 @@ static void AppGpuDumpProps(const struct AppGpu *gpu, FILE *out) { (uint32_t)id_props->deviceLUID[2], (uint32_t)id_props->deviceLUID[3], (uint32_t)id_props->deviceLUID[4], (uint32_t)id_props->deviceLUID[5], (uint32_t)id_props->deviceLUID[6], (uint32_t)id_props->deviceLUID[7]); - fprintf( - out, - "\t\t\t\t\t\t
deviceNodeMask = 0x%08x
\n", - id_props->deviceNodeMask); + fprintf(out, + "\t\t\t\t\t\t
deviceNodeMask = 0x%08x
\n", + id_props->deviceNodeMask); } fprintf(out, "\t\t\t\t\t\n"); } else if (human_readable_output) { @@ -4725,56 +4746,46 @@ static void AppGpuDumpProps(const struct AppGpu *gpu, FILE *out) { (VkPhysicalDeviceTransformFeedbackPropertiesEXT *)structure; if (html_output) { fprintf(out, "\n\t\t\t\t\t
VkPhysicalDeviceTransformFeedbackProperties\n"); - fprintf( - out, - "\t\t\t\t\t\t
maxTransformFeedbackStreams = %" PRIuLEAST32 - "
\n", - transform_feedback_properties->maxTransformFeedbackStreams); - fprintf( - out, - "\t\t\t\t\t\t
maxTransformFeedbackBuffers = %" PRIuLEAST32 - "
\n", - transform_feedback_properties->maxTransformFeedbackBuffers); - fprintf( - out, - "\t\t\t\t\t\t
maxTransformFeedbackBufferSize = %" PRIuLEAST64 - "
\n", - transform_feedback_properties->maxTransformFeedbackBufferSize); - fprintf( - out, - "\t\t\t\t\t\t
maxTransformFeedbackStreamDataSize = %" PRIuLEAST32 - "
\n", - transform_feedback_properties->maxTransformFeedbackStreamDataSize); - fprintf( - out, - "\t\t\t\t\t\t
maxTransformFeedbackBufferDataSize = %" PRIuLEAST32 - "
\n", - transform_feedback_properties->maxTransformFeedbackBufferDataSize); - fprintf( - out, - "\t\t\t\t\t\t
maxTransformFeedbackBufferDataStride = %" PRIuLEAST32 - "
\n", - transform_feedback_properties->maxTransformFeedbackBufferDataStride); - fprintf( - out, - "\t\t\t\t\t\t
transformFeedbackQueries = %" PRIuLEAST32 - "
\n", - transform_feedback_properties->transformFeedbackQueries); - fprintf( - out, - "\t\t\t\t\t\t
transformFeedbackStreamsLinesTriangles = %" PRIuLEAST32 - "
\n", - transform_feedback_properties->transformFeedbackStreamsLinesTriangles); - fprintf( - out, - "\t\t\t\t\t\t
transformFeedbackRasterizationStreamSelect = %" PRIuLEAST32 - "
\n", - transform_feedback_properties->transformFeedbackRasterizationStreamSelect); - fprintf( - out, - "\t\t\t\t\t\t
transformFeedbackDraw = %" PRIuLEAST32 - "
\n", - transform_feedback_properties->transformFeedbackDraw); + fprintf(out, + "\t\t\t\t\t\t
maxTransformFeedbackStreams = %" PRIuLEAST32 "
\n", + transform_feedback_properties->maxTransformFeedbackStreams); + fprintf(out, + "\t\t\t\t\t\t
maxTransformFeedbackBuffers = %" PRIuLEAST32 "
\n", + transform_feedback_properties->maxTransformFeedbackBuffers); + fprintf(out, + "\t\t\t\t\t\t
maxTransformFeedbackBufferSize = %" PRIuLEAST64 "
\n", + transform_feedback_properties->maxTransformFeedbackBufferSize); + fprintf(out, + "\t\t\t\t\t\t
maxTransformFeedbackStreamDataSize = %" PRIuLEAST32 "
\n", + transform_feedback_properties->maxTransformFeedbackStreamDataSize); + fprintf(out, + "\t\t\t\t\t\t
maxTransformFeedbackBufferDataSize = %" PRIuLEAST32 "
\n", + transform_feedback_properties->maxTransformFeedbackBufferDataSize); + fprintf(out, + "\t\t\t\t\t\t
maxTransformFeedbackBufferDataStride = %" PRIuLEAST32 "
\n", + transform_feedback_properties->maxTransformFeedbackBufferDataStride); + fprintf(out, + "\t\t\t\t\t\t
transformFeedbackQueries = %" PRIuLEAST32 "
\n", + transform_feedback_properties->transformFeedbackQueries); + fprintf(out, + "\t\t\t\t\t\t
transformFeedbackStreamsLinesTriangles = %" PRIuLEAST32 "
\n", + transform_feedback_properties->transformFeedbackStreamsLinesTriangles); + fprintf(out, + "\t\t\t\t\t\t
transformFeedbackRasterizationStreamSelect = %" PRIuLEAST32 "
\n", + transform_feedback_properties->transformFeedbackRasterizationStreamSelect); + fprintf(out, + "\t\t\t\t\t\t
transformFeedbackDraw = %" PRIuLEAST32 "
\n", + transform_feedback_properties->transformFeedbackDraw); fprintf(out, "\t\t\t\t\t
\n"); } else if (human_readable_output) { printf("\nVkPhysicalDeviceTransformFeedbackProperties\n"); @@ -4944,11 +4955,10 @@ static void AppGpuDumpProps(const struct AppGpu *gpu, FILE *out) { (VkPhysicalDeviceDescriptorIndexingPropertiesEXT *)structure; if (html_output) { fprintf(out, "\n\t\t\t\t\t
VkPhysicalDeviceDescriptorIndexingProperties\n"); - fprintf( - out, - "\t\t\t\t\t\t\t
maxUpdateAfterBindDescriptorsInAllPools = %" PRIuLEAST32 - "
\n", - indexing_properties->maxUpdateAfterBindDescriptorsInAllPools); + fprintf(out, + "\t\t\t\t\t\t\t
maxUpdateAfterBindDescriptorsInAllPools = %" PRIuLEAST32 "
\n", + indexing_properties->maxUpdateAfterBindDescriptorsInAllPools); fprintf(out, "\t\t\t\t\t\t\t
shaderUniformBufferArrayNonUniformIndexingNative = %" PRIuLEAST32 "
\n", @@ -5005,11 +5015,10 @@ static void AppGpuDumpProps(const struct AppGpu *gpu, FILE *out) { "\t\t\t\t\t\t\t
maxPerStageUpdateAfterBindResources = %" PRIuLEAST32 "
\n", indexing_properties->maxPerStageUpdateAfterBindResources); - fprintf( - out, - "\t\t\t\t\t\t\t
maxDescriptorSetUpdateAfterBindSamplers = %" PRIuLEAST32 - "
\n", - indexing_properties->maxDescriptorSetUpdateAfterBindSamplers); + fprintf(out, + "\t\t\t\t\t\t\t
maxDescriptorSetUpdateAfterBindSamplers = %" PRIuLEAST32 "
\n", + indexing_properties->maxDescriptorSetUpdateAfterBindSamplers); fprintf(out, "\t\t\t\t\t\t\t
maxDescriptorSetUpdateAfterBindUniformBuffers = %" PRIuLEAST32 "
\n", @@ -5088,6 +5097,42 @@ static void AppGpuDumpProps(const struct AppGpu *gpu, FILE *out) { printf("\tmaxDescriptorSetUpdateAfterBindInputAttachments = %" PRIuLEAST32 "\n", indexing_properties->maxDescriptorSetUpdateAfterBindInputAttachments); } + } else if (structure->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT && + CheckPhysicalDeviceExtensionIncluded(VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME, gpu->device_extensions, + gpu->device_extension_count)) { + VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT *texel_buffer_alignment = + (VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT *)structure; + if (html_output) { + fprintf(out, "\n\t\t\t\t\t
VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT\n"); + fprintf(out, + "\t\t\t\t\t\t\t
storageTexelBufferOffsetAlignmentBytes = %" PRIuLEAST64 "
\n", + texel_buffer_alignment->storageTexelBufferOffsetAlignmentBytes); + fprintf(out, + "\t\t\t\t\t\t\t
storageTexelBufferOffsetSingleTexelAlignment = %" PRIuLEAST32 "
\n", + texel_buffer_alignment->storageTexelBufferOffsetSingleTexelAlignment); + fprintf(out, + "\t\t\t\t\t\t\t
uniformTexelBufferOffsetAlignmentBytes = %" PRIuLEAST64 "
\n", + texel_buffer_alignment->uniformTexelBufferOffsetAlignmentBytes); + fprintf(out, + "\t\t\t\t\t\t\t
uniformTexelBufferOffsetSingleTexelAlignment = %" PRIuLEAST32 "
\n", + texel_buffer_alignment->uniformTexelBufferOffsetSingleTexelAlignment); + fprintf(out, "\t\t\t\t\t
\n"); + } else if (human_readable_output) { + printf("\nVkPhysicalDeviceTexelBufferAlignmentPropertiesEXT\n"); + printf("=================================================\n"); + printf("\t\tstorageTexelBufferOffsetAlignmentBytes = %" PRIuLEAST64 "\n", + texel_buffer_alignment->storageTexelBufferOffsetAlignmentBytes); + printf("\t\tstorageTexelBufferOffsetSingleTexelAlignment = %" PRIuLEAST32 "\n", + texel_buffer_alignment->storageTexelBufferOffsetSingleTexelAlignment); + printf("\t\tuniformTexelBufferOffsetAlignmentBytes = %" PRIuLEAST64 "\n", + texel_buffer_alignment->uniformTexelBufferOffsetAlignmentBytes); + printf("\t\tuniformTexelBufferOffsetSingleTexelAlignment = %" PRIuLEAST32 "\n", + texel_buffer_alignment->uniformTexelBufferOffsetSingleTexelAlignment); + } } place = structure->pNext; } -- cgit v1.2.3