| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Vulkan.Core10.DeviceInitialization
Synopsis
- createInstance :: forall (a :: [Type]) io. (Extendss InstanceCreateInfo a, PokeChain a, MonadIO io) => InstanceCreateInfo a -> ("allocator" ::: Maybe AllocationCallbacks) -> io Instance
- withInstance :: forall (a :: [Type]) io r. (Extendss InstanceCreateInfo a, PokeChain a, MonadIO io) => InstanceCreateInfo a -> Maybe AllocationCallbacks -> (io Instance -> (Instance -> io ()) -> r) -> r
- destroyInstance :: MonadIO io => Instance -> ("allocator" ::: Maybe AllocationCallbacks) -> io ()
- enumeratePhysicalDevices :: MonadIO io => Instance -> io (Result, "physicalDevices" ::: Vector PhysicalDevice)
- getDeviceProcAddr :: MonadIO io => Device -> ("name" ::: ByteString) -> io PFN_vkVoidFunction
- getInstanceProcAddr :: MonadIO io => Instance -> ("name" ::: ByteString) -> io PFN_vkVoidFunction
- getPhysicalDeviceProperties :: MonadIO io => PhysicalDevice -> io PhysicalDeviceProperties
- getPhysicalDeviceQueueFamilyProperties :: MonadIO io => PhysicalDevice -> io ("queueFamilyProperties" ::: Vector QueueFamilyProperties)
- getPhysicalDeviceMemoryProperties :: MonadIO io => PhysicalDevice -> io PhysicalDeviceMemoryProperties
- getPhysicalDeviceFeatures :: MonadIO io => PhysicalDevice -> io PhysicalDeviceFeatures
- getPhysicalDeviceFormatProperties :: MonadIO io => PhysicalDevice -> Format -> io FormatProperties
- getPhysicalDeviceImageFormatProperties :: MonadIO io => PhysicalDevice -> Format -> ImageType -> ImageTiling -> ImageUsageFlags -> ImageCreateFlags -> io ImageFormatProperties
- data PhysicalDeviceProperties = PhysicalDeviceProperties {}
- data ApplicationInfo = ApplicationInfo {}
- data InstanceCreateInfo (es :: [Type]) = InstanceCreateInfo {}
- data QueueFamilyProperties = QueueFamilyProperties {}
- data PhysicalDeviceMemoryProperties = PhysicalDeviceMemoryProperties {}
- data MemoryType = MemoryType {}
- data MemoryHeap = MemoryHeap {}
- data FormatProperties = FormatProperties {}
- data ImageFormatProperties = ImageFormatProperties {}
- data PhysicalDeviceFeatures = PhysicalDeviceFeatures {
- robustBufferAccess :: Bool
- fullDrawIndexUint32 :: Bool
- imageCubeArray :: Bool
- independentBlend :: Bool
- geometryShader :: Bool
- tessellationShader :: Bool
- sampleRateShading :: Bool
- dualSrcBlend :: Bool
- logicOp :: Bool
- multiDrawIndirect :: Bool
- drawIndirectFirstInstance :: Bool
- depthClamp :: Bool
- depthBiasClamp :: Bool
- fillModeNonSolid :: Bool
- depthBounds :: Bool
- wideLines :: Bool
- largePoints :: Bool
- alphaToOne :: Bool
- multiViewport :: Bool
- samplerAnisotropy :: Bool
- textureCompressionETC2 :: Bool
- textureCompressionASTC_LDR :: Bool
- textureCompressionBC :: Bool
- occlusionQueryPrecise :: Bool
- pipelineStatisticsQuery :: Bool
- vertexPipelineStoresAndAtomics :: Bool
- fragmentStoresAndAtomics :: Bool
- shaderTessellationAndGeometryPointSize :: Bool
- shaderImageGatherExtended :: Bool
- shaderStorageImageExtendedFormats :: Bool
- shaderStorageImageMultisample :: Bool
- shaderStorageImageReadWithoutFormat :: Bool
- shaderStorageImageWriteWithoutFormat :: Bool
- shaderUniformBufferArrayDynamicIndexing :: Bool
- shaderSampledImageArrayDynamicIndexing :: Bool
- shaderStorageBufferArrayDynamicIndexing :: Bool
- shaderStorageImageArrayDynamicIndexing :: Bool
- shaderClipDistance :: Bool
- shaderCullDistance :: Bool
- shaderFloat64 :: Bool
- shaderInt64 :: Bool
- shaderInt16 :: Bool
- shaderResourceResidency :: Bool
- shaderResourceMinLod :: Bool
- sparseBinding :: Bool
- sparseResidencyBuffer :: Bool
- sparseResidencyImage2D :: Bool
- sparseResidencyImage3D :: Bool
- sparseResidency2Samples :: Bool
- sparseResidency4Samples :: Bool
- sparseResidency8Samples :: Bool
- sparseResidency16Samples :: Bool
- sparseResidencyAliased :: Bool
- variableMultisampleRate :: Bool
- inheritedQueries :: Bool
- data PhysicalDeviceSparseProperties = PhysicalDeviceSparseProperties {}
- data PhysicalDeviceLimits = PhysicalDeviceLimits {
- maxImageDimension1D :: Word32
- maxImageDimension2D :: Word32
- maxImageDimension3D :: Word32
- maxImageDimensionCube :: Word32
- maxImageArrayLayers :: Word32
- maxTexelBufferElements :: Word32
- maxUniformBufferRange :: Word32
- maxStorageBufferRange :: Word32
- maxPushConstantsSize :: Word32
- maxMemoryAllocationCount :: Word32
- maxSamplerAllocationCount :: Word32
- bufferImageGranularity :: DeviceSize
- sparseAddressSpaceSize :: DeviceSize
- maxBoundDescriptorSets :: Word32
- maxPerStageDescriptorSamplers :: Word32
- maxPerStageDescriptorUniformBuffers :: Word32
- maxPerStageDescriptorStorageBuffers :: Word32
- maxPerStageDescriptorSampledImages :: Word32
- maxPerStageDescriptorStorageImages :: Word32
- maxPerStageDescriptorInputAttachments :: Word32
- maxPerStageResources :: Word32
- maxDescriptorSetSamplers :: Word32
- maxDescriptorSetUniformBuffers :: Word32
- maxDescriptorSetUniformBuffersDynamic :: Word32
- maxDescriptorSetStorageBuffers :: Word32
- maxDescriptorSetStorageBuffersDynamic :: Word32
- maxDescriptorSetSampledImages :: Word32
- maxDescriptorSetStorageImages :: Word32
- maxDescriptorSetInputAttachments :: Word32
- maxVertexInputAttributes :: Word32
- maxVertexInputBindings :: Word32
- maxVertexInputAttributeOffset :: Word32
- maxVertexInputBindingStride :: Word32
- maxVertexOutputComponents :: Word32
- maxTessellationGenerationLevel :: Word32
- maxTessellationPatchSize :: Word32
- maxTessellationControlPerVertexInputComponents :: Word32
- maxTessellationControlPerVertexOutputComponents :: Word32
- maxTessellationControlPerPatchOutputComponents :: Word32
- maxTessellationControlTotalOutputComponents :: Word32
- maxTessellationEvaluationInputComponents :: Word32
- maxTessellationEvaluationOutputComponents :: Word32
- maxGeometryShaderInvocations :: Word32
- maxGeometryInputComponents :: Word32
- maxGeometryOutputComponents :: Word32
- maxGeometryOutputVertices :: Word32
- maxGeometryTotalOutputComponents :: Word32
- maxFragmentInputComponents :: Word32
- maxFragmentOutputAttachments :: Word32
- maxFragmentDualSrcAttachments :: Word32
- maxFragmentCombinedOutputResources :: Word32
- maxComputeSharedMemorySize :: Word32
- maxComputeWorkGroupCount :: (Word32, Word32, Word32)
- maxComputeWorkGroupInvocations :: Word32
- maxComputeWorkGroupSize :: (Word32, Word32, Word32)
- subPixelPrecisionBits :: Word32
- subTexelPrecisionBits :: Word32
- mipmapPrecisionBits :: Word32
- maxDrawIndexedIndexValue :: Word32
- maxDrawIndirectCount :: Word32
- maxSamplerLodBias :: Float
- maxSamplerAnisotropy :: Float
- maxViewports :: Word32
- maxViewportDimensions :: (Word32, Word32)
- viewportBoundsRange :: (Float, Float)
- viewportSubPixelBits :: Word32
- minMemoryMapAlignment :: Word64
- minTexelBufferOffsetAlignment :: DeviceSize
- minUniformBufferOffsetAlignment :: DeviceSize
- minStorageBufferOffsetAlignment :: DeviceSize
- minTexelOffset :: Int32
- maxTexelOffset :: Word32
- minTexelGatherOffset :: Int32
- maxTexelGatherOffset :: Word32
- minInterpolationOffset :: Float
- maxInterpolationOffset :: Float
- subPixelInterpolationOffsetBits :: Word32
- maxFramebufferWidth :: Word32
- maxFramebufferHeight :: Word32
- maxFramebufferLayers :: Word32
- framebufferColorSampleCounts :: SampleCountFlags
- framebufferDepthSampleCounts :: SampleCountFlags
- framebufferStencilSampleCounts :: SampleCountFlags
- framebufferNoAttachmentsSampleCounts :: SampleCountFlags
- maxColorAttachments :: Word32
- sampledImageColorSampleCounts :: SampleCountFlags
- sampledImageIntegerSampleCounts :: SampleCountFlags
- sampledImageDepthSampleCounts :: SampleCountFlags
- sampledImageStencilSampleCounts :: SampleCountFlags
- storageImageSampleCounts :: SampleCountFlags
- maxSampleMaskWords :: Word32
- timestampComputeAndGraphics :: Bool
- timestampPeriod :: Float
- maxClipDistances :: Word32
- maxCullDistances :: Word32
- maxCombinedClipAndCullDistances :: Word32
- discreteQueuePriorities :: Word32
- pointSizeRange :: (Float, Float)
- lineWidthRange :: (Float, Float)
- pointSizeGranularity :: Float
- lineWidthGranularity :: Float
- strictLines :: Bool
- standardSampleLocations :: Bool
- optimalBufferCopyOffsetAlignment :: DeviceSize
- optimalBufferCopyRowPitchAlignment :: DeviceSize
- nonCoherentAtomSize :: DeviceSize
- data Instance = Instance {}
- data PhysicalDevice = PhysicalDevice {}
- data AllocationCallbacks = AllocationCallbacks {}
- newtype ImageType where
- ImageType Int32
- pattern IMAGE_TYPE_1D :: ImageType
- pattern IMAGE_TYPE_2D :: ImageType
- pattern IMAGE_TYPE_3D :: ImageType
- newtype ImageTiling where
- ImageTiling Int32
- pattern IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT :: ImageTiling
- pattern IMAGE_TILING_LINEAR :: ImageTiling
- pattern IMAGE_TILING_OPTIMAL :: ImageTiling
- newtype InternalAllocationType where
- newtype SystemAllocationScope where
- SystemAllocationScope Int32
- pattern SYSTEM_ALLOCATION_SCOPE_CACHE :: SystemAllocationScope
- pattern SYSTEM_ALLOCATION_SCOPE_COMMAND :: SystemAllocationScope
- pattern SYSTEM_ALLOCATION_SCOPE_DEVICE :: SystemAllocationScope
- pattern SYSTEM_ALLOCATION_SCOPE_INSTANCE :: SystemAllocationScope
- pattern SYSTEM_ALLOCATION_SCOPE_OBJECT :: SystemAllocationScope
- newtype PhysicalDeviceType where
- PhysicalDeviceType Int32
- pattern PHYSICAL_DEVICE_TYPE_CPU :: PhysicalDeviceType
- pattern PHYSICAL_DEVICE_TYPE_DISCRETE_GPU :: PhysicalDeviceType
- pattern PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU :: PhysicalDeviceType
- pattern PHYSICAL_DEVICE_TYPE_OTHER :: PhysicalDeviceType
- pattern PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU :: PhysicalDeviceType
- newtype Format where
- Format Int32
- pattern FORMAT_A1B5G5R5_UNORM_PACK16 :: Format
- pattern FORMAT_A1R5G5B5_UNORM_PACK16 :: Format
- pattern FORMAT_A2B10G10R10_SINT_PACK32 :: Format
- pattern FORMAT_A2B10G10R10_SNORM_PACK32 :: Format
- pattern FORMAT_A2B10G10R10_SSCALED_PACK32 :: Format
- pattern FORMAT_A2B10G10R10_UINT_PACK32 :: Format
- pattern FORMAT_A2B10G10R10_UNORM_PACK32 :: Format
- pattern FORMAT_A2B10G10R10_USCALED_PACK32 :: Format
- pattern FORMAT_A2R10G10B10_SINT_PACK32 :: Format
- pattern FORMAT_A2R10G10B10_SNORM_PACK32 :: Format
- pattern FORMAT_A2R10G10B10_SSCALED_PACK32 :: Format
- pattern FORMAT_A2R10G10B10_UINT_PACK32 :: Format
- pattern FORMAT_A2R10G10B10_UNORM_PACK32 :: Format
- pattern FORMAT_A2R10G10B10_USCALED_PACK32 :: Format
- pattern FORMAT_A4B4G4R4_UNORM_PACK16 :: Format
- pattern FORMAT_A4R4G4B4_UNORM_PACK16 :: Format
- pattern FORMAT_A8B8G8R8_SINT_PACK32 :: Format
- pattern FORMAT_A8B8G8R8_SNORM_PACK32 :: Format
- pattern FORMAT_A8B8G8R8_SRGB_PACK32 :: Format
- pattern FORMAT_A8B8G8R8_SSCALED_PACK32 :: Format
- pattern FORMAT_A8B8G8R8_UINT_PACK32 :: Format
- pattern FORMAT_A8B8G8R8_UNORM_PACK32 :: Format
- pattern FORMAT_A8B8G8R8_USCALED_PACK32 :: Format
- pattern FORMAT_A8_UNORM :: Format
- pattern FORMAT_ASTC_10x10_SFLOAT_BLOCK :: Format
- pattern FORMAT_ASTC_10x10_SRGB_BLOCK :: Format
- pattern FORMAT_ASTC_10x10_UNORM_BLOCK :: Format
- pattern FORMAT_ASTC_10x5_SFLOAT_BLOCK :: Format
- pattern FORMAT_ASTC_10x5_SRGB_BLOCK :: Format
- pattern FORMAT_ASTC_10x5_UNORM_BLOCK :: Format
- pattern FORMAT_ASTC_10x6_SFLOAT_BLOCK :: Format
- pattern FORMAT_ASTC_10x6_SRGB_BLOCK :: Format
- pattern FORMAT_ASTC_10x6_UNORM_BLOCK :: Format
- pattern FORMAT_ASTC_10x8_SFLOAT_BLOCK :: Format
- pattern FORMAT_ASTC_10x8_SRGB_BLOCK :: Format
- pattern FORMAT_ASTC_10x8_UNORM_BLOCK :: Format
- pattern FORMAT_ASTC_12x10_SFLOAT_BLOCK :: Format
- pattern FORMAT_ASTC_12x10_SRGB_BLOCK :: Format
- pattern FORMAT_ASTC_12x10_UNORM_BLOCK :: Format
- pattern FORMAT_ASTC_12x12_SFLOAT_BLOCK :: Format
- pattern FORMAT_ASTC_12x12_SRGB_BLOCK :: Format
- pattern FORMAT_ASTC_12x12_UNORM_BLOCK :: Format
- pattern FORMAT_ASTC_3x3x3_SFLOAT_BLOCK_EXT :: Format
- pattern FORMAT_ASTC_3x3x3_SRGB_BLOCK_EXT :: Format
- pattern FORMAT_ASTC_3x3x3_UNORM_BLOCK_EXT :: Format
- pattern FORMAT_ASTC_4x3x3_SFLOAT_BLOCK_EXT :: Format
- pattern FORMAT_ASTC_4x3x3_SRGB_BLOCK_EXT :: Format
- pattern FORMAT_ASTC_4x3x3_UNORM_BLOCK_EXT :: Format
- pattern FORMAT_ASTC_4x4_SFLOAT_BLOCK :: Format
- pattern FORMAT_ASTC_4x4_SRGB_BLOCK :: Format
- pattern FORMAT_ASTC_4x4_UNORM_BLOCK :: Format
- pattern FORMAT_ASTC_4x4x3_SFLOAT_BLOCK_EXT :: Format
- pattern FORMAT_ASTC_4x4x3_SRGB_BLOCK_EXT :: Format
- pattern FORMAT_ASTC_4x4x3_UNORM_BLOCK_EXT :: Format
- pattern FORMAT_ASTC_4x4x4_SFLOAT_BLOCK_EXT :: Format
- pattern FORMAT_ASTC_4x4x4_SRGB_BLOCK_EXT :: Format
- pattern FORMAT_ASTC_4x4x4_UNORM_BLOCK_EXT :: Format
- pattern FORMAT_ASTC_5x4_SFLOAT_BLOCK :: Format
- pattern FORMAT_ASTC_5x4_SRGB_BLOCK :: Format
- pattern FORMAT_ASTC_5x4_UNORM_BLOCK :: Format
- pattern FORMAT_ASTC_5x4x4_SFLOAT_BLOCK_EXT :: Format
- pattern FORMAT_ASTC_5x4x4_SRGB_BLOCK_EXT :: Format
- pattern FORMAT_ASTC_5x4x4_UNORM_BLOCK_EXT :: Format
- pattern FORMAT_ASTC_5x5_SFLOAT_BLOCK :: Format
- pattern FORMAT_ASTC_5x5_SRGB_BLOCK :: Format
- pattern FORMAT_ASTC_5x5_UNORM_BLOCK :: Format
- pattern FORMAT_ASTC_5x5x4_SFLOAT_BLOCK_EXT :: Format
- pattern FORMAT_ASTC_5x5x4_SRGB_BLOCK_EXT :: Format
- pattern FORMAT_ASTC_5x5x4_UNORM_BLOCK_EXT :: Format
- pattern FORMAT_ASTC_5x5x5_SFLOAT_BLOCK_EXT :: Format
- pattern FORMAT_ASTC_5x5x5_SRGB_BLOCK_EXT :: Format
- pattern FORMAT_ASTC_5x5x5_UNORM_BLOCK_EXT :: Format
- pattern FORMAT_ASTC_6x5_SFLOAT_BLOCK :: Format
- pattern FORMAT_ASTC_6x5_SRGB_BLOCK :: Format
- pattern FORMAT_ASTC_6x5_UNORM_BLOCK :: Format
- pattern FORMAT_ASTC_6x5x5_SFLOAT_BLOCK_EXT :: Format
- pattern FORMAT_ASTC_6x5x5_SRGB_BLOCK_EXT :: Format
- pattern FORMAT_ASTC_6x5x5_UNORM_BLOCK_EXT :: Format
- pattern FORMAT_ASTC_6x6_SFLOAT_BLOCK :: Format
- pattern FORMAT_ASTC_6x6_SRGB_BLOCK :: Format
- pattern FORMAT_ASTC_6x6_UNORM_BLOCK :: Format
- pattern FORMAT_ASTC_6x6x5_SFLOAT_BLOCK_EXT :: Format
- pattern FORMAT_ASTC_6x6x5_SRGB_BLOCK_EXT :: Format
- pattern FORMAT_ASTC_6x6x5_UNORM_BLOCK_EXT :: Format
- pattern FORMAT_ASTC_6x6x6_SFLOAT_BLOCK_EXT :: Format
- pattern FORMAT_ASTC_6x6x6_SRGB_BLOCK_EXT :: Format
- pattern FORMAT_ASTC_6x6x6_UNORM_BLOCK_EXT :: Format
- pattern FORMAT_ASTC_8x5_SFLOAT_BLOCK :: Format
- pattern FORMAT_ASTC_8x5_SRGB_BLOCK :: Format
- pattern FORMAT_ASTC_8x5_UNORM_BLOCK :: Format
- pattern FORMAT_ASTC_8x6_SFLOAT_BLOCK :: Format
- pattern FORMAT_ASTC_8x6_SRGB_BLOCK :: Format
- pattern FORMAT_ASTC_8x6_UNORM_BLOCK :: Format
- pattern FORMAT_ASTC_8x8_SFLOAT_BLOCK :: Format
- pattern FORMAT_ASTC_8x8_SRGB_BLOCK :: Format
- pattern FORMAT_ASTC_8x8_UNORM_BLOCK :: Format
- pattern FORMAT_B10G11R11_UFLOAT_PACK32 :: Format
- pattern FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 :: Format
- pattern FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 :: Format
- pattern FORMAT_B16G16R16G16_422_UNORM :: Format
- pattern FORMAT_B4G4R4A4_UNORM_PACK16 :: Format
- pattern FORMAT_B5G5R5A1_UNORM_PACK16 :: Format
- pattern FORMAT_B5G6R5_UNORM_PACK16 :: Format
- pattern FORMAT_B8G8R8A8_SINT :: Format
- pattern FORMAT_B8G8R8A8_SNORM :: Format
- pattern FORMAT_B8G8R8A8_SRGB :: Format
- pattern FORMAT_B8G8R8A8_SSCALED :: Format
- pattern FORMAT_B8G8R8A8_UINT :: Format
- pattern FORMAT_B8G8R8A8_UNORM :: Format
- pattern FORMAT_B8G8R8A8_USCALED :: Format
- pattern FORMAT_B8G8R8G8_422_UNORM :: Format
- pattern FORMAT_B8G8R8_SINT :: Format
- pattern FORMAT_B8G8R8_SNORM :: Format
- pattern FORMAT_B8G8R8_SRGB :: Format
- pattern FORMAT_B8G8R8_SSCALED :: Format
- pattern FORMAT_B8G8R8_UINT :: Format
- pattern FORMAT_B8G8R8_UNORM :: Format
- pattern FORMAT_B8G8R8_USCALED :: Format
- pattern FORMAT_BC1_RGBA_SRGB_BLOCK :: Format
- pattern FORMAT_BC1_RGBA_UNORM_BLOCK :: Format
- pattern FORMAT_BC1_RGB_SRGB_BLOCK :: Format
- pattern FORMAT_BC1_RGB_UNORM_BLOCK :: Format
- pattern FORMAT_BC2_SRGB_BLOCK :: Format
- pattern FORMAT_BC2_UNORM_BLOCK :: Format
- pattern FORMAT_BC3_SRGB_BLOCK :: Format
- pattern FORMAT_BC3_UNORM_BLOCK :: Format
- pattern FORMAT_BC4_SNORM_BLOCK :: Format
- pattern FORMAT_BC4_UNORM_BLOCK :: Format
- pattern FORMAT_BC5_SNORM_BLOCK :: Format
- pattern FORMAT_BC5_UNORM_BLOCK :: Format
- pattern FORMAT_BC6H_SFLOAT_BLOCK :: Format
- pattern FORMAT_BC6H_UFLOAT_BLOCK :: Format
- pattern FORMAT_BC7_SRGB_BLOCK :: Format
- pattern FORMAT_BC7_UNORM_BLOCK :: Format
- pattern FORMAT_D16_UNORM :: Format
- pattern FORMAT_D16_UNORM_S8_UINT :: Format
- pattern FORMAT_D24_UNORM_S8_UINT :: Format
- pattern FORMAT_D32_SFLOAT :: Format
- pattern FORMAT_D32_SFLOAT_S8_UINT :: Format
- pattern FORMAT_E5B9G9R9_UFLOAT_PACK32 :: Format
- pattern FORMAT_EAC_R11G11_SNORM_BLOCK :: Format
- pattern FORMAT_EAC_R11G11_UNORM_BLOCK :: Format
- pattern FORMAT_EAC_R11_SNORM_BLOCK :: Format
- pattern FORMAT_EAC_R11_UNORM_BLOCK :: Format
- pattern FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK :: Format
- pattern FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK :: Format
- pattern FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK :: Format
- pattern FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK :: Format
- pattern FORMAT_ETC2_R8G8B8_SRGB_BLOCK :: Format
- pattern FORMAT_ETC2_R8G8B8_UNORM_BLOCK :: Format
- pattern FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 :: Format
- pattern FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 :: Format
- pattern FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 :: Format
- pattern FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16 :: Format
- pattern FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 :: Format
- pattern FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 :: Format
- pattern FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 :: Format
- pattern FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 :: Format
- pattern FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 :: Format
- pattern FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 :: Format
- pattern FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16 :: Format
- pattern FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 :: Format
- pattern FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 :: Format
- pattern FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 :: Format
- pattern FORMAT_G14X2_B14X2R14X2_2PLANE_420_UNORM_3PACK16_ARM :: Format
- pattern FORMAT_G14X2_B14X2R14X2_2PLANE_422_UNORM_3PACK16_ARM :: Format
- pattern FORMAT_G16B16G16R16_422_UNORM :: Format
- pattern FORMAT_G16_B16R16_2PLANE_420_UNORM :: Format
- pattern FORMAT_G16_B16R16_2PLANE_422_UNORM :: Format
- pattern FORMAT_G16_B16R16_2PLANE_444_UNORM :: Format
- pattern FORMAT_G16_B16_R16_3PLANE_420_UNORM :: Format
- pattern FORMAT_G16_B16_R16_3PLANE_422_UNORM :: Format
- pattern FORMAT_G16_B16_R16_3PLANE_444_UNORM :: Format
- pattern FORMAT_G8B8G8R8_422_UNORM :: Format
- pattern FORMAT_G8_B8R8_2PLANE_420_UNORM :: Format
- pattern FORMAT_G8_B8R8_2PLANE_422_UNORM :: Format
- pattern FORMAT_G8_B8R8_2PLANE_444_UNORM :: Format
- pattern FORMAT_G8_B8_R8_3PLANE_420_UNORM :: Format
- pattern FORMAT_G8_B8_R8_3PLANE_422_UNORM :: Format
- pattern FORMAT_G8_B8_R8_3PLANE_444_UNORM :: Format
- pattern FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG :: Format
- pattern FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG :: Format
- pattern FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG :: Format
- pattern FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG :: Format
- pattern FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG :: Format
- pattern FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG :: Format
- pattern FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG :: Format
- pattern FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG :: Format
- pattern FORMAT_R10X6G10X6B10X6A10X6_UINT_4PACK16_ARM :: Format
- pattern FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 :: Format
- pattern FORMAT_R10X6G10X6_UINT_2PACK16_ARM :: Format
- pattern FORMAT_R10X6G10X6_UNORM_2PACK16 :: Format
- pattern FORMAT_R10X6_UINT_PACK16_ARM :: Format
- pattern FORMAT_R10X6_UNORM_PACK16 :: Format
- pattern FORMAT_R12X4G12X4B12X4A12X4_UINT_4PACK16_ARM :: Format
- pattern FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 :: Format
- pattern FORMAT_R12X4G12X4_UINT_2PACK16_ARM :: Format
- pattern FORMAT_R12X4G12X4_UNORM_2PACK16 :: Format
- pattern FORMAT_R12X4_UINT_PACK16_ARM :: Format
- pattern FORMAT_R12X4_UNORM_PACK16 :: Format
- pattern FORMAT_R14X2G14X2B14X2A14X2_UINT_4PACK16_ARM :: Format
- pattern FORMAT_R14X2G14X2B14X2A14X2_UNORM_4PACK16_ARM :: Format
- pattern FORMAT_R14X2G14X2_UINT_2PACK16_ARM :: Format
- pattern FORMAT_R14X2G14X2_UNORM_2PACK16_ARM :: Format
- pattern FORMAT_R14X2_UINT_PACK16_ARM :: Format
- pattern FORMAT_R14X2_UNORM_PACK16_ARM :: Format
- pattern FORMAT_R16G16B16A16_SFLOAT :: Format
- pattern FORMAT_R16G16B16A16_SINT :: Format
- pattern FORMAT_R16G16B16A16_SNORM :: Format
- pattern FORMAT_R16G16B16A16_SSCALED :: Format
- pattern FORMAT_R16G16B16A16_UINT :: Format
- pattern FORMAT_R16G16B16A16_UNORM :: Format
- pattern FORMAT_R16G16B16A16_USCALED :: Format
- pattern FORMAT_R16G16B16_SFLOAT :: Format
- pattern FORMAT_R16G16B16_SINT :: Format
- pattern FORMAT_R16G16B16_SNORM :: Format
- pattern FORMAT_R16G16B16_SSCALED :: Format
- pattern FORMAT_R16G16B16_UINT :: Format
- pattern FORMAT_R16G16B16_UNORM :: Format
- pattern FORMAT_R16G16B16_USCALED :: Format
- pattern FORMAT_R16G16_SFIXED5_NV :: Format
- pattern FORMAT_R16G16_SFLOAT :: Format
- pattern FORMAT_R16G16_SINT :: Format
- pattern FORMAT_R16G16_SNORM :: Format
- pattern FORMAT_R16G16_SSCALED :: Format
- pattern FORMAT_R16G16_UINT :: Format
- pattern FORMAT_R16G16_UNORM :: Format
- pattern FORMAT_R16G16_USCALED :: Format
- pattern FORMAT_R16_SFLOAT :: Format
- pattern FORMAT_R16_SFLOAT_FPENCODING_BFLOAT16_ARM :: Format
- pattern FORMAT_R16_SINT :: Format
- pattern FORMAT_R16_SNORM :: Format
- pattern FORMAT_R16_SSCALED :: Format
- pattern FORMAT_R16_UINT :: Format
- pattern FORMAT_R16_UNORM :: Format
- pattern FORMAT_R16_USCALED :: Format
- pattern FORMAT_R32G32B32A32_SFLOAT :: Format
- pattern FORMAT_R32G32B32A32_SINT :: Format
- pattern FORMAT_R32G32B32A32_UINT :: Format
- pattern FORMAT_R32G32B32_SFLOAT :: Format
- pattern FORMAT_R32G32B32_SINT :: Format
- pattern FORMAT_R32G32B32_UINT :: Format
- pattern FORMAT_R32G32_SFLOAT :: Format
- pattern FORMAT_R32G32_SINT :: Format
- pattern FORMAT_R32G32_UINT :: Format
- pattern FORMAT_R32_SFLOAT :: Format
- pattern FORMAT_R32_SINT :: Format
- pattern FORMAT_R32_UINT :: Format
- pattern FORMAT_R4G4B4A4_UNORM_PACK16 :: Format
- pattern FORMAT_R4G4_UNORM_PACK8 :: Format
- pattern FORMAT_R5G5B5A1_UNORM_PACK16 :: Format
- pattern FORMAT_R5G6B5_UNORM_PACK16 :: Format
- pattern FORMAT_R64G64B64A64_SFLOAT :: Format
- pattern FORMAT_R64G64B64A64_SINT :: Format
- pattern FORMAT_R64G64B64A64_UINT :: Format
- pattern FORMAT_R64G64B64_SFLOAT :: Format
- pattern FORMAT_R64G64B64_SINT :: Format
- pattern FORMAT_R64G64B64_UINT :: Format
- pattern FORMAT_R64G64_SFLOAT :: Format
- pattern FORMAT_R64G64_SINT :: Format
- pattern FORMAT_R64G64_UINT :: Format
- pattern FORMAT_R64_SFLOAT :: Format
- pattern FORMAT_R64_SINT :: Format
- pattern FORMAT_R64_UINT :: Format
- pattern FORMAT_R8G8B8A8_SINT :: Format
- pattern FORMAT_R8G8B8A8_SNORM :: Format
- pattern FORMAT_R8G8B8A8_SRGB :: Format
- pattern FORMAT_R8G8B8A8_SSCALED :: Format
- pattern FORMAT_R8G8B8A8_UINT :: Format
- pattern FORMAT_R8G8B8A8_UNORM :: Format
- pattern FORMAT_R8G8B8A8_USCALED :: Format
- pattern FORMAT_R8G8B8_SINT :: Format
- pattern FORMAT_R8G8B8_SNORM :: Format
- pattern FORMAT_R8G8B8_SRGB :: Format
- pattern FORMAT_R8G8B8_SSCALED :: Format
- pattern FORMAT_R8G8B8_UINT :: Format
- pattern FORMAT_R8G8B8_UNORM :: Format
- pattern FORMAT_R8G8B8_USCALED :: Format
- pattern FORMAT_R8G8_SINT :: Format
- pattern FORMAT_R8G8_SNORM :: Format
- pattern FORMAT_R8G8_SRGB :: Format
- pattern FORMAT_R8G8_SSCALED :: Format
- pattern FORMAT_R8G8_UINT :: Format
- pattern FORMAT_R8G8_UNORM :: Format
- pattern FORMAT_R8G8_USCALED :: Format
- pattern FORMAT_R8_BOOL_ARM :: Format
- pattern FORMAT_R8_SFLOAT_FPENCODING_FLOAT8E4M3_ARM :: Format
- pattern FORMAT_R8_SFLOAT_FPENCODING_FLOAT8E5M2_ARM :: Format
- pattern FORMAT_R8_SINT :: Format
- pattern FORMAT_R8_SNORM :: Format
- pattern FORMAT_R8_SRGB :: Format
- pattern FORMAT_R8_SSCALED :: Format
- pattern FORMAT_R8_UINT :: Format
- pattern FORMAT_R8_UNORM :: Format
- pattern FORMAT_R8_USCALED :: Format
- pattern FORMAT_S8_UINT :: Format
- pattern FORMAT_UNDEFINED :: Format
- pattern FORMAT_X8_D24_UNORM_PACK32 :: Format
- newtype QueueFlagBits where
- QueueFlagBits Flags
- pattern QUEUE_COMPUTE_BIT :: QueueFlagBits
- pattern QUEUE_DATA_GRAPH_BIT_ARM :: QueueFlagBits
- pattern QUEUE_GRAPHICS_BIT :: QueueFlagBits
- pattern QUEUE_OPTICAL_FLOW_BIT_NV :: QueueFlagBits
- pattern QUEUE_PROTECTED_BIT :: QueueFlagBits
- pattern QUEUE_SPARSE_BINDING_BIT :: QueueFlagBits
- pattern QUEUE_TRANSFER_BIT :: QueueFlagBits
- type QueueFlags = QueueFlagBits
- newtype MemoryPropertyFlagBits where
- MemoryPropertyFlagBits Flags
- pattern MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD :: MemoryPropertyFlagBits
- pattern MEMORY_PROPERTY_DEVICE_LOCAL_BIT :: MemoryPropertyFlagBits
- pattern MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD :: MemoryPropertyFlagBits
- pattern MEMORY_PROPERTY_HOST_CACHED_BIT :: MemoryPropertyFlagBits
- pattern MEMORY_PROPERTY_HOST_COHERENT_BIT :: MemoryPropertyFlagBits
- pattern MEMORY_PROPERTY_HOST_VISIBLE_BIT :: MemoryPropertyFlagBits
- pattern MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT :: MemoryPropertyFlagBits
- pattern MEMORY_PROPERTY_PROTECTED_BIT :: MemoryPropertyFlagBits
- pattern MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV :: MemoryPropertyFlagBits
- type MemoryPropertyFlags = MemoryPropertyFlagBits
- newtype MemoryHeapFlagBits where
- type MemoryHeapFlags = MemoryHeapFlagBits
- newtype ImageUsageFlagBits where
- ImageUsageFlagBits Flags
- pattern IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT :: ImageUsageFlagBits
- pattern IMAGE_USAGE_COLOR_ATTACHMENT_BIT :: ImageUsageFlagBits
- pattern IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT :: ImageUsageFlagBits
- pattern IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT :: ImageUsageFlagBits
- pattern IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR :: ImageUsageFlagBits
- pattern IMAGE_USAGE_HOST_TRANSFER_BIT :: ImageUsageFlagBits
- pattern IMAGE_USAGE_INPUT_ATTACHMENT_BIT :: ImageUsageFlagBits
- pattern IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI :: ImageUsageFlagBits
- pattern IMAGE_USAGE_SAMPLED_BIT :: ImageUsageFlagBits
- pattern IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM :: ImageUsageFlagBits
- pattern IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM :: ImageUsageFlagBits
- pattern IMAGE_USAGE_STORAGE_BIT :: ImageUsageFlagBits
- pattern IMAGE_USAGE_TENSOR_ALIASING_BIT_ARM :: ImageUsageFlagBits
- pattern IMAGE_USAGE_TILE_MEMORY_BIT_QCOM :: ImageUsageFlagBits
- pattern IMAGE_USAGE_TRANSFER_DST_BIT :: ImageUsageFlagBits
- pattern IMAGE_USAGE_TRANSFER_SRC_BIT :: ImageUsageFlagBits
- pattern IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT :: ImageUsageFlagBits
- type ImageUsageFlags = ImageUsageFlagBits
- newtype ImageCreateFlagBits where
- ImageCreateFlagBits Flags
- pattern IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT :: ImageCreateFlagBits
- pattern IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT :: ImageCreateFlagBits
- pattern IMAGE_CREATE_ALIAS_BIT :: ImageCreateFlagBits
- pattern IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT :: ImageCreateFlagBits
- pattern IMAGE_CREATE_CORNER_SAMPLED_BIT_NV :: ImageCreateFlagBits
- pattern IMAGE_CREATE_CUBE_COMPATIBLE_BIT :: ImageCreateFlagBits
- pattern IMAGE_CREATE_DESCRIPTOR_HEAP_CAPTURE_REPLAY_BIT_EXT :: ImageCreateFlagBits
- pattern IMAGE_CREATE_DISJOINT_BIT :: ImageCreateFlagBits
- pattern IMAGE_CREATE_EXTENDED_USAGE_BIT :: ImageCreateFlagBits
- pattern IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_EXT :: ImageCreateFlagBits
- pattern IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT :: ImageCreateFlagBits
- pattern IMAGE_CREATE_MUTABLE_FORMAT_BIT :: ImageCreateFlagBits
- pattern IMAGE_CREATE_PROTECTED_BIT :: ImageCreateFlagBits
- pattern IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT :: ImageCreateFlagBits
- pattern IMAGE_CREATE_SPARSE_ALIASED_BIT :: ImageCreateFlagBits
- pattern IMAGE_CREATE_SPARSE_BINDING_BIT :: ImageCreateFlagBits
- pattern IMAGE_CREATE_SPARSE_RESIDENCY_BIT :: ImageCreateFlagBits
- pattern IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT :: ImageCreateFlagBits
- pattern IMAGE_CREATE_SUBSAMPLED_BIT_EXT :: ImageCreateFlagBits
- type ImageCreateFlags = ImageCreateFlagBits
- newtype FormatFeatureFlagBits where
- FormatFeatureFlagBits Flags
- pattern FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR :: FormatFeatureFlagBits
- pattern FORMAT_FEATURE_BLIT_DST_BIT :: FormatFeatureFlagBits
- pattern FORMAT_FEATURE_BLIT_SRC_BIT :: FormatFeatureFlagBits
- pattern FORMAT_FEATURE_COLOR_ATTACHMENT_BIT :: FormatFeatureFlagBits
- pattern FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT :: FormatFeatureFlagBits
- pattern FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT :: FormatFeatureFlagBits
- pattern FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT :: FormatFeatureFlagBits
- pattern FORMAT_FEATURE_DISJOINT_BIT :: FormatFeatureFlagBits
- pattern FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT :: FormatFeatureFlagBits
- pattern FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR :: FormatFeatureFlagBits
- pattern FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT :: FormatFeatureFlagBits
- pattern FORMAT_FEATURE_SAMPLED_IMAGE_BIT :: FormatFeatureFlagBits
- pattern FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT :: FormatFeatureFlagBits
- pattern FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT :: FormatFeatureFlagBits
- pattern FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT :: FormatFeatureFlagBits
- pattern FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT :: FormatFeatureFlagBits
- pattern FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT :: FormatFeatureFlagBits
- pattern FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT :: FormatFeatureFlagBits
- pattern FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT :: FormatFeatureFlagBits
- pattern FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT :: FormatFeatureFlagBits
- pattern FORMAT_FEATURE_STORAGE_IMAGE_BIT :: FormatFeatureFlagBits
- pattern FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT :: FormatFeatureFlagBits
- pattern FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT :: FormatFeatureFlagBits
- pattern FORMAT_FEATURE_TRANSFER_DST_BIT :: FormatFeatureFlagBits
- pattern FORMAT_FEATURE_TRANSFER_SRC_BIT :: FormatFeatureFlagBits
- pattern FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT :: FormatFeatureFlagBits
- pattern FORMAT_FEATURE_VERTEX_BUFFER_BIT :: FormatFeatureFlagBits
- type FormatFeatureFlags = FormatFeatureFlagBits
- newtype SampleCountFlagBits where
- SampleCountFlagBits Flags
- pattern SAMPLE_COUNT_16_BIT :: SampleCountFlagBits
- pattern SAMPLE_COUNT_1_BIT :: SampleCountFlagBits
- pattern SAMPLE_COUNT_2_BIT :: SampleCountFlagBits
- pattern SAMPLE_COUNT_32_BIT :: SampleCountFlagBits
- pattern SAMPLE_COUNT_4_BIT :: SampleCountFlagBits
- pattern SAMPLE_COUNT_64_BIT :: SampleCountFlagBits
- pattern SAMPLE_COUNT_8_BIT :: SampleCountFlagBits
- type SampleCountFlags = SampleCountFlagBits
- newtype InstanceCreateFlagBits where
- type InstanceCreateFlags = InstanceCreateFlagBits
- type FN_vkInternalAllocationNotification = ("pUserData" ::: Ptr ()) -> CSize -> InternalAllocationType -> SystemAllocationScope -> IO ()
- type PFN_vkInternalAllocationNotification = FunPtr FN_vkInternalAllocationNotification
- type FN_vkInternalFreeNotification = ("pUserData" ::: Ptr ()) -> CSize -> InternalAllocationType -> SystemAllocationScope -> IO ()
- type PFN_vkInternalFreeNotification = FunPtr FN_vkInternalFreeNotification
- type FN_vkReallocationFunction = ("pUserData" ::: Ptr ()) -> ("pOriginal" ::: Ptr ()) -> CSize -> ("alignment" ::: CSize) -> SystemAllocationScope -> IO (Ptr ())
- type PFN_vkReallocationFunction = FunPtr FN_vkReallocationFunction
- type FN_vkAllocationFunction = ("pUserData" ::: Ptr ()) -> CSize -> ("alignment" ::: CSize) -> SystemAllocationScope -> IO (Ptr ())
- type PFN_vkAllocationFunction = FunPtr FN_vkAllocationFunction
- type FN_vkFreeFunction = ("pUserData" ::: Ptr ()) -> ("pMemory" ::: Ptr ()) -> IO ()
- type PFN_vkFreeFunction = FunPtr FN_vkFreeFunction
- type FN_vkVoidFunction = IO ()
- type PFN_vkVoidFunction = FunPtr FN_vkVoidFunction
Documentation
Arguments
| :: forall (a :: [Type]) io. (Extendss InstanceCreateInfo a, PokeChain a, MonadIO io) | |
| => InstanceCreateInfo a |
|
| -> ("allocator" ::: Maybe AllocationCallbacks) |
|
| -> io Instance |
vkCreateInstance - Create a new Vulkan instance
Description
createInstance verifies that the requested layers exist. If not,
createInstance will return
ERROR_LAYER_NOT_PRESENT. Next
createInstance verifies that the requested extensions are supported
(e.g. in the implementation or in any enabled instance layer) and if any
requested extension is not supported, createInstance must return
ERROR_EXTENSION_NOT_PRESENT. After
verifying and enabling the instance layers and extensions the
Instance object is created and returned to the
application. If a requested extension is only supported by a layer, both
the layer and the extension need to be specified at createInstance
time for the creation to succeed.
Valid Usage
- All
required extensions
for each extension in the
InstanceCreateInfo::ppEnabledExtensionNameslist must also be present in that list
Valid Usage (Implicit)
-
pCreateInfomust be a valid pointer to a validInstanceCreateInfostructure
- If
pAllocatoris notNULL,pAllocatormust be a valid pointer to a validAllocationCallbacksstructure -
pInstancemust be a valid pointer to aInstancehandle
Return Codes
See Also
VK_VERSION_1_0,
AllocationCallbacks,
Instance, InstanceCreateInfo
withInstance :: forall (a :: [Type]) io r. (Extendss InstanceCreateInfo a, PokeChain a, MonadIO io) => InstanceCreateInfo a -> Maybe AllocationCallbacks -> (io Instance -> (Instance -> io ()) -> r) -> r Source #
A convenience wrapper to make a compatible pair of calls to
createInstance and destroyInstance
To ensure that destroyInstance is always called: pass
bracket (or the allocate function from your
favourite resource management library) as the last argument.
To just extract the pair pass (,) as the last argument.
Arguments
| :: MonadIO io | |
| => Instance |
|
| -> ("allocator" ::: Maybe AllocationCallbacks) |
|
| -> io () |
vkDestroyInstance - Destroy an instance of Vulkan
Description
Prior to destroying an instance, an application is responsible for
destroying/freeing any Vulkan objects with explicit vkDestroy* or
vkFree* commands that were created using that instance, or any
PhysicalDevice object retrieved from it, as the
first parameter of the corresponding vkCreate* or vkAllocate*
command.
Valid Usage
- All child objects that were
created with
instanceor with aPhysicalDeviceretrieved from it, and that can be destroyed or freed, must have been destroyed or freed prior to destroyinginstance
- If
AllocationCallbackswere provided wheninstancewas created, a compatible set of callbacks must be provided here - If no
AllocationCallbackswere provided wheninstancewas created,pAllocatormust beNULL
Valid Usage (Implicit)
- If
instanceis notNULL,instancemust be a validInstancehandle
- If
pAllocatoris notNULL,pAllocatormust be a valid pointer to a validAllocationCallbacksstructure
Host Synchronization
- Host access to
instancemust be externally synchronized
- Host access to all
PhysicalDeviceobjects enumerated frominstancemust be externally synchronized
See Also
enumeratePhysicalDevices Source #
Arguments
| :: MonadIO io | |
| => Instance |
|
| -> io (Result, "physicalDevices" ::: Vector PhysicalDevice) |
vkEnumeratePhysicalDevices - Enumerates the physical devices accessible to a Vulkan instance
Description
If pPhysicalDevices is NULL, then the number of physical devices
available is returned in pPhysicalDeviceCount. Otherwise,
pPhysicalDeviceCount must point to a variable set by the application
to the number of elements in the pPhysicalDevices array, and on return
the variable is overwritten with the number of handles actually written
to pPhysicalDevices. If pPhysicalDeviceCount is less than the number
of physical devices available, at most pPhysicalDeviceCount structures
will be written, and INCOMPLETE will be
returned instead of SUCCESS, to indicate
that not all the available physical devices were returned.
Valid Usage (Implicit)
-
instancemust be a validInstancehandle
-
pPhysicalDeviceCountmust be a valid pointer to auint32_tvalue - If the
value referenced by
pPhysicalDeviceCountis not0, andpPhysicalDevicesis notNULL,pPhysicalDevicesmust be a valid pointer to an array ofpPhysicalDeviceCountPhysicalDevicehandles
Return Codes
See Also
Arguments
| :: MonadIO io | |
| => Device | |
| -> ("name" ::: ByteString) | |
| -> io PFN_vkVoidFunction |
vkGetDeviceProcAddr - Return a function pointer for a command
Description
The table below defines the various use cases for getDeviceProcAddr
and expected return value (“fp” is “function pointer”) for each case. A
valid returned function pointer (“fp”) must not be NULL.
The returned function pointer is of type
PFN_vkVoidFunction, and must be cast to
the type of the command being queried before use. The function pointer
must only be called with a dispatchable object (the first parameter)
that is device or a child of device.
device | pName | return value |
|---|---|---|
NULL | *1 | undefined |
| invalid device | *1 | undefined |
| device | NULL | undefined |
| device | requested core version2 device-level dispatchable command3 | fp4 |
| device | enabled extension device-level dispatchable command3 | fp4 |
| any other case, not covered above | NULL
|
getDeviceProcAddr behavior
- 1
- "*" means any representable value for the parameter (including
valid values, invalid values, and
NULL). - 2
- Device-level commands which are part of the core version specified
by
ApplicationInfo::apiVersionwhen creating the instance will always return a valid function pointer. If the maintenance5 feature is enabled, core commands beyond that version which are supported by the implementation will returnNULL, otherwise the implementation may either returnNULLor a function pointer. If a function pointer is returned, it must not be called. - 3
- In this function, device-level excludes all physical-device-level commands.
- 4
- The returned function pointer must only be called with a
dispatchable object (the first parameter) that is
deviceor a child ofdevicee.g.Device,Queue, orCommandBuffer.
Valid Usage (Implicit)
See Also
Arguments
| :: MonadIO io | |
| => Instance |
|
| -> ("name" ::: ByteString) |
|
| -> io PFN_vkVoidFunction |
vkGetInstanceProcAddr - Return a function pointer for a command
Description
getInstanceProcAddr itself is obtained in a platform- and loader-
specific manner. Typically, the loader library will export this command
as a function symbol, so applications can link against the loader
library, or load it dynamically and look up the symbol using
platform-specific APIs.
The table below defines the various use cases for getInstanceProcAddr
and expected return value (“fp” is “function pointer”) for each case. A
valid returned function pointer (“fp”) must not be NULL.
The returned function pointer is of type
PFN_vkVoidFunction, and must be cast to
the type of the command being queried before use.
instance | pName | return value |
|---|---|---|
| *1 | NULL | undefined |
invalid
non-NULL
instance | *1 | undefined |
NULL | global command2 | fp |
NULL | getInstanceProcAddr | fp5 |
| instance | getInstanceProcAddr | fp |
| instance | core /dispatchable command/ | fp3 |
| instance | enabled instance
extension
dispatchable command
for instance | fp3 |
| instance | available device
extension4
dispatchable command
for instance | fp3 |
| any other case, not covered above | NULL
|
getInstanceProcAddr behavior
- 1
- "*" means any representable value for the parameter (including
valid values, invalid values, and
NULL). - 2
- The global commands are:
enumerateInstanceVersion,enumerateInstanceExtensionProperties,enumerateInstanceLayerProperties, andcreateInstance. Dispatchable commands are all other commands which are not global. - 3
- The returned function pointer must only be called with a
dispatchable object (the first parameter) that is
instanceor a child ofinstance, e.g.Instance,PhysicalDevice,Device,Queue, orCommandBuffer. - 4
- An “available device extension” is a device extension supported by
any physical device enumerated by
instance. - 5
- Starting with Vulkan 1.2,
getInstanceProcAddrcan resolve itself with aNULLinstance pointer.
Valid Usage (Implicit)
- If
instanceis notNULL,instancemust be a validInstancehandle
See Also
getPhysicalDeviceProperties Source #
Arguments
| :: MonadIO io | |
| => PhysicalDevice |
|
| -> io PhysicalDeviceProperties |
vkGetPhysicalDeviceProperties - Returns properties of a physical device
Valid Usage (Implicit)
See Also
getPhysicalDeviceQueueFamilyProperties Source #
Arguments
| :: MonadIO io | |
| => PhysicalDevice |
|
| -> io ("queueFamilyProperties" ::: Vector QueueFamilyProperties) |
vkGetPhysicalDeviceQueueFamilyProperties - Reports properties of the queues of the specified physical device
Description
If pQueueFamilyProperties is NULL, then the number of queue families
available is returned in pQueueFamilyPropertyCount. Implementations
must support at least one queue family. Otherwise,
pQueueFamilyPropertyCount must point to a variable set by the
application to the number of elements in the pQueueFamilyProperties
array, and on return the variable is overwritten with the number of
structures actually written to pQueueFamilyProperties. If
pQueueFamilyPropertyCount is less than the number of queue families
available, at most pQueueFamilyPropertyCount structures will be
written.
Valid Usage (Implicit)
-
physicalDevicemust be a validPhysicalDevicehandle
-
pQueueFamilyPropertyCountmust be a valid pointer to auint32_tvalue -
If the value referenced by
pQueueFamilyPropertyCountis not0, andpQueueFamilyPropertiesis notNULL,pQueueFamilyPropertiesmust be a valid pointer to an array ofpQueueFamilyPropertyCountQueueFamilyPropertiesstructures
See Also
getPhysicalDeviceMemoryProperties Source #
Arguments
| :: MonadIO io | |
| => PhysicalDevice |
|
| -> io PhysicalDeviceMemoryProperties |
vkGetPhysicalDeviceMemoryProperties - Reports memory information for the specified physical device
Valid Usage (Implicit)
See Also
VK_VERSION_1_0,
PhysicalDevice, PhysicalDeviceMemoryProperties
getPhysicalDeviceFeatures Source #
Arguments
| :: MonadIO io | |
| => PhysicalDevice |
|
| -> io PhysicalDeviceFeatures |
vkGetPhysicalDeviceFeatures - Reports capabilities of a physical device
Valid Usage (Implicit)
See Also
getPhysicalDeviceFormatProperties Source #
Arguments
| :: MonadIO io | |
| => PhysicalDevice |
|
| -> Format |
|
| -> io FormatProperties |
vkGetPhysicalDeviceFormatProperties - Lists physical device’s format capabilities
Valid Usage
- If Vulkan 1.3
is not supported, the
maintenance5
feature is not supported, and the
ycbcr2plane444Formats
feature is not supported,
formatmust not beFORMAT_G8_B8R8_2PLANE_444_UNORM,FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16,FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16, orFORMAT_G16_B16R16_2PLANE_444_UNORM
Valid Usage (Implicit)
-
physicalDevicemust be a validPhysicalDevicehandle
-
formatmust be a validFormatvalue -
pFormatPropertiesmust be a valid pointer to aFormatPropertiesstructure
See Also
getPhysicalDeviceImageFormatProperties Source #
Arguments
| :: MonadIO io | |
| => PhysicalDevice |
|
| -> Format |
|
| -> ImageType |
|
| -> ImageTiling |
|
| -> ImageUsageFlags |
|
| -> ImageCreateFlags |
|
| -> io ImageFormatProperties |
vkGetPhysicalDeviceImageFormatProperties - Lists physical device’s image format capabilities
Description
The format, type, tiling, usage, and flags parameters
correspond to parameters that would be consumed by
createImage (as members of
ImageCreateInfo).
If format is not a supported image format, or if the combination of
format, type, tiling, usage, and flags is not supported for
images, then getPhysicalDeviceImageFormatProperties returns
ERROR_FORMAT_NOT_SUPPORTED.
The limitations on an image format that are reported by
getPhysicalDeviceImageFormatProperties have the following property: if
usage1 and usage2 of type
ImageUsageFlags are such that
the bits set in usage1 are a subset of the bits set in usage2, and
flags1 and flags2 of type
ImageCreateFlags are such that
the bits set in flags1 are a subset of the bits set in flags2, then
the limitations for usage1 and flags1 must be no more strict than
the limitations for usage2 and flags2, for all values of format,
type, and tiling.
If the hostImageCopy feature is supported, and:
Then the result of calls to getPhysicalDeviceImageFormatProperties
with identical parameters except for the inclusion of
IMAGE_USAGE_HOST_TRANSFER_BIT
in usage must be identical.
Return Codes
See Also
VK_VERSION_1_0,
Format,
ImageCreateFlags,
ImageFormatProperties, ImageTiling,
ImageType,
ImageUsageFlags,
PhysicalDevice
data PhysicalDeviceProperties Source #
VkPhysicalDeviceProperties - Structure specifying physical device properties
Description
The value of apiVersion may be different than the version returned
by enumerateInstanceVersion; either
higher or lower. In such cases, the application must not use
functionality that exceeds the version of Vulkan associated with a given
object. The pApiVersion parameter returned by
enumerateInstanceVersion is the
version associated with a Instance and its
children, except for a PhysicalDevice and its
children. PhysicalDeviceProperties::apiVersion is the version
associated with a PhysicalDevice and its
children.
The encoding of driverVersion is implementation-defined. It may not
use the same encoding as apiVersion. Applications should follow
information from the vendor on how to extract the version information
from driverVersion.
On implementations that claim support for the
Roadmap 2022
profile, the major and minor version expressed by apiVersion must be
at least Vulkan 1.3.
The vendorID and deviceID fields are provided to allow applications
to adapt to device characteristics that are not adequately exposed by
other Vulkan queries.
These may include performance profiles, hardware errata, or other characteristics.
The vendor identified by vendorID is the entity responsible for the
most salient characteristics of the underlying implementation of the
PhysicalDevice being queried.
For example, in the case of a discrete GPU implementation, this should be the GPU chipset vendor. In the case of a hardware accelerator integrated into a system-on-chip (SoC), this should be the supplier of the silicon IP used to create the accelerator.
If the vendor has a
PCI vendor ID, the low
16 bits of vendorID must contain that PCI vendor ID, and the
remaining bits must be zero. Otherwise, the value returned must be a
valid Khronos vendor ID, obtained as described in the
Vulkan Documentation and Extensions: Procedures and Conventions
document in the section “Registering a Vendor ID with Khronos”. Khronos
vendor IDs are allocated starting at 0x10000, to distinguish them from
the PCI vendor ID namespace. Khronos vendor IDs are symbolically defined
in the VendorId type.
The vendor is also responsible for the value returned in deviceID. If
the implementation is driven primarily by a
PCI device with a
PCI device ID, the low 16 bits of deviceID
must contain that PCI device ID, and the remaining bits must be
zero. Otherwise, the choice of what values to return may be dictated
by operating system or platform policies - but should uniquely
identify both the device version and any major configuration options
(for example, core count in the case of multicore devices).
The same device ID should be used for all physical implementations of that device version and configuration. For example, all uses of a specific silicon IP GPU version and configuration should use the same device ID, even if those uses occur in different SoCs.
See Also
VK_VERSION_1_0,
PhysicalDeviceLimits,
PhysicalDeviceProperties2,
PhysicalDeviceSparseProperties,
PhysicalDeviceType,
getPhysicalDeviceProperties
Constructors
| PhysicalDeviceProperties | |
Fields
| |
Instances
data ApplicationInfo Source #
VkApplicationInfo - Structure specifying application information
Description
Vulkan 1.0 implementations were required to return
ERROR_INCOMPATIBLE_DRIVER if apiVersion
was larger than 1.0. Implementations that support Vulkan 1.1 or later
must not return ERROR_INCOMPATIBLE_DRIVER
for any value of apiVersion .
Because Vulkan 1.0 implementations may fail with
ERROR_INCOMPATIBLE_DRIVER, applications
should determine the version of Vulkan available before calling
createInstance. If the getInstanceProcAddr returns NULL for
enumerateInstanceVersion, it is a
Vulkan 1.0 implementation. Otherwise, the application can call
enumerateInstanceVersion to
determine the version of Vulkan.
As long as the instance supports at least Vulkan 1.1, an application can use different versions of Vulkan with an instance than it does with a device or physical device.
The Khronos validation layers will treat apiVersion as the highest API
version the application targets, and will validate API usage against the
minimum of that version and the implementation version (instance or
device, depending on context). If an application tries to use
functionality from a greater version than this, a validation error will
be triggered.
For example, if the instance supports Vulkan 1.1 and three physical
devices support Vulkan 1.0, Vulkan 1.1, and Vulkan 1.2, respectively,
and if the application sets apiVersion to 1.2, the application can
use the following versions of Vulkan:
- Vulkan 1.0 can be used with the instance and with all physical devices.
- Vulkan 1.1 can be used with the instance and with the physical devices that support Vulkan 1.1 and Vulkan 1.2.
- Vulkan 1.2 can be used with the physical device that supports Vulkan 1.2.
If we modify the above example so that the application sets apiVersion
to 1.1, then the application must not use Vulkan 1.2 functionality on
the physical device that supports Vulkan 1.2.
Providing a NULL InstanceCreateInfo::pApplicationInfo or providing
an apiVersion of 0 is equivalent to providing an apiVersion of
VK_MAKE_API_VERSION(0,1,0,0).
Valid Usage
- If
apiVersionis not0, then it must be greater than or equal toAPI_VERSION_1_0
Valid Usage (Implicit)
-
sTypemust beSTRUCTURE_TYPE_APPLICATION_INFO
-
pNextmust beNULL - If
pApplicationNameis notNULL,pApplicationNamemust be a null-terminated UTF-8 string - If
pEngineNameis notNULL,pEngineNamemust be a null-terminated UTF-8 string
See Also
Constructors
| ApplicationInfo | |
Fields
| |
Instances
| Show ApplicationInfo Source # | |
Defined in Vulkan.Core10.DeviceInitialization Methods showsPrec :: Int -> ApplicationInfo -> ShowS # show :: ApplicationInfo -> String # showList :: [ApplicationInfo] -> ShowS # | |
| FromCStruct ApplicationInfo Source # | |
Defined in Vulkan.Core10.DeviceInitialization Methods peekCStruct :: Ptr ApplicationInfo -> IO ApplicationInfo Source # | |
| ToCStruct ApplicationInfo Source # | |
Defined in Vulkan.Core10.DeviceInitialization Methods withCStruct :: ApplicationInfo -> (Ptr ApplicationInfo -> IO b) -> IO b Source # pokeCStruct :: Ptr ApplicationInfo -> ApplicationInfo -> IO b -> IO b Source # withZeroCStruct :: (Ptr ApplicationInfo -> IO b) -> IO b Source # pokeZeroCStruct :: Ptr ApplicationInfo -> IO b -> IO b Source # cStructSize :: Int Source # | |
| Zero ApplicationInfo Source # | |
Defined in Vulkan.Core10.DeviceInitialization Methods | |
data InstanceCreateInfo (es :: [Type]) Source #
VkInstanceCreateInfo - Structure specifying parameters of a newly created instance
Description
To capture events that occur while creating or destroying an instance,
an application can link a
DebugReportCallbackCreateInfoEXT
structure or a
DebugUtilsMessengerCreateInfoEXT
structure to the pNext chain of the InstanceCreateInfo structure
passed to createInstance. This callback is only valid for the duration
of the createInstance and the destroyInstance call. Use
createDebugReportCallbackEXT or
createDebugUtilsMessengerEXT to
create persistent callback objects.
An application can add additional drivers by including the
DirectDriverLoadingListLUNARG
structure in the pNext chain of the InstanceCreateInfo structure
passed to createInstance.
DirectDriverLoadingListLUNARG
allows applications to ship drivers with themselves. Only drivers that
are designed to work with it should be used, such as drivers that
implement Vulkan in software or that implement Vulkan by translating it
to a different API. Any driver that requires installation should not be
used, such as hardware drivers.
Valid Usage
- If the
pNextchain ofInstanceCreateInfoincludes aDebugReportCallbackCreateInfoEXTstructure, the list of enabled extensions inppEnabledExtensionNamesmust containVK_EXT_debug_report
- If the
pNextchain ofInstanceCreateInfoincludes aDebugUtilsMessengerCreateInfoEXTstructure, the list of enabled extensions inppEnabledExtensionNamesmust containVK_EXT_debug_utils - If the
pNextchain includes aExportMetalObjectCreateInfoEXTstructure, itsexportObjectTypemember must be eitherEXPORT_METAL_OBJECT_TYPE_METAL_DEVICE_BIT_EXTorEXPORT_METAL_OBJECT_TYPE_METAL_COMMAND_QUEUE_BIT_EXT - If
flagshas theINSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHRbit set, the list of enabled extensions inppEnabledExtensionNamesmust containVK_KHR_portability_enumeration - If the
pNextchain ofInstanceCreateInfoincludes aDirectDriverLoadingListLUNARGstructure, the list of enabled extensions inppEnabledExtensionNamesmust contain VK_LUNARG_direct_driver_loading - If the
pNextchain ofInstanceCreateInfoincludes aLayerSettingsCreateInfoEXTstructure, the list of enabled extensions inppEnabledExtensionNamesmust contain VK_EXT_layer_settings - If the
pNextchain ofInstanceCreateInfoincludes aValidationFeaturesEXTstructure, the list of enabled extensions inppEnabledExtensionNamesmust contain VK_EXT_validation_features - If the
pNextchain ofInstanceCreateInfoincludes aValidationFlagsEXTstructure, the list of enabled extensions inppEnabledExtensionNamesmust contain VK_EXT_validation_flags
Valid Usage (Implicit)
-
sTypemust beSTRUCTURE_TYPE_INSTANCE_CREATE_INFO
- Each
pNextmember of any structure (including this one) in thepNextchain must be eitherNULLor a pointer to a valid instance ofDebugReportCallbackCreateInfoEXT,DebugUtilsMessengerCreateInfoEXT,DirectDriverLoadingListLUNARG,ExportMetalObjectCreateInfoEXT,LayerSettingsCreateInfoEXT,ValidationFeaturesEXT, orValidationFlagsEXT - The
sTypevalue of each structure in thepNextchain must be unique, with the exception of structures of typeDebugUtilsMessengerCreateInfoEXT,ExportMetalObjectCreateInfoEXT, orLayerSettingsCreateInfoEXT -
flagsmust be a valid combination ofInstanceCreateFlagBitsvalues - If
pApplicationInfois notNULL,pApplicationInfomust be a valid pointer to a validApplicationInfostructure - If
enabledLayerCountis not0,ppEnabledLayerNamesmust be a valid pointer to an array ofenabledLayerCountnull-terminated UTF-8 strings - If
enabledExtensionCountis not0,ppEnabledExtensionNamesmust be a valid pointer to an array ofenabledExtensionCountnull-terminated UTF-8 strings
See Also
VK_VERSION_1_0,
ApplicationInfo,
InstanceCreateFlags,
StructureType, createInstance
Constructors
| InstanceCreateInfo | |
Fields
| |
Instances
data QueueFamilyProperties Source #
VkQueueFamilyProperties - Structure providing information about a queue family
Description
The value returned in minImageTransferGranularity has a unit of
compressed texel blocks for images having a block-compressed format, and
a unit of texels otherwise.
Possible values of minImageTransferGranularity are:
(0,0,0) specifies that only whole mip levels must be transferred using the image transfer operations on the corresponding queues. In this case, the following restrictions apply to all offset and extent parameters of image transfer operations:
(Ax, Ay, Az) where Ax, Ay, and Az are all integer powers of two. In this case the following restrictions apply to all image transfer operations:
x,y, andzof aOffset3Dparameter must be integer multiples of Ax, Ay, and Az, respectively.widthof aExtent3Dparameter must be an integer multiple of Ax, or elsex+widthmust equal the width of the image subresource corresponding to the parameter.heightof aExtent3Dparameter must be an integer multiple of Ay, or elsey+heightmust equal the height of the image subresource corresponding to the parameter.depthof aExtent3Dparameter must be an integer multiple of Az, or elsez+depthmust equal the depth of the image subresource corresponding to the parameter.- If the format of the image corresponding to the parameters is one of the block-compressed formats then for the purposes of the above calculations the granularity must be scaled up by the compressed texel block dimensions.
Queues supporting graphics and/or compute operations must report
(1,1,1) in minImageTransferGranularity, meaning that there are no
additional restrictions on the granularity of image transfer operations
for these queues. Other queues supporting image transfer operations are
only required to support whole mip level transfers, thus
minImageTransferGranularity for queues belonging to such queue
families may be (0,0,0).
The Device Memory section describes memory properties queried from the physical device.
For physical device feature queries see the Features chapter.
See Also
VK_VERSION_1_0,
Extent3D,
QueueFamilyProperties2,
QueueFlags,
getPhysicalDeviceQueueFamilyProperties
Constructors
| QueueFamilyProperties | |
Fields
| |
Instances
data PhysicalDeviceMemoryProperties Source #
VkPhysicalDeviceMemoryProperties - Structure specifying physical device memory properties
Description
The PhysicalDeviceMemoryProperties structure describes a number of
memory heaps as well as a number of memory types that can be used
to access memory allocated in those heaps. Each heap describes a memory
resource of a particular size, and each memory type describes a set of
memory properties (e.g. host cached vs. uncached) that can be used
with a given memory heap. Allocations using a particular memory type
will consume resources from the heap indicated by that memory type’s
heap index. More than one memory type may share each heap, and the
heaps and memory types provide a mechanism to advertise an accurate size
of the physical memory resources while allowing the memory to be used
with a variety of different properties.
The number of memory heaps is given by memoryHeapCount and is less
than or equal to MAX_MEMORY_HEAPS. Each
heap is described by an element of the memoryHeaps array as a
MemoryHeap structure. The number of memory types available across all
memory heaps is given by memoryTypeCount and is less than or equal to
MAX_MEMORY_TYPES. Each memory type is
described by an element of the memoryTypes array as a MemoryType
structure.
At least one heap must include
MEMORY_HEAP_DEVICE_LOCAL_BIT in
MemoryHeap::flags. If there are multiple heaps that all have similar
performance characteristics, they may all include
MEMORY_HEAP_DEVICE_LOCAL_BIT.
In a unified memory architecture (UMA) system there is often only a
single memory heap which is considered to be equally “local” to the host
and to the device, and such an implementation must advertise the heap
as device-local.
Memory contents within a tile memory heap, denoted by
MEMORY_HEAP_TILE_MEMORY_BIT_QCOM,
are only visible across the command buffers executed in a single command
buffer submission batch within a queueSubmit or
queueSubmit2 call.
If the
PhysicalDeviceTileMemoryHeapPropertiesQCOM::queueSubmitBoundary
property is set, the visibility is extended across all batches in the
submit call. Memory contents are discarded and made undefined after the
respective submission batch or submit call. Tile memory may have
different performance characteristics than non tile memory. Tile memory
can be used simultaneously by command buffers in other queues without
invalidating each others contents. Collectively, these rules define the
tile memory scope.
Tile memory heaps work differently than most heaps as it is allowing addressing on device cache memory. Therefore, the heap’s address space is aliased across the different queues, with each queue retaining its individual copy of the heap. The implementation takes care of any required saving and restoring of the tile memory contents.
Effectively, this means that the same address in the heap in different queues have simultaneously different defined contents and the contents has a lifespan scoped to the submit or batch for that specific queues.
Each memory type returned by getPhysicalDeviceMemoryProperties must
have its propertyFlags set to one of the following values:
- 0
MEMORY_PROPERTY_HOST_VISIBLE_BIT|MEMORY_PROPERTY_HOST_COHERENT_BITMEMORY_PROPERTY_HOST_VISIBLE_BIT|MEMORY_PROPERTY_HOST_CACHED_BITMEMORY_PROPERTY_HOST_VISIBLE_BIT|MEMORY_PROPERTY_HOST_CACHED_BIT|MEMORY_PROPERTY_HOST_COHERENT_BITMEMORY_PROPERTY_DEVICE_LOCAL_BITMEMORY_PROPERTY_DEVICE_LOCAL_BIT|MEMORY_PROPERTY_HOST_VISIBLE_BIT|MEMORY_PROPERTY_HOST_COHERENT_BITMEMORY_PROPERTY_DEVICE_LOCAL_BIT|MEMORY_PROPERTY_HOST_VISIBLE_BIT|MEMORY_PROPERTY_HOST_CACHED_BITMEMORY_PROPERTY_DEVICE_LOCAL_BIT|MEMORY_PROPERTY_HOST_VISIBLE_BIT|MEMORY_PROPERTY_HOST_CACHED_BIT|MEMORY_PROPERTY_HOST_COHERENT_BITMEMORY_PROPERTY_DEVICE_LOCAL_BIT|MEMORY_PROPERTY_LAZILY_ALLOCATED_BITMEMORY_PROPERTY_PROTECTED_BITMEMORY_PROPERTY_PROTECTED_BIT|MEMORY_PROPERTY_DEVICE_LOCAL_BITMEMORY_PROPERTY_HOST_VISIBLE_BIT|MEMORY_PROPERTY_HOST_COHERENT_BIT|MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMDMEMORY_PROPERTY_HOST_VISIBLE_BIT|MEMORY_PROPERTY_HOST_CACHED_BIT|MEMORY_PROPERTY_HOST_COHERENT_BIT|MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMDMEMORY_PROPERTY_DEVICE_LOCAL_BIT|MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMDMEMORY_PROPERTY_DEVICE_LOCAL_BIT|MEMORY_PROPERTY_HOST_VISIBLE_BIT|MEMORY_PROPERTY_HOST_COHERENT_BIT|MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMDMEMORY_PROPERTY_DEVICE_LOCAL_BIT|MEMORY_PROPERTY_HOST_VISIBLE_BIT|MEMORY_PROPERTY_HOST_CACHED_BIT|MEMORY_PROPERTY_HOST_COHERENT_BIT|MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMDMEMORY_PROPERTY_HOST_VISIBLE_BIT|MEMORY_PROPERTY_HOST_COHERENT_BIT|MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD|MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMDMEMORY_PROPERTY_HOST_VISIBLE_BIT|MEMORY_PROPERTY_HOST_CACHED_BIT|MEMORY_PROPERTY_HOST_COHERENT_BIT|MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD|MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMDMEMORY_PROPERTY_DEVICE_LOCAL_BIT|MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD|MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMDMEMORY_PROPERTY_DEVICE_LOCAL_BIT|MEMORY_PROPERTY_HOST_VISIBLE_BIT|MEMORY_PROPERTY_HOST_COHERENT_BIT|MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD|MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMDMEMORY_PROPERTY_DEVICE_LOCAL_BIT|MEMORY_PROPERTY_HOST_VISIBLE_BIT|MEMORY_PROPERTY_HOST_CACHED_BIT|MEMORY_PROPERTY_HOST_COHERENT_BIT|MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD|MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMDMEMORY_PROPERTY_DEVICE_LOCAL_BIT|MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV
There must be at least one memory type with both the
MEMORY_PROPERTY_HOST_VISIBLE_BIT
and
MEMORY_PROPERTY_HOST_COHERENT_BIT
bits set in its propertyFlags. There must be at least one memory
type with the
MEMORY_PROPERTY_DEVICE_LOCAL_BIT
bit set in its propertyFlags. If the
deviceCoherentMemory
feature is enabled, there must be at least one memory type with the
MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD
bit set in its propertyFlags.
For each pair of elements X and Y returned in memoryTypes,
X must be placed at a lower index position than Y if:
- the set of bit flags returned in the
propertyFlagsmember of X is a strict subset of the set of bit flags returned in thepropertyFlagsmember of Y; or - the
propertyFlagsmembers of X and Y are equal, and X belongs to a memory heap with greater performance (as determined in an implementation-specific manner) ; or - the
propertyFlagsmembers of Y includesMEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMDorMEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMDand X does not
There is no ordering requirement between X and Y elements for
the case their propertyFlags members are not in a subset relation.
That potentially allows more than one possible way to order the same set
of memory types. Notice that the
list of all allowed memory property flag combinations
is written in a valid order. But if instead
MEMORY_PROPERTY_DEVICE_LOCAL_BIT
was before
MEMORY_PROPERTY_HOST_VISIBLE_BIT
|
MEMORY_PROPERTY_HOST_COHERENT_BIT,
the list would still be in a valid order.
There may be a performance penalty for using device coherent or uncached device memory types, and using these accidentally is undesirable. In order to avoid this, memory types with these properties always appear at the end of the list; but are subject to the same rules otherwise.
This ordering requirement enables applications to use a simple search loop to select the desired memory type along the lines of:
// Find a memory in `memoryTypeBitsRequirement` that includes all of `requiredProperties`
int32_t findProperties(const VkPhysicalDeviceMemoryProperties* pMemoryProperties,
uint32_t memoryTypeBitsRequirement,
VkMemoryPropertyFlags requiredProperties) {
const uint32_t memoryCount = pMemoryProperties->memoryTypeCount;
for (uint32_t memoryIndex = 0; memoryIndex < memoryCount; ++memoryIndex) {
const uint32_t memoryTypeBits = (1 << memoryIndex);
const bool isRequiredMemoryType = memoryTypeBitsRequirement & memoryTypeBits;
const VkMemoryPropertyFlags properties =
pMemoryProperties->memoryTypes[memoryIndex].propertyFlags;
const bool hasRequiredProperties =
(properties & requiredProperties) == requiredProperties;
if (isRequiredMemoryType && hasRequiredProperties)
return static_cast<int32_t>(memoryIndex);
}
// failed to find memory type
return -1;
}
// Try to find an optimal memory type, or if it does not exist try fallback memory type
// `device` is the VkDevice
// `image` is the VkImage that requires memory to be bound
// `memoryProperties` properties as returned by vkGetPhysicalDeviceMemoryProperties
// `requiredProperties` are the property flags that must be present
// `optimalProperties` are the property flags that are preferred by the application
VkMemoryRequirements memoryRequirements;
vkGetImageMemoryRequirements(device, image, &memoryRequirements);
int32_t memoryType =
findProperties(&memoryProperties, memoryRequirements.memoryTypeBits, optimalProperties);
if (memoryType == -1) // not found; try fallback properties
memoryType =
findProperties(&memoryProperties, memoryRequirements.memoryTypeBits, requiredProperties);See Also
VK_VERSION_1_0,
MemoryHeap, MemoryType,
PhysicalDeviceMemoryProperties2,
getPhysicalDeviceMemoryProperties
Constructors
| PhysicalDeviceMemoryProperties | |
Fields
| |
Instances
data MemoryType Source #
VkMemoryType - Structure specifying memory type
See Also
VK_VERSION_1_0,
MemoryPropertyFlags,
PhysicalDeviceMemoryProperties
Constructors
| MemoryType | |
Fields
| |
Instances
data MemoryHeap Source #
VkMemoryHeap - Structure specifying a memory heap
See Also
VK_VERSION_1_0,
DeviceSize,
MemoryHeapFlags,
PhysicalDeviceMemoryProperties
Constructors
| MemoryHeap | |
Fields
| |
Instances
data FormatProperties Source #
VkFormatProperties - Structure specifying image format properties
Description
If no format feature flags are supported, the format itself is not supported, and images of that format cannot be created.
If format is block-compressed,
requires sampler Y′CBCR conversion,
or is a depth/stencil format then bufferFeatures must not support
any features for the format.
If format is not a multi-plane format then linearTilingFeatures and
optimalTilingFeatures must not contain
FORMAT_FEATURE_DISJOINT_BIT.
See Also
VK_VERSION_1_0,
FormatFeatureFlags,
FormatProperties2,
getPhysicalDeviceFormatProperties
Constructors
| FormatProperties | |
Fields
| |
Instances
data ImageFormatProperties Source #
VkImageFormatProperties - Structure specifying an image format properties
Members
maxExtentare the maximum image dimensions. See the Allowed Extent Values section below for how these values are constrained bytype.
maxMipLevelsis the maximum number of mipmap levels.maxMipLevelsmust be equal to the number of levels in the complete mipmap chain based on themaxExtent.width,maxExtent.height, andmaxExtent.depth, except when one of the following conditions is true, in which case it may instead be1:getPhysicalDeviceImageFormatProperties::tilingwasIMAGE_TILING_LINEARPhysicalDeviceImageFormatInfo2::tilingwasIMAGE_TILING_DRM_FORMAT_MODIFIER_EXT- the
PhysicalDeviceImageFormatInfo2::pNextchain included aPhysicalDeviceExternalImageFormatInfostructure with a handle type included in thehandleTypesmember for which mipmap image support is not required - image
formatis one of the formats that require a sampler Y′CBCR conversion flagscontainsIMAGE_CREATE_SUBSAMPLED_BIT_EXT
maxArrayLayersis the maximum number of array layers.maxArrayLayersmust be no less thanPhysicalDeviceLimits::maxImageArrayLayers, except when one of the following conditions is true, in which case it may instead be1:tilingisIMAGE_TILING_LINEARtilingisIMAGE_TILING_OPTIMALandtypeisIMAGE_TYPE_3Dformatis one of the formats that require a sampler Y′CBCR conversion
- If
tilingisIMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, thenmaxArrayLayersmust not be 0. sampleCountsis a bitmask ofSampleCountFlagBitsspecifying all the supported sample counts for this image as described below.maxResourceSizeis an upper bound on the total image size in bytes, inclusive of all image subresources. Implementations may have an address space limit on total size of a resource, which is advertised by this property.maxResourceSizemust be at least 231.
Description
There is no mechanism to query the size of an image before creating it,
to compare that size against maxResourceSize. If an application
attempts to create an image that exceeds this limit, the creation will
fail and createImage will return
ERROR_OUT_OF_DEVICE_MEMORY. While the
advertised limit must be at least 231, it may not be possible to
create an image that approaches that size, particularly for
IMAGE_TYPE_1D.
If the combination of parameters to
getPhysicalDeviceImageFormatProperties is not supported by the
implementation for use in createImage, then all
members of ImageFormatProperties will be filled with zero.
Filling ImageFormatProperties with zero for unsupported formats is an
exception to the usual rule that output structures have undefined
contents on error. This exception was unintentional, but is preserved
for backwards compatibility.
See Also
VK_VERSION_1_0,
DeviceSize,
Extent3D,
ExternalImageFormatPropertiesNV,
ImageFormatProperties2,
SampleCountFlags,
getPhysicalDeviceImageFormatProperties
Constructors
| ImageFormatProperties | |
Fields | |
Instances
data PhysicalDeviceFeatures Source #
VkPhysicalDeviceFeatures - Structure describing the fine-grained features that can be supported by an implementation
Members
This structure describes the following features:
See Also
VK_VERSION_1_0,
Bool32,
DeviceCreateInfo,
PhysicalDeviceFeatures2,
getPhysicalDeviceFeatures
Constructors
| PhysicalDeviceFeatures | |
Fields
| |
Instances
data PhysicalDeviceSparseProperties Source #
VkPhysicalDeviceSparseProperties - Structure specifying physical device sparse memory properties
See Also
Constructors
| PhysicalDeviceSparseProperties | |
Fields
| |
Instances
data PhysicalDeviceLimits Source #
VkPhysicalDeviceLimits - Structure reporting implementation-dependent physical device limits
Members
The PhysicalDeviceLimits are properties of the physical device. These
are available in the limits member of the PhysicalDeviceProperties
structure which is returned from getPhysicalDeviceProperties.
See Also
VK_VERSION_1_0,
Bool32,
DeviceSize, PhysicalDeviceProperties,
SampleCountFlags
Constructors
| PhysicalDeviceLimits | |
Fields
| |
Instances
VkInstance - Opaque handle to an instance object
See Also
PFN_vkGetInstanceProcAddrLUNARG,
VK_DEFINE_HANDLE,
VK_VERSION_1_0,
createAndroidSurfaceKHR,
createDebugReportCallbackEXT,
createDebugUtilsMessengerEXT,
createDirectFBSurfaceEXT,
createDisplayPlaneSurfaceKHR,
createHeadlessSurfaceEXT,
createIOSSurfaceMVK,
createImagePipeSurfaceFUCHSIA,
createInstance,
createMacOSSurfaceMVK,
createMetalSurfaceEXT,
createScreenSurfaceQNX,
createStreamDescriptorSurfaceGGP,
vkCreateSurfaceOHOS,
vkCreateUbmSurfaceSEC,
createViSurfaceNN,
createWaylandSurfaceKHR,
createWin32SurfaceKHR,
createXcbSurfaceKHR,
createXlibSurfaceKHR,
debugReportMessageEXT,
destroyDebugReportCallbackEXT,
destroyDebugUtilsMessengerEXT,
destroyInstance,
destroySurfaceKHR,
enumeratePhysicalDeviceGroups,
enumeratePhysicalDeviceGroups,
enumeratePhysicalDevices,
getInstanceProcAddr,
submitDebugUtilsMessageEXT
Constructors
| Instance | |
Fields | |
Instances
| Eq Instance Source # | |
| Show Instance Source # | |
| HasObjectType Instance Source # | |
Defined in Vulkan.Core10.Handles Methods objectTypeAndHandle :: Instance -> (ObjectType, Word64) Source # | |
| IsHandle Instance Source # | |
Defined in Vulkan.Core10.Handles | |
| Zero Instance Source # | |
Defined in Vulkan.Core10.Handles | |
data PhysicalDevice Source #
VkPhysicalDevice - Opaque handle to a physical device object
See Also
VK_DEFINE_HANDLE,
VK_VERSION_1_0,
DeviceGroupDeviceCreateInfo,
PhysicalDeviceGroupProperties,
acquireDrmDisplayEXT,
acquireWinrtDisplayNV,
acquireXlibDisplayEXT,
createDevice,
createDisplayModeKHR,
enumerateDeviceExtensionProperties,
enumerateDeviceLayerProperties,
vkEnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM,
enumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR,
enumeratePhysicalDevices,
getDisplayModeProperties2KHR,
getDisplayModePropertiesKHR,
getDisplayPlaneCapabilities2KHR,
getDisplayPlaneCapabilitiesKHR,
getDisplayPlaneSupportedDisplaysKHR,
getDrmDisplayEXT,
getPhysicalDeviceCalibrateableTimeDomainsKHR,
getPhysicalDeviceCalibrateableTimeDomainsKHR,
getPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV,
getPhysicalDeviceCooperativeMatrixPropertiesKHR,
getPhysicalDeviceCooperativeMatrixPropertiesNV,
getPhysicalDeviceCooperativeVectorPropertiesNV,
getPhysicalDeviceDescriptorSizeEXT,
getPhysicalDeviceDirectFBPresentationSupportEXT,
getPhysicalDeviceDisplayPlaneProperties2KHR,
getPhysicalDeviceDisplayPlanePropertiesKHR,
getPhysicalDeviceDisplayProperties2KHR,
getPhysicalDeviceDisplayPropertiesKHR,
getPhysicalDeviceExternalBufferProperties,
getPhysicalDeviceExternalBufferProperties,
getPhysicalDeviceExternalFenceProperties,
getPhysicalDeviceExternalFenceProperties,
getPhysicalDeviceExternalImageFormatPropertiesNV,
getPhysicalDeviceExternalSemaphoreProperties,
getPhysicalDeviceExternalSemaphoreProperties,
getPhysicalDeviceExternalTensorPropertiesARM,
getPhysicalDeviceFeatures,
getPhysicalDeviceFeatures2,
getPhysicalDeviceFeatures2,
getPhysicalDeviceFormatProperties,
getPhysicalDeviceFormatProperties2,
getPhysicalDeviceFormatProperties2,
getPhysicalDeviceFragmentShadingRatesKHR,
getPhysicalDeviceImageFormatProperties,
getPhysicalDeviceImageFormatProperties2,
getPhysicalDeviceImageFormatProperties2,
getPhysicalDeviceMemoryProperties,
getPhysicalDeviceMemoryProperties2,
getPhysicalDeviceMemoryProperties2,
getPhysicalDeviceMultisamplePropertiesEXT,
getPhysicalDeviceOpticalFlowImageFormatsNV,
getPhysicalDevicePresentRectanglesKHR,
getPhysicalDeviceProperties,
getPhysicalDeviceProperties2,
getPhysicalDeviceProperties2,
getPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM,
getPhysicalDeviceQueueFamilyDataGraphPropertiesARM,
getPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR,
getPhysicalDeviceQueueFamilyProperties,
getPhysicalDeviceQueueFamilyProperties2,
getPhysicalDeviceQueueFamilyProperties2,
getPhysicalDeviceScreenPresentationSupportQNX,
getPhysicalDeviceSparseImageFormatProperties,
getPhysicalDeviceSparseImageFormatProperties2,
getPhysicalDeviceSparseImageFormatProperties2,
getPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV,
getPhysicalDeviceSurfaceCapabilities2EXT,
getPhysicalDeviceSurfaceCapabilities2KHR,
getPhysicalDeviceSurfaceCapabilitiesKHR,
getPhysicalDeviceSurfaceFormats2KHR,
getPhysicalDeviceSurfaceFormatsKHR,
getPhysicalDeviceSurfacePresentModes2EXT,
getPhysicalDeviceSurfacePresentModesKHR,
getPhysicalDeviceSurfaceSupportKHR,
getPhysicalDeviceToolProperties,
getPhysicalDeviceToolProperties,
vkGetPhysicalDeviceUbmPresentationSupportSEC,
vkGetPhysicalDeviceVideoCapabilitiesKHR,
vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR,
vkGetPhysicalDeviceVideoFormatPropertiesKHR,
getPhysicalDeviceWaylandPresentationSupportKHR,
getPhysicalDeviceWin32PresentationSupportKHR,
getPhysicalDeviceXcbPresentationSupportKHR,
getPhysicalDeviceXlibPresentationSupportKHR,
getRandROutputDisplayEXT,
getWinrtDisplayNV,
releaseDisplayEXT
Constructors
| PhysicalDevice | |
Fields | |
Instances
| Eq PhysicalDevice Source # | |
Defined in Vulkan.Core10.Handles Methods (==) :: PhysicalDevice -> PhysicalDevice -> Bool # (/=) :: PhysicalDevice -> PhysicalDevice -> Bool # | |
| Show PhysicalDevice Source # | |
Defined in Vulkan.Core10.Handles Methods showsPrec :: Int -> PhysicalDevice -> ShowS # show :: PhysicalDevice -> String # showList :: [PhysicalDevice] -> ShowS # | |
| HasObjectType PhysicalDevice Source # | |
Defined in Vulkan.Core10.Handles Methods objectTypeAndHandle :: PhysicalDevice -> (ObjectType, Word64) Source # | |
| IsHandle PhysicalDevice Source # | |
Defined in Vulkan.Core10.Handles | |
| Zero PhysicalDevice Source # | |
Defined in Vulkan.Core10.Handles Methods | |
data AllocationCallbacks Source #
VkAllocationCallbacks - Structure containing callback function pointers for memory allocation
Description
pUserDatais NULL or an application-defined user data pointer to be interpreted by the implementation of the callbacks. When any of the callbacks inAllocationCallbacksare called, the Vulkan implementation will pass this value as the first parameter to the callback. This value can vary each time an allocator is passed into a command, even when the same object takes an allocator in multiple commands.
pfnAllocationis aPFN_vkAllocationFunctionpointer to an application-defined memory allocation function.pfnReallocationis aPFN_vkReallocationFunctionpointer to an application-defined memory reallocation function.pfnFreeis aPFN_vkFreeFunctionpointer to an application-defined memory free function.pfnInternalAllocationis aPFN_vkInternalAllocationNotificationpointer to an application-defined function that is called by the implementation when the implementation makes internal allocations.pfnInternalFreeis aPFN_vkInternalFreeNotificationpointer to an application-defined function that is called by the implementation when the implementation frees internal allocations.
Valid Usage
-
pfnAllocationmust be a valid pointer to a valid application-definedPFN_vkAllocationFunction
-
pfnReallocationmust be a valid pointer to a valid application-definedPFN_vkReallocationFunction -
pfnFreemust be a valid pointer to a valid application-definedPFN_vkFreeFunction - If either
of
pfnInternalAllocationorpfnInternalFreeis notNULL, both must be valid callbacks
See Also
PFN_vkAllocationFunction,
PFN_vkFreeFunction,
PFN_vkInternalAllocationNotification,
PFN_vkInternalFreeNotification,
PFN_vkReallocationFunction,
VK_VERSION_1_0,
allocateMemory,
createAccelerationStructureKHR,
createAccelerationStructureNV,
createAndroidSurfaceKHR,
createBuffer,
createBufferCollectionFUCHSIA,
createBufferView,
createCommandPool,
createComputePipelines,
createCuFunctionNVX,
createCuModuleNVX,
createCudaFunctionNV,
createCudaModuleNV,
createDataGraphPipelineSessionARM,
createDataGraphPipelinesARM,
createDebugReportCallbackEXT,
createDebugUtilsMessengerEXT,
createDeferredOperationKHR,
createDescriptorPool,
createDescriptorSetLayout,
createDescriptorUpdateTemplate,
createDescriptorUpdateTemplate,
createDevice,
createDirectFBSurfaceEXT,
createDisplayModeKHR,
createDisplayPlaneSurfaceKHR,
createEvent,
createExecutionGraphPipelinesAMDX,
createExternalComputeQueueNV,
createFence,
createFramebuffer,
createGraphicsPipelines,
createHeadlessSurfaceEXT,
createIOSSurfaceMVK,
createImage,
createImagePipeSurfaceFUCHSIA,
createImageView,
createIndirectCommandsLayoutEXT,
createIndirectCommandsLayoutNV,
createIndirectExecutionSetEXT,
createInstance,
createMacOSSurfaceMVK,
createMetalSurfaceEXT,
createMicromapEXT,
createOpticalFlowSessionNV,
createPipelineBinariesKHR,
createPipelineCache,
createPipelineLayout,
createPrivateDataSlot,
createPrivateDataSlot,
createQueryPool,
createRayTracingPipelinesKHR,
createRayTracingPipelinesNV,
createRenderPass,
createRenderPass2,
createRenderPass2,
createSampler,
createSamplerYcbcrConversion,
createSamplerYcbcrConversion,
createScreenSurfaceQNX,
createSemaphore,
createShaderModule,
createShadersEXT,
createSharedSwapchainsKHR,
createStreamDescriptorSurfaceGGP,
vkCreateSurfaceOHOS,
createSwapchainKHR,
createTensorARM,
createTensorViewARM,
vkCreateUbmSurfaceSEC,
createValidationCacheEXT,
createViSurfaceNN,
vkCreateVideoSessionKHR,
vkCreateVideoSessionParametersKHR,
createWaylandSurfaceKHR,
createWin32SurfaceKHR,
createXcbSurfaceKHR,
createXlibSurfaceKHR,
destroyAccelerationStructureKHR,
destroyAccelerationStructureNV,
destroyBuffer,
destroyBufferCollectionFUCHSIA,
destroyBufferView,
destroyCommandPool,
destroyCuFunctionNVX,
destroyCuModuleNVX,
destroyCudaFunctionNV,
destroyCudaModuleNV,
destroyDataGraphPipelineSessionARM,
destroyDebugReportCallbackEXT,
destroyDebugUtilsMessengerEXT,
destroyDeferredOperationKHR,
destroyDescriptorPool,
destroyDescriptorSetLayout,
destroyDescriptorUpdateTemplate,
destroyDescriptorUpdateTemplate,
destroyDevice,
destroyEvent,
destroyExternalComputeQueueNV,
destroyFence,
destroyFramebuffer,
destroyImage,
destroyImageView,
destroyIndirectCommandsLayoutEXT,
destroyIndirectCommandsLayoutNV,
destroyIndirectExecutionSetEXT,
destroyInstance,
destroyMicromapEXT,
destroyOpticalFlowSessionNV,
destroyPipeline,
destroyPipelineBinaryKHR,
destroyPipelineCache,
destroyPipelineLayout,
destroyPrivateDataSlot,
destroyPrivateDataSlot,
destroyQueryPool,
destroyRenderPass,
destroySampler,
destroySamplerYcbcrConversion,
destroySamplerYcbcrConversion,
destroySemaphore,
destroyShaderEXT,
destroyShaderModule,
destroySurfaceKHR,
destroySwapchainKHR,
destroyTensorARM,
destroyTensorViewARM,
destroyValidationCacheEXT,
vkDestroyVideoSessionKHR,
vkDestroyVideoSessionParametersKHR,
freeMemory,
registerDeviceEventEXT,
registerDisplayEventEXT,
releaseCapturedPipelineDataKHR
Constructors
| AllocationCallbacks | |
Instances
VkImageType - Specifies the type of an image object
Description
IMAGE_TYPE_1Dspecifies a one-dimensional image.
IMAGE_TYPE_2Dspecifies a two-dimensional image.IMAGE_TYPE_3Dspecifies a three-dimensional image.
See Also
VK_VERSION_1_0,
ImageCreateInfo,
PhysicalDeviceImageFormatInfo2,
PhysicalDeviceSparseImageFormatInfo2,
VkVideoFormatPropertiesKHR,
getPhysicalDeviceExternalImageFormatPropertiesNV,
getPhysicalDeviceImageFormatProperties,
getPhysicalDeviceSparseImageFormatProperties
Bundled Patterns
| pattern IMAGE_TYPE_1D :: ImageType | |
| pattern IMAGE_TYPE_2D :: ImageType | |
| pattern IMAGE_TYPE_3D :: ImageType |
Instances
| Eq ImageType Source # | |
| Ord ImageType Source # | |
| Storable ImageType Source # | |
Defined in Vulkan.Core10.Enums.ImageType | |
| Read ImageType Source # | |
| Show ImageType Source # | |
| Zero ImageType Source # | |
Defined in Vulkan.Core10.Enums.ImageType | |
newtype ImageTiling Source #
VkImageTiling - Specifies the tiling arrangement of data in an image
Description
IMAGE_TILING_OPTIMALspecifies optimal tiling (texels are laid out in an implementation-dependent arrangement, for more efficient memory access).
IMAGE_TILING_LINEARspecifies linear tiling (texels are laid out in memory in row-major order, possibly with some padding on each row).IMAGE_TILING_DRM_FORMAT_MODIFIER_EXTspecifies that the image’s tiling is defined by a Linux DRM format modifier. The modifier is specified at image creation withImageDrmFormatModifierListCreateInfoEXTorImageDrmFormatModifierExplicitCreateInfoEXT, and can be queried withgetImageDrmFormatModifierPropertiesEXT.
See Also
VK_VERSION_1_0,
ImageCreateInfo,
PhysicalDeviceImageFormatInfo2,
PhysicalDeviceSparseImageFormatInfo2,
VkVideoFormatPropertiesKHR,
getPhysicalDeviceExternalImageFormatPropertiesNV,
getPhysicalDeviceImageFormatProperties,
getPhysicalDeviceSparseImageFormatProperties
Constructors
| ImageTiling Int32 |
Bundled Patterns
| pattern IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT :: ImageTiling | |
| pattern IMAGE_TILING_LINEAR :: ImageTiling | |
| pattern IMAGE_TILING_OPTIMAL :: ImageTiling |
Instances
newtype InternalAllocationType Source #
VkInternalAllocationType - Allocation type
Description
INTERNAL_ALLOCATION_TYPE_EXECUTABLEspecifies that the allocation is intended for execution by the host.
See Also
PFN_vkInternalAllocationNotification,
PFN_vkInternalFreeNotification,
VK_VERSION_1_0
Constructors
| InternalAllocationType Int32 |
Bundled Patterns
| pattern INTERNAL_ALLOCATION_TYPE_EXECUTABLE :: InternalAllocationType |
Instances
newtype SystemAllocationScope Source #
VkSystemAllocationScope - Allocation scope
Description
SYSTEM_ALLOCATION_SCOPE_COMMANDspecifies that the allocation is scoped to the duration of the Vulkan command.
SYSTEM_ALLOCATION_SCOPE_OBJECTspecifies that the allocation is scoped to the lifetime of the Vulkan object that is being created or used.SYSTEM_ALLOCATION_SCOPE_CACHEspecifies that the allocation is scoped to the lifetime of aPipelineCacheorValidationCacheEXTobject.SYSTEM_ALLOCATION_SCOPE_DEVICEspecifies that the allocation is scoped to the lifetime of the Vulkan device.SYSTEM_ALLOCATION_SCOPE_INSTANCEspecifies that the allocation is scoped to the lifetime of the Vulkan instance.
Most Vulkan commands operate on a single object, or there is a sole
object that is being created or manipulated. When an allocation uses an
allocation scope of SYSTEM_ALLOCATION_SCOPE_OBJECT or
SYSTEM_ALLOCATION_SCOPE_CACHE, the allocation is scoped to the object
being created or manipulated.
When an implementation requires host memory, it will make callbacks to the application using the most specific allocator and allocation scope available:
- If an allocation is scoped to the duration of a command, the
allocator will use the
SYSTEM_ALLOCATION_SCOPE_COMMANDallocation scope. The most specific allocator available is used: if the object being created or manipulated has an allocator, that object’s allocator will be used, else if the parentDevicehas an allocator it will be used, else if the parentInstancehas an allocator it will be used. Else, - If an allocation is associated with a
ValidationCacheEXTorPipelineCacheobject, the allocator will use theSYSTEM_ALLOCATION_SCOPE_CACHEallocation scope. The most specific allocator available is used (cache, else device, else instance). Else, - If an allocation is scoped to the lifetime of an object, that object
is being created or manipulated by the command, and that object’s
type is not
DeviceorInstance, the allocator will use an allocation scope ofSYSTEM_ALLOCATION_SCOPE_OBJECT. The most specific allocator available is used (object, else device, else instance). Else, - If an allocation is scoped to the lifetime of a device, the
allocator will use an allocation scope of
SYSTEM_ALLOCATION_SCOPE_DEVICE. The most specific allocator available is used (device, else instance). Else, - If the allocation is scoped to the lifetime of an instance and the
instance has an allocator, its allocator will be used with an
allocation scope of
SYSTEM_ALLOCATION_SCOPE_INSTANCE. - Otherwise an implementation will allocate memory through an alternative mechanism that is unspecified.
See Also
PFN_vkAllocationFunction,
PFN_vkInternalAllocationNotification,
PFN_vkInternalFreeNotification,
PFN_vkReallocationFunction,
VK_VERSION_1_0,
AllocationCallbacks
Constructors
| SystemAllocationScope Int32 |
Bundled Patterns
Instances
newtype PhysicalDeviceType Source #
VkPhysicalDeviceType - Supported physical device types
Description
PHYSICAL_DEVICE_TYPE_OTHER- the device does not match any other available types.
PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU- the device is typically one embedded in or tightly coupled with the host.PHYSICAL_DEVICE_TYPE_DISCRETE_GPU- the device is typically a separate processor connected to the host via an interlink.PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU- the device is typically a virtual node in a virtualization environment.PHYSICAL_DEVICE_TYPE_CPU- the device is typically running on the same processors as the host.
The physical device type is advertised for informational purposes only, and does not directly affect the operation of the system. However, the device type may correlate with other advertised properties or capabilities of the system, such as how many memory heaps there are.
See Also
Constructors
| PhysicalDeviceType Int32 |
Bundled Patterns
| pattern PHYSICAL_DEVICE_TYPE_CPU :: PhysicalDeviceType | |
| pattern PHYSICAL_DEVICE_TYPE_DISCRETE_GPU :: PhysicalDeviceType | |
| pattern PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU :: PhysicalDeviceType | |
| pattern PHYSICAL_DEVICE_TYPE_OTHER :: PhysicalDeviceType | |
| pattern PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU :: PhysicalDeviceType |
Instances
VkFormat - Available image formats
Description
FORMAT_UNDEFINEDspecifies that the format is not specified.
FORMAT_R4G4_UNORM_PACK8specifies a two-component, 8-bit packed unsigned normalized format that has a 4-bit R component in bits 4..7, and a 4-bit G component in bits 0..3.FORMAT_R4G4B4A4_UNORM_PACK16specifies a four-component, 16-bit packed unsigned normalized format that has a 4-bit R component in bits 12..15, a 4-bit G component in bits 8..11, a 4-bit B component in bits 4..7, and a 4-bit A component in bits 0..3.FORMAT_B4G4R4A4_UNORM_PACK16specifies a four-component, 16-bit packed unsigned normalized format that has a 4-bit B component in bits 12..15, a 4-bit G component in bits 8..11, a 4-bit R component in bits 4..7, and a 4-bit A component in bits 0..3.FORMAT_A4R4G4B4_UNORM_PACK16specifies a four-component, 16-bit packed unsigned normalized format that has a 4-bit A component in bits 12..15, a 4-bit R component in bits 8..11, a 4-bit G component in bits 4..7, and a 4-bit B component in bits 0..3.FORMAT_A4B4G4R4_UNORM_PACK16specifies a four-component, 16-bit packed unsigned normalized format that has a 4-bit A component in bits 12..15, a 4-bit B component in bits 8..11, a 4-bit G component in bits 4..7, and a 4-bit R component in bits 0..3.FORMAT_R5G6B5_UNORM_PACK16specifies a three-component, 16-bit packed unsigned normalized format that has a 5-bit R component in bits 11..15, a 6-bit G component in bits 5..10, and a 5-bit B component in bits 0..4.FORMAT_B5G6R5_UNORM_PACK16specifies a three-component, 16-bit packed unsigned normalized format that has a 5-bit B component in bits 11..15, a 6-bit G component in bits 5..10, and a 5-bit R component in bits 0..4.FORMAT_R5G5B5A1_UNORM_PACK16specifies a four-component, 16-bit packed unsigned normalized format that has a 5-bit R component in bits 11..15, a 5-bit G component in bits 6..10, a 5-bit B component in bits 1..5, and a 1-bit A component in bit 0.FORMAT_B5G5R5A1_UNORM_PACK16specifies a four-component, 16-bit packed unsigned normalized format that has a 5-bit B component in bits 11..15, a 5-bit G component in bits 6..10, a 5-bit R component in bits 1..5, and a 1-bit A component in bit 0.FORMAT_A1R5G5B5_UNORM_PACK16specifies a four-component, 16-bit packed unsigned normalized format that has a 1-bit A component in bit 15, a 5-bit R component in bits 10..14, a 5-bit G component in bits 5..9, and a 5-bit B component in bits 0..4.FORMAT_A1B5G5R5_UNORM_PACK16specifies a four-component, 16-bit packed unsigned normalized format that has a 1-bit A component in bit 15, a 5-bit B component in bits 10..14, a 5-bit G component in bits 5..9, and a 5-bit R component in bits 0..4.FORMAT_A8_UNORMspecifies a one-component, 8-bit unsigned normalized format that has a single 8-bit A component.FORMAT_R8_UNORMspecifies a one-component, 8-bit unsigned normalized format that has a single 8-bit R component.FORMAT_R8_SNORMspecifies a one-component, 8-bit signed normalized format that has a single 8-bit R component.FORMAT_R8_USCALEDspecifies a one-component, 8-bit unsigned scaled integer format that has a single 8-bit R component.FORMAT_R8_SSCALEDspecifies a one-component, 8-bit signed scaled integer format that has a single 8-bit R component.FORMAT_R8_UINTspecifies a one-component, 8-bit unsigned integer format that has a single 8-bit R component.FORMAT_R8_SINTspecifies a one-component, 8-bit signed integer format that has a single 8-bit R component.FORMAT_R8_SRGBspecifies a one-component, 8-bit unsigned normalized format that has a single 8-bit R component stored with sRGB nonlinear encoding.FORMAT_R8G8_UNORMspecifies a two-component, 16-bit unsigned normalized format that has an 8-bit R component in byte 0, and an 8-bit G component in byte 1.FORMAT_R8G8_SNORMspecifies a two-component, 16-bit signed normalized format that has an 8-bit R component in byte 0, and an 8-bit G component in byte 1.FORMAT_R8G8_USCALEDspecifies a two-component, 16-bit unsigned scaled integer format that has an 8-bit R component in byte 0, and an 8-bit G component in byte 1.FORMAT_R8G8_SSCALEDspecifies a two-component, 16-bit signed scaled integer format that has an 8-bit R component in byte 0, and an 8-bit G component in byte 1.FORMAT_R8G8_UINTspecifies a two-component, 16-bit unsigned integer format that has an 8-bit R component in byte 0, and an 8-bit G component in byte 1.FORMAT_R8G8_SINTspecifies a two-component, 16-bit signed integer format that has an 8-bit R component in byte 0, and an 8-bit G component in byte 1.FORMAT_R8G8_SRGBspecifies a two-component, 16-bit unsigned normalized format that has an 8-bit R component stored with sRGB nonlinear encoding in byte 0, and an 8-bit G component stored with sRGB nonlinear encoding in byte 1.FORMAT_R8G8B8_UNORMspecifies a three-component, 24-bit unsigned normalized format that has an 8-bit R component in byte 0, an 8-bit G component in byte 1, and an 8-bit B component in byte 2.FORMAT_R8G8B8_SNORMspecifies a three-component, 24-bit signed normalized format that has an 8-bit R component in byte 0, an 8-bit G component in byte 1, and an 8-bit B component in byte 2.FORMAT_R8G8B8_USCALEDspecifies a three-component, 24-bit unsigned scaled format that has an 8-bit R component in byte 0, an 8-bit G component in byte 1, and an 8-bit B component in byte 2.FORMAT_R8G8B8_SSCALEDspecifies a three-component, 24-bit signed scaled format that has an 8-bit R component in byte 0, an 8-bit G component in byte 1, and an 8-bit B component in byte 2.FORMAT_R8G8B8_UINTspecifies a three-component, 24-bit unsigned integer format that has an 8-bit R component in byte 0, an 8-bit G component in byte 1, and an 8-bit B component in byte 2.FORMAT_R8G8B8_SINTspecifies a three-component, 24-bit signed integer format that has an 8-bit R component in byte 0, an 8-bit G component in byte 1, and an 8-bit B component in byte 2.FORMAT_R8G8B8_SRGBspecifies a three-component, 24-bit unsigned normalized format that has an 8-bit R component stored with sRGB nonlinear encoding in byte 0, an 8-bit G component stored with sRGB nonlinear encoding in byte 1, and an 8-bit B component stored with sRGB nonlinear encoding in byte 2.FORMAT_B8G8R8_UNORMspecifies a three-component, 24-bit unsigned normalized format that has an 8-bit B component in byte 0, an 8-bit G component in byte 1, and an 8-bit R component in byte 2.FORMAT_B8G8R8_SNORMspecifies a three-component, 24-bit signed normalized format that has an 8-bit B component in byte 0, an 8-bit G component in byte 1, and an 8-bit R component in byte 2.FORMAT_B8G8R8_USCALEDspecifies a three-component, 24-bit unsigned scaled format that has an 8-bit B component in byte 0, an 8-bit G component in byte 1, and an 8-bit R component in byte 2.FORMAT_B8G8R8_SSCALEDspecifies a three-component, 24-bit signed scaled format that has an 8-bit B component in byte 0, an 8-bit G component in byte 1, and an 8-bit R component in byte 2.FORMAT_B8G8R8_UINTspecifies a three-component, 24-bit unsigned integer format that has an 8-bit B component in byte 0, an 8-bit G component in byte 1, and an 8-bit R component in byte 2.FORMAT_B8G8R8_SINTspecifies a three-component, 24-bit signed integer format that has an 8-bit B component in byte 0, an 8-bit G component in byte 1, and an 8-bit R component in byte 2.FORMAT_B8G8R8_SRGBspecifies a three-component, 24-bit unsigned normalized format that has an 8-bit B component stored with sRGB nonlinear encoding in byte 0, an 8-bit G component stored with sRGB nonlinear encoding in byte 1, and an 8-bit R component stored with sRGB nonlinear encoding in byte 2.FORMAT_R8G8B8A8_UNORMspecifies a four-component, 32-bit unsigned normalized format that has an 8-bit R component in byte 0, an 8-bit G component in byte 1, an 8-bit B component in byte 2, and an 8-bit A component in byte 3.FORMAT_R8G8B8A8_SNORMspecifies a four-component, 32-bit signed normalized format that has an 8-bit R component in byte 0, an 8-bit G component in byte 1, an 8-bit B component in byte 2, and an 8-bit A component in byte 3.FORMAT_R8G8B8A8_USCALEDspecifies a four-component, 32-bit unsigned scaled format that has an 8-bit R component in byte 0, an 8-bit G component in byte 1, an 8-bit B component in byte 2, and an 8-bit A component in byte 3.FORMAT_R8G8B8A8_SSCALEDspecifies a four-component, 32-bit signed scaled format that has an 8-bit R component in byte 0, an 8-bit G component in byte 1, an 8-bit B component in byte 2, and an 8-bit A component in byte 3.FORMAT_R8G8B8A8_UINTspecifies a four-component, 32-bit unsigned integer format that has an 8-bit R component in byte 0, an 8-bit G component in byte 1, an 8-bit B component in byte 2, and an 8-bit A component in byte 3.FORMAT_R8G8B8A8_SINTspecifies a four-component, 32-bit signed integer format that has an 8-bit R component in byte 0, an 8-bit G component in byte 1, an 8-bit B component in byte 2, and an 8-bit A component in byte 3.FORMAT_R8G8B8A8_SRGBspecifies a four-component, 32-bit unsigned normalized format that has an 8-bit R component stored with sRGB nonlinear encoding in byte 0, an 8-bit G component stored with sRGB nonlinear encoding in byte 1, an 8-bit B component stored with sRGB nonlinear encoding in byte 2, and an 8-bit A component in byte 3.FORMAT_B8G8R8A8_UNORMspecifies a four-component, 32-bit unsigned normalized format that has an 8-bit B component in byte 0, an 8-bit G component in byte 1, an 8-bit R component in byte 2, and an 8-bit A component in byte 3.FORMAT_B8G8R8A8_SNORMspecifies a four-component, 32-bit signed normalized format that has an 8-bit B component in byte 0, an 8-bit G component in byte 1, an 8-bit R component in byte 2, and an 8-bit A component in byte 3.FORMAT_B8G8R8A8_USCALEDspecifies a four-component, 32-bit unsigned scaled format that has an 8-bit B component in byte 0, an 8-bit G component in byte 1, an 8-bit R component in byte 2, and an 8-bit A component in byte 3.FORMAT_B8G8R8A8_SSCALEDspecifies a four-component, 32-bit signed scaled format that has an 8-bit B component in byte 0, an 8-bit G component in byte 1, an 8-bit R component in byte 2, and an 8-bit A component in byte 3.FORMAT_B8G8R8A8_UINTspecifies a four-component, 32-bit unsigned integer format that has an 8-bit B component in byte 0, an 8-bit G component in byte 1, an 8-bit R component in byte 2, and an 8-bit A component in byte 3.FORMAT_B8G8R8A8_SINTspecifies a four-component, 32-bit signed integer format that has an 8-bit B component in byte 0, an 8-bit G component in byte 1, an 8-bit R component in byte 2, and an 8-bit A component in byte 3.FORMAT_B8G8R8A8_SRGBspecifies a four-component, 32-bit unsigned normalized format that has an 8-bit B component stored with sRGB nonlinear encoding in byte 0, an 8-bit G component stored with sRGB nonlinear encoding in byte 1, an 8-bit R component stored with sRGB nonlinear encoding in byte 2, and an 8-bit A component in byte 3.FORMAT_A8B8G8R8_UNORM_PACK32specifies a four-component, 32-bit packed unsigned normalized format that has an 8-bit A component in bits 24..31, an 8-bit B component in bits 16..23, an 8-bit G component in bits 8..15, and an 8-bit R component in bits 0..7.FORMAT_A8B8G8R8_SNORM_PACK32specifies a four-component, 32-bit packed signed normalized format that has an 8-bit A component in bits 24..31, an 8-bit B component in bits 16..23, an 8-bit G component in bits 8..15, and an 8-bit R component in bits 0..7.FORMAT_A8B8G8R8_USCALED_PACK32specifies a four-component, 32-bit packed unsigned scaled integer format that has an 8-bit A component in bits 24..31, an 8-bit B component in bits 16..23, an 8-bit G component in bits 8..15, and an 8-bit R component in bits 0..7.FORMAT_A8B8G8R8_SSCALED_PACK32specifies a four-component, 32-bit packed signed scaled integer format that has an 8-bit A component in bits 24..31, an 8-bit B component in bits 16..23, an 8-bit G component in bits 8..15, and an 8-bit R component in bits 0..7.FORMAT_A8B8G8R8_UINT_PACK32specifies a four-component, 32-bit packed unsigned integer format that has an 8-bit A component in bits 24..31, an 8-bit B component in bits 16..23, an 8-bit G component in bits 8..15, and an 8-bit R component in bits 0..7.FORMAT_A8B8G8R8_SINT_PACK32specifies a four-component, 32-bit packed signed integer format that has an 8-bit A component in bits 24..31, an 8-bit B component in bits 16..23, an 8-bit G component in bits 8..15, and an 8-bit R component in bits 0..7.FORMAT_A8B8G8R8_SRGB_PACK32specifies a four-component, 32-bit packed unsigned normalized format that has an 8-bit A component in bits 24..31, an 8-bit B component stored with sRGB nonlinear encoding in bits 16..23, an 8-bit G component stored with sRGB nonlinear encoding in bits 8..15, and an 8-bit R component stored with sRGB nonlinear encoding in bits 0..7.FORMAT_A2R10G10B10_UNORM_PACK32specifies a four-component, 32-bit packed unsigned normalized format that has a 2-bit A component in bits 30..31, a 10-bit R component in bits 20..29, a 10-bit G component in bits 10..19, and a 10-bit B component in bits 0..9.FORMAT_A2R10G10B10_SNORM_PACK32specifies a four-component, 32-bit packed signed normalized format that has a 2-bit A component in bits 30..31, a 10-bit R component in bits 20..29, a 10-bit G component in bits 10..19, and a 10-bit B component in bits 0..9.FORMAT_A2R10G10B10_USCALED_PACK32specifies a four-component, 32-bit packed unsigned scaled integer format that has a 2-bit A component in bits 30..31, a 10-bit R component in bits 20..29, a 10-bit G component in bits 10..19, and a 10-bit B component in bits 0..9.FORMAT_A2R10G10B10_SSCALED_PACK32specifies a four-component, 32-bit packed signed scaled integer format that has a 2-bit A component in bits 30..31, a 10-bit R component in bits 20..29, a 10-bit G component in bits 10..19, and a 10-bit B component in bits 0..9.FORMAT_A2R10G10B10_UINT_PACK32specifies a four-component, 32-bit packed unsigned integer format that has a 2-bit A component in bits 30..31, a 10-bit R component in bits 20..29, a 10-bit G component in bits 10..19, and a 10-bit B component in bits 0..9.FORMAT_A2R10G10B10_SINT_PACK32specifies a four-component, 32-bit packed signed integer format that has a 2-bit A component in bits 30..31, a 10-bit R component in bits 20..29, a 10-bit G component in bits 10..19, and a 10-bit B component in bits 0..9.FORMAT_A2B10G10R10_UNORM_PACK32specifies a four-component, 32-bit packed unsigned normalized format that has a 2-bit A component in bits 30..31, a 10-bit B component in bits 20..29, a 10-bit G component in bits 10..19, and a 10-bit R component in bits 0..9.FORMAT_A2B10G10R10_SNORM_PACK32specifies a four-component, 32-bit packed signed normalized format that has a 2-bit A component in bits 30..31, a 10-bit B component in bits 20..29, a 10-bit G component in bits 10..19, and a 10-bit R component in bits 0..9.FORMAT_A2B10G10R10_USCALED_PACK32specifies a four-component, 32-bit packed unsigned scaled integer format that has a 2-bit A component in bits 30..31, a 10-bit B component in bits 20..29, a 10-bit G component in bits 10..19, and a 10-bit R component in bits 0..9.FORMAT_A2B10G10R10_SSCALED_PACK32specifies a four-component, 32-bit packed signed scaled integer format that has a 2-bit A component in bits 30..31, a 10-bit B component in bits 20..29, a 10-bit G component in bits 10..19, and a 10-bit R component in bits 0..9.FORMAT_A2B10G10R10_UINT_PACK32specifies a four-component, 32-bit packed unsigned integer format that has a 2-bit A component in bits 30..31, a 10-bit B component in bits 20..29, a 10-bit G component in bits 10..19, and a 10-bit R component in bits 0..9.FORMAT_A2B10G10R10_SINT_PACK32specifies a four-component, 32-bit packed signed integer format that has a 2-bit A component in bits 30..31, a 10-bit B component in bits 20..29, a 10-bit G component in bits 10..19, and a 10-bit R component in bits 0..9.FORMAT_R16_UNORMspecifies a one-component, 16-bit unsigned normalized format that has a single 16-bit R component.FORMAT_R16_SNORMspecifies a one-component, 16-bit signed normalized format that has a single 16-bit R component.FORMAT_R16_USCALEDspecifies a one-component, 16-bit unsigned scaled integer format that has a single 16-bit R component.FORMAT_R16_SSCALEDspecifies a one-component, 16-bit signed scaled integer format that has a single 16-bit R component.FORMAT_R16_UINTspecifies a one-component, 16-bit unsigned integer format that has a single 16-bit R component.FORMAT_R16_SINTspecifies a one-component, 16-bit signed integer format that has a single 16-bit R component.FORMAT_R16_SFLOATspecifies a one-component, 16-bit signed floating-point format that has a single 16-bit R component.FORMAT_R16G16_UNORMspecifies a two-component, 32-bit unsigned normalized format that has a 16-bit R component in bytes 0..1, and a 16-bit G component in bytes 2..3.FORMAT_R16G16_SNORMspecifies a two-component, 32-bit signed normalized format that has a 16-bit R component in bytes 0..1, and a 16-bit G component in bytes 2..3.FORMAT_R16G16_USCALEDspecifies a two-component, 32-bit unsigned scaled integer format that has a 16-bit R component in bytes 0..1, and a 16-bit G component in bytes 2..3.FORMAT_R16G16_SSCALEDspecifies a two-component, 32-bit signed scaled integer format that has a 16-bit R component in bytes 0..1, and a 16-bit G component in bytes 2..3.FORMAT_R16G16_UINTspecifies a two-component, 32-bit unsigned integer format that has a 16-bit R component in bytes 0..1, and a 16-bit G component in bytes 2..3.FORMAT_R16G16_SINTspecifies a two-component, 32-bit signed integer format that has a 16-bit R component in bytes 0..1, and a 16-bit G component in bytes 2..3.FORMAT_R16G16_SFLOATspecifies a two-component, 32-bit signed floating-point format that has a 16-bit R component in bytes 0..1, and a 16-bit G component in bytes 2..3.FORMAT_R16G16B16_UNORMspecifies a three-component, 48-bit unsigned normalized format that has a 16-bit R component in bytes 0..1, a 16-bit G component in bytes 2..3, and a 16-bit B component in bytes 4..5.FORMAT_R16G16B16_SNORMspecifies a three-component, 48-bit signed normalized format that has a 16-bit R component in bytes 0..1, a 16-bit G component in bytes 2..3, and a 16-bit B component in bytes 4..5.FORMAT_R16G16B16_USCALEDspecifies a three-component, 48-bit unsigned scaled integer format that has a 16-bit R component in bytes 0..1, a 16-bit G component in bytes 2..3, and a 16-bit B component in bytes 4..5.FORMAT_R16G16B16_SSCALEDspecifies a three-component, 48-bit signed scaled integer format that has a 16-bit R component in bytes 0..1, a 16-bit G component in bytes 2..3, and a 16-bit B component in bytes 4..5.FORMAT_R16G16B16_UINTspecifies a three-component, 48-bit unsigned integer format that has a 16-bit R component in bytes 0..1, a 16-bit G component in bytes 2..3, and a 16-bit B component in bytes 4..5.FORMAT_R16G16B16_SINTspecifies a three-component, 48-bit signed integer format that has a 16-bit R component in bytes 0..1, a 16-bit G component in bytes 2..3, and a 16-bit B component in bytes 4..5.FORMAT_R16G16B16_SFLOATspecifies a three-component, 48-bit signed floating-point format that has a 16-bit R component in bytes 0..1, a 16-bit G component in bytes 2..3, and a 16-bit B component in bytes 4..5.FORMAT_R16G16B16A16_UNORMspecifies a four-component, 64-bit unsigned normalized format that has a 16-bit R component in bytes 0..1, a 16-bit G component in bytes 2..3, a 16-bit B component in bytes 4..5, and a 16-bit A component in bytes 6..7.FORMAT_R16G16B16A16_SNORMspecifies a four-component, 64-bit signed normalized format that has a 16-bit R component in bytes 0..1, a 16-bit G component in bytes 2..3, a 16-bit B component in bytes 4..5, and a 16-bit A component in bytes 6..7.FORMAT_R16G16B16A16_USCALEDspecifies a four-component, 64-bit unsigned scaled integer format that has a 16-bit R component in bytes 0..1, a 16-bit G component in bytes 2..3, a 16-bit B component in bytes 4..5, and a 16-bit A component in bytes 6..7.FORMAT_R16G16B16A16_SSCALEDspecifies a four-component, 64-bit signed scaled integer format that has a 16-bit R component in bytes 0..1, a 16-bit G component in bytes 2..3, a 16-bit B component in bytes 4..5, and a 16-bit A component in bytes 6..7.FORMAT_R16G16B16A16_UINTspecifies a four-component, 64-bit unsigned integer format that has a 16-bit R component in bytes 0..1, a 16-bit G component in bytes 2..3, a 16-bit B component in bytes 4..5, and a 16-bit A component in bytes 6..7.FORMAT_R16G16B16A16_SINTspecifies a four-component, 64-bit signed integer format that has a 16-bit R component in bytes 0..1, a 16-bit G component in bytes 2..3, a 16-bit B component in bytes 4..5, and a 16-bit A component in bytes 6..7.FORMAT_R16G16B16A16_SFLOATspecifies a four-component, 64-bit signed floating-point format that has a 16-bit R component in bytes 0..1, a 16-bit G component in bytes 2..3, a 16-bit B component in bytes 4..5, and a 16-bit A component in bytes 6..7.FORMAT_R32_UINTspecifies a one-component, 32-bit unsigned integer format that has a single 32-bit R component.FORMAT_R32_SINTspecifies a one-component, 32-bit signed integer format that has a single 32-bit R component.FORMAT_R32_SFLOATspecifies a one-component, 32-bit signed floating-point format that has a single 32-bit R component.FORMAT_R32G32_UINTspecifies a two-component, 64-bit unsigned integer format that has a 32-bit R component in bytes 0..3, and a 32-bit G component in bytes 4..7.FORMAT_R32G32_SINTspecifies a two-component, 64-bit signed integer format that has a 32-bit R component in bytes 0..3, and a 32-bit G component in bytes 4..7.FORMAT_R32G32_SFLOATspecifies a two-component, 64-bit signed floating-point format that has a 32-bit R component in bytes 0..3, and a 32-bit G component in bytes 4..7.FORMAT_R32G32B32_UINTspecifies a three-component, 96-bit unsigned integer format that has a 32-bit R component in bytes 0..3, a 32-bit G component in bytes 4..7, and a 32-bit B component in bytes 8..11.FORMAT_R32G32B32_SINTspecifies a three-component, 96-bit signed integer format that has a 32-bit R component in bytes 0..3, a 32-bit G component in bytes 4..7, and a 32-bit B component in bytes 8..11.FORMAT_R32G32B32_SFLOATspecifies a three-component, 96-bit signed floating-point format that has a 32-bit R component in bytes 0..3, a 32-bit G component in bytes 4..7, and a 32-bit B component in bytes 8..11.FORMAT_R32G32B32A32_UINTspecifies a four-component, 128-bit unsigned integer format that has a 32-bit R component in bytes 0..3, a 32-bit G component in bytes 4..7, a 32-bit B component in bytes 8..11, and a 32-bit A component in bytes 12..15.FORMAT_R32G32B32A32_SINTspecifies a four-component, 128-bit signed integer format that has a 32-bit R component in bytes 0..3, a 32-bit G component in bytes 4..7, a 32-bit B component in bytes 8..11, and a 32-bit A component in bytes 12..15.FORMAT_R32G32B32A32_SFLOATspecifies a four-component, 128-bit signed floating-point format that has a 32-bit R component in bytes 0..3, a 32-bit G component in bytes 4..7, a 32-bit B component in bytes 8..11, and a 32-bit A component in bytes 12..15.FORMAT_R64_UINTspecifies a one-component, 64-bit unsigned integer format that has a single 64-bit R component.FORMAT_R64_SINTspecifies a one-component, 64-bit signed integer format that has a single 64-bit R component.FORMAT_R64_SFLOATspecifies a one-component, 64-bit signed floating-point format that has a single 64-bit R component.FORMAT_R64G64_UINTspecifies a two-component, 128-bit unsigned integer format that has a 64-bit R component in bytes 0..7, and a 64-bit G component in bytes 8..15.FORMAT_R64G64_SINTspecifies a two-component, 128-bit signed integer format that has a 64-bit R component in bytes 0..7, and a 64-bit G component in bytes 8..15.FORMAT_R64G64_SFLOATspecifies a two-component, 128-bit signed floating-point format that has a 64-bit R component in bytes 0..7, and a 64-bit G component in bytes 8..15.FORMAT_R64G64B64_UINTspecifies a three-component, 192-bit unsigned integer format that has a 64-bit R component in bytes 0..7, a 64-bit G component in bytes 8..15, and a 64-bit B component in bytes 16..23.FORMAT_R64G64B64_SINTspecifies a three-component, 192-bit signed integer format that has a 64-bit R component in bytes 0..7, a 64-bit G component in bytes 8..15, and a 64-bit B component in bytes 16..23.FORMAT_R64G64B64_SFLOATspecifies a three-component, 192-bit signed floating-point format that has a 64-bit R component in bytes 0..7, a 64-bit G component in bytes 8..15, and a 64-bit B component in bytes 16..23.FORMAT_R64G64B64A64_UINTspecifies a four-component, 256-bit unsigned integer format that has a 64-bit R component in bytes 0..7, a 64-bit G component in bytes 8..15, a 64-bit B component in bytes 16..23, and a 64-bit A component in bytes 24..31.FORMAT_R64G64B64A64_SINTspecifies a four-component, 256-bit signed integer format that has a 64-bit R component in bytes 0..7, a 64-bit G component in bytes 8..15, a 64-bit B component in bytes 16..23, and a 64-bit A component in bytes 24..31.FORMAT_R64G64B64A64_SFLOATspecifies a four-component, 256-bit signed floating-point format that has a 64-bit R component in bytes 0..7, a 64-bit G component in bytes 8..15, a 64-bit B component in bytes 16..23, and a 64-bit A component in bytes 24..31.FORMAT_B10G11R11_UFLOAT_PACK32specifies a three-component, 32-bit packed unsigned floating-point format that has a 10-bit B component in bits 22..31, an 11-bit G component in bits 11..21, an 11-bit R component in bits 0..10. See https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#fundamentals-fp10 and https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#fundamentals-fp11.FORMAT_E5B9G9R9_UFLOAT_PACK32specifies a three-component, 32-bit packed unsigned floating-point format that has a 5-bit shared exponent in bits 27..31, a 9-bit B component mantissa in bits 18..26, a 9-bit G component mantissa in bits 9..17, and a 9-bit R component mantissa in bits 0..8.FORMAT_D16_UNORMspecifies a one-component, 16-bit unsigned normalized format that has a single 16-bit depth component.FORMAT_X8_D24_UNORM_PACK32specifies a two-component, 32-bit format that has 24 unsigned normalized bits in the depth component and, optionally, 8 bits that are unused.FORMAT_D32_SFLOATspecifies a one-component, 32-bit signed floating-point format that has 32 bits in the depth component.FORMAT_S8_UINTspecifies a one-component, 8-bit unsigned integer format that has 8 bits in the stencil component.FORMAT_D16_UNORM_S8_UINTspecifies a two-component, 24-bit format that has 16 unsigned normalized bits in the depth component and 8 unsigned integer bits in the stencil component.FORMAT_D24_UNORM_S8_UINTspecifies a two-component, 32-bit packed format that has 8 unsigned integer bits in the stencil component, and 24 unsigned normalized bits in the depth component.FORMAT_D32_SFLOAT_S8_UINTspecifies a two-component format that has 32 signed float bits in the depth component and 8 unsigned integer bits in the stencil component. There are optionally 24 bits that are unused.FORMAT_BC1_RGB_UNORM_BLOCKspecifies a three-component, block-compressed format where each 64-bit compressed texel block encodes a 4×4 rectangle of unsigned normalized RGB texel data. This format has no alpha and is considered opaque.FORMAT_BC1_RGB_SRGB_BLOCKspecifies a three-component, block-compressed format where each 64-bit compressed texel block encodes a 4×4 rectangle of unsigned normalized RGB texel data with sRGB nonlinear encoding. This format has no alpha and is considered opaque.FORMAT_BC1_RGBA_UNORM_BLOCKspecifies a four-component, block-compressed format where each 64-bit compressed texel block encodes a 4×4 rectangle of unsigned normalized RGB texel data, and provides 1 bit of alpha.FORMAT_BC1_RGBA_SRGB_BLOCKspecifies a four-component, block-compressed format where each 64-bit compressed texel block encodes a 4×4 rectangle of unsigned normalized RGB texel data with sRGB nonlinear encoding, and provides 1 bit of alpha.FORMAT_BC2_UNORM_BLOCKspecifies a four-component, block-compressed format where each 128-bit compressed texel block encodes a 4×4 rectangle of unsigned normalized RGBA texel data with the first 64 bits encoding alpha values followed by 64 bits encoding RGB values.FORMAT_BC2_SRGB_BLOCKspecifies a four-component, block-compressed format where each 128-bit compressed texel block encodes a 4×4 rectangle of unsigned normalized RGBA texel data with the first 64 bits encoding alpha values followed by 64 bits encoding RGB values with sRGB nonlinear encoding.FORMAT_BC3_UNORM_BLOCKspecifies a four-component, block-compressed format where each 128-bit compressed texel block encodes a 4×4 rectangle of unsigned normalized RGBA texel data with the first 64 bits encoding alpha values followed by 64 bits encoding RGB values.FORMAT_BC3_SRGB_BLOCKspecifies a four-component, block-compressed format where each 128-bit compressed texel block encodes a 4×4 rectangle of unsigned normalized RGBA texel data with the first 64 bits encoding alpha values followed by 64 bits encoding RGB values with sRGB nonlinear encoding.FORMAT_BC4_UNORM_BLOCKspecifies a one-component, block-compressed format where each 64-bit compressed texel block encodes a 4×4 rectangle of unsigned normalized red texel data.FORMAT_BC4_SNORM_BLOCKspecifies a one-component, block-compressed format where each 64-bit compressed texel block encodes a 4×4 rectangle of signed normalized red texel data.FORMAT_BC5_UNORM_BLOCKspecifies a two-component, block-compressed format where each 128-bit compressed texel block encodes a 4×4 rectangle of unsigned normalized RG texel data with the first 64 bits encoding red values followed by 64 bits encoding green values.FORMAT_BC5_SNORM_BLOCKspecifies a two-component, block-compressed format where each 128-bit compressed texel block encodes a 4×4 rectangle of signed normalized RG texel data with the first 64 bits encoding red values followed by 64 bits encoding green values.FORMAT_BC6H_UFLOAT_BLOCKspecifies a three-component, block-compressed format where each 128-bit compressed texel block encodes a 4×4 rectangle of unsigned floating-point RGB texel data.FORMAT_BC6H_SFLOAT_BLOCKspecifies a three-component, block-compressed format where each 128-bit compressed texel block encodes a 4×4 rectangle of signed floating-point RGB texel data.FORMAT_BC7_UNORM_BLOCKspecifies a four-component, block-compressed format where each 128-bit compressed texel block encodes a 4×4 rectangle of unsigned normalized RGBA texel data.FORMAT_BC7_SRGB_BLOCKspecifies a four-component, block-compressed format where each 128-bit compressed texel block encodes a 4×4 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear encoding applied to the RGB components.FORMAT_ETC2_R8G8B8_UNORM_BLOCKspecifies a three-component, ETC2 compressed format where each 64-bit compressed texel block encodes a 4×4 rectangle of unsigned normalized RGB texel data. This format has no alpha and is considered opaque.FORMAT_ETC2_R8G8B8_SRGB_BLOCKspecifies a three-component, ETC2 compressed format where each 64-bit compressed texel block encodes a 4×4 rectangle of unsigned normalized RGB texel data with sRGB nonlinear encoding. This format has no alpha and is considered opaque.FORMAT_ETC2_R8G8B8A1_UNORM_BLOCKspecifies a four-component, ETC2 compressed format where each 64-bit compressed texel block encodes a 4×4 rectangle of unsigned normalized RGB texel data, and provides 1 bit of alpha.FORMAT_ETC2_R8G8B8A1_SRGB_BLOCKspecifies a four-component, ETC2 compressed format where each 64-bit compressed texel block encodes a 4×4 rectangle of unsigned normalized RGB texel data with sRGB nonlinear encoding, and provides 1 bit of alpha.FORMAT_ETC2_R8G8B8A8_UNORM_BLOCKspecifies a four-component, ETC2 compressed format where each 128-bit compressed texel block encodes a 4×4 rectangle of unsigned normalized RGBA texel data with the first 64 bits encoding alpha values followed by 64 bits encoding RGB values.FORMAT_ETC2_R8G8B8A8_SRGB_BLOCKspecifies a four-component, ETC2 compressed format where each 128-bit compressed texel block encodes a 4×4 rectangle of unsigned normalized RGBA texel data with the first 64 bits encoding alpha values followed by 64 bits encoding RGB values with sRGB nonlinear encoding applied.FORMAT_EAC_R11_UNORM_BLOCKspecifies a one-component, ETC2 compressed format where each 64-bit compressed texel block encodes a 4×4 rectangle of unsigned normalized red texel data.FORMAT_EAC_R11_SNORM_BLOCKspecifies a one-component, ETC2 compressed format where each 64-bit compressed texel block encodes a 4×4 rectangle of signed normalized red texel data.FORMAT_EAC_R11G11_UNORM_BLOCKspecifies a two-component, ETC2 compressed format where each 128-bit compressed texel block encodes a 4×4 rectangle of unsigned normalized RG texel data with the first 64 bits encoding red values followed by 64 bits encoding green values.FORMAT_EAC_R11G11_SNORM_BLOCKspecifies a two-component, ETC2 compressed format where each 128-bit compressed texel block encodes a 4×4 rectangle of signed normalized RG texel data with the first 64 bits encoding red values followed by 64 bits encoding green values.FORMAT_ASTC_4x4_UNORM_BLOCKspecifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 4×4 rectangle of unsigned normalized RGBA texel data.FORMAT_ASTC_4x4_SRGB_BLOCKspecifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 4×4 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear encoding applied to the RGB components.FORMAT_ASTC_4x4_SFLOAT_BLOCKspecifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 4×4 rectangle of signed floating-point RGBA texel data.FORMAT_ASTC_5x4_UNORM_BLOCKspecifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 5×4 rectangle of unsigned normalized RGBA texel data.FORMAT_ASTC_5x4_SRGB_BLOCKspecifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 5×4 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear encoding applied to the RGB components.FORMAT_ASTC_5x4_SFLOAT_BLOCKspecifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 5×4 rectangle of signed floating-point RGBA texel data.FORMAT_ASTC_5x5_UNORM_BLOCKspecifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 5×5 rectangle of unsigned normalized RGBA texel data.FORMAT_ASTC_5x5_SRGB_BLOCKspecifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 5×5 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear encoding applied to the RGB components.FORMAT_ASTC_5x5_SFLOAT_BLOCKspecifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 5×5 rectangle of signed floating-point RGBA texel data.FORMAT_ASTC_6x5_UNORM_BLOCKspecifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 6×5 rectangle of unsigned normalized RGBA texel data.FORMAT_ASTC_6x5_SRGB_BLOCKspecifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 6×5 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear encoding applied to the RGB components.FORMAT_ASTC_6x5_SFLOAT_BLOCKspecifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 6×5 rectangle of signed floating-point RGBA texel data.FORMAT_ASTC_6x6_UNORM_BLOCKspecifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 6×6 rectangle of unsigned normalized RGBA texel data.FORMAT_ASTC_6x6_SRGB_BLOCKspecifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 6×6 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear encoding applied to the RGB components.FORMAT_ASTC_6x6_SFLOAT_BLOCKspecifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 6×6 rectangle of signed floating-point RGBA texel data.FORMAT_ASTC_8x5_UNORM_BLOCKspecifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes an 8×5 rectangle of unsigned normalized RGBA texel data.FORMAT_ASTC_8x5_SRGB_BLOCKspecifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes an 8×5 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear encoding applied to the RGB components.FORMAT_ASTC_8x5_SFLOAT_BLOCKspecifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 8×5 rectangle of signed floating-point RGBA texel data.FORMAT_ASTC_8x6_UNORM_BLOCKspecifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes an 8×6 rectangle of unsigned normalized RGBA texel data.FORMAT_ASTC_8x6_SRGB_BLOCKspecifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes an 8×6 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear encoding applied to the RGB components.FORMAT_ASTC_8x6_SFLOAT_BLOCKspecifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 8×6 rectangle of signed floating-point RGBA texel data.FORMAT_ASTC_8x8_UNORM_BLOCKspecifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes an 8×8 rectangle of unsigned normalized RGBA texel data.FORMAT_ASTC_8x8_SRGB_BLOCKspecifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes an 8×8 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear encoding applied to the RGB components.FORMAT_ASTC_8x8_SFLOAT_BLOCKspecifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 8×8 rectangle of signed floating-point RGBA texel data.FORMAT_ASTC_10x5_UNORM_BLOCKspecifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 10×5 rectangle of unsigned normalized RGBA texel data.FORMAT_ASTC_10x5_SRGB_BLOCKspecifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 10×5 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear encoding applied to the RGB components.FORMAT_ASTC_10x5_SFLOAT_BLOCKspecifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 10×5 rectangle of signed floating-point RGBA texel data.FORMAT_ASTC_10x6_UNORM_BLOCKspecifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 10×6 rectangle of unsigned normalized RGBA texel data.FORMAT_ASTC_10x6_SRGB_BLOCKspecifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 10×6 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear encoding applied to the RGB components.FORMAT_ASTC_10x6_SFLOAT_BLOCKspecifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 10×6 rectangle of signed floating-point RGBA texel data.FORMAT_ASTC_10x8_UNORM_BLOCKspecifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 10×8 rectangle of unsigned normalized RGBA texel data.FORMAT_ASTC_10x8_SRGB_BLOCKspecifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 10×8 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear encoding applied to the RGB components.FORMAT_ASTC_10x8_SFLOAT_BLOCKspecifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 10×8 rectangle of signed floating-point RGBA texel data.FORMAT_ASTC_10x10_UNORM_BLOCKspecifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 10×10 rectangle of unsigned normalized RGBA texel data.FORMAT_ASTC_10x10_SRGB_BLOCKspecifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 10×10 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear encoding applied to the RGB components.FORMAT_ASTC_10x10_SFLOAT_BLOCKspecifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 10×10 rectangle of signed floating-point RGBA texel data.FORMAT_ASTC_12x10_UNORM_BLOCKspecifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 12×10 rectangle of unsigned normalized RGBA texel data.FORMAT_ASTC_12x10_SRGB_BLOCKspecifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 12×10 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear encoding applied to the RGB components.FORMAT_ASTC_12x10_SFLOAT_BLOCKspecifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 12×10 rectangle of signed floating-point RGBA texel data.FORMAT_ASTC_12x12_UNORM_BLOCKspecifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 12×12 rectangle of unsigned normalized RGBA texel data.FORMAT_ASTC_12x12_SRGB_BLOCKspecifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 12×12 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear encoding applied to the RGB components.FORMAT_ASTC_12x12_SFLOAT_BLOCKspecifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 12×12 rectangle of signed floating-point RGBA texel data.FORMAT_ASTC_3x3x3_UNORM_BLOCK_EXTspecifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 3×3×3 cuboid of unsigned normalized RGBA texel data.FORMAT_ASTC_3x3x3_SRGB_BLOCK_EXTspecifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 3×3×3 cuboid of unsigned normalized RGBA texel data with sRGB nonlinear encoding applied to the RGB components.FORMAT_ASTC_3x3x3_SFLOAT_BLOCK_EXTspecifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 3×3×3 cuboid of signed floating-point RGBA texel data.FORMAT_ASTC_4x3x3_UNORM_BLOCK_EXTspecifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 4×3×3 cuboid of unsigned normalized RGBA texel data.FORMAT_ASTC_4x3x3_SRGB_BLOCK_EXTspecifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 4×3×3 cuboid of unsigned normalized RGBA texel data with sRGB nonlinear encoding applied to the RGB components.FORMAT_ASTC_4x3x3_SFLOAT_BLOCK_EXTspecifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 4×3×3 cuboid of signed floating-point RGBA texel data.FORMAT_ASTC_4x4x3_UNORM_BLOCK_EXTspecifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 4×4×3 cuboid of unsigned normalized RGBA texel data.FORMAT_ASTC_4x4x3_SRGB_BLOCK_EXTspecifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 4×4×3 cuboid of unsigned normalized RGBA texel data with sRGB nonlinear encoding applied to the RGB components.FORMAT_ASTC_4x4x3_SFLOAT_BLOCK_EXTspecifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 4×4×3 cuboid of signed floating-point RGBA texel data.FORMAT_ASTC_4x4x4_UNORM_BLOCK_EXTspecifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 4×4×4 cuboid of unsigned normalized RGBA texel data.FORMAT_ASTC_4x4x4_SRGB_BLOCK_EXTspecifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 4×4×4 cuboid of unsigned normalized RGBA texel data with sRGB nonlinear encoding applied to the RGB components.FORMAT_ASTC_4x4x4_SFLOAT_BLOCK_EXTspecifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 4×4×4 cuboid of signed floating-point RGBA texel data.FORMAT_ASTC_5x4x4_UNORM_BLOCK_EXTspecifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 5×4×4 cuboid of unsigned normalized RGBA texel data.FORMAT_ASTC_5x4x4_SRGB_BLOCK_EXTspecifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 5×4×4 cuboid of unsigned normalized RGBA texel data with sRGB nonlinear encoding applied to the RGB components.FORMAT_ASTC_5x4x4_SFLOAT_BLOCK_EXTspecifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 5×4×4 cuboid of signed floating-point RGBA texel data.FORMAT_ASTC_5x5x4_UNORM_BLOCK_EXTspecifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 5×5×4 cuboid of unsigned normalized RGBA texel data.FORMAT_ASTC_5x5x4_SRGB_BLOCK_EXTspecifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 5×5×4 cuboid of unsigned normalized RGBA texel data with sRGB nonlinear encoding applied to the RGB components.FORMAT_ASTC_5x5x4_SFLOAT_BLOCK_EXTspecifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 5×5×4 cuboid of signed floating-point RGBA texel data.FORMAT_ASTC_5x5x5_UNORM_BLOCK_EXTspecifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 5×5×5 cuboid of unsigned normalized RGBA texel data.FORMAT_ASTC_5x5x5_SRGB_BLOCK_EXTspecifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 5×5×5 cuboid of unsigned normalized RGBA texel data with sRGB nonlinear encoding applied to the RGB components.FORMAT_ASTC_5x5x5_SFLOAT_BLOCK_EXTspecifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 5×5×5 cuboid of signed floating-point RGBA texel data.FORMAT_ASTC_6x5x5_UNORM_BLOCK_EXTspecifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 6×5×5 cuboid of unsigned normalized RGBA texel data.FORMAT_ASTC_6x5x5_SRGB_BLOCK_EXTspecifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 6×5×5 cuboid of unsigned normalized RGBA texel data with sRGB nonlinear encoding applied to the RGB components.FORMAT_ASTC_6x5x5_SFLOAT_BLOCK_EXTspecifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 6×5×5 cuboid of signed floating-point RGBA texel data.FORMAT_ASTC_6x6x5_UNORM_BLOCK_EXTspecifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 6×6×5 cuboid of unsigned normalized RGBA texel data.FORMAT_ASTC_6x6x5_SRGB_BLOCK_EXTspecifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 6×6×5 cuboid of unsigned normalized RGBA texel data with sRGB nonlinear encoding applied to the RGB components.FORMAT_ASTC_6x6x5_SFLOAT_BLOCK_EXTspecifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 6×6×5 cuboid of signed floating-point RGBA texel data.FORMAT_ASTC_6x6x6_UNORM_BLOCK_EXTspecifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 6×6×6 cuboid of unsigned normalized RGBA texel data.FORMAT_ASTC_6x6x6_SRGB_BLOCK_EXTspecifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 6×6×6 cuboid of unsigned normalized RGBA texel data with sRGB nonlinear encoding applied to the RGB components.FORMAT_ASTC_6x6x6_SFLOAT_BLOCK_EXTspecifies a four-component, ASTC compressed format where each 128-bit compressed texel block encodes a 6×6×6 cuboid of signed floating-point RGBA texel data.FORMAT_G8B8G8R8_422_UNORMspecifies a four-component, 32-bit format containing a pair of G components, an R component, and a B component, collectively encoding a 2×1 rectangle of unsigned normalized RGB texel data. One G value is present at each i coordinate, with the B and R values shared across both G values and thus recorded at half the horizontal resolution of the image. This format has an 8-bit G component for the even i coordinate in byte 0, an 8-bit B component in byte 1, an 8-bit G component for the odd i coordinate in byte 2, and an 8-bit R component in byte 3. This format only supports images with a width that is a multiple of two. For the purposes of the constraints on copy extents, this format is treated as a compressed format with a 2×1 compressed texel block.FORMAT_B8G8R8G8_422_UNORMspecifies a four-component, 32-bit format containing a pair of G components, an R component, and a B component, collectively encoding a 2×1 rectangle of unsigned normalized RGB texel data. One G value is present at each i coordinate, with the B and R values shared across both G values and thus recorded at half the horizontal resolution of the image. This format has an 8-bit B component in byte 0, an 8-bit G component for the even i coordinate in byte 1, an 8-bit R component in byte 2, and an 8-bit G component for the odd i coordinate in byte 3. This format only supports images with a width that is a multiple of two. For the purposes of the constraints on copy extents, this format is treated as a compressed format with a 2×1 compressed texel block.FORMAT_G8_B8_R8_3PLANE_420_UNORMspecifies an unsigned normalized multi-planar format that has an 8-bit G component in plane 0, an 8-bit B component in plane 1, and an 8-bit R component in plane 2. The horizontal and vertical dimensions of the R and B planes are halved relative to the image dimensions, and each R and B component is shared with the G components for which (leftlfloor i_G times 0.5 rightrfloor = i_B = i_R) and (leftlfloor j_G times 0.5 rightrfloor = j_B = j_R). The location of each plane when this image is in linear layout can be determined viagetImageSubresourceLayout, usingIMAGE_ASPECT_PLANE_0_BITfor the G plane,IMAGE_ASPECT_PLANE_1_BITfor the B plane, andIMAGE_ASPECT_PLANE_2_BITfor the R plane. This format only supports images with a width and height that is a multiple of two.FORMAT_G8_B8R8_2PLANE_420_UNORMspecifies an unsigned normalized multi-planar format that has an 8-bit G component in plane 0, and a two-component, 16-bit BR plane 1 consisting of an 8-bit B component in byte 0 and an 8-bit R component in byte 1. The horizontal and vertical dimensions of the BR plane are halved relative to the image dimensions, and each R and B value is shared with the G components for which (leftlfloor i_G times 0.5 rightrfloor = i_B = i_R) and (leftlfloor j_G times 0.5 rightrfloor = j_B = j_R). The location of each plane when this image is in linear layout can be determined viagetImageSubresourceLayout, usingIMAGE_ASPECT_PLANE_0_BITfor the G plane, andIMAGE_ASPECT_PLANE_1_BITfor the BR plane. This format only supports images with a width and height that is a multiple of two.FORMAT_G8_B8_R8_3PLANE_422_UNORMspecifies an unsigned normalized multi-planar format that has an 8-bit G component in plane 0, an 8-bit B component in plane 1, and an 8-bit R component in plane 2. The horizontal dimension of the R and B plane is halved relative to the image dimensions, and each R and B value is shared with the G components for which (leftlfloor i_G times 0.5 rightrfloor = i_B = i_R). The location of each plane when this image is in linear layout can be determined viagetImageSubresourceLayout, usingIMAGE_ASPECT_PLANE_0_BITfor the G plane,IMAGE_ASPECT_PLANE_1_BITfor the B plane, andIMAGE_ASPECT_PLANE_2_BITfor the R plane. This format only supports images with a width that is a multiple of two.FORMAT_G8_B8R8_2PLANE_422_UNORMspecifies an unsigned normalized multi-planar format that has an 8-bit G component in plane 0, and a two-component, 16-bit BR plane 1 consisting of an 8-bit B component in byte 0 and an 8-bit R component in byte 1. The horizontal dimension of the BR plane is halved relative to the image dimensions, and each R and B value is shared with the G components for which \(\left\lfloor i_G \times 0.5 \right\rfloor = i_B = i_R\). The location of each plane when this image is in linear layout can be determined viagetImageSubresourceLayout, usingIMAGE_ASPECT_PLANE_0_BITfor the G plane, andIMAGE_ASPECT_PLANE_1_BITfor the BR plane. This format only supports images with a width that is a multiple of two.FORMAT_G8_B8_R8_3PLANE_444_UNORMspecifies an unsigned normalized multi-planar format that has an 8-bit G component in plane 0, an 8-bit B component in plane 1, and an 8-bit R component in plane 2. Each plane has the same dimensions and each R, G, and B component contributes to a single texel. The location of each plane when this image is in linear layout can be determined viagetImageSubresourceLayout, usingIMAGE_ASPECT_PLANE_0_BITfor the G plane,IMAGE_ASPECT_PLANE_1_BITfor the B plane, andIMAGE_ASPECT_PLANE_2_BITfor the R plane.FORMAT_R10X6_UNORM_PACK16specifies a one-component, 16-bit unsigned normalized format that has a single 10-bit R component in the top 10 bits of a 16-bit word, with the bottom 6 bits unused.FORMAT_R10X6G10X6_UNORM_2PACK16specifies a two-component, 32-bit unsigned normalized format that has a 10-bit R component in the top 10 bits of the word in bytes 0..1, and a 10-bit G component in the top 10 bits of the word in bytes 2..3, with the bottom 6 bits of each word unused.FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16specifies a four-component, 64-bit unsigned normalized format that has a 10-bit R component in the top 10 bits of the word in bytes 0..1, a 10-bit G component in the top 10 bits of the word in bytes 2..3, a 10-bit B component in the top 10 bits of the word in bytes 4..5, and a 10-bit A component in the top 10 bits of the word in bytes 6..7, with the bottom 6 bits of each word unused.FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16specifies a four-component, 64-bit format containing a pair of G components, an R component, and a B component, collectively encoding a 2×1 rectangle of unsigned normalized RGB texel data. One G value is present at each i coordinate, with the B and R values shared across both G values and thus recorded at half the horizontal resolution of the image. This format has a 10-bit G component for the even i coordinate in the top 10 bits of the word in bytes 0..1, a 10-bit B component in the top 10 bits of the word in bytes 2..3, a 10-bit G component for the odd i coordinate in the top 10 bits of the word in bytes 4..5, and a 10-bit R component in the top 10 bits of the word in bytes 6..7, with the bottom 6 bits of each word unused. This format only supports images with a width that is a multiple of two. For the purposes of the constraints on copy extents, this format is treated as a compressed format with a 2×1 compressed texel block.FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16specifies a four-component, 64-bit format containing a pair of G components, an R component, and a B component, collectively encoding a 2×1 rectangle of unsigned normalized RGB texel data. One G value is present at each i coordinate, with the B and R values shared across both G values and thus recorded at half the horizontal resolution of the image. This format has a 10-bit B component in the top 10 bits of the word in bytes 0..1, a 10-bit G component for the even i coordinate in the top 10 bits of the word in bytes 2..3, a 10-bit R component in the top 10 bits of the word in bytes 4..5, and a 10-bit G component for the odd i coordinate in the top 10 bits of the word in bytes 6..7, with the bottom 6 bits of each word unused. This format only supports images with a width that is a multiple of two. For the purposes of the constraints on copy extents, this format is treated as a compressed format with a 2×1 compressed texel block.FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16specifies an unsigned normalized multi-planar format that has a 10-bit G component in the top 10 bits of each 16-bit word of plane 0, a 10-bit B component in the top 10 bits of each 16-bit word of plane 1, and a 10-bit R component in the top 10 bits of each 16-bit word of plane 2, with the bottom 6 bits of each word unused. The horizontal and vertical dimensions of the R and B planes are halved relative to the image dimensions, and each R and B component is shared with the G components for which (leftlfloor i_G times 0.5 rightrfloor = i_B = i_R) and (leftlfloor j_G times 0.5 rightrfloor = j_B = j_R). The location of each plane when this image is in linear layout can be determined viagetImageSubresourceLayout, usingIMAGE_ASPECT_PLANE_0_BITfor the G plane,IMAGE_ASPECT_PLANE_1_BITfor the B plane, andIMAGE_ASPECT_PLANE_2_BITfor the R plane. This format only supports images with a width and height that is a multiple of two.FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16specifies an unsigned normalized multi-planar format that has a 10-bit G component in the top 10 bits of each 16-bit word of plane 0, and a two-component, 32-bit BR plane 1 consisting of a 10-bit B component in the top 10 bits of the word in bytes 0..1, and a 10-bit R component in the top 10 bits of the word in bytes 2..3, with the bottom 6 bits of each word unused. The horizontal and vertical dimensions of the BR plane are halved relative to the image dimensions, and each R and B value is shared with the G components for which (leftlfloor i_G times 0.5 rightrfloor = i_B = i_R) and (leftlfloor j_G times 0.5 rightrfloor = j_B = j_R). The location of each plane when this image is in linear layout can be determined viagetImageSubresourceLayout, usingIMAGE_ASPECT_PLANE_0_BITfor the G plane, andIMAGE_ASPECT_PLANE_1_BITfor the BR plane. This format only supports images with a width and height that is a multiple of two.FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16specifies an unsigned normalized multi-planar format that has a 10-bit G component in the top 10 bits of each 16-bit word of plane 0, a 10-bit B component in the top 10 bits of each 16-bit word of plane 1, and a 10-bit R component in the top 10 bits of each 16-bit word of plane 2, with the bottom 6 bits of each word unused. The horizontal dimension of the R and B plane is halved relative to the image dimensions, and each R and B value is shared with the G components for which (leftlfloor i_G times 0.5 rightrfloor = i_B = i_R). The location of each plane when this image is in linear layout can be determined viagetImageSubresourceLayout, usingIMAGE_ASPECT_PLANE_0_BITfor the G plane,IMAGE_ASPECT_PLANE_1_BITfor the B plane, andIMAGE_ASPECT_PLANE_2_BITfor the R plane. This format only supports images with a width that is a multiple of two.FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16specifies an unsigned normalized multi-planar format that has a 10-bit G component in the top 10 bits of each 16-bit word of plane 0, and a two-component, 32-bit BR plane 1 consisting of a 10-bit B component in the top 10 bits of the word in bytes 0..1, and a 10-bit R component in the top 10 bits of the word in bytes 2..3, with the bottom 6 bits of each word unused. The horizontal dimension of the BR plane is halved relative to the image dimensions, and each R and B value is shared with the G components for which \(\left\lfloor i_G \times 0.5 \right\rfloor = i_B = i_R\). The location of each plane when this image is in linear layout can be determined viagetImageSubresourceLayout, usingIMAGE_ASPECT_PLANE_0_BITfor the G plane, andIMAGE_ASPECT_PLANE_1_BITfor the BR plane. This format only supports images with a width that is a multiple of two.FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16specifies an unsigned normalized multi-planar format that has a 10-bit G component in the top 10 bits of each 16-bit word of plane 0, a 10-bit B component in the top 10 bits of each 16-bit word of plane 1, and a 10-bit R component in the top 10 bits of each 16-bit word of plane 2, with the bottom 6 bits of each word unused. Each plane has the same dimensions and each R, G, and B component contributes to a single texel. The location of each plane when this image is in linear layout can be determined viagetImageSubresourceLayout, usingIMAGE_ASPECT_PLANE_0_BITfor the G plane,IMAGE_ASPECT_PLANE_1_BITfor the B plane, andIMAGE_ASPECT_PLANE_2_BITfor the R plane.FORMAT_R12X4_UNORM_PACK16specifies a one-component, 16-bit unsigned normalized format that has a single 12-bit R component in the top 12 bits of a 16-bit word, with the bottom 4 bits unused.FORMAT_R12X4G12X4_UNORM_2PACK16specifies a two-component, 32-bit unsigned normalized format that has a 12-bit R component in the top 12 bits of the word in bytes 0..1, and a 12-bit G component in the top 12 bits of the word in bytes 2..3, with the bottom 4 bits of each word unused.FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16specifies a four-component, 64-bit unsigned normalized format that has a 12-bit R component in the top 12 bits of the word in bytes 0..1, a 12-bit G component in the top 12 bits of the word in bytes 2..3, a 12-bit B component in the top 12 bits of the word in bytes 4..5, and a 12-bit A component in the top 12 bits of the word in bytes 6..7, with the bottom 4 bits of each word unused.FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16specifies a four-component, 64-bit format containing a pair of G components, an R component, and a B component, collectively encoding a 2×1 rectangle of unsigned normalized RGB texel data. One G value is present at each i coordinate, with the B and R values shared across both G values and thus recorded at half the horizontal resolution of the image. This format has a 12-bit G component for the even i coordinate in the top 12 bits of the word in bytes 0..1, a 12-bit B component in the top 12 bits of the word in bytes 2..3, a 12-bit G component for the odd i coordinate in the top 12 bits of the word in bytes 4..5, and a 12-bit R component in the top 12 bits of the word in bytes 6..7, with the bottom 4 bits of each word unused. This format only supports images with a width that is a multiple of two. For the purposes of the constraints on copy extents, this format is treated as a compressed format with a 2×1 compressed texel block.FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16specifies a four-component, 64-bit format containing a pair of G components, an R component, and a B component, collectively encoding a 2×1 rectangle of unsigned normalized RGB texel data. One G value is present at each i coordinate, with the B and R values shared across both G values and thus recorded at half the horizontal resolution of the image. This format has a 12-bit B component in the top 12 bits of the word in bytes 0..1, a 12-bit G component for the even i coordinate in the top 12 bits of the word in bytes 2..3, a 12-bit R component in the top 12 bits of the word in bytes 4..5, and a 12-bit G component for the odd i coordinate in the top 12 bits of the word in bytes 6..7, with the bottom 4 bits of each word unused. This format only supports images with a width that is a multiple of two. For the purposes of the constraints on copy extents, this format is treated as a compressed format with a 2×1 compressed texel block.FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16specifies an unsigned normalized multi-planar format that has a 12-bit G component in the top 12 bits of each 16-bit word of plane 0, a 12-bit B component in the top 12 bits of each 16-bit word of plane 1, and a 12-bit R component in the top 12 bits of each 16-bit word of plane 2, with the bottom 4 bits of each word unused. The horizontal and vertical dimensions of the R and B planes are halved relative to the image dimensions, and each R and B component is shared with the G components for which (leftlfloor i_G times 0.5 rightrfloor = i_B = i_R) and (leftlfloor j_G times 0.5 rightrfloor = j_B = j_R). The location of each plane when this image is in linear layout can be determined viagetImageSubresourceLayout, usingIMAGE_ASPECT_PLANE_0_BITfor the G plane,IMAGE_ASPECT_PLANE_1_BITfor the B plane, andIMAGE_ASPECT_PLANE_2_BITfor the R plane. This format only supports images with a width and height that is a multiple of two.FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16specifies an unsigned normalized multi-planar format that has a 12-bit G component in the top 12 bits of each 16-bit word of plane 0, and a two-component, 32-bit BR plane 1 consisting of a 12-bit B component in the top 12 bits of the word in bytes 0..1, and a 12-bit R component in the top 12 bits of the word in bytes 2..3, with the bottom 4 bits of each word unused. The horizontal and vertical dimensions of the BR plane are halved relative to the image dimensions, and each R and B value is shared with the G components for which (leftlfloor i_G times 0.5 rightrfloor = i_B = i_R) and (leftlfloor j_G times 0.5 rightrfloor = j_B = j_R). The location of each plane when this image is in linear layout can be determined viagetImageSubresourceLayout, usingIMAGE_ASPECT_PLANE_0_BITfor the G plane, andIMAGE_ASPECT_PLANE_1_BITfor the BR plane. This format only supports images with a width and height that is a multiple of two.FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16specifies an unsigned normalized multi-planar format that has a 12-bit G component in the top 12 bits of each 16-bit word of plane 0, a 12-bit B component in the top 12 bits of each 16-bit word of plane 1, and a 12-bit R component in the top 12 bits of each 16-bit word of plane 2, with the bottom 4 bits of each word unused. The horizontal dimension of the R and B plane is halved relative to the image dimensions, and each R and B value is shared with the G components for which (leftlfloor i_G times 0.5 rightrfloor = i_B = i_R). The location of each plane when this image is in linear layout can be determined viagetImageSubresourceLayout, usingIMAGE_ASPECT_PLANE_0_BITfor the G plane,IMAGE_ASPECT_PLANE_1_BITfor the B plane, andIMAGE_ASPECT_PLANE_2_BITfor the R plane. This format only supports images with a width that is a multiple of two.FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16specifies an unsigned normalized multi-planar format that has a 12-bit G component in the top 12 bits of each 16-bit word of plane 0, and a two-component, 32-bit BR plane 1 consisting of a 12-bit B component in the top 12 bits of the word in bytes 0..1, and a 12-bit R component in the top 12 bits of the word in bytes 2..3, with the bottom 4 bits of each word unused. The horizontal dimension of the BR plane is halved relative to the image dimensions, and each R and B value is shared with the G components for which \(\left\lfloor i_G \times 0.5 \right\rfloor = i_B = i_R\). The location of each plane when this image is in linear layout can be determined viagetImageSubresourceLayout, usingIMAGE_ASPECT_PLANE_0_BITfor the G plane, andIMAGE_ASPECT_PLANE_1_BITfor the BR plane. This format only supports images with a width that is a multiple of two.FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16specifies an unsigned normalized multi-planar format that has a 12-bit G component in the top 12 bits of each 16-bit word of plane 0, a 12-bit B component in the top 12 bits of each 16-bit word of plane 1, and a 12-bit R component in the top 12 bits of each 16-bit word of plane 2, with the bottom 4 bits of each word unused. Each plane has the same dimensions and each R, G, and B component contributes to a single texel. The location of each plane when this image is in linear layout can be determined viagetImageSubresourceLayout, usingIMAGE_ASPECT_PLANE_0_BITfor the G plane,IMAGE_ASPECT_PLANE_1_BITfor the B plane, andIMAGE_ASPECT_PLANE_2_BITfor the R plane.FORMAT_G16B16G16R16_422_UNORMspecifies a four-component, 64-bit format containing a pair of G components, an R component, and a B component, collectively encoding a 2×1 rectangle of unsigned normalized RGB texel data. One G value is present at each i coordinate, with the B and R values shared across both G values and thus recorded at half the horizontal resolution of the image. This format has a 16-bit G component for the even i coordinate in the word in bytes 0..1, a 16-bit B component in the word in bytes 2..3, a 16-bit G component for the odd i coordinate in the word in bytes 4..5, and a 16-bit R component in the word in bytes 6..7. This format only supports images with a width that is a multiple of two. For the purposes of the constraints on copy extents, this format is treated as a compressed format with a 2×1 compressed texel block.FORMAT_B16G16R16G16_422_UNORMspecifies a four-component, 64-bit format containing a pair of G components, an R component, and a B component, collectively encoding a 2×1 rectangle of unsigned normalized RGB texel data. One G value is present at each i coordinate, with the B and R values shared across both G values and thus recorded at half the horizontal resolution of the image. This format has a 16-bit B component in the word in bytes 0..1, a 16-bit G component for the even i coordinate in the word in bytes 2..3, a 16-bit R component in the word in bytes 4..5, and a 16-bit G component for the odd i coordinate in the word in bytes 6..7. This format only supports images with a width that is a multiple of two. For the purposes of the constraints on copy extents, this format is treated as a compressed format with a 2×1 compressed texel block.FORMAT_G16_B16_R16_3PLANE_420_UNORMspecifies an unsigned normalized multi-planar format that has a 16-bit G component in each 16-bit word of plane 0, a 16-bit B component in each 16-bit word of plane 1, and a 16-bit R component in each 16-bit word of plane 2. The horizontal and vertical dimensions of the R and B planes are halved relative to the image dimensions, and each R and B component is shared with the G components for which (leftlfloor i_G times 0.5 rightrfloor = i_B = i_R) and (leftlfloor j_G times 0.5 rightrfloor = j_B = j_R). The location of each plane when this image is in linear layout can be determined viagetImageSubresourceLayout, usingIMAGE_ASPECT_PLANE_0_BITfor the G plane,IMAGE_ASPECT_PLANE_1_BITfor the B plane, andIMAGE_ASPECT_PLANE_2_BITfor the R plane. This format only supports images with a width and height that is a multiple of two.FORMAT_G16_B16R16_2PLANE_420_UNORMspecifies an unsigned normalized multi-planar format that has a 16-bit G component in each 16-bit word of plane 0, and a two-component, 32-bit BR plane 1 consisting of a 16-bit B component in the word in bytes 0..1, and a 16-bit R component in the word in bytes 2..3. The horizontal and vertical dimensions of the BR plane are halved relative to the image dimensions, and each R and B value is shared with the G components for which (leftlfloor i_G times 0.5 rightrfloor = i_B = i_R) and (leftlfloor j_G times 0.5 rightrfloor = j_B = j_R). The location of each plane when this image is in linear layout can be determined viagetImageSubresourceLayout, usingIMAGE_ASPECT_PLANE_0_BITfor the G plane, andIMAGE_ASPECT_PLANE_1_BITfor the BR plane. This format only supports images with a width and height that is a multiple of two.FORMAT_G16_B16_R16_3PLANE_422_UNORMspecifies an unsigned normalized multi-planar format that has a 16-bit G component in each 16-bit word of plane 0, a 16-bit B component in each 16-bit word of plane 1, and a 16-bit R component in each 16-bit word of plane 2. The horizontal dimension of the R and B plane is halved relative to the image dimensions, and each R and B value is shared with the G components for which (leftlfloor i_G times 0.5 rightrfloor = i_B = i_R). The location of each plane when this image is in linear layout can be determined viagetImageSubresourceLayout, usingIMAGE_ASPECT_PLANE_0_BITfor the G plane,IMAGE_ASPECT_PLANE_1_BITfor the B plane, andIMAGE_ASPECT_PLANE_2_BITfor the R plane. This format only supports images with a width that is a multiple of two.FORMAT_G16_B16R16_2PLANE_422_UNORMspecifies an unsigned normalized multi-planar format that has a 16-bit G component in each 16-bit word of plane 0, and a two-component, 32-bit BR plane 1 consisting of a 16-bit B component in the word in bytes 0..1, and a 16-bit R component in the word in bytes 2..3. The horizontal dimension of the BR plane is halved relative to the image dimensions, and each R and B value is shared with the G components for which \(\left\lfloor i_G \times 0.5 \right\rfloor = i_B = i_R\). The location of each plane when this image is in linear layout can be determined viagetImageSubresourceLayout, usingIMAGE_ASPECT_PLANE_0_BITfor the G plane, andIMAGE_ASPECT_PLANE_1_BITfor the BR plane. This format only supports images with a width that is a multiple of two.FORMAT_G16_B16_R16_3PLANE_444_UNORMspecifies an unsigned normalized multi-planar format that has a 16-bit G component in each 16-bit word of plane 0, a 16-bit B component in each 16-bit word of plane 1, and a 16-bit R component in each 16-bit word of plane 2. Each plane has the same dimensions and each R, G, and B component contributes to a single texel. The location of each plane when this image is in linear layout can be determined viagetImageSubresourceLayout, usingIMAGE_ASPECT_PLANE_0_BITfor the G plane,IMAGE_ASPECT_PLANE_1_BITfor the B plane, andIMAGE_ASPECT_PLANE_2_BITfor the R plane.FORMAT_G8_B8R8_2PLANE_444_UNORMspecifies an unsigned normalized multi-planar format that has an 8-bit G component in plane 0, and a two-component, 16-bit BR plane 1 consisting of an 8-bit B component in byte 0 and an 8-bit R component in byte 1. Both planes have the same dimensions and each R, G, and B component contributes to a single texel. The location of each plane when this image is in linear layout can be determined viagetImageSubresourceLayout, usingIMAGE_ASPECT_PLANE_0_BITfor the G plane, andIMAGE_ASPECT_PLANE_1_BITfor the BR plane.FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16specifies an unsigned normalized multi-planar format that has a 10-bit G component in the top 10 bits of each 16-bit word of plane 0, and a two-component, 32-bit BR plane 1 consisting of a 10-bit B component in the top 10 bits of the word in bytes 0..1, and a 10-bit R component in the top 10 bits of the word in bytes 2..3, the bottom 6 bits of each word unused. Both planes have the same dimensions and each R, G, and B component contributes to a single texel. The location of each plane when this image is in linear layout can be determined viagetImageSubresourceLayout, usingIMAGE_ASPECT_PLANE_0_BITfor the G plane, andIMAGE_ASPECT_PLANE_1_BITfor the BR plane.FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16specifies an unsigned normalized multi-planar format that has a 12-bit G component in the top 12 bits of each 16-bit word of plane 0, and a two-component, 32-bit BR plane 1 consisting of a 12-bit B component in the top 12 bits of the word in bytes 0..1, and a 12-bit R component in the top 12 bits of the word in bytes 2..3, the bottom 4 bits of each word unused. Both planes have the same dimensions and each R, G, and B component contributes to a single texel. The location of each plane when this image is in linear layout can be determined viagetImageSubresourceLayout, usingIMAGE_ASPECT_PLANE_0_BITfor the G plane, andIMAGE_ASPECT_PLANE_1_BITfor the BR plane.FORMAT_G16_B16R16_2PLANE_444_UNORMspecifies an unsigned normalized multi-planar format that has a 16-bit G component in each 16-bit word of plane 0, and a two-component, 32-bit BR plane 1 consisting of a 16-bit B component in the word in bytes 0..1, and a 16-bit R component in the word in bytes 2..3. Both planes have the same dimensions and each R, G, and B component contributes to a single texel. The location of each plane when this image is in linear layout can be determined viagetImageSubresourceLayout, usingIMAGE_ASPECT_PLANE_0_BITfor the G plane, andIMAGE_ASPECT_PLANE_1_BITfor the BR plane.FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMGspecifies a four-component, PVRTC compressed format where each 64-bit compressed texel block encodes an 8×4 rectangle of unsigned normalized RGBA texel data.FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMGspecifies a four-component, PVRTC compressed format where each 64-bit compressed texel block encodes a 4×4 rectangle of unsigned normalized RGBA texel data.FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMGspecifies a four-component, PVRTC compressed format where each 64-bit compressed texel block encodes an 8×4 rectangle of unsigned normalized RGBA texel data.FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMGspecifies a four-component, PVRTC compressed format where each 64-bit compressed texel block encodes a 4×4 rectangle of unsigned normalized RGBA texel data.FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMGspecifies a four-component, PVRTC compressed format where each 64-bit compressed texel block encodes an 8×4 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear encoding applied to the RGB components.FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMGspecifies a four-component, PVRTC compressed format where each 64-bit compressed texel block encodes a 4×4 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear encoding applied to the RGB components.FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMGspecifies a four-component, PVRTC compressed format where each 64-bit compressed texel block encodes an 8×4 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear encoding applied to the RGB components.FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMGspecifies a four-component, PVRTC compressed format where each 64-bit compressed texel block encodes a 4×4 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear encoding applied to the RGB components.FORMAT_R16G16_SFIXED5_NVspecifies a two-component, 16-bit signed fixed-point format with linear encoding. The components are signed two’s-complement integers where the most significant bit specifies the sign bit, the next 10 bits specify the integer value, and the last 5 bits represent the fractional value. The signed 16-bit values can be converted to floats in the range [-1024,1023.96875] by dividing the value by 32 (25).FORMAT_R10X6_UINT_PACK16_ARMspecifies a one-component, 16-bit unsigned integer format that has a single 10-bit R component in the top 10 bits of a 16-bit word, with the bottom 6 bits unused.FORMAT_R10X6G10X6_UINT_2PACK16_ARMspecifies a two-component, 32-bit unsigned integer format that has a 10-bit R component in the top 10 bits of the word in bytes 0..1, and a 10-bit G component in the top 10 bits of the word in bytes 2..3, with the bottom 6 bits of each word unused.FORMAT_R10X6G10X6B10X6A10X6_UINT_4PACK16_ARMspecifies a four-component, 64-bit unsigned integer format that has a 10-bit R component in the top 10 bits of the word in bytes 0..1, a 10-bit G component in the top 10 bits of the word in bytes 2..3, a 10-bit B component in the top 10 bits of the word in bytes 4..5, and a 10-bit A component in the top 10 bits of the word in bytes 6..7, with the bottom 6 bits of each word unused.FORMAT_R12X4_UINT_PACK16_ARMspecifies a one-component, 16-bit unsigned integer format that has a single 12-bit R component in the top 12 bits of a 16-bit word, with the bottom 4 bits unused.FORMAT_R12X4G12X4_UINT_2PACK16_ARMspecifies a two-component, 32-bit unsigned integer format that has a 12-bit R component in the top 12 bits of the word in bytes 0..1, and a 12-bit G component in the top 12 bits of the word in bytes 2..3, with the bottom 4 bits of each word unused.FORMAT_R12X4G12X4B12X4A12X4_UINT_4PACK16_ARMspecifies a four-component, 64-bit unsigned integer format that has a 12-bit R component in the top 12 bits of the word in bytes 0..1, a 12-bit G component in the top 12 bits of the word in bytes 2..3, a 12-bit B component in the top 12 bits of the word in bytes 4..5, and a 12-bit A component in the top 12 bits of the word in bytes 6..7, with the bottom 4 bits of each word unused.FORMAT_R14X2_UINT_PACK16_ARMspecifies a one-component, 16-bit unsigned integer format that has a single 14-bit R component in the top 14 bits of a 16-bit word, with the bottom 2 bits unused.FORMAT_R14X2G14X2_UINT_2PACK16_ARMspecifies a two-component, 32-bit unsigned integer format that has a 14-bit R component in the top 14 bits of the word in bytes 0..1, and a 14-bit G component in the top 14 bits of the word in bytes 2..3, with the bottom 2 bits of each word unused.FORMAT_R14X2G14X2B14X2A14X2_UINT_4PACK16_ARMspecifies a four-component, 64-bit unsigned integer format that has a 14-bit R component in the top 14 bits of the word in bytes 0..1, a 14-bit G component in the top 14 bits of the word in bytes 2..3, a 14-bit B component in the top 14 bits of the word in bytes 4..5, and a 14-bit A component in the top 14 bits of the word in bytes 6..7, with the bottom 2 bits of each word unused.FORMAT_R14X2_UNORM_PACK16_ARMspecifies a one-component, 16-bit unsigned normalized format that has a single 14-bit R component in the top 14 bits of a 16-bit word, with the bottom 2 bits unused.FORMAT_R14X2G14X2_UNORM_2PACK16_ARMspecifies a two-component, 32-bit unsigned normalized format that has a 14-bit R component in the top 14 bits of the word in bytes 0..1, and a 14-bit G component in the top 14 bits of the word in bytes 2..3, with the bottom 2 bits of each word unused.FORMAT_R14X2G14X2B14X2A14X2_UNORM_4PACK16_ARMspecifies a four-component, 64-bit unsigned normalized format that has a 14-bit R component in the top 14 bits of the word in bytes 0..1, a 14-bit G component in the top 14 bits of the word in bytes 2..3, a 14-bit B component in the top 14 bits of the word in bytes 4..5, and a 14-bit A component in the top 14 bits of the word in bytes 6..7, with the bottom 2 bits of each word unused.FORMAT_G14X2_B14X2R14X2_2PLANE_420_UNORM_3PACK16_ARMspecifies an unsigned normalized multi-planar format that has a 14-bit G component in the top 14 bits of each 16-bit word of plane 0, and a two-component, 32-bit BR plane 1 consisting of a 14-bit B component in the top 14 bits of the word in bytes 0..1, and a 14-bit R component in the top 14 bits of the word in bytes 2..3, with the bottom 2 bits of each word unused. The horizontal and vertical dimensions of the BR plane are halved relative to the image dimensions, and each R and B value is shared with the G components for which (leftlfloor i_G times 0.5 rightrfloor = i_B = i_R) and (leftlfloor j_G times 0.5 rightrfloor = j_B = j_R). The location of each plane when this image is in linear layout can be determined viagetImageSubresourceLayout, usingIMAGE_ASPECT_PLANE_0_BITfor the G plane, andIMAGE_ASPECT_PLANE_1_BITfor the BR plane. This format only supports images with a width and height that is a multiple of two.FORMAT_G14X2_B14X2R14X2_2PLANE_422_UNORM_3PACK16_ARMspecifies an unsigned normalized multi-planar format that has a 14-bit G component in the top 14 bits of each 16-bit word of plane 0, and a two-component, 32-bit BR plane 1 consisting of a 14-bit B component in the top 14 bits of the word in bytes 0..1, and a 14-bit R component in the top 14 bits of the word in bytes 2..3, with the bottom 2 bits of each word unused. The horizontal dimension of the BR plane is halved relative to the image dimensions, and each R and B value is shared with the G components for which \(\left\lfloor i_G \times 0.5 \right\rfloor = i_B = i_R\). The location of each plane when this image is in linear layout can be determined viagetImageSubresourceLayout, usingIMAGE_ASPECT_PLANE_0_BITfor the G plane, andIMAGE_ASPECT_PLANE_1_BITfor the BR plane. This format only supports images with a width that is a multiple of two.FORMAT_R8_BOOL_ARMspecifies a one-component 8-bit boolean format that has a single 8-bit R component. See https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#fundamentals-bool.FORMAT_R16_SFLOAT_FPENCODING_BFLOAT16_ARMspecifies a one-component, 16-bit signed floating-point format with BFLOAT16 encoding that has a single 16-bit R component.FORMAT_R8_SFLOAT_FPENCODING_FLOAT8E4M3_ARMspecifies a one-component, 8-bit signed floating-point format with FLOAT8E4M3 encoding that has a single 8-bit R component.FORMAT_R8_SFLOAT_FPENCODING_FLOAT8E5M2_ARMspecifies a one-component, 8-bit signed floating-point format with FLOAT8E5M2 encoding that has a single 8-bit R component.
See Also
VK_VERSION_1_0,
AccelerationStructureGeometryLinearSweptSpheresDataNV,
AccelerationStructureGeometrySpheresDataNV,
AccelerationStructureGeometryTrianglesDataKHR,
AccelerationStructureTrianglesDisplacementMicromapNV,
AndroidHardwareBufferFormatProperties2ANDROID,
AndroidHardwareBufferFormatPropertiesANDROID,
AndroidHardwareBufferFormatResolvePropertiesANDROID,
AttachmentDescription,
AttachmentDescription2,
BufferViewCreateInfo,
VkClusterAccelerationStructureTriangleClusterInputNV,
CommandBufferInheritanceRenderingInfo,
CustomResolveCreateInfoEXT,
DescriptorAddressInfoEXT,
FramebufferAttachmentImageInfo,
GeometryTrianglesNV,
ImageCreateInfo,
ImageFormatListCreateInfo,
ImageViewASTCDecodeModeEXT,
ImageViewCreateInfo,
VkNativeBufferFormatPropertiesOHOS,
OpticalFlowImageFormatPropertiesNV,
OpticalFlowSessionCreateInfoNV,
PhysicalDeviceImageFormatInfo2,
PhysicalDeviceSparseImageFormatInfo2,
PipelineRenderingCreateInfo,
RenderingAreaInfo,
SamplerCustomBorderColorCreateInfoEXT,
SamplerYcbcrConversionCreateInfo,
ScreenBufferFormatPropertiesQNX,
SurfaceFormatKHR,
SwapchainCreateInfoKHR,
TensorDescriptionARM,
TensorViewCreateInfoARM,
TexelBufferDescriptorInfoEXT,
VertexInputAttributeDescription,
VertexInputAttributeDescription2EXT,
VkVideoFormatPropertiesKHR,
VkVideoSessionCreateInfoKHR,
getPhysicalDeviceExternalImageFormatPropertiesNV,
getPhysicalDeviceFormatProperties,
getPhysicalDeviceFormatProperties2,
getPhysicalDeviceFormatProperties2,
getPhysicalDeviceImageFormatProperties,
getPhysicalDeviceSparseImageFormatProperties
Bundled Patterns
Instances
| Eq Format Source # | |
| Ord Format Source # | |
| Storable Format Source # | |
| Read Format Source # | |
| Show Format Source # | |
| Zero Format Source # | |
Defined in Vulkan.Core10.Enums.Format | |
newtype QueueFlagBits Source #
VkQueueFlagBits - Bitmask specifying capabilities of queues in a queue family
Description
QUEUE_GRAPHICS_BITspecifies that queues in this queue family support graphics operations.
QUEUE_COMPUTE_BITspecifies that queues in this queue family support compute operations.QUEUE_TRANSFER_BITspecifies that queues in this queue family support transfer operations.QUEUE_SPARSE_BINDING_BITspecifies that queues in this queue family support sparse memory management operations (see Sparse Resources). If any of the sparse resource features are supported, then at least one queue family must support this bit.- VK_QUEUE_VIDEO_DECODE_BIT_KHR specifies that queues in this queue family support video decode operations.
- VK_QUEUE_VIDEO_ENCODE_BIT_KHR specifies that queues in this queue family support video encode operations.
QUEUE_OPTICAL_FLOW_BIT_NVspecifies that queues in this queue family support optical flow operations.QUEUE_DATA_GRAPH_BIT_ARMspecifies that queues in this queue family support data graph operations.QUEUE_PROTECTED_BITspecifies that queues in this queue family support theDEVICE_QUEUE_CREATE_PROTECTED_BITbit. (see Protected Memory). If the physical device supports the protectedMemory feature, at least one of its queue families must support this bit.
At least one queue family of at least one physical device exposed by the implementation must support at least one of the following sets of operations:
- graphics operations
- compute operations
- video encode operations
- video decode operations
If an implementation exposes any queue family that supports graphics operations, at least one queue family of at least one physical device exposed by the implementation must support both graphics and compute operations.
Furthermore, if the protectedMemory physical device feature is supported, then at least one queue family of at least one physical device exposed by the implementation must support graphics operations, compute operations, and protected memory operations.
All commands that are allowed on a queue that supports transfer
operations are also allowed on a queue that supports either graphics or
compute operations. Thus, if the capabilities of a queue family include
QUEUE_GRAPHICS_BIT or QUEUE_COMPUTE_BIT, then reporting the
QUEUE_TRANSFER_BIT capability separately for that queue family is
optional.
For further details see Queues.
See Also
Constructors
| QueueFlagBits Flags |
Bundled Patterns
| pattern QUEUE_COMPUTE_BIT :: QueueFlagBits | |
| pattern QUEUE_DATA_GRAPH_BIT_ARM :: QueueFlagBits | |
| pattern QUEUE_GRAPHICS_BIT :: QueueFlagBits | |
| pattern QUEUE_OPTICAL_FLOW_BIT_NV :: QueueFlagBits | |
| pattern QUEUE_PROTECTED_BIT :: QueueFlagBits | |
| pattern QUEUE_SPARSE_BINDING_BIT :: QueueFlagBits | |
| pattern QUEUE_TRANSFER_BIT :: QueueFlagBits |
Instances
type QueueFlags = QueueFlagBits Source #
newtype MemoryPropertyFlagBits Source #
VkMemoryPropertyFlagBits - Bitmask specifying properties for a memory type
Description
MEMORY_PROPERTY_DEVICE_LOCAL_BITbit specifies that memory allocated with this type is the most efficient for device access. This property will be set if and only if the memory type belongs to a heap with theMEMORY_HEAP_DEVICE_LOCAL_BITset.
MEMORY_PROPERTY_HOST_VISIBLE_BITbit specifies that memory allocated with this type can be mapped for host access usingmapMemory.-
MEMORY_PROPERTY_HOST_COHERENT_BITbit specifies that the host cache management commandsflushMappedMemoryRangesandinvalidateMappedMemoryRangesare not needed to manage availability and visibility on the host. MEMORY_PROPERTY_HOST_CACHED_BITbit specifies that memory allocated with this type is cached on the host. Host memory accesses to uncached memory are slower than to cached memory, however uncached memory is always host coherent.MEMORY_PROPERTY_LAZILY_ALLOCATED_BITbit specifies that the memory type only allows device access to the memory. Memory types must not have bothMEMORY_PROPERTY_LAZILY_ALLOCATED_BITandMEMORY_PROPERTY_HOST_VISIBLE_BITset. Additionally, the object’s backing memory may be provided by the implementation lazily as specified in Lazily Allocated Memory.MEMORY_PROPERTY_PROTECTED_BITbit specifies that the memory type only allows device access to the memory, and allows protected queue operations to access the memory. Memory types must not haveMEMORY_PROPERTY_PROTECTED_BITset and any ofMEMORY_PROPERTY_HOST_VISIBLE_BITset, orMEMORY_PROPERTY_HOST_COHERENT_BITset, orMEMORY_PROPERTY_HOST_CACHED_BITset.MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMDbit specifies that device accesses to allocations of this memory type are automatically made available and visible on the device. If paired withMEMORY_PROPERTY_HOST_COHERENT_BIT, memory domain operations are also performed automatically between host and device.MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMDbit specifies that memory allocated with this type is not cached on the device. Uncached device memory is always device coherent.MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NVbit specifies that external devices can access this memory directly.
For any memory allocated with both the
MEMORY_PROPERTY_HOST_COHERENT_BIT and the
MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD, host or device accesses also
perform automatic memory domain transfer operations, such that writes
are always automatically available and visible to both host and device
memory domains.
Device coherence is a useful property for certain debugging use cases (e.g. crash analysis, where performing separate coherence actions could mean values are not reported correctly). However, device coherent accesses may be slower than equivalent accesses without device coherence, particularly if they are also device uncached. For device uncached memory in particular, repeated accesses to the same or neighboring memory locations over a short time period (e.g. within a frame) may be slower than it would be for the equivalent cached memory type. As such, it is generally inadvisable to use device coherent or device uncached memory except when really needed.
See Also
Constructors
| MemoryPropertyFlagBits Flags |
Bundled Patterns
Instances
newtype MemoryHeapFlagBits Source #
VkMemoryHeapFlagBits - Bitmask specifying attribute flags for a heap
Description
MEMORY_HEAP_DEVICE_LOCAL_BITspecifies that the heap corresponds to device-local memory. Device-local memory may have different performance characteristics than host-local memory, and may support different memory property flags.
MEMORY_HEAP_MULTI_INSTANCE_BITspecifies that in a logical device representing more than one physical device, there is a per-physical device instance of the heap memory. By default, an allocation from such a heap will be replicated to each physical device’s instance of the heap.MEMORY_HEAP_TILE_MEMORY_BIT_QCOMbit specifies that the heap corresponds to tile memory.
See Also
Constructors
| MemoryHeapFlagBits Flags |
Bundled Patterns
| pattern MEMORY_HEAP_DEVICE_LOCAL_BIT :: MemoryHeapFlagBits | |
| pattern MEMORY_HEAP_MULTI_INSTANCE_BIT :: MemoryHeapFlagBits | |
| pattern MEMORY_HEAP_SEU_SAFE_BIT :: MemoryHeapFlagBits | |
| pattern MEMORY_HEAP_TILE_MEMORY_BIT_QCOM :: MemoryHeapFlagBits |
Instances
type MemoryHeapFlags = MemoryHeapFlagBits Source #
newtype ImageUsageFlagBits Source #
VkImageUsageFlagBits - Bitmask specifying intended usage of an image
Description
IMAGE_USAGE_TRANSFER_SRC_BITspecifies that the image can be used as the source of a transfer command.
IMAGE_USAGE_TRANSFER_DST_BITspecifies that the image can be used as the destination of a transfer command.IMAGE_USAGE_SAMPLED_BITspecifies that the image can be used to create aImageViewsuitable for occupying aDescriptorSetslot either of typeDESCRIPTOR_TYPE_SAMPLED_IMAGEorDESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, and be sampled by a shader.IMAGE_USAGE_STORAGE_BITspecifies that the image can be used to create aImageViewsuitable for occupying aDescriptorSetslot of typeDESCRIPTOR_TYPE_STORAGE_IMAGE.IMAGE_USAGE_COLOR_ATTACHMENT_BITspecifies that the image can be used to create aImageViewsuitable for use as a color or resolve attachment in aFramebuffer.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BITspecifies that the image can be used to create aImageViewsuitable for use as a depth/stencil or depth/stencil resolve attachment in aFramebuffer.IMAGE_USAGE_TRANSIENT_ATTACHMENT_BITspecifies that implementations may support using memory allocations with theMEMORY_PROPERTY_LAZILY_ALLOCATED_BITto back an image with this usage. This bit can be set for any image that can be used to create aImageViewsuitable for use as a color, resolve, depth/stencil, or input attachment.IMAGE_USAGE_INPUT_ATTACHMENT_BITspecifies that the image can be used to create aImageViewsuitable for occupyingDescriptorSetslot of typeDESCRIPTOR_TYPE_INPUT_ATTACHMENT; be read from a shader as an input attachment; and be used as an input attachment in a framebuffer.IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXTspecifies that the image can be used to create aImageViewsuitable for use as a fragment density map image.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHRspecifies that the image can be used to create aImageViewsuitable for use as a fragment shading rate attachment or shading rate image- VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR specifies that the image can be used as a decode output picture in a video decode operation.
- VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR is reserved for future use.
- VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR specifies that the image can be used as an output reconstructed picture or an input reference picture in a video decode operation.
- VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR is reserved for future use.
- VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR specifies that the image can be used as an encode input picture in a video encode operation.
- VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR specifies that the image can be used as an output reconstructed picture or an input reference picture in a video encode operation.
IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXTspecifies that the image can be used as a color or depth/stencil attachment with feedback loop enabled.IMAGE_USAGE_TILE_MEMORY_BIT_QCOMspecifies that the image can be bound toDeviceMemoryallocated from aMemoryHeapwith theMEMORY_HEAP_TILE_MEMORY_BIT_QCOMproperty.IMAGE_USAGE_HOST_TRANSFER_BITspecifies that the image can be used with host copy commands and host layout transitions.- VK_IMAGE_USAGE_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR specifies that the image can be used as a quantization delta map in a video encode operation.
- VK_IMAGE_USAGE_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR specifies that the image can be used as an emphasis map in a video encode operation.
IMAGE_USAGE_HOST_TRANSFER_BIT_EXTspecifies that the image can be used with host copy commands and host layout transitions.IMAGE_USAGE_TENSOR_ALIASING_BIT_ARMspecifies that the image can be transitioned to theIMAGE_LAYOUT_TENSOR_ALIASING_ARMlayout. See https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#resources-memory-aliasing for a complete set of rules for tensor/image aliasing.
See Also
Constructors
| ImageUsageFlagBits Flags |
Bundled Patterns
Instances
type ImageUsageFlags = ImageUsageFlagBits Source #
newtype ImageCreateFlagBits Source #
VkImageCreateFlagBits - Bitmask specifying additional parameters of an image
Description
IMAGE_CREATE_SPARSE_BINDING_BITspecifies that the image will be backed using sparse memory binding.
IMAGE_CREATE_SPARSE_RESIDENCY_BITspecifies that the image can be partially backed using sparse memory binding. Images created with this flag must also be created with theIMAGE_CREATE_SPARSE_BINDING_BITflag.IMAGE_CREATE_SPARSE_ALIASED_BITspecifies that the image will be backed using sparse memory binding with memory ranges that might also simultaneously be backing another image (or another portion of the same image). Images created with this flag must also be created with theIMAGE_CREATE_SPARSE_BINDING_BITflag.IMAGE_CREATE_MUTABLE_FORMAT_BITspecifies that the image can be used to create aImageViewwith a different format from the image. For multi-planar formats,IMAGE_CREATE_MUTABLE_FORMAT_BITspecifies that aImageViewcan be created of a plane of the image.IMAGE_CREATE_CUBE_COMPATIBLE_BITspecifies that the image can be used to create aImageViewof typeIMAGE_VIEW_TYPE_CUBEorIMAGE_VIEW_TYPE_CUBE_ARRAY.IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BITspecifies that the image can be used to create aImageViewof typeIMAGE_VIEW_TYPE_2DorIMAGE_VIEW_TYPE_2D_ARRAY.IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXTspecifies that the image can be used to create aImageViewof typeIMAGE_VIEW_TYPE_2D.IMAGE_CREATE_PROTECTED_BITspecifies that the image is a protected image.IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BITspecifies that the image can be used with a non-zero value of thesplitInstanceBindRegionCountmember of aBindImageMemoryDeviceGroupInfostructure passed intobindImageMemory2. This flag also has the effect of making the image use the standard sparse image block dimensions.IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BITspecifies that the image having a compressed format can be used to create aImageViewwith an uncompressed format where each texel in the image view corresponds to a compressed texel block of the image.IMAGE_CREATE_EXTENDED_USAGE_BITspecifies that the image can be created with usage flags that are not supported for the format the image is created with but are supported for at least one format aImageViewcreated from the image can have.IMAGE_CREATE_DISJOINT_BITspecifies that an image with a multi-planar format must have each plane separately bound to memory, rather than having a single memory binding for the whole image; the presence of this bit distinguishes a disjoint image from an image without this bit set.IMAGE_CREATE_ALIAS_BITspecifies that two images created with the same creation parameters and aliased to the same memory can interpret the contents of the memory consistently with each other, subject to the rules described in the Memory Aliasing section. This flag further specifies that each plane of a disjoint image can share an in-memory non-linear representation with single-plane images, and that a single-plane image can share an in-memory non-linear representation with a plane of a multi-planar disjoint image, according to the rules in https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#formats-compatible-planes. If thepNextchain includes aExternalMemoryImageCreateInfoorExternalMemoryImageCreateInfoNVstructure whosehandleTypesmember is not0, it is as ifIMAGE_CREATE_ALIAS_BITis set.IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXTspecifies that an image with a depth or depth/stencil format can be used with custom sample locations when used as a depth/stencil attachment.IMAGE_CREATE_CORNER_SAMPLED_BIT_NVspecifies that the image is a corner-sampled image.IMAGE_CREATE_SUBSAMPLED_BIT_EXTspecifies that an image can be in a subsampled format which may be more optimal when written as an attachment by a render pass that has a fragment density map attachment. Accessing a subsampled image has additional considerations:- Image data read as an image sampler will have undefined values
if the sampler was not created with
flagscontainingSAMPLER_CREATE_SUBSAMPLED_BIT_EXTor was not sampled through a combined embedded sampler and image mapping if using descriptor heaps, or the use of a combined image sampler with an immutable sampler inDescriptorSetLayoutBinding. - Image data read with an input attachment will have undefined values if the contents were not written as an attachment in an earlier subpass of the same render pass.
- Image data read as an image sampler in the fragment shader will
be additionally be read by the device during
PIPELINE_STAGE_VERTEX_SHADER_BITif ::subsampledCoarseReconstructionEarlyAccess isTRUEand the sampler was created withflagscontainingSAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT. - Image data read with load operations are resampled to the
fragment density of the render pass if
::subsampledLoads
is
TRUE. Otherwise, values of image data are undefined. - Image contents outside of the render area take on undefined values if the image is stored as a render pass attachment.
- Image data read as an image sampler will have undefined values
if the sampler was not created with
IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_EXTspecifies that an image can be used in a render pass with non-zero fragment density map offsets. In a render pass with non-zero offsets, fragment density map attachments, input attachments, color attachments, depth/stencil attachment, resolve attachments, and preserve attachments must be created withIMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_EXT.IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXTspecifies that the image can be used with descriptor buffers when capturing and replaying (e.g. for trace capture and replay), seeOpaqueCaptureDescriptorDataCreateInfoEXTfor more detail.IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXTspecifies that an image can be used with multisampled rendering as a single-sampled framebuffer attachmentVK_IMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR specifies that the image can be used in video coding operations without having to specify at image creation time the set of video profiles the image will be used with, except for images used only as DPB pictures, as long as the image is otherwise compatible with the video profile in question.
This enables exchanging video picture data without additional copies or conversions when used as:
- Decode output pictures, regardless of the video profile used to produce them.
- Encode input pictures, regardless of the video profile used to consume them.
This includes images created with both VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR and VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR, which is necessary to use the same video picture as the reconstructed picture and decode output picture in a video decode operation on implementations supporting VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR.
However, images with only DPB usage remain tied to the video profiles the image was created with, as the data layout of such DPB-only images may be implementation- and codec-dependent.
If an application would like to share or reuse the device memory backing such images (e.g. for the purposes of temporal aliasing), then it should create separate image objects for each video profile and bind them to the same underlying device memory range, similar to how memory resources can be shared across separate video sessions or any other memory-backed resource.
See Sparse Resource Features and Sparse Physical Device Features for more details.
See Also
Constructors
| ImageCreateFlagBits Flags |
Bundled Patterns
Instances
newtype FormatFeatureFlagBits Source #
VkFormatFeatureFlagBits - Bitmask specifying features supported by a buffer
Description
These values all have the same meaning as the equivalently named values
for FormatFeatureFlags2 and
may be set in linearTilingFeatures, optimalTilingFeatures, and
DrmFormatModifierPropertiesEXT::drmFormatModifierTilingFeatures,
specifying that the features are supported by images or
image views or
sampler Y′CBCR conversion objects
created with the queried
getPhysicalDeviceFormatProperties::format:
FORMAT_FEATURE_SAMPLED_IMAGE_BITspecifies that an image view can be sampled from.FORMAT_FEATURE_STORAGE_IMAGE_BITspecifies that an image view can be used as a storage image.FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BITspecifies that an image view can be used as storage image that supports atomic operations.FORMAT_FEATURE_COLOR_ATTACHMENT_BITspecifies that an image view can be used as a framebuffer color attachment and as an input attachment.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BITspecifies that an image view can be used as a framebuffer color attachment that supports blending.FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BITspecifies that an image view can be used as a framebuffer depth/stencil attachment and as an input attachment.FORMAT_FEATURE_BLIT_SRC_BITspecifies that an image can be used assrcImagefor thecmdBlitImage2andcmdBlitImagecommands.FORMAT_FEATURE_BLIT_DST_BITspecifies that an image can be used asdstImagefor thecmdBlitImage2andcmdBlitImagecommands.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BITspecifies that ifFORMAT_FEATURE_SAMPLED_IMAGE_BITis also set, an image view can be used with a sampler that has either ofmagFilterorminFilterset toFILTER_LINEAR, ormipmapModeset toSAMPLER_MIPMAP_MODE_LINEAR. IfFORMAT_FEATURE_BLIT_SRC_BITis also set, an image can be used as thesrcImagetocmdBlitImage2andcmdBlitImagewith afilterofFILTER_LINEAR. This bit must only be exposed for formats that also support theFORMAT_FEATURE_SAMPLED_IMAGE_BITorFORMAT_FEATURE_BLIT_SRC_BIT.If the format being queried is a depth/stencil format, this bit only specifies that the depth aspect (not the stencil aspect) of an image of this format supports linear filtering, and that linear filtering of the depth aspect is supported whether depth compare is enabled in the sampler or not. Where depth comparison is supported it may be linear filtered whether this bit is present or not, but where this bit is not present the filtered value may be computed in an implementation-dependent manner which differs from the normal rules of linear filtering. The resulting value must be in the range [0,1] and should be proportional to, or a weighted average of, the number of comparison passes or failures.
FORMAT_FEATURE_TRANSFER_SRC_BITspecifies that an image can be used as a source image for copy commands. If the applicationapiVersionis Vulkan 1.0 andVK_KHR_maintenance1is not supported,FORMAT_FEATURE_TRANSFER_SRC_BITis implied to be set when the format feature flag is not 0.FORMAT_FEATURE_TRANSFER_DST_BITspecifies that an image can be used as a destination image for copy commands and clear commands. If the applicationapiVersionis Vulkan 1.0 andVK_KHR_maintenance1is not supported,FORMAT_FEATURE_TRANSFER_DST_BITis implied to be set when the format feature flag is not 0.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BITspecifiesImagecan be used as a sampled image with a min or maxSamplerReductionMode. This bit must only be exposed for formats that also support theFORMAT_FEATURE_SAMPLED_IMAGE_BIT.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXTspecifies thatImagecan be used with a sampler that has either ofmagFilterorminFilterset toFILTER_CUBIC_EXT, or be the source image for a blit withfilterset toFILTER_CUBIC_EXT. This bit must only be exposed for formats that also support theFORMAT_FEATURE_SAMPLED_IMAGE_BIT. If the format being queried is a depth/stencil format, this only specifies that the depth aspect is cubic filterable.FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BITspecifies that an application can define a sampler Y′CBCR conversion using this format as a source, and that an image of this format can be used with aSamplerYcbcrConversionCreateInfoxChromaOffsetand/oryChromaOffsetofCHROMA_LOCATION_MIDPOINT. Otherwise bothxChromaOffsetandyChromaOffsetmust beCHROMA_LOCATION_COSITED_EVEN. If a format does not incorporate chroma downsampling (it is not a “422” or “420” format) but the implementation supports sampler Y′CBCR conversion for this format, the implementation must setFORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT.FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BITspecifies that an application can define a sampler Y′CBCR conversion using this format as a source, and that an image of this format can be used with aSamplerYcbcrConversionCreateInfoxChromaOffsetand/oryChromaOffsetofCHROMA_LOCATION_COSITED_EVEN. Otherwise bothxChromaOffsetandyChromaOffsetmust beCHROMA_LOCATION_MIDPOINT. If neitherFORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BITnorFORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BITis set, the application must not define a sampler Y′CBCR conversion using this format as a source.FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BITspecifies that an application can define a sampler Y′CBCR conversion using this format as a source withchromaFilterset toFILTER_LINEAR.FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BITspecifies that the format can have different chroma, min, and mag filters.FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BITspecifies that reconstruction is explicit, as described in https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#textures-chroma-reconstruction. If this bit is not present, reconstruction is implicit by default.FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BITspecifies that reconstruction can be forcibly made explicit by settingSamplerYcbcrConversionCreateInfo::forceExplicitReconstructiontoTRUE. If the format being queried supportsFORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BITit must also supportFORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT.FORMAT_FEATURE_DISJOINT_BITspecifies that a multi-planar image can have theIMAGE_CREATE_DISJOINT_BITset during image creation. An implementation must not setFORMAT_FEATURE_DISJOINT_BITfor single-plane formats.FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXTspecifies that an image view can be used as a fragment density map attachment.FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHRspecifies that an image view can be used as a fragment shading rate attachment. An implementation must not set this feature for formats with a numeric format other thanUINT, or set it as a buffer feature.- VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR specifies that an image view with this format can be used as a decode output picture in video decode operations.
- VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR specifies that an image view with this format can be used as an output reconstructed picture or an input reference picture in video decode operations.
- VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR specifies that an image view with this format can be used as an encode input picture in video encode operations.
VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR specifies that an image view with this format can be used as an output reconstructed picture or an input reference picture in video encode operations.
Specific video profiles may have additional restrictions on the format and other image creation parameters corresponding to image views used by video coding operations that can be enumerated using the vkGetPhysicalDeviceVideoFormatPropertiesKHR command.
The following bits may be set in bufferFeatures, specifying that the
features are supported by buffers or
buffer views created with the queried
getPhysicalDeviceFormatProperties::format:
FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BITspecifies that the format can be used to create a buffer view that can be bound to aDESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFERdescriptor.FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BITspecifies that the format can be used to create a buffer view that can be bound to aDESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFERdescriptor.FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BITspecifies that atomic operations are supported onDESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFERwith this format.FORMAT_FEATURE_VERTEX_BUFFER_BITspecifies that the format can be used as a vertex attribute format (VertexInputAttributeDescription::format).FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHRspecifies that the format can be used as the vertex format when creating an acceleration structure (AccelerationStructureGeometryTrianglesDataKHR::vertexFormat). This format can also be used as the vertex format in host memory when doing host acceleration structure builds.
FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT and
FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT are only intended to be
advertised for single-component formats, since SPIR-V atomic operations
require a scalar type.
See Also
Constructors
| FormatFeatureFlagBits Flags |
Bundled Patterns
Instances
newtype SampleCountFlagBits Source #
VkSampleCountFlagBits - Bitmask specifying sample counts supported for an image used for storage operations
Description
SAMPLE_COUNT_1_BITspecifies an image with one sample per pixel.
SAMPLE_COUNT_2_BITspecifies an image with 2 samples per pixel.SAMPLE_COUNT_4_BITspecifies an image with 4 samples per pixel.SAMPLE_COUNT_8_BITspecifies an image with 8 samples per pixel.SAMPLE_COUNT_16_BITspecifies an image with 16 samples per pixel.SAMPLE_COUNT_32_BITspecifies an image with 32 samples per pixel.SAMPLE_COUNT_64_BITspecifies an image with 64 samples per pixel.
See Also
VK_VERSION_1_0,
AttachmentDescription,
AttachmentDescription2,
AttachmentSampleCountInfoAMD,
CommandBufferInheritanceRenderingInfo,
FramebufferMixedSamplesCombinationNV,
ImageCreateInfo,
MultisampledRenderToSingleSampledInfoEXT,
PhysicalDeviceFragmentShadingRateEnumsPropertiesNV,
PhysicalDeviceFragmentShadingRatePropertiesKHR,
PhysicalDeviceSparseImageFormatInfo2,
PipelineMultisampleStateCreateInfo,
SampleCountFlags,
SampleLocationsInfoEXT,
cmdSetRasterizationSamplesEXT,
cmdSetSampleMaskEXT,
getPhysicalDeviceMultisamplePropertiesEXT,
getPhysicalDeviceSparseImageFormatProperties
Constructors
| SampleCountFlagBits Flags |
Bundled Patterns
| pattern SAMPLE_COUNT_16_BIT :: SampleCountFlagBits | |
| pattern SAMPLE_COUNT_1_BIT :: SampleCountFlagBits | |
| pattern SAMPLE_COUNT_2_BIT :: SampleCountFlagBits | |
| pattern SAMPLE_COUNT_32_BIT :: SampleCountFlagBits | |
| pattern SAMPLE_COUNT_4_BIT :: SampleCountFlagBits | |
| pattern SAMPLE_COUNT_64_BIT :: SampleCountFlagBits | |
| pattern SAMPLE_COUNT_8_BIT :: SampleCountFlagBits |
Instances
newtype InstanceCreateFlagBits Source #
VkInstanceCreateFlagBits - Bitmask specifying behavior of the instance
Description
INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHRspecifies that the instance will enumerate available Vulkan Portability-compliant physical devices and groups in addition to the Vulkan physical devices and groups that are enumerated by default.
See Also
Constructors
| InstanceCreateFlagBits Flags |
Bundled Patterns
| pattern INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR :: InstanceCreateFlagBits |
Instances
type FN_vkInternalAllocationNotification = ("pUserData" ::: Ptr ()) -> CSize -> InternalAllocationType -> SystemAllocationScope -> IO () Source #
type PFN_vkInternalAllocationNotification = FunPtr FN_vkInternalAllocationNotification Source #
PFN_vkInternalAllocationNotification - Application-defined memory allocation notification function
Description
This is a purely informational callback.
See Also
VK_VERSION_1_0,
AllocationCallbacks,
InternalAllocationType,
SystemAllocationScope
type FN_vkInternalFreeNotification = ("pUserData" ::: Ptr ()) -> CSize -> InternalAllocationType -> SystemAllocationScope -> IO () Source #
type PFN_vkInternalFreeNotification = FunPtr FN_vkInternalFreeNotification Source #
PFN_vkInternalFreeNotification - Application-defined memory free notification function
Description
described link:https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#memory-host-allocation-scope[here^].
See Also
VK_VERSION_1_0,
AllocationCallbacks,
InternalAllocationType,
SystemAllocationScope
type FN_vkReallocationFunction = ("pUserData" ::: Ptr ()) -> ("pOriginal" ::: Ptr ()) -> CSize -> ("alignment" ::: CSize) -> SystemAllocationScope -> IO (Ptr ()) Source #
type PFN_vkReallocationFunction = FunPtr FN_vkReallocationFunction Source #
PFN_vkReallocationFunction - Application-defined memory reallocation function
Description
If the reallocation was successful, pfnReallocation must return an
allocation with enough space for size bytes, and the contents of the
original allocation from bytes zero to min(original size, new size) - 1
must be preserved in the returned allocation. If size is larger than
the old size, the contents of the additional space are undefined. If
satisfying these requirements involves creating a new allocation, then
the old allocation should be freed.
If pOriginal is NULL, then pfnReallocation must behave
equivalently to a call to PFN_vkAllocationFunction with the same
parameter values (without pOriginal).
If size is zero, then pfnReallocation must behave equivalently to
a call to PFN_vkFreeFunction with the same pUserData parameter
value, and pMemory equal to pOriginal.
If pOriginal is non-NULL, the implementation must ensure that
alignment is equal to the alignment used to originally allocate
pOriginal.
If this function fails and pOriginal is non-NULL the application
must not free the old allocation.
pfnReallocation must follow the same
rules for return values as.
See Also
type FN_vkAllocationFunction = ("pUserData" ::: Ptr ()) -> CSize -> ("alignment" ::: CSize) -> SystemAllocationScope -> IO (Ptr ()) Source #
type PFN_vkAllocationFunction = FunPtr FN_vkAllocationFunction Source #
PFN_vkAllocationFunction - Application-defined memory allocation function
Description
If pfnAllocation is unable to allocate the requested memory, it must
return NULL. If the allocation was successful, it must return a
valid pointer to memory allocation containing at least size bytes, and
with the pointer value being a multiple of alignment.
Correct Vulkan operation cannot be assumed if the application does not follow these rules.
For example, pfnAllocation (or pfnReallocation) could cause
termination of running Vulkan instance(s) on a failed allocation for
debugging purposes, either directly or indirectly. In these
circumstances, it cannot be assumed that any part of any affected
Instance objects are going to operate correctly
(even destroyInstance), and the
application must ensure it cleans up properly via other means (e.g.
process termination).
If pfnAllocation returns NULL, and if the implementation is unable
to continue correct processing of the current command without the
requested allocation, it must treat this as a runtime error, and
generate ERROR_OUT_OF_HOST_MEMORY at the
appropriate time for the command in which the condition was detected, as
described in
Return Codes.
If the implementation is able to continue correct processing of the
current command without the requested allocation, then it may do so,
and must not generate
ERROR_OUT_OF_HOST_MEMORY as a result of
this failed allocation.
See Also
type PFN_vkFreeFunction = FunPtr FN_vkFreeFunction Source #
PFN_vkFreeFunction - Application-defined memory free function
Description
pMemory may be NULL, which the callback must handle safely. If
pMemory is non-NULL, it must be a pointer previously allocated by
pfnAllocation or pfnReallocation. The application should free this
memory.
See Also
type FN_vkVoidFunction = IO () Source #
type PFN_vkVoidFunction = FunPtr FN_vkVoidFunction Source #
PFN_vkVoidFunction - Placeholder function pointer type returned by queries
Description
This type is returned from command function pointer queries, and must be cast to an actual command function pointer before use.
See Also
PFN_vkGetInstanceProcAddrLUNARG,
VK_VERSION_1_0,
getDeviceProcAddr,
getInstanceProcAddr