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

Side by Side Diff: cc/trees/thread_proxy.cc

Issue 15058004: cc: Rename VSync to BeginFrame (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Fix test compiler errors Created 7 years, 7 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
OLDNEW
1 // Copyright 2011 The Chromium Authors. All rights reserved. 1 // Copyright 2011 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 "cc/trees/thread_proxy.h" 5 #include "cc/trees/thread_proxy.h"
6 6
7 #include "base/auto_reset.h" 7 #include "base/auto_reset.h"
8 #include "base/bind.h" 8 #include "base/bind.h"
9 #include "base/debug/trace_event.h" 9 #include "base/debug/trace_event.h"
10 #include "cc/base/thread.h" 10 #include "cc/base/thread.h"
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
51 in_composite_and_readback_(false), 51 in_composite_and_readback_(false),
52 manage_tiles_pending_(false), 52 manage_tiles_pending_(false),
53 weak_factory_on_impl_thread_(this), 53 weak_factory_on_impl_thread_(this),
54 weak_factory_(this), 54 weak_factory_(this),
55 begin_frame_completion_event_on_impl_thread_(NULL), 55 begin_frame_completion_event_on_impl_thread_(NULL),
56 readback_request_on_impl_thread_(NULL), 56 readback_request_on_impl_thread_(NULL),
57 commit_completion_event_on_impl_thread_(NULL), 57 commit_completion_event_on_impl_thread_(NULL),
58 completion_event_for_commit_held_on_tree_activation_(NULL), 58 completion_event_for_commit_held_on_tree_activation_(NULL),
59 texture_acquisition_completion_event_on_impl_thread_(NULL), 59 texture_acquisition_completion_event_on_impl_thread_(NULL),
60 next_frame_is_newly_committed_frame_on_impl_thread_(false), 60 next_frame_is_newly_committed_frame_on_impl_thread_(false),
61 render_vsync_enabled_(layer_tree_host->settings().render_vsync_enabled), 61 throttle_frame_production_(
62 render_vsync_notification_enabled_( 62 layer_tree_host->settings().throttle_frame_production),
63 layer_tree_host->settings().render_vsync_notification_enabled), 63 render_begin_frame_notification_enabled_(
64 synchronously_disable_vsync_( 64 layer_tree_host->settings().render_begin_frame_notification_enabled),
65 layer_tree_host->settings().synchronously_disable_vsync), 65 using_synchronous_renderer_compositor_(
66 layer_tree_host->settings().using_synchronous_renderer_compositor),
66 vsync_client_(NULL), 67 vsync_client_(NULL),
67 inside_draw_(false), 68 inside_draw_(false),
68 defer_commits_(false), 69 defer_commits_(false),
69 renew_tree_priority_on_impl_thread_pending_(false) { 70 renew_tree_priority_on_impl_thread_pending_(false) {
70 TRACE_EVENT0("cc", "ThreadProxy::ThreadProxy"); 71 TRACE_EVENT0("cc", "ThreadProxy::ThreadProxy");
71 DCHECK(IsMainThread()); 72 DCHECK(IsMainThread());
72 DCHECK(layer_tree_host_); 73 DCHECK(layer_tree_host_);
73 } 74 }
74 75
75 ThreadProxy::~ThreadProxy() { 76 ThreadProxy::~ThreadProxy() {
(...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after
319 DCHECK(IsImplThread()); 320 DCHECK(IsImplThread());
320 TRACE_EVENT2("cc", 321 TRACE_EVENT2("cc",
321 "ThreadProxy::OnVSyncParametersChanged", 322 "ThreadProxy::OnVSyncParametersChanged",
322 "timebase", 323 "timebase",
323 (timebase - base::TimeTicks()).InMilliseconds(), 324 (timebase - base::TimeTicks()).InMilliseconds(),
324 "interval", 325 "interval",
325 interval.InMilliseconds()); 326 interval.InMilliseconds());
326 scheduler_on_impl_thread_->SetTimebaseAndInterval(timebase, interval); 327 scheduler_on_impl_thread_->SetTimebaseAndInterval(timebase, interval);
327 } 328 }
328 329
329 void ThreadProxy::DidVSync(base::TimeTicks frame_time) { 330 void ThreadProxy::DidBeginFrame(base::TimeTicks frame_time) {
330 DCHECK(IsImplThread()); 331 DCHECK(IsImplThread());
331 TRACE_EVENT0("cc", "ThreadProxy::DidVSync"); 332 TRACE_EVENT0("cc", "ThreadProxy::DidBeginFrame");
332 if (vsync_client_) 333 if (vsync_client_)
333 vsync_client_->DidVSync(frame_time); 334 vsync_client_->DidVSync(frame_time);
334 } 335 }
335 336
336 void ThreadProxy::RequestVSyncNotification(VSyncClient* client) { 337 void ThreadProxy::RequestVSyncNotification(VSyncClient* client) {
337 DCHECK(IsImplThread()); 338 DCHECK(IsImplThread());
338 TRACE_EVENT1( 339 TRACE_EVENT1(
339 "cc", "ThreadProxy::RequestVSyncNotification", "enable", !!client); 340 "cc", "ThreadProxy::RequestVSyncNotification", "enable", !!client);
340 vsync_client_ = client; 341 vsync_client_ = client;
341 layer_tree_host_impl_->EnableVSyncNotification(!!client); 342 layer_tree_host_impl_->EnableBeginFrameNotification(!!client);
342 } 343 }
343 344
344 void ThreadProxy::OnCanDrawStateChanged(bool can_draw) { 345 void ThreadProxy::OnCanDrawStateChanged(bool can_draw) {
345 DCHECK(IsImplThread()); 346 DCHECK(IsImplThread());
346 TRACE_EVENT1( 347 TRACE_EVENT1(
347 "cc", "ThreadProxy::OnCanDrawStateChanged", "can_draw", can_draw); 348 "cc", "ThreadProxy::OnCanDrawStateChanged", "can_draw", can_draw);
348 scheduler_on_impl_thread_->SetCanDraw(can_draw); 349 scheduler_on_impl_thread_->SetCanDraw(can_draw);
349 layer_tree_host_impl_->UpdateBackgroundAnimateTicking( 350 layer_tree_host_impl_->UpdateBackgroundAnimateTicking(
350 !scheduler_on_impl_thread_->WillDrawIfNeeded()); 351 !scheduler_on_impl_thread_->WillDrawIfNeeded());
351 } 352 }
(...skipping 582 matching lines...) Expand 10 before | Expand all | Expand 10 after
934 if (layer_tree_host_impl_->PrepareToDraw(&frame, readback_rect) || 935 if (layer_tree_host_impl_->PrepareToDraw(&frame, readback_rect) ||
935 forced_draw) 936 forced_draw)
936 draw_frame = true; 937 draw_frame = true;
937 else 938 else
938 start_ready_animations = false; 939 start_ready_animations = false;
939 } 940 }
940 941
941 if (draw_frame) { 942 if (draw_frame) {
942 layer_tree_host_impl_->DrawLayers( 943 layer_tree_host_impl_->DrawLayers(
943 &frame, 944 &frame,
944 scheduler_on_impl_thread_->LastVSyncTime()); 945 scheduler_on_impl_thread_->LastBeginFrameTime());
945 result.did_draw = true; 946 result.did_draw = true;
946 } 947 }
947 layer_tree_host_impl_->DidDrawAllLayers(frame); 948 layer_tree_host_impl_->DidDrawAllLayers(frame);
948 949
949 layer_tree_host_impl_->UpdateAnimationState(start_ready_animations); 950 layer_tree_host_impl_->UpdateAnimationState(start_ready_animations);
950 951
951 // Check for a pending CompositeAndReadback. 952 // Check for a pending CompositeAndReadback.
952 if (readback_request_on_impl_thread_) { 953 if (readback_request_on_impl_thread_) {
953 readback_request_on_impl_thread_->success = false; 954 readback_request_on_impl_thread_->success = false;
954 if (draw_frame) { 955 if (draw_frame) {
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after
1103 CompletionEvent* completion, 1104 CompletionEvent* completion,
1104 InputHandlerClient* input_handler_client) { 1105 InputHandlerClient* input_handler_client) {
1105 TRACE_EVENT0("cc", "ThreadProxy::InitializeImplOnImplThread"); 1106 TRACE_EVENT0("cc", "ThreadProxy::InitializeImplOnImplThread");
1106 DCHECK(IsImplThread()); 1107 DCHECK(IsImplThread());
1107 layer_tree_host_impl_ = layer_tree_host_->CreateLayerTreeHostImpl(this); 1108 layer_tree_host_impl_ = layer_tree_host_->CreateLayerTreeHostImpl(this);
1108 const base::TimeDelta display_refresh_interval = 1109 const base::TimeDelta display_refresh_interval =
1109 base::TimeDelta::FromMicroseconds( 1110 base::TimeDelta::FromMicroseconds(
1110 base::Time::kMicrosecondsPerSecond / 1111 base::Time::kMicrosecondsPerSecond /
1111 layer_tree_host_->settings().refresh_rate); 1112 layer_tree_host_->settings().refresh_rate);
1112 scoped_ptr<FrameRateController> frame_rate_controller; 1113 scoped_ptr<FrameRateController> frame_rate_controller;
1113 if (render_vsync_enabled_) { 1114 if (throttle_frame_production_) {
1114 if (render_vsync_notification_enabled_) { 1115 if (render_begin_frame_notification_enabled_) {
1115 frame_rate_controller.reset( 1116 frame_rate_controller.reset(
1116 new FrameRateController(VSyncTimeSource::Create( 1117 new FrameRateController(VSyncTimeSource::Create(
1117 this, 1118 this,
1118 synchronously_disable_vsync_ ? 1119 using_synchronous_renderer_compositor_ ?
1119 VSyncTimeSource::DISABLE_SYNCHRONOUSLY : 1120 VSyncTimeSource::DISABLE_SYNCHRONOUSLY :
1120 VSyncTimeSource::DISABLE_ON_NEXT_TICK))); 1121 VSyncTimeSource::DISABLE_ON_NEXT_TICK)));
1121 } else { 1122 } else {
1122 frame_rate_controller.reset( 1123 frame_rate_controller.reset(
1123 new FrameRateController(DelayBasedTimeSource::Create( 1124 new FrameRateController(DelayBasedTimeSource::Create(
1124 display_refresh_interval, Proxy::ImplThread()))); 1125 display_refresh_interval, Proxy::ImplThread())));
1125 } 1126 }
1126 } else { 1127 } else {
1127 frame_rate_controller.reset(new FrameRateController(Proxy::ImplThread())); 1128 frame_rate_controller.reset(new FrameRateController(Proxy::ImplThread()));
1128 } 1129 }
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
1199 if (layer_tree_host_impl_->resource_provider()) 1200 if (layer_tree_host_impl_->resource_provider())
1200 layer_tree_host_impl_->resource_provider()->Finish(); 1201 layer_tree_host_impl_->resource_provider()->Finish();
1201 completion->Signal(); 1202 completion->Signal();
1202 } 1203 }
1203 1204
1204 void ThreadProxy::LayerTreeHostClosedOnImplThread(CompletionEvent* completion) { 1205 void ThreadProxy::LayerTreeHostClosedOnImplThread(CompletionEvent* completion) {
1205 TRACE_EVENT0("cc", "ThreadProxy::LayerTreeHostClosedOnImplThread"); 1206 TRACE_EVENT0("cc", "ThreadProxy::LayerTreeHostClosedOnImplThread");
1206 DCHECK(IsImplThread()); 1207 DCHECK(IsImplThread());
1207 layer_tree_host_->DeleteContentsTexturesOnImplThread( 1208 layer_tree_host_->DeleteContentsTexturesOnImplThread(
1208 layer_tree_host_impl_->resource_provider()); 1209 layer_tree_host_impl_->resource_provider());
1209 layer_tree_host_impl_->EnableVSyncNotification(false); 1210 layer_tree_host_impl_->EnableBeginFrameNotification(false);
1210 input_handler_client_on_impl_thread_.reset(); 1211 input_handler_client_on_impl_thread_.reset();
1211 scheduler_on_impl_thread_.reset(); 1212 scheduler_on_impl_thread_.reset();
1212 layer_tree_host_impl_.reset(); 1213 layer_tree_host_impl_.reset();
1213 weak_factory_on_impl_thread_.InvalidateWeakPtrs(); 1214 weak_factory_on_impl_thread_.InvalidateWeakPtrs();
1214 vsync_client_ = NULL; 1215 vsync_client_ = NULL;
1215 completion->Signal(); 1216 completion->Signal();
1216 } 1217 }
1217 1218
1218 size_t ThreadProxy::MaxPartialTextureUpdates() const { 1219 size_t ThreadProxy::MaxPartialTextureUpdates() const {
1219 return ResourceUpdateController::MaxPartialTextureUpdates(); 1220 return ResourceUpdateController::MaxPartialTextureUpdates();
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after
1361 base::Bind(&ThreadProxy::StartScrollbarAnimationOnImplThread, 1362 base::Bind(&ThreadProxy::StartScrollbarAnimationOnImplThread,
1362 impl_thread_weak_ptr_), 1363 impl_thread_weak_ptr_),
1363 delay); 1364 delay);
1364 } 1365 }
1365 1366
1366 void ThreadProxy::StartScrollbarAnimationOnImplThread() { 1367 void ThreadProxy::StartScrollbarAnimationOnImplThread() {
1367 layer_tree_host_impl_->StartScrollbarAnimation( 1368 layer_tree_host_impl_->StartScrollbarAnimation(
1368 layer_tree_host_impl_->CurrentFrameTimeTicks()); 1369 layer_tree_host_impl_->CurrentFrameTimeTicks());
1369 } 1370 }
1370 1371
1371 void ThreadProxy::DidReceiveLastInputEventForVSync( 1372 void ThreadProxy::DidReceiveLastInputEventForBeginFrame(
1372 base::TimeTicks frame_time) { 1373 base::TimeTicks frame_time) {
1373 if (render_vsync_notification_enabled_) { 1374 if (render_begin_frame_notification_enabled_) {
1374 TRACE_EVENT0("cc", "ThreadProxy::DidReceiveLastInputEventForVSync"); 1375 TRACE_EVENT0("cc", "ThreadProxy::DidReceiveLastInputEventForBeginFrame");
1375 DidVSync(frame_time); 1376 DidBeginFrame(frame_time);
1376 } 1377 }
1377 } 1378 }
1378 1379
1379 void ThreadProxy::DidActivatePendingTree() { 1380 void ThreadProxy::DidActivatePendingTree() {
1380 DCHECK(IsImplThread()); 1381 DCHECK(IsImplThread());
1381 TRACE_EVENT0("cc", "ThreadProxy::DidActivatePendingTreeOnImplThread"); 1382 TRACE_EVENT0("cc", "ThreadProxy::DidActivatePendingTreeOnImplThread");
1382 1383
1383 if (completion_event_for_commit_held_on_tree_activation_ && 1384 if (completion_event_for_commit_held_on_tree_activation_ &&
1384 !layer_tree_host_impl_->pending_tree()) { 1385 !layer_tree_host_impl_->pending_tree()) {
1385 TRACE_EVENT_INSTANT0("cc", "ReleaseCommitbyActivation", 1386 TRACE_EVENT_INSTANT0("cc", "ReleaseCommitbyActivation",
1386 TRACE_EVENT_SCOPE_THREAD); 1387 TRACE_EVENT_SCOPE_THREAD);
1387 DCHECK(layer_tree_host_impl_->settings().impl_side_painting); 1388 DCHECK(layer_tree_host_impl_->settings().impl_side_painting);
1388 completion_event_for_commit_held_on_tree_activation_->Signal(); 1389 completion_event_for_commit_held_on_tree_activation_->Signal();
1389 completion_event_for_commit_held_on_tree_activation_ = NULL; 1390 completion_event_for_commit_held_on_tree_activation_ = NULL;
1390 } 1391 }
1391 } 1392 }
1392 1393
1393 } // namespace cc 1394 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698