vkQueueWaitIdle(3)

# vkQueueWaitIdle(3) Manual Page

## Name

vkQueueWaitIdle - Wait for a queue to become idle

## C Specification

To wait on the host for the completion of outstanding queue operations for a given queue, call:

    // Provided by VK_VERSION_1_0
    VkResult vkQueueWaitIdle(
        VkQueue                                     queue);

## Parameters

- `queue` is the queue on which to wait.

## Description

`vkQueueWaitIdle` is equivalent to having submitted a valid fence to every previously executed queue submission command that accepts a fence, then waiting for all of those fences to signal using vkWaitForFences with an infinite timeout and `waitAll` set to VK_TRUE.

Note | Even though vkQueuePresentKHR does not have a fence parameter, it does accept a fence through VkSwapchainPresentFenceInfoEXT.

Valid Usage (Implicit)

- VUID-vkQueueWaitIdle-queue-parameter
  `queue` must be a valid VkQueue handle

Host Synchronization

- Host access to `queue` must be externally synchronized if it was not created with VK_DEVICE_QUEUE_CREATE_INTERNALLY_SYNCHRONIZED_BIT_KHR

Command Properties

Command Buffer Levels | Render Pass Scope | Video Coding Scope | Supported Queue Types | Command Type
--- | --- | --- | --- | ---
- | - | - | Any | -

Return Codes

On success, this command returns

  - VK_SUCCESS

On failure, this command returns

  - VK_ERROR_DEVICE_LOST

  - VK_ERROR_OUT_OF_DEVICE_MEMORY

  - VK_ERROR_OUT_OF_HOST_MEMORY

  - VK_ERROR_UNKNOWN

  - VK_ERROR_VALIDATION_FAILED

## See Also

VK_VERSION_1_0, VkQueue

## 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

Copyright 2014-2026 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0