vulkan
Safe HaskellNone
LanguageHaskell2010

Vulkan.Extensions.VK_KHR_present_id2

Description

Name

VK_KHR_present_id2 - device extension

VK_KHR_present_id2

Name String
VK_KHR_present_id2
Extension Type
Device extension
Registered Extension Number
480
Revision
1
Ratification Status
Ratified
Extension and Version Dependencies
VK_KHR_get_surface_capabilities2 and VK_KHR_surface and VK_KHR_swapchain
Contact
  • Daniel Stone
Extension Proposal
VK_KHR_present_id2

Other Extension Metadata

Last Modified Date
2025-01-06
IP Status
No known IP claims.
Contributors
  • Hans-Kristian Arntzen, Valve
  • James Jones, NVIDIA
  • Daniel Stone, Collabora
  • Derek Foreman, Collabora
  • /contributors to `VK_KHR_present_id`/

Description

This device extension allows an application that uses the VK_KHR_swapchain extension to provide an identifier for present operations on a swapchain. An application can use this to reference specific present operations in other extensions.

New Structures

New Enum Constants

Issues

None.

Version History

  • Revision 1, 2022-05-10 (Daniel Stone)

    • Repurposed VK_KHR_present_id to be driven by surface capabilities

See Also

No cross-references are available

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

data PhysicalDevicePresentId2FeaturesKHR Source #

VkPhysicalDevicePresentId2FeaturesKHR - Structure indicating support for present id 2

Members

This structure describes the following feature:

Description

If the PhysicalDevicePresentId2FeaturesKHR 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. If the application wishes to use a Device with any features described by PhysicalDevicePresentId2FeaturesKHR, it must add an instance of the structure, with the desired feature members set to TRUE, to the pNext chain of DeviceCreateInfo when creating the Device.

Valid Usage (Implicit)

See Also

VK_KHR_present_id2, Bool32, StructureType

Constructors

PhysicalDevicePresentId2FeaturesKHR 

Fields

Instances

Instances details
Eq PhysicalDevicePresentId2FeaturesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_present_id2

Storable PhysicalDevicePresentId2FeaturesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_present_id2

Show PhysicalDevicePresentId2FeaturesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_present_id2

FromCStruct PhysicalDevicePresentId2FeaturesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_present_id2

ToCStruct PhysicalDevicePresentId2FeaturesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_present_id2

Zero PhysicalDevicePresentId2FeaturesKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_present_id2

data PresentId2KHR Source #

VkPresentId2KHR - The list of presentation identifiers

Description

For applications to be able to reference specific presentation events queued by a call to queuePresentKHR, an identifier needs to be associated with them.

When the SurfaceCapabilitiesPresentId2KHR surface capability is present for a surface, applications can include the PresentId2KHR structure in the pNext chain of the PresentInfoKHR structure to associate an identifier with each presentation request. The pPresentIds provides an identifier for the swapchain present at the corresponding index in PresentInfoKHR’s pSwapchains array.

If this presentId is non-zero, then the application can later use this value to refer to that image presentation. A value of zero indicates that this presentation has no associated presentId. A non-zero presentId must be greater than any non-zero presentId passed previously by the application for the same swapchain.

If a non-zero presentId was provided, this may be used with waitForPresent2KHR for the application to synchronize against the presentation engine’s processing of the presentation request.

The ID namespace used by this extension must be shared with other extensions that allow the application to provide a 64-bit monotonically increasing presentation ID, such as the original VK_KHR_present_id.

This is to allow existing extensions that depend on VK_KHR_present_id to use VK_KHR_present_id2 provided IDs without change, as well as to simplify writing future extensions that require application provided presentation IDs.

Valid Usage

Valid Usage (Implicit)

  • If pPresentIds is not NULL, pPresentIds must be a valid pointer to an array of swapchainCount uint64_t values
  • swapchainCount must be greater than 0

See Also

VK_KHR_present_id2, StructureType

Constructors

PresentId2KHR 

Fields

  • swapchainCount :: Word32

    swapchainCount is the number of swapchains being presented to the queuePresentKHR command.

  • presentIds :: Vector Word64

    pPresentIds is NULL or a pointer to an array of uint64_t with swapchainCount entries. If not NULL, each non-zero value in pPresentIds specifies the present id to be associated with the presentation of the swapchain with the same index in the queuePresentKHR call.

data SurfaceCapabilitiesPresentId2KHR Source #

VkSurfaceCapabilitiesPresentId2KHR - Structure describing presentation-ID capabilities of a surface

