Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Name
VK_KHR_maintenance4 - device extension
VK_KHR_maintenance4
- Name String
VK_KHR_maintenance4
- Extension Type
- Device extension
- Registered Extension Number
- 414
- Revision
- 2
- Extension and Version Dependencies
- Version 1.1
- Deprecation state
- Promoted to Vulkan 1.3
- Contact
Other Extension Metadata
- Last Modified Date
- 2021-10-25
- Interactions and External Dependencies
- Promoted to Vulkan 1.3 Core
- Requires SPIR-V 1.2 for
LocalSizeId
- Contributors
- Lionel Duc, NVIDIA
- Faith Ekstrand, Intel
- Spencer Fricke, Samsung
- Tobias Hector, AMD
- Lionel Landwerlin, Intel
- Graeme Leese, Broadcom
- Tom Olson, Arm
- Stu Smith, AMD
- Yiwei Zhang, Google
Description
VK_KHR_maintenance4
adds a collection of minor features, none of which
would warrant an entire extension of their own.
The new features are as follows:
- Allow the application to destroy their
PipelineLayout
object immediately after it was used to create another object. It is no longer necessary to keep its handle valid while the created object is in use. - Add a new
maxBufferSize
implementation-defined limit for the maximum size
Buffer
that can be created. - Add support for the SPIR-V 1.2
LocalSizeId
execution mode, which can be used as an alternative toLocalSize
to specify the local workgroup size with specialization constants. - Add a guarantee that images created with identical creation parameters will always have the same alignment requirements.
- Add new
getDeviceBufferMemoryRequirementsKHR
,getDeviceImageMemoryRequirementsKHR
, andgetDeviceImageSparseMemoryRequirementsKHR
to allow the application to query the image memory requirements without having to create an image object and query it. - Relax the requirement that push constants must be initialized before they are dynamically accessed.
- Relax the interface matching rules to allow a larger output vector to match with a smaller input vector, with additional values being discarded.
- Add a guarantee for buffer memory requirement that the size memory requirement is never greater than the result of aligning create size with the alignment memory requirement.
New Commands
New Structures
DeviceImageMemoryRequirementsKHR
Extending
PhysicalDeviceFeatures2
,DeviceCreateInfo
:Extending
PhysicalDeviceProperties2
:
New Enum Constants
KHR_MAINTENANCE_4_SPEC_VERSION
Extending
ImageAspectFlagBits
:Extending
StructureType
:
Promotion to Vulkan 1.3
Functionality in this extension is included in core Vulkan 1.3, with the KHR suffix omitted. The original type, enum and command names are still available as aliases of the core functionality.
Issues
None.
Version History
Revision 1, 2021-08-18 (Piers Daniell)
- Internal revisions
Revision 2, 2021-10-25 (Yiwei Zhang)
- More guarantees on buffer memory requirements
See Also
DeviceBufferMemoryRequirementsKHR
, DeviceImageMemoryRequirementsKHR
,
PhysicalDeviceMaintenance4FeaturesKHR
,
PhysicalDeviceMaintenance4PropertiesKHR
,
getDeviceBufferMemoryRequirementsKHR
,
getDeviceImageMemoryRequirementsKHR
,
getDeviceImageSparseMemoryRequirementsKHR
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.
Documentation
pattern IMAGE_ASPECT_NONE_KHR :: ImageAspectFlagBits Source #
getDeviceBufferMemoryRequirementsKHR :: forall {a :: [Type]} {io}. (Extendss MemoryRequirements2 a, PokeChain a, PeekChain a, MonadIO io) => Device -> ("info" ::: DeviceBufferMemoryRequirements) -> io (MemoryRequirements2 a) Source #
getDeviceImageMemoryRequirementsKHR :: forall {a :: [Type]} {io}. (Extendss MemoryRequirements2 a, PokeChain a, PeekChain a, MonadIO io) => Device -> ("info" ::: DeviceImageMemoryRequirements) -> io (MemoryRequirements2 a) Source #
getDeviceImageSparseMemoryRequirementsKHR :: MonadIO io => Device -> ("info" ::: DeviceImageMemoryRequirements) -> io ("sparseMemoryRequirements" ::: Vector SparseImageMemoryRequirements2) Source #
type KHR_MAINTENANCE_4_SPEC_VERSION = 2 Source #
pattern KHR_MAINTENANCE_4_SPEC_VERSION :: forall a. Integral a => a Source #
type KHR_MAINTENANCE_4_EXTENSION_NAME = "VK_KHR_maintenance4" Source #
pattern KHR_MAINTENANCE_4_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a Source #