aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/GrClipMaskManager.cpp
diff options
context:
space:
mode:
authorGravatar robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2012-05-17 12:01:02 +0000
committerGravatar robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2012-05-17 12:01:02 +0000
commit5acc0e36d987dff3172fd45a14b66c52a51d49e4 (patch)
treea1180d54aa583c386e6645a79c5203a47ff73e9c /src/gpu/GrClipMaskManager.cpp
parent526956644ad85ddbad445caf93671577fb990b86 (diff)
Free cached AA clip mask when create hard/stencil clip mask
Diffstat (limited to 'src/gpu/GrClipMaskManager.cpp')
-rw-r--r--src/gpu/GrClipMaskManager.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/gpu/GrClipMaskManager.cpp b/src/gpu/GrClipMaskManager.cpp
index 15aae1e2dc..f8e81a3b80 100644
--- a/src/gpu/GrClipMaskManager.cpp
+++ b/src/gpu/GrClipMaskManager.cpp
@@ -121,6 +121,15 @@ bool GrClipMaskManager::createClipMask(GrGpu* gpu,
}
#endif // GR_AA_CLIP
+ // Either a hard (stencil buffer) clip was explicitly requested or
+ // an antialiased clip couldn't be created. In either case, free up
+ // the texture in the antialiased mask cache.
+ // TODO: this may require more investigation. Ganesh performs a lot of
+ // utility draws (e.g., clears, InOderDrawBuffer playbacks) that hit
+ // the stencil buffer path. These may be incorrectly messing up the
+ // AA cache.
+ fAACache.reset();
+
GrRect bounds;
GrRect rtRect;
rtRect.setLTRB(0, 0,