Chromium Code Reviews| Index: content/renderer/gpu/render_widget_compositor.cc |
| diff --git a/content/renderer/gpu/render_widget_compositor.cc b/content/renderer/gpu/render_widget_compositor.cc |
| index c73ca064a9d6fcc57e93ca15291a46c23b664ace..14571894bb12b3ac399a8ec81b4a8d03409fb427 100644 |
| --- a/content/renderer/gpu/render_widget_compositor.cc |
| +++ b/content/renderer/gpu/render_widget_compositor.cc |
| @@ -38,6 +38,7 @@ |
| #include "cc/proto/compositor_message.pb.h" |
| #include "cc/resources/single_release_callback.h" |
| #include "cc/scheduler/begin_frame_source.h" |
| +#include "cc/tiles/picture_layer_tiling.h" |
|
enne (OOO)
2016/06/28 18:39:02
?
|
| #include "cc/trees/latency_info_swap_promise_monitor.h" |
| #include "cc/trees/layer_tree_host.h" |
| #include "cc/trees/remote_proto_channel.h" |
| @@ -62,7 +63,6 @@ |
| #if defined(OS_ANDROID) |
| #include "base/android/build_info.h" |
| -#include "ui/gfx/android/device_display_info.h" |
| #endif |
| namespace base { |
| @@ -136,58 +136,6 @@ cc::LayerSelection ConvertWebSelection(const WebSelection& web_selection) { |
| return cc_selection; |
| } |
| -gfx::Size CalculateDefaultTileSize(float initial_device_scale_factor) { |
| - int default_tile_size = 256; |
| -#if defined(OS_ANDROID) |
| - // TODO(epenner): unify this for all platforms if it |
| - // makes sense (http://crbug.com/159524) |
| - |
| - gfx::DeviceDisplayInfo info; |
| - bool real_size_supported = true; |
| - int display_width = info.GetPhysicalDisplayWidth(); |
| - int display_height = info.GetPhysicalDisplayHeight(); |
| - if (display_width == 0 || display_height == 0) { |
| - real_size_supported = false; |
| - display_width = info.GetDisplayWidth(); |
| - display_height = info.GetDisplayHeight(); |
| - } |
| - |
| - int portrait_width = std::min(display_width, display_height); |
| - int landscape_width = std::max(display_width, display_height); |
| - |
| - if (real_size_supported) { |
| - // Maximum HD dimensions should be 768x1280 |
| - // Maximum FHD dimensions should be 1200x1920 |
| - if (portrait_width > 768 || landscape_width > 1280) |
| - default_tile_size = 384; |
| - if (portrait_width > 1200 || landscape_width > 1920) |
| - default_tile_size = 512; |
| - |
| - // Adjust for some resolutions that barely straddle an extra |
| - // tile when in portrait mode. This helps worst case scroll/raster |
| - // by not needing a full extra tile for each row. |
| - if (default_tile_size == 256 && portrait_width == 768) |
| - default_tile_size += 32; |
| - if (default_tile_size == 384 && portrait_width == 1200) |
| - default_tile_size += 32; |
| - } else { |
| - // We don't know the exact resolution due to screen controls etc. |
| - // So this just estimates the values above using tile counts. |
| - int numTiles = (display_width * display_height) / (256 * 256); |
| - if (numTiles > 16) |
| - default_tile_size = 384; |
| - if (numTiles >= 40) |
| - default_tile_size = 512; |
| - } |
| -#elif defined(OS_CHROMEOS) || defined(OS_MACOSX) |
| - // Use 512 for high DPI (dsf=2.0f) devices. |
| - if (initial_device_scale_factor >= 2.0f) |
| - default_tile_size = 512; |
| -#endif |
| - |
| - return gfx::Size(default_tile_size, default_tile_size); |
| -} |
| - |
| // Check cc::TopControlsState, and blink::WebTopControlsState |
| // are kept in sync. |
| static_assert(int(blink::WebTopControlsBoth) == int(cc::BOTH), |
| @@ -289,38 +237,6 @@ cc::LayerTreeSettings RenderWidgetCompositor::GenerateLayerTreeSettings( |
| settings.main_frame_before_activation_enabled = |
| cmd.HasSwitch(cc::switches::kEnableMainFrameBeforeActivation); |
| - // TODO(danakj): This should not be a setting O_O; it should change when the |
| - // device scale factor on LayerTreeHost changes. |
| - settings.default_tile_size = CalculateDefaultTileSize(device_scale_factor); |
| - if (cmd.HasSwitch(switches::kDefaultTileWidth)) { |
| - int tile_width = 0; |
| - GetSwitchValueAsInt(cmd, switches::kDefaultTileWidth, 1, |
| - std::numeric_limits<int>::max(), &tile_width); |
| - settings.default_tile_size.set_width(tile_width); |
| - } |
| - if (cmd.HasSwitch(switches::kDefaultTileHeight)) { |
| - int tile_height = 0; |
| - GetSwitchValueAsInt(cmd, switches::kDefaultTileHeight, 1, |
| - std::numeric_limits<int>::max(), &tile_height); |
| - settings.default_tile_size.set_height(tile_height); |
| - } |
| - |
| - int max_untiled_layer_width = settings.max_untiled_layer_size.width(); |
| - if (cmd.HasSwitch(switches::kMaxUntiledLayerWidth)) { |
| - GetSwitchValueAsInt(cmd, switches::kMaxUntiledLayerWidth, 1, |
| - std::numeric_limits<int>::max(), |
| - &max_untiled_layer_width); |
| - } |
| - int max_untiled_layer_height = settings.max_untiled_layer_size.height(); |
| - if (cmd.HasSwitch(switches::kMaxUntiledLayerHeight)) { |
| - GetSwitchValueAsInt(cmd, switches::kMaxUntiledLayerHeight, 1, |
| - std::numeric_limits<int>::max(), |
| - &max_untiled_layer_height); |
| - } |
| - |
| - settings.max_untiled_layer_size = gfx::Size(max_untiled_layer_width, |
| - max_untiled_layer_height); |
| - |
| settings.gpu_rasterization_msaa_sample_count = |
| compositor_deps->GetGpuRasterizationMSAASampleCount(); |
| settings.gpu_rasterization_forced = |
| @@ -405,6 +321,9 @@ cc::LayerTreeSettings RenderWidgetCompositor::GenerateLayerTreeSettings( |
| bool using_synchronous_compositor = |
| GetContentClient()->UsingSynchronousCompositing(); |
| + // TODO(crbug.com/622885): Android viewport is assumed to be fixed forever. |
| + settings.use_viewport_for_tile_size = true; |
| + |
| // We can't use GPU rasterization on low-end devices, because the Ganesh |
| // cache would consume too much memory. |
| if (base::SysInfo::IsLowEndDevice()) |