vulkan-3.15: Bindings to the Vulkan graphics API.
Safe HaskellNone
LanguageHaskell2010

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
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 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 to LocalSize 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, and getDeviceImageSparseMemoryRequirementsKHR 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

New Enum Constants

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

Documentation

getDeviceBufferMemoryRequirementsKHR Source #

Arguments

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

device is the logical device intended to own the buffer.

device must be a valid Device handle

-> ("info" ::: DeviceBufferMemoryRequirementsKHR)

pInfo is a pointer to a DeviceBufferMemoryRequirementsKHR structure containing parameters required for the memory requirements query.

pInfo must be a valid pointer to a valid DeviceBufferMemoryRequirementsKHR structure

-> 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

device is the logical device intended to own the image.

device must be a valid Device handle

-> ("info" ::: DeviceImageMemoryRequirementsKHR)

pInfo is a pointer to a DeviceImageMemoryRequirementsKHR structure containing parameters required for the memory requirements query.

pInfo must be a valid pointer to a valid DeviceImageMemoryRequirementsKHR structure

-> 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

device is the logical device intended to own the image.

-> ("info" ::: DeviceImageMemoryRequirementsKHR)

pInfo is a pointer to a DeviceImageMemoryRequirementsKHR structure containing parameters required for the memory requirements query.

-> io ("sparseMemoryRequirements" ::: Vector SparseImageMemoryRequirements2) 

vkGetDeviceImageSparseMemoryRequirementsKHR - Query the memory requirements for a sparse image

Valid Usage (Implicit)

  • device must be a valid Device handle
  • pInfo must be a valid pointer to a valid DeviceImageMemoryRequirementsKHR structure
  • pSparseMemoryRequirementCount must be a valid pointer to a uint32_t value
  • If the value referenced by pSparseMemoryRequirementCount is not 0, and pSparseMemoryRequirements is not NULL, pSparseMemoryRequirements must be a valid pointer to an array of pSparseMemoryRequirementCount SparseImageMemoryRequirements2 structures

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

data DeviceImageMemoryRequirementsKHR Source #

VkDeviceImageMemoryRequirementsKHR - (None)

Valid Usage

Valid Usage (Implicit)

See Also

VK_KHR_maintenance4, ImageAspectFlagBits, ImageCreateInfo, StructureType, getDeviceImageMemoryRequirementsKHR, getDeviceImageSparseMemoryRequirementsKHR

Constructors

DeviceImageMemoryRequirementsKHR 

Fields

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

VK_KHR_maintenance4, Bool32, StructureType

Constructors

PhysicalDeviceMaintenance4FeaturesKHR 

Fields

  • maintenance4 :: Bool

    maintenance4 indicates that the implementation supports the following:

    • The application may destroy a PipelineLayout object immediately after using it to create another object.
    • LocalSizeId can be used as an alternative to LocalSize to specify the local workgroup size with specialization constants.
    • Images created with identical creation parameters will always have the same alignment requirements.
    • The size memory requirement of a buffer or image is never greater than that of another buffer or image created with a greater or equal size.
    • Push constants do not have to be initialized before they are dynamically accessed.
    • The interface matching rules allow a larger output vector to match with a smaller input vector, with additional values being discarded.

Instances

Instances details
Eq PhysicalDeviceMaintenance4FeaturesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_maintenance4

Show PhysicalDeviceMaintenance4FeaturesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_maintenance4

Storable PhysicalDeviceMaintenance4FeaturesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_maintenance4

FromCStruct PhysicalDeviceMaintenance4FeaturesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_maintenance4

ToCStruct PhysicalDeviceMaintenance4FeaturesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_maintenance4

Zero PhysicalDeviceMaintenance4FeaturesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_maintenance4

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

VK_KHR_maintenance4, DeviceSize, StructureType

Constructors

PhysicalDeviceMaintenance4PropertiesKHR 

Fields

Instances

Instances details
Eq PhysicalDeviceMaintenance4PropertiesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_maintenance4

Show PhysicalDeviceMaintenance4PropertiesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_maintenance4

Storable PhysicalDeviceMaintenance4PropertiesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_maintenance4

FromCStruct PhysicalDeviceMaintenance4PropertiesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_maintenance4

ToCStruct PhysicalDeviceMaintenance4PropertiesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_maintenance4

Zero PhysicalDeviceMaintenance4PropertiesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_maintenance4

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 #