summaryrefslogtreecommitdiffstats
path: root/content/renderer
diff options
context:
space:
mode:
authoranton@chromium.org <anton@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-03-18 22:36:55 +0000
committeranton@chromium.org <anton@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-03-18 22:36:55 +0000
commitcf5e989ddd7831b0d50e4b076b68ff8306b7c899 (patch)
tree432af06fb8ea25c2926e7905aef65bc6e5a5d3a5 /content/renderer
parent421c150eb78989b877aa621359a7af43a548c49d (diff)
downloadchromium_src-cf5e989ddd7831b0d50e4b076b68ff8306b7c899.zip
chromium_src-cf5e989ddd7831b0d50e4b076b68ff8306b7c899.tar.gz
chromium_src-cf5e989ddd7831b0d50e4b076b68ff8306b7c899.tar.bz2
Add --disable-low-res-tiling. Disable low res tiling to save power.
Generating low resolution tiles uses about 10% of the power used by pages that have gif animations (measured on Nexus 4). These are the most common pages on which chrome consumes above baseline power. It is unclear whether low resolutions are still valuable. It is likely that having low resolution tiles is more useful on older devices. For the moment providing this as a flag, so that it is easier to investigate whether dropping low resolution tiles is reasonable. Default behavior is unchanged, low resolution tiles are enabled. BUG= Review URL: https://codereview.chromium.org/196473007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@257790 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/renderer')
-rw-r--r--content/renderer/gpu/render_widget_compositor.cc2
-rw-r--r--content/renderer/render_thread_impl.cc6
-rw-r--r--content/renderer/render_thread_impl.h3
3 files changed, 11 insertions, 0 deletions
diff --git a/content/renderer/gpu/render_widget_compositor.cc b/content/renderer/gpu/render_widget_compositor.cc
index d5a258b..f059451 100644
--- a/content/renderer/gpu/render_widget_compositor.cc
+++ b/content/renderer/gpu/render_widget_compositor.cc
@@ -142,6 +142,8 @@ scoped_ptr<RenderWidgetCompositor> RenderWidgetCompositor::Create(
settings.rasterization_site = cc::LayerTreeSettings::HybridRasterization;
else
settings.rasterization_site = cc::LayerTreeSettings::CpuRasterization;
+ settings.create_low_res_tiling =
+ RenderThreadImpl::current()->is_low_res_tiling_enabled();
settings.calculate_top_controls_position =
cmd->HasSwitch(cc::switches::kEnableTopControlsPositionCalculation);
diff --git a/content/renderer/render_thread_impl.cc b/content/renderer/render_thread_impl.cc
index ccdb4cc..a6e616f 100644
--- a/content/renderer/render_thread_impl.cc
+++ b/content/renderer/render_thread_impl.cc
@@ -445,6 +445,12 @@ void RenderThreadImpl::Init() {
}
}
+ is_low_res_tiling_enabled_ = !is_gpu_rasterization_enabled_;
+ if (command_line.HasSwitch(switches::kDisableLowResTiling) &&
+ !command_line.HasSwitch(switches::kEnableLowResTiling)) {
+ is_low_res_tiling_enabled_ = false;
+ }
+
// Note that under Linux, the media library will normally already have
// been initialized by the Zygote before this instance became a Renderer.
base::FilePath media_path;
diff --git a/content/renderer/render_thread_impl.h b/content/renderer/render_thread_impl.h
index 192cb8a8..88e0c3d 100644
--- a/content/renderer/render_thread_impl.h
+++ b/content/renderer/render_thread_impl.h
@@ -212,6 +212,8 @@ class CONTENT_EXPORT RenderThreadImpl : public RenderThread,
return is_impl_side_painting_enabled_;
}
+ bool is_low_res_tiling_enabled() const { return is_low_res_tiling_enabled_; }
+
bool is_lcd_text_enabled() const { return is_lcd_text_enabled_; }
bool is_map_image_enabled() const { return is_map_image_enabled_; }
@@ -532,6 +534,7 @@ class CONTENT_EXPORT RenderThreadImpl : public RenderThread,
bool is_gpu_rasterization_enabled_;
bool is_gpu_rasterization_forced_;
bool is_impl_side_painting_enabled_;
+ bool is_low_res_tiling_enabled_;
bool is_lcd_text_enabled_;
bool is_map_image_enabled_;