Magnum::Vk namespace

Vulkan wrapping layer.

C++14 wrappers and helpers for Vulkan development.

This library is depends on Vulkan and is built if MAGNUM_WITH_VK is enabled when building Magnum. To use this library with CMake, put FindVulkan.cmake into your modules/ directory, request the Vk component of the Magnum package and link to the Magnum::Vk target:

find_package(Magnum REQUIRED Vk)

# ...
target_link_libraries(your-app PRIVATE Magnum::Vk)

Additionally, if you're using Magnum as a CMake subproject, do the following before calling find_package() to ensure it's enabled, as the library is not built by default:

set(MAGNUM_WITH_VK ON CACHE BOOL "" FORCE)
add_subdirectory(magnum EXCLUDE_FROM_ALL)

See Downloading and building, Usage with CMake and Vulkan for more information.

Namespaces

namespace Extensions new in Git master
Compile-time information about Vulkan instance and device extensions.

Classes

class AttachmentDescription new in Git master
Attachment description.
class AttachmentReference new in Git master
Attachment reference.
class Buffer new in Git master
Buffer.
class BufferCopy new in Git master
Buffer copy region.
class BufferCreateInfo new in Git master
Buffer creation info.
class BufferImageCopy new in Git master
Buffer / image copy region.
class BufferImageCopy1D new in Git master
Convenience constructor for buffer / 1D image copy region.
class BufferImageCopy1DArray new in Git master
Convenience constructor for buffer / 1D array image copy region.
class BufferImageCopy2D new in Git master
Convenience constructor for buffer / 2D image copy region.
class BufferImageCopy2DArray new in Git master
Convenience constructor for buffer / 2D array image copy region.
class BufferImageCopy3D new in Git master
Convenience constructor for buffer / 3D image copy region.
class BufferImageCopyCubeMap new in Git master
Convenience constructor for buffer / cube map image copy region.
class BufferImageCopyCubeMapArray new in Git master
Convenience constructor for buffer / cube map image copy region.
class BufferMemoryBarrier new in Git master
Memory barrier affecting a single buffer.
class CommandBuffer new in Git master
Command buffer.
class CommandBufferBeginInfo new in Git master
Command buffer begin info.
class CommandPool new in Git master
Command pool.
class CommandPoolCreateInfo new in Git master
Command pool creation info.
class ComputePipelineCreateInfo new in Git master
Compute pipeline creation info.
class CopyBufferInfo new in Git master
Buffer copy command.
class CopyBufferToImageInfo new in Git master
Buffer to image copy command.
class CopyBufferToImageInfo1D new in Git master
Convenience constructor for a buffer to 1D image copy command.
class CopyBufferToImageInfo1DArray new in Git master
Convenience constructor for a buffer to 1D array image copy command.
class CopyBufferToImageInfo2D new in Git master
Convenience constructor for a buffer to 2D image copy command.
class CopyBufferToImageInfo2DArray new in Git master
Convenience constructor for a buffer to 2D array image copy command.
class CopyBufferToImageInfo3D new in Git master
Convenience constructor for a buffer to 3D image copy command.
class CopyBufferToImageInfoCubeMap new in Git master
Convenience constructor for a buffer to cube map image copy command.
class CopyBufferToImageInfoCubeMapArray new in Git master
Convenience constructor for a buffer to cube map array image copy command.
class CopyImageInfo new in Git master
Image copy command.
class CopyImageToBufferInfo new in Git master
Image to buffer copy command.
class CopyImageToBufferInfo1D new in Git master
Convenience constructor for a 1D image to buffer copy command.
class CopyImageToBufferInfo1DArray new in Git master
Convenience constructor for a 1D array image to buffer copy command.
class CopyImageToBufferInfo2D new in Git master
Convenience constructor for a 2D image to buffer copy command.
class CopyImageToBufferInfo2DArray new in Git master
Convenience constructor for a 2D array image to buffer copy command.
class CopyImageToBufferInfo3D new in Git master
Convenience constructor for a 3D image to buffer copy command.
class CopyImageToBufferInfoCubeMap new in Git master
Convenience constructor for a cube map image to buffer copy command.
class CopyImageToBufferInfoCubeMapArray new in Git master
Convenience constructor for a cube map array image to buffer copy command.
class DescriptorPool new in Git master
Descriptor pool.
class DescriptorPoolCreateInfo new in Git master
Descriptor pool creation info.
class DescriptorSet new in Git master
Descriptor set.
class DescriptorSetLayout new in Git master
Descriptor set layout.
class DescriptorSetLayoutBinding new in Git master
Descriptor set layout binding.
class DescriptorSetLayoutCreateInfo new in Git master
Descriptor set layout creation info.
class Device new in Git master
Device.
class DeviceCreateInfo new in Git master
Device creation info.
class DeviceProperties new in Git master
Physical device properties.
class Extension new in Git master
Run-time information about a Vulkan device extension.
class ExtensionProperties new in Git master
Extension properties.
class Fence new in Git master
Fence.
class FenceCreateInfo new in Git master
Fence creation info.
class Framebuffer new in Git master
Framebuffer.
class FramebufferCreateInfo new in Git master
Framebuffer creation info.
class Image new in Git master
Image.
class ImageCopy new in Git master
Image copy region.
class ImageCreateInfo new in Git master
Image creation info.
class ImageCreateInfo1D new in Git master
Convenience constructor for 1D images.
class ImageCreateInfo1DArray new in Git master
Convenience constructor for 1D array images.
class ImageCreateInfo2D new in Git master
Convenience constructor for 2D images.
class ImageCreateInfo2DArray new in Git master
Convenience constructor for 2D array images.
class ImageCreateInfo3D new in Git master
Convenience constructor for 3D images.
class ImageCreateInfoCubeMap new in Git master
Convenience constructor for cube map images.
class ImageCreateInfoCubeMapArray new in Git master
Convenience constructor for cube map array images.
class ImageMemoryBarrier new in Git master
Memory barrier affecting a single image.
class ImageView new in Git master
Image view.
class ImageViewCreateInfo new in Git master
Image view creation info.
class ImageViewCreateInfo1D new in Git master
Convenience constructor for 1D image views.
class ImageViewCreateInfo1DArray new in Git master
Convenience constructor for 1D array image views.
class ImageViewCreateInfo2D new in Git master
Convenience constructor for 2D image views.
class ImageViewCreateInfo2DArray new in Git master
Convenience constructor for 2D array image views.
class ImageViewCreateInfo3D new in Git master
Convenience constructor for 3D image views.
class ImageViewCreateInfoCubeMap new in Git master
Convenience constructor for cube map image views.
class ImageViewCreateInfoCubeMapArray new in Git master
Convenience constructor for cube map array image views.
class Instance new in Git master
Instance.
class InstanceCreateInfo new in Git master
Instance creation info.
class InstanceExtension new in Git master
Run-time information about a Vulkan instance extension.
class InstanceExtensionProperties new in Git master
Instance extension properties.
class LayerProperties new in Git master
Vulkan layer properties.
class Memory new in Git master
Device memory.
class MemoryAllocateInfo new in Git master
Memory allocation info.
class MemoryBarrier new in Git master
Global memory barrier.
class MemoryMapDeleter new in Git master
Deleter for mapped memory.
class MemoryRequirements new in Git master
Device memory requirements.
class Mesh new in Git master
Mesh.
class MeshLayout new in Git master
Mesh layout.
class Pipeline new in Git master
Pipeline.
class PipelineLayout new in Git master
Pipeline layout.
class PipelineLayoutCreateInfo new in Git master
Pipeline layout creation info.
class Queue new in Git master
Queue.
class RasterizationPipelineCreateInfo new in Git master
Rasterization pipeline creation info.
class RenderPass new in Git master
Render pass.
class RenderPassBeginInfo new in Git master
Render pass begin info.
class RenderPassCreateInfo new in Git master
Render pass creation info.
class Sampler new in Git master
Sampler.
class SamplerCreateInfo new in Git master
Sampler creation info.
class Shader new in Git master
Shader.
class ShaderCreateInfo new in Git master
Shader creation info.
class ShaderSet new in Git master
Shader set.
class ShaderSpecialization new in Git master
Shader specialization.
class SubmitInfo new in Git master
Queue submit info.
class SubpassBeginInfo new in Git master
Subpass begin info.
class SubpassDependency new in Git master
Subpass dependency.
class SubpassDescription new in Git master
Subpass description.
class SubpassEndInfo new in Git master
Subpass end info.
class VulkanTester new in Git master
Base class for Vulkan tests and benchmarks.

Enums

