New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 826518 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Mar 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 1
Type: Bug-Regression

Blocked on:
issue 821940



Sign in to add a comment

Crash inside cc::Scheduler::DidReceiveCompositorFrameAck causing GPU test flakiness

Project Member Reported by kbr@chromium.org, Mar 27 2018

Issue description

Flaky crash seen in mac_chromium_rel_ng tryjobs which simply brings up the browser and fetches its GPU information:

gpu_process_launch_tests
gpu_tests.gpu_process_integration_test.GpuProcessIntegrationTest.GpuProcess_disable_gpu
https://ci.chromium.org/buildbot/tryserver.chromium.mac/mac_chromium_rel_ng/680056

https://chromium-swarm.appspot.com/task?id=3c7d265e11a96910&refresh=10&show_raw=1

Extended stack trace follows.

Enne / Fady / Dana, could you please triage and/or reassign? I see two other instances of this recently:

context_lost_tests
gpu_tests.context_lost_integration_test.ContextLostIntegrationTest.ContextLost_WebGLContextLostFromQuantity
https://ci.chromium.org/buildbot/tryserver.chromium.mac/mac_chromium_rel_ng/681003
https://chromium-swarm.appspot.com/task?id=3c81d2b7163b9810&refresh=10&show_raw=1

and

trace_test
gpu_tests.trace_integration_test.TraceIntegrationTest.TraceTest_Video_VP9
https://ci.chromium.org/buildbot/tryserver.chromium.mac/mac_chromium_rel_ng/680927
https://chromium-swarm.appspot.com/task?id=3c81a4dce993b710&refresh=10&show_raw=1

Thanks.

 
Cc: khushals...@chromium.org
+khushalsagar@ who has a fix in flight
Cc: -khushals...@chromium.org enne@chromium.org
Owner: khushals...@chromium.org
https://chromium-review.googlesource.com/c/chromium/src/+/981689 should fix this.
Project Member

Comment 3 by bugdroid1@chromium.org, Mar 27 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/4361dcb9a14ccbf76b21abc3c3592a905430c3b1

commit 4361dcb9a14ccbf76b21abc3c3592a905430c3b1
Author: Khushal <khushalsagar@google.com>
Date: Tue Mar 27 22:06:29 2018

viz: Ensure DirectLayerTreeFrameSink frame acks are async.

For the DirectLayerTreeFrameSink, which submits CompositorFrames
directly to the Display, submitting a new frame can synchronously
result in a display draw and dispatching of frame acks to all clients.
This messes up the state tracking in cc::Scheduler for the layer
compositor. In order to avoid this, post a task to dispatch frame acks
to clients.

BUG:  826518 

