vulkan-3.26.1: Bindings to the Vulkan graphics API.
Safe HaskellSafe-Inferred
LanguageHaskell2010

Vulkan.Extensions.VK_EXT_image_compression_control

Description

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
Not ratified
Extension and Version Dependencies
VK_KHR_get_physical_device_properties2
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

ImageCompressionControlEXT, ImageCompressionFixedRateFlagBitsEXT, ImageCompressionFixedRateFlagsEXT, ImageCompressionFlagBitsEXT, ImageCompressionFlagsEXT, ImageCompressionPropertiesEXT, ImageSubresource2EXT, PhysicalDeviceImageCompressionControlFeaturesEXT, SubresourceLayout2EXT, getImageSubresourceLayout2EXT

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.

Synopsis

Documentation

data ImageCompressionControlEXT Source #

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)

Note

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

ImageCompressionControlEXT 

Fields

Instances

Instances details
Storable ImageCompressionControlEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_image_compression_control

Show ImageCompressionControlEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_image_compression_control

Eq ImageCompressionControlEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_image_compression_control

FromCStruct ImageCompressionControlEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_image_compression_control

ToCStruct ImageCompressionControlEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_image_compression_control

Zero ImageCompressionControlEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_image_compression_control

data PhysicalDeviceImageCompressionControlFeaturesEXT Source #

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. PhysicalDeviceImageCompressionControlFeaturesEXT can also be used in the pNext chain of DeviceCreateInfo to selectively enable these features.

Valid Usage (Implicit)

See Also

VK_EXT_image_compression_control, Bool32, StructureType

Constructors

PhysicalDeviceImageCompressionControlFeaturesEXT 

Fields

  • imageCompressionControl :: Bool

    imageCompressionControl indicates that the implementation supports providing controls for image compression at image creation time.

Instances

Instances details
Storable PhysicalDeviceImageCompressionControlFeaturesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_image_compression_control

Show PhysicalDeviceImageCompressionControlFeaturesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_image_compression_control

Eq PhysicalDeviceImageCompressionControlFeaturesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_image_compression_control

FromCStruct PhysicalDeviceImageCompressionControlFeaturesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_image_compression_control

ToCStruct PhysicalDeviceImageCompressionControlFeaturesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_image_compression_control

Zero PhysicalDeviceImageCompressionControlFeaturesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_image_compression_control

data ImageCompressionPropertiesEXT Source #

VkImageCompressionPropertiesEXT - Compression properties of an image

Valid Usage (Implicit)

See Also

VK_EXT_image_compression_control, ImageCompressionFixedRateFlagsEXT, ImageCompressionFlagsEXT, StructureType

Constructors

ImageCompressionPropertiesEXT 

Fields

Instances

Instances details
Storable ImageCompressionPropertiesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_image_compression_control

Show ImageCompressionPropertiesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_image_compression_control

Eq ImageCompressionPropertiesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_image_compression_control

FromCStruct ImageCompressionPropertiesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_image_compression_control

ToCStruct ImageCompressionPropertiesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_image_compression_control

Zero ImageCompressionPropertiesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_image_compression_control

newtype ImageCompressionFlagBitsEXT Source #

VkImageCompressionFlagBitsEXT - Bitmask specifying image compression controls

Description

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.

Note

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

Bundled Patterns

pattern IMAGE_COMPRESSION_DEFAULT_EXT :: ImageCompressionFlagBitsEXT

IMAGE_COMPRESSION_DEFAULT_EXT specifies that the default image compression setting is used. Implementations must not apply fixed-rate compression.

pattern IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT :: ImageCompressionFlagBitsEXT

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.

pattern IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT :: ImageCompressionFlagBitsEXT

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.

pattern IMAGE_COMPRESSION_DISABLED_EXT :: ImageCompressionFlagBitsEXT

IMAGE_COMPRESSION_DISABLED_EXT specifies that all lossless and fixed-rate compression should be disabled.

Instances

Instances details
Storable ImageCompressionFlagBitsEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_image_compression_control

Bits ImageCompressionFlagBitsEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_image_compression_control

Methods

(.&.) :: ImageCompressionFlagBitsEXT -> ImageCompressionFlagBitsEXT -> ImageCompressionFlagBitsEXT #

(.|.) :: ImageCompressionFlagBitsEXT -> ImageCompressionFlagBitsEXT -> ImageCompressionFlagBitsEXT #

xor :: ImageCompressionFlagBitsEXT -> ImageCompressionFlagBitsEXT -> ImageCompressionFlagBitsEXT #

