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

Side by Side Diff: content/renderer/gpu/render_widget_compositor.cc

Issue 2083423006: Remove default begin frame sources from the renderer (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 4 years, 3 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 unified diff | Download patch
« no previous file with comments | « content/renderer/gpu/compositor_output_surface.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/renderer/gpu/render_widget_compositor.h" 5 #include "content/renderer/gpu/render_widget_compositor.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <limits> 8 #include <limits>
9 #include <string> 9 #include <string>
10 #include <utility> 10 #include <utility>
(...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after
237 params.shared_bitmap_manager = compositor_deps_->GetSharedBitmapManager(); 237 params.shared_bitmap_manager = compositor_deps_->GetSharedBitmapManager();
238 params.gpu_memory_buffer_manager = 238 params.gpu_memory_buffer_manager =
239 compositor_deps_->GetGpuMemoryBufferManager(); 239 compositor_deps_->GetGpuMemoryBufferManager();
240 params.settings = &settings; 240 params.settings = &settings;
241 params.task_graph_runner = compositor_deps_->GetTaskGraphRunner(); 241 params.task_graph_runner = compositor_deps_->GetTaskGraphRunner();
242 params.main_task_runner = 242 params.main_task_runner =
243 compositor_deps_->GetCompositorMainThreadTaskRunner(); 243 compositor_deps_->GetCompositorMainThreadTaskRunner();
244 if (settings.use_external_begin_frame_source) { 244 if (settings.use_external_begin_frame_source) {
245 params.external_begin_frame_source = 245 params.external_begin_frame_source =
246 delegate_->CreateExternalBeginFrameSource(); 246 delegate_->CreateExternalBeginFrameSource();
247 } else {
248 DCHECK(settings.use_output_surface_begin_frame_source);
247 } 249 }
248 params.animation_host = cc::AnimationHost::CreateMainInstance(); 250 params.animation_host = cc::AnimationHost::CreateMainInstance();
249 251
250 if (cmd->HasSwitch(switches::kUseRemoteCompositing)) { 252 if (cmd->HasSwitch(switches::kUseRemoteCompositing)) {
251 DCHECK(!threaded_); 253 DCHECK(!threaded_);
252 params.image_serialization_processor = 254 params.image_serialization_processor =
253 compositor_deps_->GetImageSerializationProcessor(); 255 compositor_deps_->GetImageSerializationProcessor();
254 layer_tree_host_ = cc::LayerTreeHost::CreateRemoteServer(this, &params); 256 layer_tree_host_ = cc::LayerTreeHost::CreateRemoteServer(this, &params);
255 } else if (!threaded_) { 257 } else if (!threaded_) {
256 // Single-threaded layout tests. 258 // Single-threaded layout tests.
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after
429 // raster-on-demand already, so now we reserve 50% _only_ to avoid 431 // raster-on-demand already, so now we reserve 50% _only_ to avoid
430 // raster-on-demand, and use 50% of the memory otherwise. 432 // raster-on-demand, and use 50% of the memory otherwise.
431 settings.max_memory_for_prepaint_percentage = 50; 433 settings.max_memory_for_prepaint_percentage = 50;
432 } 434 }
433 // Webview does not own the surface so should not clear it. 435 // Webview does not own the surface so should not clear it.
434 settings.renderer_settings.should_clear_root_render_pass = 436 settings.renderer_settings.should_clear_root_render_pass =
435 !using_synchronous_compositor; 437 !using_synchronous_compositor;
436 438
437 // TODO(danakj): Only do this on low end devices. 439 // TODO(danakj): Only do this on low end devices.
438 settings.create_low_res_tiling = true; 440 settings.create_low_res_tiling = true;
439
440 settings.use_external_begin_frame_source = true;
441
442 #else // defined(OS_ANDROID) 441 #else // defined(OS_ANDROID)
443 #if !defined(OS_MACOSX) 442 #if !defined(OS_MACOSX)
444 if (ui::ShouldHideScrollbars()) { 443 if (ui::ShouldHideScrollbars()) {
445 settings.scrollbar_animator = cc::LayerTreeSettings::NO_ANIMATOR; 444 settings.scrollbar_animator = cc::LayerTreeSettings::NO_ANIMATOR;
446 settings.solid_color_scrollbar_color = SK_ColorTRANSPARENT; 445 settings.solid_color_scrollbar_color = SK_ColorTRANSPARENT;
447 } else if (ui::IsOverlayScrollbarEnabled()) { 446 } else if (ui::IsOverlayScrollbarEnabled()) {
448 settings.scrollbar_animator = cc::LayerTreeSettings::THINNING; 447 settings.scrollbar_animator = cc::LayerTreeSettings::THINNING;
449 settings.solid_color_scrollbar_color = SkColorSetARGB(128, 128, 128, 128); 448 settings.solid_color_scrollbar_color = SkColorSetARGB(128, 128, 128, 128);
450 } else { 449 } else {
451 settings.scrollbar_animator = cc::LayerTreeSettings::LINEAR_FADE; 450 settings.scrollbar_animator = cc::LayerTreeSettings::LINEAR_FADE;
(...skipping 16 matching lines...) Expand all
468 settings.gpu_decoded_image_budget_bytes = 96 * 1024 * 1024; 467 settings.gpu_decoded_image_budget_bytes = 96 * 1024 * 1024;
469 settings.software_decoded_image_budget_bytes = 128 * 1024 * 1024; 468 settings.software_decoded_image_budget_bytes = 128 * 1024 * 1024;
470 } 469 }
471 470
472 #endif // defined(OS_ANDROID) 471 #endif // defined(OS_ANDROID)
473 472
474 if (cmd.HasSwitch(switches::kEnableLowResTiling)) 473 if (cmd.HasSwitch(switches::kEnableLowResTiling))
475 settings.create_low_res_tiling = true; 474 settings.create_low_res_tiling = true;
476 if (cmd.HasSwitch(switches::kDisableLowResTiling)) 475 if (cmd.HasSwitch(switches::kDisableLowResTiling))
477 settings.create_low_res_tiling = false; 476 settings.create_low_res_tiling = false;
478 settings.use_external_begin_frame_source = true; 477
478 // TODO(enne): fold external BFS into output surface BFS.
479 if (cmd.HasSwitch(switches::kUseRemoteCompositing)) {
480 settings.use_output_surface_begin_frame_source = true;
481 settings.use_external_begin_frame_source = false;
482 } else {
483 settings.use_output_surface_begin_frame_source = false;
484 settings.use_external_begin_frame_source = true;
485 }
479 486
480 if (cmd.HasSwitch(switches::kEnableRGBA4444Textures) && 487 if (cmd.HasSwitch(switches::kEnableRGBA4444Textures) &&
481 !cmd.HasSwitch(switches::kDisableRGBA4444Textures)) { 488 !cmd.HasSwitch(switches::kDisableRGBA4444Textures)) {
482 settings.renderer_settings.preferred_tile_format = cc::RGBA_4444; 489 settings.renderer_settings.preferred_tile_format = cc::RGBA_4444;
483 } 490 }
484 491
485 if (cmd.HasSwitch(cc::switches::kEnableTileCompression)) { 492 if (cmd.HasSwitch(cc::switches::kEnableTileCompression)) {
486 settings.renderer_settings.preferred_tile_format = cc::ETC1; 493 settings.renderer_settings.preferred_tile_format = cc::ETC1;
487 } 494 }
488 495
489 settings.max_staging_buffer_usage_in_bytes = 32 * 1024 * 1024; // 32MB 496 settings.max_staging_buffer_usage_in_bytes = 32 * 1024 * 1024; // 32MB
490 // Use 1/4th of staging buffers on low-end devices. 497 // Use 1/4th of staging buffers on low-end devices.
491 if (base::SysInfo::IsLowEndDevice()) 498 if (base::SysInfo::IsLowEndDevice())
492 settings.max_staging_buffer_usage_in_bytes /= 4; 499 settings.max_staging_buffer_usage_in_bytes /= 4;
493 500
494 cc::ManagedMemoryPolicy current = settings.memory_policy_; 501 cc::ManagedMemoryPolicy current = settings.memory_policy_;
495 settings.memory_policy_ = GetGpuMemoryPolicy(current); 502 settings.memory_policy_ = GetGpuMemoryPolicy(current);
496 503
497 settings.use_cached_picture_raster = 504 settings.use_cached_picture_raster =
498 !cmd.HasSwitch(cc::switches::kDisableCachedPictureRaster); 505 !cmd.HasSwitch(cc::switches::kDisableCachedPictureRaster);
499 506
500 if (cmd.HasSwitch(switches::kUseRemoteCompositing))
501 settings.use_external_begin_frame_source = false;
502
503 return settings; 507 return settings;
504 } 508 }
505 509
506 // static 510 // static
507 cc::ManagedMemoryPolicy RenderWidgetCompositor::GetGpuMemoryPolicy( 511 cc::ManagedMemoryPolicy RenderWidgetCompositor::GetGpuMemoryPolicy(
508 const cc::ManagedMemoryPolicy& policy) { 512 const cc::ManagedMemoryPolicy& policy) {
509 cc::ManagedMemoryPolicy actual = policy; 513 cc::ManagedMemoryPolicy actual = policy;
510 actual.bytes_limit_when_visible = 0; 514 actual.bytes_limit_when_visible = 0;
511 515
512 // If the value was overridden on the command line, use the specified value. 516 // If the value was overridden on the command line, use the specified value.
(...skipping 624 matching lines...) Expand 10 before | Expand all | Expand 10 after
1137 1141
1138 remote_proto_channel_receiver_->OnProtoReceived(std::move(deserialized)); 1142 remote_proto_channel_receiver_->OnProtoReceived(std::move(deserialized));
1139 } 1143 }
1140 1144
1141 void RenderWidgetCompositor::SetPaintedDeviceScaleFactor( 1145 void RenderWidgetCompositor::SetPaintedDeviceScaleFactor(
1142 float device_scale) { 1146 float device_scale) {
1143 layer_tree_host_->GetLayerTree()->SetPaintedDeviceScaleFactor(device_scale); 1147 layer_tree_host_->GetLayerTree()->SetPaintedDeviceScaleFactor(device_scale);
1144 } 1148 }
1145 1149
1146 } // namespace content 1150 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/gpu/compositor_output_surface.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698