enum class BufferUsage: UnsignedInt { 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, ShaderBindingTable = VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR, AccelerationStructureBuildInputReadOnly = VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR, AccelerationStructureStorage = VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR } new in Git master
Buffer usage.
enum class CommandBufferResetFlag: UnsignedInt { ReleaseResources = VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT } new in Git master
Command buffer reset flag.
enum class CommandBufferLevel: Int { Primary = VK_COMMAND_BUFFER_LEVEL_PRIMARY, Secondary = VK_COMMAND_BUFFER_LEVEL_SECONDARY } new in Git master
Command buffer level.
enum class CommandPoolResetFlag: UnsignedInt { ReleaseResources = VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT } new in Git master
Command buffer reset flag.
enum class DescriptorType: Int { Sampler = VK_DESCRIPTOR_TYPE_SAMPLER, CombinedImageSampler = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, SampledImage = VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, StorageImage = VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, UniformTexelBuffer = VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER, StorageTexelBuffer = VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER, UniformBuffer = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, StorageBuffer = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, UniformBufferDynamic = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, StorageBufferDynamic = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC, InputAttachment = VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, AccelerationStructure = VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR } new in Git master
Descriptor type.
enum class DeviceFeature: UnsignedShort { RobustBufferAccess, FullDrawIndexUnsignedInt, ImageCubeArray, IndependentBlend, GeometryShader, TessellationShader, SampleRateShading, DualSrcBlend, LogicOp, MultiDrawIndirect, DrawIndirectFirstInstance, DepthClamp, DepthBiasClamp, FillModeNonSolid, DepthBounds, WideLines, LargePoints, AlphaToOne, MultiViewport, SamplerAnisotropy, TextureCompressionEtc2, TextureCompressionAstcLdr, TextureCompressionBc, OcclusionQueryPrecise, PipelineStatisticsQuery, VertexPipelineStoresAndAtomics, FragmentStoresAndAtomics, ShaderTessellationAndGeometryPointSize, ShaderImageGatherExtended, ShaderStorageImageExtendedFormats, ShaderStorageImageMultisample, ShaderStorageImageReadWithoutFormat, ShaderStorageImageWriteWithoutFormat, ShaderUniformBufferArrayDynamicIndexing, ShaderSampledImageArrayDynamicIndexing, ShaderStorageBufferArrayDynamicIndexing, ShaderStorageImageArrayDynamicIndexing, ShaderClipDistance, ShaderCullDistance, ShaderFloat64, ShaderInt64, ShaderInt16, ShaderResourceResidency, ShaderResourceMinLod, SparseBinding, SparseResidencyBuffer, SparseResidencyImage2D, SparseResidencyImage3D, SparseResidency2Samples, SparseResidency4Samples, SparseResidency8Samples, SparseResidency16Samples, SparseResidencyAliased, VariableMultisampleRate, InheritedQueries, ProtectedMemory, Multiview, MultiviewGeometryShader, MultiviewTessellationShader, ShaderDrawParameters, TextureCompressionAstcHdr, ShaderFloat16, ShaderInt8, StorageBuffer16BitAccess, UniformAndStorageBuffer16BitAccess, StoragePushConstant16, StorageInputOutput16, ImagelessFramebuffer, VariablePointersStorageBuffer, VariablePointers, AccelerationStructure, AccelerationStructureCaptureReplay, AccelerationStructureIndirectBuild, AccelerationStructureHostCommands, DescriptorBindingAccelerationStructureUpdateAfterBind, SamplerYcbcrConversion, ShaderInputAttachmentArrayDynamicIndexing, ShaderUniformTexelBufferArrayDynamicIndexing, ShaderStorageTexelBufferArrayDynamicIndexing, ShaderUniformBufferArrayNonUniformIndexing, ShaderSampledImageArrayNonUniformIndexing, ShaderStorageBufferArrayNonUniformIndexing, ShaderStorageImageArrayNonUniformIndexing, ShaderInputAttachmentArrayNonUniformIndexing, ShaderUniformTexelBufferArrayNonUniformIndexing, ShaderStorageTexelBufferArrayNonUniformIndexing, DescriptorBindingUniformBufferUpdateAfterBind, DescriptorBindingSampledImageUpdateAfterBind, DescriptorBindingStorageImageUpdateAfterBind, DescriptorBindingStorageBufferUpdateAfterBind, DescriptorBindingUniformTexelBufferUpdateAfterBind, DescriptorBindingStorageTexelBufferUpdateAfterBind, DescriptorBindingUpdateUnusedWhilePending, DescriptorBindingPartiallyBound, DescriptorBindingVariableDescriptorCount, RuntimeDescriptorArray, ConstantAlphaColorBlendFactors, Events, ImageViewFormatReinterpretation, ImageViewFormatSwizzle, ImageView2DOn3DImage, MultisampleArrayImage, MutableComparisonSamplers, PointPolygons, SamplerMipLodBias, SeparateStencilMaskRef, ShaderSampleRateInterpolationFunctions, TessellationIsolines, TessellationPointMode, TriangleFans, VertexAttributeAccessBeyondStride, ShaderSubgroupExtendedTypes, StorageBuffer8BitAccess, UniformAndStorageBuffer8BitAccess, StoragePushConstant8, ShaderBufferInt64Atomics, ShaderSharedInt64Atomics, VertexAttributeInstanceRateDivisor, VertexAttributeInstanceRateZeroDivisor, TimelineSemaphore, VulkanMemoryModel, VulkanMemoryModelDeviceScope, VulkanMemoryModelAvailabilityVisibilityChains, ScalarBlockLayout, SeparateDepthStencilLayouts, UniformBufferStandardLayout, BufferDeviceAddress, BufferDeviceAddressCaptureReplay, BufferDeviceAddressMultiDevice, HostQueryReset, IndexTypeUnsignedByte, ExtendedDynamicState, RobustBufferAccess2, RobustImageAccess2, NullDescriptor, RobustImageAccess, RayTracingPipeline, RayTracingPipelineShaderGroupHandleCaptureReplay, RayTracingPipelineShaderGroupHandleCaptureReplayMixed, RayTracingPipelineTraceRaysIndirect, RayTraversalPrimitiveCulling, RayQuery } new in Git master
Device feature.
enum class DeviceType: Int { 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 } new in Git master
Physical device type.
enum class DeviceDriver: Int { Unknown = 0, AmdOpenSource = VK_DRIVER_ID_AMD_OPEN_SOURCE, AmdProprietary = VK_DRIVER_ID_AMD_PROPRIETARY, ArmProprietary = VK_DRIVER_ID_ARM_PROPRIETARY, BroadcomProprietary = VK_DRIVER_ID_BROADCOM_PROPRIETARY, GgpProprietary = VK_DRIVER_ID_GGP_PROPRIETARY, GoogleSwiftShader = VK_DRIVER_ID_GOOGLE_SWIFTSHADER, ImaginationProprietary = VK_DRIVER_ID_IMAGINATION_PROPRIETARY, IntelOpenSourceMesa = VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA, IntelProprietaryWindows = VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS, MesaLlvmpipe = VK_DRIVER_ID_MESA_LLVMPIPE, MesaRadv = VK_DRIVER_ID_MESA_RADV, MoltenVk = VK_DRIVER_ID_MOLTENVK, NVidiaProprietary = VK_DRIVER_ID_NVIDIA_PROPRIETARY, QualcommProprietary = VK_DRIVER_ID_QUALCOMM_PROPRIETARY } new in Git master
Physical device driver ID.
enum class QueueFlag: UnsignedInt { Graphics = VK_QUEUE_GRAPHICS_BIT, Compute = VK_QUEUE_COMPUTE_BIT, Transfer = VK_QUEUE_TRANSFER_BIT, SparseBinding = VK_QUEUE_SPARSE_BINDING_BIT, Protected = VK_QUEUE_PROTECTED_BIT } new in Git master
Queue flag.
enum class MemoryHeapFlag: UnsignedInt { DeviceLocal = VK_MEMORY_HEAP_DEVICE_LOCAL_BIT } new in Git master
Memory heap flag.
enum class HandleFlag: UnsignedByte { DestroyOnDestruction = 1 << 0 } new in Git master
Handle wrapping flag.
enum class ImageLayout: Int { Undefined = VK_IMAGE_LAYOUT_UNDEFINED, Preinitialized = VK_IMAGE_LAYOUT_PREINITIALIZED, General = VK_IMAGE_LAYOUT_GENERAL, ColorAttachment = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, DepthStencilAttachment = VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL, ShaderReadOnly = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, TransferSource = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, TransferDestination = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL } new in Git master
Image layout.
enum class ImageAspect: UnsignedInt { Color = VK_IMAGE_ASPECT_COLOR_BIT, Depth = VK_IMAGE_ASPECT_DEPTH_BIT, Stencil = VK_IMAGE_ASPECT_STENCIL_BIT } new in Git master
Image aspect.
enum class ImageUsage: UnsignedInt { 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, ColorAttachment = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, DepthStencilAttachment = VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, TransientAttachment = VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, InputAttachment = VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT } new in Git master
Image usage.
enum class MemoryFlag: UnsignedInt { DeviceLocal = VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT, HostVisible = VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT, HostCoherent = VK_MEMORY_PROPERTY_HOST_COHERENT_BIT, HostCached = VK_MEMORY_PROPERTY_HOST_CACHED_BIT, LazilyAllocated = VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT } new in Git master
Memory type flag.
enum class MeshIndexType: Int { UnsignedByte = VK_INDEX_TYPE_UINT8_EXT, UnsignedShort = VK_INDEX_TYPE_UINT16, UnsignedInt = VK_INDEX_TYPE_UINT32 } new in Git master
Mesh index type.
enum class MeshPrimitive: Int { Points = VK_PRIMITIVE_TOPOLOGY_POINT_LIST, Lines = VK_PRIMITIVE_TOPOLOGY_LINE_LIST, LineStrip = VK_PRIMITIVE_TOPOLOGY_LINE_STRIP, Triangles = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, TriangleStrip = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP, TriangleFan = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN, LinesAdjacency = VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY, LineStripAdjacency = VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY, TrianglesAdjacency = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY, TriangleStripAdjacency = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY, Patches = VK_PRIMITIVE_TOPOLOGY_PATCH_LIST } new in Git master
Mesh primitive.
enum class PipelineBindPoint: Int { Rasterization = VK_PIPELINE_BIND_POINT_GRAPHICS, RayTracing = VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR, Compute = VK_PIPELINE_BIND_POINT_COMPUTE } new in Git master
Pipeline bind point.
enum class PipelineStage: UnsignedInt { 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, TessellationControlShader = VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT, TessellationEvaluationShader = 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, Transfer = VK_PIPELINE_STAGE_TRANSFER_BIT, BottomOfPipe = VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT, Host = VK_PIPELINE_STAGE_HOST_BIT, AccelerationStructureBuild = VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, RayTracingShader = VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR, AllRasterization = VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT, AllCommands = VK_PIPELINE_STAGE_ALL_COMMANDS_BIT } new in Git master
Pipeline stage.
enum class Access: UnsignedInt { IndirectCommandRead = VK_ACCESS_INDIRECT_COMMAND_READ_BIT, IndexRead = VK_ACCESS_INDEX_READ_BIT, VertexAttributeRead = VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT, UniformRead = VK_ACCESS_UNIFORM_READ_BIT, InputAttachmentRead = VK_ACCESS_INPUT_ATTACHMENT_READ_BIT, ShaderRead = VK_ACCESS_SHADER_READ_BIT, ShaderWrite = VK_ACCESS_SHADER_WRITE_BIT, ColorAttachmentRead = VK_ACCESS_COLOR_ATTACHMENT_READ_BIT, ColorAttachmentWrite = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, DepthStencilAttachmentRead = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT, DepthStencilAttachmentWrite = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT, TransferRead = VK_ACCESS_TRANSFER_READ_BIT, TransferWrite = VK_ACCESS_TRANSFER_WRITE_BIT, HostRead = VK_ACCESS_HOST_READ_BIT, HostWrite = VK_ACCESS_HOST_WRITE_BIT, MemoryRead = VK_ACCESS_MEMORY_READ_BIT, MemoryWrite = VK_ACCESS_MEMORY_WRITE_BIT, AccelerationStructureRead = VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR, AccelerationStructureWrite = VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR } new in Git master
Memory access type participating in a memory dependency.
enum class DependencyFlag: UnsignedInt { ByRegion = VK_DEPENDENCY_BY_REGION_BIT } new in Git master
Execution and memory dependency flag.
enum class PixelFormat: Int { R8Unorm = VK_FORMAT_R8_UNORM, RG8Unorm = VK_FORMAT_R8G8_UNORM, RGB8Unorm = VK_FORMAT_R8G8B8_UNORM, RGBA8Unorm = VK_FORMAT_R8G8B8A8_UNORM, R8Snorm = VK_FORMAT_R8_SNORM, RG8Snorm = VK_FORMAT_R8G8_SNORM, RGB8Snorm = VK_FORMAT_R8G8B8_SNORM, RGBA8Snorm = VK_FORMAT_R8G8B8A8_SNORM, R8Srgb = VK_FORMAT_R8_SRGB, RG8Srgb = VK_FORMAT_R8G8_SRGB, RGB8Srgb = VK_FORMAT_R8G8B8_SRGB, RGBA8Srgb = VK_FORMAT_R8G8B8A8_SRGB, R8UI = VK_FORMAT_R8_UINT, RG8UI = VK_FORMAT_R8G8_UINT, RGB8UI = VK_FORMAT_R8G8B8_UINT, RGBA8UI = VK_FORMAT_R8G8B8A8_UINT, R8I = VK_FORMAT_R8_SINT, RG8I = VK_FORMAT_R8G8_SINT, RGB8I = VK_FORMAT_R8G8B8_SINT, RGBA8I = VK_FORMAT_R8G8B8A8_SINT, R16Unorm = VK_FORMAT_R16_UNORM, RG16Unorm = VK_FORMAT_R16G16_UNORM, RGB16Unorm = VK_FORMAT_R16G16B16_UNORM, RGBA16Unorm = VK_FORMAT_R16G16B16A16_UNORM, R16Snorm = VK_FORMAT_R16_SNORM, RG16Snorm = VK_FORMAT_R16G16_SNORM, RGB16Snorm = VK_FORMAT_R16G16B16_SNORM, RGBA16Snorm = VK_FORMAT_R16G16B16A16_SNORM, R16UI = VK_FORMAT_R16_UINT, RG16UI = VK_FORMAT_R16G16_UINT, RGB16UI = VK_FORMAT_R16G16B16_UINT, RGBA16UI = VK_FORMAT_R16G16B16A16_UINT, R16I = VK_FORMAT_R16_SINT, RG16I = VK_FORMAT_R16G16_SINT, RGB16I = VK_FORMAT_R16G16B16_SINT, RGBA16I = VK_FORMAT_R16G16B16A16_SINT, R32UI = VK_FORMAT_R32_UINT, RG32UI = VK_FORMAT_R32G32_UINT, RGB32UI = VK_FORMAT_R32G32B32_UINT, RGBA32UI = VK_FORMAT_R32G32B32A32_UINT, R32I = VK_FORMAT_R32_SINT, RG32I = VK_FORMAT_R32G32_SINT, RGB32I = VK_FORMAT_R32G32B32_SINT, RGBA32I = VK_FORMAT_R32G32B32A32_SINT, R16F = VK_FORMAT_R16_SFLOAT, RG16F = VK_FORMAT_R16G16_SFLOAT, RGB16F = VK_FORMAT_R16G16B16_SFLOAT, RGBA16F = VK_FORMAT_R16G16B16A16_SFLOAT, R32F = VK_FORMAT_R32_SFLOAT, RG32F = VK_FORMAT_R32G32_SFLOAT, RGB32F = VK_FORMAT_R32G32B32_SFLOAT, RGBA32F = VK_FORMAT_R32G32B32A32_SFLOAT, Depth16Unorm = VK_FORMAT_D16_UNORM, Depth24Unorm = VK_FORMAT_X8_D24_UNORM_PACK32, Depth32F = VK_FORMAT_D32_SFLOAT, Stencil8UI = VK_FORMAT_S8_UINT, Depth16UnormStencil8UI = VK_FORMAT_D16_UNORM_S8_UINT, Depth24UnormStencil8UI = VK_FORMAT_D24_UNORM_S8_UINT, Depth32FStencil8UI = VK_FORMAT_D32_SFLOAT_S8_UINT, CompressedBc1RGBUnorm = VK_FORMAT_BC1_RGB_UNORM_BLOCK, CompressedBc1RGBSrgb = VK_FORMAT_BC1_RGB_SRGB_BLOCK, CompressedBc1RGBAUnorm = VK_FORMAT_BC1_RGBA_UNORM_BLOCK, CompressedBc1RGBASrgb = VK_FORMAT_BC1_RGBA_SRGB_BLOCK, CompressedBc2RGBAUnorm = VK_FORMAT_BC2_UNORM_BLOCK, CompressedBc2RGBASrgb = VK_FORMAT_BC2_SRGB_BLOCK, CompressedBc3RGBAUnorm = VK_FORMAT_BC3_UNORM_BLOCK, CompressedBc3RGBASrgb = VK_FORMAT_BC3_SRGB_BLOCK, CompressedBc4RUnorm = VK_FORMAT_BC4_UNORM_BLOCK, CompressedBc4RSnorm = VK_FORMAT_BC4_SNORM_BLOCK, CompressedBc5RGUnorm = VK_FORMAT_BC5_UNORM_BLOCK, CompressedBc5RGSnorm = VK_FORMAT_BC5_SNORM_BLOCK, CompressedBc6hRGBUfloat = VK_FORMAT_BC6H_UFLOAT_BLOCK, CompressedBc6hRGBSfloat = VK_FORMAT_BC6H_SFLOAT_BLOCK, CompressedBc7RGBAUnorm = VK_FORMAT_BC7_UNORM_BLOCK, CompressedBc7RGBASrgb = VK_FORMAT_BC7_SRGB_BLOCK, CompressedEacR11Unorm = VK_FORMAT_EAC_R11_UNORM_BLOCK, CompressedEacR11Snorm = VK_FORMAT_EAC_R11_SNORM_BLOCK, CompressedEacRG11Unorm = VK_FORMAT_EAC_R11G11_UNORM_BLOCK, CompressedEacRG11Snorm = VK_FORMAT_EAC_R11G11_SNORM_BLOCK, CompressedEtc2RGB8Unorm = VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK, CompressedEtc2RGB8Srgb = VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK, CompressedEtc2RGB8A1Unorm = VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK, CompressedEtc2RGB8A1Srgb = VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK, CompressedEtc2RGBA8Unorm = VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK, CompressedEtc2RGBA8Srgb = VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK, CompressedAstc4x4RGBAUnorm = VK_FORMAT_ASTC_4x4_UNORM_BLOCK, CompressedAstc4x4RGBASrgb = VK_FORMAT_ASTC_4x4_SRGB_BLOCK, CompressedAstc4x4RGBAF = VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT, CompressedAstc5x4RGBAUnorm = VK_FORMAT_ASTC_5x4_UNORM_BLOCK, CompressedAstc5x4RGBASrgb = VK_FORMAT_ASTC_5x4_SRGB_BLOCK, CompressedAstc5x4RGBAF = VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT, CompressedAstc5x5RGBAUnorm = VK_FORMAT_ASTC_5x5_UNORM_BLOCK, CompressedAstc5x5RGBASrgb = VK_FORMAT_ASTC_5x5_SRGB_BLOCK, CompressedAstc5x5RGBAF = VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT, CompressedAstc6x5RGBAUnorm = VK_FORMAT_ASTC_6x5_UNORM_BLOCK, CompressedAstc6x5RGBASrgb = VK_FORMAT_ASTC_6x5_SRGB_BLOCK, CompressedAstc6x5RGBAF = VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT, CompressedAstc6x6RGBAUnorm = VK_FORMAT_ASTC_6x6_UNORM_BLOCK, CompressedAstc6x6RGBASrgb = VK_FORMAT_ASTC_6x6_SRGB_BLOCK, CompressedAstc6x6RGBAF = VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT, CompressedAstc8x5RGBAUnorm = VK_FORMAT_ASTC_8x5_UNORM_BLOCK, CompressedAstc8x5RGBASrgb = VK_FORMAT_ASTC_8x5_SRGB_BLOCK, CompressedAstc8x5RGBAF = VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT, CompressedAstc8x6RGBAUnorm = VK_FORMAT_ASTC_8x6_UNORM_BLOCK, CompressedAstc8x6RGBASrgb = VK_FORMAT_ASTC_8x6_SRGB_BLOCK, CompressedAstc8x6RGBAF = VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT, CompressedAstc8x8RGBAUnorm = VK_FORMAT_ASTC_8x8_UNORM_BLOCK, CompressedAstc8x8RGBASrgb = VK_FORMAT_ASTC_8x8_SRGB_BLOCK, CompressedAstc8x8RGBAF = VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT, CompressedAstc10x5RGBAUnorm = VK_FORMAT_ASTC_10x5_UNORM_BLOCK, CompressedAstc10x5RGBASrgb = VK_FORMAT_ASTC_10x5_SRGB_BLOCK, CompressedAstc10x5RGBAF = VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT, CompressedAstc10x6RGBAUnorm = VK_FORMAT_ASTC_10x6_UNORM_BLOCK, CompressedAstc10x6RGBASrgb = VK_FORMAT_ASTC_10x6_SRGB_BLOCK, CompressedAstc10x6RGBAF = VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT, CompressedAstc10x8RGBAUnorm = VK_FORMAT_ASTC_10x8_UNORM_BLOCK, CompressedAstc10x8RGBASrgb = VK_FORMAT_ASTC_10x8_SRGB_BLOCK, CompressedAstc10x8RGBAF = VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT, CompressedAstc10x10RGBAUnorm = VK_FORMAT_ASTC_10x10_UNORM_BLOCK, CompressedAstc10x10RGBASrgb = VK_FORMAT_ASTC_10x10_SRGB_BLOCK, CompressedAstc10x10RGBAF = VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT, CompressedAstc12x10RGBAUnorm = VK_FORMAT_ASTC_12x10_UNORM_BLOCK, CompressedAstc12x10RGBASrgb = VK_FORMAT_ASTC_12x10_SRGB_BLOCK, CompressedAstc12x10RGBAF = VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT, CompressedAstc12x12RGBAUnorm = VK_FORMAT_ASTC_12x12_UNORM_BLOCK, CompressedAstc12x12RGBASrgb = VK_FORMAT_ASTC_12x12_SRGB_BLOCK, CompressedAstc12x12RGBAF = VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT, CompressedPvrtcRGBA2bppUnorm = VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG, CompressedPvrtcRGBA2bppSrgb = VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG, CompressedPvrtcRGBA4bppUnorm = VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG, CompressedPvrtcRGBA4bppSrgb = VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG, CompressedPvrtc2RGBA2bppUnorm = VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG, CompressedPvrtc2RGBA2bppSrgb = VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG, CompressedPvrtc2RGBA4bppUnorm = VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG, CompressedPvrtc2RGBA4bppSrgb = VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG } new in Git master
Pixel format.
enum class DynamicRasterizationState: UnsignedByte { Viewport, Scissor, LineWidth, DepthBias, BlendConstants, DepthBounds, StencilCompareMask, StencilWriteMask, StencilReference, CullMode, FrontFace, MeshPrimitive, ViewportWithCount, ScissorWithCount, VertexInputBindingStride, DepthTestEnable, DepthWriteEnable, DepthCompareOperation, DepthBoundsTestEnable, StencilTestEnable, StencilOperation } new in Git master
Dynamic rasterization state.
enum class SubpassContents: Int { Inline = VK_SUBPASS_CONTENTS_INLINE, SecondaryCommandBuffers = VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS } new in Git master
Subpass contents.
enum class AttachmentLoadOperation: Int { Load = VK_ATTACHMENT_LOAD_OP_LOAD, Clear = VK_ATTACHMENT_LOAD_OP_CLEAR, DontCare = VK_ATTACHMENT_LOAD_OP_DONT_CARE } new in Git master
Attachment load operation.
enum class AttachmentStoreOperation: Int { Store = VK_ATTACHMENT_STORE_OP_STORE, DontCare = VK_ATTACHMENT_STORE_OP_DONT_CARE } new in Git master
Attachment load operation.
enum class Result: Int { Success = VK_SUCCESS, NotReady = VK_NOT_READY, Timeout = VK_TIMEOUT, EventSet = VK_EVENT_SET, EventReset = VK_EVENT_RESET, Incomplete = VK_INCOMPLETE, ThreadIdle = VK_THREAD_IDLE_KHR, ThreadDone = VK_THREAD_DONE_KHR, OperationDeferred = VK_OPERATION_DEFERRED_KHR, OperationNotDeferred = VK_OPERATION_NOT_DEFERRED_KHR, ErrorOutOfHostMemory = VK_ERROR_OUT_OF_HOST_MEMORY, ErrorOutOfDeviceMemory = VK_ERROR_OUT_OF_DEVICE_MEMORY, ErrorInitializationFailed = VK_ERROR_INITIALIZATION_FAILED, ErrorDeviceLost = VK_ERROR_DEVICE_LOST, ErrorMemoryMapFailed = VK_ERROR_MEMORY_MAP_FAILED, ErrorLayerNotPresent = VK_ERROR_LAYER_NOT_PRESENT, ErrorExtensionNotPresent = VK_ERROR_EXTENSION_NOT_PRESENT, ErrorFeatureNotPresent = VK_ERROR_FEATURE_NOT_PRESENT, ErrorIncompatibleDriver = VK_ERROR_INCOMPATIBLE_DRIVER, ErrorTooManyObjects = VK_ERROR_TOO_MANY_OBJECTS, ErrorFormatNotSupported = VK_ERROR_FORMAT_NOT_SUPPORTED, ErrorFragmentedPool = VK_ERROR_FRAGMENTED_POOL, ErrorUnknown = VK_ERROR_UNKNOWN, ErrorOutOfPoolMemory = VK_ERROR_OUT_OF_POOL_MEMORY, ErrorInvalidExternalHandle = VK_ERROR_INVALID_EXTERNAL_HANDLE, ErrorFragmentation = VK_ERROR_FRAGMENTATION, ErrorInvalidOpaqueCaptureAddress = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS, ErrorValidationFailed = VK_ERROR_VALIDATION_FAILED_EXT } new in Git master
Result.
enum class SamplerFilter: Int { Nearest = VK_FILTER_NEAREST, Linear = VK_FILTER_LINEAR } new in Git master
Texture sampler filtering.
enum class SamplerMipmap: Int { Nearest = VK_SAMPLER_MIPMAP_MODE_NEAREST, Linear = VK_SAMPLER_MIPMAP_MODE_LINEAR } new in Git master
Texture sampler mip level selection.
enum class SamplerWrapping: Int { 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 } new in Git master
Texture sampler wrapping.
enum class ShaderStage: UnsignedInt { Vertex = VK_SHADER_STAGE_VERTEX_BIT, Fragment = VK_SHADER_STAGE_FRAGMENT_BIT, Geometry = VK_SHADER_STAGE_GEOMETRY_BIT, TessellationControl = VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, TessellationEvaluation = VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, Compute = VK_SHADER_STAGE_COMPUTE_BIT, RayGeneration = VK_SHADER_STAGE_RAYGEN_BIT_KHR, RayAnyHit = VK_SHADER_STAGE_ANY_HIT_BIT_KHR, RayClosestHit = VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR, RayMiss = VK_SHADER_STAGE_MISS_BIT_KHR, RayIntersection = VK_SHADER_STAGE_INTERSECTION_BIT_KHR, RayCallable = VK_SHADER_STAGE_CALLABLE_BIT_KHR } new in Git master
Shader stage.
enum class Version: UnsignedInt { None = 0xffffffffu, Vk10 = (1 << 22) | (0 << 12), Vk11 = (1 << 22) | (1 << 12), Vk12 = (1 << 22) | (2 << 12) } new in Git master
Vulkan version.
enum class VertexFormat: Int { Float = VK_FORMAT_R32_SFLOAT, Half = VK_FORMAT_R16_SFLOAT, Double = VK_FORMAT_R64_SFLOAT, UnsignedByte = VK_FORMAT_R8_UINT, UnsignedByteNormalized = VK_FORMAT_R8_UNORM, Byte = VK_FORMAT_R8_SINT, ByteNormalized = VK_FORMAT_R8_SNORM, UnsignedShort = VK_FORMAT_R16_UINT, UnsignedShortNormalized = VK_FORMAT_R16_UNORM, Short = VK_FORMAT_R16_SINT, ShortNormalized = VK_FORMAT_R16_SNORM, UnsignedInt = VK_FORMAT_R32_UINT, Int = VK_FORMAT_R32_SINT, Vector2 = VK_FORMAT_R32G32_SFLOAT, Vector2h = VK_FORMAT_R16G16_SFLOAT, Vector2d = VK_FORMAT_R64G64_SFLOAT, Vector2ub = VK_FORMAT_R8G8_UINT, Vector2ubNormalized = VK_FORMAT_R8G8_UNORM, Vector2b = VK_FORMAT_R8G8_SINT, Vector2bNormalized = VK_FORMAT_R8G8_SNORM, Vector2us = VK_FORMAT_R16G16_UINT, Vector2usNormalized = VK_FORMAT_R16G16_UNORM, Vector2s = VK_FORMAT_R16G16_SINT, Vector2sNormalized = VK_FORMAT_R16G16_SNORM, Vector2ui = VK_FORMAT_R32G32_UINT, Vector2i = VK_FORMAT_R32G32_SINT, Vector3 = VK_FORMAT_R32G32B32_SFLOAT, Vector3h = VK_FORMAT_R16G16B16_SFLOAT, Vector3d = VK_FORMAT_R64G64B64_SFLOAT, Vector3ub = VK_FORMAT_R8G8B8_UINT, Vector3ubNormalized = VK_FORMAT_R8G8B8_UNORM, Vector3b = VK_FORMAT_R8G8B8_SINT, Vector3bNormalized = VK_FORMAT_R8G8B8_SNORM, Vector3us = VK_FORMAT_R16G16B16_UINT, Vector3usNormalized = VK_FORMAT_R16G16B16_UNORM, Vector3s = VK_FORMAT_R16G16B16_SINT, Vector3sNormalized = VK_FORMAT_R16G16B16_SNORM, Vector3ui = VK_FORMAT_R32G32B32_UINT, Vector3i = VK_FORMAT_R32G32B32_SINT, Vector4 = VK_FORMAT_R32G32B32A32_SFLOAT, Vector4h = VK_FORMAT_R16G16B16A16_SFLOAT, Vector4d = VK_FORMAT_R64G64B64A64_SFLOAT, Vector4ub = VK_FORMAT_R8G8B8A8_UINT, Vector4ubNormalized = VK_FORMAT_R8G8B8A8_UNORM, Vector4b = VK_FORMAT_R8G8B8A8_SINT, Vector4bNormalized = VK_FORMAT_R8G8B8A8_SNORM, Vector4us = VK_FORMAT_R16G16B16A16_UINT, Vector4usNormalized = VK_FORMAT_R16G16B16A16_UNORM, Vector4s = VK_FORMAT_R16G16B16A16_SINT, Vector4sNormalized = VK_FORMAT_R16G16B16A16_SNORM, Vector4ui = VK_FORMAT_R32G32B32A32_UINT, Vector4i = VK_FORMAT_R32G32B32A32_SINT } new in Git master
Vertex format.