Description

This structure can be included in the pNext chain of SurfaceCapabilities2KHR to determine support for present-wait. If presentId2Supported is FALSE, it indicates that attaching an ID to presentation requests is not possible for this surface.

Applications must not attempt to include PresentId2KHR in the pNext chain of a PresentInfoKHR if presentId2Supported is FALSE.

Valid Usage (Implicit)

See Also

VK_KHR_present_id2, Bool32, StructureType

Constructors

SurfaceCapabilitiesPresentId2KHR 

Fields

  • presentId2Supported :: Bool

    presentId2Supported is a boolean describing whether the surface is able to support the present-ID extension

Instances

Instances details
Eq SurfaceCapabilitiesPresentId2KHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_present_id2

Storable SurfaceCapabilitiesPresentId2KHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_present_id2

Show SurfaceCapabilitiesPresentId2KHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_present_id2

FromCStruct SurfaceCapabilitiesPresentId2KHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_present_id2

ToCStruct SurfaceCapabilitiesPresentId2KHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_present_id2

Zero SurfaceCapabilitiesPresentId2KHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_present_id2

type KHR_PRESENT_ID_2_EXTENSION_NAME = "VK_KHR_present_id2" Source #

newtype SwapchainCreateFlagBitsKHR Source #

VkSwapchainCreateFlagBitsKHR - Bitmask controlling swapchain creation

Description

See Also

VK_KHR_swapchain, SwapchainCreateFlagsKHR

Instances

Instances details
Bits SwapchainCreateFlagBitsKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_swapchain

Methods

(.&.) :: SwapchainCreateFlagBitsKHR -> SwapchainCreateFlagBitsKHR -> SwapchainCreateFlagBitsKHR #

(.|.) :: SwapchainCreateFlagBitsKHR -> SwapchainCreateFlagBitsKHR -> SwapchainCreateFlagBitsKHR #

xor :: SwapchainCreateFlagBitsKHR -> SwapchainCreateFlagBitsKHR -> SwapchainCreateFlagBitsKHR #

complement :: SwapchainCreateFlagBitsKHR -> SwapchainCreateFlagBitsKHR #

shift :: SwapchainCreateFlagBitsKHR -> Int -> SwapchainCreateFlagBitsKHR #

rotate :: SwapchainCreateFlagBitsKHR -> Int -> SwapchainCreateFlagBitsKHR #

zeroBits :: SwapchainCreateFlagBitsKHR #

bit :: Int -> SwapchainCreateFlagBitsKHR #

setBit :: SwapchainCreateFlagBitsKHR -> Int -> SwapchainCreateFlagBitsKHR #

clearBit :: SwapchainCreateFlagBitsKHR -> Int -> SwapchainCreateFlagBitsKHR #

complementBit :: SwapchainCreateFlagBitsKHR -> Int -> SwapchainCreateFlagBitsKHR #

testBit :: SwapchainCreateFlagBitsKHR -> Int -> Bool #

bitSizeMaybe :: SwapchainCreateFlagBitsKHR -> Maybe Int #

bitSize :: SwapchainCreateFlagBitsKHR -> Int #

isSigned :: SwapchainCreateFlagBitsKHR -> Bool #

shiftL :: SwapchainCreateFlagBitsKHR -> Int -> SwapchainCreateFlagBitsKHR #

unsafeShiftL :: SwapchainCreateFlagBitsKHR -> Int -> SwapchainCreateFlagBitsKHR #

shiftR :: SwapchainCreateFlagBitsKHR -> Int -> SwapchainCreateFlagBitsKHR #

unsafeShiftR :: SwapchainCreateFlagBitsKHR -> Int -> SwapchainCreateFlagBitsKHR #

rotateL :: SwapchainCreateFlagBitsKHR -> Int -> SwapchainCreateFlagBitsKHR #

rotateR :: SwapchainCreateFlagBitsKHR -> Int -> SwapchainCreateFlagBitsKHR #

popCount :: SwapchainCreateFlagBitsKHR -> Int #

FiniteBits SwapchainCreateFlagBitsKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_swapchain

Eq SwapchainCreateFlagBitsKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_swapchain

Ord SwapchainCreateFlagBitsKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_swapchain

Storable SwapchainCreateFlagBitsKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_swapchain

Read SwapchainCreateFlagBitsKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_swapchain

Show SwapchainCreateFlagBitsKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_swapchain

Zero SwapchainCreateFlagBitsKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_swapchain