aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar robertphillips <robertphillips@google.com>2015-05-14 08:54:12 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2015-05-14 08:54:12 -0700
commit7156b09c4bc25af772826d5ac592dcdacdf15317 (patch)
treea32811d6a1e0da108884b76677fdc95717ddd6db
parentc3c06a13e69b90d4cc1d543853504072d363ae8b (diff)
Revert of Defer glClear to just before draw call (patchset #2 id:20001 of https://codereview.chromium.org/1113003005/)
Reason for revert: This CL seems to be triggering the assert: src/gpu/SkGpuDevice.cpp:319: failed assertion "!fNeedClear" on, at least, Mac & Ubuntu. Original issue's description: > Defer glClear to just before draw call > > Remove some DO_DEFERRED_CLEAR call to avoid call glClear separately, like this: > glBindFramebuffer(1) > glClear > glBindFramebuffer(2) > glClear > glBindFramebuffer(1) > glDrawXXX > glBindFramebuffer(2) > glDrawXXX > > These call sequences may need read and write memory back and forth. > > If we call DO_DEFERRED_CLEAR just before draw call, we can bind, clear and draw in one go. > e.g. > glBindFramebuffer(1) > glClear > glDrawXXX > glBindFramebuffer(2) > glClear > glDrawXXX > > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/c3c06a13e69b90d4cc1d543853504072d363ae8b TBR=bsalomon@google.com,joel.liang@arm.com,wasim.abbas@arm.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1136393005
-rw-r--r--src/gpu/SkGpuDevice.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/gpu/SkGpuDevice.cpp b/src/gpu/SkGpuDevice.cpp
index e4c21ca10f..7b363635e2 100644
--- a/src/gpu/SkGpuDevice.cpp
+++ b/src/gpu/SkGpuDevice.cpp
@@ -62,7 +62,6 @@ enum { kDefaultImageFilterCacheSize = 32 * 1024 * 1024 };
// a sub region of a larger source image.
#define COLOR_BLEED_TOLERANCE 0.001f
-// Do deferred clear just before any draw call
#define DO_DEFERRED_CLEAR() \
do { \
if (fNeedClear) { \
@@ -303,6 +302,7 @@ void SkGpuDevice::prepareDraw(const SkDraw& draw) {
}
GrRenderTarget* SkGpuDevice::accessRenderTarget() {
+ DO_DEFERRED_CLEAR();
return fRenderTarget;
}