| 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 2294bb5885caeaf89ae838229ced63c8082bd76b..44da1048eb5b92d11e3293b9072adcd354f60d93 100644
|
| --- a/cc/trees/layer_tree_host_impl.cc
|
| +++ b/cc/trees/layer_tree_host_impl.cc
|
| @@ -573,7 +573,10 @@ static DrawMode GetDrawMode(OutputSurface* output_surface) {
|
| return DRAW_MODE_HARDWARE;
|
| } else {
|
| DCHECK_EQ(!output_surface->software_device(),
|
| - output_surface->capabilities().delegated_rendering);
|
| + output_surface->capabilities().delegated_rendering &&
|
| + !output_surface->capabilities().deferred_gl_initialization)
|
| + << output_surface->capabilities().delegated_rendering << " "
|
| + << output_surface->capabilities().deferred_gl_initialization;
|
| return DRAW_MODE_SOFTWARE;
|
| }
|
| }
|
| @@ -1823,13 +1826,12 @@ void LayerTreeHostImpl::ReleaseTreeResources() {
|
|
|
| void LayerTreeHostImpl::CreateAndSetRenderer(
|
| OutputSurface* output_surface,
|
| - ResourceProvider* resource_provider,
|
| - bool skip_gl_renderer) {
|
| + ResourceProvider* resource_provider) {
|
| DCHECK(!renderer_);
|
| if (output_surface->capabilities().delegated_rendering) {
|
| renderer_ = DelegatingRenderer::Create(
|
| this, &settings_, output_surface, resource_provider);
|
| - } else if (output_surface->context_provider() && !skip_gl_renderer) {
|
| + } else if (output_surface->context_provider()) {
|
| renderer_ = GLRenderer::Create(this,
|
| &settings_,
|
| output_surface,
|
| @@ -1956,9 +1958,7 @@ bool LayerTreeHostImpl::InitializeRenderer(
|
| if (output_surface->capabilities().deferred_gl_initialization)
|
| EnforceZeroBudget(true);
|
|
|
| - bool skip_gl_renderer = false;
|
| - CreateAndSetRenderer(
|
| - output_surface.get(), resource_provider.get(), skip_gl_renderer);
|
| + CreateAndSetRenderer(output_surface.get(), resource_provider.get());
|
|
|
| transfer_buffer_memory_limit_ =
|
| GetMaxTransferBufferUsageBytes(output_surface->context_provider().get());
|
| @@ -2026,9 +2026,7 @@ void LayerTreeHostImpl::DeferredInitialize() {
|
|
|
| resource_provider_->InitializeGL();
|
|
|
| - bool skip_gl_renderer = false;
|
| - CreateAndSetRenderer(
|
| - output_surface_.get(), resource_provider_.get(), skip_gl_renderer);
|
| + CreateAndSetRenderer(output_surface_.get(), resource_provider_.get());
|
|
|
| EnforceZeroBudget(false);
|
| client_->SetNeedsCommitOnImplThread();
|
| @@ -2048,9 +2046,8 @@ void LayerTreeHostImpl::ReleaseGL() {
|
| staging_resource_pool_.reset();
|
| resource_provider_->InitializeSoftware();
|
|
|
| - bool skip_gl_renderer = true;
|
| - CreateAndSetRenderer(
|
| - output_surface_.get(), resource_provider_.get(), skip_gl_renderer);
|
| + output_surface_->ReleaseContextProvider();
|
| + CreateAndSetRenderer(output_surface_.get(), resource_provider_.get());
|
|
|
| EnforceZeroBudget(true);
|
| DCHECK(GetRendererCapabilities().using_map_image);
|
|
|