Package org.lwjgl.vulkan
Class KHRMaintenance4
java.lang.Object
org.lwjgl.vulkan.KHRMaintenance4
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
VkPipelineLayoutobject 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
maxBufferSizeimplementation-defined limit for the maximum sizeVkBufferthat 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.
Promotion to Vulkan 1.3
Vulkan APIs in this extension are included in core Vulkan 1.3, with the KHR suffix omitted. External interactions defined by this extension, such as SPIR-V token names, retain their original names. The original Vulkan API names are still available as aliases of the core functionality.
- 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
- Piers Daniell pdaniell-nv
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
- Faith Ekstrand, Intel
- Spencer Fricke, Samsung
- Tobias Hector, AMD
- Lionel Landwerlin, Intel
- Graeme Leese, Broadcom
- Tom Olson, Arm
- Stu Smith, AMD
- Yiwei Zhang, Google
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intExtendsVkImageAspectFlagBits.static final StringThe extension name.static final intThe extension specification version.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType. -
Method Summary
Modifier and TypeMethodDescriptionstatic voidnvkGetDeviceBufferMemoryRequirementsKHR(org.lwjgl.vulkan.VkDevice device, long pInfo, long pMemoryRequirements) Unsafe version of:GetDeviceBufferMemoryRequirementsKHRstatic voidnvkGetDeviceImageMemoryRequirementsKHR(org.lwjgl.vulkan.VkDevice device, long pInfo, long pMemoryRequirements) Unsafe version of:GetDeviceImageMemoryRequirementsKHRstatic voidnvkGetDeviceImageSparseMemoryRequirementsKHR(org.lwjgl.vulkan.VkDevice device, long pInfo, long pSparseMemoryRequirementCount, long pSparseMemoryRequirements) Unsafe version of:GetDeviceImageSparseMemoryRequirementsKHRstatic voidvkGetDeviceBufferMemoryRequirementsKHR(org.lwjgl.vulkan.VkDevice device, VkDeviceBufferMemoryRequirements pInfo, VkMemoryRequirements2 pMemoryRequirements) static voidvkGetDeviceImageMemoryRequirementsKHR(org.lwjgl.vulkan.VkDevice device, VkDeviceImageMemoryRequirements pInfo, VkMemoryRequirements2 pMemoryRequirements) static voidvkGetDeviceImageSparseMemoryRequirementsKHR(org.lwjgl.vulkan.VkDevice device, VkDeviceImageMemoryRequirements pInfo, int[] pSparseMemoryRequirementCount, @Nullable VkSparseImageMemoryRequirements2.Buffer pSparseMemoryRequirements) Array version of:GetDeviceImageSparseMemoryRequirementsKHRstatic voidvkGetDeviceImageSparseMemoryRequirementsKHR(org.lwjgl.vulkan.VkDevice device, VkDeviceImageMemoryRequirements pInfo, IntBuffer pSparseMemoryRequirementCount, @Nullable VkSparseImageMemoryRequirements2.Buffer pSparseMemoryRequirements)
-
Field Details
-
VK_KHR_MAINTENANCE_4_SPEC_VERSION
public static final int VK_KHR_MAINTENANCE_4_SPEC_VERSIONThe extension specification version.- See Also:
-
VK_KHR_MAINTENANCE_4_EXTENSION_NAME
The extension name.- See Also:
-
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR
public static final int VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHRExtendsVkStructureType.Enum values:
- See Also:
-
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR
public static final int VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHRExtendsVkStructureType.Enum values:
- See Also:
-
VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR
public static final int VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHRExtendsVkStructureType.Enum values:
- See Also:
-
VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR
public static final int VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHRExtendsVkStructureType.Enum values:
- See Also:
-
VK_IMAGE_ASPECT_NONE_KHR
public static final int VK_IMAGE_ASPECT_NONE_KHRExtendsVkImageAspectFlagBits.- See Also:
-
-
Method Details
-
nvkGetDeviceBufferMemoryRequirementsKHR
public static void nvkGetDeviceBufferMemoryRequirementsKHR(org.lwjgl.vulkan.VkDevice device, long pInfo, long pMemoryRequirements) Unsafe version of:GetDeviceBufferMemoryRequirementsKHR -
vkGetDeviceBufferMemoryRequirementsKHR
public static void vkGetDeviceBufferMemoryRequirementsKHR(org.lwjgl.vulkan.VkDevice device, VkDeviceBufferMemoryRequirements pInfo, VkMemoryRequirements2 pMemoryRequirements) - Parameters:
device- the logical device intended to own the buffer.pInfo- a pointer to aVkDeviceBufferMemoryRequirementsstructure containing parameters required for the memory requirements query.pMemoryRequirements- a pointer to aVkMemoryRequirements2structure in which the memory requirements of the buffer object are returned.
-
nvkGetDeviceImageMemoryRequirementsKHR
public static void nvkGetDeviceImageMemoryRequirementsKHR(org.lwjgl.vulkan.VkDevice device, long pInfo, long pMemoryRequirements) Unsafe version of:GetDeviceImageMemoryRequirementsKHR -
vkGetDeviceImageMemoryRequirementsKHR
public static void vkGetDeviceImageMemoryRequirementsKHR(org.lwjgl.vulkan.VkDevice device, VkDeviceImageMemoryRequirements pInfo, VkMemoryRequirements2 pMemoryRequirements) - Parameters:
device- the logical device intended to own the image.pInfo- a pointer to aVkDeviceImageMemoryRequirementsstructure containing parameters required for the memory requirements query.pMemoryRequirements- a pointer to aVkMemoryRequirements2structure in which the memory requirements of the image object are returned.
-
nvkGetDeviceImageSparseMemoryRequirementsKHR
public static void nvkGetDeviceImageSparseMemoryRequirementsKHR(org.lwjgl.vulkan.VkDevice device, long pInfo, long pSparseMemoryRequirementCount, long pSparseMemoryRequirements) Unsafe version of:GetDeviceImageSparseMemoryRequirementsKHR- Parameters:
pSparseMemoryRequirementCount- a pointer to an integer related to the number of sparse memory requirements available or queried, as described below.
-
vkGetDeviceImageSparseMemoryRequirementsKHR
public static void vkGetDeviceImageSparseMemoryRequirementsKHR(org.lwjgl.vulkan.VkDevice device, VkDeviceImageMemoryRequirements pInfo, IntBuffer pSparseMemoryRequirementCount, @Nullable VkSparseImageMemoryRequirements2.Buffer pSparseMemoryRequirements) - Parameters:
device- the logical device intended to own the image.pInfo- a pointer to aVkDeviceImageMemoryRequirementsstructure containing parameters required for the memory requirements query.pSparseMemoryRequirementCount- a pointer to an integer related to the number of sparse memory requirements available or queried, as described below.pSparseMemoryRequirements- eitherNULLor a pointer to an array ofVkSparseImageMemoryRequirements2structures.
-
vkGetDeviceImageSparseMemoryRequirementsKHR
public static void vkGetDeviceImageSparseMemoryRequirementsKHR(org.lwjgl.vulkan.VkDevice device, VkDeviceImageMemoryRequirements pInfo, int[] pSparseMemoryRequirementCount, @Nullable VkSparseImageMemoryRequirements2.Buffer pSparseMemoryRequirements) Array version of:GetDeviceImageSparseMemoryRequirementsKHR
-