VKPIPELINESTAGEFLAGS(3)

NAME
VkPipelineStageFlags - Pipeline stage identifiers.

C SPECIFICATION

    typedef enum VkPipelineStageFlagBits {
        VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0x00000001,
        VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 0x00000002,
        VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 0x00000004,
        VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 0x00000008,
        VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010,
        VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020,
        VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 0x00000040,
        VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 0x00000080,
        VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 0x00000100,
        VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 0x00000200,
        VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400,
        VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 0x00000800,
        VK_PIPELINE_STAGE_TRANSFER_BIT = 0x00001000,
        VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = 0x00002000,
        VK_PIPELINE_STAGE_HOST_BIT = 0x00004000,
        VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00008000,
        VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000,
    } VkPipelineStageFlagBits;

CONSTANTS

VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT
    Stage of the pipeline where commands are initially received by the queue.

VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT
    Stage of the pipeline where Draw/DispatchIndirect data structures are consumed.

VK_PIPELINE_STAGE_VERTEX_INPUT_BIT
    Stage of the pipeline where vertex and index buffers are consumed.

VK_PIPELINE_STAGE_VERTEX_SHADER_BIT
    Vertex shader stage.

VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT
    Tessellation control shader stage.

VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT
    Tessellation evaluation shader stage.

VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT
    Geometry shader stage.

VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT
    Fragment shader stage.

VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT
    Stage of the pipeline where early fragment tests (depth/stencil test before fragment shading) are performed.

VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT
    Stage of the pipeline where late fragment tests (depth/stencil test after fragment shading) are performed.

VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT
    Stage of the pipeline after blending where the final color values are output from the pipeline. Note that this does not necessarily indicate that the values have been committed to memory.

VK_PIPELINE_STAGE_TRANSFER_BIT
    Execution of copy commands. This includes the operations resulting from all transfer commands, e.g. vkCmdCopyImage, vkCmdCopyBuffer, vkCmdBlitImage, vkCmdResolveImage, vkCmdClearColorImage, etc.

VK_PIPELINE_STAGE_HOST_BIT
    Indicates execution on the Host of reads/writes of device memory.

DESCRIPTION

The pipeline stages are used to describe which operations must be synchronized for the purposes of execution dependencies in pipeline barriers, event signal/wait, and subpass dependencies. Many of the bits describe stages of the graphics pipeline, but there are also pseudo-stages for compute work, copy commands, and CPU production/consumption of data.

For the commands vkCmdSetEvent and vkCmdResetEvent the event object is set and reset, respectively, after the specified pipeline stages have completed executing prior commands. Some implementations may not be able to signal at as fine a grain as the bits in the bitfield, in which case the signaling may occur after additional stages have completed executing prior commands.

For the command vkCmdWaitEvents, the srcStageMask should be a bitwise OR of all stageMasks used to signal the events, as described above. If some events were signaled with vkSetEvent, then this should include VK_PIPELINE_STAGE_HOST_BIT. dstStageMask indicates the set of pipeline stages that should not begin executing subsequent commands until the events are signaled. Some implementations may not be able to wait at as fine a grain as the bits in the bitfield, in which case the waiting may occur at an earlier stage in the pipeline.

For the command vkCmdPipelineBarrier, writes as described by outputMask that were written by pipeline stages in srcStageMask prior to the barrier are made visible to reads as described by inputMask in pipeline stages in dstStageMask subsequent to the barrier.

VK_PIPELINE_STAGE_HOST_BIT cannot be used for vkCmdSetEvent, vkCmdResetEvent, or vkCmdPipelineBarrier.

SEE ALSO

vkCmdSetEvent, vkCmdResetEvent, vkCmdWaitEvents, vkCmdPipelineBarrier

COPYRIGHT

Copyright © 2014-2016 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999. http://opencontent.org/openpub/.

AUTHOR

Khronos Group
    Author.