complement :: ImageCompressionFlagBitsEXT -> ImageCompressionFlagBitsEXT #

shift :: ImageCompressionFlagBitsEXT -> Int -> ImageCompressionFlagBitsEXT #

rotate :: ImageCompressionFlagBitsEXT -> Int -> ImageCompressionFlagBitsEXT #

zeroBits :: ImageCompressionFlagBitsEXT #

bit :: Int -> ImageCompressionFlagBitsEXT #

setBit :: ImageCompressionFlagBitsEXT -> Int -> ImageCompressionFlagBitsEXT #

clearBit :: ImageCompressionFlagBitsEXT -> Int -> ImageCompressionFlagBitsEXT #

complementBit :: ImageCompressionFlagBitsEXT -> Int -> ImageCompressionFlagBitsEXT #

testBit :: ImageCompressionFlagBitsEXT -> Int -> Bool #

bitSizeMaybe :: ImageCompressionFlagBitsEXT -> Maybe Int #

bitSize :: ImageCompressionFlagBitsEXT -> Int #

isSigned :: ImageCompressionFlagBitsEXT -> Bool #

shiftL :: ImageCompressionFlagBitsEXT -> Int -> ImageCompressionFlagBitsEXT #

unsafeShiftL :: ImageCompressionFlagBitsEXT -> Int -> ImageCompressionFlagBitsEXT #

shiftR :: ImageCompressionFlagBitsEXT -> Int -> ImageCompressionFlagBitsEXT #

unsafeShiftR :: ImageCompressionFlagBitsEXT -> Int -> ImageCompressionFlagBitsEXT #

rotateL :: ImageCompressionFlagBitsEXT -> Int -> ImageCompressionFlagBitsEXT #

rotateR :: ImageCompressionFlagBitsEXT -> Int -> ImageCompressionFlagBitsEXT #

popCount :: ImageCompressionFlagBitsEXT -> Int #

FiniteBits ImageCompressionFlagBitsEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_image_compression_control

Read ImageCompressionFlagBitsEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_image_compression_control

Show ImageCompressionFlagBitsEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_image_compression_control

Eq ImageCompressionFlagBitsEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_image_compression_control

Ord ImageCompressionFlagBitsEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_image_compression_control

Zero ImageCompressionFlagBitsEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_image_compression_control

newtype ImageCompressionFixedRateFlagBitsEXT Source #

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.

Note

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

Bundled Patterns

pattern IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT :: ImageCompressionFixedRateFlagBitsEXT

IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT specifies that fixed-rate compression must not be used.

pattern IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT :: ImageCompressionFixedRateFlagBitsEXT

IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT specifies that fixed-rate compression with a bitrate of [1,2) bits per component may be used.

pattern IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT :: ImageCompressionFixedRateFlagBitsEXT

IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT specifies that fixed-rate compression with a bitrate of [2,3) bits per component may be used.

pattern IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT :: ImageCompressionFixedRateFlagBitsEXT

IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT specifies that fixed-rate compression with a bitrate of [3,4) bits per component may be used.

pattern IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT :: ImageCompressionFixedRateFlagBitsEXT

IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT specifies that fixed-rate compression with a bitrate of [4,5) bits per component may be used.

pattern IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT :: ImageCompressionFixedRateFlagBitsEXT

IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT specifies that fixed-rate compression with a bitrate of [5,6) bits per component may be used.

pattern IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT :: ImageCompressionFixedRateFlagBitsEXT

IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT specifies that fixed-rate compression with a bitrate of [6,7) bits per component may be used.

pattern IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT :: ImageCompressionFixedRateFlagBitsEXT

IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT specifies that fixed-rate compression with a bitrate of [7,8) bits per component may be used.

pattern IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT :: ImageCompressionFixedRateFlagBitsEXT

IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT specifies that fixed-rate compression with a bitrate of [8,9) bits per component may be used.

pattern IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT :: ImageCompressionFixedRateFlagBitsEXT

IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT specifies that fixed-rate compression with a bitrate of [9,10) bits per component may be used.

pattern IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT :: ImageCompressionFixedRateFlagBitsEXT

IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT specifies that fixed-rate compression with a bitrate of [10,11) bits per component may be used.

pattern IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT :: ImageCompressionFixedRateFlagBitsEXT

IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT specifies that fixed-rate compression with a bitrate of [11,12) bits per component may be used.

pattern IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT :: ImageCompressionFixedRateFlagBitsEXT

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.

