| 767 | } |
| 768 | |
| 769 | void PendingBarriers::Apply(const ResourceUsageTag exec_tag) { |
| 770 | for (const PendingBarrierInfo& info : infos) { |
| 771 | if (info.type == PendingBarrierType::ReadAccessBarrier) { |
| 772 | const PendingReadBarrier& read_barrier = read_barriers[info.index]; |
| 773 | info.access_state->ApplyPendingReadBarrier(read_barrier, exec_tag); |
| 774 | } else if (info.type == PendingBarrierType::WriteAccessBarrier) { |
| 775 | const PendingWriteBarrier& write_barrier = write_barriers[info.index]; |
| 776 | info.access_state->ApplyPendingWriteBarrier(write_barrier); |
| 777 | } else { |
| 778 | assert(info.type == PendingBarrierType::LayoutTransition); |
| 779 | const PendingLayoutTransition& layout_transition = layout_transitions[info.index]; |
| 780 | info.access_state->ApplyPendingLayoutTransition(layout_transition, exec_tag); |
| 781 | } |
| 782 | } |
| 783 | } |
| 784 | |
| 785 | void ApplyBarriers(AccessState& access_state, const std::vector<SyncBarrier>& barriers, bool layout_transition, |
| 786 | ResourceUsageTag layout_transition_tag) { |
no test coverage detected