HORIZON HASKELLDocslts/ghc-9.14.x3e2d5682026-10-11Search names, modules, packages, or :: a typeCtrl K

GHC 9.14.1 · lts/ghc-9.14.x · 3e2d568 · 2026-10-11

Modulevulkan-3.27GHC2021

Vulkan.Extensions.VK_EXT_descriptor_buffer

Name

VK_EXT_descriptor_buffer - device extension

VK_EXT_descriptor_buffer

Name String

VK_EXT_descriptor_buffer

Extension Type

Device extension

Registered Extension Number

317

Revision

1

Ratification Status

Ratified

Extension and Version Dependencies

VK_KHR_get_physical_device_properties2                  or

Vulkan Version 1.1              and

VK_KHR_buffer_device_address              and

VK_EXT_descriptor_indexing          or

Vulkan Version 1.2      and

VK_KHR_synchronization2 or Vulkan Version 1.3

API Interactions
  • Interacts with VK_EXT_fragment_density_map

  • Interacts with VK_KHR_acceleration_structure

  • Interacts with VK_NV_ray_tracing

Deprecation State
Contact
Extension Proposal

VK_EXT_descriptor_buffer

Other Extension Metadata

Last Modified Date

2021-06-07

IP Status

No known IP claims.

Contributors
  • Tobias Hector, AMD

  • Stu Smith, AMD

  • Maciej Jesionowski, AMD

  • Boris Zanin, AMD

  • Hans-Kristian Arntzen, Valve

  • Connor Abbott, Valve

  • Baldur Karlsson, Valve

  • Mike Blumenkrantz, Valve

  • Graeme Leese, Broadcom

  • Jan-Harald Fredriksen, Arm

  • Rodrigo Locatti, NVIDIA

  • Jeff Bolz, NVIDIA

  • Piers Daniell, NVIDIA

  • Jeff Leger, QUALCOMM

  • Lionel Landwerlin, Intel

  • Slawomir Grajewski, Intel

Description

This extension introduces new commands to put shader-accessible descriptors directly in memory, making the management of descriptor data more explicit.

Deprecation by VK_EXT_descriptor_heap

Functionality in this extension is deprecated by the VK_EXT_descriptor_heap extension. See Descriptor Management: Replaced by Descriptor Heaps.

New Commands

If VK_KHR_acceleration_structure or VK_NV_ray_tracing is supported:

New Structures

If VK_EXT_fragment_density_map is supported:

If VK_KHR_acceleration_structure or VK_NV_ray_tracing is supported:

New Unions

New Enum Constants

If VK_KHR_acceleration_structure or VK_NV_ray_tracing is supported:

Version History

  • Revision 1, 2021-06-07 (Stu Smith)

    • Initial revision

See Also

No cross-references are available

Document Notes

For more information, see the Vulkan Specification.

This page is a generated document. Fixes and changes should be made to the generator scripts, not directly.

  • 20 types
  • 12 values
  • Packagevulkan-3.27
  • Exports38
  • LanguageGHC2021
  • LicenceBSD-3-Clause
  • SourceVK_EXT_descriptor_buffer.hs
valuegetDescriptorSetLayoutSizeEXT
  1. :: MonadIO io
  2. => Device

    device is the logical device that gets the size.

  3. -> DescriptorSetLayout

    layout is the descriptor set layout being queried.

  4. -> io ("layoutSizeInBytes" ::: DeviceSize)
#

vkGetDescriptorSetLayoutSizeEXT - Get the size of a descriptor set layout in memory

Description

The size of a descriptor set layout will be at least as large as the sum total of the size of all descriptors in the layout, and may be larger. This size represents the amount of memory that will be required to store all of the descriptors for this layout in memory, when placed according to the layout’s offsets as obtained by getDescriptorSetLayoutBindingOffsetEXT.

If any binding in layout is DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT, the returned size includes space for the maximum descriptorCount descriptors as declared for that binding. To compute the required size of a descriptor set with a DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT:

  • size = offset + descriptorSize × variableDescriptorCount

