API_Specification » APISpec_Resource_Creation module

Chapter 11: Specification

Contents

Classes

struct VV::V0::Memory::Requirements
Structure describing the memory requirements for a buffer or an image.
struct VV::V1::Buffer::CreateInfo
Specification
struct VV::V1::Buffer
A linear array of data.
struct VV::V1::BufferView::CreateInfo
Specification
struct VV::V1::BufferView
A buffer view represents a contiguous range of a buffer and a specific format to be used to interpret the data.
struct VV::V1::Image::CreateInfo
Specification
struct VV::V1::Image::SubresourceRange
Specification
struct VV::V1::Image
Images represent multidimensional - up to 3 - arrays of data which can be used for various purposes (e.g. attachments, textures), by binding them to a graphics or compute pipeline via descriptor sets, or by directly specifying them as parameters to certain commands.
struct VV::V1::ImageView::CreateInfo
Specification
struct VV::V1::ImageView
An object that represents an image subresource range of a specific image, and state that controls how the contents are interpreted.
struct VV::Corridors::ComponentMapping
Structure specifying a color component mapping.

Enums

enum class EBufferCreateFlag: ui32 { SparseBinding = VK_BUFFER_CREATE_SPARSE_BINDING_BIT, SparseResidency = VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT, SparseAliased = VK_BUFFER_CREATE_SPARSE_ALIASED_BIT, Protected = VK_BUFFER_CREATE_PROTECTED_BIT, DeviceAddressCaptureReplay = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT, DeviceAddressCaptureReplayExtension = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT, DeviceAddressCaptureReplayKHR = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR, VV_SpecifyBitmaskable = VK_BUFFER_USAGE_FLAG_BITS_MAX_ENUM }
Specification
enum class EBufferUsage: ui32 { TransferSource = VK_BUFFER_USAGE_TRANSFER_SRC_BIT, TransferDestination = VK_BUFFER_USAGE_TRANSFER_DST_BIT, UniformTexelBuffer = VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT, StorageTexelBuffer = VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT, UniformBuffer = VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT, StorageBuffer = VK_BUFFER_USAGE_STORAGE_BUFFER_BIT, IndexBuffer = VK_BUFFER_USAGE_INDEX_BUFFER_BIT, VertexBuffer = VK_BUFFER_USAGE_VERTEX_BUFFER_BIT, IndirectBuffer = VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT, VV_SpecifyBitmaskable = VK_BUFFER_USAGE_FLAG_BITS_MAX_ENUM }
Specification
enum class EComponentSwizzle: ui32 { Identitity = VK_COMPONENT_SWIZZLE_IDENTITY, Zero = VK_COMPONENT_SWIZZLE_ZERO, One = VK_COMPONENT_SWIZZLE_ONE, R = VK_COMPONENT_SWIZZLE_R, G = VK_COMPONENT_SWIZZLE_G, B = VK_COMPONENT_SWIZZLE_B, A = VK_COMPONENT_SWIZZLE_A }
Specification
enum class EImageAspect: ui32 { Color = VK_IMAGE_ASPECT_COLOR_BIT, Depth = VK_IMAGE_ASPECT_DEPTH_BIT, Stencil = VK_IMAGE_ASPECT_STENCIL_BIT, MetaData = VK_IMAGE_ASPECT_METADATA_BIT, Plane_0 = VK_IMAGE_ASPECT_PLANE_0_BIT, Plane_1 = VK_IMAGE_ASPECT_PLANE_1_BIT, Plane_2 = VK_IMAGE_ASPECT_PLANE_2_BIT, MemoryPlane_0 = VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT, MemoryPlane_1 = VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT, MemroyPlane_2 = VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT, MemoryPlane_3 = VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT, KHR_Plane_0 = VK_IMAGE_ASPECT_PLANE_0_BIT_KHR, KHR_Plane_1 = VK_IMAGE_ASPECT_PLANE_1_BIT_KHR, KHR_Plane_2 = VK_IMAGE_ASPECT_PLANE_2_BIT_KHR, VV_SpecifyBitmaskable = VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM }
Specification
enum class EImageCreateFlag: ui32 { SparseBinding = VK_IMAGE_CREATE_SPARSE_BINDING_BIT, SparseResidency = VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT, SparseAliased = VK_IMAGE_CREATE_SPARSE_ALIASED_BIT, MutableFormat = VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT, CubeCompatible = VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT, Alias = VK_IMAGE_CREATE_ALIAS_BIT, SplitInstanceBindRegions = VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT, _2DArrayCompatible = VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT, BlockTexelViewCompatible = VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT, ExtendedUsage = VK_IMAGE_CREATE_EXTENDED_USAGE_BIT, Protected = VK_IMAGE_CREATE_PROTECTED_BIT, Disjoint = VK_IMAGE_CREATE_DISJOINT_BIT, CornerSampled = VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV, SampleLocationsCompatibleDepth_Ext = VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT, Subsampled_Ext = VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT, SplitInstanceBindRegions_KHR = VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR, _2DArrayCompatible_KHR = VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR, BlockTexelViewCompatible_KHR = VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR, ExtendedUsage_KHR = VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR, Disjoint_KHR = VK_IMAGE_CREATE_DISJOINT_BIT_KHR, Alias_KHR = VK_IMAGE_CREATE_ALIAS_BIT_KHR, VV_SpecifyBitmaskable = VK_IMAGE_CREATE_FLAG_BITS_MAX_ENUM }
Specification
enum class EImageLayout: ui32 { Undefined = VK_IMAGE_LAYOUT_UNDEFINED, General = VK_IMAGE_LAYOUT_GENERAL, Color_AttachmentOptimal = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, DepthStencil_AttachmentOptimal = VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL, DepthStencil_ReadonlyOptimal = VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, Shader_ReadonlyOptimal = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, TransferSource_Optimal = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, TransferDestination_Optimal = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, Preinitalized = VK_IMAGE_LAYOUT_PREINITIALIZED, Depth_Readonly_Stencil_AttachemntOptimal = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, Depth_Attachment_Stencil_ReadonlyOptimal = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, Depth_AttachmentOptimal = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, Depth_ReadonlyOptimal = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, Stencil_AttachmentOptimal = VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, Stencil_ReadonlyOptimal = VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, PresentSource_KHR = VK_IMAGE_LAYOUT_PRESENT_SRC_KHR, SharedPresent_KHR = VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, ShadingRate_Optimal = VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV, Fragment_DensityMapOptimal_EXT = VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT, Depth_Readonly_Stencil_AttachmentOptimal_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR, Depth_Atteachment_StencilReadonlyOptimal_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR, Depth_AttachmentOptimal_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR, Depth_ReadonlyOptimal_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR, Stencil_AttachmentOptimal_KHR = VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR, Stencil_ReadonlyOptimal_KHR = VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR }
Specification
enum class EImageTiling: ui32 { Optimal = VK_IMAGE_TILING_OPTIMAL, Linear = VK_IMAGE_TILING_LINEAR, DRM_FormatModifier_Extension = VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT }
Specification
enum class EImageType: ui32 { _1D = VK_IMAGE_TYPE_1D, _2D = VK_IMAGE_TYPE_2D, _3D = VK_IMAGE_TYPE_3D }
Specification
enum class EImageUsage: ui32 { TransferSource = VK_IMAGE_USAGE_TRANSFER_SRC_BIT, TransferDestination = VK_IMAGE_USAGE_TRANSFER_DST_BIT, Sampled = VK_IMAGE_USAGE_SAMPLED_BIT, Storage = VK_IMAGE_USAGE_STORAGE_BIT, Color_Attachment = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, DepthStencil_Attachment = VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, Transient_Attachment = VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, Input_Attachemnt = VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, Image_ShadingRate = VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV, DensityMap = VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT, VV_SpecifyBitmaskable = VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM }
Specification
enum class EImageViewCreateFlag: ui32 { Fragment_DensityMapDynamiic = VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT, VV_SpecifyBitmaskable = VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM }
Specification
enum class EImageViewType: ui32 { _1D = VK_IMAGE_VIEW_TYPE_1D, _2D = VK_IMAGE_VIEW_TYPE_2D, _3D = VK_IMAGE_VIEW_TYPE_3D, _Cube = VK_IMAGE_VIEW_TYPE_CUBE, _1D_Array = VK_IMAGE_VIEW_TYPE_1D_ARRAY, _2D_Array = VK_IMAGE_VIEW_TYPE_2D_ARRAY, CubeArray = VK_IMAGE_VIEW_TYPE_CUBE_ARRAY }
Specification
enum class ESharingMode: ui32 { Exclusive = VK_SHARING_MODE_EXCLUSIVE, Concurrent = VK_SHARING_MODE_CONCURRENT }
Specification

