vulkan
Safe HaskellNone
LanguageHaskell2010

Vulkan.Extensions.VK_MESA_image_alignment_control

Description

Name

VK_MESA_image_alignment_control - device extension

VK_MESA_image_alignment_control

Name String
VK_MESA_image_alignment_control
Extension Type
Device extension
Registered Extension Number
576
Revision
1
Ratification Status
Not ratified
Extension and Version Dependencies
VK_KHR_get_physical_device_properties2 or Vulkan Version 1.1
Special Use
Contact

Other Extension Metadata

Last Modified Date
2024-05-03
IP Status
No known IP claims.
Contributors
  • Hans-Kristian Arntzen, Valve

Description

This extension allows applications to request a narrower alignment for images than an implementation would otherwise require. Some implementations internally support multiple image layouts in IMAGE_TILING_OPTIMAL, each with different alignment requirements and performance trade-offs. In some API layering use cases such as D3D12, it is beneficial to be able to control the alignment, since certain alignments for placed resources are guaranteed to be supported, and emulating that expectation requires unnecessary padding of allocations.

ImageAlignmentControlCreateInfoMESA can be chained to ImageCreateInfo, requesting that the alignment is no more than the provided alignment. If the requested alignment is not supported for a given ImageCreateInfo, a larger alignment may be returned.

While something similar could be achieved with VK_EXT_image_drm_format_modifier in theory, this is not the intended way to use that extension. Format modifiers are generally used for externally shareable images, and would not be platform portable. It is also a cumbersome API to use just to lower the alignment.

New Structures

New Enum Constants

Version History

  • Revision 1, 2024-04-05 (Hans-Kristian Arntzen)

    • Initial specification

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.

Synopsis

Documentation

data PhysicalDeviceImageAlignmentControlFeaturesMESA Source #

VkPhysicalDeviceImageAlignmentControlFeaturesMESA - Structure describing features supported by VK_MESA_image_alignment_control

Members

This structure describes the following feature:

Description

If the PhysicalDeviceImageAlignmentControlFeaturesMESA 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 PhysicalDeviceImageAlignmentControlFeaturesMESA, 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.

Valid Usage (Implicit)

See Also

VK_MESA_image_alignment_control, Bool32, StructureType

Instances

Instances details
Eq PhysicalDeviceImageAlignmentControlFeaturesMESA Source # 
Instance details

Defined in Vulkan.Extensions.VK_MESA_image_alignment_control

Storable PhysicalDeviceImageAlignmentControlFeaturesMESA Source # 
Instance details

Defined in Vulkan.Extensions.VK_MESA_image_alignment_control

Show PhysicalDeviceImageAlignmentControlFeaturesMESA Source # 
Instance details

Defined in Vulkan.Extensions.VK_MESA_image_alignment_control

FromCStruct PhysicalDeviceImageAlignmentControlFeaturesMESA Source # 
Instance details

Defined in Vulkan.Extensions.VK_MESA_image_alignment_control

ToCStruct PhysicalDeviceImageAlignmentControlFeaturesMESA Source # 
Instance details

Defined in Vulkan.Extensions.VK_MESA_image_alignment_control

Zero PhysicalDeviceImageAlignmentControlFeaturesMESA Source # 
Instance details

Defined in Vulkan.Extensions.VK_MESA_image_alignment_control

data PhysicalDeviceImageAlignmentControlPropertiesMESA Source #

VkPhysicalDeviceImageAlignmentControlPropertiesMESA - Structure describing supported image alignments for a physical device

Members

The members of the PhysicalDeviceImageAlignmentControlPropertiesMESA structure describe the following:

Description

If the PhysicalDeviceImageAlignmentControlPropertiesMESA structure is included in the pNext chain of the PhysicalDeviceProperties2 structure passed to getPhysicalDeviceProperties2, it is filled in with each corresponding implementation-dependent property.

Valid Usage (Implicit)

See Also