where offset is obtained by getDescriptorSetLayoutBindingOffsetEXT and descriptorSize is the size of the relevant descriptor as obtained from PhysicalDeviceDescriptorBufferPropertiesEXT, and variableDescriptorCount is the equivalent of DescriptorSetVariableDescriptorCountAllocateInfo::pDescriptorCounts. For DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK, variableDescriptorCount is the size in bytes for the inline uniform block, and descriptorSize is 1.

If PhysicalDeviceDescriptorBufferPropertiesEXT::combinedImageSamplerDescriptorSingleArray is FALSE and the variable descriptor type is DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, variableDescriptorCount is always considered to be the upper bound.

Valid Usage

Valid Usage (Implicit)

  • device must be a valid Device handle

  • layout must be a valid DescriptorSetLayout handle

  • pLayoutSizeInBytes must be a valid pointer to a DeviceSize value

  • layout must have been created, allocated, or retrieved from device

See Also

VK_EXT_descriptor_buffer, DescriptorSetLayout, Device, DeviceSize

valuegetDescriptorSetLayoutBindingOffsetEXT
  1. :: MonadIO io
  2. => Device

    device is the logical device that gets the offset.

  3. -> DescriptorSetLayout

    layout is the descriptor set layout being queried.

  4. -> "binding" ::: Word32

    binding is the binding number being queried.

  5. -> io ("offset" ::: DeviceSize)
#

vkGetDescriptorSetLayoutBindingOffsetEXT - Get the offset of a binding within a descriptor set layout

Description

Each binding in a descriptor set layout is assigned an offset in memory by the implementation. When a shader accesses a resource with that binding, it will access the bound descriptor buffer from that offset to look for its descriptor. This command provides an application with that offset, so that descriptors can be placed in the correct locations. The precise location accessed by a shader for a given descriptor is as follows:

  • location = bufferAddress + setOffset + descriptorOffset + (arrayElement × descriptorSize)

where bufferAddress and setOffset are the base address and offset for the identified descriptor set as specified by cmdBindDescriptorBuffersEXT and cmdSetDescriptorBufferOffsetsEXT, descriptorOffset is the offset for the binding returned by this command, arrayElement is the index into the array specified in the shader, and descriptorSize is the size of the relevant descriptor as obtained from PhysicalDeviceDescriptorBufferPropertiesEXT. Applications are responsible for placing valid descriptors at the expected location in order for a shader to access it. The overall offset added to bufferAddress to calculate location must be less than PhysicalDeviceDescriptorBufferPropertiesEXT::maxSamplerDescriptorBufferRange for samplers and PhysicalDeviceDescriptorBufferPropertiesEXT::maxResourceDescriptorBufferRange for resources.

If any binding in layout is DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT, that binding must have the largest offset of any binding.

A descriptor binding with type DESCRIPTOR_TYPE_MUTABLE_EXT can be used. Any potential types in MutableDescriptorTypeCreateInfoEXT::pDescriptorTypes for binding share the same offset. If the size of the mutable descriptor is larger than the size of a concrete descriptor type being accessed, the padding area is ignored by the implementation.

Valid Usage

Valid Usage (Implicit)

  • device must be a valid Device handle

  • layout must be a valid DescriptorSetLayout handle

  • pOffset must be a valid pointer to a DeviceSize value

  • layout must have been created, allocated, or retrieved from device

See Also

VK_EXT_descriptor_buffer, DescriptorSetLayout, Device, DeviceSize

valuegetDescriptorEXT
  1. :: (Extendss DescriptorGetInfoEXT a, PokeChain a, MonadIO io)
  2. => Device

    device is the logical device that gets the descriptor.

  3. -> "descriptorInfo" ::: DescriptorGetInfoEXT a

    pDescriptorInfo is a pointer to a DescriptorGetInfoEXT structure specifying the parameters of the descriptor to get.

  4. -> "dataSize" ::: Word64

    dataSize is the amount of the descriptor data to get in bytes.

  5. -> "descriptor" ::: Ptr ()

    pDescriptor is a pointer to an application-allocated buffer where the descriptor will be written.

  6. -> io ()
#

vkGetDescriptorEXT - To get a descriptor to place in a buffer

Description

The size of the data for each descriptor type is determined by the value in PhysicalDeviceDescriptorBufferPropertiesEXT. This value also defines the stride in bytes for arrays of that descriptor type.

