| 752 | } |
| 753 | |
| 754 | void PendingBarriers::AddLayoutTransition(AccessState* access_state, const OrderingBarrier& layout_transition_ordering_barrier, |
| 755 | uint32_t layout_transition_handle_index) { |
| 756 | // NOTE: in contrast to read/write barriers, we don't do reuse search here, |
| 757 | // mostly because we didn't see a beneficial use case yet. |
| 758 | // Storing handle index can be a hint it would be harder to find duplicates. |
| 759 | PendingBarrierInfo& info = infos.emplace_back(); |
| 760 | info.type = PendingBarrierType::LayoutTransition; |
| 761 | info.index = (uint32_t)layout_transitions.size(); |
| 762 | info.access_state = access_state; |
| 763 | |
| 764 | PendingLayoutTransition& layout_transition = layout_transitions.emplace_back(); |
| 765 | layout_transition.ordering = layout_transition_ordering_barrier; |
| 766 | layout_transition.handle_index = layout_transition_handle_index; |
| 767 | } |
| 768 | |
| 769 | void PendingBarriers::Apply(const ResourceUsageTag exec_tag) { |
| 770 | for (const PendingBarrierInfo& info : infos) { |
no test coverage detected