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

Method ApplySingleBufferBarrier

layers/sync/sync_op.cpp:411–426  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

409}
410
411void SyncOpPipelineBarrier::ApplySingleBufferBarrier(CommandExecutionContext& exec_context, const SyncBufferBarrier& buffer_barrier,
412 const SyncBarrier& exec_dep_barrier) const {
413 AccessContext& access_context = exec_context.GetCurrentAccessContext();
414 const QueueId queue_id = exec_context.GetQueueId();
415
416 if (SimpleBinding(*buffer_barrier.buffer)) {
417 const BarrierScope barrier_scope(buffer_barrier.barrier, queue_id);
418 ApplySingleBufferBarrierFunctor apply_barrier(access_context, barrier_scope, buffer_barrier.barrier);
419
420 const VkDeviceSize base_address = ResourceBaseAddress(*buffer_barrier.buffer);
421 const AccessRange range = buffer_barrier.range + base_address;
422
423 access_context.UpdateMemoryAccessState(apply_barrier, range);
424 }
425 access_context.RegisterGlobalBarrier(exec_dep_barrier, queue_id);
426}
427
428void SyncOpPipelineBarrier::ApplySingleImageBarrier(CommandExecutionContext& exec_context, const SyncImageBarrier& image_barrier,
429 const SyncBarrier& exec_dep_barrier, const ResourceUsageTag exec_tag) const {

Callers

nothing calls this directly

Calls 5

SimpleBindingFunction · 0.85
ResourceBaseAddressFunction · 0.85
RegisterGlobalBarrierMethod · 0.80
GetQueueIdMethod · 0.45

Tested by

no test coverage detected