aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTony-LunarG <tony@lunarg.com>2019-07-02 13:40:06 -0600
committerTony Barbour <tony@lunarg.com>2019-07-15 11:29:38 -0600
commit39f264fd192ad346f489d31245e8789889e3fe0d (patch)
tree78c8e0215215dc3b666da7bcefa7ce939f1d06eb
parent269e632734962cbebc93d9e88a5de48e18bffad3 (diff)
downloadvulkan-tools-39f264fd192ad346f489d31245e8789889e3fe0d.tar.gz
vulkaninfo: Add descriptor indexing feats/props
Change-Id: I7863fb44fbc1e2c7f7833580799db6b8fb229afe
-rw-r--r--vulkaninfo/vulkaninfo.c287
1 files changed, 286 insertions, 1 deletions
diff --git a/vulkaninfo/vulkaninfo.c b/vulkaninfo/vulkaninfo.c
index 0da527fb..bb099194 100644
--- a/vulkaninfo/vulkaninfo.c
+++ b/vulkaninfo/vulkaninfo.c
@@ -977,6 +977,8 @@ static void AppGpuInit(struct AppGpu *gpu, struct AppInstance *inst, uint32_t id
.mem_size = sizeof(VkPhysicalDeviceTransformFeedbackPropertiesEXT)},
{.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT,
.mem_size = sizeof(VkPhysicalDeviceFragmentDensityMapPropertiesEXT)},
+ {.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)}};
@@ -1097,6 +1099,8 @@ static void AppGpuInit(struct AppGpu *gpu, struct AppInstance *inst, uint32_t id
.mem_size = sizeof(VkPhysicalDeviceMemoryPriorityFeaturesEXT)},
{.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT,
.mem_size = sizeof(VkPhysicalDeviceBufferAddressFeaturesEXT)},
+ {.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT,
+ .mem_size = sizeof(VkPhysicalDeviceDescriptorIndexingFeaturesEXT)},
{.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT,
.mem_size = sizeof(VkPhysicalDeviceYcbcrImageArraysFeaturesEXT)},
{.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT,
@@ -3254,6 +3258,137 @@ static void AppGpuDumpFeatures(const struct AppGpu *gpu, FILE *out) {
printf("=======================================\n");
printf("\thostQueryReset = %" PRIuLEAST32 "\n", host_query_reset_features->hostQueryReset);
}
+ } else if (structure->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT &&
+ CheckPhysicalDeviceExtensionIncluded(VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME, gpu->device_extensions,
+ gpu->device_extension_count)) {
+ VkPhysicalDeviceDescriptorIndexingFeaturesEXT *indexing_features =
+ (VkPhysicalDeviceDescriptorIndexingFeaturesEXT *)structure;
+ if (html_output) {
+ fprintf(out, "\t\t\t\t\t<details><summary>VkPhysicalDeviceDescriptorIndexingFeatures</summary>\n");
+ fprintf(out,
+ "\t\t\t\t\t\t<details><summary>shaderInputAttachmentArrayDynamicIndexing = <span "
+ "class='val'>%" PRIuLEAST32 "</span></summary></details>\n",
+ indexing_features->shaderInputAttachmentArrayDynamicIndexing);
+ fprintf(out,
+ "\t\t\t\t\t\t<details><summary>shaderUniformTexelBufferArrayDynamicIndexing = <span "
+ "class='val'>%" PRIuLEAST32 "</span></summary></details>\n",
+ indexing_features->shaderUniformTexelBufferArrayDynamicIndexing);
+ fprintf(out,
+ "\t\t\t\t\t\t<details><summary>shaderStorageTexelBufferArrayDynamicIndexing = <span "
+ "class='val'>%" PRIuLEAST32 "</span></summary></details>\n",
+ indexing_features->shaderStorageTexelBufferArrayDynamicIndexing);
+ fprintf(out,
+ "\t\t\t\t\t\t<details><summary>shaderUniformBufferArrayNonUniformIndexing = <span "
+ "class='val'>%" PRIuLEAST32 "</span></summary></details>\n",
+ indexing_features->shaderUniformBufferArrayNonUniformIndexing);
+ fprintf(out,
+ "\t\t\t\t\t\t<details><summary>shaderSampledImageArrayNonUniformIndexing = <span "
+ "class='val'>%" PRIuLEAST32 "</span></summary></details>\n",
+ indexing_features->shaderSampledImageArrayNonUniformIndexing);
+ fprintf(out,
+ "\t\t\t\t\t\t<details><summary>shaderStorageBufferArrayNonUniformIndexing = <span "
+ "class='val'>%" PRIuLEAST32 "</span></summary></details>\n",
+ indexing_features->shaderStorageBufferArrayNonUniformIndexing);
+ fprintf(out,
+ "\t\t\t\t\t\t<details><summary>shaderStorageImageArrayNonUniformIndexing = <span "
+ "class='val'>%" PRIuLEAST32 "</span></summary></details>\n",
+ indexing_features->shaderStorageImageArrayNonUniformIndexing);
+ fprintf(out,
+ "\t\t\t\t\t\t<details><summary>shaderInputAttachmentArrayNonUniformIndexing = <span "
+ "class='val'>%" PRIuLEAST32 "</span></summary></details>\n",
+ indexing_features->shaderInputAttachmentArrayNonUniformIndexing);
+ fprintf(out,
+ "\t\t\t\t\t\t<details><summary>shaderUniformTexelBufferArrayNonUniformIndexing = <span "
+ "class='val'>%" PRIuLEAST32 "</span></summary></details>\n",
+ indexing_features->shaderUniformTexelBufferArrayNonUniformIndexing);
+ fprintf(out,
+ "\t\t\t\t\t\t<details><summary>shaderStorageTexelBufferArrayNonUniformIndexing = <span "
+ "class='val'>%" PRIuLEAST32 "</span></summary></details>\n",
+ indexing_features->shaderStorageTexelBufferArrayNonUniformIndexing);
+ fprintf(out,
+ "\t\t\t\t\t\t<details><summary>descriptorBindingUniformBufferUpdateAfterBind = <span "
+ "class='val'>%" PRIuLEAST32 "</span></summary></details>\n",
+ indexing_features->descriptorBindingUniformBufferUpdateAfterBind);
+ fprintf(out,
+ "\t\t\t\t\t\t<details><summary>descriptorBindingSampledImageUpdateAfterBind = <span "
+ "class='val'>%" PRIuLEAST32 "</span></summary></details>\n",
+ indexing_features->descriptorBindingSampledImageUpdateAfterBind);
+ fprintf(out,
+ "\t\t\t\t\t\t<details><summary>descriptorBindingStorageImageUpdateAfterBind = <span "
+ "class='val'>%" PRIuLEAST32 "</span></summary></details>\n",
+ indexing_features->descriptorBindingStorageImageUpdateAfterBind);
+ fprintf(out,
+ "\t\t\t\t\t\t<details><summary>descriptorBindingStorageBufferUpdateAfterBind = <span "
+ "class='val'>%" PRIuLEAST32 "</span></summary></details>\n",
+ indexing_features->descriptorBindingStorageBufferUpdateAfterBind);
+ fprintf(out,
+ "\t\t\t\t\t\t<details><summary>descriptorBindingUniformTexelBufferUpdateAfterBind = <span "
+ "class='val'>%" PRIuLEAST32 "</span></summary></details>\n",
+ indexing_features->descriptorBindingUniformTexelBufferUpdateAfterBind);
+ fprintf(out,
+ "\t\t\t\t\t\t<details><summary>descriptorBindingStorageTexelBufferUpdateAfterBind = <span "
+ "class='val'>%" PRIuLEAST32 "</span></summary></details>\n",
+ indexing_features->descriptorBindingStorageTexelBufferUpdateAfterBind);
+ fprintf(out,
+ "\t\t\t\t\t\t<details><summary>descriptorBindingUpdateUnusedWhilePending = <span "
+ "class='val'>%" PRIuLEAST32 "</span></summary></details>\n",
+ indexing_features->descriptorBindingUpdateUnusedWhilePending);
+ fprintf(out,
+ "\t\t\t\t\t\t<details><summary>descriptorBindingPartiallyBound = <span class='val'>%" PRIuLEAST32
+ "</span></summary></details>\n",
+ indexing_features->descriptorBindingPartiallyBound);
+ fprintf(out,
+ "\t\t\t\t\t\t<details><summary>descriptorBindingVariableDescriptorCount = <span "
+ "class='val'>%" PRIuLEAST32 "</span></summary></details>\n",
+ indexing_features->descriptorBindingVariableDescriptorCount);
+ fprintf(out,
+ "\t\t\t\t\t\t<details><summary>runtimeDescriptorArray = <span class='val'>%" PRIuLEAST32
+ "</span></summary></details>\n",
+ indexing_features->runtimeDescriptorArray);
+ fprintf(out, "\t\t\t\t\t</details>\n");
+ } else if (human_readable_output) {
+ printf("\nVkPhysicalDeviceDescriptorIndexingFeatures:\n");
+ printf("=======================================\n");
+ printf("\tshaderInputAttachmentArrayDynamicIndexing = %" PRIuLEAST32 "\n",
+ indexing_features->shaderInputAttachmentArrayDynamicIndexing);
+ printf("\tshaderUniformTexelBufferArrayDynamicIndexing = %" PRIuLEAST32 "\n",
+ indexing_features->shaderUniformTexelBufferArrayDynamicIndexing);
+ printf("\tshaderStorageTexelBufferArrayDynamicIndexing = %" PRIuLEAST32 "\n",
+ indexing_features->shaderStorageTexelBufferArrayDynamicIndexing);
+ printf("\tshaderUniformBufferArrayNonUniformIndexing = %" PRIuLEAST32 "\n",
+ indexing_features->shaderUniformBufferArrayNonUniformIndexing);
+ printf("\tshaderSampledImageArrayNonUniformIndexing = %" PRIuLEAST32 "\n",
+ indexing_features->shaderSampledImageArrayNonUniformIndexing);
+ printf("\tshaderStorageBufferArrayNonUniformIndexing = %" PRIuLEAST32 "\n",
+ indexing_features->shaderStorageBufferArrayNonUniformIndexing);
+ printf("\tshaderStorageImageArrayNonUniformIndexing = %" PRIuLEAST32 "\n",
+ indexing_features->shaderStorageImageArrayNonUniformIndexing);
+ printf("\tshaderInputAttachmentArrayNonUniformIndexing = %" PRIuLEAST32 "\n",
+ indexing_features->shaderInputAttachmentArrayNonUniformIndexing);
+ printf("\tshaderUniformTexelBufferArrayNonUniformIndexing = %" PRIuLEAST32 "\n",
+ indexing_features->shaderUniformTexelBufferArrayNonUniformIndexing);
+ printf("\tshaderStorageTexelBufferArrayNonUniformIndexing = %" PRIuLEAST32 "\n",
+ indexing_features->shaderStorageTexelBufferArrayNonUniformIndexing);
+ printf("\tdescriptorBindingUniformBufferUpdateAfterBind = %" PRIuLEAST32 "\n",
+ indexing_features->descriptorBindingUniformBufferUpdateAfterBind);
+ printf("\tdescriptorBindingSampledImageUpdateAfterBind = %" PRIuLEAST32 "\n",
+ indexing_features->descriptorBindingSampledImageUpdateAfterBind);
+ printf("\tdescriptorBindingStorageImageUpdateAfterBind = %" PRIuLEAST32 "\n",
+ indexing_features->descriptorBindingStorageImageUpdateAfterBind);
+ printf("\tdescriptorBindingStorageBufferUpdateAfterBind = %" PRIuLEAST32 "\n",
+ indexing_features->descriptorBindingStorageBufferUpdateAfterBind);
+ printf("\tdescriptorBindingUniformTexelBufferUpdateAfterBind = %" PRIuLEAST32 "\n",
+ indexing_features->descriptorBindingUniformTexelBufferUpdateAfterBind);
+ printf("\tdescriptorBindingStorageTexelBufferUpdateAfterBind = %" PRIuLEAST32 "\n",
+ indexing_features->descriptorBindingStorageTexelBufferUpdateAfterBind);
+ printf("\tdescriptorBindingUpdateUnusedWhilePending = %" PRIuLEAST32 "\n",
+ indexing_features->descriptorBindingUpdateUnusedWhilePending);
+ printf("\tdescriptorBindingPartiallyBound = %" PRIuLEAST32 "\n",
+ indexing_features->descriptorBindingPartiallyBound);
+ printf("\tdescriptorBindingVariableDescriptorCount = %" PRIuLEAST32 "\n",
+ indexing_features->descriptorBindingVariableDescriptorCount);
+ printf("\truntimeDescriptorArray = %" PRIuLEAST32 "\n", indexing_features->runtimeDescriptorArray);
+ }
}
place = structure->pNext;
}
@@ -4729,8 +4864,158 @@ static void AppGpuDumpProps(const struct AppGpu *gpu, FILE *out) {
depth_stencil_resolve_properties->independentResolveNone);
printf("\t\tindependentResolve = %" PRIuLEAST32 "\n", depth_stencil_resolve_properties->independentResolve);
}
+ } else if (structure->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT &&
+ CheckPhysicalDeviceExtensionIncluded(VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME, gpu->device_extensions,
+ gpu->device_extension_count)) {
+ VkPhysicalDeviceDescriptorIndexingPropertiesEXT *indexing_properties =
+ (VkPhysicalDeviceDescriptorIndexingPropertiesEXT *)structure;
+ if (html_output) {
+ fprintf(out, "\n\t\t\t\t\t<details><summary>VkPhysicalDeviceDescriptorIndexingProperties</summary>\n");
+ fprintf(
+ out,
+ "\t\t\t\t\t\t\t<details><summary>maxUpdateAfterBindDescriptorsInAllPools = <span class='val'>%" PRIuLEAST32
+ "</span></summary></details>\n",
+ indexing_properties->maxUpdateAfterBindDescriptorsInAllPools);
+ fprintf(out,
+ "\t\t\t\t\t\t\t<details><summary>shaderUniformBufferArrayNonUniformIndexingNative = <span "
+ "class='val'>%" PRIuLEAST32 "</span></summary></details>\n",
+ indexing_properties->shaderUniformBufferArrayNonUniformIndexingNative);
+ fprintf(out,
+ "\t\t\t\t\t\t\t<details><summary>shaderSampledImageArrayNonUniformIndexingNative = <span "
+ "class='val'>%" PRIuLEAST32 "</span></summary></details>\n",
+ indexing_properties->shaderSampledImageArrayNonUniformIndexingNative);
+ fprintf(out,
+ "\t\t\t\t\t\t\t<details><summary>shaderStorageBufferArrayNonUniformIndexingNative = <span "
+ "class='val'>%" PRIuLEAST32 "</span></summary></details>\n",
+ indexing_properties->shaderStorageBufferArrayNonUniformIndexingNative);
+ fprintf(out,
+ "\t\t\t\t\t\t\t<details><summary>shaderStorageImageArrayNonUniformIndexingNative = <span "
+ "class='val'>%" PRIuLEAST32 "</span></summary></details>\n",
+ indexing_properties->shaderStorageImageArrayNonUniformIndexingNative);
+ fprintf(out,
+ "\t\t\t\t\t\t\t<details><summary>shaderInputAttachmentArrayNonUniformIndexingNative = <span "
+ "class='val'>%" PRIuLEAST32 "</span></summary></details>\n",
+ indexing_properties->shaderInputAttachmentArrayNonUniformIndexingNative);
+ fprintf(out,
+ "\t\t\t\t\t\t\t<details><summary>robustBufferAccessUpdateAfterBind = <span class='val'>%" PRIuLEAST32
+ "</span></summary></details>\n",
+ indexing_properties->robustBufferAccessUpdateAfterBind);
+ fprintf(out,
+ "\t\t\t\t\t\t\t<details><summary>quadDivergentImplicitLod = <span class='val'>%" PRIuLEAST32
+ "</span></summary></details>\n",
+ indexing_properties->quadDivergentImplicitLod);
+ fprintf(out,
+ "\t\t\t\t\t\t\t<details><summary>maxPerStageDescriptorUpdateAfterBindSamplers = <span "
+ "class='val'>%" PRIuLEAST32 "</span></summary></details>\n",
+ indexing_properties->maxPerStageDescriptorUpdateAfterBindSamplers);
+ fprintf(out,
+ "\t\t\t\t\t\t\t<details><summary>maxPerStageDescriptorUpdateAfterBindUniformBuffers = <span "
+ "class='val'>%" PRIuLEAST32 "</span></summary></details>\n",
+ indexing_properties->maxPerStageDescriptorUpdateAfterBindUniformBuffers);
+ fprintf(out,
+ "\t\t\t\t\t\t\t<details><summary>maxPerStageDescriptorUpdateAfterBindStorageBuffers = <span "
+ "class='val'>%" PRIuLEAST32 "</span></summary></details>\n",
+ indexing_properties->maxPerStageDescriptorUpdateAfterBindStorageBuffers);
+ fprintf(out,
+ "\t\t\t\t\t\t\t<details><summary>maxPerStageDescriptorUpdateAfterBindSampledImages = <span "
+ "class='val'>%" PRIuLEAST32 "</span></summary></details>\n",
+ indexing_properties->maxPerStageDescriptorUpdateAfterBindSampledImages);
+ fprintf(out,
+ "\t\t\t\t\t\t\t<details><summary>maxPerStageDescriptorUpdateAfterBindStorageImages = <span "
+ "class='val'>%" PRIuLEAST32 "</span></summary></details>\n",
+ indexing_properties->maxPerStageDescriptorUpdateAfterBindStorageImages);
+ fprintf(out,
+ "\t\t\t\t\t\t\t<details><summary>maxPerStageDescriptorUpdateAfterBindInputAttachments = <span "
+ "class='val'>%" PRIuLEAST32 "</span></summary></details>\n",
+ indexing_properties->maxPerStageDescriptorUpdateAfterBindInputAttachments);
+ fprintf(out,
+ "\t\t\t\t\t\t\t<details><summary>maxPerStageUpdateAfterBindResources = <span class='val'>%" PRIuLEAST32
+ "</span></summary></details>\n",
+ indexing_properties->maxPerStageUpdateAfterBindResources);
+ fprintf(
+ out,
+ "\t\t\t\t\t\t\t<details><summary>maxDescriptorSetUpdateAfterBindSamplers = <span class='val'>%" PRIuLEAST32
+ "</span></summary></details>\n",
+ indexing_properties->maxDescriptorSetUpdateAfterBindSamplers);
+ fprintf(out,
+ "\t\t\t\t\t\t\t<details><summary>maxDescriptorSetUpdateAfterBindUniformBuffers = <span "
+ "class='val'>%" PRIuLEAST32 "</span></summary></details>\n",
+ indexing_properties->maxDescriptorSetUpdateAfterBindUniformBuffers);
+ fprintf(out,
+ "\t\t\t\t\t\t\t<details><summary>maxDescriptorSetUpdateAfterBindUniformBuffersDynamic = <span "
+ "class='val'>%" PRIuLEAST32 "</span></summary></details>\n",
+ indexing_properties->maxDescriptorSetUpdateAfterBindUniformBuffersDynamic);
+ fprintf(out,
+ "\t\t\t\t\t\t\t<details><summary>maxDescriptorSetUpdateAfterBindStorageBuffers = <span "
+ "class='val'>%" PRIuLEAST32 "</span></summary></details>\n",
+ indexing_properties->maxDescriptorSetUpdateAfterBindStorageBuffers);
+ fprintf(out,
+ "\t\t\t\t\t\t\t<details><summary>maxDescriptorSetUpdateAfterBindStorageBuffersDynamic = <span "
+ "class='val'>%" PRIuLEAST32 "</span></summary></details>\n",
+ indexing_properties->maxDescriptorSetUpdateAfterBindStorageBuffersDynamic);
+ fprintf(out,
+ "\t\t\t\t\t\t\t<details><summary>maxDescriptorSetUpdateAfterBindSampledImages = <span "
+ "class='val'>%" PRIuLEAST32 "</span></summary></details>\n",
+ indexing_properties->maxDescriptorSetUpdateAfterBindSampledImages);
+ fprintf(out,
+ "\t\t\t\t\t\t\t<details><summary>maxDescriptorSetUpdateAfterBindStorageImages = <span "
+ "class='val'>%" PRIuLEAST32 "</span></summary></details>\n",
+ indexing_properties->maxDescriptorSetUpdateAfterBindStorageImages);
+ fprintf(out,
+ "\t\t\t\t\t\t\t<details><summary>maxDescriptorSetUpdateAfterBindInputAttachments = <span "
+ "class='val'>%" PRIuLEAST32 "</span></summary></details>\n",
+ indexing_properties->maxDescriptorSetUpdateAfterBindInputAttachments);
+ fprintf(out, "\t\t\t\t\t</details>\n");
+ } else if (human_readable_output) {
+ printf("\nVkPhysicalDeviceDescriptorIndexingProperties\n");
+ printf("============================================\n");
+ printf("\tmaxUpdateAfterBindDescriptorsInAllPools = %" PRIuLEAST32 "\n",
+ indexing_properties->maxUpdateAfterBindDescriptorsInAllPools);
+ printf("\tshaderUniformBufferArrayNonUniformIndexingNative = %" PRIuLEAST32 "\n",
+ indexing_properties->shaderUniformBufferArrayNonUniformIndexingNative);
+ printf("\tshaderSampledImageArrayNonUniformIndexingNative = %" PRIuLEAST32 "\n",
+ indexing_properties->shaderSampledImageArrayNonUniformIndexingNative);
+ printf("\tshaderStorageBufferArrayNonUniformIndexingNative = %" PRIuLEAST32 "\n",
+ indexing_properties->shaderStorageBufferArrayNonUniformIndexingNative);
+ printf("\tshaderStorageImageArrayNonUniformIndexingNative = %" PRIuLEAST32 "\n",
+ indexing_properties->shaderStorageImageArrayNonUniformIndexingNative);
+ printf("\tshaderInputAttachmentArrayNonUniformIndexingNative = %" PRIuLEAST32 "\n",
+ indexing_properties->shaderInputAttachmentArrayNonUniformIndexingNative);
+ printf("\trobustBufferAccessUpdateAfterBind = %" PRIuLEAST32 "\n",
+ indexing_properties->robustBufferAccessUpdateAfterBind);
+ printf("\tquadDivergentImplicitLod = %" PRIuLEAST32 "\n", indexing_properties->quadDivergentImplicitLod);
+ printf("\tmaxPerStageDescriptorUpdateAfterBindSamplers = %" PRIuLEAST32 "\n",
+ indexing_properties->maxPerStageDescriptorUpdateAfterBindSamplers);
+ printf("\tmaxPerStageDescriptorUpdateAfterBindUniformBuffers = %" PRIuLEAST32 "\n",
+ indexing_properties->maxPerStageDescriptorUpdateAfterBindUniformBuffers);
+ printf("\tmaxPerStageDescriptorUpdateAfterBindStorageBuffers = %" PRIuLEAST32 "\n",
+ indexing_properties->maxPerStageDescriptorUpdateAfterBindStorageBuffers);
+ printf("\tmaxPerStageDescriptorUpdateAfterBindSampledImages = %" PRIuLEAST32 "\n",
+ indexing_properties->maxPerStageDescriptorUpdateAfterBindSampledImages);
+ printf("\tmaxPerStageDescriptorUpdateAfterBindStorageImages = %" PRIuLEAST32 "\n",
+ indexing_properties->maxPerStageDescriptorUpdateAfterBindStorageImages);
+ printf("\tmaxPerStageDescriptorUpdateAfterBindInputAttachments = %" PRIuLEAST32 "\n",
+ indexing_properties->maxPerStageDescriptorUpdateAfterBindInputAttachments);
+ printf("\tmaxPerStageUpdateAfterBindResources = %" PRIuLEAST32 "\n",
+ indexing_properties->maxPerStageUpdateAfterBindResources);
+ printf("\tmaxDescriptorSetUpdateAfterBindSamplers = %" PRIuLEAST32 "\n",
+ indexing_properties->maxDescriptorSetUpdateAfterBindSamplers);
+ printf("\tmaxDescriptorSetUpdateAfterBindUniformBuffers = %" PRIuLEAST32 "\n",
+ indexing_properties->maxDescriptorSetUpdateAfterBindUniformBuffers);
+ printf("\tmaxDescriptorSetUpdateAfterBindUniformBuffersDynamic = %" PRIuLEAST32 "\n",
+ indexing_properties->maxDescriptorSetUpdateAfterBindUniformBuffersDynamic);
+ printf("\tmaxDescriptorSetUpdateAfterBindStorageBuffer = %" PRIuLEAST32 "\n",
+ indexing_properties->maxDescriptorSetUpdateAfterBindStorageBuffers);
+ printf("\tmaxDescriptorSetUpdateAfterBindStorageBuffersDynamic = %" PRIuLEAST32 "\n",
+ indexing_properties->maxDescriptorSetUpdateAfterBindStorageBuffersDynamic);
+ printf("\tmaxDescriptorSetUpdateAfterBindSampledImages = %" PRIuLEAST32 "\n",
+ indexing_properties->maxDescriptorSetUpdateAfterBindSampledImages);
+ printf("\tmaxDescriptorSetUpdateAfterBindStorageImages = %" PRIuLEAST32 "\n",
+ indexing_properties->maxDescriptorSetUpdateAfterBindStorageImages);
+ printf("\tmaxDescriptorSetUpdateAfterBindInputAttachments = %" PRIuLEAST32 "\n",
+ indexing_properties->maxDescriptorSetUpdateAfterBindInputAttachments);
+ }
}
-
place = structure->pNext;
}
}