If the PhysicalDeviceDescriptorBufferPropertiesEXT::combinedImageSamplerDescriptorSingleArray property is FALSE the implementation requires an array of 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. Applications must write the first PhysicalDeviceDescriptorBufferPropertiesEXT::sampledImageDescriptorSize bytes of the data returned through pDescriptor to the first array, and the remaining PhysicalDeviceDescriptorBufferPropertiesEXT::samplerDescriptorSize bytes of the data to the second array. For variable-sized descriptor bindings of DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER descriptors, the two arrays each have a size equal to the upper bound descriptorCount of that binding.

A descriptor obtained by this command references the underlying ImageView or Sampler, and these objects must not be destroyed before the last time a descriptor is dynamically accessed. For descriptor types which consume an address instead of an object, the underlying Buffer is referenced instead.

Valid Usage

Valid Usage (Implicit)

  • device must be a valid Device handle

  • pDescriptorInfo must be a valid pointer to a valid DescriptorGetInfoEXT structure

  • pDescriptor must be a valid pointer to an array of dataSize bytes

  • dataSize must be greater than 0

See Also

VK_EXT_descriptor_buffer, DescriptorGetInfoEXT, Device

valuecmdBindDescriptorBuffersEXT
  1. :: MonadIO io
  2. => CommandBuffer

    commandBuffer is the command buffer that the descriptor buffers will be bound to.

  3. -> "bindingInfos" ::: Vector (SomeStruct DescriptorBufferBindingInfoEXT)

    pBindingInfos is a pointer to an array of DescriptorBufferBindingInfoEXT structures.

  4. -> io ()
#

vkCmdBindDescriptorBuffersEXT - Binding descriptor buffers to a command buffer

Description

cmdBindDescriptorBuffersEXT causes any offsets previously set by cmdSetDescriptorBufferOffsetsEXT that use the bindings numbered [0.. bufferCount-1] to be no longer valid for subsequent bound pipeline commands. Any previously bound buffers at binding points greater than or equal to bufferCount are unbound.

Valid Usage

Valid Usage (Implicit)

Host Synchronization

  • Host access to commandBuffer must be externally synchronized

  • Host access to the CommandPool that commandBuffer was allocated from must be externally synchronized

Command Properties

'

Command Buffer Levels

Render Pass Scope

Video Coding Scope

Supported Queue Types

Command Type

Primary Secondary

Both

Outside

VK_QUEUE_COMPUTE_BIT VK_QUEUE_DATA_GRAPH_BIT_ARM VK_QUEUE_GRAPHICS_BIT

State

Conditional Rendering

vkCmdBindDescriptorBuffersEXT is not affected by conditional rendering

See Also

VK_EXT_descriptor_buffer, CommandBuffer, DescriptorBufferBindingInfoEXT

valuecmdSetDescriptorBufferOffsetsEXT
  1. :: MonadIO io
  2. => CommandBuffer

    commandBuffer is the command buffer in which the descriptor buffer offsets will be set.

  3. -> PipelineBindPoint

    pipelineBindPoint is a PipelineBindPoint indicating the type of the pipeline that will use the descriptors.

  4. -> PipelineLayout

    layout is a PipelineLayout object used to program the bindings.

  5. -> "firstSet" ::: Word32

    firstSet is the number of the first set to be bound.

  6. -> "bufferIndices" ::: Vector Word32

    pBufferIndices is a pointer to an array of indices into the descriptor buffer binding points set by cmdBindDescriptorBuffersEXT.

  7. -> "offsets" ::: Vector DeviceSize

    pOffsets is a pointer to an array of DeviceSize offsets to apply to the bound descriptor buffers.

  8. -> io ()
#

vkCmdSetDescriptorBufferOffsetsEXT - Setting descriptor buffer offsets in a command buffer

Description

cmdSetDescriptorBufferOffsetsEXT binds setCount pairs of descriptor buffers, specified by indices into the binding points bound using cmdBindDescriptorBuffersEXT, and buffer offsets to set numbers [firstSet..firstSet+setCount-1] for subsequent bound pipeline commands set by pipelineBindPoint. Set [firstSet + i] is bound to the descriptor buffer at binding pBufferIndices[i] at an offset of pOffsets[i]. Any bindings that were previously applied via these sets, or calls to cmdBindDescriptorSets, are no longer valid. Other sets will also be invalidated upon calling this command if layout differs from the pipeline layout used to bind those other sets, as described in Pipeline Layout Compatibility.