Typedefs

using Handle = VkBuffer
Specification
using CreateFlags = Bitfield<EBufferCreateFlag, VkBufferCreateFlags>
Specification
using UsageFlags = Bitfield<EBufferUsage, VkBufferUsageFlags>
Specification
using Handle = VkBufferView
Specification
using CreateFlags = Bitfield<EUndefined, VkBufferViewCreateFlags>
Specification
using Handle = VkImage
Specification
using AspectFlags = Bitfield<EImageAspect, VkImageAspectFlags>
Specification
using CreateFlags = Bitfield<EImageCreateFlag, VkImageCreateFlags>
Specification
using UsageFlags = Bitfield<EImageUsage, VkImageUsageFlags>
Bitfield specifying intended usage of an image.
using Handle = VkImageView
Specification
using CreateFlags = Bitfield<EImageViewCreateFlag, VkImageViewCreateFlags>
Specification

Functions

static auto BindMemory(LogicalDevice::Handle _device, Handle _buffer, Memory::Handle _memory, DeviceSize _memoryOffset) -> EResult
Attach memory to a buffer object.
static auto Create(LogicalDevice::Handle _device, const CreateInfo& _createInfo, const Memory::AllocationCallbacks* _allocator, Handle& _buffer) -> EResult
Create a new buffer object.
static void Destroy(LogicalDevice::Handle _device, Handle _buffer, const Memory::AllocationCallbacks* _allocator)
Destroy a buffer object.
static void GetMemoryRequirements(LogicalDevice::Handle _device, Handle _buffer, Memory::Requirements& _memoryRequirements)
Specification
static auto Create(LogicalDevice::Handle _device, const CreateInfo& _info, const Memory::AllocationCallbacks* _allocator, Handle& _bufferView) -> EResult
Create a new buffer view object.
static void Destroy(LogicalDevice::Handle _device, Handle _bufferView, const Memory::AllocationCallbacks* _allocator)
Destroy a buffer view object.
static auto BindMemory(LogicalDevice::Handle _device, Handle _image, Memory::Handle _memory, DeviceSize _memoryOffset) -> EResult
Attach memory to a VkImage object created without the VK_IMAGE_CREATE_DISJOINT_BIT set.
static auto Create(LogicalDevice::Handle _deviceHandle, const CreateInfo& _createInfo, const Memory::AllocationCallbacks* _allocator, Handle& _imageHandle) -> EResult
Create an image object.
static void Destroy(LogicalDevice::Handle _deviceHandle, Handle _image, const Memory::AllocationCallbacks* _allocator)
Destroy an image object.
static void GetMemoryRequirements(LogicalDevice::Handle _device, Handle _image, Memory::Requirements& _memoryRequirements)
Specification
static auto Create(LogicalDevice::Handle _deviceHandle, const CreateInfo& _creationSpec, const Memory::AllocationCallbacks* _allocator, Handle& _imageView) -> EResult
Create an image view object.
static void Destroy(LogicalDevice::Handle _deviceHandle, Handle _imageView, const Memory::AllocationCallbacks* _allocator)
Destroy an image view.

