Lines Matching defs:chain

191 // the two chains are chainable. Returns the new chain.
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:
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.
201 // as we assume merges were already attempted when chain b was created. So we keep track of the
203 // appended to chain a that will be skipped for bounds testing. If the original tail of a is
233 // chain b.
243 // We merged all the nodes in chain a to chain b.
258 // If we weren't able to merge b's head then pop b's head from chain b and make it the new
268 // Attempts to concatenate the given chain onto our own and merge ops across the chains. Returns
287 // chain nor combine overlapping Ops.
339 // 'that' owns the combined chain. Move it into 'this'.
363 List chain(std::move(op));
364 if (!this->tryConcat(&chain, processorAnalysis, *dstProxyView, appliedClip, opBounds, caps,
368 return chain.popHead();
371 SkASSERT(chain.empty());
404 for (auto& chain : fOpChains) {
405 chain.deleteOps();
481 for (const auto& chain : fOpChains) {
482 if (chain.shouldExecute()) {
483 chain.head()->prePrepare(context,
485 chain.appliedClip(),
486 chain.dstProxyView(),
511 for (const auto& chain : fOpChains) {
512 if (chain.shouldExecute()) {
514 TRACE_EVENT0("skia.gpu", chain.head()->name());
516 tag = chain.head()->getGrOpTag();
520 GrOpFlushState::OpArgs opArgs(chain.head(),
523 chain.appliedClip(),
524 chain.dstProxyView(),
532 // chain.head()->prePrepare(flushState->gpu()->getContext(), &this->target(0),
533 // chain.appliedClip());
536 chain.head()->prepare(flushState);
651 for (const auto& chain : fOpChains) {
652 if (!chain.shouldExecute()) {
656 TRACE_EVENT0("skia.gpu", chain.head()->name());
658 tag = chain.head()->getGrOpTag();
663 GrOpFlushState::OpArgs opArgs(chain.head(),
666 chain.appliedClip(),
667 chain.dstProxyView(),
672 chain.head()->execute(flushState, chain.bounds());
884 for (const OpChain& chain : fOpChains) {
885 chain.visitProxies(textureFunc);
1024 GrOP_INFO("\t\tBackward: Intersects with chain (%s, head opID: %u)\n",
1048 OpChain& chain = fOpChains[i];
1053 if (candidate.prependChain(&chain, caps, fArenas->arenaAlloc(), fAuditTrail)) {
1057 if (!can_reorder(chain.bounds(), candidate.bounds())) {
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(),
1066 GrOP_INFO("\t\t%d: chain (%s opID: %u) -> Reached max lookahead or end of array\n",
1067 i, chain.head()->name(), chain.head()->uniqueID());