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

Method UpdateAccessState

layers/sync/sync_access_context.cpp:531–551  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

529}
530
531void AccessContext::UpdateAccessState(const vvl::Buffer& buffer, SyncAccessIndex current_usage, const AccessRange& range,
532 ResourceUsageTagEx tag_ex, SyncFlags flags) {
533 assert(range.valid());
534 assert(!finalized_);
535
536 if (current_usage == SYNC_ACCESS_INDEX_NONE) {
537 return;
538 }
539 if (!SimpleBinding(buffer)) {
540 return;
541 }
542 if (range.empty()) {
543 return;
544 }
545
546 const VkDeviceSize base_address = ResourceBaseAddress(buffer);
547 const AccessRange buffer_range = range + base_address;
548
549 auto pos = access_state_map_.LowerBound(buffer_range.begin);
550 DoUpdateAccessState(pos, buffer_range, current_usage, AttachmentAccess::NonAttachment(), tag_ex, flags);
551}
552
553void AccessContext::UpdateAccessState(ImageRangeGen& range_gen, SyncAccessIndex current_usage, ResourceUsageTagEx tag_ex,
554 SyncFlags flags) {

Calls 6

SimpleBindingFunction · 0.85
ResourceBaseAddressFunction · 0.85
validMethod · 0.80
LowerBoundMethod · 0.80
non_emptyMethod · 0.80
emptyMethod · 0.45

Tested by

no test coverage detected