Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4853)

Unified Diff: cc/trees/layer_tree_host_impl.cc

Issue 286953008: cc: Allow DeferredInitialize to use DelegatingRenderer (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: bring back force_software_renderer Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cc/test/fake_output_surface.h ('k') | cc/trees/layer_tree_host_impl_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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) {
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);
boliu 2014/05/20 20:37:49 Sorry, realized we do need force_software_renderer
« no previous file with comments | « cc/test/fake_output_surface.h ('k') | cc/trees/layer_tree_host_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698