45 Commits

Author SHA1 Message Date
Kaushik Iska e65b4901fa [animator] Pass target frametime for Window.onBeginFrame (#14318)
This gives us a time closer to when the frame will be rendered on
screen.

Fixes: https://github.com/flutter/flutter/issues/10850
2019-12-12 15:03:27 -08:00
gaaclarke 89e395853c Refactor to passing functions by const ref (#13975)
Moved our code to passing functions by const ref
2019-11-22 12:20:02 -08:00
liyuqian 9675ca2f6b Reland "Smooth out iOS irregular input events delivery (#12280)" (#12385)
This reverts commit c2879cae2e.

Additionally, we fix https://github.com/flutter/flutter/issues/40863 by adding a secondary VSYNC callback.

Unit tests are updated to provide VSYNC mocking and check the fix of https://github.com/flutter/flutter/issues/40863.

The root cause of having https://github.com/flutter/flutter/issues/40863 is the false assumption that each input event must trigger a new frame. That was true in the framework PR https://github.com/flutter/flutter/pull/36616 because the input events there are all scrolling move events. When the PR was ported to the engine, we can no longer distinguish different types of events, and tap events may no longer trigger a new frame.

Therefore, this PR directly hooks into the `VsyncWaiter` and uses its (newly added) secondary callback to dispatch the pending input event.
2019-09-30 11:25:50 -07:00
Dan Field 66636eaded Platform View implemenation for Metal (#11070) 2019-08-23 16:15:41 -07:00
Zachary Anderson 0a2e28d797 Revert tracing changes (#9296)
* Revert "[fuchsia] Fix alignment of Fuchsia/non-Fuchsia tracing (#9289)"

This reverts commit f80ac5f571.

* Revert "Align fuchsia and non-fuchsia tracing (#9199)"

This reverts commit 7826548462.
2019-06-12 10:25:49 -07:00
liyuqian 9f088c65ee Add onReportTimings and FrameRasterizedCallback API (#8983)
Using it, a Flutter app can monitor missing frames in the release mode, and a custom Flutter runner (e.g., Fuchsia) can add a custom FrameRasterizedCallback.

Related issues:
https://github.com/flutter/flutter/issues/26154
https://github.com/flutter/flutter/issues/31444
https://github.com/flutter/flutter/issues/32447

Need review as soon as possible so we can merge this before the end of May to catch the milestone.

Tests added:
* NoNeedToReportTimingsByDefault
* NeedsReportTimingsIsSetWithCallback
* ReportTimingsIsCalled
* FrameRasterizedCallbackIsCalled
* FrameTimingSetsAndGetsProperly
* onReportTimings preserves callback zone
* FrameTiming.toString has the correct format

This will need a manual engine roll as the TestWindow defined in the framework needs to implement onReportTimings.
2019-06-06 10:42:48 -07:00
Dan Field 7826548462 Align fuchsia and non-fuchsia tracing (#9199) 2019-06-05 15:14:27 -07:00
Dan Field fa9b5bd0e2 Reduce pipeline depth when GPU and Platform are same thread (#9132) 2019-05-29 19:45:02 -07:00
liyuqian 8ff631f3df Rename flow namespace to flutter (#8615)
This follows our namespace change from shell to flutter: https://github.com/flutter/engine/pull/8520.
2019-04-17 14:38:45 -07:00
Chinmay Garde 39e1d00f39 Remove redundant specification of the |flutter| namespace in the engine. (#8523) 2019-04-09 17:50:06 -07:00
Chinmay Garde 56052c70af Rename the shell namespace to flutter. (#8520) 2019-04-09 17:10:46 -07:00
Chinmay Garde eec74e5c92 Rename the blink namespace to flutter. (#8517)
Some components in the Flutter engine were derived from the forked blink codebase. While the forked components have either been removed or rewritten, the use of the blink namespace has mostly (and inconsistently) remained. This renames the blink namesapce to flutter for consistency. There are no functional changes in this patch.
2019-04-09 12:44:42 -07:00
nathanrogersgoogle 6bd697dd4c Fix "PointerEvent" flow end event (#8319)
"DispatchPointerDataPacket" should have been "PointerEvent".
2019-03-27 14:34:01 -07:00
nathanrogersgoogle e2394ad77e Add flow events connecting pointer events to frames (#7807) 2019-02-13 22:27:12 -08:00
nathanrogersgoogle 12d0b95c24 Don't call OnAnimatorNotifyIdle if a frame is scheduled (#7746)
If a frame is scheduled by the time the delayed animator notify idle
task runs, then we should not call |NotifyIdle|.

Also, add a trace event in the task, to make it more clear in traces
when a notify idle call is coming from here (as opposed to
|Animator::AwaitVSync|).
2019-02-08 15:14:06 -08:00
liyuqian 2bd75ae8ba Support querying display refresh rate in engine (#7002)
The current implementation only deals with Android devices and we'll add iOS devices support soon.
2018-12-12 10:28:44 -08:00
Michael Goderbauer 70a1106b50 Unify copyright lines (#6757) 2018-11-07 12:24:35 -08:00
Chinmay Garde 89176ee006 Remove unused argument on Animator, Engine and PlatformView delegates. (#6007)
When these delegate methods were initially added, it was expected that a single
shell would be able to own mutliple platform views, engines and animators. This
plan was abandoned in favor of creating multiple shells with their own platform
views, engines, etc.. The arguments were meant to ease the disambiguate the
instances of the variaous objects managed by the shell. This is no longer
necessary.
2018-08-13 16:16:10 -07:00
nathanrogersgoogle 149ea7b74c Add a delay to Animator::BeginFrame's NotifyIdle call (#5972)
This change adds a delay before Animator::BeginFrame calls its
delegate's OnAnimatorNotifyIdle.  This is because under certain
workloads, such as our parent view resizing us, which is communicated
via viewport change events, we won't have a frame scheduled yet in the
animator, despite the fact that we will go on to schedule a frame once
the viewport event arrives.

In Fuchsia's resizing performance test, on our reference high end x86-64
hardware, the previous logic was resulting in a ~45ms garbage collection
right after the first frame of an animation.
2018-08-10 13:28:09 -07:00
Chinmay Garde 9f8285ac6c Remove all dependencies on Garnet. (#5869) 2018-07-26 12:49:34 -07:00
Chinmay Garde 228cecc293 Make //flutter/synchronization Garnet free. (#5865) 2018-07-25 14:30:41 -07:00
Chinmay Garde 336c23f846 Remove //flutter/glue and use FML directly. (#5862) 2018-07-25 13:20:48 -07:00
Chinmay Garde 58e84c8bf0 Re-land "Support multiple shells in a single process. (#4932)" (#4998)
* Re-land "Support multiple shells in a single process. (#4932)"

This reverts commit 723c7d0143.
2018-04-13 13:48:15 -07:00
Vyacheslav Egorov 723c7d0143 Revert "Re-land "Support multiple shells in a single process. (#4932)" (#4977)" (#4981)
This reverts commit a3327bff86.
2018-04-12 18:28:55 +02:00
Chinmay Garde a3327bff86 Re-land "Support multiple shells in a single process. (#4932)" (#4977)
This reverts commit 9199b40f2a.
2018-04-11 15:41:23 -07:00