vulkan-3.26.1: Bindings to the Vulkan graphics API.
Safe HaskellSafe-Inferred
LanguageHaskell2010

Vulkan.Core12.Enums.DescriptorBindingFlagBits

Synopsis

Documentation

newtype DescriptorBindingFlagBits Source #

VkDescriptorBindingFlagBits - Bitmask specifying descriptor set layout binding properties

Description

Note

Note that while DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT and DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT both involve updates to descriptor sets after they are bound, DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT is a weaker requirement since it is only about descriptors that are not used, whereas DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT requires the implementation to observe updates to descriptors that are used.

See Also

VK_EXT_descriptor_indexing, VK_VERSION_1_2, DescriptorBindingFlags

Bundled Patterns

pattern DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT :: DescriptorBindingFlagBits

DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT indicates that if descriptors in this binding are updated between when the descriptor set is bound in a command buffer and when that command buffer is submitted to a queue, then the submission will use the most recently set descriptors for this binding and the updates do not invalidate the command buffer. Descriptor bindings created with this flag are also partially exempt from the external synchronization requirement in updateDescriptorSetWithTemplateKHR and updateDescriptorSets. Multiple descriptors with this flag set can be updated concurrently in different threads, though the same descriptor must not be updated concurrently by two threads. Descriptors with this flag set can be updated concurrently with the set being bound to a command buffer in another thread, but not concurrently with the set being reset or freed.

pattern DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT :: DescriptorBindingFlagBits

DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT indicates that descriptors in this binding can be updated after a command buffer has bound this descriptor set, or while a command buffer that uses this descriptor set is pending execution, as long as the descriptors that are updated are not used by those command buffers. Descriptor bindings created with this flag are also partially exempt from the external synchronization requirement in updateDescriptorSetWithTemplateKHR and updateDescriptorSets in the same way as for DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT. If DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT is also set, then descriptors can be updated as long as they are not dynamically used by any shader invocations. If DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT is not set, then descriptors can be updated as long as they are not statically used by any shader invocations.

pattern DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT :: DescriptorBindingFlagBits

DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT indicates that descriptors in this binding that are not dynamically used need not contain valid descriptors at the time the descriptors are consumed. A descriptor is dynamically used if any shader invocation executes an instruction that performs any memory access using the descriptor. If a descriptor is not dynamically used, any resource referenced by the descriptor is not considered to be referenced during command execution.

pattern DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT :: DescriptorBindingFlagBits

DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT indicates that this is a variable-sized descriptor binding whose size will be specified when a descriptor set is allocated using this layout. The value of descriptorCount is treated as an upper bound on the size of the binding. This must only be used for the last binding in the descriptor set layout (i.e. the binding with the largest value of binding). For the purposes of counting against limits such as maxDescriptorSet* and maxPerStageDescriptor*, the full value of descriptorCount is counted, except for descriptor bindings with a descriptor type of DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK, when DescriptorSetLayoutCreateInfo::flags does not contain DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT. In this case, descriptorCount specifies the upper bound on the byte size of the binding; thus it counts against the maxInlineUniformBlockSize and maxInlineUniformTotalSize limits instead.

Instances

Instances details
Storable DescriptorBindingFlagBits Source # 
Instance details

Defined in Vulkan.Core12.Enums.DescriptorBindingFlagBits

Bits DescriptorBindingFlagBits Source # 
Instance details

Defined in Vulkan.Core12.Enums.DescriptorBindingFlagBits

Methods

(.&.) :: DescriptorBindingFlagBits -> DescriptorBindingFlagBits -> DescriptorBindingFlagBits #

(.|.) :: DescriptorBindingFlagBits -> DescriptorBindingFlagBits -> DescriptorBindingFlagBits #

xor :: DescriptorBindingFlagBits -> DescriptorBindingFlagBits -> DescriptorBindingFlagBits #

complement :: DescriptorBindingFlagBits -> DescriptorBindingFlagBits #

shift :: DescriptorBindingFlagBits -> Int -> DescriptorBindingFlagBits #

rotate :: DescriptorBindingFlagBits -> Int -> DescriptorBindingFlagBits #

zeroBits :: DescriptorBindingFlagBits #

bit :: Int -> DescriptorBindingFlagBits #

setBit :: DescriptorBindingFlagBits -> Int -> DescriptorBindingFlagBits #

clearBit :: DescriptorBindingFlagBits -> Int -> DescriptorBindingFlagBits #

complementBit :: DescriptorBindingFlagBits -> Int -> DescriptorBindingFlagBits #

testBit :: DescriptorBindingFlagBits -> Int -> Bool #

bitSizeMaybe :: DescriptorBindingFlagBits -> Maybe Int #

bitSize :: DescriptorBindingFlagBits -> Int #

isSigned :: DescriptorBindingFlagBits -> Bool #

shiftL :: DescriptorBindingFlagBits -> Int -> DescriptorBindingFlagBits #

unsafeShiftL :: DescriptorBindingFlagBits -> Int -> DescriptorBindingFlagBits #

shiftR :: DescriptorBindingFlagBits -> Int -> DescriptorBindingFlagBits #

unsafeShiftR :: DescriptorBindingFlagBits -> Int -> DescriptorBindingFlagBits #

rotateL :: DescriptorBindingFlagBits -> Int -> DescriptorBindingFlagBits #

rotateR :: DescriptorBindingFlagBits -> Int -> DescriptorBindingFlagBits #

popCount :: DescriptorBindingFlagBits -> Int #

FiniteBits DescriptorBindingFlagBits Source # 
Instance details

Defined in Vulkan.Core12.Enums.DescriptorBindingFlagBits

Read DescriptorBindingFlagBits Source # 
Instance details

Defined in Vulkan.Core12.Enums.DescriptorBindingFlagBits

Show DescriptorBindingFlagBits Source # 
Instance details

Defined in Vulkan.Core12.Enums.DescriptorBindingFlagBits

Eq DescriptorBindingFlagBits Source # 
Instance details

Defined in Vulkan.Core12.Enums.DescriptorBindingFlagBits

Ord DescriptorBindingFlagBits Source # 
Instance details

Defined in Vulkan.Core12.Enums.DescriptorBindingFlagBits

Zero DescriptorBindingFlagBits Source # 
Instance details

Defined in Vulkan.Core12.Enums.DescriptorBindingFlagBits