Index: blimp/client/support/compositor/blimp_layer_tree_settings.cc |
diff --git a/blimp/client/support/compositor/blimp_layer_tree_settings.cc b/blimp/client/support/compositor/blimp_layer_tree_settings.cc |
deleted file mode 100644 |
index 0971dfb8d4738c205d7851f72cf61549953ee302..0000000000000000000000000000000000000000 |
--- a/blimp/client/support/compositor/blimp_layer_tree_settings.cc |
+++ /dev/null |
@@ -1,177 +0,0 @@ |
-// Copyright 2015 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "blimp/client/support/compositor/blimp_layer_tree_settings.h" |
- |
-#include "base/command_line.h" |
-#include "base/logging.h" |
-#include "base/macros.h" |
-#include "base/strings/string_number_conversions.h" |
-#include "base/strings/string_split.h" |
-#include "base/sys_info.h" |
-#include "blimp/client/support/compositor/blimp_gpu_memory_buffer_manager.h" |
-#include "cc/base/switches.h" |
-#include "cc/trees/layer_tree_settings.h" |
-#include "third_party/skia/include/core/SkColor.h" |
-#include "ui/gfx/buffer_types.h" |
-#include "ui/gl/gl_switches.h" |
- |
-namespace blimp { |
-namespace client { |
- |
-// TODO(dtrainor): This is temporary to get the compositor up and running. |
-// Much of this will either have to be pulled from the server or refactored to |
-// share the settings from render_widget_compositor.cc. |
-void PopulateCommonLayerTreeSettings(cc::LayerTreeSettings* settings) { |
- // For web contents, layer transforms should scale up the contents of layers |
- // to keep content always crisp when possible. |
- settings->layer_transforms_should_scale_layer_contents = true; |
- |
- settings->main_frame_before_activation_enabled = false; |
- settings->default_tile_size = gfx::Size(256, 256); |
- settings->gpu_rasterization_msaa_sample_count = 0; |
- settings->gpu_rasterization_forced = false; |
- settings->gpu_rasterization_enabled = false; |
- settings->can_use_lcd_text = false; |
- settings->use_distance_field_text = false; |
-#if defined(OS_MACOSX) |
- settings->use_zero_copy = true; |
-#else |
- settings->use_zero_copy = false; |
-#endif |
- settings->enable_elastic_overscroll = false; |
- settings->image_decode_tasks_enabled = false; |
- settings->single_thread_proxy_scheduler = false; |
- settings->initial_debug_state.show_debug_borders = false; |
- settings->initial_debug_state.show_fps_counter = false; |
- settings->initial_debug_state.show_layer_animation_bounds_rects = false; |
- settings->initial_debug_state.show_paint_rects = false; |
- settings->initial_debug_state.show_property_changed_rects = false; |
- settings->initial_debug_state.show_surface_damage_rects = false; |
- settings->initial_debug_state.show_screen_space_rects = false; |
- settings->initial_debug_state.SetRecordRenderingStats(false); |
- |
-#if defined(OS_ANDROID) |
- if (base::SysInfo::IsLowEndDevice()) |
- settings->gpu_rasterization_enabled = false; |
- settings->using_synchronous_renderer_compositor = false; |
- settings->scrollbar_animator = cc::LayerTreeSettings::LINEAR_FADE; |
- settings->scrollbar_fade_delay = base::TimeDelta::FromMilliseconds(300); |
- settings->scrollbar_fade_resize_delay = base::TimeDelta::FromSeconds(2); |
- settings->scrollbar_fade_duration = base::TimeDelta::FromMilliseconds(300); |
- settings->solid_color_scrollbar_color = SkColorSetARGB(128, 128, 128, 128); |
- settings->renderer_settings.highp_threshold_min = 2048; |
- settings->ignore_root_layer_flings = false; |
- bool use_low_memory_policy = base::SysInfo::IsLowEndDevice(); |
- if (use_low_memory_policy) { |
- // On low-end we want to be very carefull about killing other |
- // apps. So initially we use 50% more memory to avoid flickering |
- // or raster-on-demand. |
- settings->max_memory_for_prepaint_percentage = 67; |
- |
- settings->renderer_settings.preferred_tile_format = cc::RGBA_4444; |
- } else { |
- // On other devices we have increased memory excessively to avoid |
- // raster-on-demand already, so now we reserve 50% _only_ to avoid |
- // raster-on-demand, and use 50% of the memory otherwise. |
- settings->max_memory_for_prepaint_percentage = 50; |
- } |
- settings->renderer_settings.should_clear_root_render_pass = true; |
- |
- // TODO(danakj): Only do this on low end devices. |
- settings->create_low_res_tiling = true; |
- |
-#elif !defined(OS_MACOSX) |
- settings->scrollbar_animator = cc::LayerTreeSettings::LINEAR_FADE; |
- settings->solid_color_scrollbar_color = SkColorSetARGB(128, 128, 128, 128); |
- settings->scrollbar_fade_delay = base::TimeDelta::FromMilliseconds(500); |
- settings->scrollbar_fade_resize_delay = |
- base::TimeDelta::FromMilliseconds(500); |
- settings->scrollbar_fade_duration = base::TimeDelta::FromMilliseconds(300); |
- |
-// When pinching in, only show the pinch-viewport overlay scrollbars if the |
-// page scale is at least some threshold away from the minimum. i.e. don't |
-// show the pinch scrollbars when at minimum scale. |
-// TODO(dtrainor): Update this since https://crrev.com/1267603004 landed. |
-// settings->scrollbar_show_scale_threshold = 1.05f; |
-#endif |
- |
- // Set the gpu memory policy. |
- cc::ManagedMemoryPolicy& memory_policy = settings->gpu_memory_policy; |
- memory_policy.bytes_limit_when_visible = 0; |
- |
-#if defined(OS_ANDROID) |
- // We can't query available GPU memory from the system on Android. |
- // Physical memory is also mis-reported sometimes (eg. Nexus 10 reports |
- // 1262MB when it actually has 2GB, while Razr M has 1GB but only reports |
- // 128MB java heap size). First we estimate physical memory using both. |
- size_t dalvik_mb = base::SysInfo::DalvikHeapSizeMB(); |
- size_t physical_mb = base::SysInfo::AmountOfPhysicalMemoryMB(); |
- size_t physical_memory_mb = 0; |
- if (dalvik_mb >= 256) |
- physical_memory_mb = dalvik_mb * 4; |
- else |
- physical_memory_mb = std::max(dalvik_mb * 4, (physical_mb * 4) / 3); |
- |
- // Now we take a default of 1/8th of memory on high-memory devices, |
- // and gradually scale that back for low-memory devices (to be nicer |
- // to other apps so they don't get killed). Examples: |
- // Nexus 4/10(2GB) 256MB (normally 128MB) |
- // Droid Razr M(1GB) 114MB (normally 57MB) |
- // Galaxy Nexus(1GB) 100MB (normally 50MB) |
- // Xoom(1GB) 100MB (normally 50MB) |
- // Nexus S(low-end) 8MB (normally 8MB) |
- // Note that the compositor now uses only some of this memory for |
- // pre-painting and uses the rest only for 'emergencies'. |
- if (memory_policy.bytes_limit_when_visible == 0) { |
- // NOTE: Non-low-end devices use only 50% of these limits, |
- // except during 'emergencies' where 100% can be used. |
- if (!base::SysInfo::IsLowEndDevice()) { |
- if (physical_memory_mb >= 1536) |
- memory_policy.bytes_limit_when_visible = |
- physical_memory_mb / 8; // >192MB |
- else if (physical_memory_mb >= 1152) |
- memory_policy.bytes_limit_when_visible = |
- physical_memory_mb / 8; // >144MB |
- else if (physical_memory_mb >= 768) |
- memory_policy.bytes_limit_when_visible = |
- physical_memory_mb / 10; // >76MB |
- else |
- memory_policy.bytes_limit_when_visible = |
- physical_memory_mb / 12; // <64MB |
- } else { |
- // Low-end devices have 512MB or less memory by definition |
- // so we hard code the limit rather than relying on the heuristics |
- // above. Low-end devices use 4444 textures so we can use a lower limit. |
- memory_policy.bytes_limit_when_visible = 8; |
- } |
- memory_policy.bytes_limit_when_visible = |
- memory_policy.bytes_limit_when_visible * 1024 * 1024; |
- // Clamp the observed value to a specific range on Android. |
- memory_policy.bytes_limit_when_visible = |
- std::max(memory_policy.bytes_limit_when_visible, |
- static_cast<size_t>(8 * 1024 * 1024)); |
- memory_policy.bytes_limit_when_visible = |
- std::min(memory_policy.bytes_limit_when_visible, |
- static_cast<size_t>(256 * 1024 * 1024)); |
- } |
- memory_policy.priority_cutoff_when_visible = |
- gpu::MemoryAllocation::CUTOFF_ALLOW_EVERYTHING; |
-#else |
- // Ignore what the system said and give all clients the same maximum |
- // allocation on desktop platforms. |
- memory_policy.bytes_limit_when_visible = 512 * 1024 * 1024; |
- memory_policy.priority_cutoff_when_visible = |
- gpu::MemoryAllocation::CUTOFF_ALLOW_NICE_TO_HAVE; |
-#endif |
- |
- int default_tile_size = 256; |
- settings->default_tile_size.SetSize(default_tile_size, default_tile_size); |
- |
- settings->renderer_settings.buffer_to_texture_target_map = |
- BlimpGpuMemoryBufferManager::GetDefaultBufferToTextureTargetMap(); |
-} |
- |
-} // namespace client |
-} // namespace blimp |