VKQUEUESUBMIT(3)

NAME
vkQueueSubmit - Submits a sequence of semaphores or command buffers to a queue.

C SPECIFICATION

To submit command buffers to a queue, call:

    VkResult vkQueueSubmit(
        VkQueue                                     queue,
        uint32_t                                    submitCount,
        const VkSubmitInfo*                         pSubmits,
        VkFence                                     fence);

PARAMETERS

    • queue is the queue that the command buffers will be submitted to.

    • submitCount is the number of elements in the pSubmits array.

    • pSubmits is a pointer to an array of VkSubmitInfo structures, each specifying a command buffer submission batch.

    • fence is an optional handle to a fence to be signaled. If fence is not VK_NULL_HANDLE, it defines a fence signal operation.

DESCRIPTION

    Note

    Submission can be a high overhead operation, and applications should attempt to batch work together into as few calls to vkQueueSubmit as possible.

vkQueueSubmit is a queue submission command, with each batch defined by an element of pSubmits as an instance of the VkSubmitInfo structure.

Fence and semaphore operations submitted with vkQueueSubmit have additional ordering constraints compared to other submission commands, with dependencies involving previous and subsequent queue operations. Information about these additional constraints can be found in the semaphore and fence sections of the synchronization chapter.

Details on the interaction of pWaitDstStageMask with synchronization are described in the semaphore wait operation section of the synchronization chapter.

VALID USAGE

    • queue must be a valid VkQueue handle

    • If submitCount is not 0, pSubmits must be a pointer to an array of submitCount valid VkSubmitInfo structures

    • If fence is not VK_NULL_HANDLE, fence must be a valid VkFence handle

    • Each of queue and fence that are valid handles must have been created, allocated or retrieved from the same VkDevice

    • If fence is not VK_NULL_HANDLE, fence must be unsignaled

    • If fence is not VK_NULL_HANDLE, fence must not be associated with any other queue command that has not yet completed execution on that queue

HOST SYNCHRONIZATION

    • Host access to queue must be externally synchronized

    • Host access to pSubmits[].pWaitSemaphores[] must be externally synchronized

    • Host access to pSubmits[].pSignalSemaphores[] must be externally synchronized

    • Host access to fence must be externally synchronized

COMMAND PROPERTIES
Command Buffer Levels | Render Pass Scope | Supported Queue Types
- | - | Any

RETURN CODES

On success, this command returns

        • VK_SUCCESS

On failure, this command returns

        • VK_ERROR_OUT_OF_HOST_MEMORY

        • VK_ERROR_OUT_OF_DEVICE_MEMORY

        • VK_ERROR_DEVICE_LOST

SEE ALSO

VkFence, VkQueue, VkSubmitInfo

DOCUMENT NOTES

For more information, see the Vulkan Specification at URL

https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#vkQueueSubmit

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

COPYRIGHT

Copyright (c) 2014-2016 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

AUTHOR

Khronos Group
    Author.