@@ -104,10 +104,6 @@ void Animator::BeginFrame(
104
104
// We have acquired a valid continuation from the pipeline and are ready
105
105
// to service potential frame.
106
106
FML_DCHECK (producer_continuation_);
107
- fml::tracing::TraceEventAsyncComplete (
108
- " flutter" , " VsyncSchedulingOverhead" ,
109
- frame_timings_recorder_->GetVsyncStartTime (),
110
- frame_timings_recorder_->GetBuildStartTime ());
111
107
const fml::TimePoint frame_target_time =
112
108
frame_timings_recorder_->GetVsyncTargetTime ();
113
109
dart_frame_deadline_ = FxlToDartOrEarlier (frame_target_time);
@@ -195,6 +191,10 @@ bool Animator::CanReuseLastLayerTree() {
195
191
196
192
void Animator::DrawLastLayerTree (
197
193
std::unique_ptr<FrameTimingsRecorder> frame_timings_recorder) {
194
+ // This method is very cheap, but this makes it explicitly clear in trace
195
+ // files.
196
+ TRACE_EVENT0 (" flutter" , " Animator::DrawLastLayerTree" );
197
+
198
198
pending_frame_semaphore_.Signal ();
199
199
// In this case BeginFrame doesn't get called, we need to
200
200
// adjust frame timings to update build start and end times,
@@ -208,6 +208,12 @@ void Animator::DrawLastLayerTree(
208
208
209
209
void Animator::RequestFrame (bool regenerate_layer_tree) {
210
210
if (regenerate_layer_tree) {
211
+ // This event will be closed by BeginFrame. BeginFrame will only be called
212
+ // if regenerating the layer tree. If a frame has been requested to update
213
+ // an external texture, this will be false and no BeginFrame call will
214
+ // happen.
215
+ TRACE_EVENT_ASYNC_BEGIN0 (" flutter" , " Frame Request Pending" ,
216
+ frame_request_number_);
211
217
regenerate_layer_tree_ = true ;
212
218
}
213
219
@@ -225,13 +231,10 @@ void Animator::RequestFrame(bool regenerate_layer_tree) {
225
231
// To support that, we need edge triggered wakes on VSync.
226
232
227
233
task_runners_.GetUITaskRunner ()->PostTask (
228
- [self = weak_factory_.GetWeakPtr (),
229
- frame_request_number = frame_request_number_]() {
234
+ [self = weak_factory_.GetWeakPtr ()]() {
230
235
if (!self) {
231
236
return ;
232
237
}
233
- TRACE_EVENT_ASYNC_BEGIN0 (" flutter" , " Frame Request Pending" ,
234
- frame_request_number);
235
238
self->AwaitVSync ();
236
239
});
237
240
frame_scheduled_ = true ;
0 commit comments