Documentation
¶
Index ¶
- Constants
- type DescriptorBindingFlags
- type DescriptorSetLayoutBindingFlagsCreateInfo
- type DescriptorSetVariableDescriptorCountAllocateInfo
- type DescriptorSetVariableDescriptorCountLayoutSupport
- func (o *DescriptorSetVariableDescriptorCountLayoutSupport) PopulateHeader(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, ...) (unsafe.Pointer, error)
- func (o *DescriptorSetVariableDescriptorCountLayoutSupport) PopulateOutData(cDataPointer unsafe.Pointer, helpers ...any) (next unsafe.Pointer, err error)
- type PhysicalDeviceDescriptorIndexingFeatures
- func (o PhysicalDeviceDescriptorIndexingFeatures) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, ...) (unsafe.Pointer, error)
- func (o *PhysicalDeviceDescriptorIndexingFeatures) PopulateHeader(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, ...) (unsafe.Pointer, error)
- func (o *PhysicalDeviceDescriptorIndexingFeatures) PopulateOutData(cDataPointer unsafe.Pointer, helpers ...any) (next unsafe.Pointer, err error)
- type PhysicalDeviceDescriptorIndexingProperties
- func (o *PhysicalDeviceDescriptorIndexingProperties) PopulateHeader(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, ...) (unsafe.Pointer, error)
- func (o *PhysicalDeviceDescriptorIndexingProperties) PopulateOutData(cDataPointer unsafe.Pointer, helpers ...any) (next unsafe.Pointer, err error)
Constants ¶
const ( // ExtensionName is "VK_EXT_descriptor_indexing" // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_descriptor_indexing.html ExtensionName string = C.VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME // DescriptorBindingPartiallyBound indicates that descriptors in this binding that are // not dynamically used need not contain valid descriptors at the time the descriptors // are consumed // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDescriptorBindingFlagBits.html DescriptorBindingPartiallyBound DescriptorBindingFlags = C.VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT // DescriptorBindingUpdateAfterBind indicates that if descriptors in this binding are updated // between when the DescriptorSet is bound in a CommandBuffer and when that CommandBuffer 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 CommandBuffer // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDescriptorBindingFlagBits.html DescriptorBindingUpdateAfterBind DescriptorBindingFlags = C.VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT // DescriptorBindingUpdateUnusedWhilePending indicates that descriptors in this binding can be // updated after a CommandBuffer has bound this DescriptorSet, or while a CommandBuffer that // uses this DescriptorSet is pending execution, as long as the descriptors that are updated // are not used by those CommandBuffer objects // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDescriptorBindingFlagBits.html DescriptorBindingUpdateUnusedWhilePending DescriptorBindingFlags = C.VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT // DescriptorBindingVariableDescriptorCount indicates that this is a variable-sized descriptor // binding whose size will be specified when a DescriptorSet is allocated using this layout // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDescriptorBindingFlagBits.html DescriptorBindingVariableDescriptorCount DescriptorBindingFlags = C.VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT // DescriptorPoolCreateUpdateAfterBind specifies that DescriptorSet objects allocated from this // pool can include bindings with DescriptorBindingUpdateAfterBind // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDescriptorPoolCreateFlagBits.html DescriptorPoolCreateUpdateAfterBind core1_0.DescriptorPoolCreateFlags = C.VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT // DescriptorSetLayoutCreateUpdateAfterBindPool specifies that DescriptorSet objects using this // layout must be allocated from a DescriptorPool created with DescriptorPoolCreateUpdateAfterBind // set // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDescriptorSetLayoutCreateFlagBits.html DescriptorSetLayoutCreateUpdateAfterBindPool core1_0.DescriptorSetLayoutCreateFlags = C.VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT // VkErrorFragmentation indicates a DescriptorPool creation has failed due to fragmentation // // https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkResult.html VkErrorFragmentation common.VkResult = C.VK_ERROR_FRAGMENTATION_EXT )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type DescriptorBindingFlags ¶
type DescriptorBindingFlags int32
DescriptorBindingFlags specifies DescriptorSetLayout binding properties
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDescriptorBindingFlagBits.html
func (DescriptorBindingFlags) Register ¶
func (f DescriptorBindingFlags) Register(str string)
func (DescriptorBindingFlags) String ¶
func (f DescriptorBindingFlags) String() string
type DescriptorSetLayoutBindingFlagsCreateInfo ¶
type DescriptorSetLayoutBindingFlagsCreateInfo struct {
// BindingFlags is a slice of DescriptorBindingFlags, one for each DescriptorSetLayout binding
BindingFlags []DescriptorBindingFlags
common.NextOptions
}
DescriptorSetLayoutBindingFlagsCreateInfo specifies parameters of a newly-created DescriptorSetLayout
type DescriptorSetVariableDescriptorCountAllocateInfo ¶
type DescriptorSetVariableDescriptorCountAllocateInfo struct {
// DescriptorCounts is a slice of descriptor counts, with each member specifying the number
// of descriptors in a variable-sized descriptor binding in the corresponding DescriptorSet
// being allocated
DescriptorCounts []int
common.NextOptions
}
DescriptorSetVariableDescriptorCountAllocateInfo specifies additional allocation parameters for DescriptorSet objects
type DescriptorSetVariableDescriptorCountLayoutSupport ¶
type DescriptorSetVariableDescriptorCountLayoutSupport struct {
// MaxVariableDescriptorCount indicates the maximum number of descriptors supported in the
// highest numbered binding of the layout, if that binding is variable-sized
MaxVariableDescriptorCount int
common.NextOutData
}
DescriptorSetVariableDescriptorCountLayoutSupport returns information about whether a DescriptorSetLayout can be supported
func (*DescriptorSetVariableDescriptorCountLayoutSupport) PopulateHeader ¶
func (*DescriptorSetVariableDescriptorCountLayoutSupport) PopulateOutData ¶
type PhysicalDeviceDescriptorIndexingFeatures ¶
type PhysicalDeviceDescriptorIndexingFeatures struct {
// ShaderInputAttachmentArrayDynamicIndexing indicates whether arrays of input attachments
// can be indexed by dynamically uniform integer expressions in shader code
ShaderInputAttachmentArrayDynamicIndexing bool
// ShaderUniformTexelBufferArrayDynamicIndexing indicates whether arrays of uniform texel
// Buffer objects can be indexed by dynamically uniform integer expressions in shader code
ShaderUniformTexelBufferArrayDynamicIndexing bool
// ShaderStorageTexelBufferArrayDynamicIndexing indicates whether arrays of storage texel
// Buffer objects can be indexed by dynamically uniform integer expressions in shader code
ShaderStorageTexelBufferArrayDynamicIndexing bool
// ShaderUniformBufferArrayNonUniformIndexing indicates whether arrays of uniform Buffer objects
// can be indexed by non-uniform integer expressions in shader code.
ShaderUniformBufferArrayNonUniformIndexing bool
// ShaderSampledImageArrayNonUniformIndexing indicates whether arrays of Sampler objects or sampled
// Image objects can be indexed by non-uniform integer expressions in shader code
ShaderSampledImageArrayNonUniformIndexing bool
// ShaderStorageBufferArrayNonUniformIndexing indicates whether arrays of storage buffers
// can be indexed by non-uniform integer expressions in shader code
ShaderStorageBufferArrayNonUniformIndexing bool
// ShaderStorageImageArrayNonUniformIndexing indicates whether arrays of storage Image objects can
// be indexed by non-uniform integer expressions in shader code
ShaderStorageImageArrayNonUniformIndexing bool
// ShaderInputAttachmentArrayNonUniformIndexing indicates whether arrays of input attachments
// can be indexed by non-uniform integer expressions in shader code
ShaderInputAttachmentArrayNonUniformIndexing bool
// ShaderUniformTexelBufferArrayNonUniformIndexing indicates whether arrays of uniform texel
// Buffer objects can be indexed by non-uniform integer expressions in shader code
ShaderUniformTexelBufferArrayNonUniformIndexing bool
// ShaderStorageTexelBufferArrayNonUniformIndexing indicates whether arrays of storage texel
// Buffer objects can be indexed by non-uniform integer expressions in shader code
ShaderStorageTexelBufferArrayNonUniformIndexing bool
// DescriptorBindingUniformBufferUpdateAfterBind indicates whether the implementation supports
// updating uniform Buffer descriptors after a set is bound
DescriptorBindingUniformBufferUpdateAfterBind bool
// DescriptorBindingSampledImageUpdateAfterBind indicates whether the implementation supports
// updating sampled Image descriptors after a set is bound
DescriptorBindingSampledImageUpdateAfterBind bool
// DescriptorBindingStorageImageUpdateAfterBind indicates whether the implementation supports
// updating storage Image descriptors after a set is bound
DescriptorBindingStorageImageUpdateAfterBind bool
// DescriptorBindingStorageBufferUpdateAfterBind indicates whether the implementation
// supports updating storage Buffer descriptors after a set is bound
DescriptorBindingStorageBufferUpdateAfterBind bool
// DescriptorBindingUniformTexelBufferUpdateAfterBind indicates whether the implementation
// supports updating uniform texel Buffer descriptors after a set is bound
DescriptorBindingUniformTexelBufferUpdateAfterBind bool
// DescriptorBindingStorageTexelBufferUpdateAfterBind indicates whether the impelementation
// supports updating storage texel Buffer descriptors after a set is bound
DescriptorBindingStorageTexelBufferUpdateAfterBind bool
// DescriptorBindingUpdateUnusedWhilePending indicates whether the implementation supports
// updating descriptors while the set is in use
DescriptorBindingUpdateUnusedWhilePending bool
// DescriptorBindingPartiallyBound indicates whether the implementation supports statically
// using a DescriptorSet binding in which some descriptors are not valid
DescriptorBindingPartiallyBound bool
// DescriptorBindingVariableDescriptorCount indicates whether the implementation supports
// DescriptorSet object with a variable-sized last binding
DescriptorBindingVariableDescriptorCount bool
// RuntimeDescriptorArray indicates whether the implementation supports the SPIR-V
// RuntimeDescriptorArray capability
RuntimeDescriptorArray bool
common.NextOptions
common.NextOutData
}
PhysicalDeviceDescriptorIndexingFeatures describes descriptor indexing features that can be supported by an implementation
func (PhysicalDeviceDescriptorIndexingFeatures) PopulateCPointer ¶
func (*PhysicalDeviceDescriptorIndexingFeatures) PopulateHeader ¶
func (*PhysicalDeviceDescriptorIndexingFeatures) PopulateOutData ¶
type PhysicalDeviceDescriptorIndexingProperties ¶
type PhysicalDeviceDescriptorIndexingProperties struct {
// MaxUpdateAfterBindDescriptorsInAllPools is the maximum number of descriptors (summed over
// all descriptor types) that can be created across all pools that are created with
// DescriptorPoolCreateUpdateAfterBind
MaxUpdateAfterBindDescriptorsInAllPools int
// ShaderUniformBufferArrayNonUniformIndexingNative is a boolean value indicating whether
// uniform Buffer descriptors natively support nonuniform indexing
ShaderUniformBufferArrayNonUniformIndexingNative bool
// ShaderSampledImageArrayNonUniformIndexingNative is a boolean value indicating whether
// Sampler and Image descriptors natively support nonuniform indexing
ShaderSampledImageArrayNonUniformIndexingNative bool
// ShaderStorageBufferArrayNonUniformIndexingNative is a boolean value indicating whether
// storage Buffer descriptors natively support nonuniform indexing
ShaderStorageBufferArrayNonUniformIndexingNative bool
// ShaderStorageImageArrayNonUniformIndexingNative is a boolean value indicating whether storage
// Image descriptors natively support nonuniform indexing
ShaderStorageImageArrayNonUniformIndexingNative bool
// ShaderInputAttachmentArrayNonUniformIndexingNative is a boolean value indicating whether
// input attachment descriptors natively support nonuniform indexing
ShaderInputAttachmentArrayNonUniformIndexingNative bool
// RobustBufferAccessUpdateAfterBind is a boolean value indicating whether RobustBufferAccess
// can be enabled in a Device simultaneously with DescriptorBindingUniformBufferUpdateAfterBind,
// DescriptorBindingStorageBufferUpdateAfterBind,
// DescriptorBindingUniformTexelBufferUpdateAfterBind, and/or
// DescriptorBindingStorageTexelBufferUpdateAfterBind
RobustBufferAccessUpdateAfterBind bool
// QuadDivergentImplicitLod is a boolean value indicating whether implicit level of detail
// calculations for Image operations have well-defined results when the Image and/or Sampler
// objects used for the instruction are not uniform within a quad
QuadDivergentImplicitLod bool
// MaxPerStageDescriptorUpdateAfterBindSamplers is similar to <axPerStageDescriptorSamplers
// but counts descriptors from descriptor sets created with or without
// DescriptorSetLayoutCreateUpdateAfterBindPool
MaxPerStageDescriptorUpdateAfterBindSamplers int
// MaxPerStageDescriptorUpdateAfterBindUniformBuffers is similar to
// MaxPerStageDescriptorUniformBuffers but counts descriptors from DescriptorSet objects
// created with or without DescriptorSetLayoutCreateUpdateAfterBindPool
MaxPerStageDescriptorUpdateAfterBindUniformBuffers int
// MaxPerStageDescriptorUpdateAfterBindStorageBuffers is similar to
// MaxPerStageDescriptorStorageBuffers but counts descriptors from DescriptorSet created with
// or without DescriptorSetLayoutCreateUpdateAfterBindPool
MaxPerStageDescriptorUpdateAfterBindStorageBuffers int
// MaxPerStageDescriptorUpdateAfterBindSampledImages is similar to
// MaxPerStageDescriptorSampledImages but counts descriptors from DescriptorSets created with
// or without DescriptorSetLayoutCreateUpdateAfterBindPool
MaxPerStageDescriptorUpdateAfterBindSampledImages int
// MaxPerStageDescriptorUpdateAfterBindStorageImages is similar to
// MaxPerStageDescriptorStorageImages but counts descriptors from DescriptorSet objects created
// with or without DescriptorSetLayoutCreateUpdateAfterBindPool
MaxPerStageDescriptorUpdateAfterBindStorageImages int
// MaxPerStageDescriptorUpdateAfterBindInputAttachments is similar to
// MaxPerStageDescriptorInputAttachments but counts descriptors from DescriptorSet objects
// created with or without DescriptorSetLayoutCreateUpdateAfterBindPool
MaxPerStageDescriptorUpdateAfterBindInputAttachments int
// MaxPerStageUpdateAfterBindResources is similar to MaxPerStageResources but counts
// descriptors from DescriptorSet objects created with or without
// DescriptorSetLayoutCreateUpdateAfterBindPool
MaxPerStageUpdateAfterBindResources int
// MaxDescriptorSetUpdateAfterBindSamplers is similar to MaxDescriptorSetSamplers but counts
// descriptors from DescriptorSet created with or without
// DescriptorSetLayoutCreateUpdateAfterBindPool
MaxDescriptorSetUpdateAfterBindSamplers int
// MaxDescriptorSetUpdateAfterBindUniformBuffers is similar to MaxDescriptorSetUniformBuffers
// but counts descriptors from DescriptorSet objects created with or without
// DescriptorSetLayoutCreateUpdateAfterBindPool
MaxDescriptorSetUpdateAfterBindUniformBuffers int
// MaxDescriptorSetUpdateAfterBindUniformBuffersDynamic is similar to
// MaxDescriptorSetUniformBuffersDynamic but counts descriptors from DescriptorSet objects
// created with or without DescriptorSetLayoutCreateUpdateAfterBindPool
MaxDescriptorSetUpdateAfterBindUniformBuffersDynamic int
// MaxDescriptorSetUpdateAfterBindStorageBuffers is similar to MaxDescriptorSetStorageBuffers
// but counts descriptors from DescriptorSet objects created with or without
// DescriptorSetLayoutCreateUpdateAfterBindPool
MaxDescriptorSetUpdateAfterBindStorageBuffers int
// MaxDescriptorSetUpdateAfterBindStorageBuffersDynamic is similar to
// MaxDescriptorSetStorageBuffersDynamic but counts descriptors from DescriptorSet objects
// created with or without DescriptorSetLayoutCreateUpdateAfterBindPool
MaxDescriptorSetUpdateAfterBindStorageBuffersDynamic int
// MaxDescriptorSetUpdateAfterBindSampledImages is similar to MaxDescriptorSetSampledImages
// but counts descriptors from DescriptorSet objects created with or without
// DescriptorSetLayoutCreateUpdateAfterBindPool
MaxDescriptorSetUpdateAfterBindSampledImages int
// MaxDescriptorSetUpdateAfterBindStorageImages is similar to MaxDescriptorSetStorageImages
// but counts descriptors from DescriptorSet objects created with or without
// DescriptorSetLayoutCreateUpdateAfterBindPool
MaxDescriptorSetUpdateAfterBindStorageImages int
// MaxDescriptorSetUpdateAfterBindInputAttachments is similar to MaxDescriptorSetInputAttachments
// but counts descriptors from DescriptorSet objects created with or without
// DescriptorSetLayoutCreateUpdateAfterBindPool
MaxDescriptorSetUpdateAfterBindInputAttachments int
common.NextOutData
}
PhysicalDeviceDescriptorIndexingProperties describes descriptor indexing properties that can be supported by an implementation