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

Method ValidateNextSubpass

layers/sync/sync_render_pass.cpp:729–754  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

727}
728
729bool RenderPassAccessContext::ValidateNextSubpass(const CommandBufferAccessContext& cb_context, vvl::Func command) const {
730 // PHASE1 TODO: Add Validate Preserve attachments
731 bool skip = false;
732 skip |= ValidateResolveOperations(cb_context, command);
733 skip |= ValidateStoreOperation(cb_context, command);
734
735 const auto next_subpass = current_subpass_ + 1;
736 if (next_subpass >= rp_state_->create_info.subpassCount) {
737 return skip;
738 }
739 const uint32_t next_subpass_view_mask = rp_state_->create_info.pSubpasses[next_subpass].viewMask;
740 const auto& next_context = subpass_contexts_[next_subpass];
741 skip |= ValidateLayoutTransitions(cb_context, next_context, *rp_state_, render_area_, render_pass_instance_id_, next_subpass,
742 next_subpass_view_mask, attachment_views_, command);
743 if (!skip) {
744 // To avoid complex (and buggy) duplication of the affect of layout transitions on load operations, we'll record them
745 // on a copy of the (empty) next context.
746 // Note: The resource access map should be empty so hopefully this copy isn't too horrible from a perf POV.
747 AccessContext temp_context(cb_context.GetSyncState());
748 temp_context.InitFrom(next_context);
749 RecordLayoutTransitions(*rp_state_, next_subpass, attachment_views_, kInvalidTag, temp_context);
750 skip |= ValidateLoadOperation(cb_context, temp_context, *rp_state_, render_area_, render_pass_instance_id_, next_subpass,
751 next_subpass_view_mask, attachment_views_, command);
752 }
753 return skip;
754}
755bool RenderPassAccessContext::ValidateEndRenderPass(const CommandBufferAccessContext& cb_context, vvl::Func command) const {
756 // PHASE1 TODO: Validate Preserve
757 bool skip = false;

Callers 1

ValidateMethod · 0.80

Calls 1

InitFromMethod · 0.80

Tested by

no test coverage detected