| // Copyright 2019-2021 The Khronos Group, Inc. |
| // |
| // SPDX-License-Identifier: CC-BY-4.0 |
| |
| [open,refpage='VkPresentIdKHR',desc='The list of presentation identifiers',type='structs'] |
| -- |
| The sname:VkPresentIdKHR structure is defined as: |
| |
| include::{generated}/api/structs/VkPresentIdKHR.txt[] |
| |
| * pname:sType is the type of this structure. |
| * pname:pNext is `NULL` or a pointer to a structure extending this |
| structure. |
| * pname:swapchainCount is the number of swapchains being presented to the |
| fname:vkQueuePresentKHR command. |
| * pname:pPresentIds is `NULL` or a pointer to an array of uint64_t with |
| pname:swapchainCount entries. |
| If not `NULL`, each non-zero value in pname:pPresentIds specifies the |
| present id to be associated with the presentation of the swapchain with |
| the same index in the flink:vkQueuePresentKHR call. |
| |
| For applications to be able to reference specific presentation events queued |
| by a call to fname:vkQueuePresentKHR, an identifier needs to be associated |
| with them. |
| When the <<features-presentId, pname:presentId>> feature is enabled, |
| applications can: include the sname:VkPresentIdKHR structure in the |
| pname:pNext chain of the slink:VkPresentInfoKHR structure to supply |
| identifiers. |
| |
| Each sname:VkSwapchainKHR has a presentId associated with it. |
| This value is initially set to zero when the sname:VkSwapchainKHR is |
| created. |
| |
| When a sname:VkPresentIdKHR structure with a non-NULL pname:pPresentIds is |
| included in the pname:pNext chain of a slink:VkPresentInfoKHR structure, |
| each pname:pSwapchains entry has a presentId associated in the |
| pname:pPresentIds array at the same index as the swapchain in the |
| pname: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. |
| |
| There is no requirement for any precise timing relationship between the |
| presentation of the image to the user and the update of the presentId value, |
| but implementations should: make this as close as possible to the |
| presentation of the first pixel in the new image to the user. |
| |
| .Valid Usage |
| **** |
| * [[VUID-VkPresentIdKHR-swapchainCount-04998]] |
| pname:swapchainCount must: be the same value as |
| sname:VkPresentInfoKHR::pname:swapchainCount, where this |
| sname:VkPresentIdKHR is in the pname:pNext chain of the |
| sname:VkPresentInfoKHR structure |
| * [[VUID-VkPresentIdKHR-presentIds-04999]] |
| Each pname:presentIds entry must: be greater than any previous |
| pname:presentIds entry passed for the associated pname:pSwapchains entry |
| **** |
| |
| include::{generated}/validity/structs/VkPresentIdKHR.txt[] |
| -- |
| |
| ifdef::VK_KHR_present_wait[] |
| include::../VK_KHR_present_wait/WaitForPresent.txt[] |
| endif::VK_KHR_present_wait[] |