C Specification

The requested counters become active when the first presentation command for the associated swapchain is processed by the presentation engine. To query the value of an active counter, use:

// Provided by VK_EXT_display_control
VkResult vkGetSwapchainCounterEXT(
    VkDevice                                    device,
    VkSwapchainKHR                              swapchain,
    VkSurfaceCounterFlagBitsEXT                 counter,
    uint64_t*                                   pCounterValue);


  • device is the VkDevice associated with swapchain.

  • swapchain is the swapchain from which to query the counter value.

  • counter is a VkSurfaceCounterFlagBitsEXT value specifying the counter to query.

  • pCounterValue will return the current value of the counter.


If a counter is not available because the swapchain is out of date, the implementation may return VK_ERROR_OUT_OF_DATE_KHR.

If VkPhysicalDeviceVulkanSC10Properties::deviceNoDynamicHostAllocations is VK_TRUE, vkGetSwapchainCounterEXT must not return VK_ERROR_OUT_OF_HOST_MEMORY.

Valid Usage
  • VUID-vkGetSwapchainCounterEXT-swapchain-01245
    One or more present commands on swapchain must have been processed by the presentation engine

Valid Usage (Implicit)
  • VUID-vkGetSwapchainCounterEXT-device-parameter
    device must be a valid VkDevice handle

  • VUID-vkGetSwapchainCounterEXT-swapchain-parameter
    swapchain must be a valid VkSwapchainKHR handle

  • VUID-vkGetSwapchainCounterEXT-counter-parameter
    counter must be a valid VkSurfaceCounterFlagBitsEXT value

  • VUID-vkGetSwapchainCounterEXT-pCounterValue-parameter
    pCounterValue must be a valid pointer to a uint64_t value

  • VUID-vkGetSwapchainCounterEXT-swapchain-parent
    swapchain must have been created, allocated, or retrieved from device

Return Codes
On success, this command returns

On failure, this command returns



See Also

Document Notes

For more information, see the Vulkan Specification

This page is extracted from the Vulkan Specification. Fixes and changes should be made to the Specification, not directly.

Copyright 2014-2023 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0