| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Vulkan.Extensions.VK_EXT_descriptor_heap
Description
Name
VK_EXT_descriptor_heap - device extension
VK_EXT_descriptor_heap
- Name String
VK_EXT_descriptor_heap
- Extension Type
- Device extension
- Registered Extension Number
- 136
- Revision
- 1
- Ratification Status
- Ratified
- Extension and Version Dependencies
- VK_KHR_maintenance5 and
VK_KHR_buffer_device_address or
- API Interactions
- Interacts with VK_ARM_tensors
- Interacts with VK_EXT_custom_border_color
- Interacts with VK_EXT_device_generated_commands
- Interacts with VK_EXT_fragment_density_map
- Interacts with VK_EXT_shader_object
- Interacts with VK_KHR_ray_tracing_pipeline
- Interacts with VK_NV_device_generated_commands
- Interacts with VK_NV_ray_tracing
- SPIR-V Dependencies
- Contact
- Extension Proposal
- VK_EXT_descriptor_heap
Other Extension Metadata
- Last Modified Date
- 2024-06-12
- IP Status
- No known IP claims.
- Contributors
- Tobias Hector, AMD
- Jan-Harald Fredriksen, Arm
- Daniel Story, Nintendo
- Connor Abbot, Valve
- Hans-Kristian Arntzen, Valve
- Matthew Netsch, Qualcomm
- Jeff Bolz, NVIDIA
- Alyssa Rosenzweig, Valve
- Lionel Landerwerlin, Intel
- Baldur Karlsson, Valve
- Faith Ekstrand, Collabora
- Slawomir Grajewski, Intel
- Mike Blumenkrantz, Valve
- Yiwei Zhang, Google
- Stu Smith, AMD
- Piers Daniell, NVIDIA
- Jon Leech, Khronos
- Rodrigo Locatti, NVIDIA
- Krzysztof Niski, NVIDIA
- Alan Baker, Google
- James Fitzpatrick, Imagination
- Samuel (Sheng-Wen) Huang, Mediatek
- Hai Nguyen, Google
- Jeff Leger, Qualcomm
- Marty Johnson, Khronos
- Tom Olson, Arm
- Chris Glover, Google
- Daniel Koch, NVIDIA
- Robert Simpson, Qualcomm
- Dan Ginsburg, Valve
- Andreas Süßenbach, NVIDIA
- Anna Maniscalco, Valve
- Artem Kharytoniuk, LunarG
- Younggwan Kim, Arm
- Konstantin Seurer, Valve
- Catarina Shablia, Collabora
- Spencer Fricke, LunarG
- Chris Bieneman, Microsoft
- Ting Wei, Arm
- Boris Zanin, AMD
- Samuel Pitoiset, Valve
- Erik Hogeman, Arm
- Jesse Natalie, Microsoft
- Guang Xu, AMD
- Embla Flatlandsmo, Arm
- Interactions and External Dependencies
- VK_KHR_shader_untyped_pointers must be supported, but it does not need to be enabled for applications using only the binding interface.
Description
This extension allows explicit management of descriptors, and the memory used to store descriptors, conceptualised as descriptor heaps. Descriptor heap memory can be accessed as any other memory, enabling management of descriptors on both CPU and the GPU.
This extension was developed based on issues discovered with VK_EXT_descriptor_buffer. There are more constraints on how it is implemented, to provide more portable guarantees and more predictable performance characteristics. For instance, rather than an arbitrary number of sampler or resource buffers, there is exactly one sampler heap and exactly one resource heap.
This extension also eliminates descriptor sets and pipeline layouts completely; instead applications can look descriptors up solely by their offset into a heap. Shaders still using descriptor set and binding decorations can still be mapped to heaps through an API that maps set and binding decorations to heap offsets, either as constants or through push data. This new mapping API also enables a much more straightforward mapping to HLSL shaders using the root signature and descriptor table interfaces.
The push constant API has also been replaced with the push data interface, which aims to provide much more clarity about how data is passed to the shader, without requiring any mapping information to be provided during pipeline or shader creation. Mappings are still available for shaders written for the legacy interface.
There is also a much clearer path for mapping shader constant data, with two recommended options for mapping constant data through push data; either directly in push data, or through a device address stored in push data, both of which can be mapped to shaders with set and binding interfaces.
New Object Types
New Commands
cmdBindSamplerHeapEXTcmdPushDataEXTgetImageOpaqueCaptureDataEXTgetPhysicalDeviceDescriptorSizeEXTwriteResourceDescriptorsEXTwriteSamplerDescriptorsEXT
If VK_ARM_tensors is supported:
If VK_EXT_custom_border_color is supported:
New Structures
DescriptorMappingSourceConstantOffsetEXTDescriptorMappingSourceHeapDataEXTDescriptorMappingSourceIndirectAddressEXTDescriptorMappingSourceIndirectIndexArrayEXTDescriptorMappingSourceIndirectIndexEXTDescriptorMappingSourcePushIndexEXTDescriptorMappingSourceShaderRecordIndexEXTDescriptorSetAndBindingMappingEXTDeviceAddressRangeEXTHostAddressRangeConstEXTHostAddressRangeEXTImageDescriptorInfoEXTPushDataInfoEXTResourceDescriptorInfoEXTTensorViewCreateInfoARMTexelBufferDescriptorInfoEXTExtending
CommandBufferInheritanceInfo:Extending
ImageCreateInfo,TensorCreateInfoARM:Extending
PhysicalDeviceFeatures2,DeviceCreateInfo:Extending
PhysicalDeviceProperties2:Extending
PipelineShaderStageCreateInfo,ShaderCreateInfoEXT:
If VK_ARM_tensors is supported:
If VK_EXT_custom_border_color is supported:
If VK_EXT_fragment_density_map is supported:
If VK_NV_device_generated_commands is supported:
New Unions
New Enums
New Bitmasks
New Enum Constants
EXT_DESCRIPTOR_HEAP_SPEC_VERSIONExtending
AccessFlagBits2:Extending
BufferUsageFlagBits:Extending
BufferUsageFlagBits2:Extending
ImageCreateFlagBits:Extending
PipelineCreateFlagBits2:Extending
StructureType:STRUCTURE_TYPE_BIND_HEAP_INFO_EXTSTRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_DESCRIPTOR_HEAP_INFO_EXTSTRUCTURE_TYPE_DESCRIPTOR_SET_AND_BINDING_MAPPING_EXTSTRUCTURE_TYPE_IMAGE_DESCRIPTOR_INFO_EXTSTRUCTURE_TYPE_OPAQUE_CAPTURE_DATA_CREATE_INFO_EXTSTRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_HEAP_FEATURES_EXTSTRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_HEAP_PROPERTIES_EXTSTRUCTURE_TYPE_PUSH_DATA_INFO_EXTSTRUCTURE_TYPE_RESOURCE_DESCRIPTOR_INFO_EXTSTRUCTURE_TYPE_SHADER_DESCRIPTOR_SET_AND_BINDING_MAPPING_INFO_EXTSTRUCTURE_TYPE_TEXEL_BUFFER_DESCRIPTOR_INFO_EXT
If VK_ARM_tensors is supported:
Extending
SpirvResourceTypeFlagBitsEXT:Extending
StructureType:Extending
TensorCreateFlagBitsARM:
If VK_EXT_custom_border_color is supported:
If VK_EXT_device_generated_commands is supported:
Extending
IndirectCommandsTokenTypeEXT:
If VK_EXT_fragment_density_map is supported:
If VK_EXT_shader_object is supported:
If VK_KHR_ray_tracing_pipeline or VK_NV_ray_tracing is supported:
Extending
DescriptorMappingSourceEXT:Extending
SpirvResourceTypeFlagBitsEXT:
If VK_NV_device_generated_commands is supported:
Extending
IndirectCommandsTokenTypeNV:Extending
StructureType:
Version History
Revision 1, 2024-06-12 (Tobias Hector)
- Initial revision.
See Also
No cross-references are available
Document Notes
For more information, see the Vulkan Specification.
This page is a generated document. Fixes and changes should be made to the generator scripts, not directly.
Synopsis
- writeSamplerDescriptorsEXT :: MonadIO io => Device -> ("samplers" ::: Vector (SomeStruct SamplerCreateInfo)) -> ("descriptors" ::: Vector HostAddressRangeEXT) -> io ()
- writeResourceDescriptorsEXT :: MonadIO io => Device -> ("resources" ::: Vector (SomeStruct ResourceDescriptorInfoEXT)) -> ("descriptors" ::: Vector HostAddressRangeEXT) -> io ()
- cmdBindSamplerHeapEXT :: MonadIO io => CommandBuffer -> ("bindInfo" ::: BindHeapInfoEXT) -> io ()
- cmdBindResourceHeapEXT :: MonadIO io => CommandBuffer -> ("bindInfo" ::: BindHeapInfoEXT) -> io ()
- cmdPushDataEXT :: forall (a :: [Type]) io. (Extendss PushDataInfoEXT a, PokeChain a, MonadIO io) => CommandBuffer -> PushDataInfoEXT a -> io ()
- registerCustomBorderColorEXT :: MonadIO io => Device -> SamplerCustomBorderColorCreateInfoEXT -> ("requestIndex" ::: Bool) -> io ("index" ::: Word32)
- unregisterCustomBorderColorEXT :: MonadIO io => Device -> ("index" ::: Word32) -> io ()
- getImageOpaqueCaptureDataEXT :: MonadIO io => Device -> ("images" ::: Vector Image) -> io ("datas" ::: Vector HostAddressRangeEXT)
- getPhysicalDeviceDescriptorSizeEXT :: MonadIO io => PhysicalDevice -> DescriptorType -> io DeviceSize
- getTensorOpaqueCaptureDataARM :: MonadIO io => Device -> ("tensors" ::: Vector TensorARM) -> io ("datas" ::: Vector HostAddressRangeEXT)
- data HostAddressRangeEXT = HostAddressRangeEXT {}
- data HostAddressRangeConstEXT = HostAddressRangeConstEXT {}
- data DeviceAddressRangeEXT = DeviceAddressRangeEXT {}
- data TexelBufferDescriptorInfoEXT = TexelBufferDescriptorInfoEXT {}
- data ImageDescriptorInfoEXT = ImageDescriptorInfoEXT {}
- data ResourceDescriptorInfoEXT (es :: [Type]) = ResourceDescriptorInfoEXT {
- next :: Chain es
- type' :: DescriptorType
- data' :: ResourceDescriptorDataEXT
- data BindHeapInfoEXT = BindHeapInfoEXT {}
- data PushDataInfoEXT (es :: [Type]) = PushDataInfoEXT {}
- data DescriptorMappingSourceConstantOffsetEXT = DescriptorMappingSourceConstantOffsetEXT {}
- data DescriptorMappingSourcePushIndexEXT = DescriptorMappingSourcePushIndexEXT {}
- data DescriptorMappingSourceIndirectIndexEXT = DescriptorMappingSourceIndirectIndexEXT {
- heapOffset :: Word32
- pushOffset :: Word32
- addressOffset :: Word32
- heapIndexStride :: Word32
- heapArrayStride :: Word32
- embeddedSampler :: Maybe (SomeStruct SamplerCreateInfo)
- useCombinedImageSamplerIndex :: Bool
- samplerHeapOffset :: Word32
- samplerPushOffset :: Word32
- samplerAddressOffset :: Word32
- samplerHeapIndexStride :: Word32
- samplerHeapArrayStride :: Word32
- data DescriptorMappingSourceIndirectIndexArrayEXT = DescriptorMappingSourceIndirectIndexArrayEXT {}
- data DescriptorMappingSourceHeapDataEXT = DescriptorMappingSourceHeapDataEXT {
- heapOffset :: Word32
- pushOffset :: Word32
- data DescriptorMappingSourceShaderRecordIndexEXT = DescriptorMappingSourceShaderRecordIndexEXT {
- heapOffset :: Word32
- shaderRecordOffset :: Word32
- heapIndexStride :: Word32
- heapArrayStride :: Word32
- embeddedSampler :: Maybe (SomeStruct SamplerCreateInfo)
- useCombinedImageSamplerIndex :: Bool
- samplerHeapOffset :: Word32
- samplerShaderRecordOffset :: Word32
- samplerHeapIndexStride :: Word32
- samplerHeapArrayStride :: Word32
- data DescriptorMappingSourceIndirectAddressEXT = DescriptorMappingSourceIndirectAddressEXT {}
- data DescriptorSetAndBindingMappingEXT (es :: [Type]) = DescriptorSetAndBindingMappingEXT {}
- data ShaderDescriptorSetAndBindingMappingInfoEXT = ShaderDescriptorSetAndBindingMappingInfoEXT {}
- data SamplerCustomBorderColorIndexCreateInfoEXT = SamplerCustomBorderColorIndexCreateInfoEXT {}
- data OpaqueCaptureDataCreateInfoEXT = OpaqueCaptureDataCreateInfoEXT {}
- data IndirectCommandsLayoutPushDataTokenNV = IndirectCommandsLayoutPushDataTokenNV {}
- data SubsampledImageFormatPropertiesEXT = SubsampledImageFormatPropertiesEXT {}
- data PhysicalDeviceDescriptorHeapFeaturesEXT = PhysicalDeviceDescriptorHeapFeaturesEXT {}
- data PhysicalDeviceDescriptorHeapPropertiesEXT = PhysicalDeviceDescriptorHeapPropertiesEXT {
- samplerHeapAlignment :: DeviceSize
- resourceHeapAlignment :: DeviceSize
- maxSamplerHeapSize :: DeviceSize
- maxResourceHeapSize :: DeviceSize
- minSamplerHeapReservedRange :: DeviceSize
- minSamplerHeapReservedRangeWithEmbedded :: DeviceSize
- minResourceHeapReservedRange :: DeviceSize
- samplerDescriptorSize :: DeviceSize
- imageDescriptorSize :: DeviceSize
- bufferDescriptorSize :: DeviceSize
- samplerDescriptorAlignment :: DeviceSize
- imageDescriptorAlignment :: DeviceSize
- bufferDescriptorAlignment :: DeviceSize
- maxPushDataSize :: DeviceSize
- imageCaptureReplayOpaqueDataSize :: Word64
- maxDescriptorHeapEmbeddedSamplers :: Word32
- samplerYcbcrConversionCount :: Word32
- sparseDescriptorHeaps :: Bool
- protectedDescriptorHeaps :: Bool
- data CommandBufferInheritanceDescriptorHeapInfoEXT = CommandBufferInheritanceDescriptorHeapInfoEXT {}
- data PhysicalDeviceDescriptorHeapTensorPropertiesARM = PhysicalDeviceDescriptorHeapTensorPropertiesARM {}
- data ResourceDescriptorDataEXT
- data DescriptorMappingSourceDataEXT
- = ConstantOffset DescriptorMappingSourceConstantOffsetEXT
- | PushIndex DescriptorMappingSourcePushIndexEXT
- | IndirectIndex DescriptorMappingSourceIndirectIndexEXT
- | IndirectIndexArray DescriptorMappingSourceIndirectIndexArrayEXT
- | HeapData DescriptorMappingSourceHeapDataEXT
- | PushDataOffset Word32
- | PushAddressOffset Word32
- | IndirectAddress DescriptorMappingSourceIndirectAddressEXT
- | ShaderRecordIndex DescriptorMappingSourceShaderRecordIndexEXT
- | ShaderRecordDataOffset Word32
- | ShaderRecordAddressOffset Word32
- newtype DescriptorMappingSourceEXT where
- DescriptorMappingSourceEXT Int32
- pattern DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_CONSTANT_OFFSET_EXT :: DescriptorMappingSourceEXT
- pattern DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_PUSH_INDEX_EXT :: DescriptorMappingSourceEXT
- pattern DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_EXT :: DescriptorMappingSourceEXT
- pattern DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_ARRAY_EXT :: DescriptorMappingSourceEXT
- pattern DESCRIPTOR_MAPPING_SOURCE_RESOURCE_HEAP_DATA_EXT :: DescriptorMappingSourceEXT
- pattern DESCRIPTOR_MAPPING_SOURCE_PUSH_DATA_EXT :: DescriptorMappingSourceEXT
- pattern DESCRIPTOR_MAPPING_SOURCE_PUSH_ADDRESS_EXT :: DescriptorMappingSourceEXT
- pattern DESCRIPTOR_MAPPING_SOURCE_INDIRECT_ADDRESS_EXT :: DescriptorMappingSourceEXT
- pattern DESCRIPTOR_MAPPING_SOURCE_SHADER_RECORD_ADDRESS_EXT :: DescriptorMappingSourceEXT
- pattern DESCRIPTOR_MAPPING_SOURCE_SHADER_RECORD_DATA_EXT :: DescriptorMappingSourceEXT
- pattern DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_SHADER_RECORD_INDEX_EXT :: DescriptorMappingSourceEXT
- type SpirvResourceTypeFlagsEXT = SpirvResourceTypeFlagBitsEXT
- newtype SpirvResourceTypeFlagBitsEXT where
- SpirvResourceTypeFlagBitsEXT Flags
- pattern SPIRV_RESOURCE_TYPE_ALL_EXT :: SpirvResourceTypeFlagBitsEXT
- pattern SPIRV_RESOURCE_TYPE_SAMPLER_BIT_EXT :: SpirvResourceTypeFlagBitsEXT
- pattern SPIRV_RESOURCE_TYPE_SAMPLED_IMAGE_BIT_EXT :: SpirvResourceTypeFlagBitsEXT
- pattern SPIRV_RESOURCE_TYPE_READ_ONLY_IMAGE_BIT_EXT :: SpirvResourceTypeFlagBitsEXT
- pattern SPIRV_RESOURCE_TYPE_READ_WRITE_IMAGE_BIT_EXT :: SpirvResourceTypeFlagBitsEXT
- pattern SPIRV_RESOURCE_TYPE_COMBINED_SAMPLED_IMAGE_BIT_EXT :: SpirvResourceTypeFlagBitsEXT
- pattern SPIRV_RESOURCE_TYPE_UNIFORM_BUFFER_BIT_EXT :: SpirvResourceTypeFlagBitsEXT
- pattern SPIRV_RESOURCE_TYPE_READ_ONLY_STORAGE_BUFFER_BIT_EXT :: SpirvResourceTypeFlagBitsEXT
- pattern SPIRV_RESOURCE_TYPE_READ_WRITE_STORAGE_BUFFER_BIT_EXT :: SpirvResourceTypeFlagBitsEXT
- pattern SPIRV_RESOURCE_TYPE_TENSOR_BIT_ARM :: SpirvResourceTypeFlagBitsEXT
- pattern SPIRV_RESOURCE_TYPE_ACCELERATION_STRUCTURE_BIT_EXT :: SpirvResourceTypeFlagBitsEXT
- type EXT_DESCRIPTOR_HEAP_SPEC_VERSION = 1
- pattern EXT_DESCRIPTOR_HEAP_SPEC_VERSION :: Integral a => a
- type EXT_DESCRIPTOR_HEAP_EXTENSION_NAME = "VK_EXT_descriptor_heap"
- pattern EXT_DESCRIPTOR_HEAP_EXTENSION_NAME :: (Eq a, IsString a) => a
- newtype TensorARM = TensorARM Word64
- data SamplerCustomBorderColorCreateInfoEXT = SamplerCustomBorderColorCreateInfoEXT {}
- data TensorViewCreateInfoARM (es :: [Type]) = TensorViewCreateInfoARM {}
- newtype IndirectCommandsTokenTypeNV where
- IndirectCommandsTokenTypeNV Int32
- pattern INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NV :: IndirectCommandsTokenTypeNV
- pattern INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV :: IndirectCommandsTokenTypeNV
- pattern INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV :: IndirectCommandsTokenTypeNV
- pattern INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV :: IndirectCommandsTokenTypeNV
- pattern INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV :: IndirectCommandsTokenTypeNV
- pattern INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV :: IndirectCommandsTokenTypeNV
- pattern INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV :: IndirectCommandsTokenTypeNV
- pattern INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV :: IndirectCommandsTokenTypeNV
- pattern INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_DATA_NV :: IndirectCommandsTokenTypeNV
- pattern INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV :: IndirectCommandsTokenTypeNV
- pattern INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV :: IndirectCommandsTokenTypeNV
- pattern INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV :: IndirectCommandsTokenTypeNV
- newtype IndirectCommandsTokenTypeEXT where
- IndirectCommandsTokenTypeEXT Int32
- pattern INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_EXT :: IndirectCommandsTokenTypeEXT
- pattern INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_COUNT_EXT :: IndirectCommandsTokenTypeEXT
- pattern INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_EXT :: IndirectCommandsTokenTypeEXT
- pattern INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_COUNT_EXT :: IndirectCommandsTokenTypeEXT
- pattern INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_EXT :: IndirectCommandsTokenTypeEXT
- pattern INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_EXT :: IndirectCommandsTokenTypeEXT
- pattern INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_NV_EXT :: IndirectCommandsTokenTypeEXT
- pattern INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_EXT :: IndirectCommandsTokenTypeEXT
- pattern INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV_EXT :: IndirectCommandsTokenTypeEXT
- pattern INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT :: IndirectCommandsTokenTypeEXT
- pattern INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_EXT :: IndirectCommandsTokenTypeEXT
- pattern INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_EXT :: IndirectCommandsTokenTypeEXT
- pattern INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_DATA_EXT :: IndirectCommandsTokenTypeEXT
- pattern INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_DATA_SEQUENCE_INDEX_EXT :: IndirectCommandsTokenTypeEXT
- pattern INDIRECT_COMMANDS_TOKEN_TYPE_SEQUENCE_INDEX_EXT :: IndirectCommandsTokenTypeEXT
- pattern INDIRECT_COMMANDS_TOKEN_TYPE_TRACE_RAYS2_EXT :: IndirectCommandsTokenTypeEXT
- pattern INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_EXT :: IndirectCommandsTokenTypeEXT
- newtype ShaderCreateFlagBitsEXT where
- ShaderCreateFlagBitsEXT Flags
- pattern SHADER_CREATE_64_BIT_INDEXING_BIT_EXT :: ShaderCreateFlagBitsEXT
- pattern SHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT :: ShaderCreateFlagBitsEXT
- pattern SHADER_CREATE_DESCRIPTOR_HEAP_BIT_EXT :: ShaderCreateFlagBitsEXT
- pattern SHADER_CREATE_DISPATCH_BASE_BIT_EXT :: ShaderCreateFlagBitsEXT
- pattern SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT :: ShaderCreateFlagBitsEXT
- pattern SHADER_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_EXT :: ShaderCreateFlagBitsEXT
- pattern SHADER_CREATE_INDIRECT_BINDABLE_BIT_EXT :: ShaderCreateFlagBitsEXT
- pattern SHADER_CREATE_LINK_STAGE_BIT_EXT :: ShaderCreateFlagBitsEXT
- pattern SHADER_CREATE_NO_TASK_SHADER_BIT_EXT :: ShaderCreateFlagBitsEXT
- pattern SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT :: ShaderCreateFlagBitsEXT
- type ShaderCreateFlagsEXT = ShaderCreateFlagBitsEXT
- newtype TensorCreateFlagBitsARM where
- TensorCreateFlagBitsARM Flags64
- pattern TENSOR_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_ARM :: TensorCreateFlagBitsARM
- pattern TENSOR_CREATE_DESCRIPTOR_HEAP_CAPTURE_REPLAY_BIT_ARM :: TensorCreateFlagBitsARM
- pattern TENSOR_CREATE_MUTABLE_FORMAT_BIT_ARM :: TensorCreateFlagBitsARM
- pattern TENSOR_CREATE_PROTECTED_BIT_ARM :: TensorCreateFlagBitsARM
- type TensorCreateFlagsARM = TensorCreateFlagBitsARM
- newtype TensorViewCreateFlagBitsARM where
- type TensorViewCreateFlagsARM = TensorViewCreateFlagBitsARM
Documentation
writeSamplerDescriptorsEXT Source #
Arguments
| :: MonadIO io | |
| => Device |
|
| -> ("samplers" ::: Vector (SomeStruct SamplerCreateInfo)) |
|
| -> ("descriptors" ::: Vector HostAddressRangeEXT) |
|
| -> io () |
vkWriteSamplerDescriptorsEXT - Write sampler descriptors to memory
Description
Each descriptor will be written to pDescriptors[i].address where i
is the index of its create info in pSamplers.
Descriptors written using a fully identical
SamplerCreateInfo structure on the same
Device will always return the same bit pattern.
If the
descriptorHeapCaptureReplay
feature is enabled, descriptors written using a fully identical
SamplerCreateInfo structure on a
Device created from the same
PhysicalDevice with identical parameters will
always return the same bit pattern.
YCBCR samplers must be embedded in a shader by using
ShaderDescriptorSetAndBindingMappingInfoEXT, they cannot be specified
here.
Valid Usage
- The descriptorHeap feature must be enabled
- The
sizemember of each element ofpDescriptorsmust be greater than or equal to the value returned bygetPhysicalDeviceDescriptorSizeEXTwith adescriptorTypeequal toDESCRIPTOR_TYPE_SAMPLER - Elements of
pSamplersmust not includeSamplerYcbcrConversionInfostructures in theirpNextchains - If the
borderColorof any element ofpSamplersisBORDER_COLOR_FLOAT_CUSTOM_EXTorBORDER_COLOR_INT_CUSTOM_EXT,SamplerCustomBorderColorIndexCreateInfoEXTmust be included in thepNextchain of that element - If the
borderColorof any element ofpSamplersisBORDER_COLOR_FLOAT_CUSTOM_EXTorBORDER_COLOR_INT_CUSTOM_EXT,SamplerCustomBorderColorIndexCreateInfoEXT::indexmust be a value less than maxCustomBorderColorSamplers - If there is a
DebugUtilsObjectNameInfoEXTstructure in thepNextchain of any element ofpSamplers, itsobjectTypemust beOBJECT_TYPE_UNKNOWN
Valid Usage (Implicit)
-
devicemust be a validDevicehandle
-
pSamplersmust be a valid pointer to an array ofsamplerCountvalidSamplerCreateInfostructures -
pDescriptorsmust be a valid pointer to an array ofsamplerCountvalidHostAddressRangeEXTstructures -
samplerCountmust be greater than0
Return Codes
See Also
VK_EXT_descriptor_heap,
Device, HostAddressRangeEXT,
SamplerCreateInfo
writeResourceDescriptorsEXT Source #
Arguments
| :: MonadIO io | |
| => Device |
|
| -> ("resources" ::: Vector (SomeStruct ResourceDescriptorInfoEXT)) |
|
| -> ("descriptors" ::: Vector HostAddressRangeEXT) |
|
| -> io () |
vkWriteResourceDescriptorsEXT - Write resource descriptors to memory
Description
Each descriptor will be written to pDescriptors[i].address where i is
the index of its create info in pResources.
If any image descriptor written by this command includes a
SamplerYcbcrConversion, multiple descriptors
will be written adjacent to each other for that descriptor, equal to
SamplerYcbcrConversionImageFormatProperties::combinedImageSamplerDescriptorCount
for the image.
If any image descriptor written by this command is for an image created
with flags containing
IMAGE_CREATE_SUBSAMPLED_BIT_EXT,
multiple descriptors will be written adjacent to each other for that
descriptor, equal to
SubsampledImageFormatPropertiesEXT::subsampledImageDescriptorCount for
the image.
Descriptors using the same type and written using a fully identical
TexelBufferDescriptorInfoEXT or DeviceAddressRangeEXT structure on
the same Device will always return the same bit
pattern. If the
descriptorHeapCaptureReplay
feature is enabled, this applies to any Device
created with identical parameters from the same
PhysicalDevice.
Recreating the same buffer descriptor during replay of a prior capture requires that the device address is the same, which requires additional data to be captured and provided during replay when creating a buffer and allocating memory for it.
Image descriptors using the same type and written using a fully
identical ImageDescriptorInfoEXT other than
ImageDescriptorInfoEXT::pView->image, where image was successfully
created with
IMAGE_CREATE_DESCRIPTOR_HEAP_CAPTURE_REPLAY_BIT_EXT
and a OpaqueCaptureDataCreateInfoEXT with data captured via
getImageOpaqueCaptureDataEXT from an image used previously, will write
a descriptor with the same bit pattern if possible; if the same bit
pattern cannot be generated,
ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS will
be returned instead.
Tensor descriptors using the same type and written using a fully
identical TensorViewCreateInfoARM
other than
TensorViewCreateInfoARM::tensor,
where tensor was successfully created with
OpaqueCaptureDataCreateInfoEXT with
TENSOR_CREATE_DESCRIPTOR_HEAP_CAPTURE_REPLAY_BIT_ARM
and a OpaqueCaptureDataCreateInfoEXT with data captured via
getTensorOpaqueCaptureDataARM from a tensor used previously, will
write a descriptor with the same bit pattern if possible; if the same
bit pattern cannot be generated,
ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS will
be returned instead.
Image creation is sufficiently complex that it may not be possible to recreate all possible descriptors from an image during replay, even if the image itself was successfully recreated. The conditions for this happening will be largely the same as those which could cause allocating a buffer with the same device address during replay to fail. Replay tools are advised to recreate captured descriptors for an image immediately after recreating the image itself wherever possible. The same is true for tensors.
Valid Usage
- The descriptorHeap feature must be enabled
- The
sizemember of each element ofpDescriptorsmust be greater than or equal to the value returned bygetPhysicalDeviceDescriptorSizeEXTwith adescriptorTypeequal totype - If any element
of
pResourcesspecifies aImageViewCreateInfostructure with aSamplerYcbcrConversionInfostructure in itspNextchain, the corresponding element ofpDescriptorsmust have asizemember that is greater than or equal to the product of the value returned bygetPhysicalDeviceDescriptorSizeEXTwith adescriptorTypeequal totypeandSamplerYcbcrConversionImageFormatProperties::combinedImageSamplerDescriptorCount, as queried fromPhysicalDeviceImageFormatInfo2with image format info equivalent to the image view the descriptor is being created for - If any element
of
pResourcesspecifies aImageViewCreateInfostructure with animagecreated withflagscontainingIMAGE_CREATE_SUBSAMPLED_BIT_EXT, the corresponding element ofpDescriptorsmust have asizemember that is greater than or equal to the product of the value returned bygetPhysicalDeviceDescriptorSizeEXTwith adescriptorTypeequal totypeandSubsampledImageFormatPropertiesEXT::subsampledImageDescriptorCount, as queried fromPhysicalDeviceImageFormatInfo2with image format info equivalent to the image view the descriptor is being created for
Valid Usage (Implicit)
-
devicemust be a validDevicehandle
-
pResourcesmust be a valid pointer to an array ofresourceCountvalidResourceDescriptorInfoEXTstructures -
pDescriptorsmust be a valid pointer to an array ofresourceCountvalidHostAddressRangeEXTstructures -
resourceCountmust be greater than0
Return Codes
See Also
VK_EXT_descriptor_heap,
Device, HostAddressRangeEXT,
ResourceDescriptorInfoEXT
cmdBindSamplerHeapEXT Source #
Arguments
| :: MonadIO io | |
| => CommandBuffer |
|
| -> ("bindInfo" ::: BindHeapInfoEXT) |
|
| -> io () |
vkCmdBindSamplerHeapEXT - Binds a sampler heap to a command buffer
Description
Addresses in the range defined by pBindInfo->heapRange are bound as
the sampler heap. The application can access samplers and data through
this heap anywhere except for the reserved range specified by
pBindInfo->reservedRangeOffset. Addresses in the range
[pBindInfo->reservedRangeOffset, pBindInfo->reservedRangeOffset +
minSamplerHeapReservedRange),
or in the range [pBindInfo->reservedRangeOffset,
pBindInfo->reservedRangeOffset +
minSamplerHeapReservedRangeWithEmbedded)
if embedded samplers will be used, are reserved for the implementation
and must not be accessed by the application at any time from when this
command is recorded until all command buffers with that range bound
(even invalid ones) have been reset or freed.
Implementations may require a larger sampler heap reservation to store embedded sampler descriptors when used in a mapping, as advertised by minSamplerHeapReservedRangeWithEmbedded.
Shaders executed by commands recorded after this command can use the
specified sampler heap to access resources.
pBindInfo->heapRange.address will be available to shaders to access
samplers and data through the SamplerHeapEXT BuiltIn or via
shader bindings.
When cmdBindSamplerHeapEXT is recorded, it
immediately invalidates all non-heap descriptor state.
Similarly, recording any non-heap descriptor state commands immediately
invalidates state set by this command.
Valid Usage
- The sum of
pBindInfo->reservedRangeOffsetandpBindInfo->reservedRangeSizemust be less than or equal topBindInfo->heapRange.size
-
pBindInfo->reservedRangeSizemust be greater than or equal to minSamplerHeapReservedRange -
pBindInfo->heapRange.sizemust less than or equal to maxSamplerHeapSize -
pBindInfo->heapRange.addressmust be a multiple of samplerHeapAlignment -
pBindInfo->reservedRangeOffsetmust be a multiple of samplerDescriptorAlignment - Memory bound to
addresses in the range [
pBindInfo->heapRange.address+pBindInfo->reservedRangeOffset,pBindInfo->heapRange.address+pBindInfo->reservedRangeOffset+pBindInfo->reservedRangeSize) must not be bound to any other command buffer as a reserved range for any heap unless the reserved range matches exactly and it is the same heap type -
heapRangemust be a device address range allocated to the application from a buffer created with theBUFFER_USAGE_DESCRIPTOR_HEAP_BIT_EXTusage flag set - If
commandBufferis a secondary command buffer, it must have begun withCommandBufferInheritanceDescriptorHeapInfoEXT::pSamplerHeapBindInfoequal toNULL
Valid Usage (Implicit)
-
commandBuffermust be a validCommandBufferhandle
-
pBindInfomust be a valid pointer to a validBindHeapInfoEXTstructure -
commandBuffermust be in the recording state - The
CommandPoolthatcommandBufferwas allocated from must supportQUEUE_COMPUTE_BIT, orQUEUE_GRAPHICS_BIToperations - This command must only be called outside of a video coding scope
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 | VK_QUEUE_COMPUTE_BIT VK_QUEUE_GRAPHICS_BIT | State |
Conditional Rendering
vkCmdBindSamplerHeapEXT is not affected by conditional rendering
See Also
cmdBindResourceHeapEXT Source #
Arguments
| :: MonadIO io | |
| => CommandBuffer |
|
| -> ("bindInfo" ::: BindHeapInfoEXT) |
|
| -> io () |
vkCmdBindResourceHeapEXT - Binds a resource heap to a command buffer
Description
Addresses in the range defined by pBindInfo->heapRange are bound as
the resource heap. The application can access resources and data
through this heap anywhere except for the reserved range specified by
pBindInfo->reservedRangeOffset. Addresses in the range
[pBindInfo->reservedRangeOffset, pBindInfo->reservedRangeOffset +
minResourceHeapReservedRange)
are reserved for the implementation and must not be accessed by the
application at any time from when this command is recorded until there
are no command buffers with that range bound.
Shaders executed by commands recorded after this command can use the
specified resource heap to access resources.
pBindInfo->heapRange.address will be available to shaders to access
resources through the ResourceHeapEXT BuiltIn or via
shader bindings.
When cmdBindResourceHeapEXT is recorded, it
immediately invalidates all non-heap descriptor state.
Similarly, recording any non-heap descriptor state commands immediately
invalidates state set by this command.
Valid Usage
- The sum of
pBindInfo->reservedRangeOffsetandpBindInfo->reservedRangeSizemust be less than or equal topBindInfo->heapRange.size
-
pBindInfo->reservedRangeSizemust be greater than or equal to minResourceHeapReservedRange -
pBindInfo->heapRange.sizemust less than or equal to maxResourceHeapSize -
pBindInfo->heapRange.addressmust be a multiple of resourceHeapAlignment -
pBindInfo->reservedRangeOffsetmust be a multiple of bufferDescriptorAlignment -
pBindInfo->reservedRangeOffsetmust be a multiple of imageDescriptorAlignment - Memory bound to
addresses in the range [
pBindInfo->heapRange.address+pBindInfo->reservedRangeOffset,pBindInfo->heapRange.address+pBindInfo->reservedRangeOffset+pBindInfo->reservedRangeSize) must not be bound to any other command buffer as a reserved range for any heap unless the reserved range matches exactly and it is the same heap type -
heapRangemust be a device address range allocated to the application from a buffer created with theBUFFER_USAGE_DESCRIPTOR_HEAP_BIT_EXTusage flag set - If
commandBufferis a secondary command buffer, it must have begun withCommandBufferInheritanceDescriptorHeapInfoEXT::pResourceHeapBindInfoequal toNULL
Valid Usage (Implicit)
-
commandBuffermust be a validCommandBufferhandle
-
pBindInfomust be a valid pointer to a validBindHeapInfoEXTstructure -
commandBuffermust be in the recording state - The
CommandPoolthatcommandBufferwas allocated from must supportQUEUE_COMPUTE_BIT, orQUEUE_GRAPHICS_BIToperations - This command must only be called outside of a video coding scope
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 | VK_QUEUE_COMPUTE_BIT VK_QUEUE_GRAPHICS_BIT | State |
Conditional Rendering
vkCmdBindResourceHeapEXT is not affected by conditional rendering
See Also
Arguments
| :: forall (a :: [Type]) io. (Extendss PushDataInfoEXT a, PokeChain a, MonadIO io) | |
| => CommandBuffer |
|
| -> PushDataInfoEXT a |
|
| -> io () |
vkCmdPushDataEXT - Update the values of push data
Description
When cmdPushDataEXT is recorded, it
immediately invalidates all non-heap descriptor state.
Similarly, recording any non-heap descriptor state commands immediately
invalidates state set by this command.
All push data is available to all shaders using the existing
PushConstant Storage Class.
Device addresses in push data are intended as the fast path for
shader-constant data that does not fit into push data directly. In order
to maximize performance of constant data inputs, addresses should be
aligned to
minUniformBufferOffsetAlignment,
and decorated with Alignment and NonWritable in the shader when
using physical pointers.
Valid Usage (Implicit)
-
commandBuffermust be a validCommandBufferhandle
-
pPushDataInfomust be a valid pointer to a validPushDataInfoEXTstructure -
commandBuffermust be in the recording state - The
CommandPoolthatcommandBufferwas allocated from must supportQUEUE_COMPUTE_BIT, orQUEUE_GRAPHICS_BIToperations - This command must only be called outside of a video coding scope
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 | VK_QUEUE_COMPUTE_BIT VK_QUEUE_GRAPHICS_BIT | State |
Conditional Rendering
vkCmdPushDataEXT is not affected by conditional rendering
See Also
registerCustomBorderColorEXT Source #
Arguments
| :: MonadIO io | |
| => Device |
|
| -> SamplerCustomBorderColorCreateInfoEXT |
|
| -> ("requestIndex" ::: Bool) |
|
| -> io ("index" ::: Word32) |
vkRegisterCustomBorderColorEXT - Register a custom border color
Description
If requestIndex is TRUE, the value
present in pIndex when passed to the command is a requested index, and
rather than returning a new index, the implementation will attempt to
register that index, leaving the value intact. If the implementation is
unable to register a requested index,
ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS will
be returned. If an index has not been registered (either explicitly or
implicitly by creating a sampler object), or if it has been subsequently
unregistered, the implementation must register that index
successfully.
If requestIndex is FALSE, the value
stored in pIndex is ignored, and a new index will be returned if the
implementation is able to register a new index. If the implementation is
unable to register a new index,
ERROR_TOO_MANY_OBJECTS will be returned.
If an index is successfully registered, it can be used when writing a
sampler descriptor or creating a sampler object to use with the custom
border color, via SamplerCustomBorderColorIndexCreateInfoEXT.
The type of border color is not specified by this command
(BORDER_COLOR_FLOAT_CUSTOM_EXT vs.
BORDER_COLOR_INT_CUSTOM_EXT); the data
will be interpreted at the point the border color is sampled with an
actual sampler. Implementations are expected to store the data as raw
bytes if they do not need the format to be specified.
Valid Usage
- If
requestIndexisTRUE, the value stored inpIndexmust be less than maxCustomBorderColorSamplers
Valid Usage (Implicit)
-
devicemust be a validDevicehandle
-
pBorderColormust be a valid pointer to a validSamplerCustomBorderColorCreateInfoEXTstructure -
pIndexmust be a valid pointer to auint32_tvalue
Return Codes
See Also
VK_EXT_custom_border_color,
VK_EXT_descriptor_heap,
Bool32, Device,
SamplerCustomBorderColorCreateInfoEXT
unregisterCustomBorderColorEXT Source #
Arguments
| :: MonadIO io | |
| => Device |
|
| -> ("index" ::: Word32) |
|
| -> io () |
vkUnregisterCustomBorderColorEXT - Unregister a custom border color
Valid Usage (Implicit)
See Also
getImageOpaqueCaptureDataEXT Source #
Arguments
| :: MonadIO io | |
| => Device |
|
| -> ("images" ::: Vector Image) |
|
| -> io ("datas" ::: Vector HostAddressRangeEXT) |
vkGetImageOpaqueCaptureDataEXT - Get image opaque capture descriptor data for descriptor heap replay
Valid Usage
- The descriptorHeapCaptureReplay feature must be enabled
- The
sizemember of each element ofpDatasmust be equal to imageCaptureReplayOpaqueDataSize - If
devicewas created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled - Each element of
pImagesmust have been created withIMAGE_CREATE_DESCRIPTOR_HEAP_CAPTURE_REPLAY_BIT_EXTset inImageCreateInfo::flags
Valid Usage (Implicit)
-
devicemust be a validDevicehandle
-
pImagesmust be a valid pointer to an array ofimageCountvalidImagehandles -
pDatasmust be a valid pointer to an array ofimageCountHostAddressRangeEXTstructures -
imageCountmust be greater than0 - Each element of
pImagesmust have been created, allocated, or retrieved fromdevice
Return Codes
See Also
getPhysicalDeviceDescriptorSizeEXT Source #
Arguments
| :: MonadIO io | |
| => PhysicalDevice |
|
| -> DescriptorType |
|
| -> io DeviceSize |
vkGetPhysicalDeviceDescriptorSizeEXT - Report specific descriptor sizes for each descriptor type
Description
The return value of this function will be a
DeviceSize indicating the size in bytes
(N) of a heap descriptor with a type equal to descriptorType. When a
descriptor of this type is written by writeResourceDescriptorsEXT or
writeSamplerDescriptorsEXT, only the first N bytes are written; the
rest will not be accessed and can be safely discarded when copying
descriptors around. Additionally, those first N bytes are the only bytes
that will be accessed when the descriptor is accessed in the shader. N
will never be larger than the applicable limits in
PhysicalDeviceDescriptorHeapTensorPropertiesARM or
PhysicalDeviceDescriptorHeapPropertiesEXT.
Values returned by this function have other requirements, so for example may not be power-of-two values.
This command is not intended for general use, and is for tools that
already take advantage of tighter packing with other similar features
(e.g. VK_EXT_descriptor_buffer) to optimize accesses in some cases.
Applications can safely ignore this function and are advised to do so,
to avoid depending on non-portable packing.
Valid Usage (Implicit)
See Also
getTensorOpaqueCaptureDataARM Source #
Arguments
| :: MonadIO io | |
| => Device |
|
| -> ("tensors" ::: Vector TensorARM) |
|
| -> io ("datas" ::: Vector HostAddressRangeEXT) |
vkGetTensorOpaqueCaptureDataARM - Get tensor opaque capture descriptor data for descriptor heap replay
Valid Usage
- The descriptorHeapCaptureReplay feature must be enabled
- The
sizemember of each element ofpDatasmust be equal to tensorCaptureReplayOpaqueDataSize - If
devicewas created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled - Each element
of
pTensorsmust have been created withTENSOR_CREATE_DESCRIPTOR_HEAP_CAPTURE_REPLAY_BIT_ARMset inTensorCreateInfoARM::flags
Valid Usage (Implicit)
-
devicemust be a validDevicehandle
-
pTensorsmust be a valid pointer to an array oftensorCountvalidTensorARMhandles -
pDatasmust be a valid pointer to an array oftensorCountHostAddressRangeEXTstructures -
tensorCountmust be greater than0 - Each element
of
pTensorsmust have been created, allocated, or retrieved fromdevice
Return Codes
See Also
VK_ARM_tensors,
VK_EXT_descriptor_heap,
Device, HostAddressRangeEXT,
TensorARM
data HostAddressRangeEXT Source #
VkHostAddressRangeEXT - Structure specifying a host address range
Valid Usage (Implicit)
See Also
VK_EXT_descriptor_heap,
getImageOpaqueCaptureDataEXT, getTensorOpaqueCaptureDataARM,
writeResourceDescriptorsEXT, writeSamplerDescriptorsEXT
Constructors
| HostAddressRangeEXT | |
Instances
data HostAddressRangeConstEXT Source #
VkHostAddressRangeConstEXT - Structure specifying a constant host address range
Valid Usage (Implicit)
See Also
VK_EXT_descriptor_heap,
OpaqueCaptureDataCreateInfoEXT, PushDataInfoEXT
Constructors
| HostAddressRangeConstEXT | |
Instances
data DeviceAddressRangeEXT Source #
VkDeviceAddressRangeEXT - Structure specifying a device address range
Valid Usage
- The sum of
addressandsizemust be less than or equal to the sum of an address retrieved from aBufferand the value ofBufferCreateInfo::sizeused to create thatBuffer
Valid Usage (Implicit)
- If
addressis not0,addressmust be a validDeviceAddressvalue
See Also
VK_EXT_descriptor_heap,
BindHeapInfoEXT, DeviceAddress,
DeviceSize,
ResourceDescriptorDataEXT, TexelBufferDescriptorInfoEXT
Constructors
| DeviceAddressRangeEXT | |
Fields
| |
Instances
data TexelBufferDescriptorInfoEXT Source #
VkTexelBufferDescriptorInfoEXT - Structure describing an image descriptor created from a buffer
Valid Usage (Implicit)
See Also
VK_EXT_descriptor_heap,
DeviceAddressRangeEXT, Format,
ResourceDescriptorDataEXT,
StructureType
Constructors
| TexelBufferDescriptorInfoEXT | |
Fields
| |
Instances
data ImageDescriptorInfoEXT Source #
VkImageDescriptorInfoEXT - Structure describing an image descriptor created from an image
Valid Usage
-
pView->viewTypemust not beIMAGE_VIEW_TYPE_2D_ARRAYifpView->imagewas created with animageTypeofIMAGE_TYPE_3D
- If
pView->viewTypeisIMAGE_VIEW_TYPE_2DandpView->imagewas created with animageTypeofIMAGE_TYPE_3D,pView->imagemust have been created withIMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXTset -
layoutmust beIMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL,IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL,IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL,IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL,IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL,IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL,IMAGE_LAYOUT_READ_ONLY_OPTIMAL,IMAGE_LAYOUT_SHARED_PRESENT_KHR,IMAGE_LAYOUT_RENDERING_LOCAL_READ_KHR,IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT, orIMAGE_LAYOUT_GENERAL - If
layoutisIMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL,IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL,IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL,IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, orIMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, thenpView->aspectMaskmust not includeIMAGE_ASPECT_COLOR_BIT - If
pView->imageis a depth/stencil image,pView->subresourceRange.aspectMaskmust include eitherIMAGE_ASPECT_DEPTH_BITorIMAGE_ASPECT_STENCIL_BITbut not both
Valid Usage (Implicit)
-
sTypemust beSTRUCTURE_TYPE_IMAGE_DESCRIPTOR_INFO_EXT
-
pNextmust beNULL -
pViewmust be a valid pointer to a validImageViewCreateInfostructure -
layoutmust be a validImageLayoutvalue
See Also
VK_EXT_descriptor_heap,
ImageLayout,
ImageViewCreateInfo,
ResourceDescriptorDataEXT,
StructureType
Constructors
| ImageDescriptorInfoEXT | |
Fields
| |
Instances
| Show ImageDescriptorInfoEXT Source # | |
Defined in Vulkan.Extensions.VK_EXT_descriptor_heap Methods showsPrec :: Int -> ImageDescriptorInfoEXT -> ShowS # show :: ImageDescriptorInfoEXT -> String # showList :: [ImageDescriptorInfoEXT] -> ShowS # | |
| FromCStruct ImageDescriptorInfoEXT Source # | |
Defined in Vulkan.Extensions.VK_EXT_descriptor_heap Methods peekCStruct :: Ptr ImageDescriptorInfoEXT -> IO ImageDescriptorInfoEXT Source # | |
| ToCStruct ImageDescriptorInfoEXT Source # | |
Defined in Vulkan.Extensions.VK_EXT_descriptor_heap Methods withCStruct :: ImageDescriptorInfoEXT -> (Ptr ImageDescriptorInfoEXT -> IO b) -> IO b Source # pokeCStruct :: Ptr ImageDescriptorInfoEXT -> ImageDescriptorInfoEXT -> IO b -> IO b Source # withZeroCStruct :: (Ptr ImageDescriptorInfoEXT -> IO b) -> IO b Source # pokeZeroCStruct :: Ptr ImageDescriptorInfoEXT -> IO b -> IO b Source # cStructSize :: Int Source # | |
| Zero ImageDescriptorInfoEXT Source # | |
Defined in Vulkan.Extensions.VK_EXT_descriptor_heap Methods | |
data ResourceDescriptorInfoEXT (es :: [Type]) Source #
VkResourceDescriptorInfoEXT - Structure describing a resource descriptor
Description
If type is
DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER
or
DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER,
data->pTexelBuffer is used to construct the descriptor.
If type is
DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR,
DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV,
VK_DESCRIPTOR_TYPE_PARTITIONED_ACCELERATION_STRUCTURE_NV,
DESCRIPTOR_TYPE_UNIFORM_BUFFER, or
DESCRIPTOR_TYPE_STORAGE_BUFFER,
data->pAddressRange is used to construct the descriptor. For
acceleration structures, the size of the range is not used by the
descriptor, and can be set to 0. If a non-zero size is provided
though, it must be a valid range.
Applications may wish to provide a valid range as a way to check their own assumptions about the range they are binding; but it has no bearing on anything except validation. Implementations cannot make any assumptions based on the size of the provided range.
If type is
DESCRIPTOR_TYPE_SAMPLED_IMAGE,
DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM,
DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM,
DESCRIPTOR_TYPE_STORAGE_IMAGE, or
DESCRIPTOR_TYPE_INPUT_ATTACHMENT,
data->pImage is used to construct the descriptor. If type is
DESCRIPTOR_TYPE_TENSOR_ARM,
data->pTensorARM is used to construct the descriptor.
If the
nullDescriptor
feature is enabled, the corresponding element of data may be NULL
to generate a null descriptor.
Applications can give resource descriptors a debug name in a similar
way to naming an object, via the
DebugUtilsObjectNameInfoEXT
structure. However, as there is no actual object, this structure must
be passed via the pNext chain of this structure, with a objectType
of OBJECT_TYPE_UNKNOWN and a
objectHandle of NULL_HANDLE. The name is
attached to the unique set of descriptor bits written by the
implementation, and writing the same bits again with new debug info
may rename the original descriptor.
Implementations are not prevented from returning the same bits for different descriptors. This can result in multiple different resources mapping to the same name. A common case for this might be something like a uniform buffer and storage buffer with the same device address range.
If a descriptor becomes invalid due to the underlying resource becoming invalid, implementations may remove the name association.
Valid Usage
-
typemust be one ofDESCRIPTOR_TYPE_UNIFORM_BUFFER,DESCRIPTOR_TYPE_STORAGE_BUFFER,DESCRIPTOR_TYPE_SAMPLED_IMAGE,DESCRIPTOR_TYPE_STORAGE_IMAGE,DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER,DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER,DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM,DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM,DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR,DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV, VK_DESCRIPTOR_TYPE_PARTITIONED_ACCELERATION_STRUCTURE_NV,DESCRIPTOR_TYPE_TENSOR_ARM, orDESCRIPTOR_TYPE_INPUT_ATTACHMENT
- If the
nullDescriptor
feature is not enabled, and
typeisDESCRIPTOR_TYPE_SAMPLED_IMAGEorDESCRIPTOR_TYPE_STORAGE_IMAGE,data->pImagemust not beNULL - If
typeisDESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM,DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM, orDESCRIPTOR_TYPE_INPUT_ATTACHMENT,data->pImagemust not beNULL - If the
nullDescriptor
feature is not enabled, and
typeisDESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFERorDESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER,data->pTexelBuffermust not beNULL - If the
nullDescriptor
feature is not enabled, and
typeisDESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR,DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV, VK_DESCRIPTOR_TYPE_PARTITIONED_ACCELERATION_STRUCTURE_NV,DESCRIPTOR_TYPE_TENSOR_ARM,DESCRIPTOR_TYPE_UNIFORM_BUFFER, orDESCRIPTOR_TYPE_STORAGE_BUFFER,data->pAddressRangemust not beNULL - If the
nullDescriptor
feature is not enabled, and
typeisDESCRIPTOR_TYPE_TENSOR_ARM,data->pTensorARMmust not beNULL - If
typeisDESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFERorDESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER,data->pTexelBuffer->addressRange.addressmust be a multiple of the effective alignment requirement ofdata->pTexelBuffer->formatas determined by minTexelBufferOffsetAlignment - If
typeisDESCRIPTOR_TYPE_UNIFORM_BUFFER,data->pAddressRange->addressmust be a multiple of minUniformBufferOffsetAlignment - If
typeisDESCRIPTOR_TYPE_STORAGE_BUFFER,data->pAddressRange->addressmust be a multiple of minStorageBufferOffsetAlignment DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHRDESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NVVK_DESCRIPTOR_TYPE_PARTITIONED_ACCELERATION_STRUCTURE_NV
data->pAddressRange->addressmust be a multiple of 256
- If there is a
DebugUtilsObjectNameInfoEXTstructure in thepNextchain, itsobjectTypemust beOBJECT_TYPE_UNKNOWN - If
typeisDESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM,DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM, orDESCRIPTOR_TYPE_INPUT_ATTACHMENT,data.pImage->pView->imagemust not have been created with animageTypeofIMAGE_TYPE_3D - If
typeisDESCRIPTOR_TYPE_STORAGE_IMAGE,data.pImage->pView->viewTypeisIMAGE_VIEW_TYPE_2D, and the image2DViewOf3D feature is not enabled,data.pImage->pView->imagemust not have been created with animageTypeofIMAGE_TYPE_3D - If
typeisDESCRIPTOR_TYPE_SAMPLED_IMAGE,data.pImage->pView->viewTypeisIMAGE_VIEW_TYPE_2D, and the sampler2DViewOf3D feature is not enabled,data.pImage->pView->imagemust not have been created with animageTypeofIMAGE_TYPE_3D - If
typeisDESCRIPTOR_TYPE_STORAGE_BUFFERorDESCRIPTOR_TYPE_UNIFORM_BUFFER,data.pAddressRange->sizemust not be 0 - If
typeisDESCRIPTOR_TYPE_SAMPLED_IMAGEanddata.pImageis notNULL,data.pImage->pView->imagemust have been created with theIMAGE_USAGE_SAMPLED_BITusage flag set - If
typeisDESCRIPTOR_TYPE_STORAGE_IMAGEanddata.pImageis notNULL,data.pImage->pView->imagemust have been created with theIMAGE_USAGE_STORAGE_BITusage flag set - If
typeisDESCRIPTOR_TYPE_INPUT_ATTACHMENTanddata.pImageis notNULL,data.pImage->pView->imagemust have been created with theIMAGE_USAGE_INPUT_ATTACHMENT_BITusage flag set - If
typeisDESCRIPTOR_TYPE_UNIFORM_BUFFERanddata.pAddressRangeis notNULL,data.pAddressRangemust be a device address range allocated to the application from a buffer created with theBUFFER_USAGE_UNIFORM_BUFFER_BITusage flag set - If
typeisDESCRIPTOR_TYPE_STORAGE_BUFFERanddata.pAddressRangeis notNULL,data.pAddressRangemust be a device address range allocated to the application from a buffer created with theBUFFER_USAGE_STORAGE_BUFFER_BITusage flag set - If
typeisDESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFERanddata.pTexelBufferis notNULL,data.pTexelBuffer->addressRangemust be a device address range allocated to the application from a buffer created with theBUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BITusage flag set - If
typeisDESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFERanddata.pTexelBufferis notNULL,data.pTexelBuffer->addressRangemust be a device address range allocated to the application from a buffer created with theBUFFER_USAGE_STORAGE_TEXEL_BUFFER_BITusage flag set - If
typeis VK_DESCRIPTOR_TYPE_PARTITIONED_ACCELERATION_STRUCTURE_NV orDESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR, anddata.pAddressRangeis notNULL,data.pAddressRange->addressmust be an acceleration structure address retrieved from aAccelerationStructureKHRobject viagetAccelerationStructureDeviceAddressKHR - If
typeis VK_DESCRIPTOR_TYPE_PARTITIONED_ACCELERATION_STRUCTURE_NV orDESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR,data.pAddressRangeis notNULL, anddata.pAddressRange->sizeis not 0,data.pAddressRangemust be a device address range allocated to the application from the buffer used to create the acceleration structure thatdata.pAddressRange->addresswas retrieved from, and within the buffer range bound to that acceleration structure - If
typeisDESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NVanddata.pAddressRangeis notNULL,data.pAddressRange->addressmust be an acceleration structure handle retrieved from aAccelerationStructureNVobject viagetAccelerationStructureHandleNV - If
typeisDESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NVanddata.pAddressRangeis notNULL,data.pAddressRange->sizemust be 0
Valid Usage (Implicit)
-
sTypemust beSTRUCTURE_TYPE_RESOURCE_DESCRIPTOR_INFO_EXT
-
pNextmust beNULLor a pointer to a valid instance ofDebugUtilsObjectNameInfoEXT - The
sTypevalue of each structure in thepNextchain must be unique -
typemust be a validDescriptorTypevalue - If
typeisDESCRIPTOR_TYPE_SAMPLED_IMAGE,DESCRIPTOR_TYPE_STORAGE_IMAGE,DESCRIPTOR_TYPE_INPUT_ATTACHMENT,DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM, orDESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM, and ifpImageis notNULL, thepImagemember ofdatamust be a valid pointer to a validImageDescriptorInfoEXTstructure - If
typeisDESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFERorDESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER, and ifpTexelBufferis notNULL, thepTexelBuffermember ofdatamust be a valid pointer to a validTexelBufferDescriptorInfoEXTstructure - If
typeisDESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR,DESCRIPTOR_TYPE_UNIFORM_BUFFER, orDESCRIPTOR_TYPE_STORAGE_BUFFER, and ifpAddressRangeis notNULL, thepAddressRangemember ofdatamust be a valid pointer to a validDeviceAddressRangeEXTstructure - If
typeisDESCRIPTOR_TYPE_TENSOR_ARM, and ifpTensorARMis notNULL, thepTensorARMmember ofdatamust be a valid pointer to a validTensorViewCreateInfoARMstructure
See Also
VK_EXT_descriptor_heap,
DescriptorType,
ResourceDescriptorDataEXT,
StructureType,
writeResourceDescriptorsEXT
Constructors
| ResourceDescriptorInfoEXT | |
Fields
| |
Instances
data BindHeapInfoEXT Source #
VkBindHeapInfoEXT - Structure describing a device address range and implementation reservation for a descriptor heap
Valid Usage (Implicit)
See Also
VK_EXT_descriptor_heap,
CommandBufferInheritanceDescriptorHeapInfoEXT,
DeviceAddressRangeEXT, DeviceSize,
StructureType,
cmdBindResourceHeapEXT, cmdBindSamplerHeapEXT
Constructors
| BindHeapInfoEXT | |
Fields
| |
Instances
data PushDataInfoEXT (es :: [Type]) Source #
VkPushDataInfoEXT - Structure specifying a push data update operation
Valid Usage
- The sum of
offsetanddata.sizemust be less than or equal to maxPushDataSize
Valid Usage (Implicit)
-
sTypemust beSTRUCTURE_TYPE_PUSH_DATA_INFO_EXT
-
pNextmust beNULLor a pointer to a valid instance ofPushConstantBankInfoNV - The
sTypevalue of each structure in thepNextchain must be unique -
datamust be a validHostAddressRangeConstEXTstructure
See Also
VK_EXT_descriptor_heap,
HostAddressRangeConstEXT,
StructureType, cmdPushDataEXT
Constructors
| PushDataInfoEXT | |
Instances
data DescriptorMappingSourceConstantOffsetEXT Source #
VkDescriptorMappingSourceConstantOffsetEXT - Structure specifying mapping resources to a constant heap index
Description
Resources using this mapping will be backed by a descriptor in the heap, at an offset calculated as
- shaderIndex = (Binding -
firstBinding) + arrayIndex - offset = heapOffset + (shaderIndex * heapArrayStride)
where Binding is the binding value in the shader, arrayIndex is the index into the array if the shader binding is declared as an array.
If the mapped resource is a OpTypeSampledImage, offset is instead
calculated for the sampler as
- offset = samplerHeapOffset + (shaderIndex * samplerHeapArrayStride)
If the mapped resource is a OpTypeSampler or OpTypeSampledImage, and
pEmbeddedSampler is not NULL, the specified embedded sampler will be
used rather than accessing the sampler heap.
Valid Usage
-
If
pEmbeddedSampleris a valid pointer to aSamplerCreateInfo, itsborderColormust not beBORDER_COLOR_FLOAT_CUSTOM_EXTorBORDER_COLOR_INT_CUSTOM_EXT
-
If
pEmbeddedSampleris a valid pointer to aSamplerCreateInfo, and there is aDebugUtilsObjectNameInfoEXTstructure in itspNextchain, itsobjectTypemust beOBJECT_TYPE_UNKNOWN
Valid Usage (Implicit)
-
If
pEmbeddedSampleris notNULL,pEmbeddedSamplermust be a valid pointer to a validSamplerCreateInfostructure
See Also
VK_EXT_descriptor_heap,
DescriptorMappingSourceDataEXT,
SamplerCreateInfo
Constructors
| DescriptorMappingSourceConstantOffsetEXT | |
Fields
| |
Instances
data DescriptorMappingSourcePushIndexEXT Source #
VkDescriptorMappingSourcePushIndexEXT - Structure specifying mapping resources to a heap index in push data
Description
Resources using this mapping will be backed by a descriptor in the heap, at an offset calculated as
- pushIndex = ((uint32_t*)pPushData)[pushOffset/4]
- shaderIndex = (Binding - firstBinding) + arrayIndex
- offset = heapOffset + (pushIndex × heapIndexStride) + (shaderIndex × heapArrayStride)
where Binding is the binding value in the shader, arrayIndex is the
index into the array if the shader binding is declared as an array, and
pPushData is the total set of push data specified by cmdPushDataEXT.
If the mapped resource is a OpTypeSampledImage, offset is instead
calculated for the sampler as
- samplerPushIndex = ((uint32_t*)pPushData)[samplerPushOffset/4]
- offset = samplerHeapOffset + (samplerPushIndex × samplerHeapIndexStride) + (shaderIndex × samplerHeapArrayStride)
If useCombinedImageSamplerIndex is
TRUE, and the mapped resource is a
OpTypeSampledImage, pushIndex and samplerPushIndex in the above
equations are instead calculated as
- pushIndex = ((uint32_t*)pPushData)[pushOffset/4] & 0xFFFFF
- samplerPushIndex = (((uint32_t*)pPushData)[pushOffset/4] >> 20) & 0xFFF
If the mapped resource is a OpTypeSampler or OpTypeSampledImage, and
pEmbeddedSampler is not NULL, the specified embedded sampler will be
used rather than accessing the sampler heap.
Valid Usage
-
pushOffsetmust be less than or equal tomaxPushDataSize- 4 -
If
pEmbeddedSampleris a valid pointer to aSamplerCreateInfo, itsborderColormust not beBORDER_COLOR_FLOAT_CUSTOM_EXTorBORDER_COLOR_INT_CUSTOM_EXT -
If
pEmbeddedSampleris a valid pointer to aSamplerCreateInfo, and there is aDebugUtilsObjectNameInfoEXTstructure in itspNextchain, itsobjectTypemust beOBJECT_TYPE_UNKNOWN
Valid Usage (Implicit)
-
If
pEmbeddedSampleris notNULL,pEmbeddedSamplermust be a valid pointer to a validSamplerCreateInfostructure
See Also
VK_EXT_descriptor_heap,
Bool32,
DescriptorMappingSourceDataEXT,
SamplerCreateInfo
Constructors
| DescriptorMappingSourcePushIndexEXT | |
Fields
| |
Instances
data DescriptorMappingSourceIndirectIndexEXT Source #
VkDescriptorMappingSourceIndirectIndexEXT - Structure specifying mapping resources to a heap index in indirect data
Description
Resources using this mapping will be backed by a descriptor in the heap, at an offset calculated as
- uint32_t *indirectAddress = ((VkDeviceAddress*)pPushData)[pushOffset/8]
- indirectIndex = indirectAddress[(addressOffset / 4)]
- shaderIndex = (Binding - firstBinding) + arrayIndex
- offset = heapOffset + (indirectIndex × heapIndexStride) + (shaderIndex × heapArrayStride)
where Binding is the binding value in the shader, arrayIndex is the
index into the array if the shader binding is declared as an array, and
pPushData is the total set of push data specified by cmdPushDataEXT.
The value of the address in push data must be a multiple of 4. Index
reads through indirectAddress are performed as non-volatile uniform
buffer reads, and can be synchronized using
ACCESS_2_UNIFORM_READ_BIT. The value
in memory must remain static while any shader invocation using this
mapping is in flight to avoid a data race.
If the mapped resource is a OpTypeSampledImage, offset is instead
calculated for the sampler as
- uint32_t *samplerIndirectAddress = ((VkDeviceAddress*)pPushData)[samplerPushOffset/8]
- samplerIndirectIndex = samplerIndirectAddress[(samplerAddressOffset / 4)]
- offset = samplerHeapOffset + (samplerIndirectIndex × samplerHeapIndexStride) + (shaderIndex × samplerHeapArrayStride)
If useCombinedImageSamplerIndex is
TRUE, and the mapped resource is a
OpTypeSampledImage, indirectIndex and samplerIndirectIndex in the
above equations are instead calculated as
- indirectIndex = indirectAddress[addressOffset/4] & 0xFFFFF
- samplerIndirectIndex = indirectAddress[addressOffset/4] >> 20) & 0xFFF
If the mapped resource is a OpTypeSampler or OpTypeSampledImage, and
pEmbeddedSampler is not NULL, the specified embedded sampler will be
used rather than accessing the sampler heap.
Valid Usage
-
pushOffsetmust be less than or equal tomaxPushDataSize- 8 -
addressOffsetmust be a multiple of 4 -
If
pEmbeddedSampleris a valid pointer to aSamplerCreateInfo, itsborderColormust not beBORDER_COLOR_FLOAT_CUSTOM_EXTorBORDER_COLOR_INT_CUSTOM_EXT -
If
pEmbeddedSampleris a valid pointer to aSamplerCreateInfo, and there is aDebugUtilsObjectNameInfoEXTstructure in itspNextchain, itsobjectTypemust beOBJECT_TYPE_UNKNOWN
Valid Usage (Implicit)
-
If
pEmbeddedSampleris notNULL,pEmbeddedSamplermust be a valid pointer to a validSamplerCreateInfostructure
See Also
VK_EXT_descriptor_heap,
Bool32,
DescriptorMappingSourceDataEXT,
SamplerCreateInfo
Constructors
| DescriptorMappingSourceIndirectIndexEXT | |
Fields
| |
Instances
data DescriptorMappingSourceIndirectIndexArrayEXT Source #
VkDescriptorMappingSourceIndirectIndexArrayEXT - Structure specifying mapping resources to a heap index array in indirect data
Description
Resources using this mapping will be backed by a descriptor in the heap, at an offset calculated as
- uint32_t *indirectAddress = ((VkDeviceAddress*)pPushData)[pushOffset/8]
- shaderIndex = (Binding - firstBinding) + arrayIndex
- indirectIndex = indirectAddress[(addressOffset / 4) + shaderIndex]
- offset = heapOffset + (indirectIndex × heapIndexStride)
where Binding is the binding value in the shader, arrayIndex is the
index into the array if the shader binding is declared as an array, and
pPushData is the total set of push data specified by cmdPushDataEXT.
The value of the address in push data must be a multiple of 4. Index
reads through indirectAddress are performed as non-volatile uniform
buffer reads, and can be synchronized using
ACCESS_2_UNIFORM_READ_BIT. The value
in memory must remain static while any shader invocation using this
mapping is in flight to avoid a data race.
If the mapped resource is a OpTypeSampledImage, offset is instead
calculated for the sampler as
- uint32_t *samplerIndirectAddress = ((VkDeviceAddress*)pPushData)[samplerPushOffset/8]
- samplerIndirectIndex = samplerAddr[(samplerAddressOffset / 4) + shaderIndex]
- offset = samplerHeapOffset + (samplerIndirectIndex × samplerHeapIndexStride)
If useCombinedImageSamplerIndex is
TRUE, and the mapped resource is a
OpTypeSampledImage, indirectIndex and samplerIndirectIndex in the
above equations are instead calculated as
- indirectIndex = indirectAddress[addressOffset/4 + shaderIndex] & 0xFFFFF
- samplerIndirectIndex = indirectAddress[addressOffset/4 + shaderIndex] >> 20) & 0xFFF
If the mapped resource is a OpTypeSampler or OpTypeSampledImage, and
pEmbeddedSampler is not NULL, the specified embedded sampler will be
used rather than accessing the sampler heap.
Valid Usage
-
pushOffsetmust be less than or equal tomaxPushDataSize- 8 -
addressOffsetmust be a multiple of 4 -
If
pEmbeddedSampleris a valid pointer to aSamplerCreateInfo, itsborderColormust not beBORDER_COLOR_FLOAT_CUSTOM_EXTorBORDER_COLOR_INT_CUSTOM_EXT -
If
pEmbeddedSampleris a valid pointer to aSamplerCreateInfo, and there is aDebugUtilsObjectNameInfoEXTstructure in itspNextchain, itsobjectTypemust beOBJECT_TYPE_UNKNOWN
Valid Usage (Implicit)
-
If
pEmbeddedSampleris notNULL,pEmbeddedSamplermust be a valid pointer to a validSamplerCreateInfostructure
See Also
VK_EXT_descriptor_heap,
Bool32,
DescriptorMappingSourceDataEXT,
SamplerCreateInfo
Constructors
| DescriptorMappingSourceIndirectIndexArrayEXT | |
Fields
| |
Instances
data DescriptorMappingSourceHeapDataEXT Source #
VkDescriptorMappingSourceHeapDataEXT - Structure specifying mapping a uniform buffer to heap data
Description
Uniform buffers using this mapping will be backed directly by data in the heap. Accessing data in the uniform buffer at an offset of shaderOffset in the shader will access heap data at an offset equal to
- offset = shaderOffset + heapOffset + ((uint32_t*)pPushData)[pushOffset/4]
where pPushData is the total set of push data specified by
cmdPushDataEXT. Shader reads through the heap mapped in this way are
performed according to the mapped resource.
Valid Usage
See Also
Constructors
| DescriptorMappingSourceHeapDataEXT | |
Fields
| |
Instances
data DescriptorMappingSourceShaderRecordIndexEXT Source #
VkDescriptorMappingSourceShaderRecordIndexEXT - Structure specifying mapping resources to a heap index in shader record data
Description
Resources using this mapping will be backed by a descriptor in the heap, at an offset calculated as
- shaderRecordIndex = ((uint32_t*)pShaderRecordData)[shaderRecordOffset/4]
- shaderIndex = (Binding - firstBinding) + arrayIndex
- offset = heapOffset + (shaderRecordIndex × heapIndexStride) + (shaderIndex × heapArrayStride)
where Binding is the binding value in the shader, arrayIndex is the index into the array if the shader binding is declared as an array, and pShaderRecordData is the set of shader record data accessible to the shader.
If the mapped resource is a OpTypeSampledImage, offset is instead
calculated for the sampler as
- samplerShaderRecordIndex = ((uint32_t*)pShaderRecordData)[samplerShaderRecordOffset/4]
- offset = samplerHeapOffset + (samplerShaderRecordIndex × samplerHeapIndexStride) + (shaderIndex × samplerHeapArrayStride)
If useCombinedImageSamplerIndex is
TRUE, and the mapped resource is a
OpTypeSampledImage, shaderRecordIndex and samplerShaderRecordIndex in
the above equations are instead calculated as
- shaderRecordIndex = ((uint32_t*)pShaderRecordData)[shaderRecordOffset/4] & 0xFFFFF
- samplerShaderRecordIndex = (((uint32_t*)pShaderRecordData)[shaderRecordOffset/4] >> 20) & 0xFFF
If the mapped resource is a OpTypeSampler or OpTypeSampledImage, and
pEmbeddedSampler is not NULL, the specified embedded sampler will be
used rather than accessing the sampler heap.
Valid Usage
-
shaderRecordOffsetmust be less than or equal to maxShaderGroupStride - 4
-
If
pEmbeddedSampleris a valid pointer to aSamplerCreateInfo, itsborderColormust not beBORDER_COLOR_FLOAT_CUSTOM_EXTorBORDER_COLOR_INT_CUSTOM_EXT -
If
pEmbeddedSampleris a valid pointer to aSamplerCreateInfo, and there is aDebugUtilsObjectNameInfoEXTstructure in itspNextchain, itsobjectTypemust beOBJECT_TYPE_UNKNOWN
Valid Usage (Implicit)
-
If
pEmbeddedSampleris notNULL,pEmbeddedSamplermust be a valid pointer to a validSamplerCreateInfostructure
See Also
VK_EXT_descriptor_heap,
Bool32,
DescriptorMappingSourceDataEXT,
SamplerCreateInfo
Constructors
| DescriptorMappingSourceShaderRecordIndexEXT | |
Fields
| |
Instances
data DescriptorMappingSourceIndirectAddressEXT Source #
VkDescriptorMappingSourceIndirectAddressEXT - Structure specifying mapping a uniform buffer to an address specified indirectly
Description
Accessing data via the mapped resource in the shader will access data backing the address specified in the indirect address at the supplied offset:
- indirectAddress = ((VkDeviceAddress*)pPushData)[pushOffset/8]
- resourceAddress = ((VkDeviceAddress*)indirectAddress)[addressOffset/8]
where pPushData is the total set of push data specified by
cmdPushDataEXT. Reads through indirectAddress are performed as
non-volatile uniform buffer reads, and can be synchronized using
ACCESS_2_UNIFORM_READ_BIT. Shader
reads through resourceAddress are performed according to the mapped
resource. If the shader resource is an acceleration structure, the
address must be a valid acceleration structure address.
Valid Usage
See Also
Constructors
| DescriptorMappingSourceIndirectAddressEXT | |
Fields | |
Instances
data DescriptorSetAndBindingMappingEXT (es :: [Type]) Source #
VkDescriptorSetAndBindingMappingEXT - Structure specifying mappings from a set of shader resources to a descriptor heap
Description
Resources specified in a shader with a
DescriptorSet decoration set to descriptorSet,
a Binding decoration greater than or equal to firstBinding and less
than the sum of firstBinding and bindingCount, and a resource type
matching one of the bits in resourceMask will be mapped according to
source and sourceData.
Applications are free to overspecify bindings that are not present;
allowing reuse of the same mapping structures with multiple shaders,
even when those shaders only partially reuse those mappings. This
includes things like setting binding counts higher than the number used
in the shader, specifying bindings that are not present in the shader,
and setting resourceMask to all possible resources that may be
encountered.
If source selects an element of sourceData defined by a structure,
the description of that structure defines how resources are mapped.
Source mappings using a single base type are defined here.
If source is
DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_CONSTANT_OFFSET_EXT, the resource
will be backed by heap data as specified by
constantOffset.
If source is DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_PUSH_INDEX_EXT, the
resource will be backed by heap data as specified by
pushIndex.
If source is DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_EXT,
the resource will be backed by heap data as specified by
indirectIndex.
If source is
DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_ARRAY_EXT, the
resource will be backed by heap data as specified by
indirectIndexArray.
If source is DESCRIPTOR_MAPPING_SOURCE_RESOURCE_HEAP_DATA_EXT, the
resource will be backed by heap data as specified by
heapData.
If source is DESCRIPTOR_MAPPING_SOURCE_PUSH_DATA_EXT, the resource
will be backed by push data at a range from pushDataOffset to the size
of the resource, allowing a uniform buffer to be backed by push data
access push data. Accessing data in the uniform buffer at an offset of
shaderOffset in the shader will access push data at an offset equal to
- offset = shaderOffset + pushDataOffset.
If source is DESCRIPTOR_MAPPING_SOURCE_PUSH_ADDRESS_EXT, the
resource will be backed by data pointed to by a device address in push
data at an offset of pushAddressOffset. Accessing data via the mapped
resource in the shader will access data backing the address specified in
push data:
- address = ((VkDeviceAddress*)pPushData)[pushAddressOffset/8]
where pPushData is the total set of push data specified by
cmdPushDataEXT. If the shader resource is an acceleration structure,
the address must be a valid acceleration structure address.
If source is DESCRIPTOR_MAPPING_SOURCE_INDIRECT_ADDRESS_EXT, the
resource will be backed by heap data as specified by
indirectAddress.
Accesses to resources using mappings to anything that is not a descriptor in a heap are not subject to robustness guarantees; resources for such mappings must not be accessed out of bounds.
If source is
DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_SHADER_RECORD_INDEX_EXT, the
resource will be backed by heap data as specified by
shaderRecordIndex.
If source is DESCRIPTOR_MAPPING_SOURCE_SHADER_RECORD_DATA_EXT, the
resource will be backed by shader record data at a range from
shaderRecordDataOffset to the size of the resource, allowing a uniform
buffer to be used as a way to access shader record data. Accessing data
in the uniform buffer at an offset shaderOffset in the shader will
access shader record data at an offset equal to
- offset = shaderOffset + shaderRecordDataOffset.
If source is DESCRIPTOR_MAPPING_SOURCE_SHADER_RECORD_ADDRESS_EXT,
the resource will be backed by data pointed to by a device address in
the shader record at shaderRecordAddressOffset. Accessing data via the
mapped resource in the shader will access data backing the address
specified in shader record data:
- address = ((VkDeviceAddress*)pShaderRecordData)[shaderRecordAddressOffset/8]
where pShaderRecord is the memory associated with a given shader as its shader record. If the shader resource is an acceleration structure, the address must be a valid acceleration structure address.
Accesses to resources using
DESCRIPTOR_MAPPING_SOURCE_SHADER_RECORD_ADDRESS_EXT mappings are not
subject to robustness guarantees; data must not be accessed outside of
the allocated memory range.
Mappings must be declared for all variables with a
DescriptorSet and Binding in the
shader resource interface.
Valid Usage
- If
sourceisDESCRIPTOR_MAPPING_SOURCE_PUSH_DATA_EXT,DESCRIPTOR_MAPPING_SOURCE_PUSH_ADDRESS_EXT,DESCRIPTOR_MAPPING_SOURCE_INDIRECT_ADDRESS_EXT, orDESCRIPTOR_MAPPING_SOURCE_RESOURCE_HEAP_DATA_EXT,bindingCountmust be 1
- If
sourceisDESCRIPTOR_MAPPING_SOURCE_PUSH_DATA_EXT,sourceData.pushDataOffsetmust be a multiple of 4 - If
sourceisDESCRIPTOR_MAPPING_SOURCE_PUSH_ADDRESS_EXT,sourceData.pushAddressOffsetmust be a multiple of 8 - If
sourceisDESCRIPTOR_MAPPING_SOURCE_SHADER_RECORD_DATA_EXTorDESCRIPTOR_MAPPING_SOURCE_SHADER_RECORD_ADDRESS_EXT,bindingCountmust be 1 - If
sourceisDESCRIPTOR_MAPPING_SOURCE_SHADER_RECORD_DATA_EXT,sourceData.shaderRecordDataOffsetmust be a multiple of 4 - If
sourceisDESCRIPTOR_MAPPING_SOURCE_SHADER_RECORD_ADDRESS_EXT,sourceData.shaderRecordAddressOffsetmust be a multiple of 8 - If
sourceisDESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_CONSTANT_OFFSET_EXT,DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_PUSH_INDEX_EXT,DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_EXT,DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_ARRAY_EXT, orDESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_SHADER_RECORD_INDEX_EXT, anddescriptorSet,firstBinding, andbindingCountidentify anyOpTypeImagevariables, anyheapOffset, andheapArrayStridemembers of the corresponding member ofsourceDatamust be 0 or a multiple of imageDescriptorAlignment - If
sourceisDESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_CONSTANT_OFFSET_EXT,DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_PUSH_INDEX_EXT,DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_EXT,DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_ARRAY_EXT, orDESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_SHADER_RECORD_INDEX_EXT, anddescriptorSet,firstBinding, andbindingCountidentify anyOpTypeStructvariables, anyheapOffset, andheapArrayStridemembers of the corresponding member ofsourceDatamust be 0 or a multiple of bufferDescriptorAlignment - If
sourceisDESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_CONSTANT_OFFSET_EXT,DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_PUSH_INDEX_EXT,DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_EXT,DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_ARRAY_EXT, orDESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_SHADER_RECORD_INDEX_EXT, anddescriptorSet,firstBinding, andbindingCountidentify anyOpTypeSamplervariables, anyheapOffsetandheapArrayStridemembers of the corresponding member ofsourceDatamust be 0 or a multiple of samplerDescriptorAlignment - If
sourceisDESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_CONSTANT_OFFSET_EXT,DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_PUSH_INDEX_EXT,DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_EXT,DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_ARRAY_EXT, orDESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_SHADER_RECORD_INDEX_EXT, anddescriptorSet,firstBinding, andbindingCountidentify anyOpTypeSampledImagevariables, anysamplerHeapOffsetandsamplerHeapArrayStridemembers of the corresponding member ofsourceDatamust be 0 or a multiple of samplerDescriptorAlignment - If
sourceisDESCRIPTOR_MAPPING_SOURCE_RESOURCE_HEAP_DATA_EXT,DESCRIPTOR_MAPPING_SOURCE_SHADER_RECORD_DATA_EXT, orDESCRIPTOR_MAPPING_SOURCE_PUSH_DATA_EXT,resourceMaskmust includeSPIRV_RESOURCE_TYPE_UNIFORM_BUFFER_BIT_EXT - If
sourceisDESCRIPTOR_MAPPING_SOURCE_SHADER_RECORD_ADDRESS_EXTorDESCRIPTOR_MAPPING_SOURCE_PUSH_ADDRESS_EXT,resourceMaskmust include at least one ofSPIRV_RESOURCE_TYPE_UNIFORM_BUFFER_BIT_EXT,SPIRV_RESOURCE_TYPE_READ_ONLY_STORAGE_BUFFER_BIT_EXT,SPIRV_RESOURCE_TYPE_READ_WRITE_STORAGE_BUFFER_BIT_EXT, orSPIRV_RESOURCE_TYPE_ACCELERATION_STRUCTURE_BIT_EXT - If
sourceisDESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_SHADER_RECORD_INDEX_EXT,DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_PUSH_INDEX_EXT, orDESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_EXT,DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_ARRAY_EXT, and the mapping setsuseCombinedImageSamplerIndextoTRUE,resourceMaskmust include at least one ofSPIRV_RESOURCE_TYPE_COMBINED_SAMPLED_IMAGE_BIT_EXT,SPIRV_RESOURCE_TYPE_SAMPLED_IMAGE_BIT_EXT, orSPIRV_RESOURCE_TYPE_SAMPLER_BIT_EXT - If
sourceisDESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_CONSTANT_OFFSET_EXT,DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_PUSH_INDEX_EXT,DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_SHADER_RECORD_INDEX_EXT,DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_EXT, orDESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_ARRAY_EXT, andbindingCountis not1, thepEmbeddedSamplermember of the corresponding mapping structure must beNULL - If
sourceisDESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_CONSTANT_OFFSET_EXT,DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_PUSH_INDEX_EXT,DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_SHADER_RECORD_INDEX_EXT,DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_EXT, orDESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_ARRAY_EXT, anddescriptorSet,firstBinding, andbindingCountidentify anyOpTypeTensorARMvariables, theheapOffset, andheapArrayStridemembers of the corresponding member ofsourceDatamust be 0 or a multiple of tensorDescriptorAlignment
Valid Usage (Implicit)
-
sTypemust beSTRUCTURE_TYPE_DESCRIPTOR_SET_AND_BINDING_MAPPING_EXT
-
pNextmust beNULLor a pointer to a valid instance ofPushConstantBankInfoNV - The
sTypevalue of each structure in thepNextchain must be unique -
resourceMaskmust be a valid combination ofSpirvResourceTypeFlagBitsEXTvalues -
resourceMaskmust not be0 -
sourcemust be a validDescriptorMappingSourceEXTvalue -
If
sourceisDESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_CONSTANT_OFFSET_EXT, theconstantOffsetmember ofsourceDatamust be a validDescriptorMappingSourceConstantOffsetEXTstructure - If
sourceisDESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_PUSH_INDEX_EXT, thepushIndexmember ofsourceDatamust be a validDescriptorMappingSourcePushIndexEXTstructure -
If
sourceisDESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_EXT, theindirectIndexmember ofsourceDatamust be a validDescriptorMappingSourceIndirectIndexEXTstructure -
If
sourceisDESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_ARRAY_EXT, theindirectIndexArraymember ofsourceDatamust be a validDescriptorMappingSourceIndirectIndexArrayEXTstructure -
If
sourceisDESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_SHADER_RECORD_INDEX_EXT, theshaderRecordIndexmember ofsourceDatamust be a validDescriptorMappingSourceShaderRecordIndexEXTstructure
See Also
VK_EXT_descriptor_heap,
DescriptorMappingSourceDataEXT, DescriptorMappingSourceEXT,
ShaderDescriptorSetAndBindingMappingInfoEXT,
SpirvResourceTypeFlagsEXT,
StructureType
Constructors
| DescriptorSetAndBindingMappingEXT | |
Fields
| |
Instances
data ShaderDescriptorSetAndBindingMappingInfoEXT Source #
VkShaderDescriptorSetAndBindingMappingInfoEXT - Structure specifying mappings from shader resources to descriptor heaps
Description
Including this structure in the pNext chain of
PipelineShaderStageCreateInfo will set
mappings for the shader defined by that structure. Similarly, including
this structure in the pNext chain of a
ShaderCreateInfoEXT with a
codeType of
SHADER_CODE_TYPE_SPIRV_EXT,
will set mappings for that shader.
If this structure is not present, it is equivalent to setting
mappingCount to 0.
Valid Usage
-
Any two elements of
pMappingsmust not have the same value ofdescriptorSet, an overlapping range specified byfirstBindingandbindingCount, and any overlapping bits inresourceMask
Valid Usage (Implicit)
-
If
mappingCountis not0,pMappingsmust be a valid pointer to an array ofmappingCountvalidDescriptorSetAndBindingMappingEXTstructures
See Also
VK_EXT_descriptor_heap,
DescriptorSetAndBindingMappingEXT,
StructureType
Constructors
| ShaderDescriptorSetAndBindingMappingInfoEXT | |
Fields
| |
Instances
data SamplerCustomBorderColorIndexCreateInfoEXT Source #
VkSamplerCustomBorderColorIndexCreateInfoEXT - Structure specifying the custom border color index for a sampler
Description
If this structure is included in the pNext chain of
SamplerCreateInfo, the value of index will be
used for the custom border color registration. index does not need to
be registered at the point that a sampler object is created or a sampler
descriptor is written; as long as it is registered when any use of the
sampler is recorded to a command, and remains registered while the
sampler is in use. The color registered with the index and the color
specified in the sampler must be identically defined.
If this structure is not provided when creating a sampler object with a
custom border color, it is equivalent to registering a new custom border
color by calling registerCustomBorderColorEXT with that custom border
color value, and using that value as index in this structure. This
implicit registration will be implicitly unregistered when the sampler
is destroyed.
If this structure is not provided when creating a sampler object without
a custom border color, it is equivalent to setting index to 0.
Valid Usage (Implicit)
See Also
VK_EXT_custom_border_color,
VK_EXT_descriptor_heap,
StructureType
Constructors
| SamplerCustomBorderColorIndexCreateInfoEXT | |
Fields
| |
Instances
data OpaqueCaptureDataCreateInfoEXT Source #
VkOpaqueCaptureDataCreateInfoEXT - Structure specifying opaque capture data
Description
When an image is created with
IMAGE_CREATE_DESCRIPTOR_HEAP_CAPTURE_REPLAY_BIT_EXT
set in ImageCreateInfo::flags, if the pNext
chain of ImageCreateInfo includes this structure,
and pData is not NULL, the implementation will attempt to recreate
the image such that descriptors written with
writeResourceDescriptorsEXT will be reproduced with the same bit
pattern as during capture if possible. If the implementation is unable
to recreate the image based on this data, image creation will fail and
return
ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS.
When a tensor is created with
TENSOR_CREATE_DESCRIPTOR_HEAP_CAPTURE_REPLAY_BIT_ARM
set in TensorCreateInfoARM::flags,
if the pNext chain of
TensorCreateInfoARM includes this
structure, and pData is not NULL, the implementation will attempt to
recreate the tensor such that descriptors written with
writeResourceDescriptorsEXT will be reproduced with the same bit
pattern as during capture if possible. If the implementation is unable
to recreate the tensor based on this data, tensor creation will fail and
return
ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS.
If this structure is not present, it is equivalent to setting pData to
NULL.
Valid Usage (Implicit)
-
sTypemust beSTRUCTURE_TYPE_OPAQUE_CAPTURE_DATA_CREATE_INFO_EXT
- If
pDatais notNULL,pDatamust be a valid pointer to a validHostAddressRangeConstEXTstructure
See Also
VK_EXT_descriptor_heap,
HostAddressRangeConstEXT,
StructureType
Constructors
| OpaqueCaptureDataCreateInfoEXT | |
Fields
| |
Instances
| Show OpaqueCaptureDataCreateInfoEXT Source # | |
Defined in Vulkan.Extensions.VK_EXT_descriptor_heap Methods showsPrec :: Int -> OpaqueCaptureDataCreateInfoEXT -> ShowS # show :: OpaqueCaptureDataCreateInfoEXT -> String # showList :: [OpaqueCaptureDataCreateInfoEXT] -> ShowS # | |
| FromCStruct OpaqueCaptureDataCreateInfoEXT Source # | |
Defined in Vulkan.Extensions.VK_EXT_descriptor_heap | |
| ToCStruct OpaqueCaptureDataCreateInfoEXT Source # | |
Defined in Vulkan.Extensions.VK_EXT_descriptor_heap Methods withCStruct :: OpaqueCaptureDataCreateInfoEXT -> (Ptr OpaqueCaptureDataCreateInfoEXT -> IO b) -> IO b Source # pokeCStruct :: Ptr OpaqueCaptureDataCreateInfoEXT -> OpaqueCaptureDataCreateInfoEXT -> IO b -> IO b Source # withZeroCStruct :: (Ptr OpaqueCaptureDataCreateInfoEXT -> IO b) -> IO b Source # pokeZeroCStruct :: Ptr OpaqueCaptureDataCreateInfoEXT -> IO b -> IO b Source # cStructSize :: Int Source # | |
| Zero OpaqueCaptureDataCreateInfoEXT Source # | |
Defined in Vulkan.Extensions.VK_EXT_descriptor_heap Methods | |
data IndirectCommandsLayoutPushDataTokenNV Source #
VkIndirectCommandsLayoutPushDataTokenNV - Struct specifying the details of an indirect push data command layout token
Description
If this structure is in the pNext chain of
IndirectCommandsLayoutTokenNV,
and
IndirectCommandsLayoutTokenNV::tokenType
is set to
INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_DATA_NV,
this structure defines a push data command layout token.
If this structure is not provided, it is equivalent to setting
pushDataOffset and pushDataSize to 0.
Valid Usage
-
The sum of
pushDataOffsetandpushDataSizemust be less than maxPushDataSize
Valid Usage (Implicit)
See Also
VK_EXT_descriptor_heap,
VK_NV_device_generated_commands,
StructureType
Constructors
| IndirectCommandsLayoutPushDataTokenNV | |
Fields
| |
Instances
data SubsampledImageFormatPropertiesEXT Source #
VkSubsampledImageFormatPropertiesEXT - Structure specifying image descriptor count for subsampled images
Valid Usage (Implicit)
See Also
VK_EXT_descriptor_heap,
VK_EXT_fragment_density_map,
StructureType
Constructors
| SubsampledImageFormatPropertiesEXT | |
Fields
| |
Instances
data PhysicalDeviceDescriptorHeapFeaturesEXT Source #
VkPhysicalDeviceDescriptorHeapFeaturesEXT - Structure describing support for descriptor heaps
Description
If the PhysicalDeviceDescriptorHeapFeaturesEXT structure is included
in the pNext chain of the
PhysicalDeviceFeatures2
structure passed to
getPhysicalDeviceFeatures2,
it is filled in to indicate whether each corresponding feature is
supported. If the application wishes to use a
Device with any features described by
PhysicalDeviceDescriptorHeapFeaturesEXT, it must add an instance of
the structure, with the desired feature members set to
TRUE, to the pNext chain of
DeviceCreateInfo when creating the
Device.
Valid Usage (Implicit)
See Also
Constructors
| PhysicalDeviceDescriptorHeapFeaturesEXT | |
Fields
| |
Instances
data PhysicalDeviceDescriptorHeapPropertiesEXT Source #
VkPhysicalDeviceDescriptorHeapPropertiesEXT - Structure describing supported image alignments for a physical device
Description
If the PhysicalDeviceDescriptorHeapPropertiesEXT 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
| PhysicalDeviceDescriptorHeapPropertiesEXT | |
Fields
| |
Instances
data CommandBufferInheritanceDescriptorHeapInfoEXT Source #
VkCommandBufferInheritanceDescriptorHeapInfoEXT - Structure specifying command buffer inheritance information
Description
If this structure is not present, the behavior is as if
pSamplerHeapBindInfo and pResourceHeapBindInfo were both NULL.
Valid Usage
-
If the
descriptorHeap
feature is not enabled,
pSamplerHeapBindInfomust beNULL
-
If the
descriptorHeap
feature is not enabled,
pResourceHeapBindInfomust beNULL -
If
pSamplerHeapBindInfois notNULL,pSamplerHeapBindInfo->heapRangemust be a device address range allocated to the application from a buffer created with theBUFFER_USAGE_DESCRIPTOR_HEAP_BIT_EXTusage flag set -
If
pResourceHeapBindInfois notNULL,pResourceHeapBindInfo->heapRangemust be a device address range allocated to the application from a buffer created with theBUFFER_USAGE_DESCRIPTOR_HEAP_BIT_EXTusage flag set
Valid Usage (Implicit)
-
If
pSamplerHeapBindInfois notNULL,pSamplerHeapBindInfomust be a valid pointer to a validBindHeapInfoEXTstructure -
If
pResourceHeapBindInfois notNULL,pResourceHeapBindInfomust be a valid pointer to a validBindHeapInfoEXTstructure
See Also
Constructors
| CommandBufferInheritanceDescriptorHeapInfoEXT | |
Fields
| |
Instances
data PhysicalDeviceDescriptorHeapTensorPropertiesARM Source #
VkPhysicalDeviceDescriptorHeapTensorPropertiesARM - Structure describing descriptor heap tensor properties supported by an implementation
Description
If the PhysicalDeviceDescriptorHeapTensorPropertiesARM 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
VK_ARM_tensors,
VK_EXT_descriptor_heap,
DeviceSize,
StructureType
Constructors
| PhysicalDeviceDescriptorHeapTensorPropertiesARM | |
Fields
| |
Instances
data ResourceDescriptorDataEXT Source #
Constructors
| AnImage (Maybe ImageDescriptorInfoEXT) | |
| ATexelBuffer (Maybe TexelBufferDescriptorInfoEXT) | |
| AnAddressRange (Maybe DeviceAddressRangeEXT) | |
| ATensorARM (Maybe (SomeStruct TensorViewCreateInfoARM)) |
Instances
| Show ResourceDescriptorDataEXT Source # | |
Defined in Vulkan.Extensions.VK_EXT_descriptor_heap Methods showsPrec :: Int -> ResourceDescriptorDataEXT -> ShowS # show :: ResourceDescriptorDataEXT -> String # showList :: [ResourceDescriptorDataEXT] -> ShowS # | |
| ToCStruct ResourceDescriptorDataEXT Source # | |
Defined in Vulkan.Extensions.VK_EXT_descriptor_heap Methods withCStruct :: ResourceDescriptorDataEXT -> (Ptr ResourceDescriptorDataEXT -> IO b) -> IO b Source # pokeCStruct :: Ptr ResourceDescriptorDataEXT -> ResourceDescriptorDataEXT -> IO b -> IO b Source # withZeroCStruct :: (Ptr ResourceDescriptorDataEXT -> IO b) -> IO b Source # pokeZeroCStruct :: Ptr ResourceDescriptorDataEXT -> IO b -> IO b Source # cStructSize :: Int Source # | |
| Zero ResourceDescriptorDataEXT Source # | |
Defined in Vulkan.Extensions.VK_EXT_descriptor_heap Methods | |
data DescriptorMappingSourceDataEXT Source #
Constructors
Instances
| Show DescriptorMappingSourceDataEXT Source # | |
Defined in Vulkan.Extensions.VK_EXT_descriptor_heap Methods showsPrec :: Int -> DescriptorMappingSourceDataEXT -> ShowS # show :: DescriptorMappingSourceDataEXT -> String # showList :: [DescriptorMappingSourceDataEXT] -> ShowS # | |
| ToCStruct DescriptorMappingSourceDataEXT Source # | |
Defined in Vulkan.Extensions.VK_EXT_descriptor_heap Methods withCStruct :: DescriptorMappingSourceDataEXT -> (Ptr DescriptorMappingSourceDataEXT -> IO b) -> IO b Source # pokeCStruct :: Ptr DescriptorMappingSourceDataEXT -> DescriptorMappingSourceDataEXT -> IO b -> IO b Source # withZeroCStruct :: (Ptr DescriptorMappingSourceDataEXT -> IO b) -> IO b Source # pokeZeroCStruct :: Ptr DescriptorMappingSourceDataEXT -> IO b -> IO b Source # cStructSize :: Int Source # | |
| Zero DescriptorMappingSourceDataEXT Source # | |
Defined in Vulkan.Extensions.VK_EXT_descriptor_heap Methods | |
newtype DescriptorMappingSourceEXT Source #
VkDescriptorMappingSourceEXT - Specifies the mapping source for a shader binding
Description
DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_CONSTANT_OFFSET_EXTspecifies that the resource will be backed by a descriptor from the heap at a constant index.
DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_PUSH_INDEX_EXTspecifies that the resource will be backed by a descriptor from the heap at an index sourced from push data, added to a constant index.DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_EXTspecifies that the resource will be backed by a descriptor from the heap at an index sourced from an address in push data, added to a constant index. If the mapping is an array, the array will be mapped to a base offset in indirect memory, and subsequent elements are mapped as offsets to that base.DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_ARRAY_EXTspecifies that the resource will be backed by a descriptor from the heap at an index sourced from an address in push data, added to a constant index. If the mapping is an array, each array element will be mapped to a separate index in indirect memory.DESCRIPTOR_MAPPING_SOURCE_RESOURCE_HEAP_DATA_EXTspecifies that the resource will be backed by heap data directly.DESCRIPTOR_MAPPING_SOURCE_PUSH_DATA_EXTspecifies that the resource will be backed by push data directly.DESCRIPTOR_MAPPING_SOURCE_PUSH_ADDRESS_EXTspecifies that the resource will be backed by an address in push data.DESCRIPTOR_MAPPING_SOURCE_INDIRECT_ADDRESS_EXTspecifies that the resource will be backed by an address sourced via another address in push data.DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_SHADER_RECORD_INDEX_EXTspecifies that the resource will be backed by a descriptor from the heap at an index sourced from shader record data, added to a constant index.DESCRIPTOR_MAPPING_SOURCE_SHADER_RECORD_DATA_EXTspecifies that the resource will be backed by shader record data directly.DESCRIPTOR_MAPPING_SOURCE_SHADER_RECORD_ADDRESS_EXTspecifies that the resource will be backed by an address in shader record data.
See Also
Constructors
| DescriptorMappingSourceEXT Int32 |
Bundled Patterns
Instances
newtype SpirvResourceTypeFlagBitsEXT Source #
VkSpirvResourceTypeFlagBitsEXT - Bitmask specifying different SPIR-V resource declarations
Description
SPIRV_RESOURCE_TYPE_ALL_EXTspecifies that all resource declarations are included.
SPIRV_RESOURCE_TYPE_SAMPLER_BIT_EXTspecifiesOpTypeSamplervariables.SPIRV_RESOURCE_TYPE_SAMPLED_IMAGE_BIT_EXTspecifiesOpTypeImagevariables with aSampledparameter of 1.SPIRV_RESOURCE_TYPE_READ_ONLY_IMAGE_BIT_EXTspecifiesOpTypeImagevariables with aSampledparameter of 2 and decorated withNonWritable.SPIRV_RESOURCE_TYPE_READ_WRITE_IMAGE_BIT_EXTspecifiesOpTypeImagevariables with aSampledparameter of 2 and not decorated withNonWritable.SPIRV_RESOURCE_TYPE_COMBINED_SAMPLED_IMAGE_BIT_EXTspecifiesOpTypeSampledImagevariables.SPIRV_RESOURCE_TYPE_UNIFORM_BUFFER_BIT_EXTspecifiesOpTypeStructvariables in theUniformstorage class decorated withBlockSPIRV_RESOURCE_TYPE_READ_ONLY_STORAGE_BUFFER_BIT_EXTspecifiesOpTypeStructvariables either in theStorageBufferstorage class decorated withBlockor in theUniformstorage class decorated withBufferBlock, and decorated withNonWritableSPIRV_RESOURCE_TYPE_READ_WRITE_STORAGE_BUFFER_BIT_EXTspecifiesOpTypeStructvariables either in theStorageBufferstorage class decorated withBlockor in theUniformstorage class decorated withBufferBlock, but not decorated withNonWritableSPIRV_RESOURCE_TYPE_ACCELERATION_STRUCTURE_BIT_EXTspecifiesOpTypeAccelerationStructureKHRvariablesSPIRV_RESOURCE_TYPE_TENSOR_BIT_ARMspecifiesOpTypeTensorARMvariables
See Also
Constructors
| SpirvResourceTypeFlagBitsEXT Flags |
Bundled Patterns
Instances
type EXT_DESCRIPTOR_HEAP_SPEC_VERSION = 1 Source #
pattern EXT_DESCRIPTOR_HEAP_SPEC_VERSION :: Integral a => a Source #
type EXT_DESCRIPTOR_HEAP_EXTENSION_NAME = "VK_EXT_descriptor_heap" Source #
pattern EXT_DESCRIPTOR_HEAP_EXTENSION_NAME :: (Eq a, IsString a) => a Source #
VkTensorARM - Opaque handle to a tensor object
See Also
VK_ARM_tensors,
VK_DEFINE_NON_DISPATCHABLE_HANDLE,
VK_EXT_descriptor_heap,
BindTensorMemoryInfoARM,
CopyTensorInfoARM,
FrameBoundaryTensorsARM,
MemoryDedicatedAllocateInfoTensorARM,
TensorCaptureDescriptorDataInfoARM,
TensorMemoryBarrierARM,
TensorMemoryRequirementsInfoARM,
TensorViewCreateInfoARM,
createTensorARM,
destroyTensorARM,
getTensorOpaqueCaptureDataARM
Instances
| Eq TensorARM Source # | |
| Ord TensorARM Source # | |
| Storable TensorARM Source # | |
Defined in Vulkan.Extensions.Handles | |
| Show TensorARM Source # | |
| HasObjectType TensorARM Source # | |
Defined in Vulkan.Extensions.Handles Methods objectTypeAndHandle :: TensorARM -> (ObjectType, Word64) Source # | |
| IsHandle TensorARM Source # | |
Defined in Vulkan.Extensions.Handles | |
| Zero TensorARM Source # | |
Defined in Vulkan.Extensions.Handles | |
data SamplerCustomBorderColorCreateInfoEXT Source #
VkSamplerCustomBorderColorCreateInfoEXT - Structure specifying custom border color
Description
If format is a depth/stencil format, the aspect is determined by the
value of SamplerCreateInfo::borderColor. If
SamplerCreateInfo::borderColor is
BORDER_COLOR_FLOAT_CUSTOM_EXT, the
depth aspect is considered. If
SamplerCreateInfo::borderColor is
BORDER_COLOR_INT_CUSTOM_EXT, the
stencil aspect is considered.
If format is FORMAT_UNDEFINED, the
SamplerCreateInfo::borderColor is
BORDER_COLOR_INT_CUSTOM_EXT, and the
sampler is used with an image with a stencil format, then the
implementation must source the custom border color from either the
first or second components of
SamplerCreateInfo::borderColor and should
source it from the first component.
Valid Usage
- If
formatis notFORMAT_UNDEFINEDandformatis not a depth/stencil format then theSamplerCreateInfo::borderColortype must match the sampled type of the providedformat, as shown in the SPIR-V Type column of the https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#formats-numericformat table
- If the
customBorderColorWithoutFormat
feature is not enabled then
formatmust not beFORMAT_UNDEFINED - If the
sampler is used to sample an image view of
FORMAT_B4G4R4A4_UNORM_PACK16,FORMAT_B5G6R5_UNORM_PACK16,FORMAT_A1B5G5R5_UNORM_PACK16, orFORMAT_B5G5R5A1_UNORM_PACK16format thenformatmust not beFORMAT_UNDEFINED
Valid Usage (Implicit)
-
formatmust be a validFormatvalue
See Also
VK_EXT_custom_border_color,
ClearColorValue,
Format,
StructureType,
registerCustomBorderColorEXT
Constructors
| SamplerCustomBorderColorCreateInfoEXT | |
Fields
| |
Instances
| Show SamplerCustomBorderColorCreateInfoEXT Source # | |
Defined in Vulkan.Extensions.VK_EXT_custom_border_color Methods showsPrec :: Int -> SamplerCustomBorderColorCreateInfoEXT -> ShowS # show :: SamplerCustomBorderColorCreateInfoEXT -> String # showList :: [SamplerCustomBorderColorCreateInfoEXT] -> ShowS # | |
| ToCStruct SamplerCustomBorderColorCreateInfoEXT Source # | |
Defined in Vulkan.Extensions.VK_EXT_custom_border_color Methods withCStruct :: SamplerCustomBorderColorCreateInfoEXT -> (Ptr SamplerCustomBorderColorCreateInfoEXT -> IO b) -> IO b Source # pokeCStruct :: Ptr SamplerCustomBorderColorCreateInfoEXT -> SamplerCustomBorderColorCreateInfoEXT -> IO b -> IO b Source # withZeroCStruct :: (Ptr SamplerCustomBorderColorCreateInfoEXT -> IO b) -> IO b Source # pokeZeroCStruct :: Ptr SamplerCustomBorderColorCreateInfoEXT -> IO b -> IO b Source # cStructSize :: Int Source # | |
| Zero SamplerCustomBorderColorCreateInfoEXT Source # | |
Defined in Vulkan.Extensions.VK_EXT_custom_border_color Methods | |
data TensorViewCreateInfoARM (es :: [Type]) Source #
VkTensorViewCreateInfoARM - Structure specifying parameters of a newly created tensor view
Description
If tensor was created with the TENSOR_CREATE_MUTABLE_FORMAT_BIT_ARM
flag, format can be different from the tensor’s format, but if they
are not equal they must be compatible. Tensor format compatibility
is defined in the
Format Compatibility Classes
section. Views of compatible formats will have the same mapping between
element locations irrespective of the format, with only the
interpretation of the bit pattern changing.
Values intended to be used with one view format may not be exactly preserved when written or read through a different format. For example, an integer value that happens to have the bit pattern of a floating-point denorm or NaN may be flushed or canonicalized when written or read through a view with a floating-point format. Similarly, a value written through a signed normalized format that has a bit pattern exactly equal to -2b may be changed to -2b + 1 as described in Conversion from Normalized Fixed-Point to Floating-Point.
Valid Usage
- If
tensorwas not created withTENSOR_CREATE_MUTABLE_FORMAT_BIT_ARMflag,formatmust be identical to theformatused to createtensor
- If
tensorwas created withTENSOR_CREATE_MUTABLE_FORMAT_BIT_ARMflag,formatmust be compatible with theformatused to createtensor, as defined in Format Compatibility Classes - If
flagsincludesTENSOR_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_ARM, the descriptorBufferCaptureReplay feature must be enabled - If the
pNextchain includes aOpaqueCaptureDescriptorDataCreateInfoEXTstructure,flagsmust containTENSOR_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_ARM The
usageflags oftensormust have at least one of the following bits set:- The tensor view’s
format features
must contain the format feature flags required by the
usageflags oftensorforformatas indicated in the https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#format-feature-dependent-usage-flags section - If
tensoris non-sparse then it must be bound completely and contiguously to a singleDeviceMemoryobject
Valid Usage (Implicit)
-
sTypemust beSTRUCTURE_TYPE_TENSOR_VIEW_CREATE_INFO_ARM
-
pNextmust beNULLor a pointer to a valid instance ofOpaqueCaptureDescriptorDataCreateInfoEXT - The
sTypevalue of each structure in thepNextchain must be unique -
flagsmust be a valid combination ofTensorViewCreateFlagBitsARMvalues -
tensormust be a validTensorARMhandle -
formatmust be a validFormatvalue
See Also
VK_ARM_tensors,
VK_EXT_descriptor_heap,
Format,
ResourceDescriptorDataEXT,
StructureType,
TensorARM, TensorViewCreateFlagsARM,
createTensorViewARM
Constructors
| TensorViewCreateInfoARM | |
Fields
| |
Instances
newtype IndirectCommandsTokenTypeNV Source #
VkIndirectCommandsTokenTypeNV - Enum specifying token commands
Description
'
Supported Indirect Command Tokens
See Also
VK_NV_device_generated_commands,
IndirectCommandsLayoutTokenNV
Constructors
| IndirectCommandsTokenTypeNV Int32 |
Bundled Patterns
Instances
newtype IndirectCommandsTokenTypeEXT Source #
VkIndirectCommandsTokenTypeEXT - Enum specifying token commands
Description
'
Supported Indirect Command Tokens
See Also
VK_EXT_device_generated_commands,
IndirectCommandsLayoutTokenEXT
Constructors
| IndirectCommandsTokenTypeEXT Int32 |
Bundled Patterns
Instances
newtype ShaderCreateFlagBitsEXT Source #
VkShaderCreateFlagBitsEXT - Bitmask controlling how a shader object is created
Description
SHADER_CREATE_LINK_STAGE_BIT_EXTspecifies that a shader is linked to all other shaders created in the samecreateShadersEXTcall whoseShaderCreateInfoEXTstructures'flagsincludeSHADER_CREATE_LINK_STAGE_BIT_EXT.
SHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXTspecifies that the SubgroupSize may vary in a task, mesh, or compute shader.SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXTspecifies that the subgroup sizes must be launched with all invocations active in a task, mesh, or compute shader.SHADER_CREATE_NO_TASK_SHADER_BIT_EXTspecifies that a mesh shader must only be used without a task shader. Otherwise, the mesh shader must only be used with a task shader.SHADER_CREATE_DISPATCH_BASE_BIT_EXTspecifies that a compute shader can be used withcmdDispatchBasewith a non-zero base workgroup.SHADER_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_EXTspecifies that a fragment shader can be used with a fragment shading rate attachment.SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXTspecifies that a fragment shader can be used with a fragment density map attachment.SHADER_CREATE_INDIRECT_BINDABLE_BIT_EXTspecifies that the shader can be used in combination with https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#device-generated-commands.SHADER_CREATE_64_BIT_INDEXING_BIT_EXTspecifies that the shader enables 64-bit indexing.SHADER_CREATE_DESCRIPTOR_HEAP_BIT_EXTspecifies that the shader will use descriptor heap mappings instead of descriptor set layouts.
See Also
Constructors
| ShaderCreateFlagBitsEXT Flags |
Bundled Patterns
Instances
newtype TensorCreateFlagBitsARM Source #
VkTensorCreateFlagBitsARM - Bitmask specifying additional parameters of a tensor
Description
TENSOR_CREATE_MUTABLE_FORMAT_BIT_ARMspecifies that the tensor can be used to create aTensorViewARMwith a different format from the tensor.
TENSOR_CREATE_PROTECTED_BIT_ARMspecifies that the tensor is a protected tensor.TENSOR_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_ARMspecifies that the tensor can be used with descriptor buffers when capturing and replaying (e.g. for trace capture and replay), seeOpaqueCaptureDescriptorDataCreateInfoEXTfor more detail.
See Also
Constructors
| TensorCreateFlagBitsARM Flags64 |
Bundled Patterns
Instances
newtype TensorViewCreateFlagBitsARM Source #
VkTensorViewCreateFlagBitsARM - Bitmask specifying additional parameters of an tensor view
Description
TENSOR_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_ARMspecifies that the tensor view can be used with descriptor buffers when capturing and replaying (e.g. for trace capture and replay), seeOpaqueCaptureDescriptorDataCreateInfoEXTfor more detail.
See Also
Constructors
| TensorViewCreateFlagBitsARM Flags64 |
Bundled Patterns
| pattern TENSOR_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_ARM :: TensorViewCreateFlagBitsARM |