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

Unified Diff: src/gpu/GrReorderCommandBuilder.cpp

Issue 1275543005: Move some work from backend onClear to base class clear (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Move up to DrawTarget Created 5 years, 4 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 side-by-side diff with in-line comments
Download patch
Index: src/gpu/GrReorderCommandBuilder.cpp
diff --git a/src/gpu/GrReorderCommandBuilder.cpp b/src/gpu/GrReorderCommandBuilder.cpp
index 4dc2201325852ef2f415d7958caea161356ce4f1..cf784b0c2de9217a58ddb046b361fd571da377a0 100644
--- a/src/gpu/GrReorderCommandBuilder.cpp
+++ b/src/gpu/GrReorderCommandBuilder.cpp
@@ -32,11 +32,10 @@ GrTargetCommands::Cmd* GrReorderCommandBuilder::recordDrawBatch(State* state, Gr
if (Cmd::kDrawBatch_CmdType == reverseIter->type()) {
DrawBatch* previous = static_cast<DrawBatch*>(reverseIter.get());
- // We cannot continue to search backwards if the render target changes
if (previous->fBatch->pipeline()->getRenderTarget() != rt) {
break;
}
-
+ // We cannot continue to search backwards if the render target changes
if (previous->fBatch->combineIfPossible(batch)) {
return NULL;
}
@@ -47,10 +46,11 @@ GrTargetCommands::Cmd* GrReorderCommandBuilder::recordDrawBatch(State* state, Gr
} else if (Cmd::kClear_CmdType == reverseIter->type()) {
Clear* previous = static_cast<Clear*>(reverseIter.get());
+ if (previous->renderTarget() != rt) {
+ break;
+ }
// We set the color to illegal if we are doing a discard.
- // If we can ignore the rect, then we do a full clear
if (previous->fColor == GrColor_ILLEGAL ||
- previous->fCanIgnoreRect ||
intersect(batch->bounds(), previous->fRect)) {
break;
}

Powered by Google App Engine
This is Rietveld 408576698