#include "sync/sync_utils.h"
#include "sync/sync_access_state.h"
ResourceAccessState::OrderingBarriers ResourceAccessState::kOrderingRules = …;
void ResourceAccessState::ApplyBarriers(const std::vector<SyncBarrier> &barriers, bool layout_transition) { … }
void ResourceAccessState::ApplyBarriersImmediate(const std::vector<SyncBarrier> &barriers) { … }
HazardResult ResourceAccessState::DetectHazard(const SyncStageAccessInfoType &usage_info) const { … }
HazardResult ResourceAccessState::DetectHazard(const SyncStageAccessInfoType &usage_info, const SyncOrdering ordering_rule,
QueueId queue_id) const { … }
HazardResult ResourceAccessState::DetectHazard(const SyncStageAccessInfoType &usage_info, const OrderingBarrier &ordering,
QueueId queue_id) const { … }
HazardResult ResourceAccessState::DetectHazard(const ResourceAccessState &recorded_use, QueueId queue_id,
const ResourceUsageRange &tag_range) const { … }
HazardResult ResourceAccessState::DetectAsyncHazard(const SyncStageAccessInfoType &usage_info, const ResourceUsageTag start_tag,
QueueId queue_id) const { … }
HazardResult ResourceAccessState::DetectAsyncHazard(const ResourceAccessState &recorded_use, const ResourceUsageRange &tag_range,
ResourceUsageTag start_tag, QueueId queue_id) const { … }
HazardResult ResourceAccessState::DetectBarrierHazard(const SyncStageAccessInfoType &usage_info, QueueId queue_id,
VkPipelineStageFlags2KHR src_exec_scope,
const SyncStageAccessFlags &src_access_scope) const { … }
HazardResult ResourceAccessState::DetectBarrierHazard(const SyncStageAccessInfoType &usage_info,
const ResourceAccessState &scope_state,
VkPipelineStageFlags2KHR src_exec_scope,
const SyncStageAccessFlags &src_access_scope, QueueId event_queue,
ResourceUsageTag event_tag) const { … }
void ResourceAccessState::MergePending(const ResourceAccessState &other) { … }
void ResourceAccessState::MergeReads(const ResourceAccessState &other) { … }
void ResourceAccessState::Resolve(const ResourceAccessState &other) { … }
void ResourceAccessState::Update(const SyncStageAccessInfoType &usage_info, SyncOrdering ordering_rule, ResourceUsageTagEx tag_ex) { … }
void HazardResult::Set(const ResourceAccessState *access_state, const SyncStageAccessInfoType &usage_info, SyncHazard hazard,
const ResourceAccessWriteState &prior_write) { … }
void HazardResult::Set(const ResourceAccessState *access_state, const SyncStageAccessInfoType &usage_info, SyncHazard hazard,
const SyncStageAccessFlags &prior, ResourceUsageTagEx tag_ex) { … }
void HazardResult::AddRecordedAccess(const ResourceFirstAccess &first_access) { … }
bool HazardResult::IsWAWHazard() const { … }
void ResourceAccessState::SetWrite(const SyncStageAccessInfoType &usage_info, ResourceUsageTagEx tag_ex) { … }
void ResourceAccessState::ClearWrite() { … }
void ResourceAccessState::ClearRead() { … }
void ResourceAccessState::ClearFirstUse() { … }
void ResourceAccessState::ApplyPendingBarriers(const ResourceUsageTag tag) { … }
void ResourceAccessState::ApplySemaphore(const SemaphoreScope &signal, const SemaphoreScope wait) { … }
bool ResourceAccessState::WaitQueueTagPredicate::operator()(const ResourceAccessState::ReadState &read_access) const { … }
bool ResourceAccessState::WaitQueueTagPredicate::operator()(const ResourceAccessState &access) const { … }
bool ResourceAccessState::WaitTagPredicate::operator()(const ResourceAccessState::ReadState &read_access) const { … }
bool ResourceAccessState::WaitTagPredicate::operator()(const ResourceAccessState &access) const { … }
bool ResourceAccessState::WaitAcquirePredicate::operator()(const ResourceAccessState::ReadState &read_access) const { … }
bool ResourceAccessState::WaitAcquirePredicate::operator()(const ResourceAccessState &access) const { … }
bool ResourceAccessState::FirstAccessInTagRange(const ResourceUsageRange &tag_range) const { … }
void ResourceAccessState::OffsetTag(ResourceUsageTag offset) { … }
static const SyncStageAccessFlags kAllSyncStageAccessBits = …;
ResourceAccessState::ResourceAccessState()
: … { … }
VkPipelineStageFlags2KHR ResourceAccessState::GetReadBarriers(const SyncStageAccessFlags &usage_bit) const { … }
void ResourceAccessState::SetQueueId(QueueId id) { … }
bool ResourceAccessState::IsWriteBarrierHazard(QueueId queue_id, VkPipelineStageFlags2KHR src_exec_scope,
const SyncStageAccessFlags &src_access_scope) const { … }
bool ResourceAccessState::WriteInSourceScopeOrChain(VkPipelineStageFlags2KHR src_exec_scope,
SyncStageAccessFlags src_access_scope) const { … }
bool ResourceAccessState::WriteInQueueSourceScopeOrChain(QueueId queue, VkPipelineStageFlags2KHR src_exec_scope,
const SyncStageAccessFlags &src_access_scope) const { … }
bool ResourceAccessState::WriteInEventScope(VkPipelineStageFlags2KHR src_exec_scope, const SyncStageAccessFlags &src_access_scope,
QueueId scope_queue, ResourceUsageTag scope_tag) const { … }
bool operator<(const ResourceAccessState::ReadState &lhs, const ResourceAccessState::ReadState &rhs) { … }
void ResourceAccessState::Normalize() { … }
void ResourceAccessState::GatherReferencedTags(ResourceUsageTagSet &used) const { … }
bool ResourceAccessState::IsRAWHazard(const SyncStageAccessInfoType &usage_info) const { … }
VkPipelineStageFlags2 ResourceAccessState::GetOrderedStages(QueueId queue_id, const OrderingBarrier &ordering) const { … }
void ResourceAccessState::UpdateFirst(const ResourceUsageTagEx tag_ex, const SyncStageAccessInfoType &usage_info,
SyncOrdering ordering_rule) { … }
void ResourceAccessState::TouchupFirstForLayoutTransition(ResourceUsageTag tag, const OrderingBarrier &layout_ordering) { … }
ResourceAccessState::ReadState::ReadState(VkPipelineStageFlags2KHR stage_, SyncStageAccessFlags access_,
VkPipelineStageFlags2KHR barriers_, ResourceUsageTagEx tag_ex)
: … { … }
void ResourceAccessState::ReadState::Set(VkPipelineStageFlags2KHR stage_, const SyncStageAccessFlags &access_,
VkPipelineStageFlags2KHR barriers_, ResourceUsageTagEx tag_ex) { … }
bool ResourceAccessState::ReadState::ReadInQueueScopeOrChain(QueueId scope_queue, VkPipelineStageFlags2 exec_scope) const { … }
VkPipelineStageFlags2 ResourceAccessState::ReadState::ApplyPendingBarriers() { … }
ResourceAccessWriteState::ResourceAccessWriteState(const SyncStageAccessInfoType &usage_info, ResourceUsageTagEx tag_ex)
: … { … }
bool ResourceAccessWriteState::IsWriteHazard(const SyncStageAccessInfoType &usage_info) const { … }
bool ResourceAccessWriteState::IsOrdered(const OrderingBarrier &ordering, QueueId queue_id) const { … }
bool ResourceAccessWriteState::IsWriteBarrierHazard(QueueId queue_id, VkPipelineStageFlags2KHR src_exec_scope,
const SyncStageAccessFlags &src_access_scope) const { … }
void ResourceAccessWriteState::Set(const SyncStageAccessInfoType &usage_info, ResourceUsageTagEx tag_ex) { … }
void ResourceAccessWriteState::MergeBarriers(const ResourceAccessWriteState &other) { … }
void ResourceAccessWriteState::UpdatePendingBarriers(const SyncBarrier &barrier) { … }
void ResourceAccessWriteState::ApplyPendingBarriers() { … }
void ResourceAccessWriteState::UpdatePendingLayoutOrdering(const SyncBarrier &barrier) { … }
void ResourceAccessWriteState::SetQueueId(QueueId id) { … }
bool ResourceAccessWriteState::WriteInChain(VkPipelineStageFlags2KHR src_exec_scope) const { … }
bool ResourceAccessWriteState::WriteInScope(const SyncStageAccessFlags &src_access_scope) const { … }
bool ResourceAccessWriteState::WriteInSourceScopeOrChain(VkPipelineStageFlags2KHR src_exec_scope,
SyncStageAccessFlags src_access_scope) const { … }
bool ResourceAccessWriteState::WriteInQueueSourceScopeOrChain(QueueId queue, VkPipelineStageFlags2KHR src_exec_scope,
const SyncStageAccessFlags &src_access_scope) const { … }
bool ResourceAccessWriteState::WriteInEventScope(VkPipelineStageFlags2KHR src_exec_scope,
const SyncStageAccessFlags &src_access_scope, QueueId scope_queue,
ResourceUsageTag scope_tag) const { … }
HazardResult::HazardState::HazardState(const ResourceAccessState *access_state_, const SyncStageAccessInfoType &usage_info_,
SyncHazard hazard_, const SyncStageAccessFlags &prior_, ResourceUsageTagEx tag_ex)
: … { … }
SyncExecScope SyncExecScope::MakeSrc(VkQueueFlags queue_flags, VkPipelineStageFlags2KHR mask_param,
const VkPipelineStageFlags2KHR disabled_feature_mask) { … }
SyncExecScope SyncExecScope::MakeDst(VkQueueFlags queue_flags, VkPipelineStageFlags2KHR mask_param) { … }
SyncBarrier::SyncBarrier(const SyncExecScope &src, const SyncExecScope &dst)
: … { … }
SyncBarrier::SyncBarrier(const SyncExecScope &src, const SyncExecScope &dst, const SyncBarrier::AllAccess &)
: … { … }
SyncBarrier::SyncBarrier(VkQueueFlags queue_flags, const VkSubpassDependency2 &subpass) { … }
SyncBarrier::SyncBarrier(const std::vector<SyncBarrier> &barriers) : … { … }
const char *string_SyncHazard(SyncHazard hazard) { … }
const char *string_SyncHazardVUID(SyncHazard hazard) { … }