# vkGetDeviceQueue(3) Manual Page

## Name

vkGetDeviceQueue - Get a queue handle from a device

## C Specification

To retrieve a handle to a VkQueue object, call:

    void vkGetDeviceQueue(
        VkDevice                                    device,
        uint32_t                                    queueFamilyIndex,
        uint32_t                                    queueIndex,
        VkQueue*                                    pQueue);

## Parameters

- `device` is the logical device that owns the queue.

- `queueFamilyIndex` is the index of the queue family to which the queue belongs.

- `queueIndex` is the index within this queue family of the queue to retrieve.

- `pQueue` is a pointer to a VkQueue object that will be filled with the handle for the requested queue.

## Description

`vkGetDeviceQueue` must only be used to get queues that were created with the `flags` parameter of `VkDeviceQueueCreateInfo` set to zero. To get queues that were created with a non-zero `flags` parameter use vkGetDeviceQueue2.

Valid Usage

- `queueFamilyIndex` must be one of the queue family indices specified when `device` was created, via the `VkDeviceQueueCreateInfo` structure

- `queueIndex` must be less than the number of queues created for the specified queue family index when `device` was created, via the `queueCount` member of the `VkDeviceQueueCreateInfo` structure

- VkDeviceQueueCreateInfo::`flags` must have been set to zero when `device` was created

Valid Usage (Implicit)

- `device` must be a valid VkDevice handle

- `pQueue` must be a valid pointer to a VkQueue handle

## See Also

VkDevice, 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 (c) 2014-2020 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.