| Index: cc/trees/layer_tree_host_impl.cc
|
| diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc
|
| index b3911f86ac186be311f4a8878bd179a1853fdd51..f3bed36cfb03e3f8a3d68ecdbeae54867e978353 100644
|
| --- a/cc/trees/layer_tree_host_impl.cc
|
| +++ b/cc/trees/layer_tree_host_impl.cc
|
| @@ -1813,12 +1813,13 @@ void LayerTreeHostImpl::ReleaseTreeResources() {
|
| void LayerTreeHostImpl::CreateAndSetRenderer(
|
| OutputSurface* output_surface,
|
| ResourceProvider* resource_provider,
|
| - bool skip_gl_renderer) {
|
| + bool force_software_renderer) {
|
| DCHECK(!renderer_);
|
| - if (output_surface->capabilities().delegated_rendering) {
|
| + if (output_surface->capabilities().delegated_rendering &&
|
| + !force_software_renderer) {
|
| renderer_ = DelegatingRenderer::Create(
|
| this, &settings_, output_surface, resource_provider);
|
| - } else if (output_surface->context_provider() && !skip_gl_renderer) {
|
| + } else if (output_surface->context_provider() && !force_software_renderer) {
|
| renderer_ = GLRenderer::Create(this,
|
| &settings_,
|
| output_surface,
|
| @@ -1945,9 +1946,10 @@ bool LayerTreeHostImpl::InitializeRenderer(
|
| if (output_surface->capabilities().deferred_gl_initialization)
|
| EnforceZeroBudget(true);
|
|
|
| - bool skip_gl_renderer = false;
|
| + bool force_software_renderer =
|
| + output_surface->capabilities().deferred_gl_initialization;
|
| CreateAndSetRenderer(
|
| - output_surface.get(), resource_provider.get(), skip_gl_renderer);
|
| + output_surface.get(), resource_provider.get(), force_software_renderer);
|
|
|
| transfer_buffer_memory_limit_ =
|
| GetMaxTransferBufferUsageBytes(output_surface->context_provider().get());
|
| @@ -2015,9 +2017,9 @@ void LayerTreeHostImpl::DeferredInitialize() {
|
|
|
| resource_provider_->InitializeGL();
|
|
|
| - bool skip_gl_renderer = false;
|
| + bool force_software_renderer = false;
|
| CreateAndSetRenderer(
|
| - output_surface_.get(), resource_provider_.get(), skip_gl_renderer);
|
| + output_surface_.get(), resource_provider_.get(), force_software_renderer);
|
|
|
| EnforceZeroBudget(false);
|
| client_->SetNeedsCommitOnImplThread();
|
| @@ -2037,9 +2039,9 @@ void LayerTreeHostImpl::ReleaseGL() {
|
| staging_resource_pool_.reset();
|
| resource_provider_->InitializeSoftware();
|
|
|
| - bool skip_gl_renderer = true;
|
| + bool force_software_renderer = true;
|
| CreateAndSetRenderer(
|
| - output_surface_.get(), resource_provider_.get(), skip_gl_renderer);
|
| + output_surface_.get(), resource_provider_.get(), force_software_renderer);
|
|
|
| EnforceZeroBudget(true);
|
| DCHECK(GetRendererCapabilities().using_map_image);
|
|
|