Typedefs

using BufferUsages = Containers::EnumSet<BufferUsage> new in Git master
Buffer usages.
using CommandBufferResetFlags = Containers::EnumSet<CommandBufferResetFlag> new in Git master
Command buffer reset flags.
using CommandPoolResetFlags = Containers::EnumSet<CommandPoolResetFlag> new in Git master
Command pool reset flags.
using DeviceFeatures = Containers::BigEnumSet<DeviceFeature, 4> new in Git master
Device features.
using QueueFlags = Containers::EnumSet<QueueFlag> new in Git master
Queue flags.
using MemoryHeapFlags = Containers::EnumSet<MemoryHeapFlag> new in Git master
Memory heap flags.
using HandleFlags = Containers::EnumSet<HandleFlag> new in Git master
Handle wrapping flags.
using ImageAspects = Containers::EnumSet<ImageAspect> new in Git master
Image aspects.
using ImageUsages = Containers::EnumSet<ImageUsage> new in Git master
Image usages.
using MemoryFlags = Containers::EnumSet<MemoryFlag> new in Git master
Memory type flags.
using PipelineStages = Containers::EnumSet<PipelineStage> new in Git master
Pipeline stages.
using Accesses = Containers::EnumSet<Access> new in Git master
Memory access type participating in a memory dependency.
using DependencyFlags = Containers::EnumSet<DependencyFlag> new in Git master
Execution and memory dependency flags.
using DynamicRasterizationStates = Containers::BigEnumSet<DynamicRasterizationState, 1> new in Git master
Dynamic rasterization states.
using ShaderStages = Containers::EnumSet<ShaderStage, VK_SHADER_STAGE_ALL> new in Git master
Shader stages.

Functions

auto operator<<(Debug& debug, DescriptorType value) -> Debug& new in Git master
Debug output operator.
auto operator<<(Debug& debug, DeviceFeature value) -> Debug& new in Git master
Debug output operator.
auto operator<<(Debug& debug, const DeviceFeatures& value) -> Debug& new in Git master
Debug output operator.
auto operator<<(Debug& debug, DeviceType value) -> Debug& new in Git master
Debug output operator.
auto operator<<(Debug& debug, DeviceDriver value) -> Debug& new in Git master
Debug output operator.
auto operator<<(Debug& debug, QueueFlag value) -> Debug& new in Git master
Debug output operator.
auto operator<<(Debug& debug, QueueFlags value) -> Debug& new in Git master
Debug output operator.
auto operator<<(Debug& debug, MemoryHeapFlag value) -> Debug& new in Git master
Debug output operator.
auto operator<<(Debug& debug, MemoryHeapFlags value) -> Debug& new in Git master
Debug output operator.
auto enumerateDevices(Instance& instance) -> Containers::Array<DeviceProperties> new in Git master
Enumerate physical devices.
auto pickDevice(Instance& instance) -> DeviceProperties new in Git master
Pick a physical device.
auto tryPickDevice(Instance& instance) -> Containers::Optional<DeviceProperties> new in Git master
Try to pick a physical device.
auto hasVkPrimitiveTopology(Magnum::MeshPrimitive primitive) -> bool deprecated in Git master
Check availability of a generic mesh primitive.
auto vkPrimitiveTopology(Magnum::MeshPrimitive primitive) -> VkPrimitiveTopology deprecated in Git master
Convert generic mesh primitive to Vulkan mesh primitive.
auto hasVkIndexType(Magnum::MeshIndexType type) -> bool deprecated in Git master
Check availability of a generic index type.
auto vkIndexType(Magnum::MeshIndexType type) -> VkIndexType deprecated in Git master
Convert a generic index type to Vulkan index type.
auto hasVkFormat(Magnum::VertexFormat format) -> bool deprecated in Git master
Check availability of a generic vertex format.
auto hasVkFormat(Magnum::PixelFormat format) -> bool deprecated in Git master
Check availability of a generic pixel format.
auto hasVkFormat(Magnum::CompressedPixelFormat format) -> bool deprecated in Git master
Check availability of a generic compressed pixel format.
auto vkFormat(Magnum::VertexFormat format) -> VkFormat deprecated in Git master
Convert a generic vertex format to Vulkan vertex format.
auto vkFormat(Magnum::PixelFormat format) -> VkFormat deprecated in Git master
Convert a generic pixel format to Vulkan pixel format.
auto vkFormat(Magnum::CompressedPixelFormat format) -> VkFormat deprecated in Git master
Convert a generic compressed pixel format to Vulkan pixel format.
auto vkFilter(Magnum::SamplerFilter filter) -> VkFilter deprecated in Git master
Convert a generic sampler filter to Vulkan sampler filter.
auto vkSamplerMipmapMode(Magnum::SamplerMipmap mipmap) -> VkSamplerMipmapMode deprecated in Git master
Convert a generic sampler mipmap mode to Vulkan sampler mipmap mode.
auto hasVkSamplerAddressMode(Magnum::SamplerWrapping wrapping) -> bool deprecated in Git master
Check availability of a generic sampler wrapping mode.
auto vkSamplerAddressMode(Magnum::SamplerWrapping wrapping) -> VkSamplerAddressMode deprecated in Git master
Convert a generic sampler wrapping mode to Vulkan sampler wrapping mode.
template<std::size_t dimensions>
auto vkSamplerAddressMode(const Math::Vector<dimensions, Magnum::SamplerWrapping>& wrapping) -> Math::Vector<dimensions, VkSamplerAddressMode> deprecated in Git master
Convert a generic sampler wrapping mode to Vulkan sampler wrapping mode.
auto enumerateInstanceExtensionProperties(const Containers::StringIterable& layers = {}) -> InstanceExtensionProperties new in Git master
Enumerate instance extension properties.
auto operator<<(Debug& debug, HandleFlag value) -> Debug& new in Git master
Debug output operator.
auto operator<<(Debug& debug, HandleFlags value) -> Debug& new in Git master
Debug output operator.
auto operator<<(Debug& out, ImageAspect value) -> Debug& new in Git master
Debug output operator.
auto operator<<(Debug& out, ImageAspects value) -> Debug& new in Git master
Debug output operator.
auto imageAspectsFor(PixelFormat format) -> ImageAspects new in Git master
Image aspects corresponding to given pixel format.
auto imageAspectsFor(Magnum::PixelFormat format) -> ImageAspects new in Git master
auto enumerateLayerProperties() -> LayerProperties new in Git master
Enumerate instance layers.
auto operator<<(Debug& debug, MemoryFlag value) -> Debug& new in Git master
Debug output operator.
auto operator<<(Debug& debug, MemoryFlags value) -> Debug& new in Git master
Debug output operator.
auto operator<<(Debug& debug, MeshIndexType value) -> Debug& new in Git master
Debug output operator.
auto meshIndexType(Magnum::MeshIndexType type) -> MeshIndexType new in Git master
Convert a generic index type to Vulkan index type.
auto operator<<(Debug& debug, MeshPrimitive value) -> Debug& new in Git master
Debug output operator.
auto hasMeshPrimitive(Magnum::MeshPrimitive primitive) -> bool new in Git master
Check availability of a generic mesh primitive.
auto meshPrimitive(Magnum::MeshPrimitive primitive) -> MeshPrimitive new in Git master
Convert generic mesh primitive to Vulkan mesh primitive.
auto operator<<(Debug& debug, PipelineBindPoint value) -> Debug& new in Git master
Debug output operator.
auto operator<<(Debug& debug, PixelFormat value) -> Debug& new in Git master
Debug output operator.
auto hasPixelFormat(Magnum::PixelFormat format) -> bool new in Git master
Check availability of a generic pixel format.
auto hasPixelFormat(Magnum::CompressedPixelFormat format) -> bool new in Git master
Check availability of a generic compressed pixel format.
auto pixelFormat(Magnum::PixelFormat format) -> PixelFormat new in Git master
Convert a generic pixel format to Vulkan pixel format.
auto pixelFormat(Magnum::CompressedPixelFormat format) -> PixelFormat new in Git master
Convert a generic compressed pixel format to Vulkan pixel format.
auto genericPixelFormat(PixelFormat format) -> Containers::Optional<Magnum::PixelFormat> new in Git master
Convert Vulkan pixel format to a generic pixel format.
auto genericCompressedPixelFormat(PixelFormat format) -> Containers::Optional<Magnum::CompressedPixelFormat> new in Git master
Convert Vulkan compressed pixel format to a generic compressed pixel format.
auto operator<<(Debug& debug, DynamicRasterizationState value) -> Debug& new in Git master
Debug output operator.
auto operator<<(Debug& debug, const DynamicRasterizationStates& value) -> Debug& new in Git master
Debug output operator.
auto operator<<(Debug& debug, Result value) -> Debug& new in Git master
Debug output operator.
auto operator<<(Debug& debug, SamplerFilter value) -> Debug& new in Git master
Debug output operator.
auto samplerFilter(Magnum::SamplerFilter filter) -> SamplerFilter new in Git master
Convert a generic sampler filter to Vulkan sampler filter.
auto operator<<(Debug& debug, SamplerWrapping value) -> Debug& new in Git master
Debug output operator.
auto samplerMipmap(Magnum::SamplerMipmap mipmap) -> SamplerMipmap new in Git master
Convert a generic sampler mipmap mode to Vulkan sampler mipmap mode.
auto operator<<(Debug& debug, SamplerMipmap value) -> Debug& new in Git master
Debug output operator.
auto samplerWrapping(Magnum::SamplerWrapping wrapping) -> SamplerWrapping new in Git master
Convert a generic sampler wrapping mode to Vulkan sampler wrapping mode.
template<std::size_t dimensions>
auto samplerWrapping(const Math::Vector<dimensions, Magnum::SamplerWrapping>& wrapping) -> Math::Vector<dimensions, SamplerWrapping> deprecated in Git master
Convert a generic sampler wrapping mode to Vulkan sampler wrapping mode.
auto version(UnsignedInt major, UnsignedInt minor, UnsignedInt patch = 0) -> Version constexpr new in Git master
Create a version from components.
auto versionMajor(Version version) -> UnsignedInt constexpr new in Git master
Extract major version number from a packed representation.
auto versionMinor(Version version) -> UnsignedInt constexpr new in Git master
Extract minor version number from a packed representation.
auto versionPatch(Version version) -> UnsignedInt constexpr new in Git master
Extract minor version number from a packed representation.
auto operator<(Version a, Version b) -> bool constexpr new in Git master
Whether a version is smaller than the other.
auto operator<=(Version a, Version b) -> bool constexpr new in Git master
Whether a version is smaller than or equal to the other.
auto operator>=(Version a, Version b) -> bool constexpr new in Git master
Whether a version is greater than or equal to the other.
auto operator>(Version a, Version b) -> bool constexpr new in Git master
Whether a version is greater than the other.
auto operator<<(Debug& debug, Version value) -> Debug& new in Git master
Debug output operator.
auto enumerateInstanceVersion() -> Version new in Git master
Enumerate version supported by the instance.
auto operator<<(Debug& debug, VertexFormat value) -> Debug& new in Git master
Debug output operator.
auto hasVertexFormat(Magnum::VertexFormat format) -> bool new in Git master
Check availability of a generic vertex format.
auto vertexFormat(Magnum::VertexFormat format) -> VertexFormat new in Git master
Convert a generic vertex format to Vulkan vertex format.

Enum documentation

enum class Magnum::Vk::BufferUsage: UnsignedInt new in Git master

Buffer usage.

Wraps a VkBufferUsageFlagBits.

Enumerators
TransferSource

Source of a transfer command.

TransferDestination

Destination of a transfer command.

UniformTexelBuffer

Suitable for creating a uniform texel buffer view.

StorageTexelBuffer

Suitable for creating a storage texel buffer view.

UniformBuffer

Suitable for a uniform buffer.

StorageBuffer

Suitable for a storage buffer.

IndexBuffer

Suitable for an index buffer.

VertexBuffer

Suitable for a vertex buffer.

IndirectBuffer

Suitable for a indirect draw buffer

ShaderBindingTable

Suitable for a ray tracing shader binding table

AccelerationStructureBuildInputReadOnly

Suitable as a read-only input to an acceleration structure build

AccelerationStructureStorage

Suitable for an acceleration structure storage space

enum class Magnum::Vk::CommandBufferResetFlag: UnsignedInt new in Git master

Command buffer reset flag.

Wraps VkCommandBufferResetFlagBits.

Enumerators
ReleaseResources

Recycle all resources from the command pool back to the system

enum class Magnum::Vk::CommandBufferLevel: Int new in Git master

Command buffer level.

Wraps a VkCommandBufferLevel.

Enumerators
Primary

Primary command buffer

Secondary

Secondary command buffer

enum class Magnum::Vk::CommandPoolResetFlag: UnsignedInt new in Git master

Command buffer reset flag.

Wraps VkCommandPoolResetFlagBits.

Enumerators
ReleaseResources

Recycle all resources from the command pool back to the system

enum class Magnum::Vk::DescriptorType: Int new in Git master

Descriptor type.

Wraps VkDescriptorType.

Enumerators
Sampler

Sampler.

CombinedImageSampler

Sampler combined with an Image.

The image is expected to have been created with ImageUsage::Sampled and be in either ImageLayout::General or ImageLayout::ShaderReadOnly.

SampledImage

Sampled Image.

The image is expected to have been created with ImageUsage::Sampled and be in either ImageLayout::General or ImageLayout::ShaderReadOnly.

StorageImage

Storage Image.

The image is expected to have been created with ImageUsage::Storage and be in ImageLayout::General.

UniformTexelBuffer

Uniform texel buffer view.

The buffer is expected to have been created with BufferUsage::UniformTexelBuffer.

StorageTexelBuffer

Storage texel buffer view.

The buffer is expected to have been created with BufferUsage::StorageTexelBuffer.

UniformBuffer

Uniform Buffer.

The buffer is expected to have been created with BufferUsage::UniformBuffer.

StorageBuffer

Storage Buffer.

The buffer is expected to have been created with BufferUsage::StorageBuffer.

UniformBufferDynamic

Uniform Buffer with a dynamic offset.

The buffer is expected to have been created with BufferUsage::UniformBuffer.

StorageBufferDynamic

Storage Buffer with a dynamic offset.

The buffer is expected to have been created with BufferUsage::StorageBuffer.

InputAttachment

Input Image attachment.

The image is expected to have been created with ImageUsage::InputAttachment and be in ImageLayout::General.

AccelerationStructure

Acceleration structure.

enum class Magnum::Vk::DeviceFeature: UnsignedShort new in Git master

Device feature.

