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

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

Issue 696413003: cc: Introduce forward_begin_frames_to_children and use_external_begin_frame_source (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@sep
Patch Set: rebase on master Created 6 years, 1 month 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 | « cc/trees/layer_tree_settings.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 <limits> 7 #include <limits>
8 #include <string> 8 #include <string>
9 9
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after
169 CommandLine* cmd = CommandLine::ForCurrentProcess(); 169 CommandLine* cmd = CommandLine::ForCurrentProcess();
170 170
171 cc::LayerTreeSettings settings; 171 cc::LayerTreeSettings settings;
172 172
173 // For web contents, layer transforms should scale up the contents of layers 173 // For web contents, layer transforms should scale up the contents of layers
174 // to keep content always crisp when possible. 174 // to keep content always crisp when possible.
175 settings.layer_transforms_should_scale_layer_contents = true; 175 settings.layer_transforms_should_scale_layer_contents = true;
176 176
177 settings.throttle_frame_production = 177 settings.throttle_frame_production =
178 !cmd->HasSwitch(switches::kDisableGpuVsync); 178 !cmd->HasSwitch(switches::kDisableGpuVsync);
179 settings.begin_frame_scheduling_enabled = 179 settings.use_external_begin_frame_source =
180 cmd->HasSwitch(switches::kEnableBeginFrameScheduling); 180 cmd->HasSwitch(switches::kEnableBeginFrameScheduling);
181 settings.main_frame_before_activation_enabled = 181 settings.main_frame_before_activation_enabled =
182 cmd->HasSwitch(cc::switches::kEnableMainFrameBeforeActivation) && 182 cmd->HasSwitch(cc::switches::kEnableMainFrameBeforeActivation) &&
183 !cmd->HasSwitch(cc::switches::kDisableMainFrameBeforeActivation); 183 !cmd->HasSwitch(cc::switches::kDisableMainFrameBeforeActivation);
184 settings.report_overscroll_only_for_scrollable_axes = true; 184 settings.report_overscroll_only_for_scrollable_axes = true;
185 settings.accelerated_animation_enabled = 185 settings.accelerated_animation_enabled =
186 !cmd->HasSwitch(cc::switches::kDisableThreadedAnimation); 186 !cmd->HasSwitch(cc::switches::kDisableThreadedAnimation);
187 187
188 settings.default_tile_size = CalculateDefaultTileSize(); 188 settings.default_tile_size = CalculateDefaultTileSize();
189 if (cmd->HasSwitch(switches::kDefaultTileWidth)) { 189 if (cmd->HasSwitch(switches::kDefaultTileWidth)) {
(...skipping 343 matching lines...) Expand 10 before | Expand all | Expand 10 after
533 render_thread->compositor_message_loop_proxy(); 533 render_thread->compositor_message_loop_proxy();
534 shared_bitmap_manager = render_thread->shared_bitmap_manager(); 534 shared_bitmap_manager = render_thread->shared_bitmap_manager();
535 gpu_memory_buffer_manager = render_thread->gpu_memory_buffer_manager(); 535 gpu_memory_buffer_manager = render_thread->gpu_memory_buffer_manager();
536 main_thread_compositor_task_runner = 536 main_thread_compositor_task_runner =
537 render_thread->main_thread_compositor_task_runner(); 537 render_thread->main_thread_compositor_task_runner();
538 } 538 }
539 scoped_ptr<cc::BeginFrameSource> external_begin_frame_source; 539 scoped_ptr<cc::BeginFrameSource> external_begin_frame_source;
540 #if defined(OS_ANDROID) 540 #if defined(OS_ANDROID)
541 if (SynchronousCompositorFactory* factory = 541 if (SynchronousCompositorFactory* factory =
542 SynchronousCompositorFactory::GetInstance()) { 542 SynchronousCompositorFactory::GetInstance()) {
543 DCHECK(settings.begin_frame_scheduling_enabled); 543 DCHECK(settings.use_external_begin_frame_source);
544 external_begin_frame_source = 544 external_begin_frame_source =
545 factory->CreateExternalBeginFrameSource(widget_->routing_id()); 545 factory->CreateExternalBeginFrameSource(widget_->routing_id());
546 } 546 }
547 #endif 547 #endif
548 if (render_thread && 548 if (render_thread &&
549 !external_begin_frame_source.get() && 549 !external_begin_frame_source.get() &&
550 settings.begin_frame_scheduling_enabled) { 550 settings.use_external_begin_frame_source) {
551 external_begin_frame_source.reset(new CompositorExternalBeginFrameSource( 551 external_begin_frame_source.reset(new CompositorExternalBeginFrameSource(
552 widget_->routing_id())); 552 widget_->routing_id()));
553 } 553 }
554 if (compositor_message_loop_proxy.get()) { 554 if (compositor_message_loop_proxy.get()) {
555 layer_tree_host_ = 555 layer_tree_host_ =
556 cc::LayerTreeHost::CreateThreaded(this, 556 cc::LayerTreeHost::CreateThreaded(this,
557 shared_bitmap_manager, 557 shared_bitmap_manager,
558 gpu_memory_buffer_manager, 558 gpu_memory_buffer_manager,
559 settings, 559 settings,
560 main_thread_compositor_task_runner, 560 main_thread_compositor_task_runner,
(...skipping 334 matching lines...) Expand 10 before | Expand all | Expand 10 after
895 widget_->OnSwapBuffersAborted(); 895 widget_->OnSwapBuffersAborted();
896 } 896 }
897 897
898 void RenderWidgetCompositor::RateLimitSharedMainThreadContext() { 898 void RenderWidgetCompositor::RateLimitSharedMainThreadContext() {
899 cc::ContextProvider* provider = 899 cc::ContextProvider* provider =
900 RenderThreadImpl::current()->SharedMainThreadContextProvider().get(); 900 RenderThreadImpl::current()->SharedMainThreadContextProvider().get();
901 provider->ContextGL()->RateLimitOffscreenContextCHROMIUM(); 901 provider->ContextGL()->RateLimitOffscreenContextCHROMIUM();
902 } 902 }
903 903
904 } // namespace content 904 } // namespace content
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_settings.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698