Index: cc/output/gl_renderer.cc |
diff --git a/cc/output/gl_renderer.cc b/cc/output/gl_renderer.cc |
index 1af26c1cc7f6fe579aaad98664408a911201a667..2b20d25d39f18f17a362c4b0d88c4efa9d506731 100644 |
--- a/cc/output/gl_renderer.cc |
+++ b/cc/output/gl_renderer.cc |
@@ -655,7 +655,11 @@ static skia::RefPtr<SkImage> ApplyImageFilter( |
surface->getCanvas()->translate(-dst_rect.x(), -dst_rect.y()); |
surface->getCanvas()->drawImage(srcImage.get(), src_rect.x(), src_rect.y(), |
&paint); |
- |
+ // Flush the drawing before source texture read lock goes out of scope. |
+ // Skia API does not guarantee that when the SkImage goes out of scope, |
+ // its externally referenced resources would force the rendering to be |
+ // flushed. |
+ surface->getCanvas()->flush(); |
Kimmo Kinnunen
2016/02/11 18:51:45
Note: naturally this trades off msaa perf for corr
ericrk
2016/02/11 22:03:20
Ok... Now I understand what's going on here a bit
|
skia::RefPtr<SkImage> image = skia::AdoptRef(surface->newImageSnapshot()); |
if (!image || !image->isTextureBacked()) { |
return skia::RefPtr<SkImage>(); |