Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
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
cmdBindDescriptorBuffersEXT
cmdSetDescriptorBufferOffsetsEXT
getBufferOpaqueCaptureDescriptorDataEXT
getDescriptorEXT
getDescriptorSetLayoutBindingOffsetEXT
getDescriptorSetLayoutSizeEXT
getImageOpaqueCaptureDescriptorDataEXT
getImageViewOpaqueCaptureDescriptorDataEXT
getSamplerOpaqueCaptureDescriptorDataEXT
If VK_KHR_acceleration_structure or VK_NV_ray_tracing is supported:
New Structures
DescriptorAddressInfoEXT
DescriptorBufferBindingInfoEXT
DescriptorGetInfoEXT
ImageCaptureDescriptorDataInfoEXT
ImageViewCaptureDescriptorDataInfoEXT
SamplerCaptureDescriptorDataInfoEXT
Extending
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_VERSION
Extending
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_EXT
STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT
STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT
STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT
STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT
STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT
STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT
STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT
STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT
STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT
STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT
STRUCTURE_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 #
:: 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
-
layout
must have been created with theDESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
flag set
Valid Usage (Implicit)
-
device
must be a validDevice
handle
-
layout
must be a validDescriptorSetLayout
handle -
pLayoutSizeInBytes
must be a valid pointer to aDeviceSize
value -
layout
must have been created, allocated, or retrieved fromdevice
See Also
VK_EXT_descriptor_buffer,
DescriptorSetLayout
,
Device
,
DeviceSize
getDescriptorSetLayoutBindingOffsetEXT Source #
:: 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
-
layout
must have been created with theDESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
flag set
Valid Usage (Implicit)
-
device
must be a validDevice
handle
-
layout
must be a validDescriptorSetLayout
handle -
pOffset
must be a valid pointer to aDeviceSize
value -
layout
must have been created, allocated, or retrieved fromdevice
See Also
VK_EXT_descriptor_buffer,
DescriptorSetLayout
,
Device
,
DeviceSize
:: 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
-
dataSize
must equal the size of a descriptor of typeDescriptorGetInfoEXT
::type
determined by the value inPhysicalDeviceDescriptorBufferPropertiesEXT
, or determined byPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
::combinedImageSamplerDensityMapDescriptorSize
ifpDescriptorInfo
specifies aDESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER
whoseSampler
was created withSAMPLER_CREATE_SUBSAMPLED_BIT_EXT
set -
pDescriptor
must be a valid pointer to an array of at leastdataSize
bytes
Valid Usage (Implicit)
-
device
must be a validDevice
handle
-
pDescriptorInfo
must be a valid pointer to a validDescriptorGetInfoEXT
structure -
pDescriptor
must be a valid pointer to an array ofdataSize
bytes -
dataSize
must be greater than0
See Also
cmdBindDescriptorBuffersEXT Source #
:: 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
::maxSamplerDescriptorBufferBindings
descriptor buffers containing sampler descriptor data bound -
There must be no more than
PhysicalDeviceDescriptorBufferPropertiesEXT
::maxResourceDescriptorBufferBindings
descriptor buffers containing resource descriptor data bound - There must be no
more than
1
descriptor buffer bound that was created with theBUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT
bit set -
bufferCount
must be less than or equal toPhysicalDeviceDescriptorBufferPropertiesEXT
::maxDescriptorBufferBindings
- For any
element of
pBindingInfos
, if the buffer from whichaddress
was queried is non-sparse then it must be bound completely and contiguously to a singleDeviceMemory
object - For any
element of
pBindingInfos
, the buffer from whichaddress
was queried must have been created with theBUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT
bit set if it contains sampler descriptor data - For any
element of
pBindingInfos
, the buffer from whichaddress
was queried must have been created with theBUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT
bit set if it contains resource descriptor data - For any
element of
pBindingInfos
,usage
must match the buffer from whichaddress
was queried
Valid Usage (Implicit)
-
commandBuffer
must be a validCommandBuffer
handle
-
pBindingInfos
must be a valid pointer to an array ofbufferCount
validDescriptorBufferBindingInfoEXT
structures -
commandBuffer
must be in the recording state - The
CommandPool
thatcommandBuffer
was allocated from must support graphics, or compute operations - This command must only be called outside of a video coding scope
-
bufferCount
must be greater than0
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
- Host access to the
CommandPool
thatcommandBuffer
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 | Graphics Compute | State |
See Also
VK_EXT_descriptor_buffer,
CommandBuffer
, DescriptorBufferBindingInfoEXT
cmdSetDescriptorBufferOffsetsEXT Source #
:: 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
pOffsets
must be aligned toPhysicalDeviceDescriptorBufferPropertiesEXT
::descriptorBufferOffsetAlignment
- The offsets
in
pOffsets
must be small enough such that any descriptor binding referenced bylayout
without theDESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT
flag computes a valid address inside the underlyingBuffer
- The offsets
in
pOffsets
must be small enough such that any location accessed by a shader as a sampler descriptor must be withinPhysicalDeviceDescriptorBufferPropertiesEXT
::maxSamplerDescriptorBufferRange
of the sampler descriptor buffer binding - The offsets
in
pOffsets
must be small enough such that any location accessed by a shader as a resource descriptor must be withinPhysicalDeviceDescriptorBufferPropertiesEXT
::maxResourceDescriptorBufferRange
of the resource descriptor buffer binding - Each
element of
pBufferIndices
must be less thanPhysicalDeviceDescriptorBufferPropertiesEXT
::maxDescriptorBufferBindings
- Each
element of
pBufferIndices
must reference a valid descriptor buffer binding set by a previous call tocmdBindDescriptorBuffersEXT
incommandBuffer
- The sum of
firstSet
andsetCount
must be less than or equal toPipelineLayoutCreateInfo
::setLayoutCount
provided whenlayout
was created -
pipelineBindPoint
must be supported by thecommandBuffer
’s parentCommandPool
’s queue family - The
DescriptorSetLayout
for each set fromfirstSet
tofirstSet
+setCount
whenlayout
was created must have been created with theDESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
bit set
Valid Usage (Implicit)
-
commandBuffer
must be a validCommandBuffer
handle
-
pipelineBindPoint
must be a validPipelineBindPoint
value -
layout
must be a validPipelineLayout
handle -
pBufferIndices
must be a valid pointer to an array ofsetCount
uint32_t
values -
pOffsets
must be a valid pointer to an array ofsetCount
DeviceSize
values -
commandBuffer
must be in the recording state - The
CommandPool
thatcommandBuffer
was allocated from must support graphics, or compute operations - This command must only be called outside of a video coding scope
-
setCount
must be greater than0
- Both of
commandBuffer
, andlayout
must have been created, allocated, or retrieved from the sameDevice
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
- Host access to the
CommandPool
thatcommandBuffer
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 | Graphics Compute | State |
See Also
VK_EXT_descriptor_buffer,
CommandBuffer
,
DeviceSize
,
PipelineBindPoint
,
PipelineLayout
cmdBindDescriptorBufferEmbeddedSamplersEXT Source #
:: 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
-
pipelineBindPoint
must be supported by thecommandBuffer
’s parentCommandPool
’s queue family - The
DescriptorSetLayout
at indexset
whenlayout
was created must have been created with theDESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT
bit set -
set
must be less than or equal toPipelineLayoutCreateInfo
::setLayoutCount
provided whenlayout
was created
Valid Usage (Implicit)
-
commandBuffer
must be a validCommandBuffer
handle
-
pipelineBindPoint
must be a validPipelineBindPoint
value -
layout
must be a validPipelineLayout
handle -
commandBuffer
must be in the recording state -
The
CommandPool
thatcommandBuffer
was allocated from must support graphics, or compute operations - This command must only be called outside of a video coding scope
-
Both of
commandBuffer
, andlayout
must have been created, allocated, or retrieved from the sameDevice
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
- Host access to the
CommandPool
thatcommandBuffer
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 | Graphics Compute | State |
See Also
VK_EXT_descriptor_buffer,
CommandBuffer
,
PipelineBindPoint
,
PipelineLayout
getBufferOpaqueCaptureDescriptorDataEXT Source #
:: forall io. MonadIO io | |
=> Device |
|
-> BufferCaptureDescriptorDataInfoEXT |
|
-> ("data" ::: Ptr ()) |
|
-> io () |
vkGetBufferOpaqueCaptureDescriptorDataEXT - Get buffer opaque capture descriptor data
Valid Usage
- The descriptorBufferCaptureReplay feature must be enabled
-
pData
must point to a buffer that is at leastPhysicalDeviceDescriptorBufferPropertiesEXT
::bufferCaptureReplayDescriptorDataSize
bytes in size - If
device
was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled
Valid Usage (Implicit)
-
device
must be a validDevice
handle
-
pInfo
must be a valid pointer to a validBufferCaptureDescriptorDataInfoEXT
structure -
pData
must be a pointer value
Return Codes
See Also
VK_EXT_descriptor_buffer,
BufferCaptureDescriptorDataInfoEXT
, Device
getImageOpaqueCaptureDescriptorDataEXT Source #
:: forall io. MonadIO io | |
=> Device |
|
-> ImageCaptureDescriptorDataInfoEXT |
|
-> ("data" ::: Ptr ()) |
|
-> io () |
vkGetImageOpaqueCaptureDescriptorDataEXT - Get image opaque capture descriptor data
Valid Usage
- The descriptorBufferCaptureReplay feature must be enabled
-
pData
must point to a buffer that is at leastPhysicalDeviceDescriptorBufferPropertiesEXT
::imageCaptureReplayDescriptorDataSize
bytes in size - If
device
was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled
Valid Usage (Implicit)
-
device
must be a validDevice
handle
-
pInfo
must be a valid pointer to a validImageCaptureDescriptorDataInfoEXT
structure -
pData
must be a pointer value
Return Codes
See Also
VK_EXT_descriptor_buffer,
Device
, ImageCaptureDescriptorDataInfoEXT
getImageViewOpaqueCaptureDescriptorDataEXT Source #
:: 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
-
pData
must point to a buffer that is at leastPhysicalDeviceDescriptorBufferPropertiesEXT
::imageViewCaptureReplayDescriptorDataSize
bytes in size - If
device
was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled
Valid Usage (Implicit)
-
device
must be a validDevice
handle
-
pInfo
must be a valid pointer to a validImageViewCaptureDescriptorDataInfoEXT
structure -
pData
must be a pointer value
Return Codes
See Also
VK_EXT_descriptor_buffer,
Device
, ImageViewCaptureDescriptorDataInfoEXT
getSamplerOpaqueCaptureDescriptorDataEXT Source #
:: forall io. MonadIO io | |
=> Device |
|
-> SamplerCaptureDescriptorDataInfoEXT |
|
-> ("data" ::: Ptr ()) |
|
-> io () |
vkGetSamplerOpaqueCaptureDescriptorDataEXT - Get sampler opaque capture descriptor data
Valid Usage
- The descriptorBufferCaptureReplay feature must be enabled
-
pData
must point to a buffer that is at leastPhysicalDeviceDescriptorBufferPropertiesEXT
::samplerCaptureReplayDescriptorDataSize
bytes in size - If
device
was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled
Valid Usage (Implicit)
-
device
must be a validDevice
handle
-
pInfo
must be a valid pointer to a validSamplerCaptureDescriptorDataInfoEXT
structure -
pData
must be a pointer value
Return Codes
See Also
VK_EXT_descriptor_buffer,
Device
, SamplerCaptureDescriptorDataInfoEXT
getAccelerationStructureOpaqueCaptureDescriptorDataEXT Source #
:: 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
-
pData
must point to a buffer that is at leastPhysicalDeviceDescriptorBufferPropertiesEXT
::accelerationStructureCaptureReplayDescriptorDataSize
bytes in size -
If
device
was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled
Valid Usage (Implicit)
-
device
must be a validDevice
handle
-
pInfo
must be a valid pointer to a validAccelerationStructureCaptureDescriptorDataInfoEXT
structure -
pData
must 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
PhysicalDeviceDescriptorBufferFeaturesEXT | |
|
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
PhysicalDeviceDescriptorBufferPropertiesEXT | |
|
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
PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT | |
|
Instances
data DescriptorAddressInfoEXT Source #
VkDescriptorAddressInfoEXT - Structure specifying descriptor buffer address info
Valid Usage
- If the
nullDescriptor
feature is not enabled,
address
must not be zero
- If
address
is zero,range
must beWHOLE_SIZE
- If
address
is not zero,range
must not beWHOLE_SIZE
- If
address
is not zero,address
must be a valid device address at an offset within aBuffer
-
range
must be less than or equal to the size of the buffer containingaddress
minus the offset ofaddress
from the base address of the buffer -
range
must not be zero
Valid Usage (Implicit)
-
sType
must beSTRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT
-
pNext
must beNULL
-
format
must be a validFormat
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
DescriptorAddressInfoEXT | |
|
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
, andusage
containsBUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT
, then thepNext
chain must include aDescriptorBufferBindingPushDescriptorBufferHandleEXT
structure
-
address
must be aligned toPhysicalDeviceDescriptorBufferPropertiesEXT
::descriptorBufferOffsetAlignment
- If
usage
includesBUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT
,address
must be an address within a valid buffer that was created withBUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT
- If
usage
includesBUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT
,address
must be an address within a valid buffer that was created withBUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT
- If
usage
includesBUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT
,address
must be an address within a valid buffer that was created withBUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT
Valid Usage (Implicit)
-
sType
must beSTRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT
- Each
pNext
member of any structure (including this one) in thepNext
chain must be eitherNULL
or a pointer to a valid instance ofBufferUsageFlags2CreateInfoKHR
orDescriptorBufferBindingPushDescriptorBufferHandleEXT
- The
sType
value of each struct in thepNext
chain must be unique -
usage
must be a valid combination ofBufferUsageFlagBits
values -
usage
must not be0
See Also
VK_EXT_descriptor_buffer,
BufferUsageFlags
,
DeviceAddress
,
StructureType
,
cmdBindDescriptorBuffersEXT
DescriptorBufferBindingInfoEXT | |
|
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
-
type
must not beDESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC
,DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC
orDESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK
- If
type
isDESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER
, thepCombinedImageSampler->sampler
member ofdata
must be aSampler
created ondevice
- If
type
isDESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER
, thepCombinedImageSampler->imageView
member ofdata
must be aImageView
created ondevice
, orNULL_HANDLE
- If
type
isDESCRIPTOR_TYPE_INPUT_ATTACHMENT
, thepInputAttachmentImage->imageView
member ofdata
must be aImageView
created ondevice
- If
type
isDESCRIPTOR_TYPE_SAMPLED_IMAGE
, and ifpSampledImage
is notNULL
, thepSampledImage->imageView
member ofdata
must be aImageView
created ondevice
, orNULL_HANDLE
- If
type
isDESCRIPTOR_TYPE_STORAGE_IMAGE
, and ifpStorageImage
is notNULL
, thepStorageImage->imageView
member ofdata
must be aImageView
created ondevice
, orNULL_HANDLE
- If
type
isDESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER
,pUniformTexelBuffer
is notNULL
andpUniformTexelBuffer->address
is not zero,pUniformTexelBuffer->address
must be an address within aBuffer
created ondevice
- If
type
isDESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER
,pStorageTexelBuffer
is notNULL
andpStorageTexelBuffer->address
is not zero,pStorageTexelBuffer->address
must be an address within aBuffer
created ondevice
- If
type
isDESCRIPTOR_TYPE_UNIFORM_BUFFER
,pUniformBuffer
is notNULL
andpUniformBuffer->address
is not zero,pUniformBuffer->address
must be an address within aBuffer
created ondevice
- If
type
isDESCRIPTOR_TYPE_STORAGE_BUFFER
,pStorageBuffer
is notNULL
andpStorageBuffer->address
is not zero,pStorageBuffer->address
must be an address within aBuffer
created ondevice
- If
type
isDESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR
andaccelerationStructure
is not0
,accelerationStructure
must contain the address of aAccelerationStructureKHR
created ondevice
- If
type
isDESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV
andaccelerationStructure
is not0
,accelerationStructure
must contain the handle of aAccelerationStructureNV
created ondevice
, returned bygetAccelerationStructureHandleNV
Valid Usage (Implicit)
-
sType
must beSTRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT
-
pNext
must beNULL
-
type
must be a validDescriptorType
value - If
type
isDESCRIPTOR_TYPE_SAMPLER
, thepSampler
member ofdata
must be a valid pointer to a validSampler
handle - If
type
isDESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER
, thepCombinedImageSampler
member ofdata
must be a valid pointer to a validDescriptorImageInfo
structure - If
type
isDESCRIPTOR_TYPE_INPUT_ATTACHMENT
, thepInputAttachmentImage
member ofdata
must be a valid pointer to a validDescriptorImageInfo
structure - If
type
isDESCRIPTOR_TYPE_SAMPLED_IMAGE
, and ifpSampledImage
is notNULL
, thepSampledImage
member ofdata
must be a valid pointer to a validDescriptorImageInfo
structure - If
type
isDESCRIPTOR_TYPE_STORAGE_IMAGE
, and ifpStorageImage
is notNULL
, thepStorageImage
member ofdata
must be a valid pointer to a validDescriptorImageInfo
structure - If
type
isDESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER
, and ifpUniformTexelBuffer
is notNULL
, thepUniformTexelBuffer
member ofdata
must be a valid pointer to a validDescriptorAddressInfoEXT
structure - If
type
isDESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER
, and ifpStorageTexelBuffer
is notNULL
, thepStorageTexelBuffer
member ofdata
must be a valid pointer to a validDescriptorAddressInfoEXT
structure - If
type
isDESCRIPTOR_TYPE_UNIFORM_BUFFER
, and ifpUniformBuffer
is notNULL
, thepUniformBuffer
member ofdata
must be a valid pointer to a validDescriptorAddressInfoEXT
structure - If
type
isDESCRIPTOR_TYPE_STORAGE_BUFFER
, and ifpStorageBuffer
is notNULL
, thepStorageBuffer
member ofdata
must be a valid pointer to a validDescriptorAddressInfoEXT
structure
See Also
VK_EXT_descriptor_buffer,
DescriptorDataEXT
,
DescriptorType
,
StructureType
, getDescriptorEXT
DescriptorGetInfoEXT | |
|
Instances
Show DescriptorGetInfoEXT Source # | |
Defined in Vulkan.Extensions.VK_EXT_descriptor_buffer showsPrec :: Int -> DescriptorGetInfoEXT -> ShowS # show :: DescriptorGetInfoEXT -> String # showList :: [DescriptorGetInfoEXT] -> ShowS # | |
FromCStruct DescriptorGetInfoEXT Source # | |
ToCStruct DescriptorGetInfoEXT Source # | |
Defined in Vulkan.Extensions.VK_EXT_descriptor_buffer 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 # | |
data BufferCaptureDescriptorDataInfoEXT Source #
VkBufferCaptureDescriptorDataInfoEXT - Structure specifying a buffer for descriptor capture
Valid Usage (Implicit)
See Also
VK_EXT_descriptor_buffer,
Buffer
,
StructureType
,
getBufferOpaqueCaptureDescriptorDataEXT
BufferCaptureDescriptorDataInfoEXT | |
|
Instances
data ImageCaptureDescriptorDataInfoEXT Source #
VkImageCaptureDescriptorDataInfoEXT - Structure specifying an image for descriptor capture
Valid Usage (Implicit)
See Also
VK_EXT_descriptor_buffer,
Image
,
StructureType
,
getImageOpaqueCaptureDescriptorDataEXT
ImageCaptureDescriptorDataInfoEXT | |
|
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
ImageViewCaptureDescriptorDataInfoEXT | |
|
Instances
data SamplerCaptureDescriptorDataInfoEXT Source #
VkSamplerCaptureDescriptorDataInfoEXT - Structure specifying a sampler for descriptor capture
Valid Usage (Implicit)
See Also
VK_EXT_descriptor_buffer,
Sampler
,
StructureType
,
getSamplerOpaqueCaptureDescriptorDataEXT
SamplerCaptureDescriptorDataInfoEXT | |
|
Instances
data AccelerationStructureCaptureDescriptorDataInfoEXT Source #
VkAccelerationStructureCaptureDescriptorDataInfoEXT - Structure specifying an acceleration structure for descriptor capture
Valid Usage
-
If
accelerationStructure
is notNULL_HANDLE
thenaccelerationStructure
must have been created withACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT
set inAccelerationStructureCreateInfoKHR
::createFlags
-
If
accelerationStructureNV
is notNULL_HANDLE
thenaccelerationStructureNV
must have been created withACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT
set inAccelerationStructureCreateInfoNV
::info.flags
-
If
accelerationStructure
is notNULL_HANDLE
thenaccelerationStructureNV
must beNULL_HANDLE
-
If
accelerationStructureNV
is notNULL_HANDLE
thenaccelerationStructure
must beNULL_HANDLE
Valid Usage (Implicit)
-
pNext
must beNULL
-
If
accelerationStructure
is notNULL_HANDLE
,accelerationStructure
must be a validAccelerationStructureKHR
handle -
If
accelerationStructureNV
is notNULL_HANDLE
,accelerationStructureNV
must be a validAccelerationStructureNV
handle -
Both of
accelerationStructure
, andaccelerationStructureNV
that 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
AccelerationStructureCaptureDescriptorDataInfoEXT | |
|
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
OpaqueCaptureDescriptorDataCreateInfoEXT | |
|
Instances
data DescriptorDataEXT Source #
Instances
Show DescriptorDataEXT Source # | |
Defined in Vulkan.Extensions.VK_EXT_descriptor_buffer showsPrec :: Int -> DescriptorDataEXT -> ShowS # show :: DescriptorDataEXT -> String # showList :: [DescriptorDataEXT] -> ShowS # | |
ToCStruct DescriptorDataEXT Source # | |
Defined in Vulkan.Extensions.VK_EXT_descriptor_buffer 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 |
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
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
Instances
newtype AccelerationStructureCreateFlagBitsKHR Source #
VkAccelerationStructureCreateFlagBitsKHR - Bitmask specifying additional creation parameters for acceleration structure
See Also
VK_KHR_acceleration_structure,
AccelerationStructureCreateFlagsKHR
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 |
|