vkCmdSetEvent
To set the state of an event to signaled from a device, call:
void vkCmdSetEvent(
VkCommandBuffer commandBuffer,
VkEvent event,
VkPipelineStageFlags stageMask);
commandBufferis the command buffer into which the command is recorded.eventis the event that will be signaled.stageMaskspecifies the source stage mask used to determine the first synchronization scope.
vkCmdSetEvent behaves identically to vkCmdSetEvent2, except that
it does not define an access scope, and must only be used with
vkCmdWaitEvents, not vkCmdWaitEvents2.
Valid Usage
VUID-vkCmdSetEvent-stageMask-04090
If the geometryShader feature is not
enabled, stageMask must not contain
VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT
VUID-vkCmdSetEvent-stageMask-04091
If the tessellationShader feature
is not enabled, stageMask must not contain
VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or
VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT
VUID-vkCmdSetEvent-stageMask-04092
If the conditionalRendering
feature is not enabled, stageMask must not contain
VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT
VUID-vkCmdSetEvent-stageMask-04093
If the fragmentDensityMap feature
is not enabled, stageMask must not contain
VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-vkCmdSetEvent-stageMask-04094
If the transformFeedback feature
is not enabled, stageMask must not contain
VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT
VUID-vkCmdSetEvent-stageMask-04095
If the meshShader feature is not enabled,
stageMask must not contain
VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT
VUID-vkCmdSetEvent-stageMask-04096
If the taskShader feature is not enabled,
stageMask must not contain
VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT
VUID-vkCmdSetEvent-stageMask-07318
If neither of the shadingRateImage
or the attachmentFragmentShadingRate features are enabled,
stageMask must not contain
VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-vkCmdSetEvent-stageMask-03937
If the synchronization2 feature is
not enabled, stageMask must not be 0
VUID-vkCmdSetEvent-stageMask-07949
If neither the VK_NV_ray_tracing extension or the
rayTracingPipeline feature are
enabled, stageMask must not contain
VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR
VUID-vkCmdSetEvent-stageMask-06457
Any pipeline stage included in stageMask must be supported by the
capabilities of the queue family specified by the queueFamilyIndex
member of the VkCommandPoolCreateInfo structure that was used to
create the VkCommandPool that commandBuffer was allocated
from, as specified in the table of supported pipeline stages
VUID-vkCmdSetEvent-stageMask-01149
stageMask must not include VK_PIPELINE_STAGE_HOST_BIT
VUID-vkCmdSetEvent-commandBuffer-01152
The current device mask of commandBuffer must include exactly one
physical device
Valid Usage (Implicit)
VUID-vkCmdSetEvent-commandBuffer-parameter
commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetEvent-event-parameter
event must be a valid VkEvent handle
VUID-vkCmdSetEvent-stageMask-parameter
stageMask must be a valid combination of VkPipelineStageFlagBits values
VUID-vkCmdSetEvent-commandBuffer-recording
commandBuffer must be in the recording state
VUID-vkCmdSetEvent-commandBuffer-cmdpool
The VkCommandPool that commandBuffer was allocated from must support graphics, compute, decode, or encode operations
VUID-vkCmdSetEvent-renderpass
This command must only be called outside of a render pass instance
VUID-vkCmdSetEvent-commonparent
Both of commandBuffer, and event must have been created, allocated, or retrieved from the same VkDevice
Host Synchronization
- Host access to
commandBuffermust be externally synchronized - Host access to the
VkCommandPoolthatcommandBufferwas allocated from must be externally synchronized ::