| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell2010 |
Vulkan.Extensions.VK_EXT_descriptor_buffer
Description
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
- Not ratified
- Extension and Version Dependencies
- VK_KHR_get_physical_device_properties2 and VK_KHR_buffer_device_address and VK_KHR_synchronization2 and VK_EXT_descriptor_indexing
- 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.
New Commands
cmdBindDescriptorBuffersEXTcmdSetDescriptorBufferOffsetsEXTgetBufferOpaqueCaptureDescriptorDataEXTgetDescriptorEXTgetDescriptorSetLayoutBindingOffsetEXTgetDescriptorSetLayoutSizeEXTgetImageOpaqueCaptureDescriptorDataEXTgetImageViewOpaqueCaptureDescriptorDataEXTgetSamplerOpaqueCaptureDescriptorDataEXT
If VK_KHR_acceleration_structure or VK_NV_ray_tracing is supported:
New Structures
DescriptorAddressInfoEXTDescriptorBufferBindingInfoEXTDescriptorGetInfoEXTImageCaptureDescriptorDataInfoEXTImageViewCaptureDescriptorDataInfoEXTSamplerCaptureDescriptorDataInfoEXTExtending
BufferCreateInfo,ImageCreateInfo,ImageViewCreateInfo,SamplerCreateInfo,AccelerationStructureCreateInfoKHR,AccelerationStructureCreateInfoNV:Extending
DescriptorBufferBindingInfoEXT:Extending
PhysicalDeviceFeatures2,DeviceCreateInfo:Extending
PhysicalDeviceProperties2:
If VK_KHR_acceleration_structure or VK_NV_ray_tracing is supported:
New Unions
New Enum Constants
EXT_DESCRIPTOR_BUFFER_SPEC_VERSIONExtending
AccelerationStructureCreateFlagBitsKHR:Extending
AccessFlagBits2:Extending
BufferCreateFlagBits:Extending
BufferUsageFlagBits:Extending
DescriptorSetLayoutCreateFlagBits:Extending
ImageCreateFlagBits:Extending
ImageViewCreateFlagBits:Extending
PipelineCreateFlagBits:Extending
SamplerCreateFlagBits:Extending
StructureType:STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXTSTRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXTSTRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXTSTRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXTSTRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXTSTRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXTSTRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXTSTRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXTSTRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXTSTRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXTSTRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXTSTRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT
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
BufferCaptureDescriptorDataInfoEXT, DescriptorAddressInfoEXT,
DescriptorBufferBindingInfoEXT,
DescriptorBufferBindingPushDescriptorBufferHandleEXT,
DescriptorDataEXT, DescriptorGetInfoEXT,
ImageCaptureDescriptorDataInfoEXT,
ImageViewCaptureDescriptorDataInfoEXT,
OpaqueCaptureDescriptorDataCreateInfoEXT,
PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT,
PhysicalDeviceDescriptorBufferFeaturesEXT,
PhysicalDeviceDescriptorBufferPropertiesEXT,
SamplerCaptureDescriptorDataInfoEXT,
cmdBindDescriptorBufferEmbeddedSamplersEXT,
cmdBindDescriptorBuffersEXT, cmdSetDescriptorBufferOffsetsEXT,
getBufferOpaqueCaptureDescriptorDataEXT, getDescriptorEXT,
getDescriptorSetLayoutBindingOffsetEXT,
getDescriptorSetLayoutSizeEXT,
getImageOpaqueCaptureDescriptorDataEXT,
getImageViewOpaqueCaptureDescriptorDataEXT,
getSamplerOpaqueCaptureDescriptorDataEXT
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.
Synopsis
- getDescriptorSetLayoutSizeEXT :: forall io. MonadIO io => Device -> DescriptorSetLayout -> io ("layoutSizeInBytes" ::: DeviceSize)
- getDescriptorSetLayoutBindingOffsetEXT :: forall io. MonadIO io => Device -> DescriptorSetLayout -> ("binding" ::: Word32) -> io ("offset" ::: DeviceSize)
- getDescriptorEXT :: forall io. MonadIO io => Device -> ("descriptorInfo" ::: DescriptorGetInfoEXT) -> ("dataSize" ::: Word64) -> ("descriptor" ::: Ptr ()) -> io ()
- cmdBindDescriptorBuffersEXT :: forall io. MonadIO io => CommandBuffer -> ("bindingInfos" ::: Vector (SomeStruct DescriptorBufferBindingInfoEXT)) -> io ()
- cmdSetDescriptorBufferOffsetsEXT :: forall io. MonadIO io => CommandBuffer -> PipelineBindPoint -> PipelineLayout -> ("firstSet" ::: Word32) -> ("bufferIndices" ::: Vector Word32) -> ("offsets" ::: Vector DeviceSize) -> io ()
- cmdBindDescriptorBufferEmbeddedSamplersEXT :: forall io. MonadIO io => CommandBuffer -> PipelineBindPoint -> PipelineLayout -> ("set" ::: Word32) -> io ()
- getBufferOpaqueCaptureDescriptorDataEXT :: forall io. MonadIO io => Device -> BufferCaptureDescriptorDataInfoEXT -> ("data" ::: Ptr ()) -> io ()
- getImageOpaqueCaptureDescriptorDataEXT :: forall io. MonadIO io => Device -> ImageCaptureDescriptorDataInfoEXT -> ("data" ::: Ptr ()) -> io ()
- getImageViewOpaqueCaptureDescriptorDataEXT :: forall io. MonadIO io => Device -> ImageViewCaptureDescriptorDataInfoEXT -> ("data" ::: Ptr ()) -> io ()
- getSamplerOpaqueCaptureDescriptorDataEXT :: forall io. MonadIO io => Device -> SamplerCaptureDescriptorDataInfoEXT -> ("data" ::: Ptr ()) -> io ()
- getAccelerationStructureOpaqueCaptureDescriptorDataEXT :: forall io. MonadIO io => Device -> AccelerationStructureCaptureDescriptorDataInfoEXT -> ("data" ::: Ptr ()) -> io ()
- data PhysicalDeviceDescriptorBufferFeaturesEXT = PhysicalDeviceDescriptorBufferFeaturesEXT {}
- data PhysicalDeviceDescriptorBufferPropertiesEXT = PhysicalDeviceDescriptorBufferPropertiesEXT {
- combinedImageSamplerDescriptorSingleArray :: Bool
- bufferlessPushDescriptors :: Bool
- allowSamplerImageViewPostSubmitCreation :: Bool
- descriptorBufferOffsetAlignment :: DeviceSize
- maxDescriptorBufferBindings :: Word32
- maxResourceDescriptorBufferBindings :: Word32
- maxSamplerDescriptorBufferBindings :: Word32
- maxEmbeddedImmutableSamplerBindings :: Word32
- maxEmbeddedImmutableSamplers :: Word32
- bufferCaptureReplayDescriptorDataSize :: Word64
- imageCaptureReplayDescriptorDataSize :: Word64
- imageViewCaptureReplayDescriptorDataSize :: Word64
- samplerCaptureReplayDescriptorDataSize :: Word64
- accelerationStructureCaptureReplayDescriptorDataSize :: Word64
- samplerDescriptorSize :: Word64
- combinedImageSamplerDescriptorSize :: Word64
- sampledImageDescriptorSize :: Word64
- storageImageDescriptorSize :: Word64
- uniformTexelBufferDescriptorSize :: Word64
- robustUniformTexelBufferDescriptorSize :: Word64
- storageTexelBufferDescriptorSize :: Word64
- robustStorageTexelBufferDescriptorSize :: Word64
- uniformBufferDescriptorSize :: Word64
- robustUniformBufferDescriptorSize :: Word64
- storageBufferDescriptorSize :: Word64
- robustStorageBufferDescriptorSize :: Word64
- inputAttachmentDescriptorSize :: Word64
- accelerationStructureDescriptorSize :: Word64
- maxSamplerDescriptorBufferRange :: DeviceSize
- maxResourceDescriptorBufferRange :: DeviceSize
- samplerDescriptorBufferAddressSpaceSize :: DeviceSize
- resourceDescriptorBufferAddressSpaceSize :: DeviceSize
- descriptorBufferAddressSpaceSize :: DeviceSize
- data PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT = PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT {}
- data DescriptorAddressInfoEXT = DescriptorAddressInfoEXT {
- address :: DeviceAddress
- range :: DeviceSize
- format :: Format
- data DescriptorBufferBindingInfoEXT (es :: [Type]) = DescriptorBufferBindingInfoEXT {
- next :: Chain es
- address :: DeviceAddress
- usage :: BufferUsageFlags
- data DescriptorBufferBindingPushDescriptorBufferHandleEXT = DescriptorBufferBindingPushDescriptorBufferHandleEXT {}
- data DescriptorGetInfoEXT = DescriptorGetInfoEXT {}
- data BufferCaptureDescriptorDataInfoEXT = BufferCaptureDescriptorDataInfoEXT {}
- data ImageCaptureDescriptorDataInfoEXT = ImageCaptureDescriptorDataInfoEXT {}
- data ImageViewCaptureDescriptorDataInfoEXT = ImageViewCaptureDescriptorDataInfoEXT {}
- data SamplerCaptureDescriptorDataInfoEXT = SamplerCaptureDescriptorDataInfoEXT {}
- data AccelerationStructureCaptureDescriptorDataInfoEXT = AccelerationStructureCaptureDescriptorDataInfoEXT {}
- data OpaqueCaptureDescriptorDataCreateInfoEXT = OpaqueCaptureDescriptorDataCreateInfoEXT {}
- data DescriptorDataEXT
- = ASampler Sampler
- | ACombinedImageSampler DescriptorImageInfo
- | AnInputAttachmentImage DescriptorImageInfo
- | ASampledImage (Maybe DescriptorImageInfo)
- | AStorageImage (Maybe DescriptorImageInfo)
- | AnUniformTexelBuffer (Maybe DescriptorAddressInfoEXT)
- | AStorageTexelBuffer (Maybe DescriptorAddressInfoEXT)
- | AnUniformBuffer (Maybe DescriptorAddressInfoEXT)
- | AStorageBuffer (Maybe DescriptorAddressInfoEXT)
- | AnAccelerationStructure DeviceAddress
- peekDescriptorDataEXT :: DescriptorType -> Ptr DescriptorDataEXT -> IO DescriptorDataEXT
- type EXT_DESCRIPTOR_BUFFER_SPEC_VERSION = 1
- pattern EXT_DESCRIPTOR_BUFFER_SPEC_VERSION :: forall a. Integral a => a
- type EXT_DESCRIPTOR_BUFFER_EXTENSION_NAME = "VK_EXT_descriptor_buffer"
- pattern EXT_DESCRIPTOR_BUFFER_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a
- newtype AccelerationStructureKHR = AccelerationStructureKHR Word64
- newtype AccelerationStructureNV = AccelerationStructureNV Word64
- newtype AccelerationStructureCreateFlagBitsKHR where
- AccelerationStructureCreateFlagBitsKHR Flags
- pattern ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR :: AccelerationStructureCreateFlagBitsKHR
- pattern ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV :: AccelerationStructureCreateFlagBitsKHR
- pattern ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT :: AccelerationStructureCreateFlagBitsKHR
- type AccelerationStructureCreateFlagsKHR = AccelerationStructureCreateFlagBitsKHR
Documentation
getDescriptorSetLayoutSizeEXT Source #
Arguments
| :: forall io. MonadIO io | |
| => Device |
|
| -> DescriptorSetLayout |
|
| -> 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
- The descriptorBuffer feature must be enabled
-
layoutmust have been created with theDESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXTflag set
Valid Usage (Implicit)
-
devicemust be a validDevicehandle
-
layoutmust be a validDescriptorSetLayouthandle -
pLayoutSizeInBytesmust be a valid pointer to aDeviceSizevalue -
layoutmust have been created, allocated, or retrieved fromdevice
See Also
VK_EXT_descriptor_buffer,
DescriptorSetLayout,
Device,
DeviceSize
getDescriptorSetLayoutBindingOffsetEXT Source #
Arguments
| :: forall io. MonadIO io | |
| => Device |
|
| -> DescriptorSetLayout |
|
| -> ("binding" ::: Word32) |
|
| -> 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_VALVE
can be used. Any potential types in
MutableDescriptorTypeCreateInfoVALVE::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
- The descriptorBuffer feature must be enabled
-
layoutmust have been created with theDESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXTflag set
Valid Usage (Implicit)
-
devicemust be a validDevicehandle
-
layoutmust be a validDescriptorSetLayouthandle -
pOffsetmust be a valid pointer to aDeviceSizevalue -
layoutmust have been created, allocated, or retrieved fromdevice
See Also
VK_EXT_descriptor_buffer,
DescriptorSetLayout,
Device,
DeviceSize
Arguments
| :: forall io. MonadIO io | |
| => Device |
|
| -> ("descriptorInfo" ::: DescriptorGetInfoEXT) |
|
| -> ("dataSize" ::: Word64) |
|
| -> ("descriptor" ::: Ptr ()) |
|
| -> 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
- The descriptorBuffer feature must be enabled
-
dataSizemust equal the size of a descriptor of typeDescriptorGetInfoEXT::typedetermined by the value inPhysicalDeviceDescriptorBufferPropertiesEXT, or determined byPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT::combinedImageSamplerDensityMapDescriptorSizeifpDescriptorInfospecifies aDESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLERwhoseSamplerwas created withSAMPLER_CREATE_SUBSAMPLED_BIT_EXTset -
pDescriptormust be a valid pointer to an array of at leastdataSizebytes
Valid Usage (Implicit)
-
devicemust be a validDevicehandle
-
pDescriptorInfomust be a valid pointer to a validDescriptorGetInfoEXTstructure -
pDescriptormust be a valid pointer to an array ofdataSizebytes -
dataSizemust be greater than0
See Also
cmdBindDescriptorBuffersEXT Source #
Arguments
| :: forall io. MonadIO io | |
| => CommandBuffer |
|
| -> ("bindingInfos" ::: Vector (SomeStruct DescriptorBufferBindingInfoEXT)) |
|
| -> 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
- The descriptorBuffer feature must be enabled
-
There must be no more than
PhysicalDeviceDescriptorBufferPropertiesEXT::maxSamplerDescriptorBufferBindingsdescriptor buffers containing sampler descriptor data bound -
There must be no more than
PhysicalDeviceDescriptorBufferPropertiesEXT::maxResourceDescriptorBufferBindingsdescriptor buffers containing resource descriptor data bound - There must be no
more than
1descriptor buffer bound that was created with theBUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXTbit set -
bufferCountmust be less than or equal toPhysicalDeviceDescriptorBufferPropertiesEXT::maxDescriptorBufferBindings - For any
element of
pBindingInfos, if the buffer from whichaddresswas queried is non-sparse then it must be bound completely and contiguously to a singleDeviceMemoryobject - For any
element of
pBindingInfos, the buffer from whichaddresswas queried must have been created with theBUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXTbit set if it contains sampler descriptor data - For any
element of
pBindingInfos, the buffer from whichaddresswas queried must have been created with theBUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXTbit set if it contains resource descriptor data - For any
element of
pBindingInfos,usagemust match the buffer from whichaddresswas queried
Valid Usage (Implicit)
-
commandBuffermust be a validCommandBufferhandle
-
pBindingInfosmust be a valid pointer to an array ofbufferCountvalidDescriptorBufferBindingInfoEXTstructures -
commandBuffermust be in the recording state - The
CommandPoolthatcommandBufferwas allocated from must support graphics, or compute operations - This command must only be called outside of a video coding scope
-
bufferCountmust be greater than0
Host Synchronization
- Host access to
commandBuffermust be externally synchronized
- Host access to the
CommandPoolthatcommandBufferwas 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 | Graphics Compute | State |
See Also
VK_EXT_descriptor_buffer,
CommandBuffer, DescriptorBufferBindingInfoEXT
cmdSetDescriptorBufferOffsetsEXT Source #
Arguments
| :: forall io. MonadIO io | |
| => CommandBuffer |
|
| -> PipelineBindPoint |
|
| -> PipelineLayout |
|
| -> ("firstSet" ::: Word32) |
|
| -> ("bufferIndices" ::: Vector Word32) |
|
| -> ("offsets" ::: Vector DeviceSize) |
|
| -> 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+descriptorSetCount-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.
Note
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.
Note
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.
Note
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
- The descriptorBuffer feature must be enabled
- The offsets
in
pOffsetsmust be aligned toPhysicalDeviceDescriptorBufferPropertiesEXT::descriptorBufferOffsetAlignment - The offsets
in
pOffsetsmust be small enough such that any descriptor binding referenced bylayoutwithout theDESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BITflag computes a valid address inside the underlyingBuffer - The offsets
in
pOffsetsmust be small enough such that any location accessed by a shader as a sampler descriptor must be withinPhysicalDeviceDescriptorBufferPropertiesEXT::maxSamplerDescriptorBufferRangeof the sampler descriptor buffer binding - The offsets
in
pOffsetsmust be small enough such that any location accessed by a shader as a resource descriptor must be withinPhysicalDeviceDescriptorBufferPropertiesEXT::maxResourceDescriptorBufferRangeof the resource descriptor buffer binding - Each
element of
pBufferIndicesmust be less thanPhysicalDeviceDescriptorBufferPropertiesEXT::maxDescriptorBufferBindings - Each
element of
pBufferIndicesmust reference a valid descriptor buffer binding set by a previous call tocmdBindDescriptorBuffersEXTincommandBuffer - The sum of
firstSetandsetCountmust be less than or equal toPipelineLayoutCreateInfo::setLayoutCountprovided whenlayoutwas created -
pipelineBindPointmust be supported by thecommandBuffer’s parentCommandPool’s queue family - The
DescriptorSetLayoutfor each set fromfirstSettofirstSet+setCountwhenlayoutwas created must have been created with theDESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXTbit set
Valid Usage (Implicit)
-
commandBuffermust be a validCommandBufferhandle
-
pipelineBindPointmust be a validPipelineBindPointvalue -
layoutmust be a validPipelineLayouthandle -
pBufferIndicesmust be a valid pointer to an array ofsetCountuint32_tvalues -
pOffsetsmust be a valid pointer to an array ofsetCountDeviceSizevalues -
commandBuffermust be in the recording state - The
CommandPoolthatcommandBufferwas allocated from must support graphics, or compute operations - This command must only be called outside of a video coding scope
-
setCountmust be greater than0 - Both of
commandBuffer, andlayoutmust have been created, allocated, or retrieved from the sameDevice
Host Synchronization
- Host access to
commandBuffermust be externally synchronized
- Host access to the
CommandPoolthatcommandBufferwas 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 | Graphics Compute | State |
See Also
VK_EXT_descriptor_buffer,
CommandBuffer,
DeviceSize,
PipelineBindPoint,
PipelineLayout
cmdBindDescriptorBufferEmbeddedSamplersEXT Source #
Arguments
| :: forall io. MonadIO io | |
| => CommandBuffer |
|
| -> PipelineBindPoint |
|
| -> PipelineLayout |
|
| -> ("set" ::: Word32) |
|
| -> 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
- The descriptorBuffer feature must be enabled
-
pipelineBindPointmust be supported by thecommandBuffer’s parentCommandPool’s queue family - The
DescriptorSetLayoutat indexsetwhenlayoutwas created must have been created with theDESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXTbit set -
setmust be less than or equal toPipelineLayoutCreateInfo::setLayoutCountprovided whenlayoutwas created
Valid Usage (Implicit)
-
commandBuffermust be a validCommandBufferhandle
-
pipelineBindPointmust be a validPipelineBindPointvalue -
layoutmust be a validPipelineLayouthandle -
commandBuffermust be in the recording state -
The
CommandPoolthatcommandBufferwas allocated from must support graphics, or compute operations - This command must only be called outside of a video coding scope
-
Both of
commandBuffer, andlayoutmust have been created, allocated, or retrieved from the sameDevice
Host Synchronization
- Host access to
commandBuffermust be externally synchronized
- Host access to the
CommandPoolthatcommandBufferwas 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 | Graphics Compute | State |
See Also
VK_EXT_descriptor_buffer,
CommandBuffer,
PipelineBindPoint,
PipelineLayout
getBufferOpaqueCaptureDescriptorDataEXT Source #
Arguments
| :: forall io. MonadIO io | |
| => Device |
|
| -> BufferCaptureDescriptorDataInfoEXT |
|
| -> ("data" ::: Ptr ()) |
|
| -> io () |
vkGetBufferOpaqueCaptureDescriptorDataEXT - Get buffer opaque capture descriptor data
Valid Usage
- The descriptorBufferCaptureReplay feature must be enabled
-
pDatamust point to a buffer that is at leastPhysicalDeviceDescriptorBufferPropertiesEXT::bufferCaptureReplayDescriptorDataSizebytes in size - If
devicewas created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled
Valid Usage (Implicit)
-
devicemust be a validDevicehandle
-
pInfomust be a valid pointer to a validBufferCaptureDescriptorDataInfoEXTstructure -
pDatamust be a pointer value
Return Codes
See Also
VK_EXT_descriptor_buffer,
BufferCaptureDescriptorDataInfoEXT, Device
getImageOpaqueCaptureDescriptorDataEXT Source #
Arguments
| :: forall io. MonadIO io | |
| => Device |
|
| -> ImageCaptureDescriptorDataInfoEXT |
|
| -> ("data" ::: Ptr ()) |
|
| -> io () |
vkGetImageOpaqueCaptureDescriptorDataEXT - Get image opaque capture descriptor data
Valid Usage
- The descriptorBufferCaptureReplay feature must be enabled
-
pDatamust point to a buffer that is at leastPhysicalDeviceDescriptorBufferPropertiesEXT::imageCaptureReplayDescriptorDataSizebytes in size - If
devicewas created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled
Valid Usage (Implicit)
-
devicemust be a validDevicehandle
-
pInfomust be a valid pointer to a validImageCaptureDescriptorDataInfoEXTstructure -
pDatamust be a pointer value
Return Codes
See Also
VK_EXT_descriptor_buffer,
Device, ImageCaptureDescriptorDataInfoEXT
getImageViewOpaqueCaptureDescriptorDataEXT Source #
Arguments
| :: forall io. MonadIO io | |
| => Device |
|
| -> ImageViewCaptureDescriptorDataInfoEXT |
|
| -> ("data" ::: Ptr ()) |
|
| -> io () |
vkGetImageViewOpaqueCaptureDescriptorDataEXT - Get image view opaque capture descriptor data
Valid Usage
- The descriptorBufferCaptureReplay feature must be enabled
-
pDatamust point to a buffer that is at leastPhysicalDeviceDescriptorBufferPropertiesEXT::imageViewCaptureReplayDescriptorDataSizebytes in size - If
devicewas created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled
Valid Usage (Implicit)
-
devicemust be a validDevicehandle
-
pInfomust be a valid pointer to a validImageViewCaptureDescriptorDataInfoEXTstructure -
pDatamust be a pointer value
Return Codes
See Also
VK_EXT_descriptor_buffer,
Device, ImageViewCaptureDescriptorDataInfoEXT
getSamplerOpaqueCaptureDescriptorDataEXT Source #
Arguments
| :: forall io. MonadIO io | |
| => Device |
|
| -> SamplerCaptureDescriptorDataInfoEXT |
|
| -> ("data" ::: Ptr ()) |
|
| -> io () |
vkGetSamplerOpaqueCaptureDescriptorDataEXT - Get sampler opaque capture descriptor data
Valid Usage
- The descriptorBufferCaptureReplay feature must be enabled
-
pDatamust point to a buffer that is at leastPhysicalDeviceDescriptorBufferPropertiesEXT::samplerCaptureReplayDescriptorDataSizebytes in size - If
devicewas created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled
Valid Usage (Implicit)
-
devicemust be a validDevicehandle
-
pInfomust be a valid pointer to a validSamplerCaptureDescriptorDataInfoEXTstructure -
pDatamust be a pointer value
Return Codes
See Also
VK_EXT_descriptor_buffer,
Device, SamplerCaptureDescriptorDataInfoEXT
getAccelerationStructureOpaqueCaptureDescriptorDataEXT Source #
Arguments
| :: forall io. MonadIO io | |
| => Device |
|
| -> AccelerationStructureCaptureDescriptorDataInfoEXT |
|
| -> ("data" ::: Ptr ()) |
|
| -> io () |
vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT - Get acceleration structure opaque capture descriptor data
Valid Usage
- The descriptorBufferCaptureReplay feature must be enabled
-
pDatamust point to a buffer that is at leastPhysicalDeviceDescriptorBufferPropertiesEXT::accelerationStructureCaptureReplayDescriptorDataSizebytes in size -
If
devicewas created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled
Valid Usage (Implicit)
-
devicemust be a validDevicehandle
-
pInfomust be a valid pointer to a validAccelerationStructureCaptureDescriptorDataInfoEXTstructure -
pDatamust be a pointer value
Return Codes
See Also
VK_EXT_descriptor_buffer,
VK_KHR_acceleration_structure,
VK_NV_ray_tracing,
AccelerationStructureCaptureDescriptorDataInfoEXT,
Device
data PhysicalDeviceDescriptorBufferFeaturesEXT Source #
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. PhysicalDeviceDescriptorBufferFeaturesEXT can also be
used in the pNext chain of DeviceCreateInfo to
selectively enable these features.
Valid Usage (Implicit)
See Also
Constructors
| PhysicalDeviceDescriptorBufferFeaturesEXT | |
Fields
| |
Instances
data PhysicalDeviceDescriptorBufferPropertiesEXT Source #
VkPhysicalDeviceDescriptorBufferPropertiesEXT - Structure describing descriptor buffer properties supported by an implementation
Description
A descriptor binding with type
DESCRIPTOR_TYPE_MUTABLE_VALVE
has a descriptor size which is implied by the descriptor types included
in the
MutableDescriptorTypeCreateInfoVALVE::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 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.
Valid Usage (Implicit)
See Also
Constructors
| PhysicalDeviceDescriptorBufferPropertiesEXT | |
Fields
| |
Instances
data PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT Source #
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.
Valid Usage (Implicit)
See Also
Constructors
| PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT | |
Fields
| |
Instances
data DescriptorAddressInfoEXT Source #
VkDescriptorAddressInfoEXT - Structure specifying descriptor buffer address info
Valid Usage
- If the
nullDescriptor
feature is not enabled,
addressmust not be zero
- If
addressis zero,rangemust beWHOLE_SIZE - If
addressis not zero,rangemust not beWHOLE_SIZE - If
addressis not zero,addressmust be a valid device address at an offset within aBuffer -
rangemust be less than or equal to the size of the buffer containingaddressminus the offset ofaddressfrom the base address of the buffer -
rangemust not be zero
Valid Usage (Implicit)
-
sTypemust beSTRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT
-
pNextmust beNULL -
formatmust be a validFormatvalue
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
| DescriptorAddressInfoEXT | |
Fields
| |
Instances
data DescriptorBufferBindingInfoEXT (es :: [Type]) Source #
VkDescriptorBufferBindingInfoEXT - Structure specifying descriptor buffer binding information
Description
If a
PipelineCreateFlags2CreateInfoKHR
structure is present in the pNext chain,
PipelineCreateFlags2CreateInfoKHR::flags
from that structure is used instead of flags from this structure.
Valid Usage
-
If
::bufferlessPushDescriptors
is
FALSE, andusagecontainsBUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT, then thepNextchain must include aDescriptorBufferBindingPushDescriptorBufferHandleEXTstructure
-
addressmust be aligned toPhysicalDeviceDescriptorBufferPropertiesEXT::descriptorBufferOffsetAlignment - If
usageincludesBUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT,addressmust be an address within a valid buffer that was created withBUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT - If
usageincludesBUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT,addressmust be an address within a valid buffer that was created withBUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT - If
usageincludesBUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT,addressmust be an address within a valid buffer that was created withBUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT
Valid Usage (Implicit)
-
sTypemust beSTRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT
- Each
pNextmember of any structure (including this one) in thepNextchain must be eitherNULLor a pointer to a valid instance ofBufferUsageFlags2CreateInfoKHRorDescriptorBufferBindingPushDescriptorBufferHandleEXT - The
sTypevalue of each struct in thepNextchain must be unique -
usagemust be a valid combination ofBufferUsageFlagBitsvalues -
usagemust not be0
See Also
VK_EXT_descriptor_buffer,
BufferUsageFlags,
DeviceAddress,
StructureType,
cmdBindDescriptorBuffersEXT
Constructors
| DescriptorBufferBindingInfoEXT | |
Fields
| |
Instances
data DescriptorBufferBindingPushDescriptorBufferHandleEXT Source #
VkDescriptorBufferBindingPushDescriptorBufferHandleEXT - Structure specifying push descriptor buffer binding information
Valid Usage
-
::bufferlessPushDescriptors
must be
FALSE
Valid Usage (Implicit)
See Also
Instances
data DescriptorGetInfoEXT Source #
VkDescriptorGetInfoEXT - Structure specifying parameters of descriptor to get
Valid Usage
-
typemust not beDESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC,DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMICorDESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK
- If
typeisDESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, thepCombinedImageSampler->samplermember ofdatamust be aSamplercreated ondevice - If
typeisDESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, thepCombinedImageSampler->imageViewmember ofdatamust be aImageViewcreated ondevice, orNULL_HANDLE - If
typeisDESCRIPTOR_TYPE_INPUT_ATTACHMENT, thepInputAttachmentImage->imageViewmember ofdatamust be aImageViewcreated ondevice - If
typeisDESCRIPTOR_TYPE_SAMPLED_IMAGE, and ifpSampledImageis notNULL, thepSampledImage->imageViewmember ofdatamust be aImageViewcreated ondevice, orNULL_HANDLE - If
typeisDESCRIPTOR_TYPE_STORAGE_IMAGE, and ifpStorageImageis notNULL, thepStorageImage->imageViewmember ofdatamust be aImageViewcreated ondevice, orNULL_HANDLE - If
typeisDESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER,pUniformTexelBufferis notNULLandpUniformTexelBuffer->addressis not zero,pUniformTexelBuffer->addressmust be an address within aBuffercreated ondevice - If
typeisDESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER,pStorageTexelBufferis notNULLandpStorageTexelBuffer->addressis not zero,pStorageTexelBuffer->addressmust be an address within aBuffercreated ondevice - If
typeisDESCRIPTOR_TYPE_UNIFORM_BUFFER,pUniformBufferis notNULLandpUniformBuffer->addressis not zero,pUniformBuffer->addressmust be an address within aBuffercreated ondevice - If
typeisDESCRIPTOR_TYPE_STORAGE_BUFFER,pStorageBufferis notNULLandpStorageBuffer->addressis not zero,pStorageBuffer->addressmust be an address within aBuffercreated ondevice - If
typeisDESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHRandaccelerationStructureis not0,accelerationStructuremust contain the address of aAccelerationStructureKHRcreated ondevice - If
typeisDESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NVandaccelerationStructureis not0,accelerationStructuremust contain the handle of aAccelerationStructureNVcreated ondevice, returned bygetAccelerationStructureHandleNV
Valid Usage (Implicit)
-
sTypemust beSTRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT
-
pNextmust beNULL -
typemust be a validDescriptorTypevalue - If
typeisDESCRIPTOR_TYPE_SAMPLER, thepSamplermember ofdatamust be a valid pointer to a validSamplerhandle - If
typeisDESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, thepCombinedImageSamplermember ofdatamust be a valid pointer to a validDescriptorImageInfostructure - If
typeisDESCRIPTOR_TYPE_INPUT_ATTACHMENT, thepInputAttachmentImagemember ofdatamust be a valid pointer to a validDescriptorImageInfostructure - If
typeisDESCRIPTOR_TYPE_SAMPLED_IMAGE, and ifpSampledImageis notNULL, thepSampledImagemember ofdatamust be a valid pointer to a validDescriptorImageInfostructure - If
typeisDESCRIPTOR_TYPE_STORAGE_IMAGE, and ifpStorageImageis notNULL, thepStorageImagemember ofdatamust be a valid pointer to a validDescriptorImageInfostructure - If
typeisDESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER, and ifpUniformTexelBufferis notNULL, thepUniformTexelBuffermember ofdatamust be a valid pointer to a validDescriptorAddressInfoEXTstructure - If
typeisDESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER, and ifpStorageTexelBufferis notNULL, thepStorageTexelBuffermember ofdatamust be a valid pointer to a validDescriptorAddressInfoEXTstructure - If
typeisDESCRIPTOR_TYPE_UNIFORM_BUFFER, and ifpUniformBufferis notNULL, thepUniformBuffermember ofdatamust be a valid pointer to a validDescriptorAddressInfoEXTstructure - If
typeisDESCRIPTOR_TYPE_STORAGE_BUFFER, and ifpStorageBufferis notNULL, thepStorageBuffermember ofdatamust be a valid pointer to a validDescriptorAddressInfoEXTstructure
See Also
VK_EXT_descriptor_buffer,
DescriptorDataEXT,
DescriptorType,
StructureType, getDescriptorEXT
Constructors
| DescriptorGetInfoEXT | |
Fields
| |
Instances
| Show DescriptorGetInfoEXT Source # | |
Defined in Vulkan.Extensions.VK_EXT_descriptor_buffer Methods showsPrec :: Int -> DescriptorGetInfoEXT -> ShowS # show :: DescriptorGetInfoEXT -> String # showList :: [DescriptorGetInfoEXT] -> ShowS # | |
| FromCStruct DescriptorGetInfoEXT Source # | |
Defined in Vulkan.Extensions.VK_EXT_descriptor_buffer Methods peekCStruct :: Ptr DescriptorGetInfoEXT -> IO DescriptorGetInfoEXT Source # | |
| ToCStruct DescriptorGetInfoEXT Source # | |
Defined in Vulkan.Extensions.VK_EXT_descriptor_buffer Methods withCStruct :: DescriptorGetInfoEXT -> (Ptr DescriptorGetInfoEXT -> IO b) -> IO b Source # pokeCStruct :: Ptr DescriptorGetInfoEXT -> DescriptorGetInfoEXT -> IO b -> IO b Source # withZeroCStruct :: (Ptr DescriptorGetInfoEXT -> IO b) -> IO b Source # pokeZeroCStruct :: Ptr DescriptorGetInfoEXT -> IO b -> IO b Source # cStructSize :: Int Source # | |
| Zero DescriptorGetInfoEXT Source # | |
Defined in Vulkan.Extensions.VK_EXT_descriptor_buffer Methods | |
data BufferCaptureDescriptorDataInfoEXT Source #
VkBufferCaptureDescriptorDataInfoEXT - Structure specifying a buffer for descriptor capture
Valid Usage (Implicit)
See Also
VK_EXT_descriptor_buffer,
Buffer,
StructureType,
getBufferOpaqueCaptureDescriptorDataEXT
Constructors
| BufferCaptureDescriptorDataInfoEXT | |
Fields
| |
Instances
data ImageCaptureDescriptorDataInfoEXT Source #
VkImageCaptureDescriptorDataInfoEXT - Structure specifying an image for descriptor capture
Valid Usage (Implicit)
See Also
VK_EXT_descriptor_buffer,
Image,
StructureType,
getImageOpaqueCaptureDescriptorDataEXT
Constructors
| ImageCaptureDescriptorDataInfoEXT | |
Fields
| |
Instances
data ImageViewCaptureDescriptorDataInfoEXT Source #
VkImageViewCaptureDescriptorDataInfoEXT - Structure specifying an image view for descriptor capture
Valid Usage (Implicit)
See Also
VK_EXT_descriptor_buffer,
ImageView,
StructureType,
getImageViewOpaqueCaptureDescriptorDataEXT
Constructors
| ImageViewCaptureDescriptorDataInfoEXT | |
Fields
| |
Instances
data SamplerCaptureDescriptorDataInfoEXT Source #
VkSamplerCaptureDescriptorDataInfoEXT - Structure specifying a sampler for descriptor capture
Valid Usage (Implicit)
See Also
VK_EXT_descriptor_buffer,
Sampler,
StructureType,
getSamplerOpaqueCaptureDescriptorDataEXT
Constructors
| SamplerCaptureDescriptorDataInfoEXT | |
Fields
| |
Instances
data AccelerationStructureCaptureDescriptorDataInfoEXT Source #
VkAccelerationStructureCaptureDescriptorDataInfoEXT - Structure specifying an acceleration structure for descriptor capture
Valid Usage
-
If
accelerationStructureis notNULL_HANDLEthenaccelerationStructuremust have been created withACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXTset inAccelerationStructureCreateInfoKHR::createFlags
-
If
accelerationStructureNVis notNULL_HANDLEthenaccelerationStructureNVmust have been created withACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXTset inAccelerationStructureCreateInfoNV::info.flags -
If
accelerationStructureis notNULL_HANDLEthenaccelerationStructureNVmust beNULL_HANDLE -
If
accelerationStructureNVis notNULL_HANDLEthenaccelerationStructuremust beNULL_HANDLE
Valid Usage (Implicit)
-
pNextmust beNULL -
If
accelerationStructureis notNULL_HANDLE,accelerationStructuremust be a validAccelerationStructureKHRhandle -
If
accelerationStructureNVis notNULL_HANDLE,accelerationStructureNVmust be a validAccelerationStructureNVhandle -
Both of
accelerationStructure, andaccelerationStructureNVthat are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the sameDevice
See Also
VK_EXT_descriptor_buffer,
VK_KHR_acceleration_structure,
VK_NV_ray_tracing,
AccelerationStructureKHR,
AccelerationStructureNV,
StructureType,
getAccelerationStructureOpaqueCaptureDescriptorDataEXT
Constructors
| AccelerationStructureCaptureDescriptorDataInfoEXT | |
Fields
| |
Instances
data OpaqueCaptureDescriptorDataCreateInfoEXT Source #
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,
AccelerationStructureCreateInfoNV
or
AccelerationStructureCreateInfoKHR
structure.
Valid Usage (Implicit)
See Also
Constructors
| OpaqueCaptureDescriptorDataCreateInfoEXT | |
Fields
| |
Instances
data DescriptorDataEXT Source #
Constructors
Instances
| Show DescriptorDataEXT Source # | |
Defined in Vulkan.Extensions.VK_EXT_descriptor_buffer Methods showsPrec :: Int -> DescriptorDataEXT -> ShowS # show :: DescriptorDataEXT -> String # showList :: [DescriptorDataEXT] -> ShowS # | |
| ToCStruct DescriptorDataEXT Source # | |
Defined in Vulkan.Extensions.VK_EXT_descriptor_buffer Methods withCStruct :: DescriptorDataEXT -> (Ptr DescriptorDataEXT -> IO b) -> IO b Source # pokeCStruct :: Ptr DescriptorDataEXT -> DescriptorDataEXT -> IO b -> IO b Source # withZeroCStruct :: (Ptr DescriptorDataEXT -> IO b) -> IO b Source # pokeZeroCStruct :: Ptr DescriptorDataEXT -> IO b -> IO b Source # cStructSize :: Int Source # | |
| Zero DescriptorDataEXT Source # | |
Defined in Vulkan.Extensions.VK_EXT_descriptor_buffer Methods | |
type EXT_DESCRIPTOR_BUFFER_SPEC_VERSION = 1 Source #
pattern EXT_DESCRIPTOR_BUFFER_SPEC_VERSION :: forall a. Integral a => a Source #
type EXT_DESCRIPTOR_BUFFER_EXTENSION_NAME = "VK_EXT_descriptor_buffer" Source #
pattern EXT_DESCRIPTOR_BUFFER_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a Source #
newtype AccelerationStructureKHR Source #
VkAccelerationStructureKHR - Opaque handle to an acceleration structure object
See Also
VK_KHR_acceleration_structure,
AccelerationStructureBuildGeometryInfoKHR,
AccelerationStructureCaptureDescriptorDataInfoEXT,
AccelerationStructureDeviceAddressInfoKHR,
CopyAccelerationStructureInfoKHR,
CopyAccelerationStructureToMemoryInfoKHR,
CopyMemoryToAccelerationStructureInfoKHR,
WriteDescriptorSetAccelerationStructureKHR,
cmdWriteAccelerationStructuresPropertiesKHR,
createAccelerationStructureKHR,
destroyAccelerationStructureKHR,
writeAccelerationStructuresPropertiesKHR
Constructors
| AccelerationStructureKHR Word64 |
Instances
newtype AccelerationStructureNV Source #
VkAccelerationStructureNV - Opaque handle to an acceleration structure object
See Also
VK_NV_ray_tracing,
AccelerationStructureCaptureDescriptorDataInfoEXT,
AccelerationStructureMemoryRequirementsInfoNV,
BindAccelerationStructureMemoryInfoNV,
WriteDescriptorSetAccelerationStructureNV,
cmdBuildAccelerationStructureNV,
cmdCopyAccelerationStructureNV,
cmdWriteAccelerationStructuresPropertiesNV,
createAccelerationStructureNV,
destroyAccelerationStructureNV,
getAccelerationStructureHandleNV
Constructors
| AccelerationStructureNV Word64 |
Instances
newtype AccelerationStructureCreateFlagBitsKHR Source #
VkAccelerationStructureCreateFlagBitsKHR - Bitmask specifying additional creation parameters for acceleration structure
See Also
VK_KHR_acceleration_structure,
AccelerationStructureCreateFlagsKHR
Constructors
| AccelerationStructureCreateFlagBitsKHR Flags |
Bundled Patterns
| pattern ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR :: AccelerationStructureCreateFlagBitsKHR |
|
| pattern ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV :: AccelerationStructureCreateFlagBitsKHR | |
| pattern ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT :: AccelerationStructureCreateFlagBitsKHR |
|