pattern IMAGE_COMPRESSION_FIXED_RATE_13BPC_BIT_EXT :: ImageCompressionFixedRateFlagBitsEXT 
pattern IMAGE_COMPRESSION_FIXED_RATE_14BPC_BIT_EXT :: ImageCompressionFixedRateFlagBitsEXT 
pattern IMAGE_COMPRESSION_FIXED_RATE_15BPC_BIT_EXT :: ImageCompressionFixedRateFlagBitsEXT 
pattern IMAGE_COMPRESSION_FIXED_RATE_16BPC_BIT_EXT :: ImageCompressionFixedRateFlagBitsEXT 
pattern IMAGE_COMPRESSION_FIXED_RATE_17BPC_BIT_EXT :: ImageCompressionFixedRateFlagBitsEXT 
pattern IMAGE_COMPRESSION_FIXED_RATE_18BPC_BIT_EXT :: ImageCompressionFixedRateFlagBitsEXT 
pattern IMAGE_COMPRESSION_FIXED_RATE_19BPC_BIT_EXT :: ImageCompressionFixedRateFlagBitsEXT 
pattern IMAGE_COMPRESSION_FIXED_RATE_20BPC_BIT_EXT :: ImageCompressionFixedRateFlagBitsEXT 
pattern IMAGE_COMPRESSION_FIXED_RATE_21BPC_BIT_EXT :: ImageCompressionFixedRateFlagBitsEXT 
pattern IMAGE_COMPRESSION_FIXED_RATE_22BPC_BIT_EXT :: ImageCompressionFixedRateFlagBitsEXT 
pattern IMAGE_COMPRESSION_FIXED_RATE_23BPC_BIT_EXT :: ImageCompressionFixedRateFlagBitsEXT 
pattern IMAGE_COMPRESSION_FIXED_RATE_24BPC_BIT_EXT :: ImageCompressionFixedRateFlagBitsEXT 

Instances

Instances details
Storable ImageCompressionFixedRateFlagBitsEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_image_compression_control

Bits ImageCompressionFixedRateFlagBitsEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_image_compression_control

Methods

(.&.) :: ImageCompressionFixedRateFlagBitsEXT -> ImageCompressionFixedRateFlagBitsEXT -> ImageCompressionFixedRateFlagBitsEXT #

(.|.) :: ImageCompressionFixedRateFlagBitsEXT -> ImageCompressionFixedRateFlagBitsEXT -> ImageCompressionFixedRateFlagBitsEXT #

xor :: ImageCompressionFixedRateFlagBitsEXT -> ImageCompressionFixedRateFlagBitsEXT -> ImageCompressionFixedRateFlagBitsEXT #

complement :: ImageCompressionFixedRateFlagBitsEXT -> ImageCompressionFixedRateFlagBitsEXT #

shift :: ImageCompressionFixedRateFlagBitsEXT -> Int -> ImageCompressionFixedRateFlagBitsEXT #

rotate :: ImageCompressionFixedRateFlagBitsEXT -> Int -> ImageCompressionFixedRateFlagBitsEXT #

zeroBits :: ImageCompressionFixedRateFlagBitsEXT #

bit :: Int -> ImageCompressionFixedRateFlagBitsEXT #

setBit :: ImageCompressionFixedRateFlagBitsEXT -> Int -> ImageCompressionFixedRateFlagBitsEXT #

clearBit :: ImageCompressionFixedRateFlagBitsEXT -> Int -> ImageCompressionFixedRateFlagBitsEXT #

complementBit :: ImageCompressionFixedRateFlagBitsEXT -> Int -> ImageCompressionFixedRateFlagBitsEXT #

testBit :: ImageCompressionFixedRateFlagBitsEXT -> Int -> Bool #

bitSizeMaybe :: ImageCompressionFixedRateFlagBitsEXT -> Maybe Int #

bitSize :: ImageCompressionFixedRateFlagBitsEXT -> Int #

isSigned :: ImageCompressionFixedRateFlagBitsEXT -> Bool #

shiftL :: ImageCompressionFixedRateFlagBitsEXT -> Int -> ImageCompressionFixedRateFlagBitsEXT #

unsafeShiftL :: ImageCompressionFixedRateFlagBitsEXT -> Int -> ImageCompressionFixedRateFlagBitsEXT #

shiftR :: ImageCompressionFixedRateFlagBitsEXT -> Int -> ImageCompressionFixedRateFlagBitsEXT #

unsafeShiftR :: ImageCompressionFixedRateFlagBitsEXT -> Int -> ImageCompressionFixedRateFlagBitsEXT #