Contains information stored in the VkPhysicalDeviceFeatures2 structure chain. Values correspond to equivalently named structure fields, usually just with the first letter uppercase instead of lowercase.

Enumerators
RobustBufferAccess

Whether accesses to buffers are bounds-checked against the range of the buffer descriptor. Out of bounds accesses are guaranteed to not cause application termination, but have implementation-dependent behavior. A subset of the guarantees provided by DeviceFeature::RobustBufferAccess2.

FullDrawIndexUnsignedInt

Whether the full 32-bit range is supported for indexed draw calls when using MeshIndexType::UnsignedInt.

ImageCubeArray

Whether image views with VK_IMAGE_VIEW_TYPE_CUBE_ARRAY can be created and used in shaders.

IndependentBlend

Whether blend state can be different per attachment.

GeometryShader

Whether geometry shaders are supported.

TessellationShader

Whether tessellation control and evaluation shaders are supported.

SampleRateShading

Whether sample shading and multisample interpolation is supported.

DualSrcBlend

Whether blend operations which take two sources are supported.

LogicOp

Whether logic operations are supported.

MultiDrawIndirect

Whether multiple draw indirect is supported.

DrawIndirectFirstInstance

Whether indirect draw calls support the first instance parameter.

DepthClamp

Whether depth clamping is supported.

DepthBiasClamp

Whether depth bias clamping is supported.

FillModeNonSolid

Whether point and wireframe fill modes are supported.

DepthBounds

Whether depth bound tests are supported.

WideLines

Whether lines with a width other than 1.0f are supported.

LargePoints

Whether points with size greater than 1.0f are supported.

AlphaToOne

Whether replacing the alpha of color fragment output from the fragment shader with 1.0f is supported.

MultiViewport

Whether rendering to more than one viewport is supported.

SamplerAnisotropy

Whether anisotropic filtering is supported.

TextureCompressionEtc2

Whether PixelFormat::CompressedEacR11Unorm, CompressedEacR11Snorm, CompressedEacRG11Unorm, CompressedEacRG11Snorm, CompressedEtc2RGB8Unorm, CompressedEtc2RGB8Srgb, CompressedEtc2RGB8A1Unorm, CompressedEtc2RGB8A1Srgb, CompressedEtc2RGBA8Unorm, CompressedEtc2RGBA8Unorm ETC2 and EAC compressed texture formats are all supported.

TextureCompressionAstcLdr

Whether PixelFormat::CompressedAstc4x4RGBAUnorm, CompressedAstc4x4RGBASrgb, CompressedAstc5x4RGBAUnorm, CompressedAstc5x4RGBASrgb, CompressedAstc5x5RGBAUnorm, CompressedAstc5x5RGBASrgb, CompressedAstc6x5RGBAUnorm, CompressedAstc6x5RGBASrgb, CompressedAstc6x6RGBAUnorm, CompressedAstc6x6RGBASrgb, CompressedAstc8x5RGBAUnorm, CompressedAstc8x5RGBASrgb, CompressedAstc8x6RGBAUnorm, CompressedAstc8x6RGBASrgb, CompressedAstc8x8RGBAUnorm, CompressedAstc8x8RGBASrgb, CompressedAstc10x5RGBAUnorm, CompressedAstc10x5RGBASrgb, CompressedAstc10x6RGBAUnorm, CompressedAstc10x6RGBASrgb, CompressedAstc10x8RGBAUnorm, CompressedAstc10x8RGBASrgb, CompressedAstc10x10RGBAUnorm, CompressedAstc10x10RGBASrgb, CompressedAstc12x10RGBAUnorm, CompressedAstc12x10RGBASrgb, CompressedAstc12x12RGBAUnorm, CompressedAstc12x12RGBASrgb, ASTC LDR compressed texture formats are all supported.

TextureCompressionBc

Whether PixelFormat::CompressedBc1RGBUnorm, CompressedBc1RGBSrgb, CompressedBc1RGBAUnorm, CompressedBc1RGBASrgb, CompressedBc2RGBAUnorm, CompressedBc2RGBASrgb, CompressedBc3RGBAUnorm, CompressedBc3RGBASrgb, CompressedBc4RUnorm, CompressedBc4RSnorm, CompressedBc5RGUnorm, CompressedBc5RGSnorm, CompressedBc6hRGBUfloat, CompressedBc6hRGBSfloat, CompressedBc7RGBAUnorm, CompressedBc7RGBASrgb BC compressed texture formats are all supported.

OcclusionQueryPrecise

Whether occlusion queries returning actual sample counts are supported.

PipelineStatisticsQuery

Whether pipeline statistics queries are supported.

VertexPipelineStoresAndAtomics

Whether storage buffers and images support stores and atomic operations in the vertex, tessellation and geometry shader stages.

FragmentStoresAndAtomics

Whether storage buffers and images support stores and atomic operations in the fragment shader stage.

ShaderTessellationAndGeometryPointSize

Whether point size is accessible in tessellation control, tessellation evaluation and geometry shader stages.

ShaderImageGatherExtended

Whether the extended set of image gather instructions is available in shader code.

ShaderStorageImageExtendedFormats

Whether PixelFormat::R8Unorm, RG8Unorm, R8Snorm, RG8Snorm, R8UI, RG8UI, R8I, RG8I, R16Unorm, RG16Unorm, RGBA16Unorm, R16Snorm, RG16Snorm, RGBA16Snorm, R16UI, RG16UI, R16I, RG16I, R16F, RG16F are all supported for shader storage.

ShaderStorageImageMultisample

Whether multisampled storage images are supported.

ShaderStorageImageReadWithoutFormat

Whether storage images require a format qualifier to be specified when reading from storage images.

ShaderStorageImageWriteWithoutFormat

Whether storage images require a format qualifier to be specified when writing to storage images.

ShaderUniformBufferArrayDynamicIndexing

Whether arrays of uniform buffers can be indexed by dynamically uniform integer expressions in shader code.

ShaderSampledImageArrayDynamicIndexing

Whether arrays of samplers or sampled images can be indexed by dynamically uniform integer expressions in shader code.

ShaderStorageBufferArrayDynamicIndexing

Whether arrays of storage buffers can be indexed by dynamically uniform integer expressions in shader code.

ShaderStorageImageArrayDynamicIndexing

Whether arrays of storage images can be indexed by dynamically uniform integer expressions in shader code.

ShaderClipDistance

Whether clip distances are supported in shader code.

ShaderCullDistance

Whether cull distances are supported in shader code.

ShaderFloat64

Whether 64-bit floats are supported in shader code.

ShaderInt64

Whether 64-bit integers are supported in shader code.

ShaderInt16

Whether 16-bit integers are supported in shader code.

ShaderResourceResidency

Whether image operations that return resource residency information are supported in shader code.

ShaderResourceMinLod

Whether image operations specifying minimum resource LOD are supported in shader code.

SparseBinding

Whether resource memory can be managed at opaque sparse block level instead of at the object level.

SparseResidencyBuffer

Whether the device can access sparse buffers.

SparseResidencyImage2D

Whether the device can access sparse 2D images with 1 sample per pixel.

SparseResidencyImage3D

Whether the device can access sparse 3D images.

SparseResidency2Samples

Whether the device can access sparse 2D images with 2 samples per pixel.

SparseResidency4Samples

Whether the device can access sparse 2D images with 4 samples per pixel.

SparseResidency8Samples

Whether the device can access sparse 2D images with 8 samples per pixel.

SparseResidency16Samples

Whether the device can access sparse 2D images with 16 samples per pixel.

SparseResidencyAliased

Whether the device can correctly access sparse data aliased into multiple locations.

VariableMultisampleRate

Whether all pipelines bound to a command buffer during a subpass which uses no attachment must have the same samples.

InheritedQueries

Whether a secondary command buffer may be executed while a query is active.

ProtectedMemory

Whether protected memory is supported.

Multiview

Whether multiview rendering within a render pass is supported.

MultiviewGeometryShader

Whether multiview rendering within a render pass with geometry shaders is supported.

MultiviewTessellationShader

Whether multiview rendering within a render pass with tessellation shaders is supported.

ShaderDrawParameters

Whether shader draw parameters are supported.

TextureCompressionAstcHdr

Whether PixelFormat::CompressedAstc4x4RGBAF, CompressedAstc5x4RGBAF, CompressedAstc5x5RGBAF, CompressedAstc6x5RGBAF, CompressedAstc6x6RGBAF, CompressedAstc8x5RGBAF, CompressedAstc8x6RGBAF, CompressedAstc8x8RGBAF, CompressedAstc10x5RGBAF, CompressedAstc10x6RGBAF, CompressedAstc10x8RGBAF, CompressedAstc10x10RGBAF, CompressedAstc12x10RGBAF, CompressedAstc12x12RGBAF ASTC HDR compressed texture formats are all supported.

ShaderFloat16

Whether 16-bit floats are supported in shader code.

ShaderInt8

Whether 8-bit integers are supported in shader code.

StorageBuffer16BitAccess

Whether shader storage buffers can have 16-bit integer and 16-bit floating-point members. Subset of DeviceFeature::UniformAndStorageBuffer16BitAccess.

UniformAndStorageBuffer16BitAccess

Whether shader uniforms and storage buffers can have 16-bit integer and 16-bit floating-point members. Superset of DeviceFeature::StorageBuffer16BitAccess.

StoragePushConstant16

Whether shader push constants can have 16-bit integer and 16-bit floating-point members.

StorageInputOutput16

Whether shader inputs and outputs can have 16-bit integer and 16-bit floating-point members.

ImagelessFramebuffer

Specifying image view for attachments is possible at a time CommandBuffer::beginRenderPass() is called.

VariablePointersStorageBuffer

Whether SPIR-V variable pointer storage buffers are supported.

VariablePointers

Whether SPIR-V variable pointers are supported.

AccelerationStructure

Whether acceleration structure functionality is supported.

AccelerationStructureCaptureReplay

Whether saving and reusing acceleration structure devices for trace capture and replay is supported.

AccelerationStructureIndirectBuild

Whether indirect acceleration structure builds are supported.

AccelerationStructureHostCommands

Whether host-side acceleration structure commands are supported.

DescriptorBindingAccelerationStructureUpdateAfterBind

Whether acceleration structure descriptors can be updated after a set is bound.

SamplerYcbcrConversion

Whether sampler Y'CBCR conversion is supported.

ShaderInputAttachmentArrayDynamicIndexing

Whether arrays of input attachment can be indexed by dynamically uniform integer expressions in shader code.

ShaderUniformTexelBufferArrayDynamicIndexing

Whether arrays of uniform texel buffers can be indexed by dynamically uniform integer expressions in shader code.

ShaderStorageTexelBufferArrayDynamicIndexing

Whether arrays of storage texel buffers can be indexed by dynamically uniform integer expressions in shader code.

ShaderUniformBufferArrayNonUniformIndexing

Whether arrays of uniform buffers can be indexed by non-uniform integer expressions in shader code.

ShaderSampledImageArrayNonUniformIndexing

Whether arrays of samplers or sampled images can be indexed by non-uniform integer expressions in shader code.

ShaderStorageBufferArrayNonUniformIndexing

Whether arrays of storage buffers can be indexed by non-uniform integer expressions in shader code.

ShaderStorageImageArrayNonUniformIndexing

Whether arrays of storage images can be indexed by non-uniform integer expressions in shader code.

ShaderInputAttachmentArrayNonUniformIndexing

Whether arrays of input attachments can be indexed by non-uniform integer expressions in shader code.

ShaderUniformTexelBufferArrayNonUniformIndexing

Whether arrays of uniform texel buffers can be indexed by non-uniform integer expressions in shader code.

ShaderStorageTexelBufferArrayNonUniformIndexing

Whether arrays of storage texel buffers can be indexed by non-uniform integer expressions in shader code.

DescriptorBindingUniformBufferUpdateAfterBind

Whether DescriptorType::UniformBuffer / UniformBufferDynamic can be updated after a set is bound.

DescriptorBindingSampledImageUpdateAfterBind

Whether DescriptorType::CombinedImageSampler / SampledImage can be updated after a set is bound.

DescriptorBindingStorageImageUpdateAfterBind

Whether DescriptorType::StorageImage can be updated after a set is bound.

DescriptorBindingStorageBufferUpdateAfterBind

Whether DescriptorType::StorageBuffer / StorageBufferDynamic can be updated after a set is bound.

DescriptorBindingUniformTexelBufferUpdateAfterBind

Whether DescriptorType::UniformTexelBuffer can be updated after a set is bound.

DescriptorBindingStorageTexelBufferUpdateAfterBind

Whether DescriptorType::StorageTexelBuffer can be updated after a set is bound.

DescriptorBindingUpdateUnusedWhilePending

Whether descriptors can be updated while the set is in use.

DescriptorBindingPartiallyBound

Whether a descriptor set binding in which some descriptors are not valid can be statically used.

DescriptorBindingVariableDescriptorCount

Whether descriptor sets with a variably-sized last binding are supported.

RuntimeDescriptorArray

Whether SPIR-V runtime descriptor arrays are supported.

ConstantAlphaColorBlendFactors

Whether constant alpha as source or destination blend color is supported.

Events

Whether synchronization using events is supported.

ImageViewFormatReinterpretation

Whether an ImageView can be created with a format containing different number of components or a different number of bits in each component than the format of the underlying Image.

ImageViewFormatSwizzle

Whether remapping format components in an ImageView is supported.

ImageView2DOn3DImage

Whether a 2D view can be created on a 3D Image can be created.

MultisampleArrayImage

Whether multisample 2D array Image can be created.

MutableComparisonSamplers

Whether descriptors with comparison samplers can be updated.

PointPolygons

Whether rasterization using a point polygon mode is supported.

SamplerMipLodBias

Whether setting a mipmap LOD bias when creating a sampler is supported.

SeparateStencilMaskRef

Whether separate front and back stencil test reference values are supported.

ShaderSampleRateInterpolationFunctions

Whether interpolation at centroid, offset and sample is supported. Depends on DeviceFeature::SampleRateShading.

TessellationIsolines

Whether isoline output from a tessellation shader stage is supported. Depends on DeviceFeature::TessellationShader.

TessellationPointMode

Whether point output from a tessellation shader stage is supported. Depends on DeviceFeature::TessellationShader.

TriangleFans

Whether triangle fan mesh primitives are supported.

VertexAttributeAccessBeyondStride

Whether accessing a vertex input attribute beyond the stride of corresponding vertex input binding is supported.

ShaderSubgroupExtendedTypes

Whether subgroup operations can use 8-bit integer, 16-bit integer, 64-bit integer and 16-bit floating point types in group operations with subgroup scope, providing the types are supported.

StorageBuffer8BitAccess

Whether shader storage buffers can have 8-bit integer members. Subset of DeviceFeature::UniformAndStorageBuffer8BitAccess.

UniformAndStorageBuffer8BitAccess

Whether shader uniforms and storage buffers can have 8-bit integer members. Superset of DeviceFeature::StorageBuffer8BitAccess.

StoragePushConstant8

Whether shader push constants can have 8-bit integer members.

ShaderBufferInt64Atomics

Whether shaders can perform 64-bit integer atomic operations on buffers.

ShaderSharedInt64Atomics

Whether shaders can perform 64-bit integer atomic operations on shared memory.

VertexAttributeInstanceRateDivisor

Whether vertex attribute fetching may be repeated in case of instanced rendering.

VertexAttributeInstanceRateZeroDivisor

Whether zero vertex attribute divisor is supported.

TimelineSemaphore

Whether timeline semaphores are supported.

VulkanMemoryModel

Whether the Vulkan Memory Model is supported.

VulkanMemoryModelDeviceScope

Whether the Vulkan Memory Model can use device scope synchronization.

VulkanMemoryModelAvailabilityVisibilityChains

Whether the Vulkan Memory Model can use availability and visibility chains with more than one element.

ScalarBlockLayout

Whether layout of resource blocks in shaders using scalar alignment is supported.

SeparateDepthStencilLayouts

Whether the implementation supports an image barrier for a depth/stencil image with only one of the depth/stencil aspects and whether separate depth/stencil layouts can be used.

UniformBufferStandardLayout

Whether same layouts for uniform buffers as for storage and other kinds of buffers are supported.

BufferDeviceAddress

Whether accessing buffer memory in shaders as storage buffers via an address queried from vkGetBufferDeviceAddress() is supported.

BufferDeviceAddressCaptureReplay

Whether saving and reusing buffer dand device addresses for trace capture and replay is supported.

BufferDeviceAddressMultiDevice

Whether DeviceFeature::BufferDeviceAddress, RayTracingPipeline and RayQuery for logical devices created with multiple physical devices is supported.

HostQueryReset

Whether queries can be reset from the host with vkResetQueryPool().

IndexTypeUnsignedByte

Whether an 8-bit type can be used in index buffers.

ExtendedDynamicState

The DynamicRasterizationState::CullMode, FrontFace, MeshPrimitive, ViewportWithCount, ScissorWithCount, VertexInputBindingStride, DepthTestEnable, DepthWriteEnable, DepthCompareOperation, DepthBoundsTestEnable, StencilTestEnable and StencilOperation extended dynamic state is supported.

RobustBufferAccess2

Whether accesses to buffers are bounds-checked against the range of the buffer descriptor, rounded up to a multiple of buffer access size alignment. Out of bounds writes are guaranteed to be discarded, out of bounds reads are guaranteed to return zero values. A stricter but more expensive variant of DeviceFeature::RobustBufferAccess.

RobustImageAccess2

Whether accesses to images are bounds-checked against the dimensions of the image view. Out of bounds loads are guaranteed to return zero values, with $ (0, 0, 0, 1) $ inserted for missing components based on the image format. A stricted but more expensive variant of DeviceFeature::RobustImageAccess.

NullDescriptor

Whether descriptors can be written with a null resource or view handle, at which point they're considered valid and act as if the descriptor was bound to nothing.

RobustImageAccess

Whether accesses to images are bounds-checked against the dimensions of the image view. Out of bounds loads are guaranteed to return zero values, with either $ (0, 0, 0, 0) $ or $ (0, 0, 0, 1) $ inserted for missing components based on the image format, with no guarantees provided for values returned for an invalid mip level. A subset of the guarantees provided by DeviceFeature::RobustImageAccess2.

