vulkan-3.3: Bindings to the Vulkan graphics API.
Safe HaskellNone
LanguageHaskell2010

Vulkan.Core11.Promoted_From_VK_KHR_maintenance1

Synopsis

Documentation

trimCommandPool :: forall io. MonadIO io => Device -> CommandPool -> CommandPoolTrimFlags -> io () Source #

vkTrimCommandPool - Trim a command pool

Parameters

  • device is the logical device that owns the command pool.
  • commandPool is the command pool to trim.
  • flags is reserved for future use.

Description

Trimming a command pool recycles unused memory from the command pool back to the system. Command buffers allocated from the pool are not affected by the command.

Note

This command provides applications with some control over the internal memory allocations used by command pools.

Unused memory normally arises from command buffers that have been recorded and later reset, such that they are no longer using the memory. On reset, a command buffer can return memory to its command pool, but the only way to release memory from a command pool to the system requires calling resetCommandPool, which cannot be executed while any command buffers from that pool are still in use. Subsequent recording operations into command buffers will re-use this memory but since total memory requirements fluctuate over time, unused memory can accumulate.

In this situation, trimming a command pool may be useful to return unused memory back to the system, returning the total outstanding memory allocated by the pool back to a more “average” value.

Implementations utilize many internal allocation strategies that make it impossible to guarantee that all unused memory is released back to the system. For instance, an implementation of a command pool may involve allocating memory in bulk from the system and sub-allocating from that memory. In such an implementation any live command buffer that holds a reference to a bulk allocation would prevent that allocation from being freed, even if only a small proportion of the bulk allocation is in use.

In most cases trimming will result in a reduction in allocated but unused memory, but it does not guarantee the “ideal” behavior.

Trimming may be an expensive operation, and should not be called frequently. Trimming should be treated as a way to relieve memory pressure after application-known points when there exists enough unused memory that the cost of trimming is “worth” it.

Valid Usage (Implicit)

  • device must be a valid Device handle
  • commandPool must be a valid CommandPool handle
  • flags must be 0
  • commandPool must have been created, allocated, or retrieved from device

Host Synchronization

  • Host access to commandPool must be externally synchronized

See Also

CommandPool, CommandPoolTrimFlags, Device

newtype CommandPoolTrimFlags Source #

VkCommandPoolTrimFlags - Reserved for future use

Description

CommandPoolTrimFlags is a bitmask type for setting a mask, but is currently reserved for future use.

See Also

trimCommandPool, trimCommandPoolKHR

Instances

Instances details
Eq CommandPoolTrimFlags Source # 
Instance details

Defined in Vulkan.Core11.Enums.CommandPoolTrimFlags

Ord CommandPoolTrimFlags Source # 
Instance details

Defined in Vulkan.Core11.Enums.CommandPoolTrimFlags

Read CommandPoolTrimFlags Source # 
Instance details

Defined in Vulkan.Core11.Enums.CommandPoolTrimFlags

Show CommandPoolTrimFlags Source # 
Instance details

Defined in Vulkan.Core11.Enums.CommandPoolTrimFlags

Storable CommandPoolTrimFlags Source # 
Instance details

Defined in Vulkan.Core11.Enums.CommandPoolTrimFlags

Bits CommandPoolTrimFlags Source # 
Instance details

Defined in Vulkan.Core11.Enums.CommandPoolTrimFlags

Zero CommandPoolTrimFlags Source # 
Instance details

Defined in Vulkan.Core11.Enums.CommandPoolTrimFlags

newtype Result Source #

VkResult - Vulkan command return codes

Description

If a command returns a run time error, unless otherwise specified any output parameters will have undefined contents, except that if the output parameter is a structure with sType and pNext fields, those fields will be unmodified. Any structures chained from pNext will also have undefined contents, except that sType and pNext will be unmodified.

Out of memory errors do not damage any currently existing Vulkan objects. Objects that have already been successfully created can still be used by the application.

ERROR_UNKNOWN will be returned by an implementation when an unexpected error occurs that cannot be attributed to valid behavior of the application and implementation. Under these conditions, it may be returned from any command returning a Result.

Note

ERROR_UNKNOWN is not expected to ever be returned if the application behavior is valid, and if the implementation is bug-free. If ERROR_UNKNOWN is received, the application should be checked against the latest validation layers to verify correct behavior as much as possible. If no issues are identified it could be an implementation issue, and the implementor should be contacted for support.

Performance-critical commands generally do not have return codes. If a run time error occurs in such commands, the implementation will defer reporting the error until a specified point. For commands that record into command buffers (vkCmd*) run time errors are reported by endCommandBuffer.

