HORIZON HASKELLDocslts/ghc-10.0.x8174fa42026-10-11Search names, modules, packages, or :: a typeCtrl K

GHC 10.0.0.20260917 · lts/ghc-10.0.x · 8174fa4 · 2026-10-11

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

Vulkan Version 1.1

Contact
Extension Proposal

VK_EXT_image_compression_control

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

New Enums

New Bitmasks

New Enum Constants

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

Valid Usage (Implicit)

Structure Chaining

Extends the structures

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

Instances6Eq, Show, Storable, FromCStruct, ToCStruct, Zero

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

Extends the structures

See Also

VK_EXT_image_compression_control, Bool32, StructureType

Constructors

Instances6Eq, Show, Storable, FromCStruct, ToCStruct, Zero

Constructors

Instances6Eq, Show, Storable, FromCStruct, ToCStruct, Zero
newtypenewtype ImageCompressionFlagBitsEXT
#

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.

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

VK_EXT_image_compression_control, ImageCompressionFlagsEXT

Instances8Eq, Ord, Read, Show, Bits, FiniteBits, …

VkImageCompressionFixedRateFlagBitsEXT - Bitmask specifying fixed rate image compression rates

Description

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

Instances8Eq, Ord, Read, Show, Bits, FiniteBits, …