ext_descriptor_indexing

package
v2.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 27, 2023 License: MIT Imports: 6 Imported by: 2

Documentation

Index

Constants

View Source
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

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDescriptorSetLayoutBindingFlagsCreateInfo.html

func (DescriptorSetLayoutBindingFlagsCreateInfo) PopulateCPointer

func (o DescriptorSetLayoutBindingFlagsCreateInfo) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

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

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDescriptorSetVariableDescriptorCountAllocateInfo.html

func (DescriptorSetVariableDescriptorCountAllocateInfo) PopulateCPointer

func (o DescriptorSetVariableDescriptorCountAllocateInfo) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

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

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDescriptorSetVariableDescriptorCountLayoutSupport.html

func (*DescriptorSetVariableDescriptorCountLayoutSupport) PopulateHeader

func (o *DescriptorSetVariableDescriptorCountLayoutSupport) PopulateHeader(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

func (*DescriptorSetVariableDescriptorCountLayoutSupport) PopulateOutData

func (o *DescriptorSetVariableDescriptorCountLayoutSupport) PopulateOutData(cDataPointer unsafe.Pointer, helpers ...any) (next unsafe.Pointer, err error)

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

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceDescriptorIndexingFeatures.html

func (PhysicalDeviceDescriptorIndexingFeatures) PopulateCPointer

func (o PhysicalDeviceDescriptorIndexingFeatures) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

func (*PhysicalDeviceDescriptorIndexingFeatures) PopulateHeader

func (o *PhysicalDeviceDescriptorIndexingFeatures) PopulateHeader(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

func (*PhysicalDeviceDescriptorIndexingFeatures) PopulateOutData

func (o *PhysicalDeviceDescriptorIndexingFeatures) PopulateOutData(cDataPointer unsafe.Pointer, helpers ...any) (next unsafe.Pointer, err error)

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

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceDescriptorIndexingProperties.html

func (*PhysicalDeviceDescriptorIndexingProperties) PopulateHeader

func (o *PhysicalDeviceDescriptorIndexingProperties) PopulateHeader(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

func (*PhysicalDeviceDescriptorIndexingProperties) PopulateOutData

func (o *PhysicalDeviceDescriptorIndexingProperties) PopulateOutData(cDataPointer unsafe.Pointer, helpers ...any) (next unsafe.Pointer, err error)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL