| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Vulkan.Extensions.VK_KHR_maintenance4
Description
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
- Requires Vulkan 1.1
- Contact
Other Extension Metadata
- Last Modified Date
- 2021-10-25
- Interactions and External Dependencies
- Requires SPIR-V 1.2 for
LocalSizeId
- Requires SPIR-V 1.2 for
- Contributors
- Lionel Duc, NVIDIA
- Jason 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
PipelineLayoutobject 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
Bufferthat can be created. - Add support for the SPIR-V 1.2
LocalSizeIdexecution mode, which can be used as an alternative toLocalSizeto 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, andgetDeviceImageSparseMemoryRequirementsKHRto 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
DeviceImageMemoryRequirementsKHRExtending
PhysicalDeviceFeatures2,DeviceCreateInfo:Extending
PhysicalDeviceProperties2:
New Enum Constants
KHR_MAINTENANCE_4_SPEC_VERSIONExtending
StructureType:
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.
Synopsis
- getDeviceBufferMemoryRequirementsKHR :: forall a io. (Extendss MemoryRequirements2 a, PokeChain a, PeekChain a, MonadIO io) => Device -> ("info" ::: DeviceBufferMemoryRequirementsKHR) -> io (MemoryRequirements2 a)
- getDeviceImageMemoryRequirementsKHR :: forall a io. (Extendss MemoryRequirements2 a, PokeChain a, PeekChain a, MonadIO io) => Device -> ("info" ::: DeviceImageMemoryRequirementsKHR) -> io (MemoryRequirements2 a)
- getDeviceImageSparseMemoryRequirementsKHR :: forall io. MonadIO io => Device -> ("info" ::: DeviceImageMemoryRequirementsKHR) -> io ("sparseMemoryRequirements" ::: Vector SparseImageMemoryRequirements2)
- data DeviceBufferMemoryRequirementsKHR = DeviceBufferMemoryRequirementsKHR {}
- data DeviceImageMemoryRequirementsKHR = DeviceImageMemoryRequirementsKHR {}
- data PhysicalDeviceMaintenance4FeaturesKHR = PhysicalDeviceMaintenance4FeaturesKHR {
- maintenance4 :: Bool
- data PhysicalDeviceMaintenance4PropertiesKHR = PhysicalDeviceMaintenance4PropertiesKHR {}
- type KHR_MAINTENANCE_4_SPEC_VERSION = 2
- pattern KHR_MAINTENANCE_4_SPEC_VERSION :: forall a. Integral a => a
- type KHR_MAINTENANCE_4_EXTENSION_NAME = "VK_KHR_maintenance4"
- pattern KHR_MAINTENANCE_4_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a
Documentation
getDeviceBufferMemoryRequirementsKHR Source #
Arguments
| :: forall a io. (Extendss MemoryRequirements2 a, PokeChain a, PeekChain a, MonadIO io) | |
| => Device |
|
| -> ("info" ::: DeviceBufferMemoryRequirementsKHR) |
|
| -> io (MemoryRequirements2 a) |
vkGetDeviceBufferMemoryRequirementsKHR - Returns the memory requirements for specified Vulkan object
Valid Usage (Implicit)
See Also
VK_KHR_maintenance4,
Device, DeviceBufferMemoryRequirementsKHR,
MemoryRequirements2
getDeviceImageMemoryRequirementsKHR Source #
Arguments
| :: forall a io. (Extendss MemoryRequirements2 a, PokeChain a, PeekChain a, MonadIO io) | |
| => Device |
|
| -> ("info" ::: DeviceImageMemoryRequirementsKHR) |
|
| -> io (MemoryRequirements2 a) |
vkGetDeviceImageMemoryRequirementsKHR - Returns the memory requirements for specified Vulkan object
Valid Usage (Implicit)
See Also
VK_KHR_maintenance4,
Device, DeviceImageMemoryRequirementsKHR,
MemoryRequirements2
getDeviceImageSparseMemoryRequirementsKHR Source #
Arguments
| :: forall io. MonadIO io | |
| => Device |
|
| -> ("info" ::: DeviceImageMemoryRequirementsKHR) |
|
| -> io ("sparseMemoryRequirements" ::: Vector SparseImageMemoryRequirements2) |
vkGetDeviceImageSparseMemoryRequirementsKHR - Query the memory requirements for a sparse image
Valid Usage (Implicit)
-
devicemust be a validDevicehandle
-
pInfomust be a valid pointer to a validDeviceImageMemoryRequirementsKHRstructure -
pSparseMemoryRequirementCountmust be a valid pointer to auint32_tvalue -
If the value referenced by
pSparseMemoryRequirementCountis not0, andpSparseMemoryRequirementsis notNULL,pSparseMemoryRequirementsmust be a valid pointer to an array ofpSparseMemoryRequirementCountSparseImageMemoryRequirements2structures
See Also
VK_KHR_maintenance4,
Device, DeviceImageMemoryRequirementsKHR,
SparseImageMemoryRequirements2
data DeviceBufferMemoryRequirementsKHR Source #
VkDeviceBufferMemoryRequirementsKHR - (None)
Valid Usage (Implicit)
See Also
VK_KHR_maintenance4,
BufferCreateInfo,
StructureType,
getDeviceBufferMemoryRequirementsKHR
Constructors
| DeviceBufferMemoryRequirementsKHR | |
Fields
| |
Instances
| Show DeviceBufferMemoryRequirementsKHR Source # | |
Defined in Vulkan.Extensions.VK_KHR_maintenance4 Methods showsPrec :: Int -> DeviceBufferMemoryRequirementsKHR -> ShowS # | |
| FromCStruct DeviceBufferMemoryRequirementsKHR Source # | |
| ToCStruct DeviceBufferMemoryRequirementsKHR Source # | |
Defined in Vulkan.Extensions.VK_KHR_maintenance4 Methods withCStruct :: DeviceBufferMemoryRequirementsKHR -> (Ptr DeviceBufferMemoryRequirementsKHR -> IO b) -> IO b Source # pokeCStruct :: Ptr DeviceBufferMemoryRequirementsKHR -> DeviceBufferMemoryRequirementsKHR -> IO b -> IO b Source # withZeroCStruct :: (Ptr DeviceBufferMemoryRequirementsKHR -> IO b) -> IO b Source # pokeZeroCStruct :: Ptr DeviceBufferMemoryRequirementsKHR -> IO b -> IO b Source # cStructSize :: Int Source # | |
| Zero DeviceBufferMemoryRequirementsKHR Source # | |
Defined in Vulkan.Extensions.VK_KHR_maintenance4 Methods | |
data DeviceImageMemoryRequirementsKHR Source #
VkDeviceImageMemoryRequirementsKHR - (None)
Valid Usage
- The
pCreateInfo::pNextchain must not contain aImageSwapchainCreateInfoKHRstructure
- If
pCreateInfo::flagshasIMAGE_CREATE_DISJOINT_BITset thenplanAspectmust not be zero - If
pCreateInfo::flagshasIMAGE_TILING_DRM_FORMAT_MODIFIER_EXTset thenplanAspectmust not be zero - If
pCreateInfo::flagshasIMAGE_CREATE_DISJOINT_BITset and if thepCreateInfo::tilingisIMAGE_TILING_LINEARorIMAGE_TILING_OPTIMAL, thenplaneAspectmust be a single valid format plane for the image (that is, for a two-plane imageplaneAspectmust beIMAGE_ASPECT_PLANE_0_BITorIMAGE_ASPECT_PLANE_1_BIT, and for a three-plane imageplaneAspectmust beIMAGE_ASPECT_PLANE_0_BIT,IMAGE_ASPECT_PLANE_1_BITorIMAGE_ASPECT_PLANE_2_BIT) - If
pCreateInfo::flagshasIMAGE_TILING_DRM_FORMAT_MODIFIER_EXTset and thepCreateInfo::tilingisIMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, thenplaneAspectmust be a single valid memory plane for the image (that is,aspectMaskmust specify a plane index that is less than theDrmFormatModifierPropertiesEXT::drmFormatModifierPlaneCountassociated with the image’sformatandImageDrmFormatModifierPropertiesEXT::drmFormatModifier)
Valid Usage (Implicit)
-
sTypemust beSTRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR
-
pNextmust beNULL -
pCreateInfomust be a valid pointer to a validImageCreateInfostructure -
planeAspectmust be a validImageAspectFlagBitsvalue
See Also
VK_KHR_maintenance4,
ImageAspectFlagBits,
ImageCreateInfo,
StructureType,
getDeviceImageMemoryRequirementsKHR,
getDeviceImageSparseMemoryRequirementsKHR
Constructors
| DeviceImageMemoryRequirementsKHR | |
Fields
| |
Instances
| Show DeviceImageMemoryRequirementsKHR Source # | |
Defined in Vulkan.Extensions.VK_KHR_maintenance4 Methods showsPrec :: Int -> DeviceImageMemoryRequirementsKHR -> ShowS # | |
| FromCStruct DeviceImageMemoryRequirementsKHR Source # | |
Defined in Vulkan.Extensions.VK_KHR_maintenance4 | |
| ToCStruct DeviceImageMemoryRequirementsKHR Source # | |
Defined in Vulkan.Extensions.VK_KHR_maintenance4 Methods withCStruct :: DeviceImageMemoryRequirementsKHR -> (Ptr DeviceImageMemoryRequirementsKHR -> IO b) -> IO b Source # pokeCStruct :: Ptr DeviceImageMemoryRequirementsKHR -> DeviceImageMemoryRequirementsKHR -> IO b -> IO b Source # withZeroCStruct :: (Ptr DeviceImageMemoryRequirementsKHR -> IO b) -> IO b Source # pokeZeroCStruct :: Ptr DeviceImageMemoryRequirementsKHR -> IO b -> IO b Source # cStructSize :: Int Source # | |
| Zero DeviceImageMemoryRequirementsKHR Source # | |
Defined in Vulkan.Extensions.VK_KHR_maintenance4 Methods | |
data PhysicalDeviceMaintenance4FeaturesKHR Source #
VkPhysicalDeviceMaintenance4FeaturesKHR - Structure describing whether the implementation supports maintenance4 functionality
Members
This structure describes the following features:
Description
If the PhysicalDeviceMaintenance4FeaturesKHR 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. PhysicalDeviceMaintenance4FeaturesKHR can also be used in
the pNext chain of DeviceCreateInfo to
selectively enable these features.
Valid Usage (Implicit)
See Also
Constructors
| PhysicalDeviceMaintenance4FeaturesKHR | |
Fields
| |
Instances
data PhysicalDeviceMaintenance4PropertiesKHR Source #
VkPhysicalDeviceMaintenance4PropertiesKHR - Structure describing various implementation-defined properties introduced with VK_KHR_maintenance4
Description
If the PhysicalDeviceMaintenance4PropertiesKHR 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
| PhysicalDeviceMaintenance4PropertiesKHR | |
Fields
| |
Instances
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 #