RayTracingPipeline

Whether ray tracing pipeline functionality is supported.

RayTracingPipelineShaderGroupHandleCaptureReplay

Whether saving and reusing shader group handles for trace capture and replay is supported.

RayTracingPipelineShaderGroupHandleCaptureReplayMixed

Whether reused shader group handles can be arbitrarily mixed with creation of non-reused shader group handles.

RayTracingPipelineTraceRaysIndirect

Whether indirect trace ray commands are supported.

RayTraversalPrimitiveCulling

Whether primitive culling during ray traversal is supported.

RayQuery

Whether ray query functionality is supported.

enum class Magnum::Vk::DeviceType: Int new in Git master

Physical device type.

Wraps a VkPhysicalDeviceType.

Enumerators
Other

Anything that does not match any other available types

IntegratedGpu

Typically a device embedded in or tightly coupled with the host

DiscreteGpu

Typically a separate processor connected to the host via an interlink

VirtualGpu

Typically a virtual node in a virtualization environment

Cpu

Typically running on the same processors as the host

enum class Magnum::Vk::DeviceDriver: Int new in Git master

Physical device driver ID.

Wraps a VkDriverId.

Enumerators
Unknown

Unknown. Returned from DeviceProperties::driver() in case Vulkan 1.2 or the KHR_driver_properties extension isn't supported.

AmdOpenSource

Open-source AMD

AmdProprietary

Proprietary AMD

ArmProprietary

Proprietary ARM

BroadcomProprietary

Proprietary Broadcom

GgpProprietary

Proprietary GGP

GoogleSwiftShader

Google SwiftShader

ImaginationProprietary

Proprietary Imagination

IntelOpenSourceMesa

Open-source Intel Mesa drivers

IntelProprietaryWindows

Proprietary Intel driver on Windows

MesaLlvmpipe

Mesa LLVMpipe

MesaRadv

Mesa RADV

MoltenVk

MoltenVK

NVidiaProprietary

Proprietary NVidia

QualcommProprietary

Proprietary Qualcomm

enum class Magnum::Vk::QueueFlag: UnsignedInt new in Git master

Queue flag.

Wraps a VkQueueFlagBits.

Enumerators
Graphics

Supports general graphics and rasterization operations.

Compute

Supports compute and ray tracing operations.

Transfer

Supports transfer operations

SparseBinding

Supports sparse memory management operations

Protected

Supports protected memory operations

enum class Magnum::Vk::MemoryHeapFlag: UnsignedInt new in Git master

Memory heap flag.

Wraps a VkMemoryHeapFlagBits.

Enumerators
DeviceLocal

Corresponds to device-local memory

enum class Magnum::Vk::HandleFlag: UnsignedByte new in Git master

Handle wrapping flag.

Enumerators
DestroyOnDestruction

Destroy the handle on destruction.

enum class Magnum::Vk::ImageLayout: Int new in Git master

Image layout.

Wraps VkImageLayout.

Enumerators
Undefined

Undefined. Can be used as the initial layout in ImageCreateInfo structures (and there it's the default) and as the initial layout in render pass AttachmentDescription (in which case it tells the driver that we don't care about the previous contents). Images in this layout are not accessible by the device, the image has to be transitioned to a defined layout such as ImageLayout::General first; contents of the memory are not guaranteed to be preserved during the transition.

Preinitialized

Preinitialized. Can only be used as the initial layout in ImageCreateInfo structures. Compared to ImageLayout::Undefined, contents of the memory are guaranteed to be preserved during a transition to a defined layout and thus this layout is intended for populating image contents by the host.

Usable only for images created with VK_IMAGE_TILING_LINEAR, usually with just one sample and possibly other restrictions.

General

General layout, supports all types of device access.

ColorAttachment

Layout optimal for a color or resolve attachment, not guaranteed to be usable for anything else.

Only valid for images created with ImageUsage::ColorAttachment.

DepthStencilAttachment

Layout optimal for a read/write depth/stencil attachment, not guaranteed to be usable for anything else.

Only valid for images created with ImageUsage::DepthStencilAttachment.

ShaderReadOnly

Layout optimal for read-only access in a shader sampler, combined image/sampler or input attachment; not guaranteed to be usable for anything else.

Only valid for images created with ImageUsage::Sampled or ImageUsage::InputAttachment.

TransferSource

Layout optimal for transfer sources; not guaranteed to be usable for anything else.

Only valid for images created with ImageUsage::TransferSource.

TransferDestination

Layout optimal for transfer destination; not guaranteed to be usable for anything else.

Only valid for images created with ImageUsage::TransferDestination.

enum class Magnum::Vk::ImageUsage: UnsignedInt new in Git master

Image usage.

Wraps a VkImageUsageFlagBits.

Enumerators
TransferSource

Source of a transfer command

TransferDestination

Destination of a transfer command

Sampled

Sampled by a shader.

Not all pixel formats support sampling, see PixelFormat for more information.

Storage

Shader storage.

Not all pixel formats support shader storage, with some requiring the DeviceFeature::ShaderStorageImageExtendedFormats feature. See PixelFormat for more information.

ColorAttachment

Color attachment

Not all pixel formats support color attachment, see PixelFormat for more information.

DepthStencilAttachment

Depth/stencil attachment

Note that only one of PixelFormat::Depth24Unorm / PixelFormat::Depth32F and PixelFormat::Depth24UnormStencil8UI / PixelFormat::Depth32FStencil8UI is guaranteed to support depth/stencil attachment.

TransientAttachment

Transient attachment

InputAttachment

Input attachment in a shader or framebuffer

enum class Magnum::Vk::MemoryFlag: UnsignedInt new in Git master

Memory type flag.

Wraps a VkMemoryPropertyFlagBits.

Enumerators
DeviceLocal

Device local. Always corresponds to a heap with MemoryHeapFlag::DeviceLocal.

HostVisible

Memory that can be mapped for host access

HostCoherent

Memory with coherent access on the host

HostCached

Memory that is cached on the host. Host memory accesses to uncached memory are slower than to cached memory, however uncached memory is always MemoryFlag::HostCoherent.

LazilyAllocated