See Also

PresentInfoKHR

Constructors

Result Int32 

Bundled Patterns

pattern SUCCESS :: Result

SUCCESS Command successfully completed

pattern NOT_READY :: Result

NOT_READY A fence or query has not yet completed

pattern TIMEOUT :: Result

TIMEOUT A wait operation has not completed in the specified time

pattern EVENT_SET :: Result

EVENT_SET An event is signaled

pattern EVENT_RESET :: Result

EVENT_RESET An event is unsignaled

pattern INCOMPLETE :: Result

INCOMPLETE A return array was too small for the result

pattern ERROR_OUT_OF_HOST_MEMORY :: Result

ERROR_OUT_OF_HOST_MEMORY A host memory allocation has failed.

pattern ERROR_OUT_OF_DEVICE_MEMORY :: Result

ERROR_OUT_OF_DEVICE_MEMORY A device memory allocation has failed.

pattern ERROR_INITIALIZATION_FAILED :: Result

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

pattern ERROR_DEVICE_LOST :: Result

ERROR_DEVICE_LOST The logical or physical device has been lost. See Lost Device

pattern ERROR_MEMORY_MAP_FAILED :: Result

ERROR_MEMORY_MAP_FAILED Mapping of a memory object has failed.

pattern ERROR_LAYER_NOT_PRESENT :: Result

ERROR_LAYER_NOT_PRESENT A requested layer is not present or could not be loaded.

pattern ERROR_EXTENSION_NOT_PRESENT :: Result

ERROR_EXTENSION_NOT_PRESENT A requested extension is not supported.

pattern ERROR_FEATURE_NOT_PRESENT :: Result

ERROR_FEATURE_NOT_PRESENT A requested feature is not supported.

pattern ERROR_INCOMPATIBLE_DRIVER :: Result

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

pattern ERROR_TOO_MANY_OBJECTS :: Result

ERROR_TOO_MANY_OBJECTS Too many objects of the type have already been created.

pattern ERROR_FORMAT_NOT_SUPPORTED :: Result

ERROR_FORMAT_NOT_SUPPORTED A requested format is not supported on this device.

pattern ERROR_FRAGMENTED_POOL :: Result

ERROR_FRAGMENTED_POOL A pool allocation has failed due to fragmentation of the pool’s memory. This must only be returned if no attempt to allocate host or device memory was made to accommodate the new allocation. This should be returned in preference to ERROR_OUT_OF_POOL_MEMORY, but only if the implementation is certain that the pool allocation failure was due to fragmentation.

pattern ERROR_UNKNOWN :: Result

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

pattern PIPELINE_COMPILE_REQUIRED_EXT :: Result

PIPELINE_COMPILE_REQUIRED_EXT A requested pipeline creation would have required compilation, but the application requested compilation to not be performed.

pattern OPERATION_NOT_DEFERRED_KHR :: Result

OPERATION_NOT_DEFERRED_KHR A deferred operation was requested and no operations were deferred.

pattern OPERATION_DEFERRED_KHR :: Result

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

pattern THREAD_DONE_KHR :: Result

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

pattern THREAD_IDLE_KHR :: Result

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

pattern ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT :: Result

ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT An operation on a swapchain created with FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT failed as it did not have exlusive full-screen access. This may occur due to implementation-dependent reasons, outside of the application’s control.

pattern ERROR_NOT_PERMITTED_EXT :: Result 
pattern ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT :: Result 
pattern ERROR_INCOMPATIBLE_VERSION_KHR :: Result 
pattern ERROR_INVALID_SHADER_NV :: Result

ERROR_INVALID_SHADER_NV One or more shaders failed to compile or link. More details are reported back to the application via VK_EXT_debug_report if enabled.

pattern ERROR_VALIDATION_FAILED_EXT :: Result 
pattern ERROR_INCOMPATIBLE_DISPLAY_KHR :: Result

ERROR_INCOMPATIBLE_DISPLAY_KHR The display used by a swapchain does not use the same presentable image layout, or is incompatible in a way that prevents sharing an image.

pattern ERROR_OUT_OF_DATE_KHR :: Result

ERROR_OUT_OF_DATE_KHR A surface has changed in such a way that it is no longer compatible with the swapchain, and further presentation requests using the swapchain will fail. Applications must query the new surface properties and recreate their swapchain if they wish to continue presenting to the surface.

pattern SUBOPTIMAL_KHR :: Result

SUBOPTIMAL_KHR A swapchain no longer matches the surface properties exactly, but can still be used to present to the surface successfully.

