Commit ccc08dc2 authored by danakj@chromium.org's avatar danakj@chromium.org

cc: Add TRACE_EVENTs to SingleThreadProxy

This adds traces to entry points in SingleThreadProxy that have
analogous trace events in the ThreadProxy. Also add trace points
along the critical CompositeImmediately -> CommitAndComposite ->
DoCommit/DoComposite code path.

R=enne
BUG=339248

Review URL: https://codereview.chromium.org/149053006

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@247874 0039d316-1c4b-4281-b951-d872f2087c98
parent 5a49421b
......@@ -82,6 +82,7 @@ bool SingleThreadProxy::CompositeAndReadback(void* pixels,
}
void SingleThreadProxy::FinishAllRendering() {
TRACE_EVENT0("cc", "SingleThreadProxy::FinishAllRendering");
DCHECK(Proxy::IsMainThread());
{
DebugScopedSetImplThread impl(this);
......@@ -95,11 +96,13 @@ bool SingleThreadProxy::IsStarted() const {
}
void SingleThreadProxy::SetLayerTreeHostClientReady() {
TRACE_EVENT0("cc", "SingleThreadProxy::SetLayerTreeHostClientReady");
// Scheduling is controlled by the embedder in the single thread case, so
// nothing to do.
}
void SingleThreadProxy::SetVisible(bool visible) {
TRACE_EVENT0("cc", "SingleThreadProxy::SetVisible");
DebugScopedSetImplThread impl(this);
layer_tree_host_impl_->SetVisible(visible);
......@@ -176,16 +179,19 @@ const RendererCapabilities& SingleThreadProxy::GetRendererCapabilities() const {
}
void SingleThreadProxy::SetNeedsAnimate() {
TRACE_EVENT0("cc", "SingleThreadProxy::SetNeedsAnimate");
DCHECK(Proxy::IsMainThread());
client_->ScheduleAnimation();
}
void SingleThreadProxy::SetNeedsUpdateLayers() {
TRACE_EVENT0("cc", "SingleThreadProxy::SetNeedsUpdateLayers");
DCHECK(Proxy::IsMainThread());
client_->ScheduleComposite();
}
void SingleThreadProxy::DoCommit(scoped_ptr<ResourceUpdateQueue> queue) {
TRACE_EVENT0("cc", "SingleThreadProxy::DoCommit");
DCHECK(Proxy::IsMainThread());
// Commit immediately.
{
......@@ -245,6 +251,7 @@ void SingleThreadProxy::SetNeedsCommit() {
}
void SingleThreadProxy::SetNeedsRedraw(const gfx::Rect& damage_rect) {
TRACE_EVENT0("cc", "SingleThreadProxy::SetNeedsRedraw");
SetNeedsRedrawRectOnImplThread(damage_rect);
client_->ScheduleComposite();
}
......@@ -281,6 +288,8 @@ void SingleThreadProxy::Stop() {
}
void SingleThreadProxy::OnCanDrawStateChanged(bool can_draw) {
TRACE_EVENT1(
"cc", "SingleThreadProxy::OnCanDrawStateChanged", "can_draw", can_draw);
DCHECK(Proxy::IsImplThread());
UpdateBackgroundAnimateTicking();
}
......@@ -320,6 +329,8 @@ void SingleThreadProxy::SetNeedsCommitOnImplThread() {
void SingleThreadProxy::PostAnimationEventsToMainThreadOnImplThread(
scoped_ptr<AnimationEventsVector> events,
base::Time wall_clock_time) {
TRACE_EVENT0(
"cc", "SingleThreadProxy::PostAnimationEventsToMainThreadOnImplThread");
DCHECK(Proxy::IsImplThread());
DebugScopedSetMainThread main(this);
layer_tree_host_->SetAnimationEvents(events.Pass(), wall_clock_time);
......@@ -360,6 +371,7 @@ void SingleThreadProxy::SendManagedMemoryStats() {
bool SingleThreadProxy::IsInsideDraw() { return inside_draw_; }
void SingleThreadProxy::DidLoseOutputSurfaceOnImplThread() {
TRACE_EVENT0("cc", "SingleThreadProxy::DidLoseOutputSurfaceOnImplThread");
// Cause a commit so we can notice the lost context.
SetNeedsCommitOnImplThread();
client_->DidAbortSwapBuffers();
......@@ -370,12 +382,14 @@ void SingleThreadProxy::DidSwapBuffersOnImplThread() {
}
void SingleThreadProxy::OnSwapBuffersCompleteOnImplThread() {
TRACE_EVENT0("cc", "SingleThreadProxy::OnSwapBuffersCompleteOnImplThread");
client_->DidCompleteSwapBuffers();
}
// Called by the legacy scheduling path (e.g. where render_widget does the
// scheduling)
void SingleThreadProxy::CompositeImmediately(base::TimeTicks frame_begin_time) {
TRACE_EVENT0("cc", "SingleThreadProxy::CompositeImmediately");
gfx::Rect device_viewport_damage_rect;
LayerTreeHostImpl::FrameData frame;
......@@ -431,6 +445,7 @@ bool SingleThreadProxy::CommitAndComposite(
const gfx::Rect& device_viewport_damage_rect,
bool for_readback,
LayerTreeHostImpl::FrameData* frame) {
TRACE_EVENT0("cc", "SingleThreadProxy::CommitAndComposite");
DCHECK(Proxy::IsMainThread());
if (!layer_tree_host_->InitializeOutputSurfaceIfNeeded())
......@@ -494,6 +509,7 @@ bool SingleThreadProxy::DoComposite(
const gfx::Rect& device_viewport_damage_rect,
bool for_readback,
LayerTreeHostImpl::FrameData* frame) {
TRACE_EVENT0("cc", "SingleThreadProxy::DoComposite");
DCHECK(!layer_tree_host_->output_surface_lost());
bool lost_output_surface = false;
......
......@@ -401,14 +401,14 @@ void ThreadProxy::SetNeedsCommit() {
}
void ThreadProxy::DidLoseOutputSurfaceOnImplThread() {
DCHECK(IsImplThread());
TRACE_EVENT0("cc", "ThreadProxy::DidLoseOutputSurfaceOnImplThread");
DCHECK(IsImplThread());
CheckOutputSurfaceStatusOnImplThread();
}
void ThreadProxy::CheckOutputSurfaceStatusOnImplThread() {
DCHECK(IsImplThread());
TRACE_EVENT0("cc", "ThreadProxy::CheckOutputSurfaceStatusOnImplThread");
DCHECK(IsImplThread());
if (!impl().layer_tree_host_impl->IsContextLost())
return;
if (ContextProvider* offscreen_contexts =
......@@ -418,23 +418,23 @@ void ThreadProxy::CheckOutputSurfaceStatusOnImplThread() {
}
void ThreadProxy::OnSwapBuffersCompleteOnImplThread() {
DCHECK(IsImplThread());
TRACE_EVENT0("cc", "ThreadProxy::OnSwapBuffersCompleteOnImplThread");
DCHECK(IsImplThread());
Proxy::MainThreadTaskRunner()->PostTask(
FROM_HERE,
base::Bind(&ThreadProxy::DidCompleteSwapBuffers, main_thread_weak_ptr_));
}
void ThreadProxy::SetNeedsBeginImplFrame(bool enable) {
DCHECK(IsImplThread());
TRACE_EVENT1("cc", "ThreadProxy::SetNeedsBeginImplFrame", "enable", enable);
DCHECK(IsImplThread());
impl().layer_tree_host_impl->SetNeedsBeginImplFrame(enable);
UpdateBackgroundAnimateTicking();
}
void ThreadProxy::BeginImplFrame(const BeginFrameArgs& args) {
DCHECK(IsImplThread());
TRACE_EVENT0("cc", "ThreadProxy::BeginImplFrame");
DCHECK(IsImplThread());
// Sample the frame time now. This time will be used for updating animations
// when we draw.
......@@ -444,9 +444,9 @@ void ThreadProxy::BeginImplFrame(const BeginFrameArgs& args) {
}
void ThreadProxy::OnCanDrawStateChanged(bool can_draw) {
DCHECK(IsImplThread());
TRACE_EVENT1(
"cc", "ThreadProxy::OnCanDrawStateChanged", "can_draw", can_draw);
DCHECK(IsImplThread());
impl().scheduler->SetCanDraw(can_draw);
UpdateBackgroundAnimateTicking();
}
......@@ -457,17 +457,17 @@ void ThreadProxy::NotifyReadyToActivate() {
}
void ThreadProxy::SetNeedsCommitOnImplThread() {
DCHECK(IsImplThread());
TRACE_EVENT0("cc", "ThreadProxy::SetNeedsCommitOnImplThread");
DCHECK(IsImplThread());
impl().scheduler->SetNeedsCommit();
}
void ThreadProxy::PostAnimationEventsToMainThreadOnImplThread(
scoped_ptr<AnimationEventsVector> events,
base::Time wall_clock_time) {
DCHECK(IsImplThread());
TRACE_EVENT0("cc",
"ThreadProxy::PostAnimationEventsToMainThreadOnImplThread");
DCHECK(IsImplThread());
Proxy::MainThreadTaskRunner()->PostTask(
FROM_HERE,
base::Bind(&ThreadProxy::SetAnimationEvents,
......@@ -524,8 +524,8 @@ void ThreadProxy::SendManagedMemoryStats() {
bool ThreadProxy::IsInsideDraw() { return impl().inside_draw; }
void ThreadProxy::SetNeedsRedraw(const gfx::Rect& damage_rect) {
DCHECK(IsMainThread());
TRACE_EVENT0("cc", "ThreadProxy::SetNeedsRedraw");
DCHECK(IsMainThread());
Proxy::ImplThreadTaskRunner()->PostTask(
FROM_HERE,
base::Bind(&ThreadProxy::SetNeedsRedrawRectOnImplThread,
......@@ -568,8 +568,8 @@ bool ThreadProxy::BeginMainFrameRequested() const {
}
void ThreadProxy::SetNeedsRedrawOnImplThread() {
DCHECK(IsImplThread());
TRACE_EVENT0("cc", "ThreadProxy::SetNeedsRedrawOnImplThread");
DCHECK(IsImplThread());
impl().scheduler->SetNeedsRedraw();
}
......@@ -596,8 +596,8 @@ void ThreadProxy::SetSwapUsedIncompleteTileOnImplThread(
}
void ThreadProxy::DidInitializeVisibleTileOnImplThread() {
DCHECK(IsImplThread());
TRACE_EVENT0("cc", "ThreadProxy::DidInitializeVisibleTileOnImplThread");
DCHECK(IsImplThread());
impl().scheduler->SetNeedsRedraw();
}
......@@ -1084,20 +1084,20 @@ void ThreadProxy::ScheduledActionCommit() {
}
void ThreadProxy::ScheduledActionUpdateVisibleTiles() {
DCHECK(IsImplThread());
TRACE_EVENT0("cc", "ThreadProxy::ScheduledActionUpdateVisibleTiles");
DCHECK(IsImplThread());
impl().layer_tree_host_impl->UpdateVisibleTiles();
}
void ThreadProxy::ScheduledActionActivatePendingTree() {
DCHECK(IsImplThread());
TRACE_EVENT0("cc", "ThreadProxy::ScheduledActionActivatePendingTree");
DCHECK(IsImplThread());
impl().layer_tree_host_impl->ActivatePendingTree();
}
void ThreadProxy::ScheduledActionBeginOutputSurfaceCreation() {
DCHECK(IsImplThread());
TRACE_EVENT0("cc", "ThreadProxy::ScheduledActionBeginOutputSurfaceCreation");
DCHECK(IsImplThread());
Proxy::MainThreadTaskRunner()->PostTask(
FROM_HERE,
base::Bind(&ThreadProxy::CreateAndInitializeOutputSurface,
......@@ -1658,8 +1658,8 @@ void ThreadProxy::StartScrollbarAnimationOnImplThread() {
}
void ThreadProxy::DidActivatePendingTree() {
DCHECK(IsImplThread());
TRACE_EVENT0("cc", "ThreadProxy::DidActivatePendingTreeOnImplThread");
DCHECK(IsImplThread());
if (impl().completion_event_for_commit_held_on_tree_activation &&
!impl().layer_tree_host_impl->pending_tree()) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment