Modulevulkan-3.27GHC2021
Vulkan.Extensions.VK_EXT_image_compression_control
Name
VK_EXT_image_compression_control - device extension
VK_EXT_image_compression_control
- Name String
VK_EXT_image_compression_control
- Extension Type
Device extension
- Registered Extension Number
339
- Revision
1
- Ratification Status
Ratified
- Extension and Version Dependencies
VK_KHR_get_physical_device_properties2
or
- Contact
- Extension Proposal
Other Extension Metadata
- Last Modified Date
2022-05-02
- IP Status
No known IP claims.
- Contributors
Jan-Harald Fredriksen, Arm
Graeme Leese, Broadcom
Andrew Garrard, Imagination
Lisa Wu, Arm
Peter Kohaut, Arm
Description
This extension enables fixed-rate image compression and adds the ability to control when this kind of compression can be applied. Many implementations support some form of framebuffer compression. This is typically transparent to applications as lossless compression schemes are used. With fixed-rate compression, the compression is done at a defined bitrate. Such compression algorithms generally produce results that are visually lossless, but the results are typically not bit-exact when compared to a non-compressed result. The implementation may not be able to use the requested compression rate in all cases. This extension adds a query that can be used to determine the compression scheme and rate that was applied to an image.
New Commands
New Structures
Extending ImageCreateInfo, SwapchainCreateInfoKHR, PhysicalDeviceImageFormatInfo2:
Extending ImageFormatProperties2, SurfaceFormat2KHR, SubresourceLayout2:
Extending PhysicalDeviceFeatures2, DeviceCreateInfo:
New Enums
New Bitmasks
New Enum Constants
Extending Result:
Extending StructureType:
Version History
Revision 1, 2022-05-02 (Jan-Harald Fredriksen)
Initial draft
See Also
No cross-references are available
Document Notes
For more information, see the Vulkan Specification.
This page is a generated document. Fixes and changes should be made to the generator scripts, not directly.
- 11 types
- 1 value
- Packagevulkan-3.27
- Exports45
- LanguageGHC2021
- LicenceBSD-3-Clause
- SourceVK_EXT_image_compression_control.hs
VkImageCompressionControlEXT - Specify image compression properties
Description
If enabled, fixed-rate compression is done in an implementation-defined manner and may be applied at block granularity. In that case, a write to an individual texel may modify the value of other texels in the same block.
Valid Usage
flagsmust be one of IMAGE_COMPRESSION_DEFAULT_EXT, IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT, IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT, or IMAGE_COMPRESSION_DISABLED_EXT
If
flagsincludes IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT,pFixedRateFlagsmust not beNULL
Valid Usage (Implicit)
sTypemust be STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT
Structure Chaining
Some combinations of compression properties may not be supported. For example, some implementations may not support different fixed-rate compression rates per plane of a multi-planar format and will not be able to enable fixed-rate compression for any plane if the requested rates differ.
See Also
VK_EXT_image_compression_control, ImageCompressionFixedRateFlagsEXT, ImageCompressionFlagsEXT, StructureType
Constructors
ImageCompressionControlEXTflags :: ImageCompressionFlagsEXTflagsis a bitmask of ImageCompressionFlagBitsEXT describing compression controls for the image.compressionControlPlaneCount :: Word32compressionControlPlaneCountis the number of entries in thepFixedRateFlagsarray.fixedRateFlags :: Ptr ImageCompressionFixedRateFlagsEXTpFixedRateFlagsisNULLor a pointer to an array of ImageCompressionFixedRateFlagsEXT bitfields describing allowed fixed-rate compression rates of each image plane. It is ignored ifflagsdoes not include IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT.
Instances6Eq, Show, Storable, FromCStruct, ToCStruct, Zero
Eq ImageCompressionControlEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_image_compression_controlShow ImageCompressionControlEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_image_compression_controlStorable ImageCompressionControlEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_image_compression_controlFromCStruct ImageCompressionControlEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_image_compression_controlToCStruct ImageCompressionControlEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_image_compression_controlZero ImageCompressionControlEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_image_compression_control
VkPhysicalDeviceImageCompressionControlFeaturesEXT - Structure describing whether image compression controls can be supported by an implementation
Members
This structure describes the following feature:
Description
If the PhysicalDeviceImageCompressionControlFeaturesEXT structure is
included in the pNext chain of the
PhysicalDeviceFeatures2
structure passed to
getPhysicalDeviceFeatures2,
it is filled in to indicate whether each corresponding feature is
supported. If the application wishes to use a
Device with any features described by
PhysicalDeviceImageCompressionControlFeaturesEXT, it must add an
instance of the structure, with the desired feature members set to
TRUE, to the pNext chain of
DeviceCreateInfo when creating the
Device.
Structure Chaining
See Also
Constructors
PhysicalDeviceImageCompressionControlFeaturesEXTimageCompressionControl :: BoolimageCompressionControlindicates that the implementation supports providing controls for image compression at image creation time.
Instances6Eq, Show, Storable, FromCStruct, ToCStruct, Zero
Eq PhysicalDeviceImageCompressionControlFeaturesEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_image_compression_controlShow PhysicalDeviceImageCompressionControlFeaturesEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_image_compression_controlStorable PhysicalDeviceImageCompressionControlFeaturesEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_image_compression_controlFromCStruct PhysicalDeviceImageCompressionControlFeaturesEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_image_compression_controlToCStruct PhysicalDeviceImageCompressionControlFeaturesEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_image_compression_controlZero PhysicalDeviceImageCompressionControlFeaturesEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_image_compression_control
VkImageCompressionPropertiesEXT - Compression properties of an image
Structure Chaining
See Also
VK_EXT_image_compression_control, ImageCompressionFixedRateFlagsEXT, ImageCompressionFlagsEXT, StructureType
Constructors
ImageCompressionPropertiesEXTimageCompressionFlags :: ImageCompressionFlagsEXTimageCompressionFlagsreturns a value describing the compression controls that apply to the image. The value will be either IMAGE_COMPRESSION_DEFAULT_EXT to indicate no fixed-rate compression, IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT to indicate fixed-rate compression, or IMAGE_COMPRESSION_DISABLED_EXT to indicate no compression.imageCompressionFixedRateFlags :: ImageCompressionFixedRateFlagsEXTimageCompressionFixedRateFlagsreturns a ImageCompressionFixedRateFlagsEXT value describing the compression rates that apply to the specified aspect of the image.
Instances6Eq, Show, Storable, FromCStruct, ToCStruct, Zero
Eq ImageCompressionPropertiesEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_image_compression_controlShow ImageCompressionPropertiesEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_image_compression_controlStorable ImageCompressionPropertiesEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_image_compression_controlFromCStruct ImageCompressionPropertiesEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_image_compression_controlToCStruct ImageCompressionPropertiesEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_image_compression_controlZero ImageCompressionPropertiesEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_image_compression_control
VkImageCompressionFlagBitsEXT - Bitmask specifying image compression controls
Description
IMAGE_COMPRESSION_DEFAULT_EXT specifies that the default image compression setting is used. Implementations must not apply fixed-rate compression.
IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT specifies that the implementation may choose any supported fixed-rate compression setting in an implementation-defined manner based on the properties of the image.
IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT specifies that fixed-rate compression may be used and that the allowed compression rates are specified by ImageCompressionControlEXT::
pFixedRateFlags.IMAGE_COMPRESSION_DISABLED_EXT specifies that all lossless and fixed-rate compression should be disabled.
If ImageCompressionControlEXT::flags is
IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT, then the ith member of
the pFixedRateFlags array specifies the allowed compression rates for
the image’s ith plane.
If IMAGE_COMPRESSION_DISABLED_EXT is included in
ImageCompressionControlEXT::flags, both lossless and fixed-rate
compression will be disabled. This is likely to have a negative impact
on performance and is only intended to be used for debugging purposes.
See Also
Constructors
Instances8Eq, Ord, Read, Show, Bits, FiniteBits, …
Eq ImageCompressionFlagBitsEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_image_compression_controlOrd ImageCompressionFlagBitsEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_image_compression_controlRead ImageCompressionFlagBitsEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_image_compression_controlShow ImageCompressionFlagBitsEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_image_compression_controlBits ImageCompressionFlagBitsEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_image_compression_controlFiniteBits ImageCompressionFlagBitsEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_image_compression_controlStorable ImageCompressionFlagBitsEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_image_compression_controlZero ImageCompressionFlagBitsEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_image_compression_control
VkImageCompressionFixedRateFlagBitsEXT - Bitmask specifying fixed rate image compression rates
Description
IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT specifies that fixed-rate compression must not be used.
IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT specifies that fixed-rate compression with a bitrate of [1,2) bits per component may be used.
IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT specifies that fixed-rate compression with a bitrate of [2,3) bits per component may be used.
IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT specifies that fixed-rate compression with a bitrate of [3,4) bits per component may be used.
IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT specifies that fixed-rate compression with a bitrate of [4,5) bits per component may be used.
IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT specifies that fixed-rate compression with a bitrate of [5,6) bits per component may be used.
IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT specifies that fixed-rate compression with a bitrate of [6,7) bits per component may be used.
IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT specifies that fixed-rate compression with a bitrate of [7,8) bits per component may be used.
IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT specifies that fixed-rate compression with a bitrate of [8,9) bits per component may be used.
IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT specifies that fixed-rate compression with a bitrate of [9,10) bits per component may be used.
IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT specifies that fixed-rate compression with a bitrate of [10,11) bits per component may be used.
IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT specifies that fixed-rate compression with a bitrate of [11,12) bits per component may be used.
IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT specifies that fixed-rate compression with a bitrate of at least 12 bits per component may be used.
If the format has a different bit rate for different components,
ImageCompressionControlEXT::pFixedRateFlags describes the rate of
the component with the largest number of bits assigned to it, scaled pro
rata. For example, to request that a
FORMAT_A2R10G10B10_UNORM_PACK32 format be
stored at a rate of 8 bits per pixel, use
IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT (10 bits for the largest
component, stored at quarter the original size, 2.5 bits, rounded down).
If flags includes IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT, and
multiple bits are set in ImageCompressionControlEXT::pFixedRateFlags
for a plane, implementations should apply the lowest allowed bitrate
that is supported.
The choice of “bits per component” terminology was chosen so that the same compression rate describes the same degree of compression applied to formats that differ only in the number of components. For example, FORMAT_R8G8_UNORM compressed to half its original size is a rate of 4 bits per component, 8 bits per pixel. FORMAT_R8G8B8A8_UNORM compressed to half its original size is 4 bits per component, 16 bits per pixel. Both of these cases can be requested with IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT.
See Also
VK_EXT_image_compression_control, ImageCompressionFixedRateFlagsEXT
Constructors
Instances8Eq, Ord, Read, Show, Bits, FiniteBits, …
Eq ImageCompressionFixedRateFlagBitsEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_image_compression_controlOrd ImageCompressionFixedRateFlagBitsEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_image_compression_controlRead ImageCompressionFixedRateFlagBitsEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_image_compression_controlShow ImageCompressionFixedRateFlagBitsEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_image_compression_controlBits ImageCompressionFixedRateFlagBitsEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_image_compression_controlFiniteBits ImageCompressionFixedRateFlagBitsEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_image_compression_controlStorable ImageCompressionFixedRateFlagBitsEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_image_compression_controlZero ImageCompressionFixedRateFlagBitsEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_image_compression_control