Lazily allocated memory. Allows only device access (i.e., there's no memory that has both this and MemoryFlag::HostVisible set).

enum class Magnum::Vk::MeshPrimitive: Int new in Git master

Mesh primitive.

Wraps a VkPrimitiveTopology.

Enumerators
Points

Single points.

Lines

Each pair of vertices defines a single line, lines aren't connected together.

LineStrip

First two vertices define first line segment, each following vertex defines another segment.

Triangles

Each three vertices define one triangle.

TriangleStrip

First three vertices define first triangle, each following vertex defines another triangle.

TriangleFan

First vertex is center, each following vertex is connected to previous and center vertex.

LinesAdjacency

Lines with adjacency information.

LineStripAdjacency

Line strip with adjacency information.

TrianglesAdjacency

Triangles with adjacency information.

TriangleStripAdjacency

Triangle strip with adjacency information.

Patches

Patches.

enum class Magnum::Vk::PipelineBindPoint: Int new in Git master

Pipeline bind point.

Wraps a VkPipelineBindPoint.

Enumerators
Rasterization

Rasterization pipeline

RayTracing

Ray tracing pipeline

Compute

Compute pipeline

enum class Magnum::Vk::PipelineStage: UnsignedInt new in Git master

Pipeline stage.

Wraps VkPipelineStageFlagBits.

Enumerators
TopOfPipe

Top of pipe. Equivalent to PipelineStage::AllCommands with empty Accesses when specified in the second synchronization scope, but specifies no stages in the first scope.

DrawIndirect

Where indirect draw/dispatch/raytrace data structures are consumed

VertexInput

Where vertex and index buffers are consumed

VertexShader

Execution of a vertex shader

TessellationControlShader

Execution of a tessellation control shader.

TessellationEvaluationShader

Execution of a tessellation evaluation shader.

GeometryShader

Execution of a geometry shader

FragmentShader

Execution of a fragment shader. Does not include color or depth/stencil attachment writes, those are a separate PipelineStage::ColorAttachmentOutput stage for color and both PipelineStage::EarlyFragmentTests and PipelineStage::LateFragmentTests stages for depth/stencil.

EarlyFragmentTests

Where early fragment tests (depth and stencil tests before fragment shader execution) are performed. Includes also subpass load operations for framebuffer attachments with a depth/stencil format.

LateFragmentTests

Where late fragment tests (depth and stencil tests after fragment shader execution) are performed. Includes also subpass store operations for framebuffer attachments with a depth/stencil format.

ColorAttachmentOutput

Where the final color values are output from the pipeline. Includes also subpass load and store operations and multisample resolve operations for framebuffer attachments with a color or depth/stencil format.

ComputeShader

Execution of a compute shader

Transfer

Copy, blit, resolve and clear commands

BottomOfPipe

Equivalent to PipelineStage::AllCommands with empty Accesses when specified in the first synchronization scope, but specifies no stages in the second scope.

Host

Execution of host read/writes of device memory

AccelerationStructureBuild

Execution of commands related to an acceleration structure

RayTracingShader

Execution of ray tracing shaders

AllRasterization

Execution of all rasterization stages. While numerically a single bit, it's equivalent to the logical OR of a supported and enabled subset of the following:

As the name suggests, this does not include PipelineStage::RayTracingShader or PipelineStage::AccelerationStructureBuild.

AllCommands

All commands.

enum class Magnum::Vk::Access: UnsignedInt new in Git master

Memory access type participating in a memory dependency.

Wraps VkAccessFlagBits. Certain access types are performed only on a subset of pipeline stages and thus can be used only if a corresponding PipelineStage is present — see documentation of each value for more information.

Enumerators
IndirectCommandRead

Indirect command data read as part of an indirect build, trace, drawing or dispatch command.

Valid for PipelineStage::DrawIndirect and AccelerationStructureBuild.

IndexRead

Index buffer read as part of an indexed drawing command.

Valid for PipelineStage::VertexInput.

VertexAttributeRead

Vertex buffer read as part of a drawing command.

Valid for PipelineStage::VertexInput.

UniformRead

Uniform buffer read.

Valid for PipelineStage::VertexShader, FragmentShader, GeometryShader, TessellationControlShader, TessellationEvaluationShader, ComputeShader and RayTracingShader.

InputAttachmentRead

Input atachment read within a render pass during fragment shader execution.

Valid for PipelineStage::FragmentShader.

ShaderRead

Storage buffer, physical storage buffer, shader binding table, uniform texel buffer, storage texel buffer, sampled image, or storage image read.

Valid for PipelineStage::AccelerationStructureBuild, VertexShader, FragmentShader, GeometryShader, TessellationControlShader, TessellationEvaluationShader, ComputeShader and RayTracingShader.

ShaderWrite

Storage buffer, physical storage buffer, storage texel buffer, or storage image write.

Valid for PipelineStage::VertexShader, FragmentShader, GeometryShader, TessellationControlShader, TessellationEvaluationShader, ComputeShader and RayTracingShader.

ColorAttachmentRead

Color attachment read via blending, logic operations or certain subpass load operations. Doesn't include advanced blend operations.

Valid for PipelineStage::ColorAttachmentOutput.

ColorAttachmentWrite

Color, resolve or depth/stencil resolve attachment write during a render pass or via certain subpass load and store operations.

Valid for PipelineStage::ColorAttachmentOutput.

DepthStencilAttachmentRead

Depth/stencil attachment read via depth or stencil operations or certain subpass load operations.

Valid for PipelineStage::EarlyFragmentTests and LateFragmentTests.

DepthStencilAttachmentWrite

Depth/stencil attachment write via depth or stencil operations or certain subpass load and store operations.

Valid for PipelineStage::EarlyFragmentTests and LateFragmentTests.

TransferRead

Buffer or image read in a copy operation.

Valid for PipelineStage::Transfer and AccelerationStructureBuild.

TransferWrite

Buffer or image write in a copy or clear operation.

Valid for PipelineStage::Transfer and AccelerationStructureBuild.

HostRead

Direct memory read from a host.

Valid for PipelineStage::Host.

HostWrite

Direct memory write from a host.

Valid for PipelineStage::Host.

MemoryRead

All read accesses. Valid for any PipelineStage, treated as equivalent of a combination of all *Read flags valid in given context.

MemoryWrite

All write accesses. Valid for any PipelineStage, treated as equivalent of a combination of all *Write flags valid in given context.

AccelerationStructureRead

Acceleration structure read as part of a trace, build, or copy command, or an acceleration structure scratch buffer read as part of a build command.

Valid for PipelineStage::AccelerationStructureBuild, VertexShader, FragmentShader, GeometryShader, TessellationControlShader, TessellationEvaluationShader, ComputeShader and RayTracingShader.

AccelerationStructureWrite

Acceleration structure or acceleration structure scratch buffer write as part of a build or copy command.

Valid for PipelineStage::AccelerationStructureBuild.

enum class Magnum::Vk::DependencyFlag: UnsignedInt new in Git master

Execution and memory dependency flag.

Wraps VkDependencyFlagBits.

Enumerators
ByRegion

Dependencies will be framebuffer-local. This flag has to be set in case SubpassDependency source and destination stage index is equal.

enum class Magnum::Vk::PixelFormat: Int new in Git master

Pixel format.

Wraps a subset of VkFormat that's usable as a pixel format.

Note that while Vulkan exposes almost all imaginable formats, they're not universally usable in all scenarios and the support differs from device to device. To make things simpler, Vulkan provides implicit guarantees where certain formats can be used, see documentation of each value for more information. Generally, the following rules apply for uncompressed color formats:

  • All implicit guarantees are only for optimal tiling, not linear
  • RGB formats of all sizes don't have any guarantees due to alignment issues, and use of two- or four-channel formats is preferred
  • Single-channel formats provide the same guarantees as a corresponding two-channel format, possibly supporting more
  • While 8-bit normalized formats have guaranteed support for linear filtering and blending, it's not implicitly guaranteed for 16-bit normalized formats — the support is common, but not universal.
  • Signed normalized formats don't have blit destination and color attachment support guaranteed as opposed to unsigned normalized formats
  • Signed and unsigned integral formats of the same channel size and count provide the exact same guarantees
  • Shader storage support is implicitly guaranteed only for full-width (32-bit) formats, for others it depends on DeviceFeature::ShaderStorageImageExtendedFormats
  • Atomic operation support is only guaranteed for single-channel full-width integral formats

For compressed color formats, sampling, blit source and linear filtering has guaranteed support with optimal tiling either for all BC formats, all ETC formats or all ASTC LDR formats, and a full support for a particular family of these formats is denoted by the DeviceFeature::TextureCompressionBc, DeviceFeature::TextureCompressionEtc2 and DeviceFeature::TextureCompressionAstcLdr features.

Enumerators
R8Unorm

Red component, normalized unsigned byte.

Sampling, blit source/destination, linear filtering and color attachment including blending has guaranteed support with optimal tiling.

RG8Unorm

Red and green component, normalized unsigned byte.

Sampling, blit source/destination, linear filtering and color attachment including blending has guaranteed support with optimal tiling.

RGB8Unorm

RGB, normalized unsigned byte.

Compared to PixelFormat::RG8Unorm / PixelFormat::RGBA8Unorm there are no guarantees for this format.

RGBA8Unorm

RGBA, normalized unsigned byte.

Sampling, blit source/destination, linear filtering, image storage, color attachment including blending has guaranteed support with optimal tiling.

R8Snorm

Red component, normalized signed byte.

Sampling, blit source and linear filtering has guaranteed support with optimal tiling. Unlike PixelFormat::R8Unorm and PixelFormat::R8I, support for blit destination and color attachment isn't guaranteed.

RG8Snorm

Red and green component, normalized signed byte,

Sampling, blit source and linear filtering has guaranteed support with optimal tiling. Unlike PixelFormat::RG8Unorm and PixelFormat::RG8I, support for blit destination and color attachment isn't guaranteed.

RGB8Snorm

RGB, normalized signed byte.

Compared to PixelFormat::RG8Snorm / PixelFormat::RGBA8Snorm there are no guarantees for this format.

RGBA8Snorm

RGBA, normalized signed byte.

Sampling, blit source, linear filtering and image storage has guaranteed support with optimal tiling. Unlike PixelFormat::RGBA8Unorm and PixelFormat::RGBA8I, support for blit destination and color attachment isn't guaranteed.

R8Srgb

sRGB-encoded red component, normalized unsigned byte.

Compared to PixelFormat::R8Unorm / PixelFormat::RGBA8Srgb there are no guarantees for this format.

RG8Srgb

sRGB-encoded red and green component, normalized unsigned byte.

Compared to PixelFormat::RG8Unorm / PixelFormat::RGBA8Srgb there are no guarantees for this format.

RGB8Srgb

sRGB, normalized unsigned byte

Compared to PixelFormat::RGBA8Srgb there are no guarantees for this format.

RGBA8Srgb

sRGB + linear alpha, normalized unsigned byte.

Sampling, blit source/destination, linear filtering and color attachment including blending has guaranteed support with optimal tiling. Unlike PixelFormat::RGBA8Unorm, support for image storage isn't guaranteed.

R8UI

Red component, integral unsigned byte.

Sampling, blit source/destination and color attachment has guaranteed support with optimal tiling. Compared to PixelFormat::R8Unorm, linear filtering and blending isn't supported.

RG8UI

Red and green component, integral unsigned byte.

Sampling, blit source/destination and color attachment has guaranteed support with optimal tiling. Compared to PixelFormat::RG8Unorm, linear filtering and blending isn't supported.

RGB8UI

RGB, integral unsigned byte.

Compared to PixelFormat::RG8UI / PixelFormat::RGBA8UI there are no guarantees for this format.

RGBA8UI

RGBA, integral unsigned byte.

Sampling, blit source/destination, image storage and color attachment has guaranteed support with optimal tiling. Compared to PixelFormat::RGBA8Unorm, linear filtering and blending isn't supported.

R8I

Red component, integral signed byte.

Sampling, blit source/destination and color attachment has guaranteed support with optimal tiling. Compared to PixelFormat::R8Snorm, linear filtering and blending isn't supported.

RG8I

Red and green component, integral signed byte.

Sampling, blit source/destination and color attachment has guaranteed support with optimal tiling. Compared to PixelFormat::RG8Snorm, linear filtering and blending isn't supported.

RGB8I

RGB, integral signed byte.

Compared to PixelFormat::RG8I / PixelFormat::RGBA8I there are no guarantees for this format.

RGBA8I

RGBA, integral signed byte.

Sampling, blit source/destination, image storage and color attachment has guaranteed support with optimal tiling. Compared to PixelFormat::RGBA8Snorm, linear filtering and blending isn't supported.

R16Unorm

Red component, normalized unsigned short.

Compared to PixelFormat::R8Unorm there are no implicit guarantees for this format.

RG16Unorm

Red and green component, normalized unsigned short.

Compared to PixelFormat::RG8Unorm there are no implicit guarantees for this format.

RGB16Unorm

RGB, normalized unsigned short.

Compared to PixelFormat::RG16Unorm / PixelFormat::RGBA16Unorm there are no guarantees for this format.

RGBA16Unorm

RGBA, normalized unsigned short.

Compared to PixelFormat::RGBA8Unorm there are no implicit guarantees for this format.

R16Snorm

Red component, normalized signed short.

Compared to PixelFormat::R8Unorm there are no implicit guarantees for this format.

RG16Snorm

Red and green component, normalized signed short.

Compared to PixelFormat::RG8Snorm there are no implicit guarantees for this format.

RGB16Snorm

RGB, normalized signed short.

Compared to PixelFormat::RG16Snorm / PixelFormat::RGBA16Snorm there are no guarantees for this format.

RGBA16Snorm

RGBA, normalized signed short.

Compared to PixelFormat::RGBA8Snorm there are no implicit guarantees for this format.

R16UI

Red component, integral unsigned short.

Sampling, blit source/destination and color attachment has guaranteed support with optimal tiling.

RG16UI

Red and green component, integral unsigned short.

Sampling, blit source/destination and color attachment has guaranteed support with optimal tiling.

RGB16UI

RGB, integral unsigned short.

Compared to PixelFormat::RG16UI / PixelFormat::RGBA16UI there are no guarantees for this format.

RGBA16UI

RGBA, integral unsigned short.

Sampling, blit source/destination, image storage and color attachment has guaranteed support with optimal tiling.

R16I

Red component, integral signed short.

Sampling, blit source/destination and color attachment has guaranteed support with optimal tiling.

RG16I

Red and green component, integral signed short.

Sampling, blit source/destination and color attachment has guaranteed support with optimal tiling.

RGB16I

RGB, integral signed short.

Compared to PixelFormat::RG16I / PixelFormat::RGBA16I there are no guarantees for this format.

RGBA16I

RGBA, integral signed short.

Sampling, blit source/destination, image storage and color attachment has guaranteed support with optimal tiling.

R32UI

Red component, integral unsigned int.

Sampling, blit source/destination, image storage including atomic operations and color attachment has guaranteed support with optimal tiling.

RG32UI

Red and green component, integral unsigned int.

Sampling, blit source/destination, image storage and color attachment has guaranteed support with optimal tiling.

RGB32UI

RGB, integral unsigned int.

Compared to PixelFormat::RG32UI / PixelFormat::RGBA32UI there are no guarantees for this format.

RGBA32UI

RGBA, integral unsigned int.

Sampling, blit source/destination, image storage and color attachment has guaranteed support with optimal tiling.

R32I

Red component, integral signed int.

Sampling, blit source/destination, image storage including atomic operations and color attachment has guaranteed support with optimal tiling.

RG32I

Red and green component, integral signed int.

Sampling, blit source/destination, image storage and color attachment has guaranteed support with optimal tiling.

RGB32I

RGB, integral signed int.

Compared to PixelFormat::RG32UI / PixelFormat::RGBA32UI there are no guarantees for this format.

RGBA32I

RGBA, integral signed int.

Sampling, blit source/destination, image storage and color attachment has guaranteed support with optimal tiling.

R16F

Red component, half float.

Sampling, blit source/destination, linear filtering and color attachment including blending has guaranteed support with optimal tiling.

RG16F

Red and green component, half float.

Sampling, blit source/destination, linear filtering and color attachment including blending has guaranteed support with optimal tiling.

RGB16F

RGB, half float.

Compared to PixelFormat::RG16F / PixelFormat::RGBA16F there are no guarantees for this format.

RGBA16F

RGBA, half float.

Sampling, blit source/destination, image storage, linear filtering and color attachment including blending has guaranteed support with optimal tiling.

R32F

Red component, float.

Sampling, blit source/destination, image storage and color attachment has guaranteed support with optimal tiling. Compared to PixelFormat::R16F, linear filtering and blending support is not guaranteed.

RG32F

Red and green component, float.

Sampling, blit source/destination, image storage and color attachment has guaranteed support with optimal tiling. Compared to PixelFormat::RG16F, linear filtering and blending support is not guaranteed.

RGB32F

RGB, float.

Compared to PixelFormat::RG32F / PixelFormat::RGBA32F there are no guarantees for this format.

RGBA32F

RGBA, float.

Sampling, blit source/destination, image storage and color attachment has guaranteed support with optimal tiling. Compared to PixelFormat::RGBA16F, linear filtering and blending support is not guaranteed.

Depth16Unorm

16-bit unsigned normalized depth.

Sampling, blit source and depth attachment has guaranteed support with optimal tiling.

Depth24Unorm

24-bit unsigned normalized depth with 8-bit padding.

Depth attachment support with optimal tiling is guaranteed for either this or the PixelFormat::Depth32F format

Depth32F

32-bit float depth.

Sampling and blit source has guaranteed support with optimal tiling. Depth attachment support with optimal tiling is guaranteed for either this or the PixelFormat::Depth24Unorm format.

Stencil8UI

8-bit unsigned integral stencil.

There are no guarantees for this format.

Depth16UnormStencil8UI

16-bit unsigned normalized depth with 8-bit unsigned integral stencil.

There are no guarantees for this format.

Depth24UnormStencil8UI

24-bit unsigned normalized depth with 8-bit unsigned integral stencil.

Depth/stencil attachment support with optimal tiling is guaranteed for either this or the PixelFormat::Depth32FStencil8UI format.

Depth32FStencil8UI

32-bit float depth with 8-bit unsigned integral stencil.

Depth/stencil attachment support with optimal tiling is guaranteed for either this or the PixelFormat::Depth24UnormStencil8UI format.

CompressedBc1RGBUnorm

S3TC BC1 compressed RGB, normalized unsigned.

Sampling, blit source and linear filtering has guaranteed support with optimal tiling either for all BC formats, all ETC formats or all ASTC LDR formats.

CompressedBc1RGBSrgb

S3TC BC1 compressed sRGB, normalized unsigned.

Sampling, blit source and linear filtering has guaranteed support with optimal tiling either for all BC formats, all ETC formats or all ASTC LDR formats.

CompressedBc1RGBAUnorm

S3TC BC1 compressed RGBA, normalized unsigned.

Sampling, blit source and linear filtering has guaranteed support with optimal tiling either for all BC formats, all ETC formats or all ASTC LDR formats.

CompressedBc1RGBASrgb

S3TC BC1 compressed sRGB + linear alpha, normalized unsigned.

Sampling, blit source and linear filtering has guaranteed support with optimal tiling either for all BC formats, all ETC formats or all ASTC LDR formats.

CompressedBc2RGBAUnorm

S3TC BC2 compressed RGBA, normalized unsigned.

Sampling, blit source and linear filtering has guaranteed support with optimal tiling either for all BC formats, all ETC formats or all ASTC LDR formats.

CompressedBc2RGBASrgb

S3TC BC2 compressed sRGB + linear alpha, normalized unsigned.

Sampling, blit source and linear filtering has guaranteed support with optimal tiling either for all BC formats, all ETC formats or all ASTC LDR formats.

CompressedBc3RGBAUnorm

S3TC BC3 compressed RGBA, normalized unsigned.

Sampling, blit source and linear filtering has guaranteed support with optimal tiling either for all BC formats, all ETC formats or all ASTC LDR formats.

CompressedBc3RGBASrgb

S3TC BC3 compressed sRGB + linear alpha, normalized unsigned.

Sampling, blit source and linear filtering has guaranteed support with optimal tiling either for all BC formats, all ETC formats or all ASTC LDR formats.

CompressedBc4RUnorm

3Dc+ BC4 compressed red component, unsigned normalized.

Sampling, blit source and linear filtering has guaranteed support with optimal tiling either for all BC formats, all ETC formats or all ASTC LDR formats.

CompressedBc4RSnorm

3Dc+ BC4 compressed red component, signed normalized.

Sampling, blit source and linear filtering has guaranteed support with optimal tiling either for all BC formats, all ETC formats or all ASTC LDR formats.

CompressedBc5RGUnorm

3Dc BC5 compressed red and green component, unsigned normalized.

Sampling, blit source and linear filtering has guaranteed support with optimal tiling either for all BC formats, all ETC formats or all ASTC LDR formats.

CompressedBc5RGSnorm

3Dc BC5 compressed red and green component, signed normalized.

Sampling, blit source and linear filtering has guaranteed support with optimal tiling either for all BC formats, all ETC formats or all ASTC LDR formats.

CompressedBc6hRGBUfloat

BC6H compressed RGB, unsigned float.

Sampling, blit source and linear filtering has guaranteed support with optimal tiling either for all BC formats, all ETC formats or all ASTC LDR formats.

CompressedBc6hRGBSfloat

BC6H compressed RGB, signed float.

Sampling, blit source and linear filtering has guaranteed support with optimal tiling either for all BC formats, all ETC formats or all ASTC LDR formats.

CompressedBc7RGBAUnorm

BC7, compressed RGBA, unsigned normalized.

Sampling, blit source and linear filtering has guaranteed support with optimal tiling either for all BC formats, all ETC formats or all ASTC LDR formats.

CompressedBc7RGBASrgb

BC7, compressed sRGB + linear alpha, unsigned normalized.

Sampling, blit source and linear filtering has guaranteed support with optimal tiling either for all BC formats, all ETC formats or all ASTC LDR formats.

CompressedEacR11Unorm

EAC compressed red component, normalized unsigned 11-bit.

Sampling, blit source and linear filtering has guaranteed support with optimal tiling either for all BC formats, all ETC formats or all ASTC LDR formats.

CompressedEacR11Snorm

EAC compressed red component, normalized signed 11-bit.

Sampling, blit source and linear filtering has guaranteed support with optimal tiling either for all BC formats, all ETC formats or all ASTC LDR formats.

CompressedEacRG11Unorm

EAC compressed red and green component, normalized unsigned 11-bit.

Sampling, blit source and linear filtering has guaranteed support with optimal tiling either for all BC formats, all ETC formats or all ASTC LDR formats.

CompressedEacRG11Snorm

EAC compressed red and green component, normalized signed 11-bit.

Sampling, blit source and linear filtering has guaranteed support with optimal tiling either for all BC formats, all ETC formats or all ASTC LDR formats.

CompressedEtc2RGB8Unorm

ETC2 compressed RGB, normalized unsigned byte.

Sampling, blit source and linear filtering has guaranteed support with optimal tiling either for all BC formats, all ETC formats or all ASTC LDR formats.

CompressedEtc2RGB8Srgb

ETC2 compressed sRGB, normalized unsigned byte.

Sampling, blit source and linear filtering has guaranteed support with optimal tiling either for all BC formats, all ETC formats or all ASTC LDR formats.

CompressedEtc2RGB8A1Unorm

ETC2 compressed RGB, normalized unsigned byte + a single-bit alpha.

Sampling, blit source and linear filtering has guaranteed support with optimal tiling either for all BC formats, all ETC formats or all ASTC LDR formats.

CompressedEtc2RGB8A1Srgb

ETC2 compressed sRGB, normalized unsigned byte + a single-bit alpha.

Sampling, blit source and linear filtering has guaranteed support with optimal tiling either for all BC formats, all ETC formats or all ASTC LDR formats.

CompressedEtc2RGBA8Unorm

ETC2 compressed RGBA, normalized unsigned byte.

Sampling, blit source and linear filtering has guaranteed support with optimal tiling either for all BC formats, all ETC formats or all ASTC LDR formats.

CompressedEtc2RGBA8Srgb

ETC2 compressed sRGB + linear alpha, normalized unsigned byte.

Sampling, blit source and linear filtering has guaranteed support with optimal tiling either for all BC formats, all ETC formats or all ASTC LDR formats.

CompressedAstc4x4RGBAUnorm

2D LDR ASTC compressed RGBA, normalized unsigned with 4x4 blocks.

Sampling, blit source and linear filtering has guaranteed support with optimal tiling either for all BC formats, all ETC formats or all ASTC LDR formats.

CompressedAstc4x4RGBASrgb

2D LDR ASTC compressed sRGB + linear alpha, normalized unsigned with 4x4 blocks.

Sampling, blit source and linear filtering has guaranteed support with optimal tiling either for all BC formats, all ETC formats or all ASTC LDR formats.

CompressedAstc4x4RGBAF

2D HDR ASTC compressed RGBA, float with 4x4 blocks.

CompressedAstc5x4RGBAUnorm

2D LDR ASTC compressed RGBA, normalized unsigned with 5x4 blocks.

Sampling, blit source and linear filtering has guaranteed support with optimal tiling either for all BC formats, all ETC formats or all ASTC LDR formats.

CompressedAstc5x4RGBASrgb

2D LDR ASTC compressed sRGB + linear alpha, normalized unsigned with 5x4 blocks.

Sampling, blit source and linear filtering has guaranteed support with optimal tiling either for all BC formats, all ETC formats or all ASTC LDR formats.

CompressedAstc5x4RGBAF

2D HDR ASTC compressed RGBA, float with 5x4 blocks.

CompressedAstc5x5RGBAUnorm

2D LDR ASTC compressed RGBA, normalized unsigned with 5x5 blocks.

Sampling, blit source and linear filtering has guaranteed support with optimal tiling either for all BC formats, all ETC formats or all ASTC LDR formats.

CompressedAstc5x5RGBASrgb

2D LDR ASTC compressed sRGB + linear alpha, normalized unsigned with 5x5 blocks.

Sampling, blit source and linear filtering has guaranteed support with optimal tiling either for all BC formats, all ETC formats or all ASTC LDR formats.

CompressedAstc5x5RGBAF

2D HDR ASTC compressed RGBA, float with 5x5 blocks.

CompressedAstc6x5RGBAUnorm

2D LDR ASTC compressed RGBA, normalized unsigned with 6x5 blocks.

Sampling, blit source and linear filtering has guaranteed support with optimal tiling either for all BC formats, all ETC formats or all ASTC LDR formats.

CompressedAstc6x5RGBASrgb

2D LDR ASTC compressed sRGB + linear alpha, normalized unsigned with 6x5 blocks.

Sampling, blit source and linear filtering has guaranteed support with optimal tiling either for all BC formats, all ETC formats or all ASTC LDR formats.

CompressedAstc6x5RGBAF

2D HDR ASTC compressed RGBA, float with 6x5 blocks.

CompressedAstc6x6RGBAUnorm

2D LDR ASTC compressed RGBA, normalized unsigned with 6x6 blocks.

Sampling, blit source and linear filtering has guaranteed support with optimal tiling either for all BC formats, all ETC formats or all ASTC LDR formats.

CompressedAstc6x6RGBASrgb

2D LDR ASTC compressed sRGB + linear alpha, normalized unsigned with 6x6 blocks.

Sampling, blit source and linear filtering has guaranteed support with optimal tiling either for all BC formats, all ETC formats or all ASTC LDR formats.

CompressedAstc6x6RGBAF

2D HDR ASTC compressed RGBA, float with 6x6 blocks.

CompressedAstc8x5RGBAUnorm

2D LDR ASTC compressed RGBA, normalized unsigned with 8x5 blocks.

Sampling, blit source and linear filtering has guaranteed support with optimal tiling either for all BC formats, all ETC formats or all ASTC LDR formats.

CompressedAstc8x5RGBASrgb

2D LDR ASTC compressed sRGB + linear alpha, normalized unsigned with 8x5 blocks.

Sampling, blit source and linear filtering has guaranteed support with optimal tiling either for all BC formats, all ETC formats or all ASTC LDR formats.

CompressedAstc8x5RGBAF

2D HDR ASTC compressed RGBA, float with 8x5 blocks.

CompressedAstc8x6RGBAUnorm

2D LDR ASTC compressed RGBA, normalized unsigned with 8x6 blocks.

Sampling, blit source and linear filtering has guaranteed support with optimal tiling either for all BC formats, all ETC formats or all ASTC LDR formats.

CompressedAstc8x6RGBASrgb

2D LDR ASTC compressed sRGB + linear alpha, normalized unsigned with 8x6 blocks.

Sampling, blit source and linear filtering has guaranteed support with optimal tiling either for all BC formats, all ETC formats or all ASTC LDR formats.

CompressedAstc8x6RGBAF

2D HDR ASTC compressed RGBA, float with 8x6 blocks.

CompressedAstc8x8RGBAUnorm

2D LDR ASTC compressed RGBA, normalized unsigned with 8x8 blocks.

Sampling, blit source and linear filtering has guaranteed support with optimal tiling either for all BC formats, all ETC formats or all ASTC LDR formats.

CompressedAstc8x8RGBASrgb

2D LDR ASTC compressed sRGB + linear alpha, normalized unsigned with 8x8 blocks.

Sampling, blit source and linear filtering has guaranteed support with optimal tiling either for all BC formats, all ETC formats or all ASTC LDR formats.

CompressedAstc8x8RGBAF

2D HDR ASTC compressed RGBA, float with 8x8 blocks.

CompressedAstc10x5RGBAUnorm

2D LDR ASTC compressed RGBA, normalized unsigned with 10x5 blocks.

Sampling, blit source and linear filtering has guaranteed support with optimal tiling either for all BC formats, all ETC formats or all ASTC LDR formats.

CompressedAstc10x5RGBASrgb

2D LDR ASTC compressed sRGB + linear alpha, normalized unsigned with 10x5 blocks.

Sampling, blit source and linear filtering has guaranteed support with optimal tiling either for all BC formats, all ETC formats or all ASTC LDR formats.

CompressedAstc10x5RGBAF

2D HDR ASTC compressed RGBA, float with 10x5 blocks.

CompressedAstc10x6RGBAUnorm

2D LDR ASTC compressed RGBA, normalized unsigned with 10x6 blocks.

Sampling, blit source and linear filtering has guaranteed support with optimal tiling either for all BC formats, all ETC formats or all ASTC LDR formats.

CompressedAstc10x6RGBASrgb

2D LDR ASTC compressed sRGB + linear alpha, normalized unsigned with 10x6 blocks.

Sampling, blit source and linear filtering has guaranteed support with optimal tiling either for all BC formats, all ETC formats or all ASTC LDR formats.

CompressedAstc10x6RGBAF

2D HDR ASTC compressed RGBA, float with 10x6 blocks.

CompressedAstc10x8RGBAUnorm

2D LDR ASTC compressed RGBA, normalized unsigned with 10x8 blocks.

Sampling, blit source and linear filtering has guaranteed support with optimal tiling either for all BC formats, all ETC formats or all ASTC LDR formats.

CompressedAstc10x8RGBASrgb

2D LDR ASTC compressed sRGB + linear alpha, normalized unsigned with 10x8 blocks.

Sampling, blit source and linear filtering has guaranteed support with optimal tiling either for all BC formats, all ETC formats or all ASTC LDR formats.

CompressedAstc10x8RGBAF

2D HDR ASTC compressed RGBA, float with 10x8 blocks.

CompressedAstc10x10RGBAUnorm

2D LDR ASTC compressed RGBA, normalized unsigned with 10x10 blocks.

Sampling, blit source and linear filtering has guaranteed support with optimal tiling either for all BC formats, all ETC formats or all ASTC LDR formats.

CompressedAstc10x10RGBASrgb

2D LDR ASTC compressed sRGB + linear alpha, normalized unsigned with 10x10 blocks.

Sampling, blit source and linear filtering has guaranteed support with optimal tiling either for all BC formats, all ETC formats or all ASTC LDR formats.

CompressedAstc10x10RGBAF

2D HDR ASTC compressed RGBA, float with 10x10 blocks.

CompressedAstc12x10RGBAUnorm

2D LDR ASTC compressed RGBA, normalized unsigned with 12x10 blocks.

Sampling, blit source and linear filtering has guaranteed support with optimal tiling either for all BC formats, all ETC formats or all ASTC LDR formats.

CompressedAstc12x10RGBASrgb

2D LDR ASTC compressed sRGB + linear alpha, normalized unsigned with 12x10 blocks.

Sampling, blit source and linear filtering has guaranteed support with optimal tiling either for all BC formats, all ETC formats or all ASTC LDR formats.

CompressedAstc12x10RGBAF

2D HDR ASTC compressed RGBA, float with 12x10 blocks.

CompressedAstc12x12RGBAUnorm

2D LDR ASTC compressed RGBA, normalized unsigned with 12x12 blocks.

Sampling, blit source and linear filtering has guaranteed support with optimal tiling either for all BC formats, all ETC formats or all ASTC LDR formats.

CompressedAstc12x12RGBASrgb

2D LDR ASTC compressed sRGB + linear alpha, normalized unsigned with 12x12 blocks.

Sampling, blit source and linear filtering has guaranteed support with optimal tiling either for all BC formats, all ETC formats or all ASTC LDR formats.

CompressedAstc12x12RGBAF

2D HDR ASTC compressed RGBA, float with 12x12 blocks.

CompressedPvrtcRGBA2bppUnorm

PVRTC compressed RGBA, normalized unsigned byte with 2 bits per pixel.

CompressedPvrtcRGBA2bppSrgb

PVRTC compressed sRGB + linear alpha, normalized unsigned byte with 2 bits per pixel.

CompressedPvrtcRGBA4bppUnorm

PVRTC compressed RGBA, normalized unsigned byte with 4 bits per pixel.

CompressedPvrtcRGBA4bppSrgb

PVRTC compressed sRGB + linear alpha, normalized unsigned byte with 4 bits per pixel.

CompressedPvrtc2RGBA2bppUnorm

PVRTC2 compressed RGBA, normalized unsigned byte with 2 bits per pixel.

CompressedPvrtc2RGBA2bppSrgb

PVRTC2 compressed sRGB + linear alpha, normalized unsigned byte with 2 bits per pixel.

CompressedPvrtc2RGBA4bppUnorm

PVRTC2 compressed RGBA, normalized unsigned byte with 4 bits per pixel.

CompressedPvrtc2RGBA4bppSrgb

PVRTC2 compressed sRGB + linear alpha, normalized unsigned byte with 4 bits per pixel.

enum class Magnum::Vk::DynamicRasterizationState: UnsignedByte new in Git master

Dynamic rasterization state.

Contains rasterization-related information from the VkDynamicState enum but with contiguos numbering to make it usable as a set of DynamicRasterizationStates.

Enumerators
Viewport

Viewport range set in RasterizationPipelineCreateInfo::setViewport() is ignored and is expected to be set dynamically using vkCmdSetViewport(). Viewport count is still set in RasterizationPipelineCreateInfo, see DynamicRasterizationState::ViewportWithCount for having both dynamic.

Scissor

Scissor rectangle set in RasterizationPipelineCreateInfo::setViewport() is ignored and is expected to be set dynamically using vkCmdSetScissor(). Scissor count is still set in RasterizationPipelineCreateInfo, see DynamicRasterizationState::ScissorWithCount for having both dynamic.

LineWidth

Line width set in RasterizationPipelineCreateInfo is ignored and is expected to be set dynamically using vkCmdSetLineWidth().

DepthBias

Depth bias constant factor, depth bias clamp and depth bias slope factor set in RasterizationPipelineCreateInfo are ignored and expected to be set dynamically using vkCmdSetDepthBias().

BlendConstants

Blend constants set in RasterizationPipelineCreateInfo are ignored and expected to be set dynamically using vkCmdSetBlendConstants().

DepthBounds

Min and max depth bounds set in RasterizationPipelineCreateInfo are ignored and expected to be set dynamically using vkCmdSetDepthBounds().

StencilCompareMask

Stencil compare mask set in RasterizationPipelineCreateInfo is ignored and expected to be set dynamically using vkCmdSetStencilCompareMask().

StencilWriteMask

Stencil write mask set in RasterizationPipelineCreateInfo is ignored and expected to be set dynamically using vkCmdSetStencilWriteMask().

StencilReference

Stencil reference set in RasterizationPipelineCreateInfo is ignored and expected to be set dynamically using vkCmdSetStencilReference().

CullMode

Cull mode set in RasterizationPipelineCreateInfo is ignored and expected to be set dynamically using vkCmdSetCullModeEXT().

FrontFace

Front face set in RasterizationPipelineCreateInfo is ignored and expected to be set dynamically using vkCmdSetFrontFaceEXT().

MeshPrimitive

Only the MeshPrimitive topology class set in MeshLayout and passed to RasterizationPipelineCreateInfo is used and the specific topology order and adjacency is expected to be set dynamically. CommandBuffer::draw() does this automatically if a pipeline with this dynamic state is bound.

ViewportWithCount

Both the number of viewports and their ranges set in RasterizationPipelineCreateInfo::setViewport() are ignored and expected to be set dynamically using vkCmdSetViewportWithCountEXT(). A superset of DynamicRasterizationState::Viewport.

ScissorWithCount

Both the number of scissors and their rectangles set in RasterizationPipelineCreateInfo::setViewport() are ignored and expected to be set dynamically using vkCmdSetScissorWithCountEXT(). A superset of DynamicRasterizationState::Scissor.

VertexInputBindingStride

Stride set in MeshLayout::addBinding() and passed to RasterizationPipelineCreateInfo is ignored and expected to be set dynamically. CommandBuffer::draw() does this automatically if a pipeline with this dynamic state is bound.

DepthTestEnable

Depth test enablement in RasterizationPipelineCreateInfo is ignored and expected to be set dynamically using vkCmdSetDepthTestEnableEXT().

DepthWriteEnable

Depth write enablement in RasterizationPipelineCreateInfo is ignored and expected to be set dynamically using vkCmdSetDepthWriteEnableEXT().

DepthCompareOperation

Depth compare operation in RasterizationPipelineCreateInfo is ignored and expected to be set dynamically using vkCmdSetDepthCompareOpEXT().

DepthBoundsTestEnable

Depth bounds test enablement in RasterizationPipelineCreateInfo is ignored and expected to be set dynamically using vkCmdSetDepthBoundsTestEnableEXT().

StencilTestEnable

Stencil test enablement in RasterizationPipelineCreateInfo is ignored and expected to be set dynamically using vkCmdSetStencilTestEnableEXT().

StencilOperation

Stencil operation in RasterizationPipelineCreateInfo is ignored and expected to be set dynamically using vkCmdSetStencilOpEXT().

enum class Magnum::Vk::SubpassContents: Int new in Git master

Subpass contents.

Wraps VkSubpassContents.

Enumerators
Inline

Contents of the subpass will be recorded inline in the primary command buffer. CommandBufferLevel::Secondary command buffers must not be executed within the subpass. This is the default used in the SubpassBeginInfo constructor and consequently CommandBuffer::beginRenderPass() / CommandBuffer::nextSubpass().

SecondaryCommandBuffers

Subpass contents are recorded in CommandBufferLevel::Secondary command buffers that will be called from the primary command buffer.

enum class Magnum::Vk::AttachmentLoadOperation: Int new in Git master

Attachment load operation.

Wraps a VkAttachmentLoadOp, specifies how previous contents of an attached image within the render area are treated at the beginning of a subpass.

Enumerators
Load

Previous contents are preserved.

Clear

Previous contents are cleared to a value specified when a render pass instance is begun. You're required to provide a clear value for this attachment index using RenderPassBeginInfo::clearColor() or RenderPassBeginInfo::clearDepthStencil() when you begin render pass recording using CommandBuffer::beginRenderPass().

DontCare

Previous contents don't need to be preserved.

enum class Magnum::Vk::AttachmentStoreOperation: Int new in Git master

Attachment load operation.

Wraps a VkAttachmentStoreOp, specifies how contents of an attached image generated during the render pass within the render area are treated at the end of a subpass.

Enumerators
Store

Generated contents are written to memory.

DontCare

Generated contentgs don't need to be preserved.

enum class Magnum::Vk::Result: Int new in Git master

Result.

Wraps a VkResult.

Enumerators
Success

Command successfully completed

NotReady

A fence or query has not yet completed

Timeout

A wait operation has not completed in the specified time

EventSet

An event is signaled

EventReset

An event is unsignaled

Incomplete

A return array was too small for the result

ThreadIdle

A deferred operation is not complete but there is currently no work for this thread to do at the time of this call.

ThreadDone

A deferred operation is not complete but there is no work remaining to assign to additional threads.

OperationDeferred

A deferred operation was requested and at least some of the work was deferred.

OperationNotDeferred

A deferred operation was requested and no operations were deferred.

ErrorOutOfHostMemory

A host memory allocation has failed.

ErrorOutOfDeviceMemory

A device memory allocation has failed.

ErrorInitializationFailed

Initialization of an object could not be completed for implementation-specific reasons

ErrorDeviceLost

The logical or physical device has been lost

ErrorMemoryMapFailed

Mapping of a memory object has failed

ErrorLayerNotPresent

A requested layer is not present or could not be loaded

ErrorExtensionNotPresent

A requested extension is not supported

ErrorFeatureNotPresent

A requested feature is not supported

ErrorIncompatibleDriver

The requested version of Vulkan is not supported by the driver or is otherwise incompatible for implementation-specific reasons

ErrorTooManyObjects

Too many objects of the type have already been created

ErrorFormatNotSupported

A requested format is not supported on this device

ErrorFragmentedPool

A pool allocation has failed due to fragmentation of the pool's memory.

ErrorUnknown

An unknown error has occurred; either the application has provided invalid input, or an implementation failure has occurred

ErrorOutOfPoolMemory

A pool memory allocation has failed.

ErrorInvalidExternalHandle

An external handle is not a valid handle of the specified type.

ErrorFragmentation

A descriptor pool creation has failed due to fragmentation.

ErrorInvalidOpaqueCaptureAddress

A buffer creation or memory allocation failed because the requested address is not available. A shader group handle assignment failed because the requested shader group handle information is no longer valid.

ErrorValidationFailed

Validation failed.

enum class Magnum::Vk::SamplerFilter: Int new in Git master

Texture sampler filtering.

Wraps a VkFilter.

Enumerators
Nearest

Nearest neighbor filtering

Linear

Linear interpolation filtering

enum class Magnum::Vk::SamplerMipmap: Int new in Git master

Texture sampler mip level selection.

Wraps a VkSamplerMipmapMode.

Enumerators
Nearest

Select nearest mip level

Linear

Linear interpolation of nearest mip levels

enum class Magnum::Vk::SamplerWrapping: Int new in Git master

Texture sampler wrapping.

Enumerators
Repeat

Repeat the texture

MirroredRepeat

Repeat a mirrored texture

ClampToEdge

Clamp to edge. Coordinates out of range will be clamped to the first / last column / row / layer in given direction.

ClampToBorder

Clamp to border color. Coordinates of out range will be clamped to the border color.

MirrorClampToEdge

Mirror the texture once in negative coordinates and clamp to edge after that.

enum class Magnum::Vk::ShaderStage: UnsignedInt new in Git master

Shader stage.

Wraps VkShaderStageFlagBits.

Enumerators
Vertex

Vertex stage

Fragment

Fragment stage

Geometry

Geometry stage

TessellationControl

Tessellation control stage

TessellationEvaluation

Tessellation evaluation stage

Compute

Compute stage

RayGeneration

Ray generation stage

RayAnyHit

Ray any hit stage

RayClosestHit

Ray closest hit stage

RayMiss

Ray miss stage

RayIntersection

Ray intersection stage

RayCallable

Ray callable stage

enum class Magnum::Vk::Version: UnsignedInt new in Git master

Vulkan version.

Enumerators
None

Unspecified

Vk10

Vulkan 1.0

Vk11

Vulkan 1.1

Vk12

Vulkan 1.2

enum class Magnum::Vk::VertexFormat: Int new in Git master

Vertex format.

Wraps a subset of VkFormat that's usable as a vertex format. Unless said otherwise (mostly in case of 8- and 16-bit three-component formats and doubles), all formats are guaranteed to be supported by the spec.

Enumerators
Float

Float

Half

Half

Double

Double.

Compared to VertexFormat::Float, this format is not guaranteed to be supported.

UnsignedByte

UnsignedByte

UnsignedByteNormalized

UnsignedByte, with range $ [0, 255] $ interpreted as $ [0.0, 1.0] $ .

Byte

Byte

ByteNormalized

Byte, with range $ [-127, 127] $ interpreted as $ [-1.0, 1.0] $ .

UnsignedShort

UnsignedShort

UnsignedShortNormalized

UnsignedShort, with range $ [0, 65535] $ interpreted as $ [0.0, 1.0] $ .

Short

Short

ShortNormalized

Short, with range $ [-32767, 32767] $ interpreted as $ [-1.0, 1.0] $ .

UnsignedInt

UnsignedInt

Int

Int

Vector2

Vector2

Vector2h

Vector2h

Vector2d

Vector2d.

Compared to VertexFormat::Vector2, this format is not guaranteed to be supported.

Vector2ub

Vector2ub

Vector2ubNormalized

Vector2ub, with range $ [0, 255] $ interpreted as $ [0.0, 1.0] $ .

Vector2b

Vector2b

Vector2bNormalized

Vector2b, with range $ [-127, 127] $ interpreted as $ [-1.0, 1.0] $ .

Vector2us

Vector2us

Vector2usNormalized

Vector2us, with range $ [0, 65535] $ interpreted as $ [0.0, 1.0] $ .

Vector2s

Vector2s

Vector2sNormalized

Vector2s, with range $ [-32767, 32767] $ interpreted as $ [-1.0, 1.0] $ .

Vector2ui

Vector2ui

Vector2i

Vector2i

Vector3

Vector3 or Color3

Vector3h

Vector3h or Color3h.

Compared to VertexFormat::Vector3 or VertexFormat::Vector2h / VertexFormat::Vector4h, this format is not guaranteed to be supported.

Vector3d

Vector3d.

Compared to VertexFormat::Vector3, this format is not guaranteed to be supported.

Vector3ub

Vector3ub.

Compared to VertexFormat::Vector3ui or VertexFormat::Vector2ub / VertexFormat::Vector4ub, this format is not guaranteed to be supported.

Vector3ubNormalized

Vector3ub or Color3ub, with range $ [0, 255] $ interpreted as $ [0.0, 1.0] $ .

Compared to VertexFormat::Vector3 or VertexFormat..Vector2ubNormalized / VertexFormat::Vector4ubNormalized, this format is not guaranteed to be supported.

Vector3b

Vector3b.

Compared to VertexFormat::Vector3i or VertexFormat::Vector2b / VertexFormat::Vector4b, this format is not guaranteed to be supported.

Vector3bNormalized

Vector3b, with range $ [-127, 127] $ )interpreted as $ [-1.0, 1.0] $ .

