From c773bcac440aca0a91b4add5f2a51e149e88a574 Mon Sep 17 00:00:00 2001 From: Adam Barth Date: Wed, 17 Feb 2016 11:02:03 -0800 Subject: [PATCH] Attach a stencil buffer Skia can go faster (and crashes less) when we have a stencil buffer. Fixes https://github.com/flutter/flutter/issues/1931 --- sky/shell/gpu/direct/rasterizer_direct.cc | 5 +++-- sky/shell/gpu/ganesh_canvas.cc | 6 +----- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/sky/shell/gpu/direct/rasterizer_direct.cc b/sky/shell/gpu/direct/rasterizer_direct.cc index 40438db8857..a8c8cbbad53 100644 --- a/sky/shell/gpu/direct/rasterizer_direct.cc +++ b/sky/shell/gpu/direct/rasterizer_direct.cc @@ -49,8 +49,9 @@ void RasterizerDirect::ConnectToRasterizer( } void RasterizerDirect::OnAcceleratedWidgetAvailable(gfx::AcceleratedWidget widget) { - surface_ = - gfx::GLSurface::CreateViewGLSurface(widget, gfx::SurfaceConfiguration()); + gfx::SurfaceConfiguration config; + config.stencil_bits = 8; + surface_ = gfx::GLSurface::CreateViewGLSurface(widget, config); CHECK(surface_) << "GLSurface required."; // Eagerly create the GL context. For a while after the accelerated widget // is first available (after startup), the process is busy setting up dart diff --git a/sky/shell/gpu/ganesh_canvas.cc b/sky/shell/gpu/ganesh_canvas.cc index 549cf41e778..70b778c67b6 100644 --- a/sky/shell/gpu/ganesh_canvas.cc +++ b/sky/shell/gpu/ganesh_canvas.cc @@ -52,12 +52,8 @@ SkCanvas* GaneshCanvas::GetCanvas(int32_t fbo, const SkISize& size) { desc.fWidth = size.width(); desc.fHeight = size.height(); desc.fConfig = kSkia8888_GrPixelConfig; -#if defined(FNL_MUSL) - // TODO(kulakowski) This should be handled by MGL - desc.fOrigin = kTopLeft_GrSurfaceOrigin; -#else + desc.fStencilBits = 8; desc.fOrigin = kBottomLeft_GrSurfaceOrigin; -#endif desc.fRenderTargetHandle = fbo; skia::RefPtr target = skia::AdoptRef(