module
APISpec_Resource_DescriptorsChapter 13: Specification
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
enum class EDescriptorBindingFlag: ui32
#include <VaultedVulkan/VV_Enums.hpp>
enum class EDescriptorPoolCreateFlag: ui32
#include <VaultedVulkan/VV_Enums.hpp>
enum class EDescriptorSetLayoutCreateFlag: ui32
#include <VaultedVulkan/VV_Enums.hpp>
enum class EDescriptorType: ui32
#include <VaultedVulkan/VV_Enums.hpp>
Typedef documentation
using Handle = VkPipelineLayout
#include <VaultedVulkan/VV_Pipelines.hpp>
using Handle = VkDescriptorSetLayout
#include <VaultedVulkan/VV_Pipelines.hpp>
using CreateFlags = Bitfield<EDescriptorBindingFlag,VkDescriptorBindingFlags>
#include <VaultedVulkan/VV_Pipelines.hpp>
using CreateFlags = Bitfield<EDescriptorSetLayoutCreateFlag, VkDescriptorSetLayoutCreateFlags>
#include <VaultedVulkan/VV_Pipelines.hpp>
using Handle = VkDescriptorSet
#include <VaultedVulkan/VV_Resource.hpp>
using Handle = VkDescriptorPool
#include <VaultedVulkan/VV_Resource.hpp>
using CreateFlags = Bitfield<EDescriptorPoolCreateFlag, VkDescriptorPoolCreateFlags>
#include <VaultedVulkan/VV_Resource.hpp>
using ResetFlags = Bitfield<EUndefined, VkDescriptorPoolResetFlags>
#include <VaultedVulkan/VV_Resource.hpp>
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)
#include <VaultedVulkan/VV_Command.hpp>
static EResult Create(LogicalDevice::Handle _deviceHandle,
const CreateInfo& _createInfo,
const Memory::AllocationCallbacks* _allocator,
Handle& _setLayout)
#include <VaultedVulkan/VV_Pipelines.hpp>
Create a descriptor set layout.
Parameters | |
---|---|
_deviceHandle | |
_createInfo | |
_allocator | |
_setLayout |
static void Destroy(LogicalDevice::Handle _deviceHandle,
Handle _descriptorSet,
const Memory::AllocationCallbacks* _allocator)
#include <VaultedVulkan/VV_Pipelines.hpp>
Destroy a descriptor set layout.
Parameters | |
---|---|
_deviceHandle | |
_descriptorSet | |
_allocator |
static void GetSupport(LogicalDevice::Handle _deviceHandle,
const CreateInfo& _createInfo,
Support& _support)
#include <VaultedVulkan/VV_Pipelines.hpp>
Query whether a descriptor set layout can be created.
Parameters | |
---|---|
_deviceHandle | |
_createInfo | |
_support |
static EResult Create(LogicalDevice::Handle _deviceHandle,
const CreateInfo& _creationSpec,
const Memory::AllocationCallbacks* _allocator,
Handle& _pipelineLayout)
#include <VaultedVulkan/VV_Pipelines.hpp>
Create a pipeline layout.
Parameters | |
---|---|
_deviceHandle | |
_creationSpec | |
_allocator | |
_pipelineLayout |
static void Destroy(LogicalDevice::Handle _deviceHandle,
Handle _pipelineLayout,
const Memory::AllocationCallbacks* _allocator)
#include <VaultedVulkan/VV_Pipelines.hpp>
Destroy a pipeline layout.
Parameters | |
---|---|
_deviceHandle | |
_pipelineLayout | |
_allocator |
static void Update(LogicalDevice::Handle _device,
ui32 _descriptorWriteCount,
const Write* _descriptorWrites,
ui32 _descriptorCopyCount,
const Copy* _descriptorCopies)
#include <VaultedVulkan/VV_Resource.hpp>
Parameters | |
---|---|
_device | |
_descriptorWriteCount | |
_descriptorWrites | |
_descriptorCopyCount | |
_descriptorCopies |
static EResult Allocate(LogicalDevice::Handle _device,
const AllocateInfo& _allocateInfo,
DescriptorSet::Handle* _descriptorSets)
#include <VaultedVulkan/VV_Resource.hpp>
Parameters | |
---|---|
_device | |
_allocateInfo | |
_descriptorSets |
static EResult Create(LogicalDevice::Handle _device,
const CreateInfo& _createInfo,
const Memory::AllocationCallbacks* _allocator,
Handle& _descriptorPool)
#include <VaultedVulkan/VV_Resource.hpp>
Parameters | |
---|---|
_device | |
_createInfo | |
_allocator | |
_descriptorPool |
static void Destroy(LogicalDevice::Handle _device,
Handle _descriptorPool,
const Memory::AllocationCallbacks* _allocator)
#include <VaultedVulkan/VV_Resource.hpp>
Parameters | |
---|---|
_device | |
_descriptorPool | |
_allocator |
static EResult Free(LogicalDevice::Handle _device,
Handle _descriptorPool,
ui32 _descriptorSetCount,
const DescriptorSet::Handle* _descriptorSets)
#include <VaultedVulkan/VV_Resource.hpp>
Parameters | |
---|---|
_device | |
_descriptorPool | |
_descriptorSetCount | |
_descriptorSets |
static EResult Reset(LogicalDevice::Handle _device,
Handle _descriptorPool,
ResetFlags& _flags)
#include <VaultedVulkan/VV_Resource.hpp>
Parameters | |
---|---|
_device | |
_descriptorPool | |
_flags |