Lines Matching refs:head
106 auto head = op;
107 while (head->prevInChain()) { head = head->prevInChain(); }
108 SkASSERT(head == fHead.get());
165 fBounds = fList.head()->bounds();
172 for (const auto& op : GrOp::ChainRange<>(fList.head())) {
195 // We process ops in chain b from head to tail. We attempt to merge with nodes in a, starting
196 // at chain a's tail and working toward the head. We produce one of the following outcomes:
197 // 1) b's head is merged into an op in a.
198 // 2) An op from chain a is merged into b's head. (In this case b's head gets processed again.)
199 // 3) b's head is popped from chain a and added at the tail of a.
200 // After result 3 we don't want to attempt to merge the next head of b with the new tail of a,
204 // merged into an op in b (case 2) then we advance the "original tail" towards the head of a.
212 bool canBackwardMerge = noSkip || can_reorder(chainB.head()->bounds(), skipBounds);
219 auto result = a->combineIfPossible(chainB.head(), opsTaskArena, caps);
223 chainB.head()->name(), chainB.head()->uniqueID(), a->name(),
227 GR_AUDIT_TRAIL_OPS_RESULT_COMBINED(auditTrail, a, chainB.head());
232 // We merged the contents of b's head into a. We will replace b's head with a in
254 canBackwardMerge && can_reorder(chainB.head()->bounds(), a->bounds());
258 // If we weren't able to merge b's head then pop b's head from chain b and make it the new
279 if (fList.head()->classID() != list->head()->classID() ||
296 switch (fList.tail()->combineIfPossible(list->head(), opsTaskArena, caps))
314 list->tail()->name(), list->tail()->uniqueID(), list->head()->name(),
315 list->head()->uniqueID());
316 GR_AUDIT_TRAIL_OPS_RESULT_COMBINED(auditTrail, fList.tail(), list->head());
379 for (const auto& op : GrOp::ChainRange<>(fList.head())) {
483 chain.head()->prePrepare(context,
514 TRACE_EVENT0("skia.gpu", chain.head()->name());
516 tag = chain.head()->getGrOpTag();
520 GrOpFlushState::OpArgs opArgs(chain.head(),
532 // chain.head()->prePrepare(flushState->gpu()->getContext(), &this->target(0),
536 chain.head()->prepare(flushState);
656 TRACE_EVENT0("skia.gpu", chain.head()->name());
658 tag = chain.head()->getGrOpTag();
663 GrOpFlushState::OpArgs opArgs(chain.head(),
672 chain.head()->execute(flushState, chain.bounds());
852 if (!fOpChains[i].head()) {
855 SkDebugf("%s%d: %s\n", indent.c_str(), i, fOpChains[i].head()->name());
860 for (const auto& op : GrOp::ChainRange<>(fOpChains[i].head())) {
1024 GrOP_INFO("\t\tBackward: Intersects with chain (%s, head opID: %u)\n",
1025 candidate.head()->name(), candidate.head()->uniqueID());
1059 "\t\t%d: chain (%s head opID: %u) -> "
1060 "Intersects with chain (%s, head opID: %u)\n",
1061 i, chain.head()->name(), chain.head()->uniqueID(), candidate.head()->name(),
1062 candidate.head()->uniqueID());
1067 i, chain.head()->name(), chain.head()->uniqueID());