Class KHRDisplaySwapchain

  • public class KHRDisplaySwapchain
    extends java.lang.Object
    This extension provides an API to create a swapchain directly on a device's display without any underlying window system.

    The example code for the VK_KHR_display and VK_KHR_display_swapchain extensions was removed from the appendix after revision 1.0.43. The display swapchain creation example code was ported to the cube demo that is shipped with the official Khronos SDK, and is being kept up-to-date in that location (see:

    Name String
    Extension Type
    Device extension
    Registered Extension Number
    Extension and Version Dependencies
    Last Modified Date
    IP Status
    No known IP claims.
    • James Jones, NVIDIA
    • Jeff Vigil, Qualcomm
    • Jesse Hall, Google
    • Field Detail


        public static final int VK_KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION
        The extension specification version.
        See Also:
        Constant Field Values

        public static final java.lang.String VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME
        The extension name.
        See Also:
        Constant Field Values

        public static final int VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR
        Extends VkStructureType.
        See Also:
        Constant Field Values

        public static final int VK_ERROR_INCOMPATIBLE_DISPLAY_KHR
        Extends VkResult.
        See Also:
        Constant Field Values
    • Method Detail

      • nvkCreateSharedSwapchainsKHR

        public static int nvkCreateSharedSwapchainsKHR​(VkDevice device,
                                                       int swapchainCount,
                                                       long pCreateInfos,
                                                       long pAllocator,
                                                       long pSwapchains)
        Unsafe version of: CreateSharedSwapchainsKHR
        swapchainCount - the number of swapchains to create.
      • vkCreateSharedSwapchainsKHR

        public static int vkCreateSharedSwapchainsKHR​(VkDevice device,
                                                      VkSwapchainCreateInfoKHR.Buffer pCreateInfos,
                                                      VkAllocationCallbacks pAllocator,
                                                      java.nio.LongBuffer pSwapchains)
        Create multiple swapchains that share presentable images.
        C Specification

        When the VK_KHR_display_swapchain extension is enabled, multiple swapchains that share presentable images are created by calling:

         VkResult vkCreateSharedSwapchainsKHR(
             VkDevice                                    device,
             uint32_t                                    swapchainCount,
             const VkSwapchainCreateInfoKHR*             pCreateInfos,
             const VkAllocationCallbacks*                pAllocator,
             VkSwapchainKHR*                             pSwapchains);

        vkCreateSharedSwapchainsKHR is similar to CreateSwapchainKHR, except that it takes an array of VkSwapchainCreateInfoKHR structures, and returns an array of swapchain objects.

        The swapchain creation parameters that affect the properties and number of presentable images must match between all the swapchains. If the displays used by any of the swapchains do not use the same presentable image layout or are incompatible in a way that prevents sharing images, swapchain creation will fail with the result code ERROR_INCOMPATIBLE_DISPLAY_KHR. If any error occurs, no swapchains will be created. Images presented to multiple swapchains must be re-acquired from all of them before transitioning away from IMAGE_LAYOUT_PRESENT_SRC_KHR. After destroying one or more of the swapchains, the remaining swapchains and the presentable images can continue to be used.

        Valid Usage (Implicit)
        • device must be a valid VkDevice handle
        • pCreateInfos must be a valid pointer to an array of swapchainCount valid VkSwapchainCreateInfoKHR structures
        • If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
        • pSwapchains must be a valid pointer to an array of swapchainCount VkSwapchainKHR handles
        • swapchainCount must be greater than 0
        Host Synchronization
        • Host access to pCreateInfos[].surface must be externally synchronized
        • Host access to pCreateInfos[].oldSwapchain must be externally synchronized
        Return Codes
        On success, this command returns
        On failure, this command returns
        See Also

        VkAllocationCallbacks, VkSwapchainCreateInfoKHR

        device - the device to create the swapchains for.
        pCreateInfos - a pointer to an array of VkSwapchainCreateInfoKHR structures specifying the parameters of the created swapchains.
        pAllocator - the allocator used for host memory allocated for the swapchain objects when there is no more specific allocator available (see Memory Allocation).
        pSwapchains - a pointer to an array of VkSwapchainKHR handles in which the created swapchain objects will be returned.