Here is the stack trace which tells the complete story:
[2885:775:0326/164435.684320:FATAL:scheduler.cc(149)] Check failed: state_machine_.pending_submit_frames() > 0 (0 vs. 0){"state_machine":{"major_state":{"next_action":"Action::NONE","begin_impl_frame_state":"BeginImplFrameState::INSIDE_DEADLINE","begin_main_frame_state":"BeginMainFrameState::IDLE","layer_tree_frame_sink_state":"LayerTreeFrameSinkState::ACTIVE","forced_redraw_state":"ForcedRedrawOnTimeoutState::IDLE"},"minor_state":{"commit_count":3,"current_frame_number":5,"last_frame_number_submit_performed":4,"last_frame_number_draw_performed":5,"last_frame_number_begin_main_frame_sent":5,"did_draw":true,"did_send_begin_main_frame_for_current_frame":true,"did_notify_begin_main_frame_not_sent":false,"wants_begin_main_frame_not_expected":false,"did_commit_during_frame":true,"did_invalidate_layer_tree_frame_sink":false,"did_perform_impl_side_invalidaion":true,"did_prepare_tiles":false,"consecutive_checkerboard_animations":0,"pending_submit_frames":0,"submit_frames_with_current_layer_tree_frame_sink":2,"needs_redraw":false,"needs_prepare_tiles":false,"needs_begin_main_frame":false,"needs_one_begin_impl_frame":false,"visible":true,"begin_frame_source_paused":false,"can_draw":true,"resourceless_draw":false,"has_pending_tree":false,"pending_tree_is_ready_for_activation":false,"active_tree_needs_first_draw":false,"active_tree_is_ready_to_draw":true,"did_create_and_initialize_first_layer_tree_frame_sink":true,"tree_priority":"NEW_CONTENT_TAKES_PRIORITY","scroll_handler_state":"SCROLL_DOES_NOT_AFFECT_SCROLL_HANDLER","critical_begin_main_frame_to_activate_is_fast":true,"main_thread_missed_last_deadline":false,"skip_next_begin_main_frame_to_reduce_latency":false,"video_needs_begin_frames":false,"defer_commits":false,"last_commit_had_no_updates":false,"did_draw_in_last_frame":true,"did_submit_in_last_frame":false,"needs_impl_side_invalidation":false,"current_pending_tree_is_impl_side":false,"previous_pending_tree_was_impl_side":false}},"observing_begin_frame_source":true,"begin_impl_frame_deadline_task":false,"missed_begin_frame_task":false,"skipped_last_frame_missed_exceeded_deadline":false,"skipped_last_frame_to_reduce_latency":false,"inside_action":"Action::DRAW_IF_POSSIBLE","begin_impl_frame_deadline_mode":"BeginImplFrameDeadlineMode::IMMEDIATE","deadline_ms":0.0,"deadline_scheduled_at_ms":4131952.452,"now_ms":4131953.297,"now_to_deadline_ms":-4131953.298,"now_to_deadline_scheduled_at_ms":-0.847,"begin_impl_frame_args":{"updated_at_ms":4131950.228,"finished_at_ms":0.0,"state":"USING","last_args_":{"type":"BeginFrameArgs","subtype":"NORMAL","source_id":2,"sequence_number":13,"frame_time_us":4131933495.0,"deadline_us":4131948380.0,"interval_us":16669.0,"created_from":"CreateBeginFrameArgs@../../components/viz/common/frame_sinks/begin_frame_source.cc:212","on_critical_path":true,"animate_only":false},"major_timestamps_in_ms":{"0_interval":16.669,"1_now_to_deadline":-4.858,"2_frame_time_to_now":19.743,"3_frame_time_to_deadline":14.885,"4_now":4131953.238,"5_frame_time":4131933.495,"6_deadline":4131948.38}},"begin_frame_observer_state":{"dropped_begin_frame_args":0,"last_begin_frame_args":{"type":"BeginFrameArgs","subtype":"NORMAL","source_id":2,"sequence_number":13,"frame_time_us":4131933495.0,"deadline_us":4131950164.0,"interval_us":16669.0,"created_from":"CreateBeginFrameArgs@../../components/viz/common/frame_sinks/begin_frame_source.cc:212","on_critical_path":true,"animate_only":false}},"begin_frame_source_state":{"source_id":3,"paused":false,"num_observers":1,"last_begin_frame_args":{"type":"BeginFrameArgs","subtype":"NORMAL","source_id":2,"sequence_number":14,"frame_time_us":4131950164.0,"deadline_us":4131966833.0,"interval_us":16669.0,"created_from":"CreateBeginFrameArgs@../../components/viz/common/frame_sinks/begin_frame_source.cc:212","on_critical_path":true,"animate_only":false}},"compositor_timing_history":{"begin_main_frame_queue_critical_estimate_ms":1.706,"begin_main_frame_queue_not_critical_estimate_ms":1.706,"begin_main_frame_start_to_ready_to_commit_estimate_ms":0.525,"commit_to_ready_to_activate_estimate_ms":0.37,"prepare_tiles_estimate_ms":0.276,"activate_estimate_ms":0.063,"draw_estimate_ms":0.784}}
0   libbase.dylib                       0x000000012429005e base::debug::StackTrace::StackTrace(unsigned long) + 174
1   libbase.dylib                       0x000000012429011d base::debug::StackTrace::StackTrace(unsigned long) + 29
2   libbase.dylib                       0x000000012428e5cc base::debug::StackTrace::StackTrace() + 28
3   libbase.dylib                       0x000000012432a0fc logging::LogMessage::~LogMessage() + 460
4   libbase.dylib                       0x0000000124327e65 logging::LogMessage::~LogMessage() + 21
5   libcc.dylib                         0x0000000137be2910 cc::Scheduler::DidReceiveCompositorFrameAck() + 576
6   libcc.dylib                         0x0000000137e8f19b cc::SingleThreadProxy::DidReceiveCompositorFrameAckOnImplThread() + 395
7   libcc.dylib                         0x0000000137d6da4a cc::LayerTreeHostImpl::DidReceiveCompositorFrameAck() + 26
8   libservice.dylib                    0x0000000159f2612a viz::DirectLayerTreeFrameSink::DidReceiveCompositorFrameAck(std::__1::vector<viz::ReturnedResource, std::__1::allocator<viz::ReturnedResource> > const&) + 58
9   libservice.dylib                    0x0000000159f11ae0 viz::CompositorFrameSinkSupport::DidReceiveCompositorFrameAck() + 256
10  libservice.dylib                    0x0000000159f18c7f void base::internal::FunctorTraits<void (viz::CompositorFrameSinkSupport::*)(), void>::Invoke<base::WeakPtr<viz::CompositorFrameSinkSupport> >(void (viz::CompositorFrameSinkSupport::*)(), base::WeakPtr<viz::CompositorFrameSinkSupport>&&) + 127
11  libservice.dylib                    0x0000000159f18b9a void base::internal::InvokeHelper<true, void>::MakeItSo<void (viz::CompositorFrameSinkSupport::*)(), base::WeakPtr<viz::CompositorFrameSinkSupport> >(void (viz::CompositorFrameSinkSupport::*&&)(), base::WeakPtr<viz::CompositorFrameSinkSupport>&&) + 90
12  libservice.dylib                    0x0000000159f18b30 void base::internal::Invoker<base::internal::BindState<void (viz::CompositorFrameSinkSupport::*)(), base::WeakPtr<viz::CompositorFrameSinkSupport> >, void ()>::RunImpl<void (viz::CompositorFrameSinkSupport::*)(), std::__1::tuple<base::WeakPtr<viz::CompositorFrameSinkSupport> >, 0ul>(void (viz::CompositorFrameSinkSupport::*&&)(), std::__1::tuple<base::WeakPtr<viz::CompositorFrameSinkSupport> >&&, std::__1::integer_sequence<unsigned long, 0ul>) + 80
13  libservice.dylib                    0x0000000159f18a89 base::internal::Invoker<base::internal::BindState<void (viz::CompositorFrameSinkSupport::*)(), base::WeakPtr<viz::CompositorFrameSinkSupport> >, void ()>::RunOnce(base::internal::BindStateBase*) + 57
14  libservice.dylib                    0x0000000159f0d2dc base::OnceCallback<void ()>::Run() && + 92
15  libservice.dylib                    0x0000000159fd9e7f viz::Surface::RunDrawCallback() + 127
16  libservice.dylib                    0x0000000159dbabfc viz::Display::DrawAndSwap() + 1980
17  libservice.dylib                    0x0000000159dd4150 viz::DisplayScheduler::DrawAndSwap() + 608
18  libservice.dylib                    0x0000000159dd2cd1 viz::DisplayScheduler::AttemptDrawAndSwap() + 129
19  libservice.dylib                    0x0000000159dd2241 viz::DisplayScheduler::OnBeginFrameDeadline() + 449
20  libservice.dylib                    0x0000000159dd47e5 viz::DisplayScheduler::OnBeginFrameDerivedImpl(viz::BeginFrameArgs const&) + 1397
21  libviz_common.dylib                 0x0000000138768036 viz::BeginFrameObserverBase::OnBeginFrame(viz::BeginFrameArgs const&) + 1494
22  libviz_common.dylib                 0x000000013876dcf9 viz::(anonymous namespace)::FilterAndIssueBeginFrame(viz::BeginFrameObserver*, viz::BeginFrameArgs const&) + 73
23  libviz_common.dylib                 0x0000000138770413 viz::DelayBasedBeginFrameSource::AddObserver(viz::BeginFrameObserver*) + 7123
24  libservice.dylib                    0x0000000159dd52a5 viz::DisplayScheduler::StartObservingBeginFrames() + 53
25  libservice.dylib                    0x0000000159dd273f viz::DisplayScheduler::MaybeStartObservingBeginFrames() + 47
26  libservice.dylib                    0x0000000159dd28a2 viz::DisplayScheduler::SetRootSurfaceResourcesLocked(bool) + 338
27  libservice.dylib                    0x0000000159db96d7 viz::Display::UpdateRootSurfaceResourcesLocked() + 183
28  libservice.dylib                    0x0000000159dc0d8f viz::Display::SurfaceDamaged(viz::SurfaceId const&, viz::BeginFrameAck const&) + 671
29  libservice.dylib                    0x0000000159dd5d4c viz::DisplayScheduler::OnSurfaceDamaged(viz::SurfaceId const&, viz::BeginFrameAck const&) + 60
30  libservice.dylib                    0x000000015a005cdc viz::SurfaceManager::SurfaceModified(viz::SurfaceId const&, viz::BeginFrameAck const&) + 380
31  libservice.dylib                    0x000000015a005f78 viz::SurfaceManager::SurfaceActivated(viz::Surface*, base::Optional<base::TimeDelta>) + 104
32  libservice.dylib                    0x0000000159fd51b4 viz::Surface::ActivateFrame(viz::Surface::FrameData, base::Optional<base::TimeDelta>) + 2420
33  libservice.dylib                    0x0000000159fd3d42 viz::Surface::QueueFrame(viz::CompositorFrame, unsigned long long, base::OnceCallback<void ()>, base::RepeatingCallback<void (viz::LocalSurfaceId const&, gfx::Size const&, gfx::Rect const&, base::TimeTicks)> const&, base::OnceCallback<void (base::TimeTicks, base::TimeDelta, unsigned int)>) + 1442
34  libservice.dylib                    0x0000000159f1117a viz::CompositorFrameSinkSupport::MaybeSubmitCompositorFrame(viz::LocalSurfaceId const&, viz::CompositorFrame, mojo::StructPtr<viz::mojom::HitTestRegionList>) + 3946
35  libservice.dylib                    0x0000000159f10123 viz::CompositorFrameSinkSupport::SubmitCompositorFrame(viz::LocalSurfaceId const&, viz::CompositorFrame, mojo::StructPtr<viz::mojom::HitTestRegionList>, unsigned long long) + 179
36  libservice.dylib                    0x0000000159f25294 viz::DirectLayerTreeFrameSink::SubmitCompositorFrame(viz::CompositorFrame) + 852
37  libcc.dylib                         0x0000000137d71f9b cc::LayerTreeHostImpl::DrawLayers(cc::LayerTreeHostImpl::FrameData*) + 8555
38  libcc.dylib                         0x0000000137e90397 cc::SingleThreadProxy::DoComposite(cc::LayerTreeHostImpl::FrameData*) + 599
39  libcc.dylib                         0x0000000137e924f0 cc::SingleThreadProxy::ScheduledActionDrawIfPossible() + 192
40  libcc.dylib                         0x0000000137be8a37 cc::Scheduler::DrawIfPossible() + 407
41  libcc.dylib                         0x0000000137be1799 cc::Scheduler::ProcessScheduledActions() + 1529
42  libcc.dylib                         0x0000000137be1008 cc::Scheduler::OnBeginImplFrameDeadline() + 360
43  libcc.dylib                         0x0000000137be571c cc::Scheduler::BeginImplFrameWithDeadline(viz::BeginFrameArgs const&) + 268
44  libcc.dylib                         0x0000000137be4f24 cc::Scheduler::OnBeginFrameDerivedImpl(viz::BeginFrameArgs const&) + 1940
45  libviz_common.dylib                 0x0000000138768036 viz::BeginFrameObserverBase::OnBeginFrame(viz::BeginFrameArgs const&) + 1494
46  libviz_common.dylib                 0x000000013876dcf9 viz::(anonymous namespace)::FilterAndIssueBeginFrame(viz::BeginFrameObserver*, viz::BeginFrameArgs const&) + 73
47  libviz_common.dylib                 0x0000000138773bf6 viz::ExternalBeginFrameSource::OnBeginFrame(viz::BeginFrameArgs const&) + 2102
48  libservice.dylib                    0x0000000159f262cf viz::DirectLayerTreeFrameSink::OnBeginFrame(viz::BeginFrameArgs const&) + 63
49  libservice.dylib                    0x0000000159f128a3 viz::CompositorFrameSinkSupport::OnBeginFrame(viz::BeginFrameArgs const&) + 147
50  libviz_common.dylib                 0x000000013876dcf9 viz::(anonymous namespace)::FilterAndIssueBeginFrame(viz::BeginFrameObserver*, viz::BeginFrameArgs const&) + 73
51  libviz_common.dylib                 0x0000000138770f3a viz::DelayBasedBeginFrameSource::OnTimerTick() + 1050
52  libviz_common.dylib                 0x0000000138784029 viz::DelayBasedTimeSource::OnTimerTick() + 265
53  libviz_common.dylib                 0x000000013878527f void base::internal::FunctorTraits<void (viz::DelayBasedTimeSource::*)(), void>::Invoke<base::WeakPtr<viz::DelayBasedTimeSource> const&>(void (viz::DelayBasedTimeSource::*)(), base::WeakPtr<viz::DelayBasedTimeSource> const&&&) + 127
54  libviz_common.dylib                 0x000000013878519a void base::internal::InvokeHelper<true, void>::MakeItSo<void (viz::DelayBasedTimeSource::* const&)(), base::WeakPtr<viz::DelayBasedTimeSource> const&>(void (viz::DelayBasedTimeSource::* const&&&)(), base::WeakPtr<viz::DelayBasedTimeSource> const&&&) + 90
55  libviz_common.dylib                 0x0000000138785130 void base::internal::Invoker<base::internal::BindState<void (viz::DelayBasedTimeSource::*)(), base::WeakPtr<viz::DelayBasedTimeSource> >, void ()>::RunImpl<void (viz::DelayBasedTimeSource::* const&)(), std::__1::tuple<base::WeakPtr<viz::DelayBasedTimeSource> > const&, 0ul>(void (viz::DelayBasedTimeSource::* const&&&)(), std::__1::tuple<base::WeakPtr<viz::DelayBasedTimeSource> > const&&&, std::__1::integer_sequence<unsigned long, 0ul>) + 80
56  libviz_common.dylib                 0x000000013878504c base::internal::Invoker<base::internal::BindState<void (viz::DelayBasedTimeSource::*)(), base::WeakPtr<viz::DelayBasedTimeSource> >, void ()>::Run(base::internal::BindStateBase*) + 44
57  libviz_common.dylib                 0x0000000138785cbd base::RepeatingCallback<void ()>::Run() const & + 61
58  libviz_common.dylib                 0x0000000138785a85 void base::internal::CancelableCallbackImpl<base::RepeatingCallback<void ()> >::ForwardRepeating<>() + 21
59  libviz_common.dylib                 0x0000000138785eff void base::internal::FunctorTraits<void (base::internal::CancelableCallbackImpl<base::RepeatingCallback<void ()> >::*)(), void>::Invoke<base::WeakPtr<base::internal::CancelableCallbackImpl<base::RepeatingCallback<void ()> > > const&>(void (base::internal::CancelableCallbackImpl<base::RepeatingCallback<void ()> >::*)(), base::WeakPtr<base::internal::CancelableCallbackImpl<base::RepeatingCallback<void ()> > > const&&&) + 127
60  libviz_common.dylib                 0x0000000138785e1a void base::internal::InvokeHelper<true, void>::MakeItSo<void (base::internal::CancelableCallbackImpl<base::RepeatingCallback<void ()> >::* const&)(), base::WeakPtr<base::internal::CancelableCallbackImpl<base::RepeatingCallback<void ()> > > const&>(void (base::internal::CancelableCallbackImpl<base::RepeatingCallback<void ()> >::* const&&&)(), base::WeakPtr<base::internal::CancelableCallbackImpl<base::RepeatingCallback<void ()> > > const&&&) + 90
61  libviz_common.dylib                 0x0000000138785db0 void base::internal::Invoker<base::internal::BindState<void (base::internal::CancelableCallbackImpl<base::RepeatingCallback<void ()> >::*)(), base::WeakPtr<base::internal::CancelableCallbackImpl<base::RepeatingCallback<void ()> > > >, void ()>::RunImpl<void (base::internal::CancelableCallbackImpl<base::RepeatingCallback<void ()> >::* const&)(), std::__1::tuple<base::WeakPtr<base::internal::CancelableCallbackImpl<base::RepeatingCallback<void ()> > > > const&, 0ul>(void (base::internal::CancelableCallbackImpl<base::RepeatingCallback<void ()> >::* const&&&)(), std::__1::tuple<base::WeakPtr<base::internal::CancelableCallbackImpl<base::RepeatingCallback<void ()> > > > const&&&, std::__1::integer_sequence<unsigned long, 0ul>) + 80

