Index: content/renderer/renderer_blink_platform_impl.cc |
diff --git a/content/renderer/renderer_blink_platform_impl.cc b/content/renderer/renderer_blink_platform_impl.cc |
index 3d91912d563004b9334418bdb9400f8a6b6b2ad5..bb2abe7e1867d3a3cf70116c66b58b16065241a0 100644 |
--- a/content/renderer/renderer_blink_platform_impl.cc |
+++ b/content/renderer/renderer_blink_platform_impl.cc |
@@ -1020,17 +1020,28 @@ RendererBlinkPlatformImpl::createOffscreenGraphicsContext3DProvider( |
// This is an offscreen context, which doesn't use the default frame buffer, |
// so don't request any alpha, depth, stencil, antialiasing. |
gpu::gles2::ContextCreationAttribHelper attributes; |
- attributes.alpha_size = -1; |
- attributes.depth_size = 0; |
- attributes.stencil_size = 0; |
- attributes.samples = 0; |
- attributes.sample_buffers = 0; |
+ |
+ if (web_attributes.supportOwnOffscreenSurface) { |
+ attributes.own_offscreen_surface = true; |
+ attributes.low_priority = true; |
+ attributes.alpha_size = web_attributes.supportAlpha ? 8 : -1; |
+ attributes.depth_size = web_attributes.supportDepth ? 24 : 0; |
+ attributes.stencil_size = web_attributes.supportStencil ? 8 : 0; |
+ attributes.samples = web_attributes.supportAntialias ? 4 : 0; |
+ attributes.sample_buffers = 0; |
+ } else { |
+ attributes.depth_size = 0; |
+ attributes.stencil_size = 0; |
+ attributes.samples = 0; |
+ attributes.sample_buffers = 0; |
+ } |
attributes.bind_generates_resource = false; |
// Prefer discrete GPU for WebGL. |
attributes.gpu_preference = gl::PreferDiscreteGpu; |
attributes.fail_if_major_perf_caveat = |
web_attributes.failIfMajorPerformanceCaveat; |
+ |
DCHECK_GT(web_attributes.webGLVersion, 0u); |
DCHECK_LE(web_attributes.webGLVersion, 2u); |
if (web_attributes.webGLVersion == 2) |