Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(21)

Side by Side Diff: src/gpu/GrDrawTarget.cpp

Issue 1724243004: Add batchlist managment to GrAuditTrail (Closed) Base URL: https://skia.googlesource.com/skia@master
Patch Set: push back initial batch before updating the bounds on combine Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/gpu/GrAuditTrail.cpp ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 1
2 /* 2 /*
3 * Copyright 2010 Google Inc. 3 * Copyright 2010 Google Inc.
4 * 4 *
5 * Use of this source code is governed by a BSD-style license that can be 5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file. 6 * found in the LICENSE file.
7 */ 7 */
8 8
9 #include "GrDrawTarget.h" 9 #include "GrDrawTarget.h"
10 10
(...skipping 442 matching lines...) Expand 10 before | Expand all | Expand 10 after
453 GrBatch* candidate = fBatches.fromBack(i); 453 GrBatch* candidate = fBatches.fromBack(i);
454 // We cannot continue to search backwards if the render target chang es 454 // We cannot continue to search backwards if the render target chang es
455 if (candidate->renderTargetUniqueID() != batch->renderTargetUniqueID ()) { 455 if (candidate->renderTargetUniqueID() != batch->renderTargetUniqueID ()) {
456 GrBATCH_INFO("\t\tBreaking because of (%s, B%u) Rendertarget\n", 456 GrBATCH_INFO("\t\tBreaking because of (%s, B%u) Rendertarget\n",
457 candidate->name(), candidate->uniqueID()); 457 candidate->name(), candidate->uniqueID());
458 break; 458 break;
459 } 459 }
460 if (candidate->combineIfPossible(batch, *this->caps())) { 460 if (candidate->combineIfPossible(batch, *this->caps())) {
461 GrBATCH_INFO("\t\tCombining with (%s, B%u)\n", candidate->name() , 461 GrBATCH_INFO("\t\tCombining with (%s, B%u)\n", candidate->name() ,
462 candidate->uniqueID()); 462 candidate->uniqueID());
463 GR_AUDIT_TRAIL_BATCHING_RESULT_COMBINED(fAuditTrail, candidate);
463 return; 464 return;
464 } 465 }
465 // Stop going backwards if we would cause a painter's order violatio n. 466 // Stop going backwards if we would cause a painter's order violatio n.
466 // TODO: The bounds used here do not fully consider the clip. It may be advantageous 467 // TODO: The bounds used here do not fully consider the clip. It may be advantageous
467 // to clip each batch's bounds to the clip. 468 // to clip each batch's bounds to the clip.
468 if (intersect(candidate->bounds(), batch->bounds())) { 469 if (intersect(candidate->bounds(), batch->bounds())) {
469 GrBATCH_INFO("\t\tIntersects with (%s, B%u)\n", candidate->name( ), 470 GrBATCH_INFO("\t\tIntersects with (%s, B%u)\n", candidate->name( ),
470 candidate->uniqueID()); 471 candidate->uniqueID());
471 break; 472 break;
472 } 473 }
473 ++i; 474 ++i;
474 if (i == maxCandidates) { 475 if (i == maxCandidates) {
475 GrBATCH_INFO("\t\tReached max lookback or beginning of batch arr ay %d\n", i); 476 GrBATCH_INFO("\t\tReached max lookback or beginning of batch arr ay %d\n", i);
476 break; 477 break;
477 } 478 }
478 } 479 }
479 } else { 480 } else {
480 GrBATCH_INFO("\t\tFirstBatch\n"); 481 GrBATCH_INFO("\t\tFirstBatch\n");
481 } 482 }
483 GR_AUDIT_TRAIL_BATCHING_RESULT_NEW(fAuditTrail, batch);
482 fBatches.push_back().reset(SkRef(batch)); 484 fBatches.push_back().reset(SkRef(batch));
483 } 485 }
484 486
485 /////////////////////////////////////////////////////////////////////////////// 487 ///////////////////////////////////////////////////////////////////////////////
486 488
487 bool GrDrawTarget::installPipelineInDrawBatch(const GrPipelineBuilder* pipelineB uilder, 489 bool GrDrawTarget::installPipelineInDrawBatch(const GrPipelineBuilder* pipelineB uilder,
488 const GrScissorState* scissor, 490 const GrScissorState* scissor,
489 GrDrawBatch* batch) { 491 GrDrawBatch* batch) {
490 GrPipeline::CreateArgs args; 492 GrPipeline::CreateArgs args;
491 args.fPipelineBuilder = pipelineBuilder; 493 args.fPipelineBuilder = pipelineBuilder;
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
532 } 534 }
533 535
534 return true; 536 return true;
535 } 537 }
536 538
537 void GrDrawTarget::clearStencilClip(const SkIRect& rect, bool insideClip, GrRend erTarget* rt) { 539 void GrDrawTarget::clearStencilClip(const SkIRect& rect, bool insideClip, GrRend erTarget* rt) {
538 GrBatch* batch = new GrClearStencilClipBatch(rect, insideClip, rt); 540 GrBatch* batch = new GrClearStencilClipBatch(rect, insideClip, rt);
539 this->recordBatch(batch); 541 this->recordBatch(batch);
540 batch->unref(); 542 batch->unref();
541 } 543 }
OLDNEW
« no previous file with comments | « src/gpu/GrAuditTrail.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698