Class KHRMaintenance2

  • public final class KHRMaintenance2
    extends java.lang.Object
    VK_KHR_maintenance2 adds a collection of minor features that were intentionally left out or overlooked from the original Vulkan 1.0 release.

    The new features are as follows:

    • Allow the application to specify which aspect of an input attachment might be read for a given subpass.
    • Allow implementations to express the clipping behavior of points.
    • Allow creating images with usage flags that may not be supported for the base image’s format, but are supported for image views of the image that have a different but compatible format.
    • Allow creating uncompressed image views of compressed images.
    • Allow the application to select between an upper-left and lower-left origin for the tessellation domain space.
    • Adds two new image layouts for depth stencil images to allow either the depth or stencil aspect to be read-only while the other aspect is writable.
    Input Attachment Specification

    Input attachment specification allows an application to specify which aspect of a multi-aspect image (e.g. a combined depth stencil format) will be accessed via a subpassLoad operation.

    On some implementations there may be a performance penalty if the implementation does not know (at CreateRenderPass time) which aspect(s) of multi-aspect images can be be accessed as input attachments.

    Promotion to Vulkan 1.1

    All functionality in this extension is included in core Vulkan 1.1, with the KHR suffix omitted. The original type, enum and command names are still available as aliases of the core functionality.

    Input Attachment Specification Example

    Consider the case where a render pass has two subpasses and two attachments.

    Attachment 0 has the format FORMAT_D24_UNORM_S8_UINT, attachment 1 has some color format.

    Subpass 0 writes to attachment 0, subpass 1 reads only the depth information from attachment 0 (using inputAttachmentRead) and writes to attachment 1.

         VkInputAttachmentAspectReferenceKHR references[] = {
                 .subpass = 1,
                 .inputAttachmentIndex = 0,
                 .aspectMask = VK_IMAGE_ASPECT_DEPTH_BIT
         VkRenderPassInputAttachmentAspectCreateInfoKHR specifyAspects = {
             .pNext = NULL,
             .aspectReferenceCount = 1,
             .pAspectReferences = references
         VkRenderPassCreateInfo createInfo = {
             .pNext = &specifyAspects,
    Name String
    Extension Type
    Device extension
    Registered Extension Number
    Extension and Version Dependencies
    • Requires Vulkan 1.0
    Deprecation state
    Last Modified Date
    Interactions and External Dependencies
    • Promoted to Vulkan 1.1 Core
    • Michael Worcester, Imagination Technologies
    • Stuart Smith, Imagination Technologies
    • Jeff Bolz, NVIDIA
    • Daniel Koch, NVIDIA
    • Jan-Harald Fredriksen, ARM
    • Daniel Rakos, AMD
    • Neil Henning, Codeplay
    • Piers Daniell, NVIDIA