pattern ERROR_NATIVE_WINDOW_IN_USE_KHR :: Result

ERROR_NATIVE_WINDOW_IN_USE_KHR The requested window is already in use by Vulkan or another API in a manner which prevents it from being used again.

pattern ERROR_SURFACE_LOST_KHR :: Result

ERROR_SURFACE_LOST_KHR A surface is no longer available.

pattern ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS :: Result

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

pattern ERROR_FRAGMENTATION :: Result

ERROR_FRAGMENTATION A descriptor pool creation has failed due to fragmentation.

pattern ERROR_INVALID_EXTERNAL_HANDLE :: Result

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

pattern ERROR_OUT_OF_POOL_MEMORY :: Result

ERROR_OUT_OF_POOL_MEMORY A pool memory allocation has failed. This must only be returned if no attempt to allocate host or device memory was made to accommodate the new allocation. If the failure was definitely due to fragmentation of the pool, ERROR_FRAGMENTED_POOL should be returned instead.

Instances

Instances details
Eq Result Source # 
Instance details

Defined in Vulkan.Core10.Enums.Result

Methods

(==) :: Result -> Result -> Bool #

(/=) :: Result -> Result -> Bool #

Ord Result Source # 
Instance details

Defined in Vulkan.Core10.Enums.Result

Read Result Source # 
Instance details

Defined in Vulkan.Core10.Enums.Result

Show Result Source # 
Instance details

Defined in Vulkan.Core10.Enums.Result

Storable Result Source # 
Instance details

Defined in Vulkan.Core10.Enums.Result

Zero Result Source # 
Instance details

Defined in Vulkan.Core10.Enums.Result

Methods

zero :: Result Source #

newtype ImageCreateFlagBits Source #

VkImageCreateFlagBits - Bitmask specifying additional parameters of an image

Description

See Sparse Resource Features and Sparse Physical Device Features for more details.

See Also

ImageCreateFlags

Bundled Patterns

pattern IMAGE_CREATE_SPARSE_BINDING_BIT :: ImageCreateFlagBits

IMAGE_CREATE_SPARSE_BINDING_BIT specifies that the image will be backed using sparse memory binding.

pattern IMAGE_CREATE_SPARSE_RESIDENCY_BIT :: ImageCreateFlagBits

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 the IMAGE_CREATE_SPARSE_BINDING_BIT flag.

pattern IMAGE_CREATE_SPARSE_ALIASED_BIT :: ImageCreateFlagBits

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 the IMAGE_CREATE_SPARSE_BINDING_BIT flag

pattern IMAGE_CREATE_MUTABLE_FORMAT_BIT :: ImageCreateFlagBits

IMAGE_CREATE_MUTABLE_FORMAT_BIT specifies that the image can be used to create a ImageView with a different format from the image. For multi-planar formats, IMAGE_CREATE_MUTABLE_FORMAT_BIT specifies that a ImageView can be created of a plane of the image.

pattern IMAGE_CREATE_CUBE_COMPATIBLE_BIT :: ImageCreateFlagBits

IMAGE_CREATE_CUBE_COMPATIBLE_BIT specifies that the image can be used to create a ImageView of type IMAGE_VIEW_TYPE_CUBE or IMAGE_VIEW_TYPE_CUBE_ARRAY.

pattern IMAGE_CREATE_SUBSAMPLED_BIT_EXT :: ImageCreateFlagBits

IMAGE_CREATE_SUBSAMPLED_BIT_EXT specifies that an image can be in a subsampled format which may be more optimal when written as an attachment by a render pass that has a fragment density map attachment. Accessing a subsampled image has additional considerations:

  • Image data read as an image sampler is undefined if the sampler was not created with flags containing SAMPLER_CREATE_SUBSAMPLED_BIT_EXT or was not sampled through the use of a combined image sampler with an immutable sampler in DescriptorSetLayoutBinding.
  • Image data read with an input attachment is undefined if the contents were not written as an attachment in an earlier subpass of the same render pass.
  • Image data read with load operations may be resampled to the fragment density of the render pass.
  • Image contents outside of the render area become undefined if the image is stored as a render pass attachment.
pattern IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT :: ImageCreateFlagBits

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.

pattern IMAGE_CREATE_CORNER_SAMPLED_BIT_NV :: ImageCreateFlagBits

IMAGE_CREATE_CORNER_SAMPLED_BIT_NV specifies that the image is a corner-sampled image.

pattern IMAGE_CREATE_DISJOINT_BIT :: ImageCreateFlagBits

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.

pattern IMAGE_CREATE_PROTECTED_BIT :: ImageCreateFlagBits

