| 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..351708c361c427722cf724556c37b489bab389f9 100644
|
| --- a/cc/trees/layer_tree_host_impl.cc
|
| +++ b/cc/trees/layer_tree_host_impl.cc
|
| @@ -572,7 +572,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;
|
| }
|
| }
|
| @@ -1812,13 +1815,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,
|
| @@ -1945,9 +1947,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());
|
| @@ -2015,9 +2015,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();
|
| @@ -2037,9 +2035,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);
|
|
|