After binding descriptors, applications can modify descriptor memory either by performing writes on the host or with device commands. When descriptor memory is updated with device commands, visibility for the shader stage accessing a descriptor is ensured with the ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT access flag. Implementations must not access resources referenced by these descriptors unless they are dynamically accessed by shaders. Descriptors bound with this call can be undefined if they are not dynamically accessed by shaders.

Implementations may read descriptor data for any statically accessed descriptor if the binding in layout is not declared with the DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT flag. If the binding in layout is declared with DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT, implementations must not read descriptor data that is not dynamically accessed.

Applications must ensure that any descriptor which the implementation may read must be in-bounds of the underlying descriptor buffer binding.

Applications can freely decide how large a variable descriptor buffer binding is, so it may not be safe to read such descriptor payloads statically. The intention of these rules is to allow implementations to speculatively prefetch descriptor payloads where feasible.

Dynamically accessing a resource through descriptor data from an unbound region of a sparse partially-resident buffer will result in invalid descriptor data being read, and therefore undefined behavior.

For descriptors written by the host, visibility is implied through the automatic visibility operation on queue submit, and there is no need to consider VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT. Explicit synchronization for descriptors is only required when descriptors are updated on the device.

The requirements above imply that all descriptor bindings have been defined with the equivalent of DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT, DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT and DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT, but enabling those features is not required to get this behavior.

Valid Usage

Valid Usage (Implicit)

Host Synchronization

  • Host access to commandBuffer must be externally synchronized

  • Host access to the CommandPool that commandBuffer was allocated from must be externally synchronized

Command Properties

'

Command Buffer Levels

Render Pass Scope

Video Coding Scope

Supported Queue Types

Command Type

Primary Secondary

Both

Outside

VK_QUEUE_COMPUTE_BIT VK_QUEUE_DATA_GRAPH_BIT_ARM VK_QUEUE_GRAPHICS_BIT

State

Conditional Rendering

vkCmdSetDescriptorBufferOffsetsEXT is not affected by conditional rendering

See Also

VK_EXT_descriptor_buffer, CommandBuffer, DeviceSize, PipelineBindPoint, PipelineLayout

valuecmdBindDescriptorBufferEmbeddedSamplersEXT
  1. :: MonadIO io
  2. => CommandBuffer

    commandBuffer is the command buffer that the embedded immutable samplers will be bound to.

  3. -> PipelineBindPoint

    pipelineBindPoint is a PipelineBindPoint indicating the type of the pipeline that will use the embedded immutable samplers.

  4. -> PipelineLayout

    layout is a PipelineLayout object used to program the bindings.

  5. -> "set" ::: Word32

    set is the number of the set to be bound.

  6. -> io ()
#

vkCmdBindDescriptorBufferEmbeddedSamplersEXT - Setting embedded immutable samplers offsets in a command buffer

Description

cmdBindDescriptorBufferEmbeddedSamplersEXT binds the embedded immutable samplers in set of layout to set for the command buffer for subsequent bound pipeline commands set by pipelineBindPoint. Any previous binding to this set by cmdSetDescriptorBufferOffsetsEXT or this command is overwritten. Any sets that were last bound by a call to cmdBindDescriptorSets are invalidated upon calling this command. Other sets will also be invalidated upon calling this command if layout differs from the pipeline layout used to bind those other sets, as described in Pipeline Layout Compatibility.

Valid Usage

Valid Usage (Implicit)

Host Synchronization

  • Host access to commandBuffer must be externally synchronized

  • Host access to the CommandPool that commandBuffer was allocated from must be externally synchronized

Command Properties

'

Command Buffer Levels

Render Pass Scope

Video Coding Scope

Supported Queue Types

Command Type

Primary Secondary

Both

Outside

VK_QUEUE_COMPUTE_BIT VK_QUEUE_GRAPHICS_BIT

State

Conditional Rendering

vkCmdBindDescriptorBufferEmbeddedSamplersEXT is not affected by conditional rendering