IMAGE_CREATE_PROTECTED_BIT specifies that the image is a protected image.

pattern IMAGE_CREATE_EXTENDED_USAGE_BIT :: ImageCreateFlagBits

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 a ImageView created from the image can have.

pattern IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT :: ImageCreateFlagBits

IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT specifies that the image having a compressed format can be used to create a ImageView with an uncompressed format where each texel in the image view corresponds to a compressed texel block of the image.

pattern IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT :: ImageCreateFlagBits

IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT specifies that the image can be used to create a ImageView of type IMAGE_VIEW_TYPE_2D or IMAGE_VIEW_TYPE_2D_ARRAY.

pattern IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT :: ImageCreateFlagBits

IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT specifies that the image can be used with a non-zero value of the splitInstanceBindRegionCount member of a BindImageMemoryDeviceGroupInfo structure passed into bindImageMemory2. This flag also has the effect of making the image use the standard sparse image block dimensions.

pattern IMAGE_CREATE_ALIAS_BIT :: ImageCreateFlagBits

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 https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatible-planes. If the pNext chain includes a ExternalMemoryImageCreateInfo or ExternalMemoryImageCreateInfoNV structure whose handleTypes member is not 0, it is as if IMAGE_CREATE_ALIAS_BIT is set.

Instances

Instances details
Eq ImageCreateFlagBits Source # 
Instance details

Defined in Vulkan.Core10.Enums.ImageCreateFlagBits

Ord ImageCreateFlagBits Source # 
Instance details

Defined in Vulkan.Core10.Enums.ImageCreateFlagBits

Read ImageCreateFlagBits Source # 
Instance details

Defined in Vulkan.Core10.Enums.ImageCreateFlagBits

Show ImageCreateFlagBits Source # 
Instance details

Defined in Vulkan.Core10.Enums.ImageCreateFlagBits

Storable ImageCreateFlagBits Source # 
Instance details

Defined in Vulkan.Core10.Enums.ImageCreateFlagBits

Bits ImageCreateFlagBits Source # 
Instance details

Defined in Vulkan.Core10.Enums.ImageCreateFlagBits

Zero ImageCreateFlagBits Source # 
Instance details

Defined in Vulkan.Core10.Enums.ImageCreateFlagBits

newtype FormatFeatureFlagBits Source #

VkFormatFeatureFlagBits - Bitmask specifying features supported by a buffer

Description

The following bits may be set in linearTilingFeatures, optimalTilingFeatures, and DrmFormatModifierPropertiesEXT::drmFormatModifierTilingFeatures, specifying that the features are supported by images or image views or sampler Y′CBCR conversion objects created with the queried getPhysicalDeviceFormatProperties::format:

The following bits may be set in bufferFeatures, specifying that the features are supported by buffers or buffer views created with the queried getPhysicalDeviceProperties::format:

See Also

FormatFeatureFlags

Bundled Patterns

pattern FORMAT_FEATURE_SAMPLED_IMAGE_BIT :: FormatFeatureFlagBits

FORMAT_FEATURE_SAMPLED_IMAGE_BIT specifies that an image view can be sampled from.

pattern FORMAT_FEATURE_STORAGE_IMAGE_BIT :: FormatFeatureFlagBits

FORMAT_FEATURE_STORAGE_IMAGE_BIT specifies that an image view can be used as a storage images.

pattern FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT :: FormatFeatureFlagBits

FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT specifies that an image view can be used as storage image that supports atomic operations.

pattern FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT :: FormatFeatureFlagBits

FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT specifies that the format can be used to create a buffer view that can be bound to a DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER descriptor.

pattern FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT :: FormatFeatureFlagBits

FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT specifies that the format can be used to create a buffer view that can be bound to a DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor.

pattern FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT :: FormatFeatureFlagBits

FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT specifies that atomic operations are supported on DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER with this format.

pattern FORMAT_FEATURE_VERTEX_BUFFER_BIT :: FormatFeatureFlagBits

FORMAT_FEATURE_VERTEX_BUFFER_BIT specifies that the format can be used as a vertex attribute format (VertexInputAttributeDescription::format).

pattern FORMAT_FEATURE_COLOR_ATTACHMENT_BIT :: FormatFeatureFlagBits

FORMAT_FEATURE_COLOR_ATTACHMENT_BIT specifies that an image view can be used as a framebuffer color attachment and as an input attachment.

pattern FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT :: FormatFeatureFlagBits

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.

pattern FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT :: FormatFeatureFlagBits

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.

pattern FORMAT_FEATURE_BLIT_SRC_BIT :: FormatFeatureFlagBits