R=enne@chromium.org

Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel
Change-Id: I713b3c094b6c16fb60c1f8e606f1ac1dea285d62
Reviewed-on: https://chromium-review.googlesource.com/981689
Reviewed-by: Fady Samuel <fsamuel@chromium.org>
Reviewed-by: enne <enne@chromium.org>
Commit-Queue: Khushal <khushalsagar@chromium.org>
Cr-Commit-Position: refs/heads/master@{#546287}
[modify] https://crrev.com/4361dcb9a14ccbf76b21abc3c3592a905430c3b1/components/viz/service/frame_sinks/direct_layer_tree_frame_sink.cc
[modify] https://crrev.com/4361dcb9a14ccbf76b21abc3c3592a905430c3b1/components/viz/service/frame_sinks/direct_layer_tree_frame_sink.h

Labels: Merge-Request-66
The regression was introduced from the change in  issue 821940  which was merged to 66. So this also requires a merge.

Comment 5 by kbr@chromium.org, Mar 27 2018

Blockedon: 821940

Comment 6 by kbr@chromium.org, Mar 27 2018

Thanks for the quick fix Khushal!

Cc: gov...@chromium.org

Comment 8 by gov...@chromium.org, Mar 28 2018

Cc: -gov...@chromium.org abdulsyed@chromium.org
+abdulsyed@ (Chrome Desktop M66 Release TPM) for  M66 merge review.
Project Member

Comment 9 by sheriffbot@chromium.org, Mar 28 2018

Labels: -Merge-Request-66 Merge-Review-66 Hotlist-Merge-Review
This bug requires manual review: M66 has already been promoted to the beta branch, so this requires manual review
Please contact the milestone owner if you have questions.
Owners: cmasso@(Android), cmasso@(iOS), josafat@(ChromeOS), abdulsyed@(Desktop)

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Labels: -Merge-Review-66 Merge-Approved-66
Approving merge to M66. Branch:3359
Project Member

Comment 11 by bugdroid1@chromium.org, Mar 29 2018

Labels: -merge-approved-66 merge-merged-3359
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/05d041444a7ca58c29e306fc64e502d6ac1f03e7

commit 05d041444a7ca58c29e306fc64e502d6ac1f03e7
Author: Khushal <khushalsagar@google.com>
Date: Thu Mar 29 20:30:22 2018

viz: Ensure DirectLayerTreeFrameSink frame acks are async.

For the DirectLayerTreeFrameSink, which submits CompositorFrames
directly to the Display, submitting a new frame can synchronously
result in a display draw and dispatching of frame acks to all clients.
This messes up the state tracking in cc::Scheduler for the layer
compositor. In order to avoid this, post a task to dispatch frame acks
to clients.

BUG:  826518 

Here is the stack trace which tells the complete story:
[2885:775:0326/164435.684320:FATAL:scheduler.cc(149)] Check failed: state_machine_.pending_submit_frames() > 0 (0 vs. 0){"state_machine":{"major_state":{"next_action":"Action::NONE","begin_impl_frame_state":"BeginImplFrameState::INSIDE_DEADLINE","begin_main_frame_state":"BeginMainFrameState::IDLE","layer_tree_frame_sink_state":"LayerTreeFrameSinkState::ACTIVE","forced_redraw_state":"ForcedRedrawOnTimeoutState::IDLE"},"minor_state":{"commit_count":3,"current_frame_number":5,"last_frame_number_submit_performed":4,"last_frame_number_draw_performed":5,"last_frame_number_begin_main_frame_sent":5,"did_draw":true,"did_send_begin_main_frame_for_current_frame":true,"did_notify_begin_main_frame_not_sent":false,"wants_begin_main_frame_not_expected":false,"did_commit_during_frame":true,"did_invalidate_layer_tree_frame_sink":false,"did_perform_impl_side_invalidaion":true,"did_prepare_tiles":false,"consecutive_checkerboard_animations":0,"pending_submit_frames":0,"submit_frames_with_current_layer_tree_frame_sink":2,"needs_redraw":false,"needs_prepare_tiles":false,"needs_begin_main_frame":false,"needs_one_begin_impl_frame":false,"visible":true,"begin_frame_source_paused":false,"can_draw":true,"resourceless_draw":false,"has_pending_tree":false,"pending_tree_is_ready_for_activation":false,"active_tree_needs_first_draw":false,"active_tree_is_ready_to_draw":true,"did_create_and_initialize_first_layer_tree_frame_sink":true,"tree_priority":"NEW_CONTENT_TAKES_PRIORITY","scroll_handler_state":"SCROLL_DOES_NOT_AFFECT_SCROLL_HANDLER","critical_begin_main_frame_to_activate_is_fast":true,"main_thread_missed_last_deadline":false,"skip_next_begin_main_frame_to_reduce_latency":false,"video_needs_begin_frames":false,"defer_commits":false,"last_commit_had_no_updates":false,"did_draw_in_last_frame":true,"did_submit_in_last_frame":false,"needs_impl_side_invalidation":false,"current_pending_tree_is_impl_side":false,"previous_pending_tree_was_impl_side":false}},"observing_begin_frame_source":true,"begin_impl_frame_deadline_task":false,"missed_begin_frame_task":false,"skipped_last_frame_missed_exceeded_deadline":false,"skipped_last_frame_to_reduce_latency":false,"inside_action":"Action::DRAW_IF_POSSIBLE","begin_impl_frame_deadline_mode":"BeginImplFrameDeadlineMode::IMMEDIATE","deadline_ms":0.0,"deadline_scheduled_at_ms":4131952.452,"now_ms":4131953.297,"now_to_deadline_ms":-4131953.298,"now_to_deadline_scheduled_at_ms":-0.847,"begin_impl_frame_args":{"updated_at_ms":4131950.228,"finished_at_ms":0.0,"state":"USING","last_args_":{"type":"BeginFrameArgs","subtype":"NORMAL","source_id":2,"sequence_number":13,"frame_time_us":4131933495.0,"deadline_us":4131948380.0,"interval_us":16669.0,"created_from":"CreateBeginFrameArgs@../../components/viz/common/frame_sinks/begin_frame_source.cc:212","on_critical_path":true,"animate_only":false},"major_timestamps_in_ms":{"0_interval":16.669,"1_now_to_deadline":-4.858,"2_frame_time_to_now":19.743,"3_frame_time_to_deadline":14.885,"4_now":4131953.238,"5_frame_time":4131933.495,"6_deadline":4131948.38}},"begin_frame_observer_state":{"dropped_begin_frame_args":0,"last_begin_frame_args":{"type":"BeginFrameArgs","subtype":"NORMAL","source_id":2,"sequence_number":13,"frame_time_us":4131933495.0,"deadline_us":4131950164.0,"interval_us":16669.0,"created_from":"CreateBeginFrameArgs@../../components/viz/common/frame_sinks/begin_frame_source.cc:212","on_critical_path":true,"animate_only":false}},"begin_frame_source_state":{"source_id":3,"paused":false,"num_observers":1,"last_begin_frame_args":{"type":"BeginFrameArgs","subtype":"NORMAL","source_id":2,"sequence_number":14,"frame_time_us":4131950164.0,"deadline_us":4131966833.0,"interval_us":16669.0,"created_from":"CreateBeginFrameArgs@../../components/viz/common/frame_sinks/begin_frame_source.cc:212","on_critical_path":true,"animate_only":false}},"compositor_timing_history":{"begin_main_frame_queue_critical_estimate_ms":1.706,"begin_main_frame_queue_not_critical_estimate_ms":1.706,"begin_main_frame_start_to_ready_to_commit_estimate_ms":0.525,"commit_to_ready_to_activate_estimate_ms":0.37,"prepare_tiles_estimate_ms":0.276,"activate_estimate_ms":0.063,"draw_estimate_ms":0.784}}
0   libbase.dylib                       0x000000012429005e base::debug::StackTrace::StackTrace(unsigned long) + 174
1   libbase.dylib                       0x000000012429011d base::debug::StackTrace::StackTrace(unsigned long) + 29
2   libbase.dylib                       0x000000012428e5cc base::debug::StackTrace::StackTrace() + 28
3   libbase.dylib                       0x000000012432a0fc logging::LogMessage::~LogMessage() + 460
4   libbase.dylib                       0x0000000124327e65 logging::LogMessage::~LogMessage() + 21
5   libcc.dylib                         0x0000000137be2910 cc::Scheduler::DidReceiveCompositorFrameAck() + 576
6   libcc.dylib                         0x0000000137e8f19b cc::SingleThreadProxy::DidReceiveCompositorFrameAckOnImplThread() + 395
7   libcc.dylib                         0x0000000137d6da4a cc::LayerTreeHostImpl::DidReceiveCompositorFrameAck() + 26
8   libservice.dylib                    0x0000000159f2612a viz::DirectLayerTreeFrameSink::DidReceiveCompositorFrameAck(std::__1::vector<viz::ReturnedResource, std::__1::allocator<viz::ReturnedResource> > const&) + 58
9   libservice.dylib                    0x0000000159f11ae0 viz::CompositorFrameSinkSupport::DidReceiveCompositorFrameAck() + 256
10  libservice.dylib                    0x0000000159f18c7f void base::internal::FunctorTraits<void (viz::CompositorFrameSinkSupport::*)(), void>::Invoke<base::WeakPtr<viz::CompositorFrameSinkSupport> >(void (viz::CompositorFrameSinkSupport::*)(), base::WeakPtr<viz::CompositorFrameSinkSupport>&&) + 127
11  libservice.dylib                    0x0000000159f18b9a void base::internal::InvokeHelper<true, void>::MakeItSo<void (viz::CompositorFrameSinkSupport::*)(), base::WeakPtr<viz::CompositorFrameSinkSupport> >(void (viz::CompositorFrameSinkSupport::*&&)(), base::WeakPtr<viz::CompositorFrameSinkSupport>&&) + 90
12  libservice.dylib                    0x0000000159f18b30 void base::internal::Invoker<base::internal::BindState<void (viz::CompositorFrameSinkSupport::*)(), base::WeakPtr<viz::CompositorFrameSinkSupport> >, void ()>::RunImpl<void (viz::CompositorFrameSinkSupport::*)(), std::__1::tuple<base::WeakPtr<viz::CompositorFrameSinkSupport> >, 0ul>(void (viz::CompositorFrameSinkSupport::*&&)(), std::__1::tuple<base::WeakPtr<viz::CompositorFrameSinkSupport> >&&, std::__1::integer_sequence<unsigned long, 0ul>) + 80
13  libservice.dylib                    0x0000000159f18a89 base::internal::Invoker<base::internal::BindState<void (viz::CompositorFrameSinkSupport::*)(), base::WeakPtr<viz::CompositorFrameSinkSupport> >, void ()>::RunOnce(base::internal::BindStateBase*) + 57
14  libservice.dylib                    0x0000000159f0d2dc base::OnceCallback<void ()>::Run() && + 92
15  libservice.dylib                    0x0000000159fd9e7f viz::Surface::RunDrawCallback() + 127
16  libservice.dylib                    0x0000000159dbabfc viz::Display::DrawAndSwap() + 1980
17  libservice.dylib                    0x0000000159dd4150 viz::DisplayScheduler::DrawAndSwap() + 608
18  libservice.dylib                    0x0000000159dd2cd1 viz::DisplayScheduler::AttemptDrawAndSwap() + 129
19  libservice.dylib                    0x0000000159dd2241 viz::DisplayScheduler::OnBeginFrameDeadline() + 449
20  libservice.dylib                    0x0000000159dd47e5 viz::DisplayScheduler::OnBeginFrameDerivedImpl(viz::BeginFrameArgs const&) + 1397
21  libviz_common.dylib                 0x0000000138768036 viz::BeginFrameObserverBase::OnBeginFrame(viz::BeginFrameArgs const&) + 1494
22  libviz_common.dylib                 0x000000013876dcf9 viz::(anonymous namespace)::FilterAndIssueBeginFrame(viz::BeginFrameObserver*, viz::BeginFrameArgs const&) + 73
23  libviz_common.dylib                 0x0000000138770413 viz::DelayBasedBeginFrameSource::AddObserver(viz::BeginFrameObserver*) + 7123
24  libservice.dylib                    0x0000000159dd52a5 viz::DisplayScheduler::StartObservingBeginFrames() + 53
25  libservice.dylib                    0x0000000159dd273f viz::DisplayScheduler::MaybeStartObservingBeginFrames() + 47
26  libservice.dylib                    0x0000000159dd28a2 viz::DisplayScheduler::SetRootSurfaceResourcesLocked(bool) + 338
27  libservice.dylib                    0x0000000159db96d7 viz::Display::UpdateRootSurfaceResourcesLocked() + 183
28  libservice.dylib                    0x0000000159dc0d8f viz::Display::SurfaceDamaged(viz::SurfaceId const&, viz::BeginFrameAck const&) + 671
29  libservice.dylib                    0x0000000159dd5d4c viz::DisplayScheduler::OnSurfaceDamaged(viz::SurfaceId const&, viz::BeginFrameAck const&) + 60
30  libservice.dylib                    0x000000015a005cdc viz::SurfaceManager::SurfaceModified(viz::SurfaceId const&, viz::BeginFrameAck const&) + 380
31  libservice.dylib                    0x000000015a005f78 viz::SurfaceManager::SurfaceActivated(viz::Surface*, base::Optional<base::TimeDelta>) + 104
32  libservice.dylib                    0x0000000159fd51b4 viz::Surface::ActivateFrame(viz::Surface::FrameData, base::Optional<base::TimeDelta>) + 2420
33  libservice.dylib                    0x0000000159fd3d42 viz::Surface::QueueFrame(viz::CompositorFrame, unsigned long long, base::OnceCallback<void ()>, base::RepeatingCallback<void (viz::LocalSurfaceId const&, gfx::Size const&, gfx::Rect const&, base::TimeTicks)> const&, base::OnceCallback<void (base::TimeTicks, base::TimeDelta, unsigned int)>) + 1442
34  libservice.dylib                    0x0000000159f1117a viz::CompositorFrameSinkSupport::MaybeSubmitCompositorFrame(viz::LocalSurfaceId const&, viz::CompositorFrame, mojo::StructPtr<viz::mojom::HitTestRegionList>) + 3946
35  libservice.dylib                    0x0000000159f10123 viz::CompositorFrameSinkSupport::SubmitCompositorFrame(viz::LocalSurfaceId const&, viz::CompositorFrame, mojo::StructPtr<viz::mojom::HitTestRegionList>, unsigned long long) + 179
36  libservice.dylib                    0x0000000159f25294 viz::DirectLayerTreeFrameSink::SubmitCompositorFrame(viz::CompositorFrame) + 852
37  libcc.dylib                         0x0000000137d71f9b cc::LayerTreeHostImpl::DrawLayers(cc::LayerTreeHostImpl::FrameData*) + 8555
38  libcc.dylib                         0x0000000137e90397 cc::SingleThreadProxy::DoComposite(cc::LayerTreeHostImpl::FrameData*) + 599
39  libcc.dylib                         0x0000000137e924f0 cc::SingleThreadProxy::ScheduledActionDrawIfPossible() + 192
40  libcc.dylib                         0x0000000137be8a37 cc::Scheduler::DrawIfPossible() + 407
41  libcc.dylib                         0x0000000137be1799 cc::Scheduler::ProcessScheduledActions() + 1529
42  libcc.dylib                         0x0000000137be1008 cc::Scheduler::OnBeginImplFrameDeadline() + 360
43  libcc.dylib                         0x0000000137be571c cc::Scheduler::BeginImplFrameWithDeadline(viz::BeginFrameArgs const&) + 268
44  libcc.dylib                         0x0000000137be4f24 cc::Scheduler::OnBeginFrameDerivedImpl(viz::BeginFrameArgs const&) + 1940
45  libviz_common.dylib                 0x0000000138768036 viz::BeginFrameObserverBase::OnBeginFrame(viz::BeginFrameArgs const&) + 1494
46  libviz_common.dylib                 0x000000013876dcf9 viz::(anonymous namespace)::FilterAndIssueBeginFrame(viz::BeginFrameObserver*, viz::BeginFrameArgs const&) + 73
47  libviz_common.dylib                 0x0000000138773bf6 viz::ExternalBeginFrameSource::OnBeginFrame(viz::BeginFrameArgs const&) + 2102
48  libservice.dylib                    0x0000000159f262cf viz::DirectLayerTreeFrameSink::OnBeginFrame(viz::BeginFrameArgs const&) + 63
49  libservice.dylib                    0x0000000159f128a3 viz::CompositorFrameSinkSupport::OnBeginFrame(viz::BeginFrameArgs const&) + 147
50  libviz_common.dylib                 0x000000013876dcf9 viz::(anonymous namespace)::FilterAndIssueBeginFrame(viz::BeginFrameObserver*, viz::BeginFrameArgs const&) + 73
51  libviz_common.dylib                 0x0000000138770f3a viz::DelayBasedBeginFrameSource::OnTimerTick() + 1050
52  libviz_common.dylib                 0x0000000138784029 viz::DelayBasedTimeSource::OnTimerTick() + 265
53  libviz_common.dylib                 0x000000013878527f void base::internal::FunctorTraits<void (viz::DelayBasedTimeSource::*)(), void>::Invoke<base::WeakPtr<viz::DelayBasedTimeSource> const&>(void (viz::DelayBasedTimeSource::*)(), base::WeakPtr<viz::DelayBasedTimeSource> const&&&) + 127
54  libviz_common.dylib                 0x000000013878519a void base::internal::InvokeHelper<true, void>::MakeItSo<void (viz::DelayBasedTimeSource::* const&)(), base::WeakPtr<viz::DelayBasedTimeSource> const&>(void (viz::DelayBasedTimeSource::* const&&&)(), base::WeakPtr<viz::DelayBasedTimeSource> const&&&) + 90
55  libviz_common.dylib                 0x0000000138785130 void base::internal::Invoker<base::internal::BindState<void (viz::DelayBasedTimeSource::*)(), base::WeakPtr<viz::DelayBasedTimeSource> >, void ()>::RunImpl<void (viz::DelayBasedTimeSource::* const&)(), std::__1::tuple<base::WeakPtr<viz::DelayBasedTimeSource> > const&, 0ul>(void (viz::DelayBasedTimeSource::* const&&&)(), std::__1::tuple<base::WeakPtr<viz::DelayBasedTimeSource> > const&&&, std::__1::integer_sequence<unsigned long, 0ul>) + 80
56  libviz_common.dylib                 0x000000013878504c base::internal::Invoker<base::internal::BindState<void (viz::DelayBasedTimeSource::*)(), base::WeakPtr<viz::DelayBasedTimeSource> >, void ()>::Run(base::internal::BindStateBase*) + 44
57  libviz_common.dylib                 0x0000000138785cbd base::RepeatingCallback<void ()>::Run() const & + 61
58  libviz_common.dylib                 0x0000000138785a85 void base::internal::CancelableCallbackImpl<base::RepeatingCallback<void ()> >::ForwardRepeating<>() + 21
59  libviz_common.dylib                 0x0000000138785eff void base::internal::FunctorTraits<void (base::internal::CancelableCallbackImpl<base::RepeatingCallback<void ()> >::*)(), void>::Invoke<base::WeakPtr<base::internal::CancelableCallbackImpl<base::RepeatingCallback<void ()> > > const&>(void (base::internal::CancelableCallbackImpl<base::RepeatingCallback<void ()> >::*)(), base::WeakPtr<base::internal::CancelableCallbackImpl<base::RepeatingCallback<void ()> > > const&&&) + 127
60  libviz_common.dylib                 0x0000000138785e1a void base::internal::InvokeHelper<true, void>::MakeItSo<void (base::internal::CancelableCallbackImpl<base::RepeatingCallback<void ()> >::* const&)(), base::WeakPtr<base::internal::CancelableCallbackImpl<base::RepeatingCallback<void ()> > > const&>(void (base::internal::CancelableCallbackImpl<base::RepeatingCallback<void ()> >::* const&&&)(), base::WeakPtr<base::internal::CancelableCallbackImpl<base::RepeatingCallback<void ()> > > const&&&) + 90
61  libviz_common.dylib                 0x0000000138785db0 void base::internal::Invoker<base::internal::BindState<void (base::internal::CancelableCallbackImpl<base::RepeatingCallback<void ()> >::*)(), base::WeakPtr<base::internal::CancelableCallbackImpl<base::RepeatingCallback<void ()> > > >, void ()>::RunImpl<void (base::internal::CancelableCallbackImpl<base::RepeatingCallback<void ()> >::* const&)(), std::__1::tuple<base::WeakPtr<base::internal::CancelableCallbackImpl<base::RepeatingCallback<void ()> > > > const&, 0ul>(void (base::internal::CancelableCallbackImpl<base::RepeatingCallback<void ()> >::* const&&&)(), std::__1::tuple<base::WeakPtr<base::internal::CancelableCallbackImpl<base::RepeatingCallback<void ()> > > > const&&&, std::__1::integer_sequence<unsigned long, 0ul>) + 80

R=​enne@chromium.org

Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel
Change-Id: I713b3c094b6c16fb60c1f8e606f1ac1dea285d62
Reviewed-on: https://chromium-review.googlesource.com/981689
Reviewed-by: Fady Samuel <fsamuel@chromium.org>
Reviewed-by: enne <enne@chromium.org>
Commit-Queue: Khushal <khushalsagar@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#546287}(cherry picked from commit 4361dcb9a14ccbf76b21abc3c3592a905430c3b1)
Reviewed-on: https://chromium-review.googlesource.com/986893
Reviewed-by: Khushal <khushalsagar@chromium.org>
Cr-Commit-Position: refs/branch-heads/3359@{#503}
Cr-Branched-From: 66afc5e5d10127546cc4b98b9117aff588b5e66b-refs/heads/master@{#540276}
[modify] https://crrev.com/05d041444a7ca58c29e306fc64e502d6ac1f03e7/components/viz/service/frame_sinks/direct_layer_tree_frame_sink.cc
[modify] https://crrev.com/05d041444a7ca58c29e306fc64e502d6ac1f03e7/components/viz/service/frame_sinks/direct_layer_tree_frame_sink.h

Status: Fixed (was: Assigned)

Sign in to add a comment