See Also

VK_EXT_descriptor_buffer, CommandBuffer, PipelineBindPoint, PipelineLayout

valuegetBufferOpaqueCaptureDescriptorDataEXT
  1. :: MonadIO io
  2. => Device

    device is the logical device that gets the data.

  3. -> BufferCaptureDescriptorDataInfoEXT

    pInfo is a pointer to a BufferCaptureDescriptorDataInfoEXT structure specifying the buffer.

  4. -> "data" ::: Ptr ()

    pData is a pointer to an application-allocated buffer where the data will be written.

  5. -> io ()
#

vkGetBufferOpaqueCaptureDescriptorDataEXT - Get buffer opaque capture descriptor data

Valid Usage

Valid Usage (Implicit)

  • device must be a valid Device handle

Return Codes

Success
Failure

See Also

VK_EXT_descriptor_buffer, BufferCaptureDescriptorDataInfoEXT, Device

valuegetImageOpaqueCaptureDescriptorDataEXT
  1. :: MonadIO io
  2. => Device

    device is the logical device that gets the data.

  3. -> ImageCaptureDescriptorDataInfoEXT

    pInfo is a pointer to a ImageCaptureDescriptorDataInfoEXT structure specifying the image.

  4. -> "data" ::: Ptr ()

    pData is a pointer to an application-allocated buffer where the data will be written.

  5. -> io ()
#

vkGetImageOpaqueCaptureDescriptorDataEXT - Get image opaque capture descriptor data

Valid Usage

Valid Usage (Implicit)

  • device must be a valid Device handle

Return Codes

Success
Failure

See Also

VK_EXT_descriptor_buffer, Device, ImageCaptureDescriptorDataInfoEXT

valuegetImageViewOpaqueCaptureDescriptorDataEXT
  1. :: MonadIO io
  2. => Device

    device is the logical device that gets the data.

  3. -> ImageViewCaptureDescriptorDataInfoEXT

    pInfo is a pointer to a ImageViewCaptureDescriptorDataInfoEXT structure specifying the image view.

  4. -> "data" ::: Ptr ()

    pData is a pointer to an application-allocated buffer where the data will be written.

  5. -> io ()
#

vkGetImageViewOpaqueCaptureDescriptorDataEXT - Get image view opaque capture descriptor data

Valid Usage

Valid Usage (Implicit)

  • device must be a valid Device handle

Return Codes

Success
Failure

See Also

VK_EXT_descriptor_buffer, Device, ImageViewCaptureDescriptorDataInfoEXT

valuegetSamplerOpaqueCaptureDescriptorDataEXT
  1. :: MonadIO io
  2. => Device

    device is the logical device that gets the data.

  3. -> SamplerCaptureDescriptorDataInfoEXT

    pInfo is a pointer to a SamplerCaptureDescriptorDataInfoEXT structure specifying the sampler.

  4. -> "data" ::: Ptr ()

    pData is a pointer to an application-allocated buffer where the data will be written.

  5. -> io ()
#

vkGetSamplerOpaqueCaptureDescriptorDataEXT - Get sampler opaque capture descriptor data

Valid Usage

Valid Usage (Implicit)

  • device must be a valid Device handle

Return Codes

Success
Failure

See Also

VK_EXT_descriptor_buffer, Device, SamplerCaptureDescriptorDataInfoEXT

valuegetAccelerationStructureOpaqueCaptureDescriptorDataEXT
  1. :: MonadIO io
  2. => Device

    device is the logical device that gets the data.

  3. -> AccelerationStructureCaptureDescriptorDataInfoEXT

    pInfo is a pointer to a AccelerationStructureCaptureDescriptorDataInfoEXT structure specifying the acceleration structure.

  4. -> "data" ::: Ptr ()

    pData is a pointer to an application-allocated buffer where the data will be written.

  5. -> io ()
#

vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT - Get acceleration structure opaque capture descriptor data

Valid Usage

Valid Usage (Implicit)

  • device must be a valid Device handle

Return Codes

Success
Failure

See Also

VK_EXT_descriptor_buffer, VK_KHR_acceleration_structure, VK_NV_ray_tracing, AccelerationStructureCaptureDescriptorDataInfoEXT, Device

