Chromium Code Reviews| 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..778af346a1d4af3214ee8071a6ae78d322c905a5 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; |
| } |
| } |
| @@ -1813,12 +1816,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) { |
|
danakj
2014/05/20 18:09:51
Ok I am confused by this change here. Delegated re
boliu
2014/05/20 18:31:49
Hmm, I think you are right.
The resourceless soft
|
| 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 +1949,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 +2020,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 +2042,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); |