FORMAT_FEATURE_BLIT_SRC_BIT specifies that an image can be used as srcImage for the cmdBlitImage command.

pattern FORMAT_FEATURE_BLIT_DST_BIT :: FormatFeatureFlagBits

FORMAT_FEATURE_BLIT_DST_BIT specifies that an image can be used as dstImage for the cmdBlitImage command.

pattern FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT :: FormatFeatureFlagBits

FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT specifies that if FORMAT_FEATURE_SAMPLED_IMAGE_BIT is also set, an image view can be used with a sampler that has either of magFilter or minFilter set to FILTER_LINEAR, or mipmapMode set to SAMPLER_MIPMAP_MODE_LINEAR. If FORMAT_FEATURE_BLIT_SRC_BIT is also set, an image can be used as the srcImage to cmdBlitImage with a filter of FILTER_LINEAR. This bit must only be exposed for formats that also support the FORMAT_FEATURE_SAMPLED_IMAGE_BIT or 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.

pattern FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT :: FormatFeatureFlagBits

FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT specifies that an image view can be used as a fragment density map attachment.

pattern FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR :: FormatFeatureFlagBits 
pattern FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG :: FormatFeatureFlagBits 
pattern FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT :: FormatFeatureFlagBits

FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT specifies Image can be used as a sampled image with a min or max SamplerReductionMode. This bit must only be exposed for formats that also support the FORMAT_FEATURE_SAMPLED_IMAGE_BIT.

pattern FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT :: FormatFeatureFlagBits

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 a SamplerYcbcrConversionCreateInfo xChromaOffset and/or yChromaOffset of CHROMA_LOCATION_COSITED_EVEN. Otherwise both xChromaOffset and yChromaOffset must be CHROMA_LOCATION_MIDPOINT. If neither FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT nor FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT is set, the application must not define a sampler Y′CBCR conversion using this format as a source.

pattern FORMAT_FEATURE_DISJOINT_BIT :: FormatFeatureFlagBits

FORMAT_FEATURE_DISJOINT_BIT specifies that a multi-planar image can have the IMAGE_CREATE_DISJOINT_BIT set during image creation. An implementation must not set FORMAT_FEATURE_DISJOINT_BIT for single-plane formats.

pattern FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT :: FormatFeatureFlagBits

FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT specifies that reconstruction can be forcibly made explicit by setting SamplerYcbcrConversionCreateInfo::forceExplicitReconstruction to TRUE. If the format being queried supports FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT it must also support FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT.

pattern FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT :: FormatFeatureFlagBits

FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT specifies that reconstruction is explicit, as described in https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-chroma-reconstruction. If this bit is not present, reconstruction is implicit by default.

pattern FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT :: FormatFeatureFlagBits

FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT specifies that the format can have different chroma, min, and mag filters.

pattern FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT :: FormatFeatureFlagBits

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.

pattern FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT :: FormatFeatureFlagBits

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 a SamplerYcbcrConversionCreateInfo xChromaOffset and/or yChromaOffset of CHROMA_LOCATION_MIDPOINT. Otherwise both xChromaOffset and yChromaOffset must be 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 set FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT.

pattern FORMAT_FEATURE_TRANSFER_DST_BIT :: FormatFeatureFlagBits

FORMAT_FEATURE_TRANSFER_DST_BIT specifies that an image can be used as a destination image for copy commands and clear commands.

pattern FORMAT_FEATURE_TRANSFER_SRC_BIT :: FormatFeatureFlagBits

FORMAT_FEATURE_TRANSFER_SRC_BIT specifies that an image can be used as a source image for copy commands.

Instances

Instances details
Eq FormatFeatureFlagBits Source # 
Instance details

Defined in Vulkan.Core10.Enums.FormatFeatureFlagBits

Ord FormatFeatureFlagBits Source # 
Instance details

Defined in Vulkan.Core10.Enums.FormatFeatureFlagBits

Read FormatFeatureFlagBits Source # 
Instance details

Defined in Vulkan.Core10.Enums.FormatFeatureFlagBits

Show FormatFeatureFlagBits Source # 
Instance details

Defined in Vulkan.Core10.Enums.FormatFeatureFlagBits

Storable FormatFeatureFlagBits Source # 
Instance details

Defined in Vulkan.Core10.Enums.FormatFeatureFlagBits

Bits FormatFeatureFlagBits Source # 
Instance details

Defined in Vulkan.Core10.Enums.FormatFeatureFlagBits

Zero FormatFeatureFlagBits Source # 
Instance details

Defined in Vulkan.Core10.Enums.FormatFeatureFlagBits