Compared to VertexFormat::Vector3 or VertexFormat::Vector2bNormalized / VertexFormat::Vector4bNormalized, this format is not guaranteed to be supported.

Vector3us

Vector3us.

Compared to VertexFormat::Vector3ui or VertexFormat::Vector2us / VertexFormat::Vector4us, this format is not guaranteed to be supported.

Vector3usNormalized

Vector3us or Color3us, with range $ [0, 65535] $ interpreted as $ [0.0, 1.0] $ .

Compared to VertexFormat::Vector3 or VertexFormat::Vector3usNormalized / VertexFormat::Vector4usNormalized, this format is not guaranteed to be supported.

Vector3s

Vector3s.

Compared to VertexFormat::Vector3i or VertexFormat::Vector2b / VertexFormat::Vector4b, this format is not guaranteed to be supported.

Vector3sNormalized

Vector3s, with range $ [-32767, 32767] $ interpreted as $ [-1.0, 1.0] $ .

Compared to VertexFormat::Vector3 or VertexFormat::Vector3sNormalized / VertexFormat::Vector4sNormalized, this format is not guaranteed to be supported.

Vector3ui

Vector3ui

Vector3i

Vector3i

Vector4

Vector4 or Color4

Vector4h

Vector4h or Color4h

Vector4d