VkPhysicalDeviceDescriptorBufferFeaturesEXT - Structure describing the descriptor buffer features that can be supported by an implementation

Members

This structure describes the following feature:

Description

If the PhysicalDeviceDescriptorBufferFeaturesEXT structure is included in the pNext chain of the PhysicalDeviceFeatures2 structure passed to getPhysicalDeviceFeatures2, it is filled in to indicate whether each corresponding feature is supported. If the application wishes to use a Device with any features described by PhysicalDeviceDescriptorBufferFeaturesEXT, it must add an instance of the structure, with the desired feature members set to TRUE, to the pNext chain of DeviceCreateInfo when creating the Device.

Structure Chaining

Extends the structures

See Also

VK_EXT_descriptor_buffer, Bool32, StructureType

Constructors

Instances6Eq, Show, Storable, FromCStruct, ToCStruct, Zero

VkPhysicalDeviceDescriptorBufferPropertiesEXT - Structure describing descriptor buffer properties supported by an implementation

Description

A descriptor binding with type DESCRIPTOR_TYPE_MUTABLE_EXT has a descriptor size which is implied by the descriptor types included in the MutableDescriptorTypeCreateInfoEXT::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 the robustBufferAccess feature is enabled then robust descriptors are always used.

If the PhysicalDeviceDescriptorBufferPropertiesEXT structure is included in the pNext chain of the PhysicalDeviceProperties2 structure passed to getPhysicalDeviceProperties2, it is filled in with each corresponding implementation-dependent property.

Structure Chaining

Extends the structure

See Also

VK_EXT_descriptor_buffer, Bool32, DeviceSize, StructureType

Constructors

Instances6Eq, Show, Storable, FromCStruct, ToCStruct, Zero

VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT - Structure describing descriptor buffer density map properties supported by an implementation

Description

If the PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT structure is included in the pNext chain of the PhysicalDeviceProperties2 structure passed to getPhysicalDeviceProperties2, it is filled in with each corresponding implementation-dependent property.

Structure Chaining

Extends the structure

See Also

VK_EXT_descriptor_buffer, VK_EXT_fragment_density_map, StructureType

Constructors

Instances6Eq, Show, Storable, FromCStruct, ToCStruct, Zero

VkDescriptorAddressInfoEXT - Structure specifying descriptor buffer address info

Valid Usage

Valid Usage (Implicit)

  • pNext must be NULL

  • If address is not 0, address must be a valid DeviceAddress value

  • format must be a valid Format value

If the nullDescriptor feature is enabled, address can be zero. Loads from a null descriptor return zero values and stores and atomics to a null descriptor are discarded.

See Also

VK_EXT_descriptor_buffer, DescriptorDataEXT, DeviceAddress, DeviceSize, Format, StructureType

Constructors

Instances6Eq, Show, Storable, FromCStruct, ToCStruct, Zero
datadata DescriptorBufferBindingInfoEXT (es :: [Type])
#

VkDescriptorBufferBindingInfoEXT - Structure specifying descriptor buffer binding information

Description

If the pNext chain includes a BufferUsageFlags2CreateInfo structure, BufferUsageFlags2CreateInfo::usage from that structure is used instead of usage from this structure.

Valid Usage

Valid Usage (Implicit)

See Also

VK_EXT_descriptor_buffer, BufferUsageFlags, DeviceAddress, StructureType, cmdBindDescriptorBuffersEXT

Constructors

Instances5Extensible, Show, FromCStruct, ToCStruct, Zero

VkDescriptorBufferBindingPushDescriptorBufferHandleEXT - Structure specifying push descriptor buffer binding information

Valid Usage

Valid Usage (Implicit)

  • buffer must be a valid Buffer handle

Structure Chaining

Extends the structure

See Also

VK_EXT_descriptor_buffer, Buffer, StructureType

Constructors

Instances6Eq, Show, Storable, FromCStruct, ToCStruct, Zero
datadata DescriptorGetInfoEXT (es :: [Type])
#

VkDescriptorGetInfoEXT - Structure specifying parameters of descriptor to get

Valid Usage

Valid Usage (Implicit)

See Also

