| Index: content/common/gpu/client/webgraphicscontext3d_command_buffer_impl.cc
|
| diff --git a/content/common/gpu/client/webgraphicscontext3d_command_buffer_impl.cc b/content/common/gpu/client/webgraphicscontext3d_command_buffer_impl.cc
|
| index c9c4cf12fad340e1c4d68cd2377a16e25afd818c..fa3a16f1fc034c53ca764110ee090b5e87210efb 100644
|
| --- a/content/common/gpu/client/webgraphicscontext3d_command_buffer_impl.cc
|
| +++ b/content/common/gpu/client/webgraphicscontext3d_command_buffer_impl.cc
|
| @@ -29,6 +29,7 @@
|
| #include "gpu/command_buffer/client/gles2_implementation.h"
|
| #include "gpu/command_buffer/client/gles2_trace_implementation.h"
|
| #include "gpu/command_buffer/client/gpu_switches.h"
|
| +#include "gpu/command_buffer/client/shared_memory_limits.h"
|
| #include "gpu/command_buffer/client/transfer_buffer.h"
|
| #include "gpu/command_buffer/common/constants.h"
|
| #include "gpu/command_buffer/common/gpu_memory_allocation.h"
|
| @@ -68,13 +69,6 @@ GetDefaultShareGroupForHost(gpu::GpuChannelHost* host) {
|
|
|
| } // namespace anonymous
|
|
|
| -WebGraphicsContext3DCommandBufferImpl::SharedMemoryLimits::SharedMemoryLimits()
|
| - : command_buffer_size(kDefaultCommandBufferSize),
|
| - start_transfer_buffer_size(kDefaultStartTransferBufferSize),
|
| - min_transfer_buffer_size(kDefaultMinTransferBufferSize),
|
| - max_transfer_buffer_size(kDefaultMaxTransferBufferSize),
|
| - mapped_memory_reclaim_limit(gpu::gles2::GLES2Implementation::kNoLimit) {}
|
| -
|
| WebGraphicsContext3DCommandBufferImpl::ShareGroup::ShareGroup() {
|
| }
|
|
|
| @@ -90,7 +84,6 @@ WebGraphicsContext3DCommandBufferImpl::WebGraphicsContext3DCommandBufferImpl(
|
| gfx::GpuPreference gpu_preference,
|
| bool share_resources,
|
| bool automatic_flushes,
|
| - const SharedMemoryLimits& limits,
|
| WebGraphicsContext3DCommandBufferImpl* share_context)
|
| : automatic_flushes_(automatic_flushes),
|
| attributes_(attributes),
|
| @@ -98,7 +91,6 @@ WebGraphicsContext3DCommandBufferImpl::WebGraphicsContext3DCommandBufferImpl(
|
| surface_handle_(surface_handle),
|
| active_url_(active_url),
|
| gpu_preference_(gpu_preference),
|
| - mem_limits_(limits),
|
| weak_ptr_factory_(this) {
|
| DCHECK(host);
|
| switch (attributes.context_type) {
|
| @@ -127,7 +119,8 @@ WebGraphicsContext3DCommandBufferImpl::
|
| Destroy();
|
| }
|
|
|
| -bool WebGraphicsContext3DCommandBufferImpl::MaybeInitializeGL() {
|
| +bool WebGraphicsContext3DCommandBufferImpl::MaybeInitializeGL(
|
| + const gpu::SharedMemoryLimits& memory_limits) {
|
| if (initialized_)
|
| return true;
|
|
|
| @@ -141,7 +134,7 @@ bool WebGraphicsContext3DCommandBufferImpl::MaybeInitializeGL() {
|
| FROM_HERE_WITH_EXPLICIT_FUNCTION(
|
| "125248 WebGraphicsContext3DCommandBufferImpl::MaybeInitializeGL"));
|
|
|
| - if (!CreateContext()) {
|
| + if (!CreateContext(memory_limits)) {
|
| Destroy();
|
|
|
| initialize_failed_ = true;
|
| @@ -199,7 +192,8 @@ bool WebGraphicsContext3DCommandBufferImpl::InitializeCommandBuffer(
|
| return result;
|
| }
|
|
|
| -bool WebGraphicsContext3DCommandBufferImpl::CreateContext() {
|
| +bool WebGraphicsContext3DCommandBufferImpl::CreateContext(
|
| + const gpu::SharedMemoryLimits& memory_limits) {
|
| TRACE_EVENT0("gpu", "WebGfxCtx3DCmdBfrImpl::CreateContext");
|
| scoped_refptr<gpu::gles2::ShareGroup> gles2_share_group;
|
|
|
| @@ -224,7 +218,7 @@ bool WebGraphicsContext3DCommandBufferImpl::CreateContext() {
|
|
|
| // Create the GLES2 helper, which writes the command buffer protocol.
|
| gles2_helper_.reset(new gpu::gles2::GLES2CmdHelper(command_buffer_.get()));
|
| - if (!gles2_helper_->Initialize(mem_limits_.command_buffer_size)) {
|
| + if (!gles2_helper_->Initialize(memory_limits.command_buffer_size)) {
|
| LOG(ERROR) << "Failed to initialize GLES2CmdHelper.";
|
| return false;
|
| }
|
| @@ -249,11 +243,10 @@ bool WebGraphicsContext3DCommandBufferImpl::CreateContext() {
|
| support_client_side_arrays, command_buffer_.get()));
|
| SetGLInterface(real_gl_.get());
|
|
|
| - if (!real_gl_->Initialize(
|
| - mem_limits_.start_transfer_buffer_size,
|
| - mem_limits_.min_transfer_buffer_size,
|
| - mem_limits_.max_transfer_buffer_size,
|
| - mem_limits_.mapped_memory_reclaim_limit)) {
|
| + if (!real_gl_->Initialize(memory_limits.start_transfer_buffer_size,
|
| + memory_limits.min_transfer_buffer_size,
|
| + memory_limits.max_transfer_buffer_size,
|
| + memory_limits.mapped_memory_reclaim_limit)) {
|
| LOG(ERROR) << "Failed to initialize GLES2Implementation.";
|
| return false;
|
| }
|
| @@ -269,8 +262,9 @@ bool WebGraphicsContext3DCommandBufferImpl::CreateContext() {
|
| return true;
|
| }
|
|
|
| -bool WebGraphicsContext3DCommandBufferImpl::InitializeOnCurrentThread() {
|
| - if (!MaybeInitializeGL()) {
|
| +bool WebGraphicsContext3DCommandBufferImpl::InitializeOnCurrentThread(
|
| + const gpu::SharedMemoryLimits& memory_limits) {
|
| + if (!MaybeInitializeGL(memory_limits)) {
|
| DLOG(ERROR) << "Failed to initialize context.";
|
| return false;
|
| }
|
|
|