Index: content/browser/android/in_process/synchronous_compositor_factory_impl.cc |
diff --git a/content/browser/android/in_process/synchronous_compositor_factory_impl.cc b/content/browser/android/in_process/synchronous_compositor_factory_impl.cc |
index af50011c7b90b994f70ed2c229f1e85f16075a5b..9e5c89de40bcf92975c98ae39c2ba602babdf4b9 100644 |
--- a/content/browser/android/in_process/synchronous_compositor_factory_impl.cc |
+++ b/content/browser/android/in_process/synchronous_compositor_factory_impl.cc |
@@ -44,38 +44,41 @@ scoped_ptr<gpu::GLInProcessContext> CreateOffscreenContext( |
attributes, &in_process_attribs); |
in_process_attribs.lose_context_when_out_of_memory = true; |
- scoped_ptr<gpu::GLInProcessContext> context( |
- gpu::GLInProcessContext::Create(NULL /* service */, |
- NULL /* surface */, |
- true /* is_offscreen */, |
- gfx::kNullAcceleratedWidget, |
- gfx::Size(1, 1), |
- NULL /* share_context */, |
- false /* share_resources */, |
- in_process_attribs, |
- gpu_preference)); |
+ scoped_ptr<gpu::GLInProcessContext> context(gpu::GLInProcessContext::Create( |
+ NULL /* service */, |
+ NULL /* surface */, |
+ true /* is_offscreen */, |
+ gfx::kNullAcceleratedWidget, |
+ gfx::Size(1, 1), |
+ NULL /* share_context */, |
+ false /* share_resources */, |
+ in_process_attribs, |
+ gpu_preference, |
+ gpu::GLInProcessContextSharedMemoryLimits())); |
return context.Pass(); |
} |
scoped_ptr<gpu::GLInProcessContext> CreateContext( |
scoped_refptr<gpu::InProcessCommandBuffer::Service> service, |
- gpu::GLInProcessContext* share_context) { |
+ gpu::GLInProcessContext* share_context, |
+ const gpu::GLInProcessContextSharedMemoryLimits& mem_limits) { |
const gfx::GpuPreference gpu_preference = gfx::PreferDiscreteGpu; |
gpu::gles2::ContextCreationAttribHelper in_process_attribs; |
WebGraphicsContext3DImpl::ConvertAttributes( |
GetDefaultAttribs(), &in_process_attribs); |
in_process_attribs.lose_context_when_out_of_memory = true; |
- scoped_ptr<gpu::GLInProcessContext> context( |
- gpu::GLInProcessContext::Create(service, |
- NULL /* surface */, |
- false /* is_offscreen */, |
- gfx::kNullAcceleratedWidget, |
- gfx::Size(1, 1), |
- share_context, |
- false /* share_resources */, |
- in_process_attribs, |
- gpu_preference)); |
+ scoped_ptr<gpu::GLInProcessContext> context(gpu::GLInProcessContext::Create( |
+ service, |
+ NULL /* surface */, |
+ false /* is_offscreen */, |
+ gfx::kNullAcceleratedWidget, |
+ gfx::Size(1, 1), |
+ share_context, |
+ false /* share_resources */, |
+ in_process_attribs, |
+ gpu_preference, |
+ mem_limits)); |
return context.Pass(); |
} |
@@ -184,10 +187,15 @@ scoped_refptr<cc::ContextProvider> SynchronousCompositorFactoryImpl:: |
CreateOnscreenContextProviderForCompositorThread() { |
DCHECK(service_); |
- if (!share_context_.get()) |
- share_context_ = CreateContext(service_, NULL); |
+ if (!share_context_.get()) { |
+ share_context_ = CreateContext( |
+ service_, NULL, gpu::GLInProcessContextSharedMemoryLimits()); |
+ } |
+ gpu::GLInProcessContextSharedMemoryLimits mem_limits; |
+ mem_limits.mapped_memory_reclaim_limit = |
+ static_cast<size_t>(6.4 * 1024 * 1024); |
piman
2014/08/19 22:58:13
nit: it's odd to use doubles to select a memory li
boliu
2014/08/19 23:06:38
It's from this code in render_widget.cc, but using
|
return webkit::gpu::ContextProviderInProcess::Create( |
- WrapContext(CreateContext(service_, share_context_.get())), |
+ WrapContext(CreateContext(service_, share_context_.get(), mem_limits)), |
"Child-Compositor"); |
} |
@@ -248,7 +256,9 @@ SynchronousCompositorFactoryImpl::TryCreateStreamTextureFactory() { |
DCHECK(share_context_.get()); |
video_context_provider_ = new VideoContextProvider( |
- CreateContext(service_, share_context_.get())); |
+ CreateContext(service_, |
+ share_context_.get(), |
+ gpu::GLInProcessContextSharedMemoryLimits())); |
} |
return video_context_provider_; |
} |