| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
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
Extending
PhysicalDeviceFeatures2,DeviceCreateInfo:Extending
PhysicalDeviceProperties2:
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
- data PhysicalDeviceImageAlignmentControlFeaturesMESA = PhysicalDeviceImageAlignmentControlFeaturesMESA {}
- data PhysicalDeviceImageAlignmentControlPropertiesMESA = PhysicalDeviceImageAlignmentControlPropertiesMESA {}
- data ImageAlignmentControlCreateInfoMESA = ImageAlignmentControlCreateInfoMESA {}
- type MESA_IMAGE_ALIGNMENT_CONTROL_SPEC_VERSION = 1
- pattern MESA_IMAGE_ALIGNMENT_CONTROL_SPEC_VERSION :: Integral a => a
- type MESA_IMAGE_ALIGNMENT_CONTROL_EXTENSION_NAME = "VK_MESA_image_alignment_control"
- pattern MESA_IMAGE_ALIGNMENT_CONTROL_EXTENSION_NAME :: (Eq a, IsString a) => a
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
Constructors
| PhysicalDeviceImageAlignmentControlFeaturesMESA | |
Fields
| |
Instances
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
Constructors
| PhysicalDeviceImageAlignmentControlPropertiesMESA | |
Fields
| |
Instances
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
maximumRequestedAlignmentis not 0, the bitwise-and ofmaximumRequestedAlignmentand supportedImageAlignmentMask must be non-zero - imageAlignmentControl must be enabled
Valid Usage (Implicit)
-
sTypemust beSTRUCTURE_TYPE_IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA
See Also
Constructors
| ImageAlignmentControlCreateInfoMESA | |
Fields
| |
Instances
pattern MESA_IMAGE_ALIGNMENT_CONTROL_SPEC_VERSION :: Integral a => a Source #
type MESA_IMAGE_ALIGNMENT_CONTROL_EXTENSION_NAME = "VK_MESA_image_alignment_control" Source #
pattern MESA_IMAGE_ALIGNMENT_CONTROL_EXTENSION_NAME :: (Eq a, IsString a) => a Source #