Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- newtype VkImageTiling = VkImageTiling Int32
- pattern VK_IMAGE_TILING_OPTIMAL :: VkImageTiling
- pattern VK_IMAGE_TILING_LINEAR :: VkImageTiling
- newtype VkImageType = VkImageType Int32
- pattern VK_IMAGE_TYPE_1D :: VkImageType
- pattern VK_IMAGE_TYPE_2D :: VkImageType
- pattern VK_IMAGE_TYPE_3D :: VkImageType
- newtype VkPhysicalDeviceType = VkPhysicalDeviceType Int32
- pattern VK_PHYSICAL_DEVICE_TYPE_OTHER :: VkPhysicalDeviceType
- pattern VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU :: VkPhysicalDeviceType
- pattern VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU :: VkPhysicalDeviceType
- pattern VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU :: VkPhysicalDeviceType
- pattern VK_PHYSICAL_DEVICE_TYPE_CPU :: VkPhysicalDeviceType
- newtype VkSystemAllocationScope = VkSystemAllocationScope Int32
- pattern VK_SYSTEM_ALLOCATION_SCOPE_COMMAND :: VkSystemAllocationScope
- pattern VK_SYSTEM_ALLOCATION_SCOPE_OBJECT :: VkSystemAllocationScope
- pattern VK_SYSTEM_ALLOCATION_SCOPE_CACHE :: VkSystemAllocationScope
- pattern VK_SYSTEM_ALLOCATION_SCOPE_DEVICE :: VkSystemAllocationScope
- pattern VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE :: VkSystemAllocationScope
- newtype VkInternalAllocationType = VkInternalAllocationType Int32
- pattern VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE :: VkInternalAllocationType
- newtype VkInstanceCreateFlags = VkInstanceCreateFlags VkFlags
- newtype VkQueueFlagBits = VkQueueFlagBits VkFlags
- pattern VK_QUEUE_GRAPHICS_BIT :: VkQueueFlagBits
- pattern VK_QUEUE_COMPUTE_BIT :: VkQueueFlagBits
- pattern VK_QUEUE_TRANSFER_BIT :: VkQueueFlagBits
- pattern VK_QUEUE_SPARSE_BINDING_BIT :: VkQueueFlagBits
- newtype VkMemoryPropertyFlagBits = VkMemoryPropertyFlagBits VkFlags
- pattern VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT :: VkMemoryPropertyFlagBits
- pattern VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT :: VkMemoryPropertyFlagBits
- pattern VK_MEMORY_PROPERTY_HOST_COHERENT_BIT :: VkMemoryPropertyFlagBits
- pattern VK_MEMORY_PROPERTY_HOST_CACHED_BIT :: VkMemoryPropertyFlagBits
- pattern VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT :: VkMemoryPropertyFlagBits
- newtype VkMemoryHeapFlagBits = VkMemoryHeapFlagBits VkFlags
- pattern VK_MEMORY_HEAP_DEVICE_LOCAL_BIT :: VkMemoryHeapFlagBits
- newtype VkImageUsageFlagBits = VkImageUsageFlagBits VkFlags
- pattern VK_IMAGE_USAGE_TRANSFER_SRC_BIT :: VkImageUsageFlagBits
- pattern VK_IMAGE_USAGE_TRANSFER_DST_BIT :: VkImageUsageFlagBits
- pattern VK_IMAGE_USAGE_SAMPLED_BIT :: VkImageUsageFlagBits
- pattern VK_IMAGE_USAGE_STORAGE_BIT :: VkImageUsageFlagBits
- pattern VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT :: VkImageUsageFlagBits
- pattern VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT :: VkImageUsageFlagBits
- pattern VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT :: VkImageUsageFlagBits
- pattern VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT :: VkImageUsageFlagBits
- newtype VkImageCreateFlagBits = VkImageCreateFlagBits VkFlags
- pattern VK_IMAGE_CREATE_SPARSE_BINDING_BIT :: VkImageCreateFlagBits
- pattern VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT :: VkImageCreateFlagBits
- pattern VK_IMAGE_CREATE_SPARSE_ALIASED_BIT :: VkImageCreateFlagBits
- pattern VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT :: VkImageCreateFlagBits
- pattern VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT :: VkImageCreateFlagBits
- newtype VkFormatFeatureFlagBits = VkFormatFeatureFlagBits VkFlags
- pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT :: VkFormatFeatureFlagBits
- pattern VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT :: VkFormatFeatureFlagBits
- pattern VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT :: VkFormatFeatureFlagBits
- pattern VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT :: VkFormatFeatureFlagBits
- pattern VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT :: VkFormatFeatureFlagBits
- pattern VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT :: VkFormatFeatureFlagBits
- pattern VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT :: VkFormatFeatureFlagBits
- pattern VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT :: VkFormatFeatureFlagBits
- pattern VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT :: VkFormatFeatureFlagBits
- pattern VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT :: VkFormatFeatureFlagBits
- pattern VK_FORMAT_FEATURE_BLIT_SRC_BIT :: VkFormatFeatureFlagBits
- pattern VK_FORMAT_FEATURE_BLIT_DST_BIT :: VkFormatFeatureFlagBits
- pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT :: VkFormatFeatureFlagBits
- newtype VkSampleCountFlagBits = VkSampleCountFlagBits VkFlags
- pattern VK_SAMPLE_COUNT_1_BIT :: VkSampleCountFlagBits
- pattern VK_SAMPLE_COUNT_2_BIT :: VkSampleCountFlagBits
- pattern VK_SAMPLE_COUNT_4_BIT :: VkSampleCountFlagBits
- pattern VK_SAMPLE_COUNT_8_BIT :: VkSampleCountFlagBits
- pattern VK_SAMPLE_COUNT_16_BIT :: VkSampleCountFlagBits
- pattern VK_SAMPLE_COUNT_32_BIT :: VkSampleCountFlagBits
- pattern VK_SAMPLE_COUNT_64_BIT :: VkSampleCountFlagBits
- type VK_MAX_PHYSICAL_DEVICE_NAME_SIZE = 256
- pattern VK_MAX_PHYSICAL_DEVICE_NAME_SIZE :: Integral a => a
- type VK_UUID_SIZE = 16
- pattern VK_UUID_SIZE :: Integral a => a
- type VK_MAX_MEMORY_TYPES = 32
- pattern VK_MAX_MEMORY_TYPES :: Integral a => a
- type VK_MAX_MEMORY_HEAPS = 16
- pattern VK_MAX_MEMORY_HEAPS :: Integral a => a
- type PFN_vkInternalAllocationNotification = Ptr (("pUserData" ::: Ptr ()) -> ("size" ::: CSize) -> ("allocationType" ::: VkInternalAllocationType) -> ("allocationScope" ::: VkSystemAllocationScope) -> IO ())
- type PFN_vkInternalFreeNotification = Ptr (("pUserData" ::: Ptr ()) -> ("size" ::: CSize) -> ("allocationType" ::: VkInternalAllocationType) -> ("allocationScope" ::: VkSystemAllocationScope) -> IO ())
- type PFN_vkReallocationFunction = Ptr (("pUserData" ::: Ptr ()) -> ("pOriginal" ::: Ptr ()) -> ("size" ::: CSize) -> ("alignment" ::: CSize) -> ("allocationScope" ::: VkSystemAllocationScope) -> IO (Ptr ()))
- type PFN_vkAllocationFunction = Ptr (("pUserData" ::: Ptr ()) -> ("size" ::: CSize) -> ("alignment" ::: CSize) -> ("allocationScope" ::: VkSystemAllocationScope) -> IO (Ptr ()))
- type PFN_vkFreeFunction = Ptr (("pUserData" ::: Ptr ()) -> ("pMemory" ::: Ptr ()) -> IO ())
- type PFN_vkVoidFunction = Ptr (() -> IO ())
- type VkInstance = Ptr VkInstance_T
- type VkPhysicalDevice = Ptr VkPhysicalDevice_T
- type VkDevice = Ptr VkDevice_T
- vkCreateInstance :: ("pCreateInfo" ::: Ptr VkInstanceCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pInstance" ::: Ptr VkInstance) -> IO VkResult
- vkDestroyInstance :: ("instance" ::: VkInstance) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO ()
- vkEnumeratePhysicalDevices :: ("instance" ::: VkInstance) -> ("pPhysicalDeviceCount" ::: Ptr Word32) -> ("pPhysicalDevices" ::: Ptr VkPhysicalDevice) -> IO VkResult
- vkGetDeviceProcAddr :: ("device" ::: VkDevice) -> ("pName" ::: Ptr CChar) -> IO PFN_vkVoidFunction
- vkGetInstanceProcAddr :: ("instance" ::: VkInstance) -> ("pName" ::: Ptr CChar) -> IO PFN_vkVoidFunction
- vkGetPhysicalDeviceProperties :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pProperties" ::: Ptr VkPhysicalDeviceProperties) -> IO ()
- vkGetPhysicalDeviceQueueFamilyProperties :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pQueueFamilyPropertyCount" ::: Ptr Word32) -> ("pQueueFamilyProperties" ::: Ptr VkQueueFamilyProperties) -> IO ()
- vkGetPhysicalDeviceMemoryProperties :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pMemoryProperties" ::: Ptr VkPhysicalDeviceMemoryProperties) -> IO ()
- vkGetPhysicalDeviceFeatures :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pFeatures" ::: Ptr VkPhysicalDeviceFeatures) -> IO ()
- vkGetPhysicalDeviceFormatProperties :: ("physicalDevice" ::: VkPhysicalDevice) -> ("format" ::: VkFormat) -> ("pFormatProperties" ::: Ptr VkFormatProperties) -> IO ()
- vkGetPhysicalDeviceImageFormatProperties :: ("physicalDevice" ::: VkPhysicalDevice) -> ("format" ::: VkFormat) -> ("type" ::: VkImageType) -> ("tiling" ::: VkImageTiling) -> ("usage" ::: VkImageUsageFlags) -> ("flags" ::: VkImageCreateFlags) -> ("pImageFormatProperties" ::: Ptr VkImageFormatProperties) -> IO VkResult
- data VkExtent3D = VkExtent3D {}
- data VkPhysicalDeviceProperties = VkPhysicalDeviceProperties {
- vkApiVersion :: Word32
- vkDriverVersion :: Word32
- vkVendorID :: Word32
- vkDeviceID :: Word32
- vkDeviceType :: VkPhysicalDeviceType
- vkDeviceName :: Vector VK_MAX_PHYSICAL_DEVICE_NAME_SIZE CChar
- vkPipelineCacheUUID :: Vector VK_UUID_SIZE Word8
- vkLimits :: VkPhysicalDeviceLimits
- vkSparseProperties :: VkPhysicalDeviceSparseProperties
- data VkApplicationInfo = VkApplicationInfo {}
- data VkAllocationCallbacks = VkAllocationCallbacks {}
- data VkInstanceCreateInfo = VkInstanceCreateInfo {}
- data VkQueueFamilyProperties = VkQueueFamilyProperties {}
- data VkPhysicalDeviceMemoryProperties = VkPhysicalDeviceMemoryProperties {}
- data VkMemoryType = VkMemoryType {}
- data VkMemoryHeap = VkMemoryHeap {}
- data VkFormatProperties = VkFormatProperties {}
- data VkImageFormatProperties = VkImageFormatProperties {}
- data VkPhysicalDeviceFeatures = VkPhysicalDeviceFeatures {
- vkRobustBufferAccess :: VkBool32
- vkFullDrawIndexUint32 :: VkBool32
- vkImageCubeArray :: VkBool32
- vkIndependentBlend :: VkBool32
- vkGeometryShader :: VkBool32
- vkTessellationShader :: VkBool32
- vkSampleRateShading :: VkBool32
- vkDualSrcBlend :: VkBool32
- vkLogicOp :: VkBool32
- vkMultiDrawIndirect :: VkBool32
- vkDrawIndirectFirstInstance :: VkBool32
- vkDepthClamp :: VkBool32
- vkDepthBiasClamp :: VkBool32
- vkFillModeNonSolid :: VkBool32
- vkDepthBounds :: VkBool32
- vkWideLines :: VkBool32
- vkLargePoints :: VkBool32
- vkAlphaToOne :: VkBool32
- vkMultiViewport :: VkBool32
- vkSamplerAnisotropy :: VkBool32
- vkTextureCompressionETC2 :: VkBool32
- vkTextureCompressionASTC_LDR :: VkBool32
- vkTextureCompressionBC :: VkBool32
- vkOcclusionQueryPrecise :: VkBool32
- vkPipelineStatisticsQuery :: VkBool32
- vkVertexPipelineStoresAndAtomics :: VkBool32
- vkFragmentStoresAndAtomics :: VkBool32
- vkShaderTessellationAndGeometryPointSize :: VkBool32
- vkShaderImageGatherExtended :: VkBool32
- vkShaderStorageImageExtendedFormats :: VkBool32
- vkShaderStorageImageMultisample :: VkBool32
- vkShaderStorageImageReadWithoutFormat :: VkBool32
- vkShaderStorageImageWriteWithoutFormat :: VkBool32
- vkShaderUniformBufferArrayDynamicIndexing :: VkBool32
- vkShaderSampledImageArrayDynamicIndexing :: VkBool32
- vkShaderStorageBufferArrayDynamicIndexing :: VkBool32
- vkShaderStorageImageArrayDynamicIndexing :: VkBool32
- vkShaderClipDistance :: VkBool32
- vkShaderCullDistance :: VkBool32
- vkShaderFloat64 :: VkBool32
- vkShaderInt64 :: VkBool32
- vkShaderInt16 :: VkBool32
- vkShaderResourceResidency :: VkBool32
- vkShaderResourceMinLod :: VkBool32
- vkSparseBinding :: VkBool32
- vkSparseResidencyBuffer :: VkBool32
- vkSparseResidencyImage2D :: VkBool32
- vkSparseResidencyImage3D :: VkBool32
- vkSparseResidency2Samples :: VkBool32
- vkSparseResidency4Samples :: VkBool32
- vkSparseResidency8Samples :: VkBool32
- vkSparseResidency16Samples :: VkBool32
- vkSparseResidencyAliased :: VkBool32
- vkVariableMultisampleRate :: VkBool32
- vkInheritedQueries :: VkBool32
- data VkPhysicalDeviceSparseProperties = VkPhysicalDeviceSparseProperties {}
- data VkPhysicalDeviceLimits = VkPhysicalDeviceLimits {
- vkMaxImageDimension1D :: Word32
- vkMaxImageDimension2D :: Word32
- vkMaxImageDimension3D :: Word32
- vkMaxImageDimensionCube :: Word32
- vkMaxImageArrayLayers :: Word32
- vkMaxTexelBufferElements :: Word32
- vkMaxUniformBufferRange :: Word32
- vkMaxStorageBufferRange :: Word32
- vkMaxPushConstantsSize :: Word32
- vkMaxMemoryAllocationCount :: Word32
- vkMaxSamplerAllocationCount :: Word32
- vkBufferImageGranularity :: VkDeviceSize
- vkSparseAddressSpaceSize :: VkDeviceSize
- vkMaxBoundDescriptorSets :: Word32
- vkMaxPerStageDescriptorSamplers :: Word32
- vkMaxPerStageDescriptorUniformBuffers :: Word32
- vkMaxPerStageDescriptorStorageBuffers :: Word32
- vkMaxPerStageDescriptorSampledImages :: Word32
- vkMaxPerStageDescriptorStorageImages :: Word32
- vkMaxPerStageDescriptorInputAttachments :: Word32
- vkMaxPerStageResources :: Word32
- vkMaxDescriptorSetSamplers :: Word32
- vkMaxDescriptorSetUniformBuffers :: Word32
- vkMaxDescriptorSetUniformBuffersDynamic :: Word32
- vkMaxDescriptorSetStorageBuffers :: Word32
- vkMaxDescriptorSetStorageBuffersDynamic :: Word32
- vkMaxDescriptorSetSampledImages :: Word32
- vkMaxDescriptorSetStorageImages :: Word32
- vkMaxDescriptorSetInputAttachments :: Word32
- vkMaxVertexInputAttributes :: Word32
- vkMaxVertexInputBindings :: Word32
- vkMaxVertexInputAttributeOffset :: Word32
- vkMaxVertexInputBindingStride :: Word32
- vkMaxVertexOutputComponents :: Word32
- vkMaxTessellationGenerationLevel :: Word32
- vkMaxTessellationPatchSize :: Word32
- vkMaxTessellationControlPerVertexInputComponents :: Word32
- vkMaxTessellationControlPerVertexOutputComponents :: Word32
- vkMaxTessellationControlPerPatchOutputComponents :: Word32
- vkMaxTessellationControlTotalOutputComponents :: Word32
- vkMaxTessellationEvaluationInputComponents :: Word32
- vkMaxTessellationEvaluationOutputComponents :: Word32
- vkMaxGeometryShaderInvocations :: Word32
- vkMaxGeometryInputComponents :: Word32
- vkMaxGeometryOutputComponents :: Word32
- vkMaxGeometryOutputVertices :: Word32
- vkMaxGeometryTotalOutputComponents :: Word32
- vkMaxFragmentInputComponents :: Word32
- vkMaxFragmentOutputAttachments :: Word32
- vkMaxFragmentDualSrcAttachments :: Word32
- vkMaxFragmentCombinedOutputResources :: Word32
- vkMaxComputeSharedMemorySize :: Word32
- vkMaxComputeWorkGroupCount :: Vector 3 Word32
- vkMaxComputeWorkGroupInvocations :: Word32
- vkMaxComputeWorkGroupSize :: Vector 3 Word32
- vkSubPixelPrecisionBits :: Word32
- vkSubTexelPrecisionBits :: Word32
- vkMipmapPrecisionBits :: Word32
- vkMaxDrawIndexedIndexValue :: Word32
- vkMaxDrawIndirectCount :: Word32
- vkMaxSamplerLodBias :: CFloat
- vkMaxSamplerAnisotropy :: CFloat
- vkMaxViewports :: Word32
- vkMaxViewportDimensions :: Vector 2 Word32
- vkViewportBoundsRange :: Vector 2 CFloat
- vkViewportSubPixelBits :: Word32
- vkMinMemoryMapAlignment :: CSize
- vkMinTexelBufferOffsetAlignment :: VkDeviceSize
- vkMinUniformBufferOffsetAlignment :: VkDeviceSize
- vkMinStorageBufferOffsetAlignment :: VkDeviceSize
- vkMinTexelOffset :: Int32
- vkMaxTexelOffset :: Word32
- vkMinTexelGatherOffset :: Int32
- vkMaxTexelGatherOffset :: Word32
- vkMinInterpolationOffset :: CFloat
- vkMaxInterpolationOffset :: CFloat
- vkSubPixelInterpolationOffsetBits :: Word32
- vkMaxFramebufferWidth :: Word32
- vkMaxFramebufferHeight :: Word32
- vkMaxFramebufferLayers :: Word32
- vkFramebufferColorSampleCounts :: VkSampleCountFlags
- vkFramebufferDepthSampleCounts :: VkSampleCountFlags
- vkFramebufferStencilSampleCounts :: VkSampleCountFlags
- vkFramebufferNoAttachmentsSampleCounts :: VkSampleCountFlags
- vkMaxColorAttachments :: Word32
- vkSampledImageColorSampleCounts :: VkSampleCountFlags
- vkSampledImageIntegerSampleCounts :: VkSampleCountFlags
- vkSampledImageDepthSampleCounts :: VkSampleCountFlags
- vkSampledImageStencilSampleCounts :: VkSampleCountFlags
- vkStorageImageSampleCounts :: VkSampleCountFlags
- vkMaxSampleMaskWords :: Word32
- vkTimestampComputeAndGraphics :: VkBool32
- vkTimestampPeriod :: CFloat
- vkMaxClipDistances :: Word32
- vkMaxCullDistances :: Word32
- vkMaxCombinedClipAndCullDistances :: Word32
- vkDiscreteQueuePriorities :: Word32
- vkPointSizeRange :: Vector 2 CFloat
- vkLineWidthRange :: Vector 2 CFloat
- vkPointSizeGranularity :: CFloat
- vkLineWidthGranularity :: CFloat
- vkStrictLines :: VkBool32
- vkStandardSampleLocations :: VkBool32
- vkOptimalBufferCopyOffsetAlignment :: VkDeviceSize
- vkOptimalBufferCopyRowPitchAlignment :: VkDeviceSize
- vkNonCoherentAtomSize :: VkDeviceSize
- type VkQueueFlags = VkQueueFlagBits
- type VkMemoryPropertyFlags = VkMemoryPropertyFlagBits
- type VkMemoryHeapFlags = VkMemoryHeapFlagBits
- type VkImageUsageFlags = VkImageUsageFlagBits
- type VkImageCreateFlags = VkImageCreateFlagBits
- type VkFormatFeatureFlags = VkFormatFeatureFlagBits
- type VkSampleCountFlags = VkSampleCountFlagBits
- type VkDeviceSize = Word64
Documentation
newtype VkImageTiling Source #
VkImageTiling - Specifies the tiling arrangement of data in an image
See Also
VkImageCreateInfo
,
VkPhysicalDeviceImageFormatInfo2
,
VkPhysicalDeviceSparseImageFormatInfo2
,
vkGetPhysicalDeviceExternalImageFormatPropertiesNV
,
vkGetPhysicalDeviceImageFormatProperties
,
vkGetPhysicalDeviceSparseImageFormatProperties
Instances
pattern VK_IMAGE_TILING_OPTIMAL :: VkImageTiling Source #
VK_IMAGE_TILING_OPTIMAL
specifies optimal tiling (texels are laid out
in an implementation-dependent arrangement, for more optimal memory
access).
pattern VK_IMAGE_TILING_LINEAR :: VkImageTiling Source #
VK_IMAGE_TILING_LINEAR
specifies linear tiling (texels are laid out in
memory in row-major order, possibly with some padding on each row).
newtype VkImageType Source #
VkImageType - Specifies the type of an image object
See Also
VkImageCreateInfo
,
VkPhysicalDeviceImageFormatInfo2
,
VkPhysicalDeviceSparseImageFormatInfo2
,
vkGetPhysicalDeviceExternalImageFormatPropertiesNV
,
vkGetPhysicalDeviceImageFormatProperties
,
vkGetPhysicalDeviceSparseImageFormatProperties
Instances
pattern VK_IMAGE_TYPE_1D :: VkImageType Source #
VK_IMAGE_TYPE_1D
specifies a one-dimensional image.
pattern VK_IMAGE_TYPE_2D :: VkImageType Source #
VK_IMAGE_TYPE_2D
specifies a two-dimensional image.
pattern VK_IMAGE_TYPE_3D :: VkImageType Source #
VK_IMAGE_TYPE_3D
specifies a three-dimensional image.
newtype VkPhysicalDeviceType Source #
VkPhysicalDeviceType - Supported physical device types
Description
VK_PHYSICAL_DEVICE_TYPE_OTHER
- the device does not match any other available types.
VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU
- the device is typically one embedded in or tightly coupled with the host.VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU
- the device is typically a separate processor connected to the host via an interlink.VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU
- the device is typically a virtual node in a virtualization environment.VK_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
Instances
pattern VK_PHYSICAL_DEVICE_TYPE_OTHER :: VkPhysicalDeviceType Source #
pattern VK_PHYSICAL_DEVICE_TYPE_CPU :: VkPhysicalDeviceType Source #
newtype VkSystemAllocationScope Source #
VkSystemAllocationScope - Allocation scope
Description
VK_SYSTEM_ALLOCATION_SCOPE_COMMAND
specifies that the allocation is scoped to the duration of the Vulkan command.
VK_SYSTEM_ALLOCATION_SCOPE_OBJECT
specifies that the allocation is scoped to the lifetime of the Vulkan object that is being created or used.VK_SYSTEM_ALLOCATION_SCOPE_CACHE
specifies that the allocation is scoped to the lifetime of aVkPipelineCache
orVkValidationCacheEXT
object.VK_SYSTEM_ALLOCATION_SCOPE_DEVICE
specifies that the allocation is scoped to the lifetime of the Vulkan device.VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE
specifies 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 VK_SYSTEM_ALLOCATION_SCOPE_OBJECT
or
VK_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
VK_SYSTEM_ALLOCATION_SCOPE_COMMAND
allocation 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 parentVkDevice
has an allocator it will be used, else if the parentVkInstance
has an allocator it will be used. Else, - If an allocation is associated with an object of type
VkValidationCacheEXT
orVkPipelineCache
, the allocator will use theVK_SYSTEM_ALLOCATION_SCOPE_CACHE
allocation 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
VkDevice
orVkInstance
, the allocator will use an allocation scope ofVK_SYSTEM_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
VK_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
VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE
. - Otherwise an implementation will allocate memory through an alternative mechanism that is unspecified.
See Also
Instances
newtype VkInternalAllocationType Source #
VkInternalAllocationType - Allocation type
See Also
PFN_vkInternalAllocationNotification
, PFN_vkInternalFreeNotification
Instances
pattern VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE :: VkInternalAllocationType Source #
VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE
specifies that the allocation
is intended for execution by the host.
newtype VkInstanceCreateFlags Source #
VkInstanceCreateFlags - Reserved for future use
Description
VkInstanceCreateFlags
is a bitmask type for setting a mask, but is
currently reserved for future use.
See Also
Instances
newtype VkQueueFlagBits Source #
VkQueueFlagBits - Bitmask specifying capabilities of queues in a queue family
Description
VK_QUEUE_GRAPHICS_BIT
specifies that queues in this queue family support graphics operations.
VK_QUEUE_COMPUTE_BIT
specifies that queues in this queue family support compute operations.VK_QUEUE_TRANSFER_BIT
specifies that queues in this queue family support transfer operations.VK_QUEUE_SPARSE_BINDING_BIT
specifies that queues in this queue family support sparse memory management operations (see Sparse Resources). If any of the sparse resource features are enabled, then at least one queue family must support this bit.
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.
Note
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
VK_QUEUE_GRAPHICS_BIT
or VK_QUEUE_COMPUTE_BIT
, then reporting the
VK_QUEUE_TRANSFER_BIT
capability separately for that queue family is
optional.
For further details see Queues.
See Also
Instances
pattern VK_QUEUE_GRAPHICS_BIT :: VkQueueFlagBits Source #
pattern VK_QUEUE_COMPUTE_BIT :: VkQueueFlagBits Source #
pattern VK_QUEUE_TRANSFER_BIT :: VkQueueFlagBits Source #
pattern VK_QUEUE_SPARSE_BINDING_BIT :: VkQueueFlagBits Source #
newtype VkMemoryPropertyFlagBits Source #
VkMemoryPropertyFlagBits - Bitmask specifying properties for a memory type
See Also
Instances
pattern VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT :: VkMemoryPropertyFlagBits Source #
VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT
bit 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 the VK_MEMORY_HEAP_DEVICE_LOCAL_BIT
set.
pattern VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT :: VkMemoryPropertyFlagBits Source #
VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT
bit specifies that memory
allocated with this type can be mapped for host access using
vkMapMemory
.
pattern VK_MEMORY_PROPERTY_HOST_COHERENT_BIT :: VkMemoryPropertyFlagBits Source #
VK_MEMORY_PROPERTY_HOST_COHERENT_BIT
bit specifies that the host cache
management commands
vkFlushMappedMemoryRanges
and
vkInvalidateMappedMemoryRanges
are not
needed to flush host writes to the device or make device writes visible
to the host, respectively.
pattern VK_MEMORY_PROPERTY_HOST_CACHED_BIT :: VkMemoryPropertyFlagBits Source #
VK_MEMORY_PROPERTY_HOST_CACHED_BIT
bit 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.
pattern VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT :: VkMemoryPropertyFlagBits Source #
VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT
bit specifies that the memory
type only allows device access to the memory. Memory types must not
have both VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT
and
VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT
set. Additionally, the object’s
backing memory may be provided by the implementation lazily as
specified in Lazily Allocated
Memory.
newtype VkMemoryHeapFlagBits Source #
Instances
pattern VK_MEMORY_HEAP_DEVICE_LOCAL_BIT :: VkMemoryHeapFlagBits Source #
VK_MEMORY_HEAP_DEVICE_LOCAL_BIT
specifies 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.
newtype VkImageUsageFlagBits Source #
Instances
pattern VK_IMAGE_USAGE_TRANSFER_SRC_BIT :: VkImageUsageFlagBits Source #
VK_IMAGE_USAGE_TRANSFER_SRC_BIT
specifies that the image can be used
as the source of a transfer command.
pattern VK_IMAGE_USAGE_TRANSFER_DST_BIT :: VkImageUsageFlagBits Source #
VK_IMAGE_USAGE_TRANSFER_DST_BIT
specifies that the image can be used
as the destination of a transfer command.
pattern VK_IMAGE_USAGE_SAMPLED_BIT :: VkImageUsageFlagBits Source #
VK_IMAGE_USAGE_SAMPLED_BIT
specifies that the image can be used to
create a VkImageView
suitable for occupying a VkDescriptorSet
slot
either of type VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE
or
VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER
, and be sampled by a shader.
pattern VK_IMAGE_USAGE_STORAGE_BIT :: VkImageUsageFlagBits Source #
VK_IMAGE_USAGE_STORAGE_BIT
specifies that the image can be used to
create a VkImageView
suitable for occupying a VkDescriptorSet
slot
of type VK_DESCRIPTOR_TYPE_STORAGE_IMAGE
.
pattern VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT :: VkImageUsageFlagBits Source #
VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT
specifies that the image can be
used to create a VkImageView
suitable for use as a color or resolve
attachment in a VkFramebuffer
.
pattern VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT :: VkImageUsageFlagBits Source #
VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
specifies that the image
can be used to create a VkImageView
suitable for use as a
depth/stencil attachment in a VkFramebuffer
.
pattern VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT :: VkImageUsageFlagBits Source #
VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT
specifies that the memory
bound to this image will have been allocated with the
VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT
(see
{html_spec_relative}#memory
for more detail). This bit can be set for any image that can be used
to create a VkImageView
suitable for use as a color, resolve,
depth/stencil, or input attachment.
pattern VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT :: VkImageUsageFlagBits Source #
VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT
specifies that the image can be
used to create a VkImageView
suitable for occupying VkDescriptorSet
slot of type VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT
; be read from a
shader as an input attachment; and be used as an input attachment in a
framebuffer.
newtype VkImageCreateFlagBits Source #
VkImageCreateFlagBits - Bitmask specifying additional parameters of an image
Description
VK_IMAGE_CREATE_SPARSE_BINDING_BIT
specifies that the image will be backed using sparse memory binding.
VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT
specifies that the image can be partially backed using sparse memory binding. Images created with this flag must also be created with theVK_IMAGE_CREATE_SPARSE_BINDING_BIT
flag.VK_IMAGE_CREATE_SPARSE_ALIASED_BIT
specifies 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 theVK_IMAGE_CREATE_SPARSE_BINDING_BIT
flagVK_IMAGE_CREATE_MUTABLE_FORMAT_BIT
specifies that the image can be used to create aVkImageView
with a different format from the image. For multi-planar formats,VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT
specifies that aVkImageView
can be created of a plane of the image.VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT
specifies that the image can be used to create aVkImageView
of typeVK_IMAGE_VIEW_TYPE_CUBE
orVK_IMAGE_VIEW_TYPE_CUBE_ARRAY
.VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT
specifies that the image can be used to create aVkImageView
of typeVK_IMAGE_VIEW_TYPE_2D
orVK_IMAGE_VIEW_TYPE_2D_ARRAY
.VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT
specifies that the image can be used with a non-zero value of thesplitInstanceBindRegionCount
member of aVkBindImageMemoryDeviceGroupInfo
structure passed intovkBindImageMemory2
. This flag also has the effect of making the image use the standard sparse image block dimensions.VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT
specifies that the image having a compressed format can be used to create aVkImageView
with an uncompressed format where each texel in the image view corresponds to a compressed texel block of the image.VK_IMAGE_CREATE_EXTENDED_USAGE_BIT
specifies 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 aVkImageView
created from the image can have.VK_IMAGE_CREATE_DISJOINT_BIT
specifies 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.VK_IMAGE_CREATE_ALIAS_BIT
specifies 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 {html_spec_relative}#features-formats-compatible-planes. If thepNext
chain includes aVkExternalMemoryImageCreateInfo
orVkExternalMemoryImageCreateInfoNV
structure whosehandleTypes
member is not0
, it is as ifVK_IMAGE_CREATE_ALIAS_BIT
is set.VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT
specifies that an image with a depth or depth/stencil format can be used with custom sample locations when used as a depth/stencil attachment.
See Sparse Resource Features and Sparse Physical Device Features for more details.
See Also
Instances
newtype VkFormatFeatureFlagBits Source #
VkFormatFeatureFlagBits - Bitmask specifying features supported by a buffer
Description
The following bits may be set in linearTilingFeatures
and
optimalTilingFeatures
, specifying that the features are supported by
images
or image
views
created with the queried
vkGetPhysicalDeviceFormatProperties
::format
:
VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
specifies that an image view can be sampled from.VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT
specifies that an image view can be used as a storage images.VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT
specifies that an image view can be used as storage image that supports atomic operations.VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT
specifies that an image view can be used as a framebuffer color attachment and as an input attachment.VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT
specifies that an image view can be used as a framebuffer color attachment that supports blending and as an input attachment.VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT
specifies that an image view can be used as a framebuffer depth/stencil attachment and as an input attachment.VK_FORMAT_FEATURE_BLIT_SRC_BIT
specifies that an image can be used assrcImage
for thevkCmdBlitImage
command.VK_FORMAT_FEATURE_BLIT_DST_BIT
specifies that an image can be used asdstImage
for thevkCmdBlitImage
command.VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
specifies that ifVK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
is also set, an image view can be used with a sampler that has either ofmagFilter
orminFilter
set toVK_FILTER_LINEAR
, ormipmapMode
set toVK_SAMPLER_MIPMAP_MODE_LINEAR
. IfVK_FORMAT_FEATURE_BLIT_SRC_BIT
is also set, an image can be used as thesrcImage
tovkCmdBlitImage
with afilter
ofVK_FILTER_LINEAR
. This bit must only be exposed for formats that also support theVK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
orVK_FORMAT_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. If this bit is not present, linear filtering with depth compare disabled is unsupported and linear filtering with depth compare enabled is supported, but may compute the filtered value 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.
VK_FORMAT_FEATURE_TRANSFER_SRC_BIT
specifies that an image can be used as a source image for copy commands.VK_FORMAT_FEATURE_TRANSFER_DST_BIT
specifies that an image can be used as a destination image for copy commands and clear commands.VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT
specifiesVkImage
can be used as a sampled image with a min or maxVkSamplerReductionModeEXT
. This bit must only be exposed for formats that also support theVK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
.VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG
specifies thatVkImage
can be used with a sampler that has either ofmagFilter
orminFilter
set toVK_FILTER_CUBIC_IMG
, or be the source image for a blit withfilter
set toVK_FILTER_CUBIC_IMG
. This bit must only be exposed for formats that also support theVK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
. If the format being queried is a depth/stencil format, this only specifies that the depth aspect is cubic filterable.VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT
specifies 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 aVkSamplerYcbcrConversionCreateInfo
xChromaOffset
and/oryChromaOffset
ofVK_CHROMA_LOCATION_MIDPOINT
. Otherwise bothxChromaOffset
andyChromaOffset
must beVK_CHROMA_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 setVK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT
.VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT
specifies 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 aVkSamplerYcbcrConversionCreateInfo
xChromaOffset
and/oryChromaOffset
ofVK_CHROMA_LOCATION_COSITED_EVEN
. Otherwise bothxChromaOffset
andyChromaOffset
must beVK_CHROMA_LOCATION_MIDPOINT
. If neitherVK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT
norVK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT
is set, the application must not define a sampler Y’CBCR conversion using this format as a source.VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT
specifies that the format can do linear sampler filtering (min/magFilter) whilst sampler Y’CBCR conversion is enabled.VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT
specifies that the format can have different chroma, min, and mag filters.VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT
specifies that reconstruction is explicit, as described in {html_spec_relative}#textures-chroma-reconstruction. If this bit is not present, reconstruction is implicit by default.VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT
specifies that reconstruction can be forcibly made explicit by settingVkSamplerYcbcrConversionCreateInfo
::forceExplicitReconstruction
toVK_TRUE
.VK_FORMAT_FEATURE_DISJOINT_BIT
specifies that a multi-planar image can have theVK_IMAGE_CREATE_DISJOINT_BIT
set during image creation. An implementation must not setVK_FORMAT_FEATURE_DISJOINT_BIT
for single-plane formats.
The following bits may be set in bufferFeatures
, specifying that the
features are supported by
buffers
or buffer
views
created with the queried vkGetPhysicalDeviceProperties
::format
:
VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
specifies that the format can be used to create a buffer view that can be bound to aVK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER
descriptor.VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT
specifies that the format can be used to create a buffer view that can be bound to aVK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER
descriptor.VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT
specifies that atomic operations are supported onVK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER
with this format.VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT
specifies that the format can be used as a vertex attribute format (VkVertexInputAttributeDescription
::format
).
See Also
Instances
newtype VkSampleCountFlagBits Source #
VkSampleCountFlagBits - Bitmask specifying sample counts supported for an image used for storage operations
See Also
VkAttachmentDescription
,
VkImageCreateInfo
,
VkPhysicalDeviceSparseImageFormatInfo2
,
VkPipelineMultisampleStateCreateInfo
,
VkSampleCountFlags
,
VkSampleLocationsInfoEXT
,
vkGetPhysicalDeviceMultisamplePropertiesEXT
,
vkGetPhysicalDeviceSparseImageFormatProperties
Instances
pattern VK_SAMPLE_COUNT_1_BIT :: VkSampleCountFlagBits Source #
VK_SAMPLE_COUNT_1_BIT
specifies an image with one sample per pixel.
pattern VK_SAMPLE_COUNT_2_BIT :: VkSampleCountFlagBits Source #
VK_SAMPLE_COUNT_2_BIT
specifies an image with 2 samples per pixel.
pattern VK_SAMPLE_COUNT_4_BIT :: VkSampleCountFlagBits Source #
VK_SAMPLE_COUNT_4_BIT
specifies an image with 4 samples per pixel.
pattern VK_SAMPLE_COUNT_8_BIT :: VkSampleCountFlagBits Source #
VK_SAMPLE_COUNT_8_BIT
specifies an image with 8 samples per pixel.
pattern VK_SAMPLE_COUNT_16_BIT :: VkSampleCountFlagBits Source #
VK_SAMPLE_COUNT_16_BIT
specifies an image with 16 samples per pixel.
pattern VK_SAMPLE_COUNT_32_BIT :: VkSampleCountFlagBits Source #
VK_SAMPLE_COUNT_32_BIT
specifies an image with 32 samples per pixel.
pattern VK_SAMPLE_COUNT_64_BIT :: VkSampleCountFlagBits Source #
VK_SAMPLE_COUNT_64_BIT
specifies an image with 64 samples per pixel.
type VK_MAX_PHYSICAL_DEVICE_NAME_SIZE = 256 Source #
pattern VK_MAX_PHYSICAL_DEVICE_NAME_SIZE :: Integral a => a Source #
type VK_UUID_SIZE = 16 Source #
pattern VK_UUID_SIZE :: Integral a => a Source #
type VK_MAX_MEMORY_TYPES = 32 Source #
pattern VK_MAX_MEMORY_TYPES :: Integral a => a Source #
type VK_MAX_MEMORY_HEAPS = 16 Source #
pattern VK_MAX_MEMORY_HEAPS :: Integral a => a Source #
type PFN_vkInternalAllocationNotification = Ptr (("pUserData" ::: Ptr ()) -> ("size" ::: CSize) -> ("allocationType" ::: VkInternalAllocationType) -> ("allocationScope" ::: VkSystemAllocationScope) -> IO ()) Source #
PFN_vkInternalAllocationNotification - Application-defined memory allocation notification function
Parameters
pUserData
is the value specified forVkAllocationCallbacks
::pUserData
in the allocator specified by the application.
size
is the requested size of an allocation.allocationType
is aVkInternalAllocationType
value specifying the requested type of an allocation.allocationScope
is aVkSystemAllocationScope
value specifying the allocation scope of the lifetime of the allocation, as described here.
Description
This is a purely informational callback.
See Also
type PFN_vkInternalFreeNotification = Ptr (("pUserData" ::: Ptr ()) -> ("size" ::: CSize) -> ("allocationType" ::: VkInternalAllocationType) -> ("allocationScope" ::: VkSystemAllocationScope) -> IO ()) Source #
PFN_vkInternalFreeNotification - Application-defined memory free notification function
Parameters
pUserData
is the value specified forVkAllocationCallbacks
::pUserData
in the allocator specified by the application.
size
is the requested size of an allocation.allocationType
is aVkInternalAllocationType
value specifying the requested type of an allocation.allocationScope
is aVkSystemAllocationScope
value specifying the allocation scope of the lifetime of the allocation, as described here.
See Also
type PFN_vkReallocationFunction = Ptr (("pUserData" ::: Ptr ()) -> ("pOriginal" ::: Ptr ()) -> ("size" ::: CSize) -> ("alignment" ::: CSize) -> ("allocationScope" ::: VkSystemAllocationScope) -> IO (Ptr ())) Source #
PFN_vkReallocationFunction - Application-defined memory reallocation function
Parameters
pUserData
is the value specified forVkAllocationCallbacks
::pUserData
in the allocator specified by the application.
pOriginal
must be eitherNULL
or a pointer previously returned bypfnReallocation
orpfnAllocation
of the same allocator.size
is the size in bytes of the requested allocation.alignment
is the requested alignment of the allocation in bytes and must be a power of two.allocationScope
is aVkSystemAllocationScope
value specifying the allocation scope of the lifetime of the allocation, as described here.
Description
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
@PFN_vkAllocationFunction@.
See Also
type PFN_vkAllocationFunction = Ptr (("pUserData" ::: Ptr ()) -> ("size" ::: CSize) -> ("alignment" ::: CSize) -> ("allocationScope" ::: VkSystemAllocationScope) -> IO (Ptr ())) Source #
PFN_vkAllocationFunction - Application-defined memory allocation function
Parameters
pUserData
is the value specified forVkAllocationCallbacks
::pUserData
in the allocator specified by the application.
size
is the size in bytes of the requested allocation.alignment
is the requested alignment of the allocation in bytes and must be a power of two.allocationScope
is aVkSystemAllocationScope
value specifying the allocation scope of the lifetime of the allocation, as described here.
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
.
Note
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
VkInstance
objects are going to operate correctly (even
vkDestroyInstance
), 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 run-time error, and
generate VK_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 VK_ERROR_OUT_OF_HOST_MEMORY
as a result of
this failed allocation.
See Also
type PFN_vkFreeFunction = Ptr (("pUserData" ::: Ptr ()) -> ("pMemory" ::: Ptr ()) -> IO ()) Source #
PFN_vkFreeFunction - Application-defined memory free function
Parameters
pUserData
is the value specified forVkAllocationCallbacks
::pUserData
in the allocator specified by the application.
pMemory
is the allocation to be freed.
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 PFN_vkVoidFunction = Ptr (() -> IO ()) Source #
PFN_vkVoidFunction - Dummy function pointer type returned by queries
See Also
type VkInstance = Ptr VkInstance_T Source #
VkInstance - Opaque handle to a instance object
See Also
vkCreateAndroidSurfaceKHR
,
vkCreateDebugReportCallbackEXT
,
vkCreateDebugUtilsMessengerEXT
,
vkCreateDisplayPlaneSurfaceKHR
,
vkCreateIOSSurfaceMVK
,
vkCreateInstance
,
vkCreateMacOSSurfaceMVK
,
vkCreateMirSurfaceKHR
,
vkCreateViSurfaceNN
,
vkCreateWaylandSurfaceKHR
,
vkCreateWin32SurfaceKHR
,
vkCreateXcbSurfaceKHR
,
vkCreateXlibSurfaceKHR
,
vkDebugReportMessageEXT
,
vkDestroyDebugReportCallbackEXT
,
vkDestroyDebugUtilsMessengerEXT
,
vkDestroyInstance
,
vkDestroySurfaceKHR
,
vkEnumeratePhysicalDeviceGroups
,
vkEnumeratePhysicalDeviceGroupsKHR
,
vkEnumeratePhysicalDevices
, vkGetInstanceProcAddr
,
vkSubmitDebugUtilsMessageEXT
type VkPhysicalDevice = Ptr VkPhysicalDevice_T Source #
VkPhysicalDevice - Opaque handle to a physical device object
See Also
VkDeviceGroupDeviceCreateInfo
,
VkPhysicalDeviceGroupProperties
,
vkAcquireXlibDisplayEXT
,
vkCreateDevice
,
vkCreateDisplayModeKHR
,
vkEnumerateDeviceExtensionProperties
,
vkEnumerateDeviceLayerProperties
,
vkEnumeratePhysicalDevices
,
vkGetDisplayModePropertiesKHR
,
vkGetDisplayPlaneCapabilitiesKHR
,
vkGetDisplayPlaneSupportedDisplaysKHR
,
vkGetPhysicalDeviceDisplayPlanePropertiesKHR
,
vkGetPhysicalDeviceDisplayPropertiesKHR
,
vkGetPhysicalDeviceExternalBufferProperties
,
vkGetPhysicalDeviceExternalBufferPropertiesKHR
,
vkGetPhysicalDeviceExternalFenceProperties
,
vkGetPhysicalDeviceExternalFencePropertiesKHR
,
vkGetPhysicalDeviceExternalImageFormatPropertiesNV
,
vkGetPhysicalDeviceExternalSemaphoreProperties
,
vkGetPhysicalDeviceExternalSemaphorePropertiesKHR
,
vkGetPhysicalDeviceFeatures
,
vkGetPhysicalDeviceFeatures2
,
vkGetPhysicalDeviceFeatures2KHR
,
vkGetPhysicalDeviceFormatProperties
,
vkGetPhysicalDeviceFormatProperties2
,
vkGetPhysicalDeviceFormatProperties2KHR
,
vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX
,
vkGetPhysicalDeviceImageFormatProperties
,
vkGetPhysicalDeviceImageFormatProperties2
,
vkGetPhysicalDeviceImageFormatProperties2KHR
,
vkGetPhysicalDeviceMemoryProperties
,
vkGetPhysicalDeviceMemoryProperties2
,
vkGetPhysicalDeviceMemoryProperties2KHR
,
vkGetPhysicalDeviceMirPresentationSupportKHR
,
vkGetPhysicalDeviceMultisamplePropertiesEXT
,
vkGetPhysicalDevicePresentRectanglesKHR
,
vkGetPhysicalDeviceProperties
,
vkGetPhysicalDeviceProperties2
,
vkGetPhysicalDeviceProperties2KHR
,
vkGetPhysicalDeviceQueueFamilyProperties
,
vkGetPhysicalDeviceQueueFamilyProperties2
,
vkGetPhysicalDeviceQueueFamilyProperties2KHR
,
vkGetPhysicalDeviceSparseImageFormatProperties
,
vkGetPhysicalDeviceSparseImageFormatProperties2
,
vkGetPhysicalDeviceSparseImageFormatProperties2KHR
,
vkGetPhysicalDeviceSurfaceCapabilities2EXT
,
vkGetPhysicalDeviceSurfaceCapabilities2KHR
,
vkGetPhysicalDeviceSurfaceCapabilitiesKHR
,
vkGetPhysicalDeviceSurfaceFormats2KHR
,
vkGetPhysicalDeviceSurfaceFormatsKHR
,
vkGetPhysicalDeviceSurfacePresentModesKHR
,
vkGetPhysicalDeviceSurfaceSupportKHR
,
vkGetPhysicalDeviceWaylandPresentationSupportKHR
,
vkGetPhysicalDeviceWin32PresentationSupportKHR
,
vkGetPhysicalDeviceXcbPresentationSupportKHR
,
vkGetPhysicalDeviceXlibPresentationSupportKHR
,
vkGetRandROutputDisplayEXT
,
vkReleaseDisplayEXT
type VkDevice = Ptr VkDevice_T Source #
VkDevice - Opaque handle to a device object
See Also
vkAcquireNextImage2KHR
,
vkAcquireNextImageKHR
,
vkAllocateCommandBuffers
,
vkAllocateDescriptorSets
,
vkAllocateMemory
,
vkBindBufferMemory
,
vkBindBufferMemory2
,
vkBindBufferMemory2KHR
,
vkBindImageMemory
,
vkBindImageMemory2
,
vkBindImageMemory2KHR
,
vkCreateBuffer
,
vkCreateBufferView
,
vkCreateCommandPool
,
vkCreateComputePipelines
,
vkCreateDescriptorPool
,
vkCreateDescriptorSetLayout
,
vkCreateDescriptorUpdateTemplate
,
vkCreateDescriptorUpdateTemplateKHR
,
vkCreateDevice
,
vkCreateEvent
,
vkCreateFence
,
vkCreateFramebuffer
,
vkCreateGraphicsPipelines
,
vkCreateImage
,
vkCreateImageView
,
vkCreateIndirectCommandsLayoutNVX
,
vkCreateObjectTableNVX
,
vkCreatePipelineCache
,
vkCreatePipelineLayout
,
vkCreateQueryPool
,
vkCreateRenderPass
,
vkCreateSampler
,
vkCreateSamplerYcbcrConversion
,
vkCreateSamplerYcbcrConversionKHR
,
vkCreateSemaphore
,
vkCreateShaderModule
,
vkCreateSharedSwapchainsKHR
,
vkCreateSwapchainKHR
,
vkCreateValidationCacheEXT
,
vkDebugMarkerSetObjectNameEXT
,
vkDebugMarkerSetObjectTagEXT
,
vkDestroyBuffer
,
vkDestroyBufferView
,
vkDestroyCommandPool
,
vkDestroyDescriptorPool
,
vkDestroyDescriptorSetLayout
,
vkDestroyDescriptorUpdateTemplate
,
vkDestroyDescriptorUpdateTemplateKHR
,
vkDestroyDevice
,
vkDestroyEvent
,
vkDestroyFence
,
vkDestroyFramebuffer
,
vkDestroyImage
,
vkDestroyImageView
,
vkDestroyIndirectCommandsLayoutNVX
,
vkDestroyObjectTableNVX
,
vkDestroyPipeline
,
vkDestroyPipelineCache
,
vkDestroyPipelineLayout
,
vkDestroyQueryPool
,
vkDestroyRenderPass
,
vkDestroySampler
,
vkDestroySamplerYcbcrConversion
,
vkDestroySamplerYcbcrConversionKHR
,
vkDestroySemaphore
,
vkDestroyShaderModule
,
vkDestroySwapchainKHR
,
vkDestroyValidationCacheEXT
,
vkDeviceWaitIdle
,
vkDisplayPowerControlEXT
,
vkFlushMappedMemoryRanges
,
vkFreeCommandBuffers
,
vkFreeDescriptorSets
,
vkFreeMemory
,
vkGetAndroidHardwareBufferPropertiesANDROID
,
vkGetBufferMemoryRequirements
,
vkGetBufferMemoryRequirements2
,
vkGetBufferMemoryRequirements2KHR
,
vkGetDescriptorSetLayoutSupport
,
vkGetDescriptorSetLayoutSupportKHR
,
vkGetDeviceGroupPeerMemoryFeatures
,
vkGetDeviceGroupPeerMemoryFeaturesKHR
,
vkGetDeviceGroupPresentCapabilitiesKHR
,
vkGetDeviceGroupSurfacePresentModesKHR
,
vkGetDeviceMemoryCommitment
,
vkGetDeviceProcAddr
, vkGetDeviceQueue
,
vkGetDeviceQueue2
,
vkGetEventStatus
,
vkGetFenceFdKHR
,
vkGetFenceStatus
,
vkGetFenceWin32HandleKHR
,
vkGetImageMemoryRequirements
,
vkGetImageMemoryRequirements2
,
vkGetImageMemoryRequirements2KHR
,
vkGetImageSparseMemoryRequirements
,
vkGetImageSparseMemoryRequirements2
,
vkGetImageSparseMemoryRequirements2KHR
,
vkGetImageSubresourceLayout
,
vkGetMemoryAndroidHardwareBufferANDROID
,
vkGetMemoryFdKHR
,
vkGetMemoryFdPropertiesKHR
,
vkGetMemoryHostPointerPropertiesEXT
,
vkGetMemoryWin32HandleKHR
,
vkGetMemoryWin32HandleNV
,
vkGetMemoryWin32HandlePropertiesKHR
,
vkGetPastPresentationTimingGOOGLE
,
vkGetPipelineCacheData
,
vkGetQueryPoolResults
,
vkGetRefreshCycleDurationGOOGLE
,
vkGetRenderAreaGranularity
,
vkGetSemaphoreFdKHR
,
vkGetSemaphoreWin32HandleKHR
,
vkGetShaderInfoAMD
,
vkGetSwapchainCounterEXT
,
vkGetSwapchainImagesKHR
,
vkGetSwapchainStatusKHR
,
vkGetValidationCacheDataEXT
,
vkImportFenceFdKHR
,
vkImportFenceWin32HandleKHR
,
vkImportSemaphoreFdKHR
,
vkImportSemaphoreWin32HandleKHR
,
vkInvalidateMappedMemoryRanges
,
vkMapMemory
,
vkMergePipelineCaches
,
vkMergeValidationCachesEXT
,
vkRegisterDeviceEventEXT
,
vkRegisterDisplayEventEXT
,
vkRegisterObjectsNVX
,
vkResetCommandPool
,
vkResetDescriptorPool
,
vkResetEvent
,
vkResetFences
,
vkSetDebugUtilsObjectNameEXT
,
vkSetDebugUtilsObjectTagEXT
,
vkSetEvent
,
vkSetHdrMetadataEXT
,
vkTrimCommandPool
,
vkTrimCommandPoolKHR
,
vkUnmapMemory
,
vkUnregisterObjectsNVX
,
vkUpdateDescriptorSetWithTemplate
,
vkUpdateDescriptorSetWithTemplateKHR
,
vkUpdateDescriptorSets
,
vkWaitForFences
vkCreateInstance :: ("pCreateInfo" ::: Ptr VkInstanceCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pInstance" ::: Ptr VkInstance) -> IO VkResult Source #
vkCreateInstance - Create a new Vulkan instance
Parameters
pCreateInfo
points to an instance ofVkInstanceCreateInfo
controlling creation of the instance.
pAllocator
controls host memory allocation as described in the Memory Allocation chapter.pInstance
points aVkInstance
handle in which the resulting instance is returned.
Description
vkCreateInstance
verifies that the requested layers exist. If not,
vkCreateInstance
will return VK_ERROR_LAYER_NOT_PRESENT
. Next
vkCreateInstance
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, vkCreateInstance
must return
VK_ERROR_EXTENSION_NOT_PRESENT
. After verifying and enabling the
instance layers and extensions the VkInstance
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
vkCreateInstance
time for the creation to succeed.
Valid Usage
- All required
extensions
for each extension in the
VkInstanceCreateInfo
::ppEnabledExtensionNames
list must also be present in that list.
Valid Usage (Implicit)
pCreateInfo
must be a valid pointer to a validVkInstanceCreateInfo
structure
- If
pAllocator
is notNULL
,pAllocator
must be a valid pointer to a validVkAllocationCallbacks
structure pInstance
must be a valid pointer to aVkInstance
handle
Return Codes
[Success]
- VK_SUCCESS
[Failure]
- VK_ERROR_OUT_OF_HOST_MEMORY
VK_ERROR_OUT_OF_DEVICE_MEMORY
VK_ERROR_INITIALIZATION_FAILED
VK_ERROR_LAYER_NOT_PRESENT
VK_ERROR_EXTENSION_NOT_PRESENT
VK_ERROR_INCOMPATIBLE_DRIVER
See Also
vkDestroyInstance :: ("instance" ::: VkInstance) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO () Source #
vkDestroyInstance - Destroy an instance of Vulkan
Parameters
instance
is the handle of the instance to destroy.
pAllocator
controls host memory allocation as described in the Memory Allocation chapter.
Valid Usage
- All child objects created using
instance
must have been destroyed prior to destroyinginstance
- If
VkAllocationCallbacks
were provided wheninstance
was created, a compatible set of callbacks must be provided here - If no
VkAllocationCallbacks
were provided wheninstance
was created,pAllocator
must beNULL
Valid Usage (Implicit)
- If
instance
is notNULL
,instance
must be a validVkInstance
handle
- If
pAllocator
is notNULL
,pAllocator
must be a valid pointer to a validVkAllocationCallbacks
structure
Host Synchronization
- Host access to
instance
must be externally synchronized
See Also
vkEnumeratePhysicalDevices :: ("instance" ::: VkInstance) -> ("pPhysicalDeviceCount" ::: Ptr Word32) -> ("pPhysicalDevices" ::: Ptr VkPhysicalDevice) -> IO VkResult Source #
vkEnumeratePhysicalDevices - Enumerates the physical devices accessible to a Vulkan instance
Parameters
instance
is a handle to a Vulkan instance previously created withvkCreateInstance
.
pPhysicalDeviceCount
is a pointer to an integer related to the number of physical devices available or queried, as described below.pPhysicalDevices
is eitherNULL
or a pointer to an array ofVkPhysicalDevice
handles.
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 user 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. If pPhysicalDeviceCount
is smaller than the number of
physical devices available, VK_INCOMPLETE
will be returned instead of
VK_SUCCESS
, to indicate that not all the available physical devices
were returned.
Valid Usage (Implicit)
instance
must be a validVkInstance
handle
pPhysicalDeviceCount
must be a valid pointer to auint32_t
value- If the value referenced by
pPhysicalDeviceCount
is not0
, andpPhysicalDevices
is notNULL
,pPhysicalDevices
must be a valid pointer to an array ofpPhysicalDeviceCount
VkPhysicalDevice
handles
Return Codes
[Success]
- VK_SUCCESS
VK_INCOMPLETE
[Failure]
- VK_ERROR_OUT_OF_HOST_MEMORY
VK_ERROR_OUT_OF_DEVICE_MEMORY
VK_ERROR_INITIALIZATION_FAILED
See Also
vkGetDeviceProcAddr :: ("device" ::: VkDevice) -> ("pName" ::: Ptr CChar) -> IO PFN_vkVoidFunction Source #
vkGetDeviceProcAddr - Return a function pointer for a command
Parameters
The table below defines the various use cases for vkGetDeviceProcAddr
and expected return value for each case.
Description
The returned function pointer is of type PFN_vkVoidFunction
, and must
be cast to the type of the command being queried. 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 | * | undefined |
invalid device | * | undefined |
device | NULL | undefined |
device | core device-level Vulkan command | fp |
device | enabled device extension commands | fp |
device | * (any pName not
covered above) | NULL
|
vkGetDeviceProcAddr behavior
Valid Usage (Implicit)
device
must be a validVkDevice
handle
pName
must be a null-terminated UTF-8 string
See Also
vkGetInstanceProcAddr :: ("instance" ::: VkInstance) -> ("pName" ::: Ptr CChar) -> IO PFN_vkVoidFunction Source #
vkGetInstanceProcAddr - Return a function pointer for a command
Parameters
instance
is the instance that the function pointer will be compatible with, orNULL
for commands not dependent on any instance.
pName
is the name of the command to obtain.
Description
vkGetInstanceProcAddr
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
vkGetInstanceProcAddr
and expected return value (“fp” is “function
pointer”) for each case.
The returned function pointer is of type PFN_vkVoidFunction
, and must
be cast to the type of the command being queried.
instance | pName | return value |
---|---|---|
* | NULL | undefined |
invalid instance | * | undefined |
NULL | vkEnumerateInstanceExtensionProperties | fp |
NULL | vkEnumerateInstanceLayerProperties | fp |
NULL | vkCreateInstance | fp |
NULL | * (any pName not covered above) | NULL |
instance | core Vulkan command | fp1 |
instance | enabled instance extension commands for instance | fp1 |
instance | available device extension2 commands for instance | fp1 |
instance | * (any pName not covered above) | NULL |
vkGetInstanceProcAddr behavior
- 1
- The returned function pointer must only be called with a
dispatchable object (the first parameter) that is
instance
or a child ofinstance
, e.g.VkInstance
,VkPhysicalDevice
,VkDevice
,VkQueue
, orVkCommandBuffer
. - 2
- An “available device extension” is a device extension supported by
any physical device enumerated by
instance
.
Valid Usage (Implicit)
- If
instance
is notNULL
,instance
must be a validVkInstance
handle
pName
must be a null-terminated UTF-8 string
See Also
vkGetPhysicalDeviceProperties :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pProperties" ::: Ptr VkPhysicalDeviceProperties) -> IO () Source #
vkGetPhysicalDeviceProperties - Returns properties of a physical device
Parameters
physicalDevice
is the handle to the physical device whose properties will be queried.
pProperties
points to an instance of theVkPhysicalDeviceProperties
structure, that will be filled with returned information.
Valid Usage (Implicit)
physicalDevice
must be a validVkPhysicalDevice
handle
pProperties
must be a valid pointer to aVkPhysicalDeviceProperties
structure
See Also
vkGetPhysicalDeviceQueueFamilyProperties :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pQueueFamilyPropertyCount" ::: Ptr Word32) -> ("pQueueFamilyProperties" ::: Ptr VkQueueFamilyProperties) -> IO () Source #
vkGetPhysicalDeviceQueueFamilyProperties - Reports properties of the queues of the specified physical device
Parameters
physicalDevice
is the handle to the physical device whose properties will be queried.
pQueueFamilyPropertyCount
is a pointer to an integer related to the number of queue families available or queried, as described below.pQueueFamilyProperties
is eitherNULL
or a pointer to an array ofVkQueueFamilyProperties
structures.
Description
If pQueueFamilyProperties
is NULL
, then the number of queue families
available is returned in pQueueFamilyPropertyCount
. Otherwise,
pQueueFamilyPropertyCount
must point to a variable set by the user
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)
physicalDevice
must be a validVkPhysicalDevice
handle
pQueueFamilyPropertyCount
must be a valid pointer to auint32_t
value- If the value referenced by
pQueueFamilyPropertyCount
is not0
, andpQueueFamilyProperties
is notNULL
,pQueueFamilyProperties
must be a valid pointer to an array ofpQueueFamilyPropertyCount
VkQueueFamilyProperties
structures
See Also
vkGetPhysicalDeviceMemoryProperties :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pMemoryProperties" ::: Ptr VkPhysicalDeviceMemoryProperties) -> IO () Source #
vkGetPhysicalDeviceMemoryProperties - Reports memory information for the specified physical device
Parameters
physicalDevice
is the handle to the device to query.
pMemoryProperties
points to an instance ofVkPhysicalDeviceMemoryProperties
structure in which the properties are returned.
Valid Usage (Implicit)
physicalDevice
must be a validVkPhysicalDevice
handle
pMemoryProperties
must be a valid pointer to aVkPhysicalDeviceMemoryProperties
structure
See Also
vkGetPhysicalDeviceFeatures :: ("physicalDevice" ::: VkPhysicalDevice) -> ("pFeatures" ::: Ptr VkPhysicalDeviceFeatures) -> IO () Source #
vkGetPhysicalDeviceFeatures - Reports capabilities of a physical device
Parameters
physicalDevice
is the physical device from which to query the supported features.
pFeatures
is a pointer to aVkPhysicalDeviceFeatures
structure in which the physical device features are returned. For each feature, a value ofVK_TRUE
specifies that the feature is supported on this physical device, andVK_FALSE
specifies that the feature is not supported.
Valid Usage (Implicit)
physicalDevice
must be a validVkPhysicalDevice
handle
pFeatures
must be a valid pointer to aVkPhysicalDeviceFeatures
structure
See Also
vkGetPhysicalDeviceFormatProperties :: ("physicalDevice" ::: VkPhysicalDevice) -> ("format" ::: VkFormat) -> ("pFormatProperties" ::: Ptr VkFormatProperties) -> IO () Source #
vkGetPhysicalDeviceFormatProperties - Lists physical device’s format capabilities
Parameters
physicalDevice
is the physical device from which to query the format properties.
format
is the format whose properties are queried.pFormatProperties
is a pointer to aVkFormatProperties
structure in which physical device properties forformat
are returned.
Valid Usage (Implicit)
physicalDevice
must be a validVkPhysicalDevice
handle
format
must be a validVkFormat
valuepFormatProperties
must be a valid pointer to aVkFormatProperties
structure
See Also
vkGetPhysicalDeviceImageFormatProperties :: ("physicalDevice" ::: VkPhysicalDevice) -> ("format" ::: VkFormat) -> ("type" ::: VkImageType) -> ("tiling" ::: VkImageTiling) -> ("usage" ::: VkImageUsageFlags) -> ("flags" ::: VkImageCreateFlags) -> ("pImageFormatProperties" ::: Ptr VkImageFormatProperties) -> IO VkResult Source #
vkGetPhysicalDeviceImageFormatProperties - Lists physical device’s image format capabilities
Parameters
physicalDevice
is the physical device from which to query the image capabilities.
format
is aVkFormat
value specifying the image format, corresponding toVkImageCreateInfo
::format
.type
is aVkImageType
value specifying the image type, corresponding toVkImageCreateInfo
::imageType
.tiling
is aVkImageTiling
value specifying the image tiling, corresponding toVkImageCreateInfo
::tiling
.usage
is a bitmask ofVkImageUsageFlagBits
specifying the intended usage of the image, corresponding toVkImageCreateInfo
::usage
.flags
is a bitmask ofVkImageCreateFlagBits
specifying additional parameters of the image, corresponding toVkImageCreateInfo
::flags
.pImageFormatProperties
points to an instance of theVkImageFormatProperties
structure in which capabilities are returned.
Description
The format
, type
, tiling
, usage
, and flags
parameters
correspond to parameters that would be consumed by
vkCreateImage
(as members of
VkImageCreateInfo
).
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 vkGetPhysicalDeviceImageFormatProperties
returns
VK_ERROR_FORMAT_NOT_SUPPORTED
.
The limitations on an image format that are reported by
vkGetPhysicalDeviceImageFormatProperties
have the following property:
if usage1
and usage2
of type VkImageUsageFlags
are such that the
bits set in usage1
are a subset of the bits set in usage2
, and
flags1
and flags2
of type VkImageCreateFlags
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
.
Valid Usage (Implicit)
physicalDevice
must be a validVkPhysicalDevice
handle
format
must be a validVkFormat
valuetype
must be a validVkImageType
valuetiling
must be a validVkImageTiling
valueusage
must be a valid combination ofVkImageUsageFlagBits
valuesusage
must not be0
flags
must be a valid combination ofVkImageCreateFlagBits
valuespImageFormatProperties
must be a valid pointer to aVkImageFormatProperties
structure
Return Codes
[Success]
- VK_SUCCESS
[Failure]
- VK_ERROR_OUT_OF_HOST_MEMORY
VK_ERROR_OUT_OF_DEVICE_MEMORY
VK_ERROR_FORMAT_NOT_SUPPORTED
See Also
VkFormat
, VkImageCreateFlags
,
VkImageFormatProperties
, VkImageTiling
, VkImageType
,
VkImageUsageFlags
, VkPhysicalDevice
data VkExtent3D Source #
VkExtent3D - Structure specifying a three-dimensional extent
See Also
VkBufferImageCopy
,
VkImageCopy
,
VkImageCreateInfo
,
VkImageFormatProperties
,
VkImageResolve
,
VkQueueFamilyProperties
,
VkSparseImageFormatProperties
,
VkSparseImageMemoryBind
Instances
Eq VkExtent3D Source # | |
(==) :: VkExtent3D -> VkExtent3D -> Bool # (/=) :: VkExtent3D -> VkExtent3D -> Bool # | |
Show VkExtent3D Source # | |
showsPrec :: Int -> VkExtent3D -> ShowS # show :: VkExtent3D -> String # showList :: [VkExtent3D] -> ShowS # | |
Storable VkExtent3D Source # | |
sizeOf :: VkExtent3D -> Int # alignment :: VkExtent3D -> Int # peekElemOff :: Ptr VkExtent3D -> Int -> IO VkExtent3D # pokeElemOff :: Ptr VkExtent3D -> Int -> VkExtent3D -> IO () # peekByteOff :: Ptr b -> Int -> IO VkExtent3D # pokeByteOff :: Ptr b -> Int -> VkExtent3D -> IO () # peek :: Ptr VkExtent3D -> IO VkExtent3D # poke :: Ptr VkExtent3D -> VkExtent3D -> IO () # |
data VkPhysicalDeviceProperties Source #
VkPhysicalDeviceProperties - Structure specifying physical device properties
Description
The vendorID
and deviceID
fields are provided to allow applications
to adapt to device characteristics that are not adequately exposed by
other Vulkan queries.
Note
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
VkPhysicalDevice
being queried.
Note
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 set to zero. Otherwise, the value returned must be a valid
Khronos vendor ID, obtained as described in the Vulkan Documentation
and
Extensions
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.
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 set to 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).
Note
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
VkPhysicalDeviceLimits
,
VkPhysicalDeviceProperties2
,
VkPhysicalDeviceSparseProperties
, VkPhysicalDeviceType
,
vkGetPhysicalDeviceProperties
VkPhysicalDeviceProperties | |
|
Instances
data VkApplicationInfo Source #
VkApplicationInfo - Structure specifying application info
Valid Usage (Implicit)
sType
must beVK_STRUCTURE_TYPE_APPLICATION_INFO
pNext
must beNULL
- If
pApplicationName
is notNULL
,pApplicationName
must be a null-terminated UTF-8 string - If
pEngineName
is notNULL
,pEngineName
must be a null-terminated UTF-8 string
See Also
VkApplicationInfo | |
|
Instances
Eq VkApplicationInfo Source # | |
(==) :: VkApplicationInfo -> VkApplicationInfo -> Bool # (/=) :: VkApplicationInfo -> VkApplicationInfo -> Bool # | |
Show VkApplicationInfo Source # | |
showsPrec :: Int -> VkApplicationInfo -> ShowS # show :: VkApplicationInfo -> String # showList :: [VkApplicationInfo] -> ShowS # | |
Storable VkApplicationInfo Source # | |
sizeOf :: VkApplicationInfo -> Int # alignment :: VkApplicationInfo -> Int # peekElemOff :: Ptr VkApplicationInfo -> Int -> IO VkApplicationInfo # pokeElemOff :: Ptr VkApplicationInfo -> Int -> VkApplicationInfo -> IO () # peekByteOff :: Ptr b -> Int -> IO VkApplicationInfo # pokeByteOff :: Ptr b -> Int -> VkApplicationInfo -> IO () # peek :: Ptr VkApplicationInfo -> IO VkApplicationInfo # poke :: Ptr VkApplicationInfo -> VkApplicationInfo -> IO () # |
data VkAllocationCallbacks Source #
VkAllocationCallbacks - Structure containing callback function pointers for memory allocation
Valid Usage
pfnAllocation
must be a valid pointer to a valid user-definedPFN_vkAllocationFunction
pfnReallocation
must be a valid pointer to a valid user-definedPFN_vkReallocationFunction
pfnFree
must be a valid pointer to a valid user-definedPFN_vkFreeFunction
- If either of
pfnInternalAllocation
orpfnInternalFree
is notNULL
, both must be valid callbacks
See Also
PFN_vkAllocationFunction
, PFN_vkFreeFunction
,
PFN_vkInternalAllocationNotification
,
PFN_vkInternalFreeNotification
, PFN_vkReallocationFunction
,
vkAllocateMemory
,
vkCreateAndroidSurfaceKHR
,
vkCreateBuffer
,
vkCreateBufferView
,
vkCreateCommandPool
,
vkCreateComputePipelines
,
vkCreateDebugReportCallbackEXT
,
vkCreateDebugUtilsMessengerEXT
,
vkCreateDescriptorPool
,
vkCreateDescriptorSetLayout
,
vkCreateDescriptorUpdateTemplate
,
vkCreateDescriptorUpdateTemplateKHR
,
vkCreateDevice
,
vkCreateDisplayModeKHR
,
vkCreateDisplayPlaneSurfaceKHR
,
vkCreateEvent
,
vkCreateFence
,
vkCreateFramebuffer
,
vkCreateGraphicsPipelines
,
vkCreateIOSSurfaceMVK
,
vkCreateImage
,
vkCreateImageView
,
vkCreateIndirectCommandsLayoutNVX
,
vkCreateInstance
,
vkCreateMacOSSurfaceMVK
,
vkCreateMirSurfaceKHR
,
vkCreateObjectTableNVX
,
vkCreatePipelineCache
,
vkCreatePipelineLayout
,
vkCreateQueryPool
,
vkCreateRenderPass
,
vkCreateSampler
,
vkCreateSamplerYcbcrConversion
,
vkCreateSamplerYcbcrConversionKHR
,
vkCreateSemaphore
,
vkCreateShaderModule
,
vkCreateSharedSwapchainsKHR
,
vkCreateSwapchainKHR
,
vkCreateValidationCacheEXT
,
vkCreateViSurfaceNN
,
vkCreateWaylandSurfaceKHR
,
vkCreateWin32SurfaceKHR
,
vkCreateXcbSurfaceKHR
,
vkCreateXlibSurfaceKHR
,
vkDestroyBuffer
,
vkDestroyBufferView
,
vkDestroyCommandPool
,
vkDestroyDebugReportCallbackEXT
,
vkDestroyDebugUtilsMessengerEXT
,
vkDestroyDescriptorPool
,
vkDestroyDescriptorSetLayout
,
vkDestroyDescriptorUpdateTemplate
,
vkDestroyDescriptorUpdateTemplateKHR
,
vkDestroyDevice
,
vkDestroyEvent
,
vkDestroyFence
,
vkDestroyFramebuffer
,
vkDestroyImage
,
vkDestroyImageView
,
vkDestroyIndirectCommandsLayoutNVX
,
vkDestroyInstance
,
vkDestroyObjectTableNVX
,
vkDestroyPipeline
,
vkDestroyPipelineCache
,
vkDestroyPipelineLayout
,
vkDestroyQueryPool
,
vkDestroyRenderPass
,
vkDestroySampler
,
vkDestroySamplerYcbcrConversion
,
vkDestroySamplerYcbcrConversionKHR
,
vkDestroySemaphore
,
vkDestroyShaderModule
,
vkDestroySurfaceKHR
,
vkDestroySwapchainKHR
,
vkDestroyValidationCacheEXT
,
vkFreeMemory
,
vkRegisterDeviceEventEXT
,
vkRegisterDisplayEventEXT
VkAllocationCallbacks | |
|
Instances
Eq VkAllocationCallbacks Source # | |
(==) :: VkAllocationCallbacks -> VkAllocationCallbacks -> Bool # (/=) :: VkAllocationCallbacks -> VkAllocationCallbacks -> Bool # | |
Show VkAllocationCallbacks Source # | |
showsPrec :: Int -> VkAllocationCallbacks -> ShowS # show :: VkAllocationCallbacks -> String # showList :: [VkAllocationCallbacks] -> ShowS # | |
Storable VkAllocationCallbacks Source # | |
sizeOf :: VkAllocationCallbacks -> Int # alignment :: VkAllocationCallbacks -> Int # peekElemOff :: Ptr VkAllocationCallbacks -> Int -> IO VkAllocationCallbacks # pokeElemOff :: Ptr VkAllocationCallbacks -> Int -> VkAllocationCallbacks -> IO () # peekByteOff :: Ptr b -> Int -> IO VkAllocationCallbacks # pokeByteOff :: Ptr b -> Int -> VkAllocationCallbacks -> IO () # peek :: Ptr VkAllocationCallbacks -> IO VkAllocationCallbacks # poke :: Ptr VkAllocationCallbacks -> VkAllocationCallbacks -> IO () # |
data VkInstanceCreateInfo Source #
VkInstanceCreateInfo - Structure specifying parameters of a newly created instance
Valid Usage (Implicit)
sType
must beVK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO
- Each
pNext
member of any structure (including this one) in thepNext
chain must be eitherNULL
or a pointer to a valid instance ofVkDebugReportCallbackCreateInfoEXT
,VkDebugUtilsMessengerCreateInfoEXT
, orVkValidationFlagsEXT
- Each
sType
member in thepNext
chain must be unique flags
must be0
- If
pApplicationInfo
is notNULL
,pApplicationInfo
must be a valid pointer to a validVkApplicationInfo
structure - If
enabledLayerCount
is not0
,ppEnabledLayerNames
must be a valid pointer to an array ofenabledLayerCount
null-terminated UTF-8 strings - If
enabledExtensionCount
is not0
,ppEnabledExtensionNames
must be a valid pointer to an array ofenabledExtensionCount
null-terminated UTF-8 strings
See Also
VkApplicationInfo
, VkInstanceCreateFlags
,
VkStructureType
, vkCreateInstance
VkInstanceCreateInfo | |
|
Instances
Eq VkInstanceCreateInfo Source # | |
(==) :: VkInstanceCreateInfo -> VkInstanceCreateInfo -> Bool # (/=) :: VkInstanceCreateInfo -> VkInstanceCreateInfo -> Bool # | |
Show VkInstanceCreateInfo Source # | |
showsPrec :: Int -> VkInstanceCreateInfo -> ShowS # show :: VkInstanceCreateInfo -> String # showList :: [VkInstanceCreateInfo] -> ShowS # | |
Storable VkInstanceCreateInfo Source # | |
sizeOf :: VkInstanceCreateInfo -> Int # alignment :: VkInstanceCreateInfo -> Int # peekElemOff :: Ptr VkInstanceCreateInfo -> Int -> IO VkInstanceCreateInfo # pokeElemOff :: Ptr VkInstanceCreateInfo -> Int -> VkInstanceCreateInfo -> IO () # peekByteOff :: Ptr b -> Int -> IO VkInstanceCreateInfo # pokeByteOff :: Ptr b -> Int -> VkInstanceCreateInfo -> IO () # peek :: Ptr VkInstanceCreateInfo -> IO VkInstanceCreateInfo # poke :: Ptr VkInstanceCreateInfo -> VkInstanceCreateInfo -> IO () # |
data VkQueueFamilyProperties 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) which indicates 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:
- The
x
,y
, andz
members of aVkOffset3D
parameter must always be zero. - The
width
,height
, anddepth
members of aVkExtent3D
parameter must always match the width, height, and depth of the image subresource corresponding to the parameter, respectively.
- The
(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
, andz
of aVkOffset3D
parameter must be integer multiples of Ax, Ay, and Az, respectively.width
of aVkExtent3D
parameter must be an integer multiple of Ax, or elsex
+width
must equal the width of the image subresource corresponding to the parameter.height
of aVkExtent3D
parameter must be an integer multiple of Ay, or elsey
+height
must equal the height of the image subresource corresponding to the parameter.depth
of aVkExtent3D
parameter must be an integer multiple of Az, or elsez
+depth
must 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
VkExtent3D
,
VkQueueFamilyProperties2
,
VkQueueFlags
, vkGetPhysicalDeviceQueueFamilyProperties
VkQueueFamilyProperties | |
|
Instances
Eq VkQueueFamilyProperties Source # | |
Show VkQueueFamilyProperties Source # | |
showsPrec :: Int -> VkQueueFamilyProperties -> ShowS # show :: VkQueueFamilyProperties -> String # showList :: [VkQueueFamilyProperties] -> ShowS # | |
Storable VkQueueFamilyProperties Source # | |
sizeOf :: VkQueueFamilyProperties -> Int # alignment :: VkQueueFamilyProperties -> Int # peekElemOff :: Ptr VkQueueFamilyProperties -> Int -> IO VkQueueFamilyProperties # pokeElemOff :: Ptr VkQueueFamilyProperties -> Int -> VkQueueFamilyProperties -> IO () # peekByteOff :: Ptr b -> Int -> IO VkQueueFamilyProperties # pokeByteOff :: Ptr b -> Int -> VkQueueFamilyProperties -> IO () # peek :: Ptr VkQueueFamilyProperties -> IO VkQueueFamilyProperties # poke :: Ptr VkQueueFamilyProperties -> VkQueueFamilyProperties -> IO () # |
data VkPhysicalDeviceMemoryProperties Source #
VkPhysicalDeviceMemoryProperties - Structure specifying physical device memory properties
Description
The VkPhysicalDeviceMemoryProperties
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 VK_MAX_MEMORY_HEAPS
. Each heap is described by an
element of the memoryHeaps
array as a VkMemoryHeap
structure. The
number of memory types available across all memory heaps is given by
memoryTypeCount
and is less than or equal to VK_MAX_MEMORY_TYPES
.
Each memory type is described by an element of the memoryTypes
array
as a VkMemoryType
structure.
At least one heap must include VK_MEMORY_HEAP_DEVICE_LOCAL_BIT
in
VkMemoryHeap
::flags
. If there are multiple heaps that all have
similar performance characteristics, they may all include
VK_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.
Each memory type returned by vkGetPhysicalDeviceMemoryProperties
must have its propertyFlags
set to one of the following values:
- 0
VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT
|VK_MEMORY_PROPERTY_HOST_COHERENT_BIT
VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT
|VK_MEMORY_PROPERTY_HOST_CACHED_BIT
VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT
|VK_MEMORY_PROPERTY_HOST_CACHED_BIT
|VK_MEMORY_PROPERTY_HOST_COHERENT_BIT
VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT
VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT
|VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT
|VK_MEMORY_PROPERTY_HOST_COHERENT_BIT
VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT
|VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT
|VK_MEMORY_PROPERTY_HOST_CACHED_BIT
VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT
|VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT
|VK_MEMORY_PROPERTY_HOST_CACHED_BIT
|VK_MEMORY_PROPERTY_HOST_COHERENT_BIT
VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT
|VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT
There must be at least one memory type with both the
VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT
and
VK_MEMORY_PROPERTY_HOST_COHERENT_BIT
bits set in its propertyFlags
.
There must be at least one memory type with the
VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT
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:
- either the set of bit flags returned in the
propertyFlags
member of X is a strict subset of the set of bit flags returned in thepropertyFlags
member of Y. - or the
propertyFlags
members of X and Y are equal, and X belongs to a memory heap with greater performance (as determined in an implementation-specific manner).
Note
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 the required order. But if instead
VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT
was before
VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT
|
VK_MEMORY_PROPERTY_HOST_COHERENT_BIT
, the list would still be in the
required order.
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
VkMemoryHeap
, VkMemoryType
,
VkPhysicalDeviceMemoryProperties2
,
vkGetPhysicalDeviceMemoryProperties
VkPhysicalDeviceMemoryProperties | |
|
Instances
data VkMemoryType Source #
VkMemoryType - Structure specifying memory type
See Also
VkMemoryType | |
|
Instances
Eq VkMemoryType Source # | |
(==) :: VkMemoryType -> VkMemoryType -> Bool # (/=) :: VkMemoryType -> VkMemoryType -> Bool # | |
Show VkMemoryType Source # | |
showsPrec :: Int -> VkMemoryType -> ShowS # show :: VkMemoryType -> String # showList :: [VkMemoryType] -> ShowS # | |
Storable VkMemoryType Source # | |
sizeOf :: VkMemoryType -> Int # alignment :: VkMemoryType -> Int # peekElemOff :: Ptr VkMemoryType -> Int -> IO VkMemoryType # pokeElemOff :: Ptr VkMemoryType -> Int -> VkMemoryType -> IO () # peekByteOff :: Ptr b -> Int -> IO VkMemoryType # pokeByteOff :: Ptr b -> Int -> VkMemoryType -> IO () # peek :: Ptr VkMemoryType -> IO VkMemoryType # poke :: Ptr VkMemoryType -> VkMemoryType -> IO () # |
data VkMemoryHeap Source #
VkMemoryHeap - Structure specifying a memory heap
See Also
VkDeviceSize
, VkMemoryHeapFlags
, VkPhysicalDeviceMemoryProperties
VkMemoryHeap | |
|
Instances
Eq VkMemoryHeap Source # | |
(==) :: VkMemoryHeap -> VkMemoryHeap -> Bool # (/=) :: VkMemoryHeap -> VkMemoryHeap -> Bool # | |
Show VkMemoryHeap Source # | |
showsPrec :: Int -> VkMemoryHeap -> ShowS # show :: VkMemoryHeap -> String # showList :: [VkMemoryHeap] -> ShowS # | |
Storable VkMemoryHeap Source # | |
sizeOf :: VkMemoryHeap -> Int # alignment :: VkMemoryHeap -> Int # peekElemOff :: Ptr VkMemoryHeap -> Int -> IO VkMemoryHeap # pokeElemOff :: Ptr VkMemoryHeap -> Int -> VkMemoryHeap -> IO () # peekByteOff :: Ptr b -> Int -> IO VkMemoryHeap # pokeByteOff :: Ptr b -> Int -> VkMemoryHeap -> IO () # peek :: Ptr VkMemoryHeap -> IO VkMemoryHeap # poke :: Ptr VkMemoryHeap -> VkMemoryHeap -> IO () # |
data VkFormatProperties Source #
VkFormatProperties - Structure specifying image format properties
Description
Note
If no format feature flags are supported, the format itself is not supported, and images of that format cannot be created.
If format
is a block-compression format, then buffers must not
support any features for the format.
See Also
VkFormatFeatureFlags
,
VkFormatProperties2
,
vkGetPhysicalDeviceFormatProperties
VkFormatProperties | |
|
Instances
Eq VkFormatProperties Source # | |
(==) :: VkFormatProperties -> VkFormatProperties -> Bool # (/=) :: VkFormatProperties -> VkFormatProperties -> Bool # | |
Show VkFormatProperties Source # | |
showsPrec :: Int -> VkFormatProperties -> ShowS # show :: VkFormatProperties -> String # showList :: [VkFormatProperties] -> ShowS # | |
Storable VkFormatProperties Source # | |
sizeOf :: VkFormatProperties -> Int # alignment :: VkFormatProperties -> Int # peekElemOff :: Ptr VkFormatProperties -> Int -> IO VkFormatProperties # pokeElemOff :: Ptr VkFormatProperties -> Int -> VkFormatProperties -> IO () # peekByteOff :: Ptr b -> Int -> IO VkFormatProperties # pokeByteOff :: Ptr b -> Int -> VkFormatProperties -> IO () # peek :: Ptr VkFormatProperties -> IO VkFormatProperties # poke :: Ptr VkFormatProperties -> VkFormatProperties -> IO () # |
data VkImageFormatProperties Source #
VkImageFormatProperties - Structure specifying a image format properties
Members
maxExtent
are the maximum image dimensions. See the Allowed Extent Values section below for how these values are constrained bytype
.
maxMipLevels
is the maximum number of mipmap levels.maxMipLevels
must be equal to ⌈log2(max(width
,height
,depth
))⌉ + 1, wherewidth
,height
, anddepth
are taken from the corresponding members ofmaxExtent
, except when one of the following conditions is true, in which case it may instead be1
:vkGetPhysicalDeviceImageFormatProperties
::tiling
wasVK_IMAGE_TILING_LINEAR
- the
VkPhysicalDeviceImageFormatInfo2
::pNext
chain included an instance ofVkPhysicalDeviceExternalImageFormatInfo
with a handle type included in thehandleTypes
member for which mipmap image support is not required
maxArrayLayers
is the maximum number of array layers.maxArrayLayers
must either be equal to 1 or be greater than or equal to themaxImageArrayLayers
member ofVkPhysicalDeviceLimits
. A value of 1 is valid only iftiling
isVK_IMAGE_TILING_LINEAR
or iftype
isVK_IMAGE_TYPE_3D
.sampleCounts
is a bitmask ofVkSampleCountFlagBits
specifying all the supported sample counts for this image as described below.maxResourceSize
is 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.maxResourceSize
must be at least 231.
Description
Note
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 vkCreateImage
will return
VK_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 VK_IMAGE_TYPE_1D
.
If the combination of parameters to
vkGetPhysicalDeviceImageFormatProperties
is not supported by the
implementation for use in vkCreateImage
,
then all members of VkImageFormatProperties
will be filled with zero.
Note
Filling VkImageFormatProperties
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
VkDeviceSize
, VkExtent3D
,
VkExternalImageFormatPropertiesNV
,
VkImageFormatProperties2
,
VkSampleCountFlags
, vkGetPhysicalDeviceImageFormatProperties
Instances
Eq VkImageFormatProperties Source # | |
Show VkImageFormatProperties Source # | |
showsPrec :: Int -> VkImageFormatProperties -> ShowS # show :: VkImageFormatProperties -> String # showList :: [VkImageFormatProperties] -> ShowS # | |
Storable VkImageFormatProperties Source # | |
sizeOf :: VkImageFormatProperties -> Int # alignment :: VkImageFormatProperties -> Int # peekElemOff :: Ptr VkImageFormatProperties -> Int -> IO VkImageFormatProperties # pokeElemOff :: Ptr VkImageFormatProperties -> Int -> VkImageFormatProperties -> IO () # peekByteOff :: Ptr b -> Int -> IO VkImageFormatProperties # pokeByteOff :: Ptr b -> Int -> VkImageFormatProperties -> IO () # peek :: Ptr VkImageFormatProperties -> IO VkImageFormatProperties # poke :: Ptr VkImageFormatProperties -> VkImageFormatProperties -> IO () # |
data VkPhysicalDeviceFeatures Source #
VkPhysicalDeviceFeatures - Structure describing the fine-grained features that can be supported by an implementation
Members
The members of the VkPhysicalDeviceFeatures
structure describe the
following features:
Description
robustBufferAccess
specifies that accesses to buffers are bounds-checked against the range of the buffer descriptor (as determined byVkDescriptorBufferInfo
::range
,VkBufferViewCreateInfo
::range
, or the size of the buffer). Out of bounds accesses must not cause application termination, and the effects of shader loads, stores, and atomics must conform to an implementation-dependent behavior as described below.A buffer access is considered to be out of bounds if any of the following are true:
- The pointer was formed by
OpImageTexelPointer
and the coordinate is less than zero or greater than or equal to the number of whole elements in the bound range. The pointer was not formed by
OpImageTexelPointer
and the object pointed to is not wholly contained within the bound range. This includes accesses performed via /variable pointers/ where the buffer descriptor being accessed cannot be statically determined. Uninitialized pointers and pointers equal toOpConstantNull
are treated as pointing to a zero-sized object, so all accesses through such pointers are considered to be out of bounds.Note
If a SPIR-V
OpLoad
instruction loads a structure and the tail end of the structure is out of bounds, then all members of the structure are considered out of bounds even if the members at the end are not statically used.- If any buffer access in a given SPIR-V block is determined to be out of bounds, then any other access of the same type (load, store, or atomic) in the same SPIR-V block that accesses an address less than 16 bytes away from the out of bounds address may also be considered out of bounds.
- The pointer was formed by
Out-of-bounds buffer loads will return any of the following values:
- Values from anywhere within the memory range(s) bound to the buffer (possibly including bytes of memory past the end of the buffer, up to the end of the bound range).
Zero values, or (0,0,0,x) vectors for vector reads where x is a valid value represented in the type of the vector components and may be any of:
- 0, 1, or the maximum representable positive integer value, for signed or unsigned integer components
- 0.0 or 1.0, for floating-point components
- Out-of-bounds writes may modify values within the memory range(s) bound to the buffer, but must not modify any other memory.
- Out-of-bounds atomics may modify values within the memory range(s) bound to the buffer, but must not modify any other memory, and return an undefined value.
Vertex input attributes are considered out of bounds if the offset of the attribute in the bound vertex buffer range plus the size of the attribute is greater than either:
vertexBufferRangeSize
, ifbindingStride
== 0; or- (
vertexBufferRangeSize
- (vertexBufferRangeSize
%bindingStride
))
where
vertexBufferRangeSize
is the byte size of the memory range bound to the vertex buffer binding andbindingStride
is the byte stride of the corresponding vertex input binding. Further, if any vertex input attribute using a specific vertex input binding is out of bounds, then all vertex input attributes using that vertex input binding for that vertex shader invocation are considered out of bounds.If a vertex input attribute is out of bounds, it will be assigned one of the following values:
- Values from anywhere within the memory range(s) bound to the buffer, converted according to the format of the attribute.
- Zero values, format converted according to the format of the attribute.
- Zero values, or (0,0,0,x) vectors, as described above.
- If
robustBufferAccess
is not enabled, out of bounds accesses may corrupt any memory within the process and cause undefined behavior up to and including application termination.
fullDrawIndexUint32
specifies the full 32-bit range of indices is supported for indexed draw calls when using aVkIndexType
ofVK_INDEX_TYPE_UINT32
.maxDrawIndexedIndexValue
is the maximum index value that may be used (aside from the primitive restart index, which is always 232-1 when theVkIndexType
isVK_INDEX_TYPE_UINT32
). If this feature is supported,maxDrawIndexedIndexValue
must be 232-1; otherwise it must be no smaller than 224-1. See maxDrawIndexedIndexValue.imageCubeArray
specifies whether image views with aVkImageViewType
ofVK_IMAGE_VIEW_TYPE_CUBE_ARRAY
can be created, and that the correspondingSampledCubeArray
andImageCubeArray
SPIR-V capabilities can be used in shader code.independentBlend
specifies whether theVkPipelineColorBlendAttachmentState
settings are controlled independently per-attachment. If this feature is not enabled, theVkPipelineColorBlendAttachmentState
settings for all color attachments must be identical. Otherwise, a differentVkPipelineColorBlendAttachmentState
can be provided for each bound color attachment.geometryShader
specifies whether geometry shaders are supported. If this feature is not enabled, theVK_SHADER_STAGE_GEOMETRY_BIT
andVK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT
enum values must not be used. This also specifies whether shader modules can declare theGeometry
capability.tessellationShader
specifies whether tessellation control and evaluation shaders are supported. If this feature is not enabled, theVK_SHADER_STAGE_TESSELLATION_CONTROL_BIT
,VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT
,VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT
,VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT
, andVK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO
enum values must not be used. This also specifies whether shader modules can declare theTessellation
capability.sampleRateShading
specifies whether Sample Shading and multisample interpolation are supported. If this feature is not enabled, thesampleShadingEnable
member of theVkPipelineMultisampleStateCreateInfo
structure must be set toVK_FALSE
and theminSampleShading
member is ignored. This also specifies whether shader modules can declare theSampleRateShading
capability.dualSrcBlend
specifies whether blend operations which take two sources are supported. If this feature is not enabled, theVK_BLEND_FACTOR_SRC1_COLOR
,VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR
,VK_BLEND_FACTOR_SRC1_ALPHA
, andVK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA
enum values must not be used as source or destination blending factors. See {html_spec_relative}#framebuffer-dsb.logicOp
specifies whether logic operations are supported. If this feature is not enabled, thelogicOpEnable
member of theVkPipelineColorBlendStateCreateInfo
structure must be set toVK_FALSE
, and thelogicOp
member is ignored.multiDrawIndirect
specifies whether multiple draw indirect is supported. If this feature is not enabled, thedrawCount
parameter to thevkCmdDrawIndirect
andvkCmdDrawIndexedIndirect
commands must be 0 or 1. ThemaxDrawIndirectCount
member of theVkPhysicalDeviceLimits
structure must also be 1 if this feature is not supported. See maxDrawIndirectCount.drawIndirectFirstInstance
specifies whether indirect draw calls support thefirstInstance
parameter. If this feature is not enabled, thefirstInstance
member of allVkDrawIndirectCommand
andVkDrawIndexedIndirectCommand
structures that are provided to thevkCmdDrawIndirect
andvkCmdDrawIndexedIndirect
commands must be 0.depthClamp
specifies whether depth clamping is supported. If this feature is not enabled, thedepthClampEnable
member of theVkPipelineRasterizationStateCreateInfo
structure must be set toVK_FALSE
. Otherwise, settingdepthClampEnable
toVK_TRUE
will enable depth clamping.depthBiasClamp
specifies whether depth bias clamping is supported. If this feature is not enabled, thedepthBiasClamp
member of theVkPipelineRasterizationStateCreateInfo
structure must be set to 0.0 unless theVK_DYNAMIC_STATE_DEPTH_BIAS
dynamic state is enabled, and thedepthBiasClamp
parameter tovkCmdSetDepthBias
must be set to 0.0.fillModeNonSolid
specifies whether point and wireframe fill modes are supported. If this feature is not enabled, theVK_POLYGON_MODE_POINT
andVK_POLYGON_MODE_LINE
enum values must not be used.depthBounds
specifies whether depth bounds tests are supported. If this feature is not enabled, thedepthBoundsTestEnable
member of theVkPipelineDepthStencilStateCreateInfo
structure must be set toVK_FALSE
. WhendepthBoundsTestEnable
is set toVK_FALSE
, theminDepthBounds
andmaxDepthBounds
members of theVkPipelineDepthStencilStateCreateInfo
structure are ignored.wideLines
specifies whether lines with width other than 1.0 are supported. If this feature is not enabled, thelineWidth
member of theVkPipelineRasterizationStateCreateInfo
structure must be set to 1.0 unless theVK_DYNAMIC_STATE_LINE_WIDTH
dynamic state is enabled, and thelineWidth
parameter tovkCmdSetLineWidth
must be set to 1.0. When this feature is supported, the range and granularity of supported line widths are indicated by thelineWidthRange
andlineWidthGranularity
members of theVkPhysicalDeviceLimits
structure, respectively.largePoints
specifies whether points with size greater than 1.0 are supported. If this feature is not enabled, only a point size of 1.0 written by a shader is supported. The range and granularity of supported point sizes are indicated by thepointSizeRange
andpointSizeGranularity
members of theVkPhysicalDeviceLimits
structure, respectively.alphaToOne
specifies whether the implementation is able to replace the alpha value of the color fragment output from the fragment shader with the maximum representable alpha value for fixed-point colors or 1.0 for floating-point colors. If this feature is not enabled, then thealphaToOneEnable
member of theVkPipelineMultisampleStateCreateInfo
structure must be set toVK_FALSE
. Otherwise settingalphaToOneEnable
toVK_TRUE
will enable alpha-to-one behavior.multiViewport
specifies whether more than one viewport is supported. If this feature is not enabled, theviewportCount
andscissorCount
members of theVkPipelineViewportStateCreateInfo
structure must be set to 1. Similarly, theviewportCount
parameter to thevkCmdSetViewport
command and thescissorCount
parameter to thevkCmdSetScissor
command must be 1, and thefirstViewport
parameter to thevkCmdSetViewport
command and thefirstScissor
parameter to thevkCmdSetScissor
command must be 0.samplerAnisotropy
specifies whether anisotropic filtering is supported. If this feature is not enabled, theanisotropyEnable
member of theVkSamplerCreateInfo
structure must beVK_FALSE
.textureCompressionETC2
specifies whether all of the ETC2 and EAC compressed texture formats are supported. If this feature is enabled, then theVK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
,VK_FORMAT_FEATURE_BLIT_SRC_BIT
andVK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
features must be supported inoptimalTilingFeatures
for the following formats:VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK
VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK
VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK
VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK
VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK
VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK
VK_FORMAT_EAC_R11_UNORM_BLOCK
VK_FORMAT_EAC_R11_SNORM_BLOCK
VK_FORMAT_EAC_R11G11_UNORM_BLOCK
VK_FORMAT_EAC_R11G11_SNORM_BLOCK
vkGetPhysicalDeviceFormatProperties
andvkGetPhysicalDeviceImageFormatProperties
can be used to check for additional supported properties of individual formats.textureCompressionASTC_LDR
specifies whether all of the ASTC LDR compressed texture formats are supported. If this feature is enabled, then theVK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
,VK_FORMAT_FEATURE_BLIT_SRC_BIT
andVK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
features must be supported inoptimalTilingFeatures
for the following formats:VK_FORMAT_ASTC_4x4_UNORM_BLOCK
VK_FORMAT_ASTC_4x4_SRGB_BLOCK
VK_FORMAT_ASTC_5x4_UNORM_BLOCK
VK_FORMAT_ASTC_5x4_SRGB_BLOCK
VK_FORMAT_ASTC_5x5_UNORM_BLOCK
VK_FORMAT_ASTC_5x5_SRGB_BLOCK
VK_FORMAT_ASTC_6x5_UNORM_BLOCK
VK_FORMAT_ASTC_6x5_SRGB_BLOCK
VK_FORMAT_ASTC_6x6_UNORM_BLOCK
VK_FORMAT_ASTC_6x6_SRGB_BLOCK
VK_FORMAT_ASTC_8x5_UNORM_BLOCK
VK_FORMAT_ASTC_8x5_SRGB_BLOCK
VK_FORMAT_ASTC_8x6_UNORM_BLOCK
VK_FORMAT_ASTC_8x6_SRGB_BLOCK
VK_FORMAT_ASTC_8x8_UNORM_BLOCK
VK_FORMAT_ASTC_8x8_SRGB_BLOCK
VK_FORMAT_ASTC_10x5_UNORM_BLOCK
VK_FORMAT_ASTC_10x5_SRGB_BLOCK
VK_FORMAT_ASTC_10x6_UNORM_BLOCK
VK_FORMAT_ASTC_10x6_SRGB_BLOCK
VK_FORMAT_ASTC_10x8_UNORM_BLOCK
VK_FORMAT_ASTC_10x8_SRGB_BLOCK
VK_FORMAT_ASTC_10x10_UNORM_BLOCK
VK_FORMAT_ASTC_10x10_SRGB_BLOCK
VK_FORMAT_ASTC_12x10_UNORM_BLOCK
VK_FORMAT_ASTC_12x10_SRGB_BLOCK
VK_FORMAT_ASTC_12x12_UNORM_BLOCK
VK_FORMAT_ASTC_12x12_SRGB_BLOCK
vkGetPhysicalDeviceFormatProperties
andvkGetPhysicalDeviceImageFormatProperties
can be used to check for additional supported properties of individual formats.textureCompressionBC
specifies whether all of the BC compressed texture formats are supported. If this feature is enabled, then theVK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
,VK_FORMAT_FEATURE_BLIT_SRC_BIT
andVK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
features must be supported inoptimalTilingFeatures
for the following formats:VK_FORMAT_BC1_RGB_UNORM_BLOCK
VK_FORMAT_BC1_RGB_SRGB_BLOCK
VK_FORMAT_BC1_RGBA_UNORM_BLOCK
VK_FORMAT_BC1_RGBA_SRGB_BLOCK
VK_FORMAT_BC2_UNORM_BLOCK
VK_FORMAT_BC2_SRGB_BLOCK
VK_FORMAT_BC3_UNORM_BLOCK
VK_FORMAT_BC3_SRGB_BLOCK
VK_FORMAT_BC4_UNORM_BLOCK
VK_FORMAT_BC4_SNORM_BLOCK
VK_FORMAT_BC5_UNORM_BLOCK
VK_FORMAT_BC5_SNORM_BLOCK
VK_FORMAT_BC6H_UFLOAT_BLOCK
VK_FORMAT_BC6H_SFLOAT_BLOCK
VK_FORMAT_BC7_UNORM_BLOCK
VK_FORMAT_BC7_SRGB_BLOCK
vkGetPhysicalDeviceFormatProperties
andvkGetPhysicalDeviceImageFormatProperties
can be used to check for additional supported properties of individual formats.occlusionQueryPrecise
specifies whether occlusion queries returning actual sample counts are supported. Occlusion queries are created in aVkQueryPool
by specifying thequeryType
ofVK_QUERY_TYPE_OCCLUSION
in theVkQueryPoolCreateInfo
structure which is passed tovkCreateQueryPool
. If this feature is enabled, queries of this type can enableVK_QUERY_CONTROL_PRECISE_BIT
in theflags
parameter tovkCmdBeginQuery
. If this feature is not supported, the implementation supports only boolean occlusion queries. When any samples are passed, boolean queries will return a non-zero result value, otherwise a result value of zero is returned. When this feature is enabled andVK_QUERY_CONTROL_PRECISE_BIT
is set, occlusion queries will report the actual number of samples passed.pipelineStatisticsQuery
specifies whether the pipeline statistics queries are supported. If this feature is not enabled, queries of typeVK_QUERY_TYPE_PIPELINE_STATISTICS
cannot be created, and none of theVkQueryPipelineStatisticFlagBits
bits can be set in thepipelineStatistics
member of theVkQueryPoolCreateInfo
structure.vertexPipelineStoresAndAtomics
specifies whether storage buffers and images support stores and atomic operations in the vertex, tessellation, and geometry shader stages. If this feature is not enabled, all storage image, storage texel buffers, and storage buffer variables used by these stages in shader modules must be decorated with theNonWriteable
decoration (or thereadonly
memory qualifier in GLSL).fragmentStoresAndAtomics
specifies whether storage buffers and images support stores and atomic operations in the fragment shader stage. If this feature is not enabled, all storage image, storage texel buffers, and storage buffer variables used by the fragment stage in shader modules must be decorated with theNonWriteable
decoration (or thereadonly
memory qualifier in GLSL).shaderTessellationAndGeometryPointSize
specifies whether thePointSize
built-in decoration is available in the tessellation control, tessellation evaluation, and geometry shader stages. If this feature is not enabled, members decorated with thePointSize
built-in decoration must not be read from or written to and all points written from a tessellation or geometry shader will have a size of 1.0. This also specifies whether shader modules can declare theTessellationPointSize
capability for tessellation control and evaluation shaders, or if the shader modules can declare theGeometryPointSize
capability for geometry shaders. An implementation supporting this feature must also support one or both of the @tessellationShader@ or @geometryShader@ features.shaderImageGatherExtended
specifies whether the extended set of image gather instructions are available in shader code. If this feature is not enabled, theOpImage
*Gather
instructions do not support theOffset
andConstOffsets
operands. This also specifies whether shader modules can declare theImageGatherExtended
capability.shaderStorageImageExtendedFormats
specifies whether the extended storage image formats are available in shader code. If this feature is not enabled, the formats requiring theStorageImageExtendedFormats
capability are not supported for storage images. This also specifies whether shader modules can declare theStorageImageExtendedFormats
capability.shaderStorageImageMultisample
specifies whether multisampled storage images are supported. If this feature is not enabled, images that are created with ausage
that includesVK_IMAGE_USAGE_STORAGE_BIT
must be created withsamples
equal toVK_SAMPLE_COUNT_1_BIT
. This also specifies whether shader modules can declare theStorageImageMultisample
capability.shaderStorageImageReadWithoutFormat
specifies whether storage images require a format qualifier to be specified when reading from storage images. If this feature is not enabled, theOpImageRead
instruction must not have anOpTypeImage
ofUnknown
. This also specifies whether shader modules can declare theStorageImageReadWithoutFormat
capability.shaderStorageImageWriteWithoutFormat
specifies whether storage images require a format qualifier to be specified when writing to storage images. If this feature is not enabled, theOpImageWrite
instruction must not have anOpTypeImage
ofUnknown
. This also specifies whether shader modules can declare theStorageImageWriteWithoutFormat
capability.shaderUniformBufferArrayDynamicIndexing
specifies whether arrays of uniform buffers can be indexed by dynamically uniform integer expressions in shader code. If this feature is not enabled, resources with a descriptor type ofVK_DESCRIPTOR_TYPE_UNIFORM_BUFFER
orVK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC
must be indexed only by constant integral expressions when aggregated into arrays in shader code. This also specifies whether shader modules can declare theUniformBufferArrayDynamicIndexing
capability.shaderSampledImageArrayDynamicIndexing
specifies whether arrays of samplers or sampled images can be indexed by dynamically uniform integer expressions in shader code. If this feature is not enabled, resources with a descriptor type ofVK_DESCRIPTOR_TYPE_SAMPLER
,VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER
, orVK_DESCRIPTOR_TYPE_SAMPLED_IMAGE
must be indexed only by constant integral expressions when aggregated into arrays in shader code. This also specifies whether shader modules can declare theSampledImageArrayDynamicIndexing
capability.shaderStorageBufferArrayDynamicIndexing
specifies whether arrays of storage buffers can be indexed by dynamically uniform integer expressions in shader code. If this feature is not enabled, resources with a descriptor type ofVK_DESCRIPTOR_TYPE_STORAGE_BUFFER
orVK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC
must be indexed only by constant integral expressions when aggregated into arrays in shader code. This also specifies whether shader modules can declare theStorageBufferArrayDynamicIndexing
capability.shaderStorageImageArrayDynamicIndexing
specifies whether arrays of storage images can be indexed by dynamically uniform integer expressions in shader code. If this feature is not enabled, resources with a descriptor type ofVK_DESCRIPTOR_TYPE_STORAGE_IMAGE
must be indexed only by constant integral expressions when aggregated into arrays in shader code. This also specifies whether shader modules can declare theStorageImageArrayDynamicIndexing
capability.shaderClipDistance
specifies whether clip distances are supported in shader code. If this feature is not enabled, any members decorated with theClipDistance
built-in decoration must not be read from or written to in shader modules. This also specifies whether shader modules can declare theClipDistance
capability.shaderCullDistance
specifies whether cull distances are supported in shader code. If this feature is not enabled, any members decorated with theCullDistance
built-in decoration must not be read from or written to in shader modules. This also specifies whether shader modules can declare theCullDistance
capability.shaderFloat64
specifies whether 64-bit floats (doubles) are supported in shader code. If this feature is not enabled, 64-bit floating-point types must not be used in shader code. This also specifies whether shader modules can declare theFloat64
capability.shaderInt64
specifies whether 64-bit integers (signed and unsigned) are supported in shader code. If this feature is not enabled, 64-bit integer types must not be used in shader code. This also specifies whether shader modules can declare theInt64
capability.shaderInt16
specifies whether 16-bit integers (signed and unsigned) are supported in shader code. If this feature is not enabled, 16-bit integer types must not be used in shader code. This also specifies whether shader modules can declare theInt16
capability.shaderResourceResidency
specifies whether image operations that return resource residency information are supported in shader code. If this feature is not enabled, theOpImageSparse
* instructions must not be used in shader code. This also specifies whether shader modules can declare theSparseResidency
capability. The feature requires at least one of thesparseResidency*
features to be supported.shaderResourceMinLod
specifies whether image operations that specify the minimum resource LOD are supported in shader code. If this feature is not enabled, theMinLod
image operand must not be used in shader code. This also specifies whether shader modules can declare theMinLod
capability.sparseBinding
specifies whether resource memory can be managed at opaque sparse block level instead of at the object level. If this feature is not enabled, resource memory must be bound only on a per-object basis using thevkBindBufferMemory
andvkBindImageMemory
commands. In this case, buffers and images must not be created withVK_BUFFER_CREATE_SPARSE_BINDING_BIT
andVK_IMAGE_CREATE_SPARSE_BINDING_BIT
set in theflags
member of theVkBufferCreateInfo
andVkImageCreateInfo
structures, respectively. Otherwise resource memory can be managed as described in Sparse Resource Features.sparseResidencyBuffer
specifies whether the device can access partially resident buffers. If this feature is not enabled, buffers must not be created withVK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT
set in theflags
member of theVkBufferCreateInfo
structure.sparseResidencyImage2D
specifies whether the device can access partially resident 2D images with 1 sample per pixel. If this feature is not enabled, images with animageType
ofVK_IMAGE_TYPE_2D
andsamples
set toVK_SAMPLE_COUNT_1_BIT
must not be created withVK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT
set in theflags
member of theVkImageCreateInfo
structure.sparseResidencyImage3D
specifies whether the device can access partially resident 3D images. If this feature is not enabled, images with animageType
ofVK_IMAGE_TYPE_3D
must not be created withVK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT
set in theflags
member of theVkImageCreateInfo
structure.sparseResidency2Samples
specifies whether the physical device can access partially resident 2D images with 2 samples per pixel. If this feature is not enabled, images with animageType
ofVK_IMAGE_TYPE_2D
andsamples
set toVK_SAMPLE_COUNT_2_BIT
must not be created withVK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT
set in theflags
member of theVkImageCreateInfo
structure.sparseResidency4Samples
specifies whether the physical device can access partially resident 2D images with 4 samples per pixel. If this feature is not enabled, images with animageType
ofVK_IMAGE_TYPE_2D
andsamples
set toVK_SAMPLE_COUNT_4_BIT
must not be created withVK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT
set in theflags
member of theVkImageCreateInfo
structure.sparseResidency8Samples
specifies whether the physical device can access partially resident 2D images with 8 samples per pixel. If this feature is not enabled, images with animageType
ofVK_IMAGE_TYPE_2D
andsamples
set toVK_SAMPLE_COUNT_8_BIT
must not be created withVK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT
set in theflags
member of theVkImageCreateInfo
structure.sparseResidency16Samples
specifies whether the physical device can access partially resident 2D images with 16 samples per pixel. If this feature is not enabled, images with animageType
ofVK_IMAGE_TYPE_2D
andsamples
set toVK_SAMPLE_COUNT_16_BIT
must not be created withVK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT
set in theflags
member of theVkImageCreateInfo
structure.sparseResidencyAliased
specifies whether the physical device can correctly access data aliased into multiple locations. If this feature is not enabled, theVK_BUFFER_CREATE_SPARSE_ALIASED_BIT
andVK_IMAGE_CREATE_SPARSE_ALIASED_BIT
enum values must not be used inflags
members of theVkBufferCreateInfo
andVkImageCreateInfo
structures, respectively.variableMultisampleRate
specifies whether all pipelines that will be bound to a command buffer during a subpass with no attachments must have the same value forVkPipelineMultisampleStateCreateInfo
::rasterizationSamples
. If set toVK_TRUE
, the implementation supports variable multisample rates in a subpass with no attachments. If set toVK_FALSE
, then all pipelines bound in such a subpass must have the same multisample rate. This has no effect in situations where a subpass uses any attachments.inheritedQueries
specifies whether a secondary command buffer may be executed while a query is active.
See Also
VkBool32
, VkDeviceCreateInfo
,
VkPhysicalDeviceFeatures2
,
vkGetPhysicalDeviceFeatures
Instances
Eq VkPhysicalDeviceFeatures Source # | |
Show VkPhysicalDeviceFeatures Source # | |
showsPrec :: Int -> VkPhysicalDeviceFeatures -> ShowS # show :: VkPhysicalDeviceFeatures -> String # showList :: [VkPhysicalDeviceFeatures] -> ShowS # | |
Storable VkPhysicalDeviceFeatures Source # | |
sizeOf :: VkPhysicalDeviceFeatures -> Int # alignment :: VkPhysicalDeviceFeatures -> Int # peekElemOff :: Ptr VkPhysicalDeviceFeatures -> Int -> IO VkPhysicalDeviceFeatures # pokeElemOff :: Ptr VkPhysicalDeviceFeatures -> Int -> VkPhysicalDeviceFeatures -> IO () # peekByteOff :: Ptr b -> Int -> IO VkPhysicalDeviceFeatures # pokeByteOff :: Ptr b -> Int -> VkPhysicalDeviceFeatures -> IO () # peek :: Ptr VkPhysicalDeviceFeatures -> IO VkPhysicalDeviceFeatures # poke :: Ptr VkPhysicalDeviceFeatures -> VkPhysicalDeviceFeatures -> IO () # |
data VkPhysicalDeviceSparseProperties Source #
VkPhysicalDeviceSparseProperties - Structure specifying physical device sparse memory properties
See Also
VkBool32
, VkPhysicalDeviceProperties
VkPhysicalDeviceSparseProperties | |
|
Instances
data VkPhysicalDeviceLimits Source #
VkPhysicalDeviceLimits - Structure reporting implementation-dependent physical device limits
Members
maxImageDimension1D
is the maximum dimension (width
) supported for all images created with animageType
ofVK_IMAGE_TYPE_1D
.
maxImageDimension2D
is the maximum dimension (width
orheight
) supported for all images created with animageType
ofVK_IMAGE_TYPE_2D
and withoutVK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT
set inflags
.maxImageDimension3D
is the maximum dimension (width
,height
, ordepth
) supported for all images created with animageType
ofVK_IMAGE_TYPE_3D
.maxImageDimensionCube
is the maximum dimension (width
orheight
) supported for all images created with animageType
ofVK_IMAGE_TYPE_2D
and withVK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT
set inflags
.maxImageArrayLayers
is the maximum number of layers (arrayLayers
) for an image.maxTexelBufferElements
is the maximum number of addressable texels for a buffer view created on a buffer which was created with theVK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT
orVK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT
set in theusage
member of theVkBufferCreateInfo
structure.maxUniformBufferRange
is the maximum value that can be specified in therange
member of anyVkDescriptorBufferInfo
structures passed to a call tovkUpdateDescriptorSets
for descriptors of typeVK_DESCRIPTOR_TYPE_UNIFORM_BUFFER
orVK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC
.maxStorageBufferRange
is the maximum value that can be specified in therange
member of anyVkDescriptorBufferInfo
structures passed to a call tovkUpdateDescriptorSets
for descriptors of typeVK_DESCRIPTOR_TYPE_STORAGE_BUFFER
orVK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC
.maxPushConstantsSize
is the maximum size, in bytes, of the pool of push constant memory. For each of the push constant ranges indicated by thepPushConstantRanges
member of theVkPipelineLayoutCreateInfo
structure, (offset
+size
) must be less than or equal to this limit.maxMemoryAllocationCount
is the maximum number of device memory allocations, as created byvkAllocateMemory
, which can simultaneously exist.maxSamplerAllocationCount
is the maximum number of sampler objects, as created byvkCreateSampler
, which can simultaneously exist on a device.bufferImageGranularity
is the granularity, in bytes, at which buffer or linear image resources, and optimal image resources can be bound to adjacent offsets in the sameVkDeviceMemory
object without aliasing. See Buffer-Image Granularity for more details.sparseAddressSpaceSize
is the total amount of address space available, in bytes, for sparse memory resources. This is an upper bound on the sum of the size of all sparse resources, regardless of whether any memory is bound to them.maxBoundDescriptorSets
is the maximum number of descriptor sets that can be simultaneously used by a pipeline. AllDescriptorSet
decorations in shader modules must have a value less thanmaxBoundDescriptorSets
. See {html_spec_relative}#descriptorsets-sets.maxPerStageDescriptorSamplers
is the maximum number of samplers that can be accessible to a single shader stage in a pipeline layout. Descriptors with a type ofVK_DESCRIPTOR_TYPE_SAMPLER
orVK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER
count against this limit. Only descriptors in descriptor set layouts created without theVK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT
bit set count against this limit. A descriptor is accessible to a shader stage when thestageFlags
member of theVkDescriptorSetLayoutBinding
structure has the bit for that shader stage set. See {html_spec_relative}#descriptorsets-sampler and {html_spec_relative}#descriptorsets-combinedimagesampler.maxPerStageDescriptorUniformBuffers
is the maximum number of uniform buffers that can be accessible to a single shader stage in a pipeline layout. Descriptors with a type ofVK_DESCRIPTOR_TYPE_UNIFORM_BUFFER
orVK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC
count against this limit. Only descriptors in descriptor set layouts created without theVK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT
bit set count against this limit. A descriptor is accessible to a shader stage when thestageFlags
member of theVkDescriptorSetLayoutBinding
structure has the bit for that shader stage set. See {html_spec_relative}#descriptorsets-uniformbuffer and {html_spec_relative}#descriptorsets-uniformbufferdynamic.maxPerStageDescriptorStorageBuffers
is the maximum number of storage buffers that can be accessible to a single shader stage in a pipeline layout. Descriptors with a type ofVK_DESCRIPTOR_TYPE_STORAGE_BUFFER
orVK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC
count against this limit. Only descriptors in descriptor set layouts created without theVK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT
bit set count against this limit. A descriptor is accessible to a pipeline shader stage when thestageFlags
member of theVkDescriptorSetLayoutBinding
structure has the bit for that shader stage set. See {html_spec_relative}#descriptorsets-storagebuffer and {html_spec_relative}#descriptorsets-storagebufferdynamic.maxPerStageDescriptorSampledImages
is the maximum number of sampled images that can be accessible to a single shader stage in a pipeline layout. Descriptors with a type ofVK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER
,VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE
, orVK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER
count against this limit. Only descriptors in descriptor set layouts created without theVK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT
bit set count against this limit. A descriptor is accessible to a pipeline shader stage when thestageFlags
member of theVkDescriptorSetLayoutBinding
structure has the bit for that shader stage set. See {html_spec_relative}#descriptorsets-combinedimagesampler, {html_spec_relative}#descriptorsets-sampledimage, and {html_spec_relative}#descriptorsets-uniformtexelbuffer.maxPerStageDescriptorStorageImages
is the maximum number of storage images that can be accessible to a single shader stage in a pipeline layout. Descriptors with a type ofVK_DESCRIPTOR_TYPE_STORAGE_IMAGE
, orVK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER
count against this limit. Only descriptors in descriptor set layouts created without theVK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT
bit set count against this limit. A descriptor is accessible to a pipeline shader stage when thestageFlags
member of theVkDescriptorSetLayoutBinding
structure has the bit for that shader stage set. See {html_spec_relative}#descriptorsets-storageimage, and {html_spec_relative}#descriptorsets-storagetexelbuffer.maxPerStageDescriptorInputAttachments
is the maximum number of input attachments that can be accessible to a single shader stage in a pipeline layout. Descriptors with a type ofVK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT
count against this limit. Only descriptors in descriptor set layouts created without theVK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT
bit set count against this limit. A descriptor is accessible to a pipeline shader stage when thestageFlags
member of theVkDescriptorSetLayoutBinding
structure has the bit for that shader stage set. These are only supported for the fragment stage. See {html_spec_relative}#descriptorsets-inputattachment.maxPerStageResources
is the maximum number of resources that can be accessible to a single shader stage in a pipeline layout. Descriptors with a type ofVK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER
,VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE
,VK_DESCRIPTOR_TYPE_STORAGE_IMAGE
,VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER
,VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER
,VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER
,VK_DESCRIPTOR_TYPE_STORAGE_BUFFER
,VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC
,VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC
, orVK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT
count against this limit. Only descriptors in descriptor set layouts created without theVK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT
bit set count against this limit. For the fragment shader stage the framebuffer color attachments also count against this limit.maxDescriptorSetSamplers
is the maximum number of samplers that can be included in descriptor bindings in a pipeline layout across all pipeline shader stages and descriptor set numbers. Descriptors with a type ofVK_DESCRIPTOR_TYPE_SAMPLER
orVK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER
count against this limit. Only descriptors in descriptor set layouts created without theVK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT
bit set count against this limit. See {html_spec_relative}#descriptorsets-sampler and {html_spec_relative}#descriptorsets-combinedimagesampler.maxDescriptorSetUniformBuffers
is the maximum number of uniform buffers that can be included in descriptor bindings in a pipeline layout across all pipeline shader stages and descriptor set numbers. Descriptors with a type ofVK_DESCRIPTOR_TYPE_UNIFORM_BUFFER
orVK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC
count against this limit. Only descriptors in descriptor set layouts created without theVK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT
bit set count against this limit. See {html_spec_relative}#descriptorsets-uniformbuffer and {html_spec_relative}#descriptorsets-uniformbufferdynamic.maxDescriptorSetUniformBuffersDynamic
is the maximum number of dynamic uniform buffers that can be included in descriptor bindings in a pipeline layout across all pipeline shader stages and descriptor set numbers. Descriptors with a type ofVK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC
count against this limit. Only descriptors in descriptor set layouts created without theVK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT
bit set count against this limit. See {html_spec_relative}#descriptorsets-uniformbufferdynamic.maxDescriptorSetStorageBuffers
is the maximum number of storage buffers that can be included in descriptor bindings in a pipeline layout across all pipeline shader stages and descriptor set numbers. Descriptors with a type ofVK_DESCRIPTOR_TYPE_STORAGE_BUFFER
orVK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC
count against this limit. Only descriptors in descriptor set layouts created without theVK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT
bit set count against this limit. See {html_spec_relative}#descriptorsets-storagebuffer and {html_spec_relative}#descriptorsets-storagebufferdynamic.maxDescriptorSetStorageBuffersDynamic
is the maximum number of dynamic storage buffers that can be included in descriptor bindings in a pipeline layout across all pipeline shader stages and descriptor set numbers. Descriptors with a type ofVK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC
count against this limit. Only descriptors in descriptor set layouts created without theVK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT
bit set count against this limit. See {html_spec_relative}#descriptorsets-storagebufferdynamic.maxDescriptorSetSampledImages
is the maximum number of sampled images that can be included in descriptor bindings in a pipeline layout across all pipeline shader stages and descriptor set numbers. Descriptors with a type ofVK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER
,VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE
, orVK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER
count against this limit. Only descriptors in descriptor set layouts created without theVK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT
bit set count against this limit. See {html_spec_relative}#descriptorsets-combinedimagesampler, {html_spec_relative}#descriptorsets-sampledimage, and {html_spec_relative}#descriptorsets-uniformtexelbuffer.maxDescriptorSetStorageImages
is the maximum number of storage images that can be included in descriptor bindings in a pipeline layout across all pipeline shader stages and descriptor set numbers. Descriptors with a type ofVK_DESCRIPTOR_TYPE_STORAGE_IMAGE
, orVK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER
count against this limit. Only descriptors in descriptor set layouts created without theVK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT
bit set count against this limit. See {html_spec_relative}#descriptorsets-storageimage, and {html_spec_relative}#descriptorsets-storagetexelbuffer.maxDescriptorSetInputAttachments
is the maximum number of input attachments that can be included in descriptor bindings in a pipeline layout across all pipeline shader stages and descriptor set numbers. Descriptors with a type ofVK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT
count against this limit. Only descriptors in descriptor set layouts created without theVK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT
bit set count against this limit. See {html_spec_relative}#descriptorsets-inputattachment.maxVertexInputAttributes
is the maximum number of vertex input attributes that can be specified for a graphics pipeline. These are described in the array ofVkVertexInputAttributeDescription
structures that are provided at graphics pipeline creation time via thepVertexAttributeDescriptions
member of theVkPipelineVertexInputStateCreateInfo
structure. See {html_spec_relative}#fxvertex-attrib and {html_spec_relative}#fxvertex-input.maxVertexInputBindings
is the maximum number of vertex buffers that can be specified for providing vertex attributes to a graphics pipeline. These are described in the array ofVkVertexInputBindingDescription
structures that are provided at graphics pipeline creation time via thepVertexBindingDescriptions
member of theVkPipelineVertexInputStateCreateInfo
structure. Thebinding
member ofVkVertexInputBindingDescription
must be less than this limit. See {html_spec_relative}#fxvertex-input.maxVertexInputAttributeOffset
is the maximum vertex input attribute offset that can be added to the vertex input binding stride. Theoffset
member of theVkVertexInputAttributeDescription
structure must be less than or equal to this limit. See {html_spec_relative}#fxvertex-input.maxVertexInputBindingStride
is the maximum vertex input binding stride that can be specified in a vertex input binding. Thestride
member of theVkVertexInputBindingDescription
structure must be less than or equal to this limit. See {html_spec_relative}#fxvertex-input.maxVertexOutputComponents
is the maximum number of components of output variables which can be output by a vertex shader. See {html_spec_relative}#shaders-vertex.maxTessellationGenerationLevel
is the maximum tessellation generation level supported by the fixed-function tessellation primitive generator. See {html_spec_relative}#tessellation.maxTessellationPatchSize
is the maximum patch size, in vertices, of patches that can be processed by the tessellation control shader and tessellation primitive generator. ThepatchControlPoints
member of theVkPipelineTessellationStateCreateInfo
structure specified at pipeline creation time and the value provided in theOutputVertices
execution mode of shader modules must be less than or equal to this limit. See {html_spec_relative}#tessellation.maxTessellationControlPerVertexInputComponents
is the maximum number of components of input variables which can be provided as per-vertex inputs to the tessellation control shader stage.maxTessellationControlPerVertexOutputComponents
is the maximum number of components of per-vertex output variables which can be output from the tessellation control shader stage.maxTessellationControlPerPatchOutputComponents
is the maximum number of components of per-patch output variables which can be output from the tessellation control shader stage.maxTessellationControlTotalOutputComponents
is the maximum total number of components of per-vertex and per-patch output variables which can be output from the tessellation control shader stage.maxTessellationEvaluationInputComponents
is the maximum number of components of input variables which can be provided as per-vertex inputs to the tessellation evaluation shader stage.maxTessellationEvaluationOutputComponents
is the maximum number of components of per-vertex output variables which can be output from the tessellation evaluation shader stage.maxGeometryShaderInvocations
is the maximum invocation count supported for instanced geometry shaders. The value provided in theInvocations
execution mode of shader modules must be less than or equal to this limit. See {html_spec_relative}#geometry.maxGeometryInputComponents
is the maximum number of components of input variables which can be provided as inputs to the geometry shader stage.maxGeometryOutputComponents
is the maximum number of components of output variables which can be output from the geometry shader stage.maxGeometryOutputVertices
is the maximum number of vertices which can be emitted by any geometry shader.maxGeometryTotalOutputComponents
is the maximum total number of components of output, across all emitted vertices, which can be output from the geometry shader stage.maxFragmentInputComponents
is the maximum number of components of input variables which can be provided as inputs to the fragment shader stage.maxFragmentOutputAttachments
is the maximum number of output attachments which can be written to by the fragment shader stage.maxFragmentDualSrcAttachments
is the maximum number of output attachments which can be written to by the fragment shader stage when blending is enabled and one of the dual source blend modes is in use. See {html_spec_relative}#framebuffer-dsb and dualSrcBlend.maxFragmentCombinedOutputResources
is the total number of storage buffers, storage images, and output buffers which can be used in the fragment shader stage.maxComputeSharedMemorySize
is the maximum total storage size, in bytes, of all variables declared with theWorkgroupLocal
storage class in shader modules (or with theshared
storage qualifier in GLSL) in the compute shader stage.maxComputeWorkGroupCount
[3] is the maximum number of local workgroups that can be dispatched by a single dispatch command. These three values represent the maximum number of local workgroups for the X, Y, and Z dimensions, respectively. The workgroup count parameters to the dispatch commands must be less than or equal to the corresponding limit. See {html_spec_relative}#dispatch.maxComputeWorkGroupInvocations
is the maximum total number of compute shader invocations in a single local workgroup. The product of the X, Y, and Z sizes as specified by theLocalSize
execution mode in shader modules and by the object decorated by theWorkgroupSize
decoration must be less than or equal to this limit.maxComputeWorkGroupSize
[3] is the maximum size of a local compute workgroup, per dimension. These three values represent the maximum local workgroup size in the X, Y, and Z dimensions, respectively. Thex
,y
, andz
sizes specified by theLocalSize
execution mode and by the object decorated by theWorkgroupSize
decoration in shader modules must be less than or equal to the corresponding limit.subPixelPrecisionBits
is the number of bits of subpixel precision in framebuffer coordinates xf and yf. See {html_spec_relative}#primsrast.subTexelPrecisionBits
is the number of bits of precision in the division along an axis of an image used for minification and magnification filters. 2subTexelPrecisionBits
is the actual number of divisions along each axis of the image represented. Sub-texel values calculated during image sampling will snap to these locations when generating the filtered results.mipmapPrecisionBits
is the number of bits of division that the LOD calculation for mipmap fetching get snapped to when determining the contribution from each mip level to the mip filtered results. 2mipmapPrecisionBits
is the actual number of divisions.Note
For example, if this value is 2 bits then when linearly filtering between two levels, each level could: contribute: 0%, 33%, 66%, or 100% (this is just an example and the amount of contribution should be covered by different equations in the spec).
maxDrawIndexedIndexValue
is the maximum index value that can be used for indexed draw calls when using 32-bit indices. This excludes the primitive restart index value of 0xFFFFFFFF. See fullDrawIndexUint32.maxDrawIndirectCount
is the maximum draw count that is supported for indirect draw calls. See multiDrawIndirect.maxSamplerLodBias
is the maximum absolute sampler LOD bias. The sum of themipLodBias
member of theVkSamplerCreateInfo
structure and theBias
operand of image sampling operations in shader modules (or 0 if noBias
operand is provided to an image sampling operation) are clamped to the range [-maxSamplerLodBias
,+maxSamplerLodBias
]. See {html_spec_relative}#samplers-mipLodBias.maxSamplerAnisotropy
is the maximum degree of sampler anisotropy. The maximum degree of anisotropic filtering used for an image sampling operation is the minimum of themaxAnisotropy
member of theVkSamplerCreateInfo
structure and this limit. See {html_spec_relative}#samplers-maxAnisotropy.maxViewports
is the maximum number of active viewports. TheviewportCount
member of theVkPipelineViewportStateCreateInfo
structure that is provided at pipeline creation must be less than or equal to this limit.maxViewportDimensions
[2] are the maximum viewport dimensions in the X (width) and Y (height) dimensions, respectively. The maximum viewport dimensions must be greater than or equal to the largest image which can be created and used as a framebuffer attachment. See Controlling the Viewport.viewportBoundsRange
[2] is the [minimum, maximum] range that the corners of a viewport must be contained in. This range must be at least [-2 ×size
, 2 ×size
- 1], wheresize
= max(maxViewportDimensions
[0],maxViewportDimensions
[1]). See Controlling the Viewport.Note
The intent of the
viewportBoundsRange
limit is to allow a maximum sized viewport to be arbitrarily shifted relative to the output target as long as at least some portion intersects. This would give a bounds limit of [-size
+ 1, 2 ×size
- 1] which would allow all possible non-empty-set intersections of the output target and the viewport. Since these numbers are typically powers of two, picking the signed number range using the smallest possible number of bits ends up with the specified range.viewportSubPixelBits
is the number of bits of subpixel precision for viewport bounds. The subpixel precision that floating-point viewport bounds are interpreted at is given by this limit.minMemoryMapAlignment
is the minimum required alignment, in bytes, of host visible memory allocations within the host address space. When mapping a memory allocation withvkMapMemory
, subtractingoffset
bytes from the returned pointer will always produce an integer multiple of this limit. See {html_spec_relative}#memory-device-hostaccess.minTexelBufferOffsetAlignment
is the minimum required alignment, in bytes, for theoffset
member of theVkBufferViewCreateInfo
structure for texel buffers. When a buffer view is created for a buffer which was created withVK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT
orVK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT
set in theusage
member of theVkBufferCreateInfo
structure, theoffset
must be an integer multiple of this limit.minUniformBufferOffsetAlignment
is the minimum required alignment, in bytes, for theoffset
member of theVkDescriptorBufferInfo
structure for uniform buffers. When a descriptor of typeVK_DESCRIPTOR_TYPE_UNIFORM_BUFFER
orVK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC
is updated, theoffset
must be an integer multiple of this limit. Similarly, dynamic offsets for uniform buffers must be multiples of this limit.minStorageBufferOffsetAlignment
is the minimum required alignment, in bytes, for theoffset
member of theVkDescriptorBufferInfo
structure for storage buffers. When a descriptor of typeVK_DESCRIPTOR_TYPE_STORAGE_BUFFER
orVK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC
is updated, theoffset
must be an integer multiple of this limit. Similarly, dynamic offsets for storage buffers must be multiples of this limit.minTexelOffset
is the minimum offset value for theConstOffset
image operand of any of theOpImageSample
* orOpImageFetch
* image instructions.maxTexelOffset
is the maximum offset value for theConstOffset
image operand of any of theOpImageSample
* orOpImageFetch
* image instructions.minTexelGatherOffset
is the minimum offset value for theOffset
orConstOffsets
image operands of any of theOpImage
*Gather
image instructions.maxTexelGatherOffset
is the maximum offset value for theOffset
orConstOffsets
image operands of any of theOpImage
*Gather
image instructions.minInterpolationOffset
is the minimum negative offset value for theoffset
operand of theInterpolateAtOffset
extended instruction.maxInterpolationOffset
is the maximum positive offset value for theoffset
operand of theInterpolateAtOffset
extended instruction.subPixelInterpolationOffsetBits
is the number of subpixel fractional bits that thex
andy
offsets to theInterpolateAtOffset
extended instruction may be rounded to as fixed-point values.maxFramebufferWidth
is the maximum width for a framebuffer. Thewidth
member of theVkFramebufferCreateInfo
structure must be less than or equal to this limit.maxFramebufferHeight
is the maximum height for a framebuffer. Theheight
member of theVkFramebufferCreateInfo
structure must be less than or equal to this limit.maxFramebufferLayers
is the maximum layer count for a layered framebuffer. Thelayers
member of theVkFramebufferCreateInfo
structure must be less than or equal to this limit.framebufferColorSampleCounts
is a bitmask1 ofVkSampleCountFlagBits
indicating the color sample counts that are supported for all framebuffer color attachments with floating- or fixed-point formats. There is no limit that specifies the color sample counts that are supported for all color attachments with integer formats.framebufferDepthSampleCounts
is a bitmask1 ofVkSampleCountFlagBits
indicating the supported depth sample counts for all framebuffer depth/stencil attachments, when the format includes a depth component.framebufferStencilSampleCounts
is a bitmask1 ofVkSampleCountFlagBits
indicating the supported stencil sample counts for all framebuffer depth/stencil attachments, when the format includes a stencil component.framebufferNoAttachmentsSampleCounts
is a bitmask1 ofVkSampleCountFlagBits
indicating the supported sample counts for a framebuffer with no attachments.maxColorAttachments
is the maximum number of color attachments that can be used by a subpass in a render pass. ThecolorAttachmentCount
member of theVkSubpassDescription
structure must be less than or equal to this limit.sampledImageColorSampleCounts
is a bitmask1 ofVkSampleCountFlagBits
indicating the sample counts supported for all 2D images created withVK_IMAGE_TILING_OPTIMAL
,usage
containingVK_IMAGE_USAGE_SAMPLED_BIT
, and a non-integer color format.sampledImageIntegerSampleCounts
is a bitmask1 ofVkSampleCountFlagBits
indicating the sample counts supported for all 2D images created withVK_IMAGE_TILING_OPTIMAL
,usage
containingVK_IMAGE_USAGE_SAMPLED_BIT
, and an integer color format.sampledImageDepthSampleCounts
is a bitmask1 ofVkSampleCountFlagBits
indicating the sample counts supported for all 2D images created withVK_IMAGE_TILING_OPTIMAL
,usage
containingVK_IMAGE_USAGE_SAMPLED_BIT
, and a depth format.sampledImageStencilSampleCounts
is a bitmask1 ofVkSampleCountFlagBits
indicating the sample supported for all 2D images created withVK_IMAGE_TILING_OPTIMAL
,usage
containingVK_IMAGE_USAGE_SAMPLED_BIT
, and a stencil format.storageImageSampleCounts
is a bitmask1 ofVkSampleCountFlagBits
indicating the sample counts supported for all 2D images created withVK_IMAGE_TILING_OPTIMAL
, andusage
containingVK_IMAGE_USAGE_STORAGE_BIT
.maxSampleMaskWords
is the maximum number of array elements of a variable decorated with theSampleMask
built-in decoration.timestampComputeAndGraphics
specifies support for timestamps on all graphics and compute queues. If this limit is set toVK_TRUE
, all queues that advertise theVK_QUEUE_GRAPHICS_BIT
orVK_QUEUE_COMPUTE_BIT
in theVkQueueFamilyProperties
::queueFlags
supportVkQueueFamilyProperties
::timestampValidBits
of at least 36. See Timestamp Queries.timestampPeriod
is the number of nanoseconds required for a timestamp query to be incremented by 1. See Timestamp Queries.maxClipDistances
is the maximum number of clip distances that can be used in a single shader stage. The size of any array declared with theClipDistance
built-in decoration in a shader module must be less than or equal to this limit.maxCullDistances
is the maximum number of cull distances that can be used in a single shader stage. The size of any array declared with theCullDistance
built-in decoration in a shader module must be less than or equal to this limit.maxCombinedClipAndCullDistances
is the maximum combined number of clip and cull distances that can be used in a single shader stage. The sum of the sizes of any pair of arrays declared with theClipDistance
andCullDistance
built-in decoration used by a single shader stage in a shader module must be less than or equal to this limit.discreteQueuePriorities
is the number of discrete priorities that can be assigned to a queue based on the value of each member ofVkDeviceQueueCreateInfo
::pQueuePriorities
. This must be at least 2, and levels must be spread evenly over the range, with at least one level at 1.0, and another at 0.0. See {html_spec_relative}#devsandqueues-priority.pointSizeRange
[2] is the range [minimum
,maximum
] of supported sizes for points. Values written to variables decorated with thePointSize
built-in decoration are clamped to this range.lineWidthRange
[2] is the range [minimum
,maximum
] of supported widths for lines. Values specified by thelineWidth
member of theVkPipelineRasterizationStateCreateInfo
or thelineWidth
parameter tovkCmdSetLineWidth
are clamped to this range.pointSizeGranularity
is the granularity of supported point sizes. Not all point sizes in the range defined bypointSizeRange
are supported. This limit specifies the granularity (or increment) between successive supported point sizes.lineWidthGranularity
is the granularity of supported line widths. Not all line widths in the range defined bylineWidthRange
are supported. This limit specifies the granularity (or increment) between successive supported line widths.strictLines
specifies whether lines are rasterized according to the preferred method of rasterization. If set toVK_FALSE
, lines may be rasterized under a relaxed set of rules. If set toVK_TRUE
, lines are rasterized as per the strict definition. See Basic Line Segment Rasterization.standardSampleLocations
specifies whether rasterization uses the standard sample locations as documented in Multisampling. If set toVK_TRUE
, the implementation uses the documented sample locations. If set toVK_FALSE
, the implementation may use different sample locations.optimalBufferCopyOffsetAlignment
is the optimal buffer offset alignment in bytes forvkCmdCopyBufferToImage
andvkCmdCopyImageToBuffer
. The per texel alignment requirements are enforced, but applications should use the optimal alignment for optimal performance and power use.optimalBufferCopyRowPitchAlignment
is the optimal buffer row pitch alignment in bytes forvkCmdCopyBufferToImage
andvkCmdCopyImageToBuffer
. Row pitch is the number of bytes between texels with the same X coordinate in adjacent rows (Y coordinates differ by one). The per texel alignment requirements are enforced, but applications should use the optimal alignment for optimal performance and power use.nonCoherentAtomSize
is the size and alignment in bytes that bounds concurrent access to host-mapped device memory.VkPhysicalDeviceDiscardRectanglePropertiesEXT
::maxDiscardRectangles
is the maximum number of active discard rectangles. This limit can be queried by setting thepNext
pointer from aVkPhysicalDeviceProperties2
object to an instance ofVkPhysicalDeviceDiscardRectanglePropertiesEXT
and usingvkGetPhysicalDeviceProperties2
to fill out the members.VkPhysicalDevicePointClippingProperties
::pointClippingBehavior
defines the clipping behavior of points. This limit can be queried by setting thepNext
pointer from aVkPhysicalDeviceProperties2
object to an instance ofVkPhysicalDevicePointClippingProperties
and usingvkGetPhysicalDeviceProperties2
to fill out the members.VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
::maxVertexAttribDivisor
is the maximum value of the number of instances that will repeat the value of vertex attribute data when instanced rendering is enabled. This limit can be queried by setting thepNext
pointer from aVkPhysicalDeviceProperties2
object to an instance ofVkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
and usingvkGetPhysicalDeviceProperties2
to fill out the members.
Description
- 1
- For all bitmasks of
VkSampleCountFlagBits
, the sample count limits defined above represent the minimum supported sample counts for each image type. Individual images may support additional sample counts, which are queried usingvkGetPhysicalDeviceImageFormatProperties
as described in Supported Sample Counts.
See Also
VkBool32
, VkDeviceSize
, VkPhysicalDeviceProperties
,
VkSampleCountFlags
Instances
Eq VkPhysicalDeviceLimits Source # | |
Show VkPhysicalDeviceLimits Source # | |
showsPrec :: Int -> VkPhysicalDeviceLimits -> ShowS # show :: VkPhysicalDeviceLimits -> String # showList :: [VkPhysicalDeviceLimits] -> ShowS # | |
Storable VkPhysicalDeviceLimits Source # | |
sizeOf :: VkPhysicalDeviceLimits -> Int # alignment :: VkPhysicalDeviceLimits -> Int # peekElemOff :: Ptr VkPhysicalDeviceLimits -> Int -> IO VkPhysicalDeviceLimits # pokeElemOff :: Ptr VkPhysicalDeviceLimits -> Int -> VkPhysicalDeviceLimits -> IO () # peekByteOff :: Ptr b -> Int -> IO VkPhysicalDeviceLimits # pokeByteOff :: Ptr b -> Int -> VkPhysicalDeviceLimits -> IO () # peek :: Ptr VkPhysicalDeviceLimits -> IO VkPhysicalDeviceLimits # poke :: Ptr VkPhysicalDeviceLimits -> VkPhysicalDeviceLimits -> IO () # |
type VkQueueFlags = VkQueueFlagBits Source #
VkQueueFlags - Bitmask of VkQueueFlagBits
Description
VkQueueFlags
is a bitmask type for setting a mask of zero or more
VkQueueFlagBits
.
See Also
type VkMemoryPropertyFlags = VkMemoryPropertyFlagBits Source #
VkMemoryPropertyFlags - Bitmask of VkMemoryPropertyFlagBits
Description
VkMemoryPropertyFlags
is a bitmask type for setting a mask of zero or
more VkMemoryPropertyFlagBits
.
See Also
type VkMemoryHeapFlags = VkMemoryHeapFlagBits Source #
VkMemoryHeapFlags - Bitmask of VkMemoryHeapFlagBits
Description
VkMemoryHeapFlags
is a bitmask type for setting a mask of zero or more
VkMemoryHeapFlagBits
.
See Also
type VkImageUsageFlags = VkImageUsageFlagBits Source #
VkImageUsageFlags - Bitmask of VkImageUsageFlagBits
Description
VkImageUsageFlags
is a bitmask type for setting a mask of zero or more
VkImageUsageFlagBits
.
See Also
VkImageCreateInfo
,
VkImageUsageFlagBits
,
VkImageViewUsageCreateInfo
,
VkPhysicalDeviceImageFormatInfo2
,
VkPhysicalDeviceSparseImageFormatInfo2
,
VkSharedPresentSurfaceCapabilitiesKHR
,
VkSurfaceCapabilities2EXT
,
VkSurfaceCapabilitiesKHR
,
VkSwapchainCreateInfoKHR
,
vkGetPhysicalDeviceExternalImageFormatPropertiesNV
,
vkGetPhysicalDeviceImageFormatProperties
,
vkGetPhysicalDeviceSparseImageFormatProperties
type VkImageCreateFlags = VkImageCreateFlagBits Source #
VkImageCreateFlags - Bitmask of VkImageCreateFlagBits
Description
VkImageCreateFlags
is a bitmask type for setting a mask of zero or
more VkImageCreateFlagBits
.
See Also
VkImageCreateFlagBits
,
VkImageCreateInfo
,
VkPhysicalDeviceImageFormatInfo2
,
vkGetPhysicalDeviceExternalImageFormatPropertiesNV
,
vkGetPhysicalDeviceImageFormatProperties
type VkFormatFeatureFlags = VkFormatFeatureFlagBits Source #
VkFormatFeatureFlags - Bitmask of VkFormatFeatureFlagBits
Description
VkFormatFeatureFlags
is a bitmask type for setting a mask of zero or
more VkFormatFeatureFlagBits
.
See Also
VkAndroidHardwareBufferFormatPropertiesANDROID
,
VkFormatFeatureFlagBits
, VkFormatProperties
type VkSampleCountFlags = VkSampleCountFlagBits Source #
VkSampleCountFlags - Bitmask of VkSampleCountFlagBits
Description
VkSampleCountFlags
is a bitmask type for setting a mask of zero or
more VkSampleCountFlagBits
.
See Also
VkImageFormatProperties
, VkPhysicalDeviceLimits
,
VkPhysicalDeviceSampleLocationsPropertiesEXT
,
VkSampleCountFlagBits
type VkDeviceSize = Word64 Source #
VkDeviceSize - Vulkan device memory size and offsets
See Also
VkAndroidHardwareBufferPropertiesANDROID
,
VkBindBufferMemoryInfo
,
VkBindImageMemoryInfo
,
VkBufferCopy
,
VkBufferCreateInfo
,
VkBufferImageCopy
,
VkBufferMemoryBarrier
,
VkBufferViewCreateInfo
,
VkCmdProcessCommandsInfoNVX
,
VkDescriptorBufferInfo
,
VkImageFormatProperties
,
VkIndirectCommandsTokenNVX
,
VkMappedMemoryRange
,
VkMemoryAllocateInfo
, VkMemoryHeap
,
VkMemoryRequirements
,
VkPhysicalDeviceExternalMemoryHostPropertiesEXT
,
VkPhysicalDeviceLimits
,
VkPhysicalDeviceMaintenance3Properties
,
VkSparseImageMemoryBind
,
VkSparseImageMemoryRequirements
,
VkSparseMemoryBind
,
VkSubresourceLayout
,
vkBindBufferMemory
,
vkBindImageMemory
,
vkCmdBindIndexBuffer
,
vkCmdBindVertexBuffers
,
vkCmdCopyQueryPoolResults
,
vkCmdDispatchIndirect
,
vkCmdDrawIndexedIndirect
,
vkCmdDrawIndexedIndirectCountAMD
,
vkCmdDrawIndirect
,
vkCmdDrawIndirectCountAMD
,
vkCmdFillBuffer
,
vkCmdUpdateBuffer
,
vkCmdWriteBufferMarkerAMD
,
vkGetDeviceMemoryCommitment
,
vkGetQueryPoolResults
,
vkMapMemory