VkPhysicalDeviceDescriptorBufferPropertiesEXT
The VkPhysicalDeviceDescriptorBufferPropertiesEXT
structure is defined
as:
typedef struct VkPhysicalDeviceDescriptorBufferPropertiesEXT {
VkStructureType sType;
void* pNext;
VkBool32 combinedImageSamplerDescriptorSingleArray;
VkBool32 bufferlessPushDescriptors;
VkBool32 allowSamplerImageViewPostSubmitCreation;
VkDeviceSize descriptorBufferOffsetAlignment;
uint32_t maxDescriptorBufferBindings;
uint32_t maxResourceDescriptorBufferBindings;
uint32_t maxSamplerDescriptorBufferBindings;
uint32_t maxEmbeddedImmutableSamplerBindings;
uint32_t maxEmbeddedImmutableSamplers;
size_t bufferCaptureReplayDescriptorDataSize;
size_t imageCaptureReplayDescriptorDataSize;
size_t imageViewCaptureReplayDescriptorDataSize;
size_t samplerCaptureReplayDescriptorDataSize;
size_t accelerationStructureCaptureReplayDescriptorDataSize;
size_t samplerDescriptorSize;
size_t combinedImageSamplerDescriptorSize;
size_t sampledImageDescriptorSize;
size_t storageImageDescriptorSize;
size_t uniformTexelBufferDescriptorSize;
size_t robustUniformTexelBufferDescriptorSize;
size_t storageTexelBufferDescriptorSize;
size_t robustStorageTexelBufferDescriptorSize;
size_t uniformBufferDescriptorSize;
size_t robustUniformBufferDescriptorSize;
size_t storageBufferDescriptorSize;
size_t robustStorageBufferDescriptorSize;
size_t inputAttachmentDescriptorSize;
size_t accelerationStructureDescriptorSize;
VkDeviceSize maxSamplerDescriptorBufferRange;
VkDeviceSize maxResourceDescriptorBufferRange;
VkDeviceSize samplerDescriptorBufferAddressSpaceSize;
VkDeviceSize resourceDescriptorBufferAddressSpaceSize;
VkDeviceSize descriptorBufferAddressSpaceSize;
} VkPhysicalDeviceDescriptorBufferPropertiesEXT;
sType
is a VkStructureType value identifying this structure.pNext
isNULL
or a pointer to a structure extending this structure.combinedImageSamplerDescriptorSingleArray
indicates that the implementation does not require an array ofVK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER
descriptors to be written into a descriptor buffer as an array of image descriptors, immediately followed by an array of sampler descriptors.-
bufferlessPushDescriptors
indicates that the implementation does not require a buffer created withVK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT
to be bound when using push descriptors. allowSamplerImageViewPostSubmitCreation
indicates that the implementation does not restrict when the VkSampler or VkImageView objects used to retrieve descriptor data can be created in relation to command buffer submission. If this value isVK_FALSE
, then the application must create any VkSampler or VkImageView objects whose descriptor data is accessed during the execution of a command buffer, before the vkQueueSubmit , or vkQueueSubmit2, call that submits that command buffer.descriptorBufferOffsetAlignment
indicates the required alignment in bytes when setting offsets into the descriptor buffer.-
maxDescriptorBufferBindings
indicates the maximum sum total number of descriptor buffers and embedded immutable sampler sets that can be bound. maxResourceDescriptorBufferBindings
indicates the maximum number of resource descriptor buffers that can be bound.maxSamplerDescriptorBufferBindings
indicates the maximum number of sampler descriptor buffers that can be bound.maxEmbeddedImmutableSamplerBindings
indicates the maximum number of embedded immutable sampler sets that can be bound.maxEmbeddedImmutableSamplers
indicates the maximum number of unique immutable samplers in descriptor set layouts created withVK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT
, and pipeline layouts created from them, which can simultaneously exist on a device.bufferCaptureReplayDescriptorDataSize
indicates the maximum size in bytes of the opaque data used for capture and replay with buffers.imageCaptureReplayDescriptorDataSize
indicates the maximum size in bytes of the opaque data used for capture and replay with images.imageViewCaptureReplayDescriptorDataSize
indicates the maximum size in bytes of the opaque data used for capture and replay with image views.samplerCaptureReplayDescriptorDataSize
indicates the maximum size in bytes of the opaque data used for capture and replay with samplers.accelerationStructureCaptureReplayDescriptorDataSize
indicates the maximum size in bytes of the opaque data used for capture and replay with acceleration structures.-
samplerDescriptorSize
indicates the size in bytes of aVK_DESCRIPTOR_TYPE_SAMPLER
descriptor. combinedImageSamplerDescriptorSize
indicates the size in bytes of aVK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER
descriptor.-
sampledImageDescriptorSize
indicates the size in bytes of aVK_DESCRIPTOR_TYPE_SAMPLED_IMAGE
descriptor. -
storageImageDescriptorSize
indicates the size in bytes of aVK_DESCRIPTOR_TYPE_STORAGE_IMAGE
descriptor. uniformTexelBufferDescriptorSize
indicates the size in bytes of aVK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER
descriptor if therobustBufferAccess
feature is not enabled.robustUniformTexelBufferDescriptorSize
indicates the size in bytes of aVK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER
descriptor if therobustBufferAccess
feature is enabled.storageTexelBufferDescriptorSize
indicates the size in bytes of aVK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER
descriptor if therobustBufferAccess
feature is not enabled.robustStorageTexelBufferDescriptorSize
indicates the size in bytes of aVK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER
descriptor if therobustBufferAccess
feature is enabled.-
uniformBufferDescriptorSize
indicates the size in bytes of aVK_DESCRIPTOR_TYPE_UNIFORM_BUFFER
descriptor. robustUniformBufferDescriptorSize
indicates the size in bytes of aVK_DESCRIPTOR_TYPE_UNIFORM_BUFFER
descriptor if therobustBufferAccess
feature is enabled.-
storageBufferDescriptorSize
indicates the size in bytes of aVK_DESCRIPTOR_TYPE_STORAGE_BUFFER
descriptor. robustStorageBufferDescriptorSize
indicates the size in bytes of aVK_DESCRIPTOR_TYPE_STORAGE_BUFFER
descriptor if therobustBufferAccess
feature is enabled.inputAttachmentDescriptorSize
indicates the size in bytes of aVK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT
descriptor.accelerationStructureDescriptorSize
indicates the size in bytes of aVK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR
orVK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV
descriptor.maxSamplerDescriptorBufferRange
indicates the maximum range in bytes from the address of a sampler descriptor buffer binding that is accessible to a shader.maxResourceDescriptorBufferRange
indicates the maximum range in bytes from the address of a resource descriptor buffer binding that is accessible to a shader.samplerDescriptorBufferAddressSpaceSize
indicates the total size in bytes of the address space available for descriptor buffers created withVK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT
.resourceDescriptorBufferAddressSpaceSize
indicates the total size in bytes of the address space available for descriptor buffers created withVK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT
.descriptorBufferAddressSpaceSize
indicates the total size in bytes of the address space available for descriptor buffers created with bothVK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT
andVK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT
.
A descriptor binding with type VK_DESCRIPTOR_TYPE_MUTABLE_VALVE
has a
descriptor size which is implied by the descriptor types included in the
VkMutableDescriptorTypeCreateInfoVALVE::pDescriptorTypes
list.
The descriptor size is equal to the maximum size of any descriptor type
included in the pDescriptorTypes
list.
As there is no way to request robust and non-robust descriptors separately,
or specify robust/non-robust descriptors in the set layout, if
robustBufferAccess
is enabled then
robust descriptors are always used.
If the VkPhysicalDeviceDescriptorBufferPropertiesEXT
structure is included in the pNext
chain of the
VkPhysicalDeviceProperties2 structure passed to
vkGetPhysicalDeviceProperties2, it is filled in with each
corresponding implementation-dependent property.
Valid Usage (Implicit)
VUID-VkPhysicalDeviceDescriptorBufferPropertiesEXT-sType-sType
sType
must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT