API_Specification » APISpec_Resource_Descriptors module

Chapter 13: Specification

Contents

Classes

struct VV::V1::Pipeline::Layout::PushConstantRange
Specification
struct VV::V1::Pipeline::Layout::DescriptorSet::Binding::FlagsCreateInfo
Specification
struct VV::V1::Pipeline::Layout::DescriptorSet::Binding
Specification
struct VV::V1::Pipeline::Layout::DescriptorSet::CreateInfo
Information about the descriptor set layout.
struct VV::V1::Pipeline::Layout::DescriptorSet::Support::SetVariableCount
Specification
struct VV::V1::Pipeline::Layout::DescriptorSet::Support
Specification
struct VV::V1::DescriptorSet::BufferInfo
Specification
struct VV::V1::DescriptorSet::Copy
Specification
struct VV::V1::DescriptorSet::ImageInfo
Specification
struct VV::V1::DescriptorSet::Write
Specification
struct VV::V1::Pipeline::Layout::DescriptorSet
Defines the types and number of descriptor sets used in a pipeline.
struct VV::V1::Pipeline::Layout::CreateInfo
Specification
struct VV::V1::Pipeline::Layout
Access to descriptor sets from a pipeline is accomplished through a pipeline layout.
struct VV::V1::DescriptorSet
Descriptors are grouped together into descriptor set objects. A descriptor set object is an opaque object containing storage for a set of descriptors, where the types and number of descriptors is defined by a descriptor set layout.
struct VV::V1::DescriptorPool::AllocateInfo
Specification
struct VV::V1::DescriptorPool::Size
Specification
struct VV::V1::DescriptorPool::CreateInfo
Specification
struct VV::V1::DescriptorPool
A descriptor pool maintains a pool of descriptors, from which descriptor sets are allocated. Descriptor pools are externally synchronized, meaning that the application must not allocate and/or free descriptor sets from the same pool in multiple threads simultaneously.

Enums

enum class EDescriptorBindingFlag: ui32 { UpdateAfterBind = VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT, UpdateUnusedWhilePending = VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT, PartiallyBound = VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT, VariableDescriptorCount = VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT, UpdateAfterBind_EXT = VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT, UpdateUnusedWhilePending_EXT = VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT, PartiallyBound_EXT = VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT, VariableDescriptorCount_EXT = VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT, VV_SpecifyBitmaskable = VK_DESCRIPTOR_BINDING_FLAG_BITS_MAX_ENUM }
Specification
enum class EDescriptorPoolCreateFlag: ui32 { FreeDescriptorSet = VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT, UpdateAfterBind = VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT, UpdateAfterBind_EXT = VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT, VV_SpecifyBitmaskable = VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM }
Specification
enum class EDescriptorSetLayoutCreateFlag: ui32 { UpdateAfterBindPool = VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT, PushDescriptor = VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR, UpdateAfterBindPool_Extension = VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT, VV_SpecifyBitmaskable = VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM }
Specification
enum class EDescriptorType: ui32 { Sampler = VK_DESCRIPTOR_TYPE_SAMPLER, CombinedImageSampler = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, SampledImage = VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, StorageImage = VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, UniformTexelBuffer = VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER, StorageTexelBuffer = VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER, UniformBuffer = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, StorageBuffer = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, UniformBufferDynamic = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, StorageBufferDynamic = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC, InputAttachment = VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, InlineUniformBlock_Extension = VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT, AccelerationStructure_KHR = VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR, AccelerationStructure_NV = VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV }
Specification

Typedefs

using Handle = VkPipelineLayout
Specification
using Handle = VkDescriptorSetLayout
Specification
using CreateFlags = Bitfield<EDescriptorBindingFlag,VkDescriptorBindingFlags>
Specification
using CreateFlags = Bitfield<EDescriptorSetLayoutCreateFlag, VkDescriptorSetLayoutCreateFlags>
Specification
using Handle = VkDescriptorSet
Specification
using Handle = VkDescriptorPool
Specification
using CreateFlags = Bitfield<EDescriptorPoolCreateFlag, VkDescriptorPoolCreateFlags>
Specification
using ResetFlags = Bitfield<EUndefined, VkDescriptorPoolResetFlags>
Specification

Functions