VK_EXT_descriptor_buffer, DescriptorDataEXT, DescriptorType, StructureType, getDescriptorEXT

Constructors

Instances5Extensible, Show, FromCStruct, ToCStruct, Zero

VkBufferCaptureDescriptorDataInfoEXT - Structure specifying a buffer for descriptor capture

Valid Usage (Implicit)

See Also

VK_EXT_descriptor_buffer, Buffer, StructureType, getBufferOpaqueCaptureDescriptorDataEXT

Constructors

Instances6Eq, Show, Storable, FromCStruct, ToCStruct, Zero

VkImageCaptureDescriptorDataInfoEXT - Structure specifying an image for descriptor capture

Valid Usage (Implicit)

See Also

VK_EXT_descriptor_buffer, Image, StructureType, getImageOpaqueCaptureDescriptorDataEXT

Constructors

Instances6Eq, Show, Storable, FromCStruct, ToCStruct, Zero

VkImageViewCaptureDescriptorDataInfoEXT - Structure specifying an image view for descriptor capture

Valid Usage (Implicit)

See Also

VK_EXT_descriptor_buffer, ImageView, StructureType, getImageViewOpaqueCaptureDescriptorDataEXT

Constructors

Instances6Eq, Show, Storable, FromCStruct, ToCStruct, Zero

VkSamplerCaptureDescriptorDataInfoEXT - Structure specifying a sampler for descriptor capture

Valid Usage (Implicit)

See Also

VK_EXT_descriptor_buffer, Sampler, StructureType, getSamplerOpaqueCaptureDescriptorDataEXT

Constructors

Instances6Eq, Show, Storable, FromCStruct, ToCStruct, Zero

VkAccelerationStructureCaptureDescriptorDataInfoEXT - Structure specifying an acceleration structure for descriptor capture

Valid Usage

Valid Usage (Implicit)

  • pNext must be NULL

  • If accelerationStructure is not NULL_HANDLE, accelerationStructure must be a valid AccelerationStructureKHR handle

  • If accelerationStructureNV is not NULL_HANDLE, accelerationStructureNV must be a valid AccelerationStructureNV handle

  • Both of accelerationStructure, and accelerationStructureNV that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same Device

See Also

VK_EXT_descriptor_buffer, VK_KHR_acceleration_structure, VK_NV_ray_tracing, AccelerationStructureKHR, AccelerationStructureNV, StructureType, getAccelerationStructureOpaqueCaptureDescriptorDataEXT

Constructors

Instances6Eq, Show, Storable, FromCStruct, ToCStruct, Zero

VkOpaqueCaptureDescriptorDataCreateInfoEXT - Structure specifying opaque capture descriptor data

Description

During replay, opaque descriptor capture data can be specified by adding a OpaqueCaptureDescriptorDataCreateInfoEXT structure to the relevant pNext chain of a BufferCreateInfo, ImageCreateInfo, ImageViewCreateInfo, SamplerCreateInfo, TensorCreateInfoARM, TensorViewCreateInfoARM, AccelerationStructureCreateInfoNV or AccelerationStructureCreateInfoKHR structure.

When providing opaque capture data for an image, if the pNext chain of ImageCreateInfo or TensorCreateInfoARM contains an instance of both this structure and OpaqueCaptureDataCreateInfoEXT, they should both specify data from the same original resource. If they have capture data from different original resources, resource creation is much more likely to fail.

Structure Chaining

Extends the structures

See Also

VK_EXT_descriptor_buffer, StructureType

Instances5Show, Storable, FromCStruct, ToCStruct, Zero
datadata DescriptorDataEXT
#
Instances3Show, ToCStruct, Zero
newtypenewtype AccelerationStructureKHR
#
Instances7Eq, Ord, Show, Storable, HasObjectType, IsHandle, …
newtypenewtype AccelerationStructureNV
#
Instances7Eq, Ord, Show, Storable, HasObjectType, IsHandle, …

VkAccelerationStructureCreateFlagBitsKHR - Bitmask specifying additional creation parameters for acceleration structure

Description

See Also

VK_KHR_acceleration_structure, AccelerationStructureCreateFlagsKHR

Instances8Eq, Ord, Read, Show, Bits, FiniteBits, …