100 lines
3.5 KiB
Plaintext
100 lines
3.5 KiB
Plaintext
// Copyright (c) 2014-2016 Khronos Group. This work is licensed under a
|
|
// Creative Commons Attribution 4.0 International License; see
|
|
// http://creativecommons.org/licenses/by/4.0/
|
|
|
|
vkCmdWaitEvents(3)
|
|
==================
|
|
|
|
Name
|
|
----
|
|
vkCmdWaitEvents - Wait for one or more events and insert a set of memory
|
|
|
|
C Specification
|
|
---------------
|
|
|
|
// refBegin vkCmdWaitEvents Wait for one or more events and insert a set of memory
|
|
|
|
To wait for one or more events to enter the signaled state on a device,
|
|
call:
|
|
|
|
include::../api/protos/vkCmdWaitEvents.txt[]
|
|
|
|
|
|
Parameters
|
|
----------
|
|
|
|
* pname:commandBuffer is the command buffer into which the command is
|
|
recorded.
|
|
* pname:eventCount is the length of the pname:pEvents array.
|
|
* pname:pEvents is an array of event object handles to wait on.
|
|
* pname:srcStageMask (see <<synchronization-pipeline-stage-flags>>) is the
|
|
bitwise OR of the pipeline stages used to signal the event object
|
|
handles in pname:pEvents.
|
|
* pname:dstStageMask is the pipeline stages at which the wait will occur.
|
|
* pname:pMemoryBarriers is a pointer to an array of
|
|
pname:memoryBarrierCount sname:VkMemoryBarrier structures.
|
|
* pname:pBufferMemoryBarriers is a pointer to an array of
|
|
pname:bufferMemoryBarrierCount sname:VkBufferMemoryBarrier structures.
|
|
* pname:pImageMemoryBarriers is a pointer to an array of
|
|
pname:imageMemoryBarrierCount sname:VkImageMemoryBarrier structures. See
|
|
<<synchronization-memory-barriers>> for more details about memory
|
|
barriers.
|
|
|
|
|
|
Description
|
|
-----------
|
|
|
|
fname:vkCmdWaitEvents waits for events set by either fname:vkSetEvent or
|
|
fname:vkCmdSetEvent to become signaled. Logically, it has three phases:
|
|
|
|
. Wait at the pipeline stages specified by pname:dstStageMask (see
|
|
<<synchronization-pipeline-stage-flags>>) until the pname:eventCount
|
|
event objects specified by pname:pEvents become signaled.
|
|
Implementations may: wait for each event object to become signaled
|
|
in sequence (starting with the first event object in pname:pEvents,
|
|
and ending with the last), or wait for all of the event objects to
|
|
become signaled at the same time.
|
|
. Execute the memory barriers specified by pname:pMemoryBarriers,
|
|
pname:pBufferMemoryBarriers and pname:pImageMemoryBarriers (see
|
|
<<synchronization-memory-barriers>>).
|
|
. Resume execution of pipeline stages specified by pname:dstStageMask
|
|
|
|
Implementations may: not execute commands in a pipelined manner, so
|
|
fname:vkCmdWaitEvents may: not observe the results of a subsequent
|
|
fname:vkCmdSetEvent or fname:vkCmdResetEvent command, even if the stages in
|
|
pname:dstStageMask occur after the stages in pname:srcStageMask.
|
|
|
|
Commands that update the state of events in different pipeline stages
|
|
may: execute out of order, unless the ordering is enforced by execution
|
|
dependencies.
|
|
|
|
[NOTE]
|
|
.Note
|
|
====
|
|
Applications should: be careful to avoid race conditions when using
|
|
events. For example, an event should: only be reset if no
|
|
fname:vkCmdWaitEvents command is executing that waits upon that event.
|
|
====
|
|
|
|
include::../validity/protos/vkCmdWaitEvents.txt[]
|
|
|
|
|
|
See Also
|
|
--------
|
|
|
|
slink:VkBufferMemoryBarrier, slink:VkCommandBuffer, slink:VkEvent, slink:VkImageMemoryBarrier, slink:VkMemoryBarrier, elink:VkPipelineStageFlags
|
|
|
|
|
|
Document Notes
|
|
--------------
|
|
|
|
For more information, see the Vulkan Specification at URL
|
|
|
|
https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#vkCmdWaitEvents
|
|
|
|
This page is extracted from the Vulkan Specification.
|
|
Fixes and changes should be made to the Specification,not directly.
|
|
|
|
include::footer.txt[]
|
|
|