| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Graphics.Vulkan.Core10.Queue
- newtype VkPipelineStageFlagBits = VkPipelineStageFlagBits VkFlags
- pattern VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT :: VkPipelineStageFlagBits
- pattern VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT :: VkPipelineStageFlagBits
- pattern VK_PIPELINE_STAGE_VERTEX_INPUT_BIT :: VkPipelineStageFlagBits
- pattern VK_PIPELINE_STAGE_VERTEX_SHADER_BIT :: VkPipelineStageFlagBits
- pattern VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT :: VkPipelineStageFlagBits
- pattern VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT :: VkPipelineStageFlagBits
- pattern VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT :: VkPipelineStageFlagBits
- pattern VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT :: VkPipelineStageFlagBits
- pattern VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT :: VkPipelineStageFlagBits
- pattern VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT :: VkPipelineStageFlagBits
- pattern VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT :: VkPipelineStageFlagBits
- pattern VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT :: VkPipelineStageFlagBits
- pattern VK_PIPELINE_STAGE_TRANSFER_BIT :: VkPipelineStageFlagBits
- pattern VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT :: VkPipelineStageFlagBits
- pattern VK_PIPELINE_STAGE_HOST_BIT :: VkPipelineStageFlagBits
- pattern VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT :: VkPipelineStageFlagBits
- pattern VK_PIPELINE_STAGE_ALL_COMMANDS_BIT :: VkPipelineStageFlagBits
- type VkQueue = Ptr VkQueue_T
- type VkCommandBuffer = Ptr VkCommandBuffer_T
- type VkFence = Ptr VkFence_T
- type VkSemaphore = Ptr VkSemaphore_T
- vkGetDeviceQueue :: ("device" ::: VkDevice) -> ("queueFamilyIndex" ::: Word32) -> ("queueIndex" ::: Word32) -> ("pQueue" ::: Ptr VkQueue) -> IO ()
- vkQueueSubmit :: ("queue" ::: VkQueue) -> ("submitCount" ::: Word32) -> ("pSubmits" ::: Ptr VkSubmitInfo) -> ("fence" ::: VkFence) -> IO VkResult
- vkQueueWaitIdle :: ("queue" ::: VkQueue) -> IO VkResult
- vkDeviceWaitIdle :: ("device" ::: VkDevice) -> IO VkResult
- data VkSubmitInfo = VkSubmitInfo {}
- type VkPipelineStageFlags = VkPipelineStageFlagBits
Documentation
newtype VkPipelineStageFlagBits Source #
VkPipelineStageFlagBits - Bitmask specifying pipeline stages
Description
VK_PIPELINE_STAGE_TOP_OF_PIPE_BITspecifies the stage of the pipeline where any commands are initially received by the queue.
VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVXspecifies the stage of the pipeline where device-side generation of commands viavkCmdProcessCommandsNVXis handled.VK_PIPELINE_STAGE_DRAW_INDIRECT_BITspecifies the stage of the pipeline where Draw/DispatchIndirect data structures are consumed. This stage also includes reading commands written byvkCmdProcessCommandsNVX.VK_PIPELINE_STAGE_VERTEX_INPUT_BITspecifies the stage of the pipeline where vertex and index buffers are consumed.VK_PIPELINE_STAGE_VERTEX_SHADER_BITspecifies the vertex shader stage.VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BITspecifies the tessellation control shader stage.VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BITspecifies the tessellation evaluation shader stage.VK_PIPELINE_STAGE_GEOMETRY_SHADER_BITspecifies the geometry shader stage.VK_PIPELINE_STAGE_FRAGMENT_SHADER_BITspecifies the fragment shader stage.VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BITspecifies the stage of the pipeline where early fragment tests (depth and stencil tests before fragment shading) are performed. This stage also includes subpass load operations for framebuffer attachments with a depth/stencil format.VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BITspecifies the stage of the pipeline where late fragment tests (depth and stencil tests after fragment shading) are performed. This stage also includes subpass store operations for framebuffer attachments with a depth/stencil format.VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BITspecifies the stage of the pipeline after blending where the final color values are output from the pipeline. This stage also includes subpass load and store operations and multisample resolve operations for framebuffer attachments with a color format.VK_PIPELINE_STAGE_TRANSFER_BITspecifies the execution of copy commands. This includes the operations resulting from all copy commands, clear commands (with the exception ofvkCmdClearAttachments), andvkCmdCopyQueryPoolResults.VK_PIPELINE_STAGE_COMPUTE_SHADER_BITspecifies the execution of a compute shader.VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BITspecifies the final stage in the pipeline where operations generated by all commands complete execution.VK_PIPELINE_STAGE_HOST_BITspecifies a pseudo-stage indicating execution on the host of reads/writes of device memory. This stage is not invoked by any commands recorded in a command buffer.VK_PIPELINE_STAGE_ALL_GRAPHICS_BITspecifies the execution of all graphics pipeline stages, and is equivalent to the logical OR of:VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT
VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT
VK_PIPELINE_STAGE_VERTEX_INPUT_BIT
VK_PIPELINE_STAGE_VERTEX_SHADER_BIT
VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT
VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT
VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT
VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT
VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT
VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT
VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT
VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT
VK_PIPELINE_STAGE_ALL_COMMANDS_BITis equivalent to the logical OR of every other pipeline stage flag that is supported on the queue it is used with.
Note
An execution dependency with only VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT
in the destination stage mask will only prevent that stage from
executing in subsequently submitted commands. As this stage does not
perform any actual execution, this is not observable - in effect, it
does not delay processing of subsequent commands. Similarly an execution
dependency with only VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT in the source
stage mask will effectively not wait for any prior commands to complete.
When defining a memory dependency, using only
VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT or
VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT would never make any accesses
available and/or visible because these stages do not access memory.
VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT and
VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT are useful for accomplishing layout
transitions and queue ownership operations when the required execution
dependency is satisfied by other means - for example, semaphore
operations between queues.
See Also
VkPipelineStageFlags,
vkCmdWriteBufferMarkerAMD,
vkCmdWriteTimestamp
Constructors
| VkPipelineStageFlagBits VkFlags |
pattern VK_PIPELINE_STAGE_HOST_BIT :: VkPipelineStageFlagBits Source #
type VkQueue = Ptr VkQueue_T Source #
VkQueue - Opaque handle to a queue object
Description
See Also
vkGetDeviceQueue,
vkGetDeviceQueue2,
vkQueueBeginDebugUtilsLabelEXT,
vkQueueBindSparse,
vkQueueEndDebugUtilsLabelEXT,
vkQueueInsertDebugUtilsLabelEXT,
vkQueuePresentKHR,
vkQueueSubmit, vkQueueWaitIdle
type VkCommandBuffer = Ptr VkCommandBuffer_T Source #
VkCommandBuffer - Opaque handle to a command buffer object
Description
See Also
VkCmdProcessCommandsInfoNVX,
VkSubmitInfo,
vkAllocateCommandBuffers,
vkBeginCommandBuffer,
vkCmdBeginDebugUtilsLabelEXT,
vkCmdBeginQuery,
vkCmdBeginRenderPass,
vkCmdBindDescriptorSets,
vkCmdBindIndexBuffer,
vkCmdBindPipeline,
vkCmdBindVertexBuffers,
vkCmdBlitImage,
vkCmdClearAttachments,
vkCmdClearColorImage,
vkCmdClearDepthStencilImage,
vkCmdCopyBuffer,
vkCmdCopyBufferToImage,
vkCmdCopyImage,
vkCmdCopyImageToBuffer,
vkCmdCopyQueryPoolResults,
vkCmdDebugMarkerBeginEXT,
vkCmdDebugMarkerEndEXT,
vkCmdDebugMarkerInsertEXT,
vkCmdDispatch,
vkCmdDispatchBase,
vkCmdDispatchBaseKHR,
vkCmdDispatchIndirect,
vkCmdDraw,
vkCmdDrawIndexed,
vkCmdDrawIndexedIndirect,
vkCmdDrawIndexedIndirectCountAMD,
vkCmdDrawIndirect,
vkCmdDrawIndirectCountAMD,
vkCmdEndDebugUtilsLabelEXT,
vkCmdEndQuery,
vkCmdEndRenderPass,
vkCmdExecuteCommands,
vkCmdFillBuffer,
vkCmdInsertDebugUtilsLabelEXT,
vkCmdNextSubpass,
vkCmdPipelineBarrier,
vkCmdProcessCommandsNVX,
vkCmdPushConstants,
vkCmdPushDescriptorSetKHR,
vkCmdPushDescriptorSetWithTemplateKHR,
vkCmdReserveSpaceForCommandsNVX,
vkCmdResetEvent,
vkCmdResetQueryPool,
vkCmdResolveImage,
vkCmdSetBlendConstants,
vkCmdSetDepthBias,
vkCmdSetDepthBounds,
vkCmdSetDeviceMask,
vkCmdSetDeviceMaskKHR,
vkCmdSetDiscardRectangleEXT,
vkCmdSetEvent,
vkCmdSetLineWidth,
vkCmdSetSampleLocationsEXT,
vkCmdSetScissor,
vkCmdSetStencilCompareMask,
vkCmdSetStencilReference,
vkCmdSetStencilWriteMask,
vkCmdSetViewport,
vkCmdSetViewportWScalingNV,
vkCmdUpdateBuffer,
vkCmdWaitEvents,
vkCmdWriteBufferMarkerAMD,
vkCmdWriteTimestamp,
vkEndCommandBuffer,
vkFreeCommandBuffers,
vkResetCommandBuffer
type VkFence = Ptr VkFence_T Source #
VkFence - Opaque handle to a fence object
Description
See Also
VkAcquireNextImageInfoKHR,
VkFenceGetFdInfoKHR,
VkFenceGetWin32HandleInfoKHR,
VkImportFenceFdInfoKHR,
VkImportFenceWin32HandleInfoKHR,
vkAcquireNextImageKHR,
vkCreateFence,
vkDestroyFence,
vkGetFenceStatus,
vkQueueBindSparse,
vkQueueSubmit,
vkRegisterDeviceEventEXT,
vkRegisterDisplayEventEXT,
vkResetFences,
vkWaitForFences
type VkSemaphore = Ptr VkSemaphore_T Source #
VkSemaphore - Opaque handle to a semaphore object
Description
See Also
VkAcquireNextImageInfoKHR,
VkBindSparseInfo,
VkImportSemaphoreFdInfoKHR,
VkImportSemaphoreWin32HandleInfoKHR,
VkPresentInfoKHR,
VkSemaphoreGetFdInfoKHR,
VkSemaphoreGetWin32HandleInfoKHR,
VkSubmitInfo,
vkAcquireNextImageKHR,
vkCreateSemaphore,
vkDestroySemaphore
vkGetDeviceQueue :: ("device" ::: VkDevice) -> ("queueFamilyIndex" ::: Word32) -> ("queueIndex" ::: Word32) -> ("pQueue" ::: Ptr VkQueue) -> IO () Source #
vkGetDeviceQueue - Get a queue handle from a device
Parameters
deviceis the logical device that owns the queue.
queueFamilyIndexis the index of the queue family to which the queue belongs.queueIndexis the index within this queue family of the queue to retrieve.pQueueis a pointer to aVkQueueobject that will be filled with the handle for the requested queue.
Description
Valid Usage
queueFamilyIndexmust be one of the queue family indices specified whendevicewas created, via theVkDeviceQueueCreateInfostructure
queueIndexmust be less than the number of queues created for the specified queue family index whendevicewas created, via thequeueCountmember of theVkDeviceQueueCreateInfostructureVkDeviceQueueCreateInfo::flagsmust have been set to zero whendevicewas created
Valid Usage (Implicit)
devicemust be a validVkDevicehandle
pQueuemust be a valid pointer to aVkQueuehandle
See Also
vkQueueSubmit :: ("queue" ::: VkQueue) -> ("submitCount" ::: Word32) -> ("pSubmits" ::: Ptr VkSubmitInfo) -> ("fence" ::: VkFence) -> IO VkResult Source #
vkQueueSubmit - Submits a sequence of semaphores or command buffers to a queue
Parameters
queueis the queue that the command buffers will be submitted to.
submitCountis the number of elements in thepSubmitsarray.pSubmitsis a pointer to an array ofVkSubmitInfostructures, each specifying a command buffer submission batch.fenceis an optional handle to a fence to be signaled once all submitted command buffers have completed execution. Iffenceis notVK_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. Batches begin execution in the order they
appear in pSubmits, but may complete out of order.
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.
The order that batches appear in pSubmits is used to determine
submission order,
and thus all the
implicit ordering guarantees
that respect it. Other than these implicit ordering guarantees and any
explicit synchronization primitives,
these batches may overlap or otherwise execute out of order.
If any command buffer submitted to this queue is in the
executable state, it is
moved to the
pending state. Once
execution of all submissions of a command buffer complete, it moves from
the pending state, back
to the executable state.
If a command buffer was recorded with the
VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT flag, it instead moves
back to the
invalid state.
If vkQueueSubmit fails, it may return VK_ERROR_OUT_OF_HOST_MEMORY
or VK_ERROR_OUT_OF_DEVICE_MEMORY. If it does, the implementation
must ensure that the state and contents of any resources or
synchronization primitives referenced by the submitted command buffers
and any semaphores referenced by pSubmits is unaffected by the call or
its failure. If vkQueueSubmit fails in such a way that the
implementation is unable to make that guarantee, the implementation
must return VK_ERROR_DEVICE_LOST. See
Lost Device.
Valid Usage
- If
fenceis notVK_NULL_HANDLE,fencemust be unsignaled
- If
fenceis notVK_NULL_HANDLE,fencemust not be associated with any other queue command that has not yet completed execution on that queue - Any calls to
vkCmdSetEvent,vkCmdResetEventorvkCmdWaitEventsthat have been recorded into any of the command buffer elements of thepCommandBuffersmember of any element ofpSubmits, must not reference anyVkEventthat is referenced by any of those commands in a command buffer that has been submitted to another queue and is still in the pending state. - Any stage flag included in any element of the
pWaitDstStageMaskmember of any element ofpSubmitsmust be a pipeline stage supported by one of the capabilities ofqueue, as specified in the table of supported pipeline stages. - Each element of the
pSignalSemaphoresmember of any element ofpSubmitsmust be unsignaled when the semaphore signal operation it defines is executed on the device - When a semaphore unsignal operation defined by any element of the
pWaitSemaphoresmember of any element ofpSubmitsexecutes onqueue, no other queue must be waiting on the same semaphore. - All elements of the
pWaitSemaphoresmember of all elements ofpSubmitsmust be semaphores that are signaled, or have semaphore signal operations previously submitted for execution. - Each element of the
pCommandBuffersmember of each element ofpSubmitsmust be in the pending or executable state. - If any element of the
pCommandBuffersmember of any element ofpSubmitswas not recorded with theVK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT, it must not be in the pending state. - Any
secondary command buffers recorded
into any element of the
pCommandBuffersmember of any element ofpSubmitsmust be in the pending or executable state. - If any
secondary command buffers recorded
into any element of the
pCommandBuffersmember of any element ofpSubmitswas not recorded with theVK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT, it must not be in the pending state. - Each element of the
pCommandBuffersmember of each element ofpSubmitsmust have been allocated from aVkCommandPoolthat was created for the same queue familyqueuebelongs to.
Valid Usage (Implicit)
queuemust be a validVkQueuehandle
- If
submitCountis not0,pSubmitsmust be a valid pointer to an array ofsubmitCountvalidVkSubmitInfostructures - If
fenceis notVK_NULL_HANDLE,fencemust be a validVkFencehandle - Both of
fence, andqueuethat are valid handles must have been created, allocated, or retrieved from the sameVkDevice
Host Synchronization
- Host access to
queuemust be externally synchronized
- Host access to
pSubmits[].pWaitSemaphores[] must be externally synchronized - Host access to
pSubmits[].pSignalSemaphores[] must be externally synchronized - Host access to
fencemust be externally synchronized
Command Properties
+-----------------+-----------------+-----------------+-----------------+ | <#VkCommandBuff | <#vkCmdBeginRen | <#VkQueueFlagBi | <#synchronizati | | erLevel Command | derPass Render | ts Supported Qu | on-pipeline-sta | | Buffer Levels> | Pass Scope> | eue Types> | ges-types Pipel | | | | | ine Type> | +=================+=================+=================+=================+ | - | - | Any | - | +-----------------+-----------------+-----------------+-----------------+
Return Codes
- Success
- -
VK_SUCCESS
- Failure
- -
VK_ERROR_OUT_OF_HOST_MEMORYVK_ERROR_OUT_OF_DEVICE_MEMORY
VK_ERROR_DEVICE_LOST
See Also
vkQueueWaitIdle :: ("queue" ::: VkQueue) -> IO VkResult Source #
vkQueueWaitIdle - Wait for a queue to become idle
Parameters
queueis the queue on which to wait.
Description
vkQueueWaitIdle is equivalent to submitting a fence to a queue and
waiting with an infinite timeout for that fence to signal.
Valid Usage (Implicit)
queuemust be a validVkQueuehandle
Command Properties
+-----------------+-----------------+-----------------+-----------------+ | <#VkCommandBuff | <#vkCmdBeginRen | <#VkQueueFlagBi | <#synchronizati | | erLevel Command | derPass Render | ts Supported Qu | on-pipeline-sta | | Buffer Levels> | Pass Scope> | eue Types> | ges-types Pipel | | | | | ine Type> | +=================+=================+=================+=================+ | - | - | Any | - | +-----------------+-----------------+-----------------+-----------------+
Return Codes
- Success
- -
VK_SUCCESS
- Failure
- -
VK_ERROR_OUT_OF_HOST_MEMORYVK_ERROR_OUT_OF_DEVICE_MEMORY
VK_ERROR_DEVICE_LOST
See Also
vkDeviceWaitIdle :: ("device" ::: VkDevice) -> IO VkResult Source #
vkDeviceWaitIdle - Wait for a device to become idle
Parameters
deviceis the logical device to idle.
Description
vkDeviceWaitIdle is equivalent to calling vkQueueWaitIdle for all
queues owned by device.
Valid Usage (Implicit)
devicemust be a validVkDevicehandle
Host Synchronization
- Host access to all
VkQueueobjects created fromdevicemust be externally synchronized
Return Codes
- Success
- -
VK_SUCCESS
- Failure
- -
VK_ERROR_OUT_OF_HOST_MEMORYVK_ERROR_OUT_OF_DEVICE_MEMORY
VK_ERROR_DEVICE_LOST
See Also
data VkSubmitInfo Source #
VkSubmitInfo - Structure specifying a queue submit operation
Description
The order that command buffers appear in pCommandBuffers is used to
determine
submission order,
and thus all the
implicit ordering guarantees
that respect it. Other than these implicit ordering guarantees and any
explicit synchronization primitives,
these command buffers may overlap or otherwise execute out of order.
Valid Usage
- Each element of
pCommandBuffersmust not have been allocated withVK_COMMAND_BUFFER_LEVEL_SECONDARY
- If the
geometry shaders
feature is not enabled, each element of
pWaitDstStageMaskmust not containVK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT - If the
tessellation shaders
feature is not enabled, each element of
pWaitDstStageMaskmust not containVK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BITorVK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT - Each element of
pWaitDstStageMaskmust not includeVK_PIPELINE_STAGE_HOST_BIT.
Valid Usage (Implicit)
sTypemust beVK_STRUCTURE_TYPE_SUBMIT_INFO
- Each
pNextmember of any structure (including this one) in thepNextchain must be eitherNULLor a pointer to a valid instance ofVkD3D12FenceSubmitInfoKHR,VkDeviceGroupSubmitInfo,VkProtectedSubmitInfo,VkWin32KeyedMutexAcquireReleaseInfoKHR, orVkWin32KeyedMutexAcquireReleaseInfoNV - Each
sTypemember in thepNextchain must be unique - If
waitSemaphoreCountis not0,pWaitSemaphoresmust be a valid pointer to an array ofwaitSemaphoreCountvalidVkSemaphorehandles - If
waitSemaphoreCountis not0,pWaitDstStageMaskmust be a valid pointer to an array ofwaitSemaphoreCountvalid combinations ofVkPipelineStageFlagBitsvalues - Each element of
pWaitDstStageMaskmust not be0 - If
commandBufferCountis not0,pCommandBuffersmust be a valid pointer to an array ofcommandBufferCountvalidVkCommandBufferhandles - If
signalSemaphoreCountis not0,pSignalSemaphoresmust be a valid pointer to an array ofsignalSemaphoreCountvalidVkSemaphorehandles - Each of the elements of
pCommandBuffers, the elements ofpSignalSemaphores, and the elements ofpWaitSemaphoresthat are valid handles must have been created, allocated, or retrieved from the sameVkDevice
See Also
VkCommandBuffer, VkPipelineStageFlags, VkSemaphore,
VkStructureType, vkQueueSubmit
Constructors
| VkSubmitInfo | |
Fields
| |
Instances
type VkPipelineStageFlags = VkPipelineStageFlagBits Source #
VkPipelineStageFlags - Bitmask of VkPipelineStageFlagBits
Description
VkPipelineStageFlags is a bitmask type for setting a mask of zero or
more VkPipelineStageFlagBits.
See Also
VkPipelineStageFlagBits, VkSubmitInfo,
VkSubpassDependency,
vkCmdPipelineBarrier,
vkCmdResetEvent,
vkCmdSetEvent,
vkCmdWaitEvents