MCPcopy Create free account
hub / github.com/KhronosGroup/Vulkan-ValidationLayers / SyncOpWaitEvents

Method SyncOpWaitEvents

layers/sync/sync_op.cpp:571–592  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

569}
570
571SyncOpWaitEvents::SyncOpWaitEvents(vvl::Func command, const SyncValidator& sync_state, VkQueueFlags queue_flags,
572 uint32_t eventCount, const VkEvent* pEvents, VkPipelineStageFlags srcStageMask,
573 VkPipelineStageFlags dstStageMask, uint32_t memoryBarrierCount,
574 const VkMemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount,
575 const VkBufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount,
576 const VkImageMemoryBarrier* pImageMemoryBarriers)
577 : SyncOpBase(command), barrier_sets_(1) {
578 auto& barrier_set = barrier_sets_[0];
579 const auto src_exec_scope = SyncExecScope::MakeSrc(queue_flags, srcStageMask);
580 const auto dst_exec_scope = SyncExecScope::MakeDst(queue_flags, dstStageMask);
581
582 barrier_set.src_exec_scope = src_exec_scope;
583 barrier_set.dst_exec_scope = dst_exec_scope;
584
585 barrier_set.MakeMemoryBarriers(src_exec_scope, dst_exec_scope, memoryBarrierCount, pMemoryBarriers);
586 barrier_set.MakeBufferMemoryBarriers(sync_state, src_exec_scope, dst_exec_scope, bufferMemoryBarrierCount,
587 pBufferMemoryBarriers);
588 barrier_set.MakeImageMemoryBarriers(sync_state, src_exec_scope, dst_exec_scope, imageMemoryBarrierCount, pImageMemoryBarriers,
589 sync_state.device_state->extensions);
590
591 MakeEventsList(sync_state, eventCount, pEvents);
592}
593
594SyncOpWaitEvents::SyncOpWaitEvents(vvl::Func command, const SyncValidator& sync_state, VkQueueFlags queue_flags,
595 uint32_t eventCount, const VkEvent* pEvents, const VkDependencyInfo* pDependencyInfo)

Callers

nothing calls this directly

Calls 4

GetExecScopesFunction · 0.85
MakeMemoryBarriersMethod · 0.80

Tested by

no test coverage detected