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

Function AccessScope

layers/sync/sync_barrier.cpp:71–86  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

69}
70
71static SyncAccessFlags AccessScope(const SyncAccessFlags& stage_scope, VkAccessFlags2 accesses) {
72 SyncAccessFlags access_scope = stage_scope & AccessScopeByAccess(accesses);
73
74 // Special case. AS copy operations (e.g., vkCmdCopyAccelerationStructureKHR) can be synchronized using
75 // the ACCELERATION_STRUCTURE_COPY stage, but it's also valid to use ACCELERATION_STRUCTURE_BUILD stage.
76 // Internally, AS copy accesses are represented via ACCELERATION_STRUCTURE_COPY stage. The logic below
77 // ensures that a barrier using ACCELERATION_STRUCTURE_BUILD stage can also protect accesses on
78 // ACCELERATION_STRUCTURE_COPY stage.
79 if (access_scope[SYNC_ACCELERATION_STRUCTURE_BUILD_ACCELERATION_STRUCTURE_READ]) {
80 access_scope.set(SYNC_ACCELERATION_STRUCTURE_COPY_ACCELERATION_STRUCTURE_READ);
81 }
82 if (access_scope[SYNC_ACCELERATION_STRUCTURE_BUILD_ACCELERATION_STRUCTURE_WRITE]) {
83 access_scope.set(SYNC_ACCELERATION_STRUCTURE_COPY_ACCELERATION_STRUCTURE_WRITE);
84 }
85 return access_scope;
86}
87
88namespace syncval {
89

Callers 1

SyncBarrierMethod · 0.85

Calls 2

AccessScopeByAccessFunction · 0.85
setMethod · 0.80

Tested by

no test coverage detected