diff options
author | 2015-05-14 08:54:12 -0700 | |
---|---|---|
committer | 2015-05-14 08:54:12 -0700 | |
commit | 7156b09c4bc25af772826d5ac592dcdacdf15317 (patch) | |
tree | a32811d6a1e0da108884b76677fdc95717ddd6db | |
parent | c3c06a13e69b90d4cc1d543853504072d363ae8b (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.cpp | 2 |
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; } |