tp namespace
Common Tephra namespace.
Namespaces
- namespace ApplicationExtension
- Collection of application extensions that are either specific to Tephra, or are Vulkan instance extensions with built-in support in Tephra. Vulkan extensions outside of the ones defined here may be used, but their support may be limited.
- namespace DeviceExtension
- Collection of device extensions that are either specific to Tephra, or are Vulkan device extensions with built-in support in Tephra. Vulkan extensions outside of the ones defined here may be used, but their support may be limited.
- namespace utils
- Convenience utilities that build upon the base Tephra interface.
Classes
- struct AcquiredImageInfo
- Describes the details of an image acquired from a tp::
Swapchain and its required synchronization semaphores with the acquire and present operations. - class Application
- Represents the application using this library, storing all per-application state.
- struct ApplicationIdentifier
- Describes the application and engine, allowing the Vulkan driver to use this information for identification purposes.
- struct ApplicationSetup
- Used as configuration for creating a new tp::
Application object. -
template<typename T>class ArrayParameter
- Similar to tp::
ArrayView, it provides read/write view of a contiguous array. It is used to view arrays that may have a temporary lifetime, such as std::initializer_list
. -
template<typename T>class ArrayView
- Provides a read/write view into any contiguous array with a combination of a pointer and size. The ArrayView does not own the referenced array and cannot add or remove elements from it. It can be used to pass arbitrary arrays as parameters to functions and as a way to integrate C style and C++ style arrays. See the tp::
view, tp:: viewOne and tp:: viewRange functions for convenient ways of conversion to array view. -
template<typename TValue>class ArrayViewBase
- Shared base implementation of array views.
- class AssertionError
- Internal Tephra error violating an assertion. May be caused by a previous invalid usage.
- struct AttachmentBlendState
- Specifies the output blending state of a render pass attachment.
- class BaseQuery
- Base class implementing the shared functionality of device queries.
- struct BlendState
- Describes the blending operation with its factors for a single component of a render pass attachment.
- class Buffer
- Represents a linear array of data visible to the device.
- struct BufferComputeAccess
- Represents an access to a range of tp::
BufferView from a compute pipeline. - struct BufferCopyRegion
- Describes a region of a buffer copy operation.
- struct BufferImageCopyRegion
- Describes a region of copy operation between an image and a buffer.
- struct BufferRenderAccess
- Represents an access to a range of tp::
BufferView from a graphics pipeline. - struct BufferSetup
- Used as configuration for creating a new tp::
Buffer object. - class BufferView
- Represents the view of a contiguous range of tp::
Buffer memory. - struct ClearValue
- Specifies a constant clear value.
- struct ColorAttachment
- Represents an tp::
ImageView as a render pass color attachment, allowing it to be bound as a render target inside of a render pass. Also specifies any operations on it that are to be done at the beginning or end of the render pass. - class CommandList
- An abstract class that implements common functionality for recording commands inside either a compute or render pass. See tp::
ComputeList and tp:: RenderList for further details. - struct ComponentMapping
- Specifies the values placed in each component of the output color vector.
- class ComputeList
- Provides an interface to directly record compute commands into a Vulkan VkCommandBuffer inside a compute pass.
- struct ComputePassSetup
- Used as configuration for executing a compute pass.
- class ComputePipelineSetup
- Used as configuration for creating a new compute tp::
Pipeline object for use inside compute passes. -
template<typename Enum>class ContiguousEnumIterator
- An iterator over a tp::
ContiguousEnumView. -
template<typename Enum, Enum Last>class ContiguousEnumView
- Represents an array view of all the values of a contiguous enum type. The values of the enum need to be consecutive and the largest value needs to be known.
- struct DebugMessage
- Describes the details of a single debug message.
- struct DebugMessageContext
- Describes the context of where a debug message was triggered. This is useful because Tephra calls do not always correspond 1:1 to Vulkan calls. Vulkan validation messages refer to only the Vulkan function that triggered the message, but this structure provides information about the involved Tephra function as well.
- class DebugReportHandler
- A base class for debug report handlers, containing callbacks through which debug messages and runtime errors are reported.
- struct DepthStencilAttachment
- Represents an tp::
ImageView as a render pass depth & stencil attachment, allowing it to be bound inside of a render pass. Also specifies any operations that are to be done on it at the beginning or end of the render pass. - class Descriptor
- Binds an existing resource or sampler inside a tp::
DescriptorSet, according to the tp:: DescriptorBinding defined inside a tp:: DescriptorSetLayout. - struct DescriptorBinding
- Describes the type of tp::
Descriptor or descriptor array to be bound to a particular binding number. - class DescriptorPool
- Enables efficient creation, storage and reuse of tp::
DescriptorSet objects. - struct DescriptorPoolSetup
- Used as configuration for creating a new tp::
DescriptorPool object. - class DescriptorSet
- Describes the set of resources that can be bound at once to allow access to them from pipelines.
- class DescriptorSetLayout
- Describes the layout of descriptor bindings that pipelines can use to access resources. Serves as a template for creating tp::
DescriptorSet objects out of resources to be bound. - struct DescriptorSetSetup
- Used as configuration for creating a new tp::
DescriptorSet object. - class DescriptorSetView
- Represents the non-owning view of a tp::
DescriptorSet. - class Device
- Represents a connection to a tp::
PhysicalDevice, through which its functionality can be accessed. - class DeviceLostError
- Operation failed because the device was lost. Subsequent device operations will fail, too.
- struct DeviceQueue
- Refers to a device queue to which jobs can be submitted for execution. Multiple different queues may map to the same Vulkan queue.
- struct DeviceSetup
- Used as configuration for creating a new tp::
Device object. -
template<typename Enum>class EnumBitMask
- A strongly typed mask for a set of enum flags. Requires that the underlying enum values are powers of two.
- struct Extent2D
- A two-dimensional integer extent structure.
- struct Extent3D
- A three-dimensional integer extent structure.
- struct ExternalSemaphore
- A primitive for synchronizing against workloads other than jobs. It can be either a binary semaphore in which case the timestamp is ignored, or a timeline semaphore that is treated as signalled when the provided timestamp is reached.
- struct FormatCapabilities
- Represents the set of capabilities supported by a device for a particular format.
- struct FormatClassProperties
- Describes the properties and memory layout of a tp::
FormatCompatibilityClass. - class FutureDescriptor
- Binds a resource or sampler inside a tp::
DescriptorSet, according to the tp:: DescriptorBinding defined inside a tp:: DescriptorSetLayout. This variant can be used with job-local resources of a job that hasn't been enqueued yet. - class GraphicsPipelineSetup
- Used as configuration for creating a new graphics tp::
Pipeline object for use inside render passes. - class HostMappedMemory
- Represents tp::
Buffer memory mapped for host access by the application. Automatically handles cache management for incoherent memory types and unmaps the memory when destroyed, if the memory is not mapped persistently. - class Image
- Represents a multidimensional array of data interpreted as textures or attachments.
- struct ImageBlitRegion
- Describes a region of an image blit operation.
- struct ImageComputeAccess
- Represents an access to a range of tp::
ImageView from a compute pipeline. - struct ImageCopyRegion
- Describes a region of an image copy operation.
- struct ImageRenderAccess
- Represents an access to a range of tp::
ImageView from a graphics pipeline. - struct ImageSetup
- Used as configuration for creating a new tp::
Image object object. - struct ImageSubresource
- Describes a subresource of an image containing a single array layer and mip level.
- struct ImageSubresourceLayers
- Describes a subresource of an image containing any number of array layers and a single mip level.
- struct ImageSubresourceRange
- Describes a subresource of an image containing any number of array layers and mip levels.
- class ImageView
- Represents the view of a subresource range of tp::
Image. - struct ImageViewSetup
- Used as configuration for creating a new tp::
ImageView object. - class Job
- A job represents a single instance of work to be done on the device.
- class JobResourcePool
- Manages the job-local resources used by tp::
Job objects created from it. Enables efficient allocation and reuse of these resources between consecutive jobs. Jobs created from a tp:: JobResourcePool can only be enqueued to the same device queue that the pool was created for, allowing the allocator to better reuse resources. Similar jobs that are submitted periodically therefore benefit from being allocated from the same tp:: JobResourcePool. - struct JobResourcePoolSetup
- Used as configuration for creating a new tp::
JobResourcePool object. - struct JobResourcePoolStatistics
- Contains statistics about the current allocations of a tp::
JobResourcePool. - struct JobSemaphore
- A synchronization primitive created after enqueueing a tp::
Job through tp:: Device:: enqueueJob. -
template<typename T>class Lifeguard
- A lifeguard for a Vulkan handle implementing RAII by invoking specialized deleters according to the type of the handle when the lifeguard is destroyed. Can be created from an existing Vulkan handle with tp::
Device:: vkMakeHandleLifeguard. - struct MemoryAllocatorSetup
- Used to configure the device-wide Vulkan Memory Allocator.
- struct MemoryHeapStatistics
- Returns statistics associated with a Vulkan memory heap.
- struct MemoryLocationInfo
- Information about the physical device memory location.
- struct MemoryPreference
- Represents the progression of tp::
MemoryLocation that the device will attempt to allocate resources from, in the given order of preference. - struct Offset2D
- A two-dimensional integer offset structure.
- struct Offset3D
- A three-dimensional integer offset structure.
- class OutOfDateError
- A surface has changed in such a way that it is no longer compatible with the swapchain, and further presentation requests using the swapchain will fail.
- class OutOfMemoryError
- Allocation failed due to overcommitting of memory.
- struct OverallocationBehavior
- Specifies the overallocation behavior of a pool. This can be useful for reducing the frequency of allocations at the cost of potentially higher memory usage.
- class Ownable
- A customizable base class that is used for objects returned by the API in an OwningPtr.
- class PhysicalDevice
- Represents a read-only interface for the physical device for identification and querying its properties and capabilities.
- class Pipeline
- Represents a full compiled state of a compute or graphics pipeline, composed of multiple shader stages and the state of the configurable fixed-function stages.
- class PipelineCache
- Speeds up the compilation of pipelines by allowing the result of pipeline compilation to be reused between pipelines and between application runs.
- class PipelineLayout
- Describes the layout of resources accessed by a compute or graphics pipeline.
- struct PushConstantRange
- Describes a range of push constants.
- struct QueryResult
- Represents the result of a query that was written as part of a completed job.
- struct QueueTypeInfo
- Information about the physical device queues for a particular queue type.
- struct Rect2D
- A two-dimensional integer range.
- class RenderList
- Provides an interface to directly record graphics commands into a Vulkan VkCommandBuffer inside a compute pass.
- struct RenderPassSetup
- Used as configuration for executing a render pass.
- class RenderQuery
- Query for measuring some statistic over a range of render commands.
- class RuntimeError
- A generic Tephra runtime error.
- class Sampler
- Sampler objects are used to apply filtering and other transformations to image data when accessed from shaders.
- struct SamplerAddressing
- Describes the addressing mode to be used by the sampler.
- struct SamplerFiltering
- Describes the texture filtering to be used by the sampler.
- struct SamplerSetup
- class ShaderModule
- Represents a single shader module as loaded from SPIR-V bytecode.
- struct ShaderStageSetup
- Describes an individual shader stage of a pipeline, referencing a tp::
ShaderModule and its entry point. - struct SpecializationConstant
- Describes the value of a particular specialization constant of any scalar boolean, integer or floating point type.
- struct StatisticEventInfo
- Information about the report of a statistic event.
- struct StencilState
- Specifies the full state of a stencil operation.
- struct SurfaceCapabilities
- Describes the capabilities of a VkSurfaceKHR and the capabilities of a physical device to present to that surface.
- class SurfaceLostError
- Operation failed because the surface was lost. Subsequent surface operations will fail, too.
- class Swapchain
- Manages presenting the rendering results to a surface.
- struct SwapchainSetup
- Used as configuration for creating a new tp::
Swapchain object. - struct Timeout
- Specifies a timeout duration for wait operations.
- class TimestampQuery
- Query for measuring execution time on the device timeline.
- class TooManyObjectsError
- Too many objects of the same type have already been created.
- class UnsupportedOperationError
- The operation could not be completed because it is not supported by the platform or device.
- struct Version
- Represents and stores a version number.
- struct VertexInputAttribute
- Identifies a specific vertex input attribute such as position, normal, etc.
- struct VertexInputBinding
- Describes the shader binding for vertex input buffer and the layout of its attributes.
- struct Viewport
- The viewport describing a region of render operations.
- struct VkFeatureStructureMapTrait
- Trait wrapper for tp::
getVkFeatureStructureType. -
template<typename T, VkObjectType Id>struct VkObjectHandle
- A strongly typed Vulkan object handle wrapper.
- struct VkPropertyStructureMapTrait
- Trait wrapper for tp::
getVkPropertyStructureType. - struct VkRenderingInfoExtStructureMapTrait
- Trait wrapper for tp::
getVkRenderingInfoExtStructureType. -
template<typename TStructureTypeTrait>class VkStructureMap
- A heterogenous container of unique Vulkan structure types. The structures get zero initialized with
sType
filled out appropriately andpNext
used to chain them in the order they were added. - struct VulkanValidationSetup
- Describes whether Vulkan validation should be enabled, optionally with control over its specific features.
Enums
- enum class AttachmentLoadOp: uint32_t { Load = VK_ATTACHMENT_LOAD_OP_LOAD, Clear = VK_ATTACHMENT_LOAD_OP_CLEAR, DontCare = VK_ATTACHMENT_LOAD_OP_DONT_CARE }
- The load operation applied to the contents of an attachment at the start of a render pass.
- enum class AttachmentStoreOp: uint32_t { Store = VK_ATTACHMENT_STORE_OP_STORE, DontCare = VK_ATTACHMENT_STORE_OP_DONT_CARE }
- The store operation applied to the contents of an attachment.
- enum class BlendFactor: uint32_t { Zero = VK_BLEND_FACTOR_ZERO, One = VK_BLEND_FACTOR_ONE, SrcColor = VK_BLEND_FACTOR_SRC_COLOR, OneMinusSrcColor = VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR, DstColor = VK_BLEND_FACTOR_DST_COLOR, OneMinusDstColor = VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR, SrcAlpha = VK_BLEND_FACTOR_SRC_ALPHA, OneMinusSrcAlpha = VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA, DstAlpha = VK_BLEND_FACTOR_DST_ALPHA, OneMinusDstAlpha = VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA, ConstantColor = VK_BLEND_FACTOR_CONSTANT_COLOR, OneMinusConstantColor = VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, ConstantAlpha = VK_BLEND_FACTOR_CONSTANT_ALPHA, OneMinusConstantAlpha = VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, SrcAlphaSaturate = VK_BLEND_FACTOR_SRC_ALPHA_SATURATE, Src1Color = VK_BLEND_FACTOR_SRC1_COLOR, OneMinusSrc1Color = VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR, Src1Alpha = VK_BLEND_FACTOR_SRC1_ALPHA, OneMinusSrc1Alpha = VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA }
- Framebuffer blending factors.
- enum class BlendOp: uint32_t { Add = VK_BLEND_OP_ADD, Subtract = VK_BLEND_OP_SUBTRACT, ReverseSubtract = VK_BLEND_OP_REVERSE_SUBTRACT, Min = VK_BLEND_OP_MIN, Max = VK_BLEND_OP_MAX }
- Framebuffer blending operators.
- enum class BorderColor: uint32_t { FloatTransparentBlack = VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK, IntTransparentBlack = VK_BORDER_COLOR_INT_TRANSPARENT_BLACK, FloatOpaqueBlack = VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK, IntOpaqueBlack = VK_BORDER_COLOR_INT_OPAQUE_BLACK, FloatOpaqueWhite = VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE, IntOpaqueWhite = VK_BORDER_COLOR_INT_OPAQUE_WHITE }
- The border color applied when using a border tp::
SamplerAddressMode. - enum class BufferUsage: uint32_t { ImageTransfer = 1 << 0, HostMapped = 1 << 1, TexelBuffer = 1 << 2, UniformBuffer = 1 << 3, StorageBuffer = 1 << 4, IndexBuffer = 1 << 5, VertexBuffer = 1 << 6, IndirectBuffer = 1 << 7, DeviceAddress = 1 << 8 }
- The allowed usage of a tp::
Buffer. - enum class ColorComponent: uint32_t { Red = VK_COLOR_COMPONENT_R_BIT, Green = VK_COLOR_COMPONENT_G_BIT, Blue = VK_COLOR_COMPONENT_B_BIT, Alpha = VK_COLOR_COMPONENT_A_BIT }
- Identifies a component of a color image.
- enum class CompareOp: uint32_t { Never = VK_COMPARE_OP_NEVER, Less = VK_COMPARE_OP_LESS, Equal = VK_COMPARE_OP_EQUAL, LessOrEqual = VK_COMPARE_OP_LESS_OR_EQUAL, Greater = VK_COMPARE_OP_GREATER, NotEqual = VK_COMPARE_OP_NOT_EQUAL, GreaterOrEqual = VK_COMPARE_OP_GREATER_OR_EQUAL, Always = VK_COMPARE_OP_ALWAYS }
- Comparison operators for depth, stencil and sampler operations.
- enum class ComponentSwizzle: uint32_t { Identity = 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 }
- Specifies the values placed in a component of the output color vector.
- enum class CompositeAlpha: uint32_t { Opaque = VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR, PreMultiplied = VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR, PostMultiplied = VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR, Inherit = VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR }
- The alpha composition used for the surface upon presentation.
- enum class ComputeAccess: uint64_t { ComputeShaderStorageRead = 1 << 0, ComputeShaderStorageWrite = 1 << 1, ComputeShaderStorageAtomic = 1 << 2, ComputeShaderSampledRead = 1 << 3, ComputeShaderUniformRead = 1 << 4 }
- Describes the kind of resource access from the compute pipeline.
- enum class CullModeFlag: uint32_t { FrontFace = VK_CULL_MODE_FRONT_BIT, BackFace = VK_CULL_MODE_BACK_BIT }
- Flags controlling which triangles get discarded.
- enum class DebugMessageSeverity: uint32_t { Verbose = VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT, Information = VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT, Warning = VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT, Error = VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT }
- The severity of a reported debug message.
- enum class DebugMessageType: uint32_t { General = VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT, Validation = VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT, Performance = VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT }
- The type of a reported debug message.
- enum class DescriptorBindingFlag { PartiallyBound = 1 << 0, VariableDescriptorCount = 1 << 1, AliasStorageImage = 1 << 2, UpdateAfterBind = 1 << 3 }
- Specifies additional properties of a tp::
DescriptorBinding. - enum class DescriptorSetFlag { IgnoreNullDescriptors = 1 << 0 }
- Additional descriptor set creation options.
- enum class DescriptorType: uint32_t { Sampler = VK_DESCRIPTOR_TYPE_SAMPLER, CombinedImageSampler = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, SampledImage = VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, StorageImage = VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, TexelBuffer = 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 }
- Specifies how a certain resource is to be accessed from within a shader.
- enum class DeviceType { Other = VK_PHYSICAL_DEVICE_TYPE_OTHER, IntegratedGPU = VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU, DiscreteGPU = VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU, VirtualGPU = VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU, CPU = VK_PHYSICAL_DEVICE_TYPE_CPU }
- The general type of a physical device.
- enum class DeviceVendor { Unknown, AMD, NVIDIA, INTEL, ARM, ImgTec, Qualcomm, Apple }
- The named vendor of a physical device.
- enum class DynamicState: uint32_t { LineWidth = VK_DYNAMIC_STATE_LINE_WIDTH, DepthBias = VK_DYNAMIC_STATE_DEPTH_BIAS, BlendConstants = VK_DYNAMIC_STATE_BLEND_CONSTANTS, DepthBounds = VK_DYNAMIC_STATE_DEPTH_BOUNDS }
- Specifies the parts of the tp::
GraphicsPipelineSetup state that are to be taken from the dynamic state commands recorded into a tp:: RenderList, rather than from the pipeline setup, which will be ignored. - enum class ErrorType: int32_t { UnknownError = 0, AssertionFailed = 1, UnsupportedOperation = 2, OutOfHostMemory = VK_ERROR_OUT_OF_HOST_MEMORY, OutOfDeviceMemory = VK_ERROR_OUT_OF_DEVICE_MEMORY, Fragmentation = VK_ERROR_FRAGMENTATION, InitializationFailed = VK_ERROR_INITIALIZATION_FAILED, DeviceLost = VK_ERROR_DEVICE_LOST, MemoryMapFailed = VK_ERROR_MEMORY_MAP_FAILED, LayerNotPresent = VK_ERROR_LAYER_NOT_PRESENT, ExtensionNotPresent = VK_ERROR_EXTENSION_NOT_PRESENT, FeatureNotPresent = VK_ERROR_FEATURE_NOT_PRESENT, TooManyObjects = VK_ERROR_TOO_MANY_OBJECTS, FormatNotSupported = VK_ERROR_FORMAT_NOT_SUPPORTED, InvalidExternalHandle = VK_ERROR_INVALID_EXTERNAL_HANDLE, SurfaceLostKHR = VK_ERROR_SURFACE_LOST_KHR, NativeWindowInUseKHR = VK_ERROR_NATIVE_WINDOW_IN_USE_KHR, OutOfDateKHR = VK_ERROR_OUT_OF_DATE_KHR }
- The type of an error returned by either Vulkan or Tephra.
- enum class Filter: uint32_t { Nearest = VK_FILTER_NEAREST, Linear = VK_FILTER_LINEAR }
- The filtering mode.
- enum class Format: uint32_t { Undefined = VK_FORMAT_UNDEFINED, COL8_R4G4_UNORM_PACK = VK_FORMAT_R4G4_UNORM_PACK8, COL8_R8_UNORM = VK_FORMAT_R8_UNORM, COL8_R8_SNORM = VK_FORMAT_R8_SNORM, COL8_R8_USCALED = VK_FORMAT_R8_USCALED, COL8_R8_SSCALED = VK_FORMAT_R8_SSCALED, COL8_R8_UINT = VK_FORMAT_R8_UINT, COL8_R8_SINT = VK_FORMAT_R8_SINT, COL8_R8_SRGB = VK_FORMAT_R8_SRGB, COL16_R4G4B4A4_UNORM_PACK = VK_FORMAT_R4G4B4A4_UNORM_PACK16, COL16_B4G4R4A4_UNORM_PACK = VK_FORMAT_B4G4R4A4_UNORM_PACK16, COL16_R5G6B5_UNORM_PACK = VK_FORMAT_R5G6B5_UNORM_PACK16, COL16_B5G6R5_UNORM_PACK = VK_FORMAT_B5G6R5_UNORM_PACK16, COL16_R5G5B5A1_UNORM_PACK = VK_FORMAT_R5G5B5A1_UNORM_PACK16, COL16_B5G5R5A1_UNORM_PACK = VK_FORMAT_B5G5R5A1_UNORM_PACK16, COL16_A1R5G5B5_UNORM_PACK = VK_FORMAT_A1R5G5B5_UNORM_PACK16, COL16_R8G8_UNORM = VK_FORMAT_R8G8_UNORM, COL16_R8G8_SNORM = VK_FORMAT_R8G8_SNORM, COL16_R8G8_USCALED = VK_FORMAT_R8G8_USCALED, COL16_R8G8_SSCALED = VK_FORMAT_R8G8_SSCALED, COL16_R8G8_UINT = VK_FORMAT_R8G8_UINT, COL16_R8G8_SINT = VK_FORMAT_R8G8_SINT, COL16_R8G8_SRGB = VK_FORMAT_R8G8_SRGB, COL16_R16_UNORM = VK_FORMAT_R16_UNORM, COL16_R16_SNORM = VK_FORMAT_R16_SNORM, COL16_R16_USCALED = VK_FORMAT_R16_USCALED, COL16_R16_SSCALED = VK_FORMAT_R16_SSCALED, COL16_R16_UINT = VK_FORMAT_R16_UINT, COL16_R16_SINT = VK_FORMAT_R16_SINT, COL16_R16_SFLOAT = VK_FORMAT_R16_SFLOAT, COL24_R8G8B8_UNORM = VK_FORMAT_R8G8B8_UNORM, COL24_R8G8B8_SNORM = VK_FORMAT_R8G8B8_SNORM, COL24_R8G8B8_USCALED = VK_FORMAT_R8G8B8_USCALED, COL24_R8G8B8_SSCALED = VK_FORMAT_R8G8B8_SSCALED, COL24_R8G8B8_UINT = VK_FORMAT_R8G8B8_UINT, COL24_R8G8B8_SINT = VK_FORMAT_R8G8B8_SINT, COL24_R8G8B8_SRGB = VK_FORMAT_R8G8B8_SRGB, COL24_B8G8R8_UNORM = VK_FORMAT_B8G8R8_UNORM, COL24_B8G8R8_SNORM = VK_FORMAT_B8G8R8_SNORM, COL24_B8G8R8_USCALED = VK_FORMAT_B8G8R8_USCALED, COL24_B8G8R8_SSCALED = VK_FORMAT_B8G8R8_SSCALED, COL24_B8G8R8_UINT = VK_FORMAT_B8G8R8_UINT, COL24_B8G8R8_SINT = VK_FORMAT_B8G8R8_SINT, COL24_B8G8R8_SRGB = VK_FORMAT_B8G8R8_SRGB, COL32_R8G8B8A8_UNORM = VK_FORMAT_R8G8B8A8_UNORM, COL32_R8G8B8A8_SNORM = VK_FORMAT_R8G8B8A8_SNORM, COL32_R8G8B8A8_USCALED = VK_FORMAT_R8G8B8A8_USCALED, COL32_R8G8B8A8_SSCALED = VK_FORMAT_R8G8B8A8_SSCALED, COL32_R8G8B8A8_UINT = VK_FORMAT_R8G8B8A8_UINT, COL32_R8G8B8A8_SINT = VK_FORMAT_R8G8B8A8_SINT, COL32_R8G8B8A8_SRGB = VK_FORMAT_R8G8B8A8_SRGB, COL32_B8G8R8A8_UNORM = VK_FORMAT_B8G8R8A8_UNORM, COL32_B8G8R8A8_SNORM = VK_FORMAT_B8G8R8A8_SNORM, COL32_B8G8R8A8_USCALED = VK_FORMAT_B8G8R8A8_USCALED, COL32_B8G8R8A8_SSCALED = VK_FORMAT_B8G8R8A8_SSCALED, COL32_B8G8R8A8_UINT = VK_FORMAT_B8G8R8A8_UINT, COL32_B8G8R8A8_SINT = VK_FORMAT_B8G8R8A8_SINT, COL32_B8G8R8A8_SRGB = VK_FORMAT_B8G8R8A8_SRGB, COL32_A8B8G8R8_UNORM_PACK = VK_FORMAT_A8B8G8R8_UNORM_PACK32, COL32_A8B8G8R8_SNORM_PACK = VK_FORMAT_A8B8G8R8_SNORM_PACK32, COL32_A8B8G8R8_USCALED_PACK = VK_FORMAT_A8B8G8R8_USCALED_PACK32, COL32_A8B8G8R8_SSCALED_PACK = VK_FORMAT_A8B8G8R8_SSCALED_PACK32, COL32_A8B8G8R8_UINT_PACK = VK_FORMAT_A8B8G8R8_UINT_PACK32, COL32_A8B8G8R8_SINT_PACK = VK_FORMAT_A8B8G8R8_SINT_PACK32, COL32_A8B8G8R8_SRGB_PACK = VK_FORMAT_A8B8G8R8_SRGB_PACK32, COL32_A2R10G10B10_UNORM_PACK = VK_FORMAT_A2R10G10B10_UNORM_PACK32, COL32_A2R10G10B10_SNORM_PACK = VK_FORMAT_A2R10G10B10_SNORM_PACK32, COL32_A2R10G10B10_USCALED_PACK = VK_FORMAT_A2R10G10B10_USCALED_PACK32, COL32_A2R10G10B10_SSCALED_PACK = VK_FORMAT_A2R10G10B10_SSCALED_PACK32, COL32_A2R10G10B10_UINT_PACK = VK_FORMAT_A2R10G10B10_UINT_PACK32, COL32_A2R10G10B10_SINT_PACK = VK_FORMAT_A2R10G10B10_SINT_PACK32, COL32_A2B10G10R10_UNORM_PACK = VK_FORMAT_A2B10G10R10_UNORM_PACK32, COL32_A2B10G10R10_SNORM_PACK = VK_FORMAT_A2B10G10R10_SNORM_PACK32, COL32_A2B10G10R10_USCALED_PACK = VK_FORMAT_A2B10G10R10_USCALED_PACK32, COL32_A2B10G10R10_SSCALED_PACK = VK_FORMAT_A2B10G10R10_SSCALED_PACK32, COL32_A2B10G10R10_UINT_PACK = VK_FORMAT_A2B10G10R10_UINT_PACK32, COL32_A2B10G10R10_SINT_PACK = VK_FORMAT_A2B10G10R10_SINT_PACK32, COL32_R16G16_UNORM = VK_FORMAT_R16G16_UNORM, COL32_R16G16_SNORM = VK_FORMAT_R16G16_SNORM, COL32_R16G16_USCALED = VK_FORMAT_R16G16_USCALED, COL32_R16G16_SSCALED = VK_FORMAT_R16G16_SSCALED, COL32_R16G16_UINT = VK_FORMAT_R16G16_UINT, COL32_R16G16_SINT = VK_FORMAT_R16G16_SINT, COL32_R16G16_SFLOAT = VK_FORMAT_R16G16_SFLOAT, COL32_R32_UINT = VK_FORMAT_R32_UINT, COL32_R32_SINT = VK_FORMAT_R32_SINT, COL32_R32_SFLOAT = VK_FORMAT_R32_SFLOAT, COL32_B10G11R11_UFLOAT_PACK = VK_FORMAT_B10G11R11_UFLOAT_PACK32, COL32_E5B9G9R9_UFLOAT_PACK = VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, COL48_R16G16B16_UNORM = VK_FORMAT_R16G16B16_UNORM, COL48_R16G16B16_SNORM = VK_FORMAT_R16G16B16_SNORM, COL48_R16G16B16_USCALED = VK_FORMAT_R16G16B16_USCALED, COL48_R16G16B16_SSCALED = VK_FORMAT_R16G16B16_SSCALED, COL48_R16G16B16_UINT = VK_FORMAT_R16G16B16_UINT, COL48_R16G16B16_SINT = VK_FORMAT_R16G16B16_SINT, COL48_R16G16B16_SFLOAT = VK_FORMAT_R16G16B16_SFLOAT, COL64_R16G16B16A16_UNORM = VK_FORMAT_R16G16B16A16_UNORM, COL64_R16G16B16A16_SNORM = VK_FORMAT_R16G16B16A16_SNORM, COL64_R16G16B16A16_USCALED = VK_FORMAT_R16G16B16A16_USCALED, COL64_R16G16B16A16_SSCALED = VK_FORMAT_R16G16B16A16_SSCALED, COL64_R16G16B16A16_UINT = VK_FORMAT_R16G16B16A16_UINT, COL64_R16G16B16A16_SINT = VK_FORMAT_R16G16B16A16_SINT, COL64_R16G16B16A16_SFLOAT = VK_FORMAT_R16G16B16A16_SFLOAT, COL64_R32G32_UINT = VK_FORMAT_R32G32_UINT, COL64_R32G32_SINT = VK_FORMAT_R32G32_SINT, COL64_R32G32_SFLOAT = VK_FORMAT_R32G32_SFLOAT, COL64_R64_UINT = VK_FORMAT_R64_UINT, COL64_R64_SINT = VK_FORMAT_R64_SINT, COL64_R64_SFLOAT = VK_FORMAT_R64_SFLOAT, COL96_R32G32B32_UINT = VK_FORMAT_R32G32B32_UINT, COL96_R32G32B32_SINT = VK_FORMAT_R32G32B32_SINT, COL96_R32G32B32_SFLOAT = VK_FORMAT_R32G32B32_SFLOAT, COL128_R32G32B32A32_UINT = VK_FORMAT_R32G32B32A32_UINT, COL128_R32G32B32A32_SINT = VK_FORMAT_R32G32B32A32_SINT, COL128_R32G32B32A32_SFLOAT = VK_FORMAT_R32G32B32A32_SFLOAT, COL128_R64G64_UINT = VK_FORMAT_R64G64_UINT, COL128_R64G64_SINT = VK_FORMAT_R64G64_SINT, COL128_R64G64_SFLOAT = VK_FORMAT_R64G64_SFLOAT, COL192_R64G64B64_UINT = VK_FORMAT_R64G64B64_UINT, COL192_R64G64B64_SINT = VK_FORMAT_R64G64B64_SINT, COL192_R64G64B64_SFLOAT = VK_FORMAT_R64G64B64_SFLOAT, COL256_R64G64B64A64_UINT = VK_FORMAT_R64G64B64A64_UINT, COL256_R64G64B64A64_SINT = VK_FORMAT_R64G64B64A64_SINT, COL256_R64G64B64A64_SFLOAT = VK_FORMAT_R64G64B64A64_SFLOAT, COMP_BC1_RGB_UNORM_BLOCK = VK_FORMAT_BC1_RGB_UNORM_BLOCK, COMP_BC1_RGB_SRGB_BLOCK = VK_FORMAT_BC1_RGB_SRGB_BLOCK, COMP_BC1_RGBA_UNORM_BLOCK = VK_FORMAT_BC1_RGBA_UNORM_BLOCK, COMP_BC1_RGBA_SRGB_BLOCK = VK_FORMAT_BC1_RGBA_SRGB_BLOCK, COMP_BC2_UNORM_BLOCK = VK_FORMAT_BC2_UNORM_BLOCK, COMP_BC2_SRGB_BLOCK = VK_FORMAT_BC2_SRGB_BLOCK, COMP_BC3_UNORM_BLOCK = VK_FORMAT_BC3_UNORM_BLOCK, COMP_BC3_SRGB_BLOCK = VK_FORMAT_BC3_SRGB_BLOCK, COMP_BC4_UNORM_BLOCK = VK_FORMAT_BC4_UNORM_BLOCK, COMP_BC4_SNORM_BLOCK = VK_FORMAT_BC4_SNORM_BLOCK, COMP_BC5_UNORM_BLOCK = VK_FORMAT_BC5_UNORM_BLOCK, COMP_BC5_SNORM_BLOCK = VK_FORMAT_BC5_SNORM_BLOCK, COMP_BC6H_UFLOAT_BLOCK = VK_FORMAT_BC6H_UFLOAT_BLOCK, COMP_BC6H_SFLOAT_BLOCK = VK_FORMAT_BC6H_SFLOAT_BLOCK, COMP_BC7_UNORM_BLOCK = VK_FORMAT_BC7_UNORM_BLOCK, COMP_BC7_SRGB_BLOCK = VK_FORMAT_BC7_SRGB_BLOCK, COMP_ETC2_R8G8B8_UNORM_BLOCK = VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK, COMP_ETC2_R8G8B8_SRGB_BLOCK = VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK, COMP_ETC2_R8G8B8A1_UNORM_BLOCK = VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK, COMP_ETC2_R8G8B8A1_SRGB_BLOCK = VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK, COMP_ETC2_EAC_R8G8B8A8_UNORM_BLOCK = VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK, COMP_ETC2_EAC_R8G8B8A8_SRGB_BLOCK = VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK, COMP_EAC_R11_UNORM_BLOCK = VK_FORMAT_EAC_R11_UNORM_BLOCK, COMP_EAC_R11_SNORM_BLOCK = VK_FORMAT_EAC_R11_SNORM_BLOCK, COMP_EAC_R11G11_UNORM_BLOCK = VK_FORMAT_EAC_R11G11_UNORM_BLOCK, COMP_EAC_R11G11_SNORM_BLOCK = VK_FORMAT_EAC_R11G11_SNORM_BLOCK, COMP_ASTC_4x4_UNORM_BLOCK = VK_FORMAT_ASTC_4x4_UNORM_BLOCK, COMP_ASTC_4x4_SRGB_BLOCK = VK_FORMAT_ASTC_4x4_SRGB_BLOCK, COMP_ASTC_5x4_UNORM_BLOCK = VK_FORMAT_ASTC_5x4_UNORM_BLOCK, COMP_ASTC_5x4_SRGB_BLOCK = VK_FORMAT_ASTC_5x4_SRGB_BLOCK, COMP_ASTC_5x5_UNORM_BLOCK = VK_FORMAT_ASTC_5x5_UNORM_BLOCK, COMP_ASTC_5x5_SRGB_BLOCK = VK_FORMAT_ASTC_5x5_SRGB_BLOCK, COMP_ASTC_6x5_UNORM_BLOCK = VK_FORMAT_ASTC_6x5_UNORM_BLOCK, COMP_ASTC_6x5_SRGB_BLOCK = VK_FORMAT_ASTC_6x5_SRGB_BLOCK, COMP_ASTC_6x6_UNORM_BLOCK = VK_FORMAT_ASTC_6x6_UNORM_BLOCK, COMP_ASTC_6x6_SRGB_BLOCK = VK_FORMAT_ASTC_6x6_SRGB_BLOCK, COMP_ASTC_8x5_UNORM_BLOCK = VK_FORMAT_ASTC_8x5_UNORM_BLOCK, COMP_ASTC_8x5_SRGB_BLOCK = VK_FORMAT_ASTC_8x5_SRGB_BLOCK, COMP_ASTC_8x6_UNORM_BLOCK = VK_FORMAT_ASTC_8x6_UNORM_BLOCK, COMP_ASTC_8x6_SRGB_BLOCK = VK_FORMAT_ASTC_8x6_SRGB_BLOCK, COMP_ASTC_8x8_UNORM_BLOCK = VK_FORMAT_ASTC_8x8_UNORM_BLOCK, COMP_ASTC_8x8_SRGB_BLOCK = VK_FORMAT_ASTC_8x8_SRGB_BLOCK, COMP_ASTC_10x5_UNORM_BLOCK = VK_FORMAT_ASTC_10x5_UNORM_BLOCK, COMP_ASTC_10x5_SRGB_BLOCK = VK_FORMAT_ASTC_10x5_SRGB_BLOCK, COMP_ASTC_10x6_UNORM_BLOCK = VK_FORMAT_ASTC_10x6_UNORM_BLOCK, COMP_ASTC_10x6_SRGB_BLOCK = VK_FORMAT_ASTC_10x6_SRGB_BLOCK, COMP_ASTC_10x8_UNORM_BLOCK = VK_FORMAT_ASTC_10x8_UNORM_BLOCK, COMP_ASTC_10x8_SRGB_BLOCK = VK_FORMAT_ASTC_10x8_SRGB_BLOCK, COMP_ASTC_10x10_UNORM_BLOCK = VK_FORMAT_ASTC_10x10_UNORM_BLOCK, COMP_ASTC_10x10_SRGB_BLOCK = VK_FORMAT_ASTC_10x10_SRGB_BLOCK, COMP_ASTC_12x10_UNORM_BLOCK = VK_FORMAT_ASTC_12x10_UNORM_BLOCK, COMP_ASTC_12x10_SRGB_BLOCK = VK_FORMAT_ASTC_12x10_SRGB_BLOCK, COMP_ASTC_12x12_UNORM_BLOCK = VK_FORMAT_ASTC_12x12_UNORM_BLOCK, COMP_ASTC_12x12_SRGB_BLOCK = VK_FORMAT_ASTC_12x12_SRGB_BLOCK, DEPTH16_D16_UNORM = VK_FORMAT_D16_UNORM, DEPTH24_X8_D24_UNORM_PACK = VK_FORMAT_X8_D24_UNORM_PACK32, DEPTH32_D32_SFLOAT = VK_FORMAT_D32_SFLOAT, STC8_S8_UINT = VK_FORMAT_S8_UINT, DEPTHSTC24_D16_UNORM_S8_UINT = VK_FORMAT_D16_UNORM_S8_UINT, DEPTHSTC32_D24_UNORM_S8_UINT = VK_FORMAT_D24_UNORM_S8_UINT, DEPTHSTC48_D32_SFLOAT_S8_UINT = VK_FORMAT_D32_SFLOAT_S8_UINT }
- The formats that data can be stored in inside buffers and images.
- enum class FormatCompatibilityClass { Undefined = 0, COL8 = 1, COL16 = 2, COL24 = 3, COL32 = 4, COL48 = 5, COL64 = 6, COL96 = 7, COL128 = 8, COL192 = 9, COL256 = 10, COMP_BC1_RGB = 11, COMP_BC1_RGBA = 12, COMP_BC2 = 13, COMP_BC3 = 14, COMP_BC4 = 15, COMP_BC5 = 16, COMP_BC6H = 17, COMP_BC7 = 18, COMP_ETC2_RGB = 19, COMP_ETC2_RGBA = 20, COMP_ETC2_EAC_RGBA = 21, COMP_EAC_R = 22, COMP_EAC_RG = 23, COMP_ASTC_4x4 = 24, COMP_ASTC_5x4 = 25, COMP_ASTC_5x5 = 26, COMP_ASTC_6x5 = 27, COMP_ASTC_6x6 = 28, COMP_ASTC_8x5 = 29, COMP_ASTC_8x6 = 30, COMP_ASTC_8x8 = 31, COMP_ASTC_10x5 = 32, COMP_ASTC_10x6 = 33, COMP_ASTC_10x8 = 34, COMP_ASTC_10x10 = 35, COMP_ASTC_12x10 = 36, COMP_ASTC_12x12 = 37, DEPTH16 = 38, DEPTH24 = 39, DEPTH32 = 40, STC8 = 41, DEPTHSTC24 = 42, DEPTHSTC32 = 43, DEPTHSTC48 = 44 }
- Defines the distinct format compatibility classes.
- enum class FormatFeature: uint32_t { AtomicOperations = 1 << 0, LinearFiltering = 1 << 1 }
- Describes additional features of a particular format.
- enum class FormatUsage: uint32_t { SampledImage = 1 << 0, StorageImage = 1 << 1, ColorAttachment = 1 << 2, DepthStencilAttachment = 1 << 3, TexelBuffer = 1 << 4, StorageTexelBuffer = 1 << 5, VertexBuffer = 1 << 6 }
- The usage of a resource using a particular format.
- enum class ImageAspect: uint32_t { Color = VK_IMAGE_ASPECT_COLOR_BIT, Depth = VK_IMAGE_ASPECT_DEPTH_BIT, Stencil = VK_IMAGE_ASPECT_STENCIL_BIT, Metadata = VK_IMAGE_ASPECT_METADATA_BIT }
- The aspect storing a type of data of an image view.
- enum class ImageFlag: uint32_t { BlockTexelViewCompatible = VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT }
- Additional image creation options.
- enum class ImageType { Image1D = 0, Image2D = 1, Image2DCubeCompatible = 2, Image3D = 3, Image3D2DArrayCompatible = 4 }
- Specifies the dimensionality of an image, as well as what view types can be created for it.
- enum class ImageUsage: uint32_t { TransferSrc = VK_IMAGE_USAGE_TRANSFER_SRC_BIT, TransferDst = VK_IMAGE_USAGE_TRANSFER_DST_BIT, SampledImage = VK_IMAGE_USAGE_SAMPLED_BIT, StorageImage = VK_IMAGE_USAGE_STORAGE_BIT, ColorAttachment = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, DepthStencilAttachment = VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, InputAttachment = VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT }
- The allowed usage of a tp::
Image. - enum class ImageViewType: uint32_t { View1D = VK_IMAGE_VIEW_TYPE_1D, View2D = VK_IMAGE_VIEW_TYPE_2D, View3D = VK_IMAGE_VIEW_TYPE_3D, ViewCube = VK_IMAGE_VIEW_TYPE_CUBE, View1DArray = VK_IMAGE_VIEW_TYPE_1D_ARRAY, View2DArray = VK_IMAGE_VIEW_TYPE_2D_ARRAY, ViewCubeArray = VK_IMAGE_VIEW_TYPE_CUBE_ARRAY }
- The dimensionality of an image view.
- enum class IndexType: uint32_t { UInt16 = VK_INDEX_TYPE_UINT16, UInt32 = VK_INDEX_TYPE_UINT32 }
- The type of values of an index buffer.
- enum class JobFlag { Small }
- Specifies additional properties of a tp::
Job. - enum class JobResourcePoolFlag { AliasCompatibleFormats, DisableSuballocation }
- Specifies additional properties of a tp::
JobResourcePool. - enum class LogicOp: uint32_t { Clear = VK_LOGIC_OP_CLEAR, And = VK_LOGIC_OP_AND, AndReverse = VK_LOGIC_OP_AND_REVERSE, Copy = VK_LOGIC_OP_COPY, AndInverted = VK_LOGIC_OP_AND_INVERTED, NoOp = VK_LOGIC_OP_NO_OP, Xor = VK_LOGIC_OP_XOR, Or = VK_LOGIC_OP_OR, Nor = VK_LOGIC_OP_NOR, Equivalent = VK_LOGIC_OP_EQUIVALENT, Invert = VK_LOGIC_OP_INVERT, OrReverse = VK_LOGIC_OP_OR_REVERSE, CopyInverted = VK_LOGIC_OP_COPY_INVERTED, OrInverted = VK_LOGIC_OP_OR_INVERTED, Nand = VK_LOGIC_OP_NAND, Set = VK_LOGIC_OP_SET }
- Logical comparison operators.
- enum class MemoryAccess { ReadOnly, WriteOnly, ReadWrite }
- Specifies the type of memory access.
- enum class MemoryLocation: uint8_t { Undefined, DeviceLocal, DeviceLocalHostVisible, DeviceLocalHostCached, HostVisible, HostCached }
- Defines the memory location types according to its accessibility and intended use.
- enum class MultisampleLevel: uint32_t { x1 = VK_SAMPLE_COUNT_1_BIT, x2 = VK_SAMPLE_COUNT_2_BIT, x4 = VK_SAMPLE_COUNT_4_BIT, x8 = VK_SAMPLE_COUNT_8_BIT, x16 = VK_SAMPLE_COUNT_16_BIT, x32 = VK_SAMPLE_COUNT_32_BIT, x64 = VK_SAMPLE_COUNT_64_BIT }
- Sample counts that can be used for image storage operations.
- enum class PipelineFlag: uint32_t { DisableOptimizations = VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT }
- Additional pipeline creation options.
- enum class PipelineStage: uint32_t { TopOfPipe = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, DrawIndirect = VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT, VertexInput = VK_PIPELINE_STAGE_VERTEX_INPUT_BIT, VertexShader = VK_PIPELINE_STAGE_VERTEX_SHADER_BIT, ControlShader = VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT, EvaluationShader = VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT, GeometryShader = VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT, FragmentShader = VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, EarlyFragmentTests = VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT, LateFragmentTests = VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT, ColorAttachmentOutput = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, ComputeShader = VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, StageTransfer = VK_PIPELINE_STAGE_TRANSFER_BIT, BottomOfPipe = VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT }
- Vulkan pipeline stages for the purpose of specifying when a tp::
TimestampQuery should be written to. - enum class PresentMode: uint32_t { Immediate = VK_PRESENT_MODE_IMMEDIATE_KHR, Mailbox = VK_PRESENT_MODE_MAILBOX_KHR, FIFO = VK_PRESENT_MODE_FIFO_KHR, RelaxedFIFO = VK_PRESENT_MODE_FIFO_RELAXED_KHR }
- The possible presentation modes for a surface.
- enum class PrimitiveTopology: uint32_t { PointList = VK_PRIMITIVE_TOPOLOGY_POINT_LIST, LineList = VK_PRIMITIVE_TOPOLOGY_LINE_LIST, LineStrip = VK_PRIMITIVE_TOPOLOGY_LINE_STRIP, TriangleList = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, TriangleStrip = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP, TriangleFan = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN, LineListWithAdjacency = VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY, LineStripWithAdjacency = VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY, TriangleListWithAdjacency = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY, TriangleStripWithAdjacency = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY, PatchList = VK_PRIMITIVE_TOPOLOGY_PATCH_LIST }
- Specifies the type of primitive topology.
- enum class QueueType: uint32_t { Undefined, Transfer, Compute, Graphics, External }
- The type of a device queue, defining the operations supported on it as well as its performance characteristics.
- enum class RasterizationMode { Discard = 0, Fill = 1, Line = 2, Point = 3 }
- The mode used for rasterization of primitives.
- enum class ReadAccess: uint64_t { DrawIndirect = 1 << 0, DrawIndex = 1 << 1, DrawVertex = 1 << 2, Transfer = 1 << 3, Host = 1 << 4, DepthStencilAttachment = 1 << 5, VertexShaderStorage = 1 << 6, VertexShaderSampled = 1 << 7, VertexShaderUniform = 1 << 8, TessellationControlShaderStorage = 1 << 9, TessellationControlShaderSampled = 1 << 10, TessellationControlShaderUniform = 1 << 11, TessellationEvaluationShaderStorage = 1 << 12, TessellationEvaluationShaderSampled = 1 << 13, TessellationEvaluationShaderUniform = 1 << 14, GeometryShaderStorage = 1 << 15, GeometryShaderSampled = 1 << 16, GeometryShaderUniform = 1 << 17, FragmentShaderStorage = 1 << 18, FragmentShaderSampled = 1 << 19, FragmentShaderUniform = 1 << 20, ComputeShaderStorage = 1 << 21, ComputeShaderSampled = 1 << 22, ComputeShaderUniform = 1 << 23, ImagePresentKHR = 1ull << 62, Unknown = 1ull << 63 }
- Describes a kind of read-only resource access by any part of the pipeline.
- enum class RenderAccess: uint64_t { DrawIndirectRead = 1 << 0, DrawIndexRead = 1 << 1, DrawVertexRead = 1 << 2, VertexShaderStorageRead = 1 << 3, VertexShaderStorageWrite = 1 << 4, VertexShaderStorageAtomic = 1 << 5, VertexShaderSampledRead = 1 << 6, VertexShaderUniformRead = 1 << 7, TessellationControlShaderStorageRead = 1 << 8, TessellationControlShaderStorageWrite = 1 << 9, TessellationControlShaderStorageAtomic = 1 << 10, TessellationControlShaderSampledRead = 1 << 11, TessellationControlShaderUniformRead = 1 << 12, TessellationEvaluationShaderStorageRead = 1 << 13, TessellationEvaluationShaderStorageWrite = 1 << 14, TessellationEvaluationShaderStorageAtomic = 1 << 15, TessellationEvaluationShaderSampledRead = 1 << 16, TessellationEvaluationShaderUniformRead = 1 << 17, GeometryShaderStorageRead = 1 << 18, GeometryShaderStorageWrite = 1 << 19, GeometryShaderStorageAtomic = 1 << 20, GeometryShaderSampledRead = 1 << 21, GeometryShaderUniformRead = 1 << 22, FragmentShaderStorageRead = 1 << 23, FragmentShaderStorageWrite = 1 << 24, FragmentShaderStorageAtomic = 1 << 25, FragmentShaderSampledRead = 1 << 26, FragmentShaderUniformRead = 1 << 27 }
- Describes a kind of resource access from the render pipeline.
- enum class RenderQueryType { Occlusion, OcclusionPrecise, InputAssemblyVertices, InputAssemblyPrimitives, VertexShaderInvocations, GeometryShaderInvocations, GeometryShaderPrimitives, ClippingInvocations, ClippingPrimitives, FragmentShaderInvocations, TessellationControlShaderPatches, TessellationEvaluationShaderInvocations }
- Specifies the type of the measured quantity by a tp::
RenderQuery. - enum class ResolveMode: uint32_t { SampleZero = VK_RESOLVE_MODE_SAMPLE_ZERO_BIT, Average = VK_RESOLVE_MODE_AVERAGE_BIT, Min = VK_RESOLVE_MODE_MIN_BIT, Max = VK_RESOLVE_MODE_MAX_BIT }
- Determines the method how a multisampled image should be resolved.
- enum class SamplerAddressMode: uint32_t { Repeat = VK_SAMPLER_ADDRESS_MODE_REPEAT, MirroredRepeat = VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT, ClampToEdge = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE, ClampToBorder = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER, MirrorClampToEdge = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE }
- The behavior of sampling with texture coordinates outside an image.
- enum class ShaderStage: uint32_t { Vertex = VK_SHADER_STAGE_VERTEX_BIT, TessellationControl = VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, TessellationEvaluation = VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, Geometry = VK_SHADER_STAGE_GEOMETRY_BIT, Fragment = VK_SHADER_STAGE_FRAGMENT_BIT, Compute = VK_SHADER_STAGE_COMPUTE_BIT }
- Specifies the stage of shader execution.
- enum class StatisticEventType { JobPrimaryCommandBuffersUsed, JobPipelineBarriersInserted, JobBufferMemoryBarriersInserted, JobImageMemoryBarriersInserted, JobLocalBufferRequestedBytes, JobLocalBufferCommittedBytes, JobPreinitBufferRequestedBytes, JobLocalImageRequestedBytes, JobLocalImageCommittedBytes }
- Describes the type of a statistic event.
- enum class StencilOp: uint32_t { Keep = VK_STENCIL_OP_KEEP, Zero = VK_STENCIL_OP_ZERO, Replace = VK_STENCIL_OP_REPLACE, IncrementAndClamp = VK_STENCIL_OP_INCREMENT_AND_CLAMP, DecrementAndClamp = VK_STENCIL_OP_DECREMENT_AND_CLAMP, Invert = VK_STENCIL_OP_INVERT, IncrementAndWrap = VK_STENCIL_OP_INCREMENT_AND_WRAP, DecrementAndWrap = VK_STENCIL_OP_DECREMENT_AND_WRAP }
- Stencil function specifying what happens to the stored stencil value.
- enum class SurfaceTransform: uint32_t { UseCurrentTransform = 0, Identity = VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR, Rotate90 = VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR, Rotate180 = VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR, Rotate270 = VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR, HorizontalMirror = VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR, HorizontalMirrorRotate90 = VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR, HorizontalMirrorRotate180 = VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR, HorizontalMirrorRotate270 = VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR, Inherit = VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR }
- Transforms applied to a surface upon presentation.
- enum class SwapchainFlag: uint32_t { }
- Additional swapchain creation options.
- enum class SwapchainStatus { Optimal, Suboptimal, OutOfDate, SurfaceLost, Retired }
- Describes the status of a tp::
Swapchain object and/or the reason why the last operation may have failed. - enum class ValidationFeatureDisable: uint32_t { Shaders = 1 << VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT, ThreadSafety = 1 << VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT, APIParameters = 1 << VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT, ObjectLifetimes = 1 << VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT, CoreChecks = 1 << VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT, UniqueHandles = 1 << VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT }
- Validation features part of the standard set that may be optionally disabled.
- enum class ValidationFeatureEnable: uint32_t { GPUAssisted = 1 << VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT, GPUAssistedReserveBindingSlot = 1 << VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT, BestPractices = 1 << VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT, DebugPrintf = 1 << VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT, Synchronization = 1 << VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT }
- Optional validation features that may additionally be enabled.
- enum class VertexInputRate: uint32_t { Vertex = VK_VERTEX_INPUT_RATE_VERTEX, Instance = VK_VERTEX_INPUT_RATE_INSTANCE }
- The rate at which input attributes are pulled from buffers.
Typedefs
- using BufferUsageMask = EnumBitMask<BufferUsage>
- using CleanupCallback = std::function<void()>
- The type of the user-provided function callback that can be used for freeing external resources safely.
- using ColorComponentMask = EnumBitMask<ColorComponent>
- using CompositeAlphaMask = EnumBitMask<CompositeAlpha>
- using ComputeAccessMask = EnumBitMask<ComputeAccess>
- using ComputeInlineCallback = std::function<void(ComputeList&)>
- The type of the user-provided function callback for recording commands to a compute pass inline.
- using CullModeFlagMask = EnumBitMask<CullModeFlag>
- using DebugMessageSeverityMask = EnumBitMask<DebugMessageSeverity>
- using DebugMessageTypeMask = EnumBitMask<DebugMessageType>
- using DescriptorBindingFlagMask = EnumBitMask<DescriptorBindingFlag>
- using DescriptorSetFlagMask = EnumBitMask<DescriptorSetFlag>
- using FormatFeatureMask = EnumBitMask<FormatFeature>
- using FormatUsageMask = EnumBitMask<FormatUsage>
- using ImageAspectMask = EnumBitMask<ImageAspect>
- using ImageFlagMask = EnumBitMask<ImageFlag>
- using ImageUsageMask = EnumBitMask<ImageUsage>
- using JobFlagMask = EnumBitMask<JobFlag>
- using JobResourcePoolFlagMask = EnumBitMask<JobResourcePoolFlag>
- using MultisampleLevelMask = EnumBitMask<MultisampleLevel>
-
template<typename T>using OwningPtr = std::unique_ptr<T>
- Owning pointer is returned by the API when the ownership of the object is being transferred over to the user. It needs to be constructible by passing T* as a parameter. Upon destruction std::default_delete or equivalent should be called.
- using PipelineFlagMask = EnumBitMask<PipelineFlag>
- using ReadAccessMask = EnumBitMask<ReadAccess>
- using RenderAccessMask = EnumBitMask<RenderAccess>
- using RenderInlineCallback = std::function<void(RenderList&)>
- The type of the user-provided function callback for recording commands to a render pass inline.
- using ResolveModeMask = EnumBitMask<ResolveMode>
- using ShaderStageMask = EnumBitMask<ShaderStage>
- using SurfaceTransformMask = EnumBitMask<SurfaceTransform>
- using SwapchainFlagMask = EnumBitMask<SwapchainFlag>
- using ValidationFeatureDisableMask = EnumBitMask<ValidationFeatureDisable>
- using ValidationFeatureEnableMask = EnumBitMask<ValidationFeatureEnable>
- using VkFeatureMap = VkStructureMap<VkFeatureStructureMapTrait>
- tp::
VkStructureMap specialization that accepts Vulkan feature structures. - using VkPropertyMap = VkStructureMap<VkPropertyStructureMapTrait>
- tp::
VkStructureMap specialization that accepts Vulkan property structures. - using VkRenderingInfoExtMap = VkStructureMap<VkRenderingInfoExtStructureMapTrait>
- tp::
VkStructureMap specialization that accepts Vulkan structures extending VkRenderingInfo;
Functions
- auto getFormatClassProperties(Format format) -> FormatClassProperties constexpr
- Returns the tp::
FormatClassProperties of the format compatibility class that the given tp:: Format is a part of. - auto getFormatClassProperties(FormatCompatibilityClass formatClass) -> FormatClassProperties constexpr
- Returns the tp::
FormatClassProperties of a given tp:: FormatCompatibilityClass. - auto getFormatCompatibilityClass(Format format) -> FormatCompatibilityClass constexpr
- Returns the tp::
FormatCompatibilityClass for the given tp:: Format. -
template<typename T>auto getOwnedPtr(const OwningPtr<T>& owningPtr) -> const T*
- Returns the owned pointer without releasing ownership.
-
template<typename T>auto getOwnedPtr(OwningPtr<T>& owningPtr) -> T*
- Returns the owned pointer without releasing ownership.
-
template<typename T>auto getVkFeatureStructureType() -> VkStructureType deleted constexpr
- Returns the VkStructureType enum value corresponding to the given Vulkan structure type. These structures specify physical device features and can be used in tp::
PhysicalDevice:: vkQueryFeatures. -
template<typename T>auto getVkPropertyStructureType() -> VkStructureType deleted constexpr
- Returns the VkStructureType enum value corresponding to the given Vulkan structure type. These structures specify physical device properties and can be used in tp::
PhysicalDevice:: vkQueryProperties. -
template<typename T>auto getVkRenderingInfoExtStructureType() -> VkStructureType deleted constexpr
- Returns the VkStructureType enum value corresponding to the given Vulkan structure type. These structures extend VkRenderingInfo and can be used in tp::
RenderPassSetup. - auto operator!=(const Buffer& lhs, const Buffer& rhs) -> bool
- Inequality operator for tp::
Buffer. - auto operator!=(const BufferView& lhs, const BufferView& rhs) -> bool
- Inequality operator for tp::
BufferView. - auto operator!=(const DeviceQueue& lhs, const DeviceQueue& rhs) -> bool constexpr
- Inequality operator for tp::
DeviceQueue. - auto operator!=(const ExternalSemaphore& lhs, const ExternalSemaphore& rhs) -> bool constexpr
- Inequality operator for tp::
ExternalSemaphore. - auto operator!=(const Image& lhs, const Image& rhs) -> bool
- Inequality operator for tp::
Image. - auto operator!=(const ImageView& lhs, const ImageView& rhs) -> bool
- Inequality operator for tp::
ImageView. - auto operator!=(const JobSemaphore& lhs, const JobSemaphore& rhs) -> bool constexpr
- Inequality operator for tp::
JobSemaphore. -
template<typename T, VkObjectType Id>auto operator!=(const VkObjectHandle<T, Id>& lhs, const VkObjectHandle<T, Id>& rhs) -> bool constexpr
- Inequality operator for tp::
VkObjectHandle. - auto operator==(const Buffer& lhs, const Buffer& rhs) -> bool
- Equality operator for tp::
Buffer. - auto operator==(const BufferView& lhs, const BufferView& rhs) -> bool
- Equality operator for tp::
BufferView. - auto operator==(const DeviceQueue& lhs, const DeviceQueue& rhs) -> bool constexpr
- Equality operator for tp::
DeviceQueue. - auto operator==(const ExternalSemaphore& lhs, const ExternalSemaphore& rhs) -> bool constexpr
- Equality operator for tp::
ExternalSemaphore. - auto operator==(const Image& lhs, const Image& rhs) -> bool
- Equality operator for tp::
Image. - auto operator==(const ImageView& lhs, const ImageView& rhs) -> bool
- Equality operator for tp::
ImageView. - auto operator==(const JobSemaphore& lhs, const JobSemaphore& rhs) -> bool constexpr
- Equality operator for tp::
JobSemaphore. -
template<typename T, VkObjectType Id>auto operator==(const VkObjectHandle<T, Id>& lhs, const VkObjectHandle<T, Id>& rhs) -> bool constexpr
- Equality operator for tp::
VkObjectHandle. -
template<typename T>auto view(T* ptr, std::size_t size) -> ArrayView<T> constexpr noexcept
- Creates an array view of a contiguous array of elements.
-
template<typename T>auto viewOne(T& value) -> ArrayView<T> constexpr noexcept
- Creates an array view of a single element.
-
template<typename T>auto viewRange(ArrayView<T>& view, std::size_t start, std::size_t count) -> ArrayView<T> constexpr noexcept
- Creates an array view of a contiguous range of an array of elements.
Enum documentation
enum class tp:: AttachmentLoadOp: uint32_t
The load operation applied to the contents of an attachment at the start of a render pass.
Enumerators | |
---|---|
Load |
Specifies that the attachment will load the contents of the assigned image view. |
Clear |
Specifies that the attachment will be cleared to a specified value. |
DontCare |
Specifies that the contents of the attachment may be undefined. |
enum class tp:: AttachmentStoreOp: uint32_t
The store operation applied to the contents of an attachment.
Enumerators | |
---|---|
Store |
Specifies that the contents of the attachment will be stored into the assigned image view. |
DontCare |
Specifies that the contents of the image view may be left undefined. |
enum class tp:: BlendFactor: uint32_t
Framebuffer blending factors.
enum class tp:: BlendOp: uint32_t
Framebuffer blending operators.
enum class tp:: BorderColor: uint32_t
The border color applied when using a border tp::
enum class tp:: BufferUsage: uint32_t
The allowed usage of a tp::
Enumerators | |
---|---|
ImageTransfer |
Allows the buffer to be used as the source or destination buffer of copy commands that copy to or from an image. |
HostMapped |
Allows the buffer to have its memory mapped for host access using tp:: |
TexelBuffer |
Allows the buffer to be used in a tp:: |
UniformBuffer |
Allows the buffer to be used in a tp:: |
StorageBuffer |
Allows the buffer to be used in a tp:: |
IndexBuffer |
Allows the buffer to be used as an index buffer through tp:: |
VertexBuffer |
Allows the buffer to be used as a vertex buffer through tp:: |
IndirectBuffer |
Allows the buffer to be used as an indirect parameter buffer for tp:: |
DeviceAddress |
Allows the use of tp:: |
enum class tp:: ColorComponent: uint32_t
Identifies a component of a color image.
enum class tp:: CompareOp: uint32_t
Comparison operators for depth, stencil and sampler operations.
enum class tp:: ComponentSwizzle: uint32_t
Specifies the values placed in a component of the output color vector.
enum class tp:: CompositeAlpha: uint32_t
The alpha composition used for the surface upon presentation.
enum class tp:: ComputeAccess: uint64_t
Describes the kind of resource access from the compute pipeline.
Enumerators | |
---|---|
ComputeShaderStorageRead |
Compute shader read access through storage descriptors. |
ComputeShaderStorageWrite |
Compute shader write access through storage descriptors. |
ComputeShaderStorageAtomic |
Compute shader atomic read/write access through storage descriptors. |
ComputeShaderSampledRead |
Compute shader read access through sampled descriptors. |
ComputeShaderUniformRead |
Compute shader read access through uniform buffer descriptors. |
enum class tp:: CullModeFlag: uint32_t
Flags controlling which triangles get discarded.
Enumerators | |
---|---|
FrontFace |
Triangles that are considered to be front facing won't be rasterized. |
BackFace |
Triangles that are considered to be back facing won't be rasterized. |
enum class tp:: DebugMessageSeverity: uint32_t
The severity of a reported debug message.
enum class tp:: DebugMessageType: uint32_t
The type of a reported debug message.
enum class tp:: DescriptorBindingFlag
Specifies additional properties of a tp::
Enumerators | |
---|---|
PartiallyBound |
Indicates that the descriptors in this binding that are not dynamically used don't need to contain valid descriptors at the time the descriptors are consumed. A descriptor is dynamically used if any shader invocation executes an instruction that performs any memory access using the descriptor. |
VariableDescriptorCount |
Indicates that this descriptor binding has a variable size that will be specified when a descriptor set is allocated using this layout. The |
AliasStorageImage |
Allows binding the same image to a sampled image descriptor that uses this flag at the same time as to a storage image descriptor. Internally, the image will be transitioned to a general layout, just like for a storage image. |
UpdateAfterBind |
Allows this binding to be updated inside a descriptor set after it has already been bound and used. This only affects tp:: |
enum class tp:: DescriptorSetFlag
Additional descriptor set creation options.
Enumerators | |
---|---|
IgnoreNullDescriptors |
Specifying this flag allows you to provide null descriptors during descriptor set creation. Such descriptors will be ignored and their associated bindings will be left unbound. Such bindings must not be accessed from the shader side either statically or dynamically, depending on if tp:: |
enum class tp:: DescriptorType: uint32_t
Specifies how a certain resource is to be accessed from within a shader.
In terms of the type of access, descriptors can be categorized by their tp::
Sampled descriptors, providing read-only access with format conversions:
- tp::
DescriptorType:: CombinedImageSampler - tp::
DescriptorType:: SampledImage - tp::DescriptorType::InputAttachment
- tp::
DescriptorType:: TexelBuffer
Storage descriptors, providing read, write and atomic access:
- tp::
DescriptorType:: StorageImage - tp::
DescriptorType:: StorageBuffer - tp::
DescriptorType:: StorageBufferDynamic - tp::
DescriptorType:: StorageTexelBuffer
Uniform buffer descriptors, providing read-only access to uniform buffers:
Sampler descriptors:
Enumerators | |
---|---|
Sampler |
A descriptor for a tp:: |
CombinedImageSampler |
A descriptor for a combination of tp:: |
SampledImage |
A descriptor for a tp:: |
StorageImage |
A descriptor for a tp:: |
TexelBuffer |
A descriptor for a tp:: |
StorageTexelBuffer |
A descriptor for a tp:: |
UniformBuffer |
A descriptor for a tp:: |
StorageBuffer |
A descriptor for a tp:: |
UniformBufferDynamic |
A descriptor for a tp:: |
StorageBufferDynamic |
A descriptor for a tp:: |
enum class tp:: DeviceType
The general type of a physical device.
Enumerators | |
---|---|
Other |
The device does not match any other available types. |
IntegratedGPU |
The device is typically one embedded in or tightly coupled with the host. |
DiscreteGPU |
The device is typically a separate processor connected to the host via an interlink. |
VirtualGPU |
The device is typically a virtual node in a virtualization environment. |
CPU |
The device is typically running on the same processors as the host. |
enum class tp:: DeviceVendor
The named vendor of a physical device.
enum class tp:: DynamicState: uint32_t
Specifies the parts of the tp::
enum class tp:: ErrorType: int32_t
The type of an error returned by either Vulkan or Tephra.
Enumerators | |
---|---|
UnknownError |
Unknown runtime error type. Maps to tp:: |
AssertionFailed |
Internal Tephra assertion failed. Maps to tp:: |
UnsupportedOperation |
Platform or device does not support this operation. Maps to tp:: |
OutOfHostMemory |
A host memory allocation has failed. Maps to tp:: |
OutOfDeviceMemory |
A device memory allocation has failed. Maps to tp:: |
Fragmentation |
A descriptor pool creation has failed due to fragmentation. Maps to tp:: |
InitializationFailed |
Initialization of an object could not be completed. Maps to tp:: |
DeviceLost |
The logical or physical device has been lost. Maps to tp:: |
MemoryMapFailed |
Mapping of a memory object has failed. Maps to tp:: |
LayerNotPresent |
A requested layer is not present or could not be loaded. Maps to tp:: |
ExtensionNotPresent |
A requested extension is not supported. Maps to tp:: |
FeatureNotPresent |
A requested feature is not supported. Maps to tp:: |
TooManyObjects |
Too many objects of a type have already been created. Maps to tp:: |
FormatNotSupported |
A requested format is not supported on this device. Maps to tp:: |
InvalidExternalHandle |
An external handle is not a valid handle of the specified type. Maps to tp:: |
SurfaceLostKHR |
A surface is no longer available. Maps to tp:: |
NativeWindowInUseKHR |
The requested window is already connected to a VkSurfaceKHR, or to some other non-Vulkan API. Maps to tp:: |
OutOfDateKHR |
A surface has changed in such a way that it is no longer compatible with the swapchain, and further presentation requests using the swapchain will fail. Maps to tp:: |
enum class tp:: Filter: uint32_t
The filtering mode.
enum class tp:: Format: uint32_t
The formats that data can be stored in inside buffers and images.
enum class tp:: FormatFeature: uint32_t
Describes additional features of a particular format.
Enumerators | |
---|---|
AtomicOperations |
Describes if a format supports atomic operations of storage images or texel buffers. |
LinearFiltering |
Describes if a format supports linear filtering through tp::Filter::Linear. |
enum class tp:: FormatUsage: uint32_t
The usage of a resource using a particular format.
Enumerators | |
---|---|
SampledImage |
Corresponds to usage through tp:: |
StorageImage |
Corresponds to usage through tp:: |
ColorAttachment |
Corresponds to usage through tp:: |
DepthStencilAttachment |
Corresponds to usage through tp:: |
TexelBuffer |
Corresponds to usage through tp:: |
StorageTexelBuffer |
Corresponds to usage through tp:: |
VertexBuffer |
Corresponds to usage in tp:: |
enum class tp:: ImageAspect: uint32_t
The aspect storing a type of data of an image view.
enum class tp:: ImageFlag: uint32_t
Additional image creation options.
Enumerators | |
---|---|
BlockTexelViewCompatible |
When used on images with block compressed formats, allows constructing views out of them with an uncompressed format where each texel in the image view corresponds to a compressed texel block of the image. |
enum class tp:: ImageType
Specifies the dimensionality of an image, as well as what view types can be created for it.
Enumerators | |
---|---|
Image1D |
One-dimensional image. Supports tp:: |
Image2D |
Two-dimensional image. Supports tp:: |
Image2DCubeCompatible |
Two-dimensional image with cubemap view compatibility. Supports tp:: |
Image3D |
Three-dimensional image. Supports tp:: |
Image3D2DArrayCompatible |
Three-dimensional image with two-dimensional view compatibility of its slices. Supports tp:: |
enum class tp:: ImageUsage: uint32_t
The allowed usage of a tp::
Enumerators | |
---|---|
TransferSrc |
Allows the image to be used as the source image of copy, resolve and blit commands. |
TransferDst |
Allows the image to be used as the destination image of copy, resolve and blit commands and tp:: |
SampledImage |
Allows the image to be used in a tp:: |
StorageImage |
Allows the image to be used in a tp:: |
ColorAttachment |
Allows the image to be used as a tp:: |
DepthStencilAttachment |
Allows the image to be used as a tp:: |
InputAttachment |
Allows the image to be used in a tp::DescriptorType::InputAttachment descriptor. |
enum class tp:: ImageViewType: uint32_t
The dimensionality of an image view.
Enumerators | |
---|---|
View1D |
One-dimensional image view. |
View2D |
Two-dimensional image view. |
View3D |
Three-dimensional image view. |
ViewCube |
Two-dimensional image view of six layers representing the sides of a cubemap. The layers are interpreted as follows: 0: Positive X 1: Negative X 2: Positive Y 3: Negative Y 4: Positive Z 5: Negative Z. |
View1DArray |
One-dimensional image view with multiple layers. |
View2DArray |
Two-dimensional image view with multiple layers. |
ViewCubeArray |
Two-dimensional image view of multiples of six layers representing the sides of cubemaps as in tp:: |
enum class tp:: IndexType: uint32_t
The type of values of an index buffer.
enum class tp:: JobResourcePoolFlag
Specifies additional properties of a tp::
Enumerators | |
---|---|
AliasCompatibleFormats |
Normally, only images with the exact match of formats are able to be aliased. By specifying this tag, images of different formats that are from the same format compatibility class may be aliased together. |
DisableSuballocation |
Disables suballocation and aliasing of all resources. This means that every requested job-local resource will correspond to a single Vulkan resource. tp:: |
enum class tp:: LogicOp: uint32_t
Logical comparison operators.
enum class tp:: MemoryAccess
Specifies the type of memory access.
Enumerators | |
---|---|
ReadOnly |
The access is read only. |
WriteOnly |
The access is write only. |
ReadWrite |
The access is both read and write. |
enum class tp:: MemoryLocation: uint8_t
Defines the memory location types according to its accessibility and intended use.
Enumerators | |
---|---|
Undefined |
An undefined, invalid memory location. |
DeviceLocal |
Memory that is efficient for device access, but isn't accessible by the host. |
DeviceLocalHostVisible |
Memory that is efficient for device access and is accessible by the host without caching. |
DeviceLocalHostCached |
Memory that is efficient for device access and is accessible by the host with caching. |
HostVisible |
Memory that is accessible by device less efficiently and by the host without caching. |
HostCached |
Memory that is accessible by device less efficiently and by the host with caching. |
enum class tp:: MultisampleLevel: uint32_t
Sample counts that can be used for image storage operations.
enum class tp:: PipelineFlag: uint32_t
Additional pipeline creation options.
Enumerators | |
---|---|
DisableOptimizations |
Asks the implementation to disable optimizations of the pipeline. |
enum class tp:: PipelineStage: uint32_t
Vulkan pipeline stages for the purpose of specifying when a tp::
enum class tp:: PresentMode: uint32_t
The possible presentation modes for a surface.
Enumerators | |
---|---|
Immediate |
Presented images appear on the screen immediately, without waiting for the next vertical blanking period. This mode may cause visible tearing. |
Mailbox |
Presented images queue up for being displayed on the screen. During each vertical blanking period, the most recent presented image will be displayed. |
FIFO |
Presented images queue up for being displayed on the screen. During each vertical blanking period, the least recent presented image will be displayed. This mode may cause tp:: |
RelaxedFIFO |
Similar to tp:: |
enum class tp:: PrimitiveTopology: uint32_t
Specifies the type of primitive topology.
Enumerators | |
---|---|
PointList |
Specifies a series of separate point primitives. |
LineList |
Specifies a series of separate line primitives. |
LineStrip |
Specifies a series of connected line primitives with consecutive lines sharing a vertex. |
TriangleList |
Specifies a series of separate triangle primitives. |
TriangleStrip |
Specifies a series of connected triangle primitives with consecutive triangles sharing an edge. |
TriangleFan |
Specifies a series of connected triangle primitives with all triangles sharing a common vertex. |
LineListWithAdjacency |
Specifies a series of separate line primitives with adjacency. |
LineStripWithAdjacency |
Specifies a series of connected line primitives with adjacency, with consecutive primitives sharing three vertices. |
TriangleListWithAdjacency |
Specifies a series of separate triangle primitives with adjacency. |
TriangleStripWithAdjacency |
Specifies connected triangle primitives with adjacency, with consecutive triangles sharing an edge. |
PatchList |
Specifies separate patch primitives. |
enum class tp:: QueueType: uint32_t
The type of a device queue, defining the operations supported on it as well as its performance characteristics.
Enumerators | |
---|---|
Undefined |
An invalid queue type. |
Transfer |
A queue type that only supports transfer operations. |
Compute |
A queue type that supports compute and transfer operations. |
Graphics |
A queue type that supports graphics, compute and transfer operations. |
External |
An external queue type not managed by Vulkan. |
enum class tp:: RasterizationMode
The mode used for rasterization of primitives.
Enumerators | |
---|---|
Discard |
Turns rasterization off completely. |
Fill |
Rasterize the full polygons. |
Line |
Rasterize the edges of polygons. |
Point |
Rasterize the vertices of polygons as points. |
enum class tp:: ReadAccess: uint64_t
Describes a kind of read-only resource access by any part of the pipeline.
Enumerators | |
---|---|
DrawIndirect |
Read access of indirect command data through an indirect drawing command. |
DrawIndex |
Read access of an index buffer through an indexed drawing command. |
DrawVertex |
Read access of a vertex buffer through a drawing command. |
Transfer |
Read transfer access of a resource through a transfer command. |
Host |
Read host access of a buffer through HostMappedMemory. |
DepthStencilAttachment |
Read access of an image as a depth stencil attachment of a render pass. |
VertexShaderStorage |
Vertex shader read access through storage descriptors. |
VertexShaderSampled |
Vertex shader read access through sampled descriptors. |
VertexShaderUniform |
Vertex shader read access through uniform buffer descriptors. |
TessellationControlShaderStorage |
Tessellation control shader read access through storage descriptors. |
TessellationControlShaderSampled |
Tessellation control shader read access through sampled descriptors. |
TessellationControlShaderUniform |
Tessellation control shader read access through uniform buffer descriptors. |
TessellationEvaluationShaderStorage |
Tessellation evaluation shader read access through storage descriptors. |
TessellationEvaluationShaderSampled |
Tessellation evaluation shader read access through sampled descriptors. |
TessellationEvaluationShaderUniform |
Tessellation evaluation shader read access through uniform buffer descriptors. |
GeometryShaderStorage |
Geometry shader read access through storage descriptors. |
GeometryShaderSampled |
Geometry shader read access through sampled descriptors. |
GeometryShaderUniform |
Geometry shader read access through uniform buffer descriptors. |
FragmentShaderStorage |
Fragment shader read access through storage descriptors. |
FragmentShaderSampled |
Fragment shader read access through sampled descriptors. |
FragmentShaderUniform |
Fragment shader read access through uniform buffer descriptors. |
ComputeShaderStorage |
Compute shader read access through storage descriptors. |
ComputeShaderSampled |
Compute shader read access through sampled descriptors. |
ComputeShaderUniform |
Compute shader read access through uniform buffer descriptors. |
ImagePresentKHR |
Image present operation access through tp:: |
Unknown |
Represents an unknown or generic read access. |
enum class tp:: RenderAccess: uint64_t
Describes a kind of resource access from the render pipeline.
Enumerators | |
---|---|
DrawIndirectRead |
Read access of indirect command data through an indirect drawing command. |
DrawIndexRead |
Read access of an index buffer through an indexed drawing command. |
DrawVertexRead |
Read access of a vertex buffer through a drawing command. |
VertexShaderStorageRead |
Vertex shader read access through storage descriptors. |
VertexShaderStorageWrite |
Vertex shader write access through storage descriptors. |
VertexShaderStorageAtomic |
Vertex shader atomic read/write access through storage descriptors. |
VertexShaderSampledRead |
Vertex shader read access through sampled descriptors. |
VertexShaderUniformRead |
Vertex shader read access through uniform buffer descriptors. |
TessellationControlShaderStorageRead |
Tessellation control shader read access through storage descriptors. |
TessellationControlShaderStorageWrite |
Tessellation control shader write access through storage descriptors. |
TessellationControlShaderStorageAtomic |
Tessellation control shader atomic read/write access through storage descriptors. |
TessellationControlShaderSampledRead |
Tessellation control shader read access through sampled descriptors. |
TessellationControlShaderUniformRead |
Tessellation control shader read access through uniform buffer descriptors. |
TessellationEvaluationShaderStorageRead |
Tessellation evaluation shader read access through storage descriptors. |
TessellationEvaluationShaderStorageWrite |
Tessellation evaluation shader write access through storage descriptors. |
TessellationEvaluationShaderStorageAtomic |
Tessellation evaluation shader atomic read/write access through storage descriptors. |
TessellationEvaluationShaderSampledRead |
Tessellation evaluation shader read access through sampled descriptors. |
TessellationEvaluationShaderUniformRead |
Tessellation evaluation shader read access through uniform buffer descriptors. |
GeometryShaderStorageRead |
Geometry shader read access through storage descriptors. |
GeometryShaderStorageWrite |
Geometry shader write access through storage descriptors. |
GeometryShaderStorageAtomic |
Geometry shader atomic read/write access through storage descriptors. |
GeometryShaderSampledRead |
Geometry shader read access through sampled descriptors. |
GeometryShaderUniformRead |
Geometry shader read access through uniform buffer descriptors. |
FragmentShaderStorageRead |
Fragment shader read access through storage descriptors. |
FragmentShaderStorageWrite |
Fragment shader write access through storage descriptors. |
FragmentShaderStorageAtomic |
Fragment shader atomic read/write access through storage descriptors. |
FragmentShaderSampledRead |
Fragment shader read access through sampled descriptors. |
FragmentShaderUniformRead |
Fragment shader read access through uniform buffer descriptors. |
enum class tp:: RenderQueryType
Specifies the type of the measured quantity by a tp::
Enumerators | |
---|---|
Occlusion |
Measures the number of samples that pass the per-fragment tests. The result can be approximate for values greater than 0. |
OcclusionPrecise |
Measures the number of samples that pass the per-fragment tests. The use of this type requires the VkPhysicalDeviceVulkanFeatures:: |
InputAssemblyVertices |
Pipeline statistics query counting the number of vertices processed by the input assembly stage. |
InputAssemblyPrimitives |
Pipeline statistics query counting the number of primitives processed by the input assembly stage. |
VertexShaderInvocations |
Pipeline statistics query counting the number of vertex shader invocations. |
GeometryShaderInvocations |
Pipeline statistics query counting number of geometry shader invocations. |
GeometryShaderPrimitives |
Pipeline statistics query counting the number of primitives generated by geometry shader invocations. |
ClippingInvocations |
Pipeline statistics query counting the number of primitives processed by the "primitive clipping" stage of the pipeline. |
ClippingPrimitives |
Pipeline statistics query counting the number of primitives output by the "primitive clipping" stage of the pipeline. |
FragmentShaderInvocations |
Pipeline statistics query counting the number of fragment shader invocations. |
TessellationControlShaderPatches |
Pipeline statistics query counting the number of patches processed by the tessellation control shader. |
TessellationEvaluationShaderInvocations |
Pipeline statistics query counting the number of invocations of the tessellation evaluation shader. |
enum class tp:: ResolveMode: uint32_t
Determines the method how a multisampled image should be resolved.
enum class tp:: SamplerAddressMode: uint32_t
The behavior of sampling with texture coordinates outside an image.
enum class tp:: ShaderStage: uint32_t
Specifies the stage of shader execution.
Enumerators | |
---|---|
Vertex |
The vertex shader stage. |
TessellationControl |
The tessellation control shader stage. |
TessellationEvaluation |
The tessellation evaluation shader stage. |
Geometry |
The geometry shader stage. |
Fragment |
The fragment shader stage. |
Compute |
The compute shader stage. |
enum class tp:: StatisticEventType
Describes the type of a statistic event.
Enumerators | |
---|---|
JobPrimaryCommandBuffersUsed |
On tp:: |
JobPipelineBarriersInserted |
On tp:: |
JobBufferMemoryBarriersInserted |
On tp:: |
JobImageMemoryBarriersInserted |
On tp:: |
JobLocalBufferRequestedBytes |
On tp:: |
JobLocalBufferCommittedBytes |
On tp:: |
JobPreinitBufferRequestedBytes |
On tp:: |
JobLocalImageRequestedBytes |
On tp:: |
JobLocalImageCommittedBytes |
On tp:: |
enum class tp:: StencilOp: uint32_t
Stencil function specifying what happens to the stored stencil value.
enum class tp:: SurfaceTransform: uint32_t
Transforms applied to a surface upon presentation.
Enumerators | |
---|---|
UseCurrentTransform |
Chooses the currently used transform as reported by the platform. |
Identity | |
Rotate90 | |
Rotate180 | |
Rotate270 | |
HorizontalMirror | |
HorizontalMirrorRotate90 | |
HorizontalMirrorRotate180 | |
HorizontalMirrorRotate270 | |
Inherit |
enum class tp:: SwapchainFlag: uint32_t
Additional swapchain creation options.
enum class tp:: SwapchainStatus
Describes the status of a tp::
Enumerators | |
---|---|
Optimal |
The swapchain is ready to be used for presentation and it matches surface properties. |
Suboptimal |
The swapchain is ready to be used for presentation, but it does not match surface properties exactly. The user may choose to recreate the swapchain when it's convenient. |
OutOfDate |
The underlying surface has changed in such a way that it is no longer compatible with the swapchain. Further presentation requests will fail. |
SurfaceLost |
The underlying surface has been lost and needs to be recreated, along with the swapchain. Further presentation requests will fail. |
Retired |
Indicates that the swapchain has been used to create a new swapchain and that already acquired images can still be presented, but new images cannot be acquired. |
enum class tp:: ValidationFeatureDisable: uint32_t
Validation features part of the standard set that may be optionally disabled.
enum class tp:: ValidationFeatureEnable: uint32_t
Optional validation features that may additionally be enabled.
enum class tp:: VertexInputRate: uint32_t
The rate at which input attributes are pulled from buffers.
Enumerators | |
---|---|
Vertex |
The input attribute values will be consumed per-vertex. |
Instance |
The input attribute values will be consumed per-instance. |
Typedef documentation
using tp:: BufferUsageMask = EnumBitMask<BufferUsage>
A bitmask of tp::
using tp:: CleanupCallback = std::function<void()>
The type of the user-provided function callback that can be used for freeing external resources safely.
using tp:: ColorComponentMask = EnumBitMask<ColorComponent>
A bitmask of tp::
using tp:: CompositeAlphaMask = EnumBitMask<CompositeAlpha>
A bitmask of tp::
using tp:: ComputeAccessMask = EnumBitMask<ComputeAccess>
A bitmask of tp::
using tp:: ComputeInlineCallback = std::function<void(ComputeList&)>
The type of the user-provided function callback for recording commands to a compute pass inline.
using tp:: CullModeFlagMask = EnumBitMask<CullModeFlag>
A bitmask of tp::
using tp:: DebugMessageSeverityMask = EnumBitMask<DebugMessageSeverity>
A bitmask of tp::
using tp:: DebugMessageTypeMask = EnumBitMask<DebugMessageType>
A bitmask of tp::
using tp:: DescriptorBindingFlagMask = EnumBitMask<DescriptorBindingFlag>
A bitmask of tp::
using tp:: DescriptorSetFlagMask = EnumBitMask<DescriptorSetFlag>
A bitmask of tp::
using tp:: FormatFeatureMask = EnumBitMask<FormatFeature>
A bitmask of tp::
using tp:: FormatUsageMask = EnumBitMask<FormatUsage>
A bitmask of tp::
using tp:: ImageAspectMask = EnumBitMask<ImageAspect>
A bitmask of tp::
using tp:: ImageFlagMask = EnumBitMask<ImageFlag>
A bitmask of tp::
using tp:: ImageUsageMask = EnumBitMask<ImageUsage>
A bitmask of tp::
using tp:: JobFlagMask = EnumBitMask<JobFlag>
A bitmask of tp::
using tp:: JobResourcePoolFlagMask = EnumBitMask<JobResourcePoolFlag>
A bitmask of tp::
using tp:: MultisampleLevelMask = EnumBitMask<MultisampleLevel>
A bitmask of tp::
using tp:: PipelineFlagMask = EnumBitMask<PipelineFlag>
A bitmask of tp::
using tp:: ReadAccessMask = EnumBitMask<ReadAccess>
A bitmask of tp::
using tp:: RenderAccessMask = EnumBitMask<RenderAccess>
A bitmask of tp::
using tp:: RenderInlineCallback = std::function<void(RenderList&)>
The type of the user-provided function callback for recording commands to a render pass inline.
using tp:: ResolveModeMask = EnumBitMask<ResolveMode>
A bitmask of tp::
using tp:: ShaderStageMask = EnumBitMask<ShaderStage>
A bitmask of tp::
using tp:: SurfaceTransformMask = EnumBitMask<SurfaceTransform>
A bitmask of tp::
using tp:: SwapchainFlagMask = EnumBitMask<SwapchainFlag>
A bitmask of tp::
using tp:: ValidationFeatureDisableMask = EnumBitMask<ValidationFeatureDisable>
A bitmask of tp::
using tp:: ValidationFeatureEnableMask = EnumBitMask<ValidationFeatureEnable>
A bitmask of tp::