static void BindDescriptorSets(Handle _commandBuffer, EPipelineBindPoint _pipelineBindPoint, Pipeline::Layout::Handle _layout, ui32 _firstSet, ui32 _descriptorSetCount, const DescriptorSet::Handle* _descriptorSets, ui32 _dynamicOffsetCount, const ui32* _dynamicOffsets)
Specification
static auto Create(LogicalDevice::Handle _deviceHandle, const CreateInfo& _createInfo, const Memory::AllocationCallbacks* _allocator, Handle& _setLayout) -> EResult
Create a descriptor set layout.
static void Destroy(LogicalDevice::Handle _deviceHandle, Handle _descriptorSet, const Memory::AllocationCallbacks* _allocator)
Destroy a descriptor set layout.
static void GetSupport(LogicalDevice::Handle _deviceHandle, const CreateInfo& _createInfo, Support& _support)
Query whether a descriptor set layout can be created.
static auto Create(LogicalDevice::Handle _deviceHandle, const CreateInfo& _creationSpec, const Memory::AllocationCallbacks* _allocator, Handle& _pipelineLayout) -> EResult
Create a pipeline layout.
static void Destroy(LogicalDevice::Handle _deviceHandle, Handle _pipelineLayout, const Memory::AllocationCallbacks* _allocator)
Destroy a pipeline layout.
static void Update(LogicalDevice::Handle _device, ui32 _descriptorWriteCount, const Write* _descriptorWrites, ui32 _descriptorCopyCount, const Copy* _descriptorCopies)
Specification.
static auto Allocate(LogicalDevice::Handle _device, const AllocateInfo& _allocateInfo, DescriptorSet::Handle* _descriptorSets) -> EResult
Specification
static auto Create(LogicalDevice::Handle _device, const CreateInfo& _createInfo, const Memory::AllocationCallbacks* _allocator, Handle& _descriptorPool) -> EResult
Specification
static void Destroy(LogicalDevice::Handle _device, Handle _descriptorPool, const Memory::AllocationCallbacks* _allocator)
Specification
static auto Free(LogicalDevice::Handle _device, Handle _descriptorPool, ui32 _descriptorSetCount, const DescriptorSet::Handle* _descriptorSets) -> EResult
Specification
static auto Reset(LogicalDevice::Handle _device, Handle _descriptorPool, ResetFlags& _flags) -> EResult
Specification

Enum documentation

Typedef documentation

using Handle = VkPipelineLayout

Specification

using Handle = VkDescriptorSetLayout

Specification

using CreateFlags = Bitfield<EDescriptorBindingFlag,VkDescriptorBindingFlags>

Specification

using CreateFlags = Bitfield<EDescriptorSetLayoutCreateFlag, VkDescriptorSetLayoutCreateFlags>

Specification

using Handle = VkDescriptorSet

Specification

using Handle = VkDescriptorPool

Specification

using CreateFlags = Bitfield<EDescriptorPoolCreateFlag, VkDescriptorPoolCreateFlags>

Specification

using ResetFlags = Bitfield<EUndefined, VkDescriptorPoolResetFlags>

Specification

Function documentation

static void BindDescriptorSets(Handle _commandBuffer, EPipelineBindPoint _pipelineBindPoint, Pipeline::Layout::Handle _layout, ui32 _firstSet, ui32 _descriptorSetCount, const DescriptorSet::Handle* _descriptorSets, ui32 _dynamicOffsetCount, const ui32* _dynamicOffsets)

Specification

static EResult Create(LogicalDevice::Handle _deviceHandle, const CreateInfo& _createInfo, const Memory::AllocationCallbacks* _allocator, Handle& _setLayout)

Create a descriptor set layout.

Parameters
_deviceHandle
_createInfo
_allocator
_setLayout

Specification

static void Destroy(LogicalDevice::Handle _deviceHandle, Handle _descriptorSet, const Memory::AllocationCallbacks* _allocator)

Destroy a descriptor set layout.

Parameters
_deviceHandle
_descriptorSet
_allocator

Specification

static void GetSupport(LogicalDevice::Handle _deviceHandle, const CreateInfo& _createInfo, Support& _support)

Query whether a descriptor set layout can be created.

Parameters
_deviceHandle
_createInfo
_support

Specification

static EResult Create(LogicalDevice::Handle _deviceHandle, const CreateInfo& _creationSpec, const Memory::AllocationCallbacks* _allocator, Handle& _pipelineLayout)

Create a pipeline layout.

Parameters
_deviceHandle
_creationSpec
_allocator
_pipelineLayout

Specification

static void Destroy(LogicalDevice::Handle _deviceHandle, Handle _pipelineLayout, const Memory::AllocationCallbacks* _allocator)

Destroy a pipeline layout.

Parameters
_deviceHandle
_pipelineLayout
_allocator

Specification

static void Update(LogicalDevice::Handle _device, ui32 _descriptorWriteCount, const Write* _descriptorWrites, ui32 _descriptorCopyCount, const Copy* _descriptorCopies)

Specification.

Parameters
_device
_descriptorWriteCount
_descriptorWrites
_descriptorCopyCount
_descriptorCopies

static EResult Allocate(LogicalDevice::Handle _device, const AllocateInfo& _allocateInfo, DescriptorSet::Handle* _descriptorSets)

Specification

Parameters
_device
_allocateInfo
_descriptorSets

static EResult Create(LogicalDevice::Handle _device, const CreateInfo& _createInfo, const Memory::AllocationCallbacks* _allocator, Handle& _descriptorPool)

Specification

Parameters
_device
_createInfo
_allocator
_descriptorPool

static void Destroy(LogicalDevice::Handle _device, Handle _descriptorPool, const Memory::AllocationCallbacks* _allocator)

Specification

Parameters
_device
_descriptorPool
_allocator

static EResult Free(LogicalDevice::Handle _device, Handle _descriptorPool, ui32 _descriptorSetCount, const DescriptorSet::Handle* _descriptorSets)

Specification

Parameters
_device
_descriptorPool
_descriptorSetCount
_descriptorSets

static EResult Reset(LogicalDevice::Handle _device, Handle _descriptorPool, ResetFlags& _flags)

Specification

Parameters
_device
_descriptorPool
_flags