rotateL :: ImageCompressionFixedRateFlagBitsEXT -> Int -> ImageCompressionFixedRateFlagBitsEXT #

rotateR :: ImageCompressionFixedRateFlagBitsEXT -> Int -> ImageCompressionFixedRateFlagBitsEXT #

popCount :: ImageCompressionFixedRateFlagBitsEXT -> Int #

FiniteBits ImageCompressionFixedRateFlagBitsEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_image_compression_control

Read ImageCompressionFixedRateFlagBitsEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_image_compression_control

Show ImageCompressionFixedRateFlagBitsEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_image_compression_control

Eq ImageCompressionFixedRateFlagBitsEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_image_compression_control

Ord ImageCompressionFixedRateFlagBitsEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_image_compression_control

Zero ImageCompressionFixedRateFlagBitsEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_image_compression_control

type EXT_IMAGE_COMPRESSION_CONTROL_EXTENSION_NAME = "VK_EXT_image_compression_control" Source #

data ImageSubresource2KHR Source #

Constructors

ImageSubresource2KHR 

Fields

Instances

Instances details
Storable ImageSubresource2KHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_maintenance5

Show ImageSubresource2KHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_maintenance5

FromCStruct ImageSubresource2KHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_maintenance5

ToCStruct ImageSubresource2KHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_maintenance5

Zero ImageSubresource2KHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_maintenance5

data SubresourceLayout2KHR (es :: [Type]) Source #

VkSubresourceLayout2KHR - Structure specifying subresource layout

Valid Usage (Implicit)

See Also

VK_EXT_host_image_copy, VK_EXT_image_compression_control, VK_KHR_maintenance5, StructureType, SubresourceLayout, getDeviceImageSubresourceLayoutKHR, getImageSubresourceLayout2EXT, getImageSubresourceLayout2KHR

Constructors

SubresourceLayout2KHR 

Fields

Instances

Instances details
Extensible SubresourceLayout2KHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_maintenance5

Methods

extensibleTypeName :: String Source #

getNext :: forall (es :: [Type]). SubresourceLayout2KHR es -> Chain es Source #

setNext :: forall (ds :: [Type]) (es :: [TYPE LiftedRep]). SubresourceLayout2KHR ds -> Chain es -> SubresourceLayout2KHR es Source #

extends :: forall e b proxy. Typeable e => proxy e -> (Extends SubresourceLayout2KHR e => b) -> Maybe b Source #

Show (Chain es) => Show (SubresourceLayout2KHR es) Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_maintenance5

(Extendss SubresourceLayout2KHR es, PeekChain es) => FromCStruct (SubresourceLayout2KHR es) Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_maintenance5

(Extendss SubresourceLayout2KHR es, PokeChain es) => ToCStruct (SubresourceLayout2KHR es) Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_maintenance5

es ~ ('[] :: [Type]) => Zero (SubresourceLayout2KHR es) Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_maintenance5

getImageSubresourceLayout2KHR Source #

Arguments

:: forall a io. (Extendss SubresourceLayout2KHR a, PokeChain a, PeekChain a, MonadIO io) 
=> Device

device is the logical device that owns the image.

-> Image

image is the image whose layout is being queried.

-> ImageSubresource2KHR

pSubresource is a pointer to a ImageSubresource2KHR structure selecting a specific image for the image subresource.

-> io (SubresourceLayout2KHR a) 

vkGetImageSubresourceLayout2KHR - Retrieve information about an image subresource

Description

getImageSubresourceLayout2KHR behaves similarly to getImageSubresourceLayout, with the ability to specify extended inputs via chained input structures, and to return extended information via chained output structures.

It is legal to call getImageSubresourceLayout2KHR with a image created with tiling equal to IMAGE_TILING_OPTIMAL, but the members of SubresourceLayout2KHR::subresourceLayout will have undefined values in this case.

Note

Structures chained from ImageSubresource2KHR::pNext will also be updated when tiling is equal to IMAGE_TILING_OPTIMAL.

Valid Usage

  • The aspectMask member of pSubresource must only have a single bit set

Valid Usage (Implicit)

  • device must be a valid Device handle
  • image must be a valid Image handle
  • pSubresource must be a valid pointer to a valid ImageSubresource2KHR structure
  • pLayout must be a valid pointer to a SubresourceLayout2KHR structure
  • image must have been created, allocated, or retrieved from device

See Also

VK_KHR_maintenance5, Device, Image, ImageSubresource2KHR, SubresourceLayout2KHR