#include <cinttypes>
#include "state_tracker/buffer_state.h"
#include "state_tracker/video_session_state.h"
#include "state_tracker/render_pass_state.h"
#include "sync/sync_access_context.h"
#include "sync/sync_image.h"
bool SimpleBinding(const vvl::Bindable &bindable) { … }
VkDeviceSize ResourceBaseAddress(const vvl::Buffer &buffer) { … }
class HazardDetector { … };
class HazardDetectorWithOrdering { … };
class HazardDetectFirstUse { … };
AccessContext::AccessContext(uint32_t subpass, VkQueueFlags queue_flags,
const std::vector<SubpassDependencyGraphNode> &dependencies,
const std::vector<AccessContext> &contexts, const AccessContext *external_context) { … }
template <typename NormalizeOp>
void AccessContext::Trim(NormalizeOp &&normalize) { … }
void AccessContext::Trim() { … }
void AccessContext::TrimAndClearFirstAccess() { … }
void AccessContext::AddReferencedTags(ResourceUsageTagSet &used) const { … }
template <typename Action>
void AccessContext::ForAll(Action &&action) { … }
template <typename Action>
void AccessContext::ConstForAll(Action &&action) const { … }
void AccessContext::ResolveFromContext(const AccessContext &from) { … }
void AccessContext::ResolvePreviousAccess(const ResourceAccessRange &range, ResourceAccessRangeMap *descent_map,
const ResourceAccessState *infill_state,
const ResourceAccessStateFunction *previous_barrier) const { … }
void AccessContext::ResolvePreviousAccesses() { … }
void AccessContext::UpdateAccessState(const vvl::Buffer &buffer, SyncStageAccessIndex current_usage, SyncOrdering ordering_rule,
const ResourceAccessRange &range, ResourceUsageTagEx tag_ex) { … }
void AccessContext::UpdateAccessState(const ImageState &image, SyncStageAccessIndex current_usage, SyncOrdering ordering_rule,
const VkImageSubresourceRange &subresource_range, const ResourceUsageTag &tag) { … }
void AccessContext::UpdateAccessState(const ImageState &image, SyncStageAccessIndex current_usage, SyncOrdering ordering_rule,
const VkImageSubresourceRange &subresource_range, const VkOffset3D &offset,
const VkExtent3D &extent, const ResourceUsageTag tag) { … }
void AccessContext::UpdateAccessState(const ImageViewState &image_view, SyncStageAccessIndex current_usage,
SyncOrdering ordering_rule, const VkOffset3D &offset, const VkExtent3D &extent,
const ResourceUsageTag tag) { … }
void AccessContext::UpdateAccessState(const ImageViewState &image_view, SyncStageAccessIndex current_usage,
SyncOrdering ordering_rule, ResourceUsageTag tag) { … }
void AccessContext::UpdateAccessState(const AttachmentViewGen &view_gen, AttachmentViewGen::Gen gen_type,
SyncStageAccessIndex current_usage, SyncOrdering ordering_rule, const ResourceUsageTag tag) { … }
void AccessContext::UpdateAccessState(const vvl::VideoSession &vs_state, const vvl::VideoPictureResource &resource,
SyncStageAccessIndex current_usage, ResourceUsageTag tag) { … }
void AccessContext::UpdateAccessState(ImageRangeGen &range_gen, SyncStageAccessIndex current_usage, SyncOrdering ordering_rule,
ResourceUsageTag tag) { … }
void AccessContext::UpdateAccessState(const ImageRangeGen &range_gen, SyncStageAccessIndex current_usage,
SyncOrdering ordering_rule, ResourceUsageTag tag) { … }
void AccessContext::ResolveChildContexts(const std::vector<AccessContext> &contexts) { … }
void AccessContext::ImportAsyncContexts(const AccessContext &from) { … }
HazardResult AccessContext::DetectSubpassTransitionHazard(const TrackBack &track_back, const AttachmentViewGen &attach_view) const { … }
void AccessContext::AddAsyncContext(const AccessContext *context, ResourceUsageTag tag, QueueId queue_id) { … }
HazardResult AccessContext::DetectHazard(const vvl::Buffer &buffer, SyncStageAccessIndex usage_index,
const ResourceAccessRange &range) const { … }
template <typename Detector>
HazardResult AccessContext::DetectHazard(Detector &detector, const AttachmentViewGen &view_gen, AttachmentViewGen::Gen gen_type,
DetectOptions options) const { … }
template <typename Detector>
HazardResult AccessContext::DetectHazard(Detector &detector, const ImageState &image,
const VkImageSubresourceRange &subresource_range, const VkOffset3D &offset,
const VkExtent3D &extent, bool is_depth_sliced, DetectOptions options) const { … }
template <typename Detector>
HazardResult AccessContext::DetectHazard(Detector &detector, const ImageState &image,
const VkImageSubresourceRange &subresource_range, bool is_depth_sliced,
DetectOptions options) const { … }
HazardResult AccessContext::DetectHazard(const ImageState &image, SyncStageAccessIndex current_usage,
const VkImageSubresourceRange &subresource_range, bool is_depth_sliced) const { … }
HazardResult AccessContext::DetectHazard(const ImageViewState &image_view, SyncStageAccessIndex current_usage) const { … }
HazardResult AccessContext::DetectHazard(const ImageRangeGen &ref_range_gen, SyncStageAccessIndex current_usage,
const SyncOrdering ordering_rule) const { … }
HazardResult AccessContext::DetectHazard(const ImageViewState &image_view, const VkOffset3D &offset, const VkExtent3D &extent,
SyncStageAccessIndex current_usage, SyncOrdering ordering_rule) const { … }
HazardResult AccessContext::DetectHazard(const AttachmentViewGen &view_gen, AttachmentViewGen::Gen gen_type,
SyncStageAccessIndex current_usage, SyncOrdering ordering_rule) const { … }
HazardResult AccessContext::DetectHazard(const vvl::VideoSession &vs_state, const vvl::VideoPictureResource &resource,
SyncStageAccessIndex current_usage) const { … }
HazardResult AccessContext::DetectHazard(const ImageState &image, const VkImageSubresourceRange &subresource_range,
const VkOffset3D &offset, const VkExtent3D &extent, bool is_depth_sliced,
SyncStageAccessIndex current_usage, SyncOrdering ordering_rule) const { … }
class BarrierHazardDetector { … };
class EventBarrierHazardDetector { … };
HazardResult AccessContext::DetectImageBarrierHazard(const ImageState &image, const VkImageSubresourceRange &subresource_range,
VkPipelineStageFlags2KHR src_exec_scope,
const SyncStageAccessFlags &src_access_scope, QueueId queue_id,
const ScopeMap &scope_map, const ResourceUsageTag scope_tag,
AccessContext::DetectOptions options) const { … }
HazardResult AccessContext::DetectImageBarrierHazard(const AttachmentViewGen &view_gen, const SyncBarrier &barrier,
DetectOptions options) const { … }
HazardResult AccessContext::DetectImageBarrierHazard(const ImageState &image, VkPipelineStageFlags2KHR src_exec_scope,
const SyncStageAccessFlags &src_access_scope,
const VkImageSubresourceRange &subresource_range,
const DetectOptions options) const { … }
ResourceAccessRangeMap::iterator AccessContext::UpdateMemoryAccessStateFunctor::Infill(ResourceAccessRangeMap *accesses,
const Iterator &pos,
const ResourceAccessRange &range) const { … }
void AccessContext::UpdateMemoryAccessStateFunctor::operator()(const ResourceAccessRangeMap::iterator &pos) const { … }
HazardResult AccessContext::DetectFirstUseHazard(QueueId queue_id, const ResourceUsageRange &tag_range,
const AccessContext &access_context) const { … }
ResourceUsageTag AccessContext::AsyncReference::StartTag() const { … }
AttachmentViewGen::AttachmentViewGen(const syncval_state::ImageViewState *image_view, const VkOffset3D &offset,
const VkExtent3D &extent)
: … { … }
const std::optional<ImageRangeGen> &AttachmentViewGen::GetRangeGen(AttachmentViewGen::Gen type) const { … }
AttachmentViewGen::Gen AttachmentViewGen::GetDepthStencilRenderAreaGenType(bool depth_op, bool stencil_op) const { … }