VK_MESA_image_alignment_control, StructureType

Constructors

PhysicalDeviceImageAlignmentControlPropertiesMESA 

Fields

  • supportedImageAlignmentMask :: Word32

    supportedImageAlignmentMask is a bitwise-or of all potentially supported image alignments for a given physical device when using IMAGE_TILING_OPTIMAL. If a given alignment is supported, the application can request an image to have that alignment. A given set of image creation parameters may support a subset of these alignments. To determine if a particular alignment is supported for a given set of image creation parameters, check MemoryRequirements::alignment after chaining in ImageAlignmentControlCreateInfoMESA.

Instances

Instances details
Eq PhysicalDeviceImageAlignmentControlPropertiesMESA Source # 
Instance details

Defined in Vulkan.Extensions.VK_MESA_image_alignment_control

Storable PhysicalDeviceImageAlignmentControlPropertiesMESA Source # 
Instance details

Defined in Vulkan.Extensions.VK_MESA_image_alignment_control

Show PhysicalDeviceImageAlignmentControlPropertiesMESA Source # 
Instance details

Defined in Vulkan.Extensions.VK_MESA_image_alignment_control

FromCStruct PhysicalDeviceImageAlignmentControlPropertiesMESA Source # 
Instance details

Defined in Vulkan.Extensions.VK_MESA_image_alignment_control

ToCStruct PhysicalDeviceImageAlignmentControlPropertiesMESA Source # 
Instance details

Defined in Vulkan.Extensions.VK_MESA_image_alignment_control

Zero PhysicalDeviceImageAlignmentControlPropertiesMESA Source # 
Instance details

Defined in Vulkan.Extensions.VK_MESA_image_alignment_control

data ImageAlignmentControlCreateInfoMESA Source #

VkImageAlignmentControlCreateInfoMESA - Specify image alignment

Description

If maximumRequestedAlignment is not 0, the implementation should choose an image memory layout that requires an alignment no larger than maximumRequestedAlignment as reported in MemoryRequirements::alignment. If such a layout does not exist for the given image creation parameters, the implementation should return the smallest alignment which is supported in MemoryRequirements.

If an implementation needs to disable image compression for maximumRequestedAlignment to be honored - where a larger alignment would enable image compression - the implementation should not use maximumRequestedAlignment, and should return the smallest alignment which does not compromise compression. If the imageCompressionControl feature is enabled, the application can chain a ImageCompressionControlEXT with IMAGE_COMPRESSION_DISABLED_EXT. In this case, image compression considerations should not apply when implementation decides alignment.

Valid Usage

  • If maximumRequestedAlignment is not 0, maximumRequestedAlignment must be a power of two

Valid Usage (Implicit)

See Also

VK_MESA_image_alignment_control, StructureType

Constructors

ImageAlignmentControlCreateInfoMESA 

Fields

Instances

Instances details
Eq ImageAlignmentControlCreateInfoMESA Source # 
Instance details

Defined in Vulkan.Extensions.VK_MESA_image_alignment_control

Storable ImageAlignmentControlCreateInfoMESA Source # 
Instance details

Defined in Vulkan.Extensions.VK_MESA_image_alignment_control

Show ImageAlignmentControlCreateInfoMESA Source # 
Instance details

Defined in Vulkan.Extensions.VK_MESA_image_alignment_control

FromCStruct ImageAlignmentControlCreateInfoMESA Source # 
Instance details

Defined in Vulkan.Extensions.VK_MESA_image_alignment_control

ToCStruct ImageAlignmentControlCreateInfoMESA Source # 
Instance details

Defined in Vulkan.Extensions.VK_MESA_image_alignment_control

Zero ImageAlignmentControlCreateInfoMESA Source # 
Instance details

Defined in Vulkan.Extensions.VK_MESA_image_alignment_control

type MESA_IMAGE_ALIGNMENT_CONTROL_EXTENSION_NAME = "VK_MESA_image_alignment_control" Source #