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

Unified 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 Android 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 side-by-side diff with in-line comments
Download patch
Index: cc/trees/thread_proxy.cc
diff --git a/cc/trees/thread_proxy.cc b/cc/trees/thread_proxy.cc
index aff281fb3c1993fb2fa438927ee58e131ed1dd55..1592f295257cc5ab921c904e4167391125fbe852 100644
--- a/cc/trees/thread_proxy.cc
+++ b/cc/trees/thread_proxy.cc
@@ -52,17 +52,18 @@ ThreadProxy::ThreadProxy(LayerTreeHost* layer_tree_host,
manage_tiles_pending_(false),
weak_factory_on_impl_thread_(this),
weak_factory_(this),
- begin_frame_completion_event_on_impl_thread_(NULL),
+ begin_main_frame_completion_event_on_impl_thread_(NULL),
readback_request_on_impl_thread_(NULL),
commit_completion_event_on_impl_thread_(NULL),
completion_event_for_commit_held_on_tree_activation_(NULL),
texture_acquisition_completion_event_on_impl_thread_(NULL),
next_frame_is_newly_committed_frame_on_impl_thread_(false),
- render_vsync_enabled_(layer_tree_host->settings().render_vsync_enabled),
- render_vsync_notification_enabled_(
- layer_tree_host->settings().render_vsync_notification_enabled),
- synchronously_disable_vsync_(
- layer_tree_host->settings().synchronously_disable_vsync),
+ throttle_frame_production_(
+ layer_tree_host->settings().throttle_frame_production),
+ render_parent_drives_begin_impl_frame__(
+ layer_tree_host->settings().render_parent_drives_begin_impl_frame_),
+ using_synchronous_renderer_compositor_(
+ layer_tree_host->settings().using_synchronous_renderer_compositor),
vsync_client_(NULL),
inside_draw_(false),
defer_commits_(false),
@@ -92,15 +93,15 @@ bool ThreadProxy::CompositeAndReadback(void* pixels, gfx::Rect rect) {
// Perform a synchronous commit.
{
DebugScopedSetMainThreadBlocked main_thread_blocked(this);
- CompletionEvent begin_frame_completion;
+ CompletionEvent begin_main_frame_completion;
Proxy::ImplThread()->PostTask(
- base::Bind(&ThreadProxy::ForceBeginFrameOnImplThread,
+ base::Bind(&ThreadProxy::ForceBeginMainFrameOnImplThread,
impl_thread_weak_ptr_,
- &begin_frame_completion));
- begin_frame_completion.Wait();
+ &begin_main_frame_completion));
+ begin_main_frame_completion.Wait();
}
in_composite_and_readback_ = true;
- BeginFrame(scoped_ptr<BeginFrameAndCommitState>());
+ BeginMainFrame(scoped_ptr<BeginMainFrameAndCommitState>());
in_composite_and_readback_ = false;
// Perform a synchronous readback.
@@ -326,9 +327,9 @@ void ThreadProxy::OnVSyncParametersChanged(base::TimeTicks timebase,
scheduler_on_impl_thread_->SetTimebaseAndInterval(timebase, interval);
}
-void ThreadProxy::DidVSync(base::TimeTicks frame_time) {
+void ThreadProxy::DidBeginImplFrame(base::TimeTicks frame_time) {
DCHECK(IsImplThread());
- TRACE_EVENT0("cc", "ThreadProxy::DidVSync");
+ TRACE_EVENT0("cc", "ThreadProxy::DidBeginImplFrame");
if (vsync_client_)
vsync_client_->DidVSync(frame_time);
}
@@ -338,7 +339,7 @@ void ThreadProxy::RequestVSyncNotification(VSyncClient* client) {
TRACE_EVENT1(
"cc", "ThreadProxy::RequestVSyncNotification", "enable", !!client);
vsync_client_ = client;
- layer_tree_host_impl_->EnableVSyncNotification(!!client);
+ layer_tree_host_impl_->SetNeedsBeginImplFrame(!!client);
}
void ThreadProxy::OnCanDrawStateChanged(bool can_draw) {
@@ -473,7 +474,7 @@ void ThreadProxy::SetDeferCommits(bool defer_commits) {
if (!defer_commits_ && pending_deferred_commit_)
Proxy::MainThread()->PostTask(
- base::Bind(&ThreadProxy::BeginFrame,
+ base::Bind(&ThreadProxy::BeginMainFrame,
main_thread_weak_ptr_,
base::Passed(&pending_deferred_commit_)));
}
@@ -603,9 +604,9 @@ void ThreadProxy::FinishAllRenderingOnImplThread(CompletionEvent* completion) {
completion->Signal();
}
-void ThreadProxy::ForceBeginFrameOnImplThread(CompletionEvent* completion) {
- TRACE_EVENT0("cc", "ThreadProxy::ForceBeginFrameOnImplThread");
- DCHECK(!begin_frame_completion_event_on_impl_thread_);
+void ThreadProxy::ForceBeginMainFrameOnImplThread(CompletionEvent* completion) {
+ TRACE_EVENT0("cc", "ThreadProxy::ForceBeginMainFrameOnImplThread");
+ DCHECK(!begin_main_frame_completion_event_on_impl_thread_);
SetNeedsForcedCommitOnImplThread();
if (scheduler_on_impl_thread_->CommitPending()) {
@@ -613,44 +614,46 @@ void ThreadProxy::ForceBeginFrameOnImplThread(CompletionEvent* completion) {
return;
}
- begin_frame_completion_event_on_impl_thread_ = completion;
+ begin_main_frame_completion_event_on_impl_thread_ = completion;
}
-void ThreadProxy::ScheduledActionBeginFrame() {
- TRACE_EVENT0("cc", "ThreadProxy::ScheduledActionBeginFrame");
- scoped_ptr<BeginFrameAndCommitState> begin_frame_state(
- new BeginFrameAndCommitState);
- begin_frame_state->monotonic_frame_begin_time = base::TimeTicks::Now();
- begin_frame_state->scroll_info = layer_tree_host_impl_->ProcessScrollDeltas();
+void ThreadProxy::ScheduledActionBeginMainFrame() {
+ TRACE_EVENT0("cc", "ThreadProxy::ScheduledActionBeginMainFrame");
+ scoped_ptr<BeginMainFrameAndCommitState> begin_main_frame_state(
+ new BeginMainFrameAndCommitState);
+ begin_main_frame_state->monotonic_frame_begin_time = base::TimeTicks::Now();
+ begin_main_frame_state->scroll_info =
+ layer_tree_host_impl_->ProcessScrollDeltas();
DCHECK_GT(layer_tree_host_impl_->memory_allocation_limit_bytes(), 0u);
- begin_frame_state->memory_allocation_limit_bytes =
+ begin_main_frame_state->memory_allocation_limit_bytes =
layer_tree_host_impl_->memory_allocation_limit_bytes();
- Proxy::MainThread()->PostTask(base::Bind(&ThreadProxy::BeginFrame,
- main_thread_weak_ptr_,
- base::Passed(&begin_frame_state)));
+ Proxy::MainThread()->PostTask(
+ base::Bind(&ThreadProxy::BeginMainFrame,
+ main_thread_weak_ptr_,
+ base::Passed(&begin_main_frame_state)));
- if (begin_frame_completion_event_on_impl_thread_) {
- begin_frame_completion_event_on_impl_thread_->Signal();
- begin_frame_completion_event_on_impl_thread_ = NULL;
+ if (begin_main_frame_completion_event_on_impl_thread_) {
+ begin_main_frame_completion_event_on_impl_thread_->Signal();
+ begin_main_frame_completion_event_on_impl_thread_ = NULL;
}
}
-void ThreadProxy::BeginFrame(
- scoped_ptr<BeginFrameAndCommitState> begin_frame_state) {
- TRACE_EVENT0("cc", "ThreadProxy::BeginFrame");
+void ThreadProxy::BeginMainFrame(
+ scoped_ptr<BeginMainFrameAndCommitState> begin_main_frame_state) {
+ TRACE_EVENT0("cc", "ThreadProxy::BeginMainFrame");
DCHECK(IsMainThread());
if (!layer_tree_host_)
return;
if (defer_commits_) {
- pending_deferred_commit_ = begin_frame_state.Pass();
+ pending_deferred_commit_ = begin_main_frame_state.Pass();
layer_tree_host_->DidDeferCommit();
TRACE_EVENT0("cc", "EarlyOut_DeferCommits");
return;
}
// Do not notify the impl thread of commit requests that occur during
- // the apply/animate/layout part of the BeginFrameAndCommit process since
+ // the apply/animate/layout part of the BeginMainFrameAndCommit process since
// those commit requests will get painted immediately. Once we have done
// the paint, commit_requested_ will be set to false to allow new commit
// requests to be scheduled.
@@ -662,8 +665,8 @@ void ThreadProxy::BeginFrame(
// callbacks will trigger another frame.
animate_requested_ = false;
- if (begin_frame_state)
- layer_tree_host_->ApplyScrollAndScale(*begin_frame_state->scroll_info);
+ if (begin_main_frame_state)
+ layer_tree_host_->ApplyScrollAndScale(*begin_main_frame_state->scroll_info);
if (!in_composite_and_readback_ && !layer_tree_host_->visible()) {
commit_requested_ = false;
@@ -671,17 +674,18 @@ void ThreadProxy::BeginFrame(
TRACE_EVENT0("cc", "EarlyOut_NotVisible");
Proxy::ImplThread()->PostTask(base::Bind(
- &ThreadProxy::BeginFrameAbortedOnImplThread, impl_thread_weak_ptr_));
+ &ThreadProxy::BeginMainFrameAbortedOnImplThread,
+ impl_thread_weak_ptr_));
return;
}
- layer_tree_host_->WillBeginFrame();
+ layer_tree_host_->WillBeginMainFrame();
- if (begin_frame_state) {
+ if (begin_main_frame_state) {
layer_tree_host_->UpdateClientAnimations(
- begin_frame_state->monotonic_frame_begin_time);
+ begin_main_frame_state->monotonic_frame_begin_time);
layer_tree_host_->AnimateLayers(
- begin_frame_state->monotonic_frame_begin_time);
+ begin_main_frame_state->monotonic_frame_begin_time);
}
// Unlink any backings that the impl thread has evicted, so that we know to
@@ -703,8 +707,8 @@ void ThreadProxy::BeginFrame(
make_scoped_ptr(new ResourceUpdateQueue);
layer_tree_host_->UpdateLayers(
queue.get(),
- begin_frame_state ? begin_frame_state->memory_allocation_limit_bytes
- : 0u);
+ begin_main_frame_state ?
+ begin_main_frame_state->memory_allocation_limit_bytes : 0u);
// Once single buffered layers are committed, they cannot be modified until
// they are drawn by the impl thread.
@@ -731,12 +735,12 @@ void ThreadProxy::BeginFrame(
created_offscreen_context_provider_ = true;
}
- // Notify the impl thread that the BeginFrame has completed. This will
+ // Notify the impl thread that the BeginMainFrame has completed. This will
// begin the commit process, which is blocking from the main thread's
// point of view, but asynchronously performed on the impl thread,
// coordinated by the Scheduler.
{
- TRACE_EVENT0("cc", "ThreadProxy::BeginFrame::commit");
+ TRACE_EVENT0("cc", "ThreadProxy::BeginMainFrame::commit");
DebugScopedSetMainThreadBlocked main_thread_blocked(this);
@@ -746,7 +750,7 @@ void ThreadProxy::BeginFrame(
CompletionEvent completion;
Proxy::ImplThread()->PostTask(
- base::Bind(&ThreadProxy::BeginFrameCompleteOnImplThread,
+ base::Bind(&ThreadProxy::BeginMainFrameCompleteOnImplThread,
impl_thread_weak_ptr_,
&completion,
queue.release(),
@@ -758,16 +762,16 @@ void ThreadProxy::BeginFrame(
}
layer_tree_host_->CommitComplete();
- layer_tree_host_->DidBeginFrame();
+ layer_tree_host_->DidBeginMainFrame();
}
-void ThreadProxy::BeginFrameCompleteOnImplThread(
+void ThreadProxy::BeginMainFrameCompleteOnImplThread(
CompletionEvent* completion,
ResourceUpdateQueue* raw_queue,
scoped_refptr<cc::ContextProvider> offscreen_context_provider) {
scoped_ptr<ResourceUpdateQueue> queue(raw_queue);
- TRACE_EVENT0("cc", "ThreadProxy::BeginFrameCompleteOnImplThread");
+ TRACE_EVENT0("cc", "ThreadProxy::BeginMainFrameCompleteOnImplThread");
DCHECK(!commit_completion_event_on_impl_thread_);
DCHECK(IsImplThread() && IsMainThreadBlocked());
DCHECK(scheduler_on_impl_thread_);
@@ -809,13 +813,13 @@ void ThreadProxy::BeginFrameCompleteOnImplThread(
commit_completion_event_on_impl_thread_ = completion;
}
-void ThreadProxy::BeginFrameAbortedOnImplThread() {
- TRACE_EVENT0("cc", "ThreadProxy::BeginFrameAbortedOnImplThread");
+void ThreadProxy::BeginMainFrameAbortedOnImplThread() {
+ TRACE_EVENT0("cc", "ThreadProxy::BeginMainFrameAbortedOnImplThread");
DCHECK(IsImplThread());
DCHECK(scheduler_on_impl_thread_);
DCHECK(scheduler_on_impl_thread_->CommitPending());
- scheduler_on_impl_thread_->BeginFrameAborted();
+ scheduler_on_impl_thread_->BeginMainFrameAborted();
}
void ThreadProxy::ScheduledActionCommit() {
@@ -941,7 +945,7 @@ ThreadProxy::ScheduledActionDrawAndSwapInternal(bool forced_draw) {
if (draw_frame) {
layer_tree_host_impl_->DrawLayers(
&frame,
- scheduler_on_impl_thread_->LastVSyncTime());
+ scheduler_on_impl_thread_->LastBeginImplFrameTime());
result.did_draw = true;
}
layer_tree_host_impl_->DidDrawAllLayers(frame);
@@ -1038,7 +1042,7 @@ void ThreadProxy::DidAnticipatedDrawTimeChange(base::TimeTicks time) {
void ThreadProxy::ReadyToFinalizeTextureUpdates() {
DCHECK(IsImplThread());
- scheduler_on_impl_thread_->BeginFrameComplete();
+ scheduler_on_impl_thread_->BeginMainFrameComplete();
}
void ThreadProxy::DidCommitAndDrawFrame() {
@@ -1110,12 +1114,12 @@ void ThreadProxy::InitializeImplOnImplThread(
base::Time::kMicrosecondsPerSecond /
layer_tree_host_->settings().refresh_rate);
scoped_ptr<FrameRateController> frame_rate_controller;
- if (render_vsync_enabled_) {
- if (render_vsync_notification_enabled_) {
+ if (throttle_frame_production_) {
+ if (render_parent_drives_begin_impl_frame__) {
frame_rate_controller.reset(
new FrameRateController(VSyncTimeSource::Create(
this,
- synchronously_disable_vsync_ ?
+ using_synchronous_renderer_compositor_ ?
VSyncTimeSource::DISABLE_SYNCHRONOUSLY :
VSyncTimeSource::DISABLE_ON_NEXT_TICK)));
} else {
@@ -1206,7 +1210,7 @@ void ThreadProxy::LayerTreeHostClosedOnImplThread(CompletionEvent* completion) {
DCHECK(IsImplThread());
layer_tree_host_->DeleteContentsTexturesOnImplThread(
layer_tree_host_impl_->resource_provider());
- layer_tree_host_impl_->EnableVSyncNotification(false);
+ layer_tree_host_impl_->SetNeedsBeginImplFrame(false);
input_handler_client_on_impl_thread_.reset();
scheduler_on_impl_thread_.reset();
layer_tree_host_impl_.reset();
@@ -1219,10 +1223,10 @@ size_t ThreadProxy::MaxPartialTextureUpdates() const {
return ResourceUpdateController::MaxPartialTextureUpdates();
}
-ThreadProxy::BeginFrameAndCommitState::BeginFrameAndCommitState()
+ThreadProxy::BeginMainFrameAndCommitState::BeginMainFrameAndCommitState()
: memory_allocation_limit_bytes(0) {}
-ThreadProxy::BeginFrameAndCommitState::~BeginFrameAndCommitState() {}
+ThreadProxy::BeginMainFrameAndCommitState::~BeginMainFrameAndCommitState() {}
scoped_ptr<base::Value> ThreadProxy::AsValue() const {
scoped_ptr<base::DictionaryValue> state(new base::DictionaryValue());
@@ -1368,11 +1372,12 @@ void ThreadProxy::StartScrollbarAnimationOnImplThread() {
layer_tree_host_impl_->CurrentFrameTimeTicks());
}
-void ThreadProxy::DidReceiveLastInputEventForVSync(
+void ThreadProxy::DidReceiveLastInputEventForBeginImplFrame(
base::TimeTicks frame_time) {
- if (render_vsync_notification_enabled_) {
- TRACE_EVENT0("cc", "ThreadProxy::DidReceiveLastInputEventForVSync");
- DidVSync(frame_time);
+ if (render_parent_drives_begin_impl_frame__) {
+ TRACE_EVENT0("cc",
+ "ThreadProxy::DidReceiveLastInputEventForBeginImplFrame");
+ DidBeginImplFrame(frame_time);
}
}

Powered by Google App Engine
This is Rietveld 408576698