Enum documentation

Typedef documentation

using CreateFlags = Bitfield<EBufferCreateFlag, VkBufferCreateFlags>

Specification

using UsageFlags = Bitfield<EBufferUsage, VkBufferUsageFlags>

Specification

using Handle = VkBufferView

Specification

using CreateFlags = Bitfield<EUndefined, VkBufferViewCreateFlags>

Specification

using AspectFlags = Bitfield<EImageAspect, VkImageAspectFlags>

Specification

using CreateFlags = Bitfield<EImageCreateFlag, VkImageCreateFlags>

Specification

using UsageFlags = Bitfield<EImageUsage, VkImageUsageFlags>

Bitfield specifying intended usage of an image.

using CreateFlags = Bitfield<EImageViewCreateFlag, VkImageViewCreateFlags>

Specification

Function documentation

static EResult BindMemory(LogicalDevice::Handle _device, Handle _buffer, Memory::Handle _memory, DeviceSize _memoryOffset)

Attach memory to a buffer object.

Parameters
_device
_buffer
_memory
_memoryOffset

Specification

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

Create a new buffer object.

Parameters
_device
_createInfo
_allocator
_buffer

Specification

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

Destroy a buffer object.

Parameters
_device
_buffer
_allocator

Specification

static void GetMemoryRequirements(LogicalDevice::Handle _device, Handle _buffer, Memory::Requirements& _memoryRequirements)

Specification

Parameters
_device
_buffer
_memoryRequirements

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

Create a new buffer view object.

Parameters
_device
_info
_allocator
_bufferView

Specification.

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

Destroy a buffer view object.

Parameters
_device
_bufferView
_allocator

Specification

static EResult BindMemory(LogicalDevice::Handle _device, Handle _image, Memory::Handle _memory, DeviceSize _memoryOffset)

Attach memory to a VkImage object created without the VK_IMAGE_CREATE_DISJOINT_BIT set.

Parameters
_device
_image
_memory
_memoryOffset

Specification

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

Create an image object.

Parameters
_deviceHandle
_createInfo
_allocator
_imageHandle

Specification.

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

Destroy an image object.

Parameters
_deviceHandle
_image
_allocator

Specification.

static void GetMemoryRequirements(LogicalDevice::Handle _device, Handle _image, Memory::Requirements& _memoryRequirements)

Specification

Parameters
_device
_image
_memoryRequirements

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

Create an image view object.

Parameters
_deviceHandle
_creationSpec
_allocator
_imageView

Specification

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

Destroy an image view.

Parameters
_deviceHandle
_imageView
_allocator

Specification