Vector4d.

Compared to VertexFormat::Vector4, this format is not guaranteed to be supported.

Vector4ub

Vector4ub

Vector4ubNormalized

Vector4ub or Color4ub, with range $ [0, 255] $ interpreted as $ [0.0, 1.0] $ .

Vector4b

Vector4b

Vector4bNormalized

Vector4b, with range $ [-127, 127] $ interpreted as $ [-1.0, 1.0] $ .

Vector4us

Vector4us

Vector4usNormalized

Vector4us or Color4us, with range $ [0, 65535] $ interpreted as $ [0.0, 1.0] $ .

Vector4s

Vector4s

Vector4sNormalized

Vector4s, with range $ [-32767, 32767] $ interpreted as $ [-1.0, 1.0] $ .

Vector4ui

Vector4ui

Vector4i

Vector4i

Typedef documentation

typedef Containers::BigEnumSet<DeviceFeature, 4> Magnum::Vk::DeviceFeatures new in Git master

Device features.

Combines information stored in the VkPhysicalDeviceFeatures2 structure chain.

typedef Containers::EnumSet<HandleFlag> Magnum::Vk::HandleFlags new in Git master

Handle wrapping flags.

typedef Containers::EnumSet<ImageUsage> Magnum::Vk::ImageUsages new in Git master

Image usages.

Type-safe wrapper for VkImageUsageFlags.

typedef Containers::EnumSet<PipelineStage> Magnum::Vk::PipelineStages new in Git master

Pipeline stages.

Type-safe wrapper for VkPipelineStageFlags.

typedef Containers::EnumSet<Access> Magnum::Vk::Accesses new in Git master

Memory access type participating in a memory dependency.

Type-safe wrapper for VkAccessFlags.

typedef Containers::EnumSet<DependencyFlag> Magnum::Vk::DependencyFlags new in Git master

Execution and memory dependency flags.

Type-safe wrapper for VkDependencyFlags.

typedef Containers::BigEnumSet<DynamicRasterizationState, 1> Magnum::Vk::DynamicRasterizationStates new in Git master

Dynamic rasterization states.

A set of rasterization-related information from the VkDynamicState enum.

typedef Containers::EnumSet<ShaderStage, VK_SHADER_STAGE_ALL> Magnum::Vk::ShaderStages new in Git master

Shader stages.

Type-safe wrapper for VkShaderStageFlags. Note that ~Vk::ShaderStages{} can be used for VK_SHADER_STAGE_ALL.

Function documentation

Debug& Magnum::Vk::operator<<(Debug& debug, DescriptorType value) new in Git master

Debug output operator.

Debug& Magnum::Vk::operator<<(Debug& debug, DeviceFeature value) new in Git master

Debug output operator.

Debug& Magnum::Vk::operator<<(Debug& debug, const DeviceFeatures& value) new in Git master

Debug output operator.

Debug& Magnum::Vk::operator<<(Debug& debug, DeviceType value) new in Git master

Debug output operator.

Debug& Magnum::Vk::operator<<(Debug& debug, DeviceDriver value) new in Git master

Debug output operator.

Debug& Magnum::Vk::operator<<(Debug& debug, QueueFlag value) new in Git master

Debug output operator.

Debug& Magnum::Vk::operator<<(Debug& debug, QueueFlags value) new in Git master

Debug output operator.

Debug& Magnum::Vk::operator<<(Debug& debug, MemoryHeapFlag value) new in Git master

Debug output operator.

Debug& Magnum::Vk::operator<<(Debug& debug, MemoryHeapFlags value) new in Git master

Debug output operator.

Containers::Array<DeviceProperties> Magnum::Vk::enumerateDevices(Instance& instance) new in Git master

Enumerate physical devices.

Returns a list of all devices present on the system. See pickDevice() for an alternative that pick just a single appropriate device. See Device for general usage information.

DeviceProperties Magnum::Vk::pickDevice(Instance& instance) new in Git master

Pick a physical device.

Selects a device based on preferences specified through the --magnum-device command-line option. If a device is not found, exits. See tryPickDevice() for an alternative that doesn't exit on failure. See Device for general usage information.

If --magnum-device is not specified or --magnum-device specifies a device index, this function enumerates just the first N devices to satisfy the request. Otherwise calls enumerateDevices() and picks the first device matching the criteria in --magnum-device.

Containers::Optional<DeviceProperties> Magnum::Vk::tryPickDevice(Instance& instance) new in Git master

Try to pick a physical device.

Compared to pickDevice() the function returns Containers::NullOpt if a device isn't found instead of exiting.

bool Magnum::Vk::hasVkPrimitiveTopology(Magnum::MeshPrimitive primitive)

Check availability of a generic mesh primitive.

VkPrimitiveTopology Magnum::Vk::vkPrimitiveTopology(Magnum::MeshPrimitive primitive)

Convert generic mesh primitive to Vulkan mesh primitive.

bool Magnum::Vk::hasVkIndexType(Magnum::MeshIndexType type)

Check availability of a generic index type.

VkIndexType Magnum::Vk::vkIndexType(Magnum::MeshIndexType type)

Convert a generic index type to Vulkan index type.

bool Magnum::Vk::hasVkFormat(Magnum::VertexFormat format)

Check availability of a generic vertex format.

bool Magnum::Vk::hasVkFormat(Magnum::PixelFormat format)

Check availability of a generic pixel format.

bool Magnum::Vk::hasVkFormat(Magnum::CompressedPixelFormat format)

Check availability of a generic compressed pixel format.

VkFormat Magnum::Vk::vkFormat(Magnum::VertexFormat format)

Convert a generic vertex format to Vulkan vertex format.

VkFormat Magnum::Vk::vkFormat(Magnum::PixelFormat format)

Convert a generic pixel format to Vulkan pixel format.

VkFormat Magnum::Vk::vkFormat(Magnum::CompressedPixelFormat format)

Convert a generic compressed pixel format to Vulkan pixel format.

VkFilter Magnum::Vk::vkFilter(Magnum::SamplerFilter filter)

Convert a generic sampler filter to Vulkan sampler filter.

VkSamplerMipmapMode Magnum::Vk::vkSamplerMipmapMode(Magnum::SamplerMipmap mipmap)

Convert a generic sampler mipmap mode to Vulkan sampler mipmap mode.

bool Magnum::Vk::hasVkSamplerAddressMode(Magnum::SamplerWrapping wrapping)

Check availability of a generic sampler wrapping mode.

VkSamplerAddressMode Magnum::Vk::vkSamplerAddressMode(Magnum::SamplerWrapping wrapping)

Convert a generic sampler wrapping mode to Vulkan sampler wrapping mode.

template<std::size_t dimensions>
Math::Vector<dimensions, VkSamplerAddressMode> Magnum::Vk::vkSamplerAddressMode(const Math::Vector<dimensions, Magnum::SamplerWrapping>& wrapping)

Convert a generic sampler wrapping mode to Vulkan sampler wrapping mode.

InstanceExtensionProperties Magnum::Vk::enumerateInstanceExtensionProperties(const Containers::StringIterable& layers = {}) new in Git master

Enumerate instance extension properties.

Parameters
layers Additional layers to list extensions from

Expects that all listed layers are supported.

Debug& Magnum::Vk::operator<<(Debug& debug, HandleFlag value) new in Git master

Debug output operator.

Debug& Magnum::Vk::operator<<(Debug& debug, HandleFlags value) new in Git master

Debug output operator.

Debug& Magnum::Vk::operator<<(Debug& out, ImageAspect value) new in Git master

Debug output operator.

Debug& Magnum::Vk::operator<<(Debug& out, ImageAspects value) new in Git master

Debug output operator.

ImageAspects Magnum::Vk::imageAspectsFor(PixelFormat format) new in Git master

Image aspects corresponding to given pixel format.

Returns ImageAspect::Depth for a depth format, ImageAspect::Stencil for a stencil format, a combination of both for a combined depth/stencil format and ImageAspect::Color otherwise. Expects that the format is not undefined.

ImageAspects Magnum::Vk::imageAspectsFor(Magnum::PixelFormat format) new in Git master

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Debug& Magnum::Vk::operator<<(Debug& debug, MemoryFlag value) new in Git master

Debug output operator.

Debug& Magnum::Vk::operator<<(Debug& debug, MemoryFlags value) new in Git master

Debug output operator.

Debug& Magnum::Vk::operator<<(Debug& debug, MeshIndexType value) new in Git master

Debug output operator.

MeshIndexType Magnum::Vk::meshIndexType(Magnum::MeshIndexType type) new in Git master

Convert a generic index type to Vulkan index type.

In case isMeshIndexTypeImplementationSpecific() returns false for type, maps it to a corresponding Vulkan type. In case isMeshIndexTypeImplementationSpecific() returns true, assumes type stores a Vulkan-specific format and returns meshIndexTypeUnwrap() cast to MeshIndexType.

Debug& Magnum::Vk::operator<<(Debug& debug, MeshPrimitive value) new in Git master

Debug output operator.

bool Magnum::Vk::hasMeshPrimitive(Magnum::MeshPrimitive primitive) new in Git master

Check availability of a generic mesh primitive.

In particular, Vulkan doesn't support the MeshPrimitive::LineLoop primitive. Returns false if Vulkan doesn't support such primitive, true otherwise. Moreover, returns true also for all types that are isMeshPrimitiveImplementationSpecific(). The primitive value is expected to be valid.

MeshPrimitive Magnum::Vk::meshPrimitive(Magnum::MeshPrimitive primitive) new in Git master

Convert generic mesh primitive to Vulkan mesh primitive.

In case isMeshPrimitiveImplementationSpecific() returns false for primitive, maps it to a corresponding Vulkan primitive topology. In case isMeshPrimitiveImplementationSpecific() returns true, assumes primitive stores a Vulkan-specific primitive topology and returns meshPrimitiveUnwrap() cast to VkPrimitiveTopology.

Not all generic mesh primitives have a Vulkan equivalent and this function expects that given primitive is available. Use hasMeshPrimitive() to query availability of given primitive.

Debug& Magnum::Vk::operator<<(Debug& debug, PipelineBindPoint value) new in Git master

Debug output operator.

Debug& Magnum::Vk::operator<<(Debug& debug, PixelFormat value) new in Git master

Debug output operator.

bool Magnum::Vk::hasPixelFormat(Magnum::PixelFormat format) new in Git master

Check availability of a generic pixel format.

Returns false if Vulkan doesn't support such format, true otherwise. Moreover, returns true also for all formats that are isPixelFormatImplementationSpecific(). The format value is expected to be valid.

The mapping operation is done with an $ \mathcal{O}(1) $ complexity.

bool Magnum::Vk::hasPixelFormat(Magnum::CompressedPixelFormat format) new in Git master

Check availability of a generic compressed pixel format.

Returns false if Vulkan doesn't support such format, true otherwise. Moreover, returns true also for all formats that are isCompressedPixelFormatImplementationSpecific(). The format value is expected to be valid.

The mapping operation is done with an $ \mathcal{O}(1) $ complexity.

PixelFormat Magnum::Vk::pixelFormat(Magnum::PixelFormat format) new in Git master

Convert a generic pixel format to Vulkan pixel format.

In case isPixelFormatImplementationSpecific() returns false for format, maps it to a corresponding Vulkan format. In case isPixelFormatImplementationSpecific() returns true, assumes format stores a Vulkan-specific format and returns pixelFormatUnwrap() cast to PixelFormat.

Not all generic pixel formats have a Vulkan equivalent and this function expects that given format is available. Use hasPixelFormat(Magnum::PixelFormat) to query availability of given format.

The mapping operation is done with an $ \mathcal{O}(1) $ complexity.

PixelFormat Magnum::Vk::pixelFormat(Magnum::CompressedPixelFormat format) new in Git master

Convert a generic compressed pixel format to Vulkan pixel format.

In case isCompressedPixelFormatImplementationSpecific() returns false for format, maps it to a corresponding Vulkan format. In case isCompressedPixelFormatImplementationSpecific() returns true, assumes format stores a Vulkan-specific format and returns compressedPixelFormatUnwrap() cast to PixelFormat.

Not all generic pixel formats have a Vulkan equivalent and this function expects that given format is available. Use hasPixelFormat(Magnum::CompressedPixelFormat) to query availability of given format.

The mapping operation is done with an $ \mathcal{O}(1) $ complexity.

Containers::Optional<Magnum::PixelFormat> Magnum::Vk::genericPixelFormat(PixelFormat format) new in Git master

Convert Vulkan pixel format to a generic pixel format.

Returns Containers::NullOpt if given format is compressed or if it doesn't match any generic pixel format. Otherwise the returned value will result in the same format when passed back to pixelFormat(Magnum::PixelFormat).

Unlike mapping from a generic pixel format, the inverse operation is done with an $ \mathcal{O}(n) $ complexity.

Containers::Optional<Magnum::CompressedPixelFormat> Magnum::Vk::genericCompressedPixelFormat(PixelFormat format) new in Git master

Convert Vulkan compressed pixel format to a generic compressed pixel format.

Returns Containers::NullOpt if given format is not compressed or if it doesn't match any generic compressed pixel format. Otherwise the returned value will result in the same format when passed back to pixelFormat(Magnum::CompressedPixelFormat).

An exception is PVRTC formats — the RGB and RGBA variants map to the same Vulkan format, e.g. Magnum::CompressedPixelFormat::PvrtcRGB2bppSrgb and PvrtcRGBA2bppSrgb both result in Vk::PixelFormat::CompressedPvrtcRGBA2bppSrgb. To avoid potential information loss, this function always maps the Vulkan PVRTC formats back to the RGBA variants.

Unlike mapping from a generic pixel format, the inverse operation is done with an $ \mathcal{O}(n) $ complexity.

Debug& Magnum::Vk::operator<<(Debug& debug, Result value) new in Git master

Debug output operator.

Debug& Magnum::Vk::operator<<(Debug& debug, SamplerFilter value) new in Git master

Debug output operator.

SamplerFilter Magnum::Vk::samplerFilter(Magnum::SamplerFilter filter) new in Git master

Convert a generic sampler filter to Vulkan sampler filter.

Debug& Magnum::Vk::operator<<(Debug& debug, SamplerWrapping value) new in Git master

Debug output operator.

SamplerMipmap Magnum::Vk::samplerMipmap(Magnum::SamplerMipmap mipmap) new in Git master

Convert a generic sampler mipmap mode to Vulkan sampler mipmap mode.

Vulkan doesn't support the Magnum::SamplerMipmap::Base value directly, instead SamplerMipmap::Nearest is used and you have to configure the sampler to use just a single mipmap level.

Debug& Magnum::Vk::operator<<(Debug& debug, SamplerMipmap value) new in Git master

Debug output operator.

SamplerWrapping Magnum::Vk::samplerWrapping(Magnum::SamplerWrapping wrapping) new in Git master

Convert a generic sampler wrapping mode to Vulkan sampler wrapping mode.

template<std::size_t dimensions>
Math::Vector<dimensions, SamplerWrapping> Magnum::Vk::samplerWrapping(const Math::Vector<dimensions, Magnum::SamplerWrapping>& wrapping)

Convert a generic sampler wrapping mode to Vulkan sampler wrapping mode.

Version Magnum::Vk::version(UnsignedInt major, UnsignedInt minor, UnsignedInt patch = 0) constexpr new in Git master

Create a version from components.

Equivalent to VK_MAKE_VERSION, but without C-style casts.

UnsignedInt Magnum::Vk::versionMajor(Version version) constexpr new in Git master

Extract major version number from a packed representation.

Equivalent to VK_VERSION_MAJOR, but without C-style casts.

UnsignedInt Magnum::Vk::versionMinor(Version version) constexpr new in Git master

Extract minor version number from a packed representation.

Equivalent to VK_VERSION_MINOR, but without C-style casts.

UnsignedInt Magnum::Vk::versionPatch(Version version) constexpr new in Git master

Extract minor version number from a packed representation.

Equivalent to VK_VERSION_PATCH, but without C-style casts.

bool Magnum::Vk::operator<(Version a, Version b) constexpr new in Git master

Whether a version is smaller than the other.

bool Magnum::Vk::operator<=(Version a, Version b) constexpr new in Git master

Whether a version is smaller than or equal to the other.

bool Magnum::Vk::operator>=(Version a, Version b) constexpr new in Git master

Whether a version is greater than or equal to the other.

bool Magnum::Vk::operator>(Version a, Version b) constexpr new in Git master

Whether a version is greater than the other.

Debug& Magnum::Vk::operator<<(Debug& debug, Version value) new in Git master

Debug output operator.

Prints the version as <major>.<minor>.<patch>, or just as <major>.<minor> if patch is zero.

Version Magnum::Vk::enumerateInstanceVersion() new in Git master

Enumerate version supported by the instance.

Note that the vkEnumerateInstanceVersion() function isn't available in Vulkan 1.0 and thus is fetched at runtime via vkGetInstanceProcAddr() called in a static constructor. On Vulkan 1.0 always returns Version::Vk10, in newer versions the returned version number contains also patch information.

Debug& Magnum::Vk::operator<<(Debug& debug, VertexFormat value) new in Git master

Debug output operator.

bool Magnum::Vk::hasVertexFormat(Magnum::VertexFormat format) new in Git master

Check availability of a generic vertex format.

Returns false if Vulkan doesn't support such format, true otherwise. Moreover, returns true also for all formats that are isVertexFormatImplementationSpecific(). The format value is expected to be valid. Note that for matrix formats the function only returns a corresponding vector type, and the user is expected to bind the remaining vectors to consecutive attribute locations based on what vertexFormatVectorCount() and vertexFormatVectorStride() return.

VertexFormat Magnum::Vk::vertexFormat(Magnum::VertexFormat format) new in Git master

Convert a generic vertex format to Vulkan vertex format.

In case isVertexFormatImplementationSpecific() returns false for format, maps it to a corresponding Vulkan format. In case isVertexFormatImplementationSpecific() returns true, assumes format stores a Vulkan-specific format and returns vertexFormatUnwrap() cast to VertexFormat.

Not all generic vertex formats have a Vulkan equivalent and this function expects that given format is available. Use hasVertexFormat() to query availability of given format.