-
Notifications
You must be signed in to change notification settings - Fork 6k
Reland: [macOS] Use CVDisplayLink to drive repaint #51126
Conversation
} | ||
|
||
// Notify block below may be called asynchronously, hence the need to copy | ||
// the layer information instead of passing the original pointers from embedder. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for adding this comment to explain why we couldn't for example, just use a std::span
or otherwise to wrap the layers being passed down, which will potentially be collected before they're used by us.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
…9159)" (flutter#51095)" This reverts commit dd3383d.
8bee545
to
e086d7a
Compare
…144570) flutter/engine@0d8588b...4001881 2024-03-04 [email protected] Reland: [macOS] Use CVDisplayLink to drive repaint (flutter/engine#51126) 2024-03-04 [email protected] Support gtest-parallel when running Impeller unit tests (flutter/engine#51079) 2024-03-04 [email protected] Scenario App: Adds a `run_{count}.{backend}.` file prefix to every run (on CI) (flutter/engine#51102) 2024-03-04 [email protected] Use Instrumentation.waitForIdleSync() after rotation requests. (flutter/engine#51169) 2024-03-04 [email protected] Roll Skia from 9c7d13c05e77 to f65ecbdfb09c (1 revision) (flutter/engine#51170) 2024-03-04 [email protected] Guard against API 22 (flutter/engine#51167) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-engine-flutter-autoroll Please CC [email protected],[email protected],[email protected] on the revert to ensure that a human is aware of the problem. To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Reason for revert: looks like this regressed Skia benchmarks: https://flutter-flutter-perf.skia.org/e/?keys=Xbf8dce9c233bce34d20e2280e3f1d8db&selected=commit%3D39653%26name%3D%2Carch%3Dintel%2Cbranch%3Dmaster%2Cconfig%3Ddefault%2Cdevice_type%3Dnone%2Cdevice_version%3Dnone%2Chost_type%3Dmac%2Csub_result%3DtimeToFirstFrameRasterizedMicros%2Ctest%3Dflutter_gallery_macos__start_up%2C&xbaroffset=39569 The regression starts with the engine roll containing this CVDisplayLink patch: 0d8588b...4001881 |
A reason for requesting a revert of flutter/engine/51126 could |
This reverts commit 4001881.
…#51192) Reverts #51126 Initiated by: cbracken Reason for reverting: looks like this regressed Skia benchmarks: https://flutter-flutter-perf.skia.org/e/?keys=Xbf8dce9c233bce34d20e2280e3f1d8db&selected=commit%3D39653%26name%3D%2Carch%3Dintel%2Cbranch%3Dmaster%2Cconfig%3Ddefault%2Cdevice_type%3Dnone%2Cdevice_version%3Dnone%2Chost_type%3Dmac%2Csub_result%3DtimeToFirstFrameRasterizedMicros%2Ctest%3Dflutter_gallery_macos__start_up%2C&xbaroffset=39569 The regression s Original PR Author: knopp Reviewed By: {cbracken} This change reverts the following previous change: Original Description: This relands the PR reverted in #51095 Changes since the original PR: - The macOS embedder does not assume particular clock when calling the embedder API, but converts CAMediaTime to engine time and back (`FlutterTimeConverter`) - `FlutterVSyncWaiter` does not wait for displaylink callback during warmup frame. This should prevent `timeToFirstFrameRasterizedMicros` regressions. - When enforcing frame pacing the raster thread is not blocked. This should prevent `average_frame_rasterizer_time_millis` regressions. [C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
…lutter#51126)" (flutter#51192)" This reverts commit 78cecee.
…lutter#51126)" (flutter#51192)" This reverts commit 78cecee.
[Original reland](#51126) was [reverted](78cecee) because of skiaperf regressions. The regressions are caused by runner machines running display at 30hz. ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide] and the [C++, Objective-C, Java style guides]. - [x] I listed at least one issue that this PR fixes in the description above. - [x] I added new tests to check the change I am making or feature I am adding, or the PR is [test-exempt]. See [testing the engine] for instructions on writing and running engine tests. - [x] I updated/added relevant documentation (doc comments with `///`). - [x] I signed the [CLA]. - [x] All existing and new tests are passing. If you need help, consider asking for advice on the #hackers-new channel on [Discord]. <!-- Links --> [Contributor Guide]: https://github.com/flutter/flutter/wiki/Tree-hygiene#overview [Tree Hygiene]: https://github.com/flutter/flutter/wiki/Tree-hygiene [test-exempt]: https://github.com/flutter/flutter/wiki/Tree-hygiene#tests [Flutter Style Guide]: https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo [C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style [testing the engine]: https://github.com/flutter/flutter/wiki/Testing-the-engine [CLA]: https://cla.developers.google.com/ [flutter/tests]: https://github.com/flutter/tests [breaking change policy]: https://github.com/flutter/flutter/wiki/Tree-hygiene#handling-breaking-changes [Discord]: https://github.com/flutter/flutter/wiki/Chat
This relands the PR reverted in #51095
Changes since the original PR:
FlutterTimeConverter
)FlutterVSyncWaiter
does not wait for displaylink callback during warmup frame. This should preventtimeToFirstFrameRasterizedMicros
regressions.average_frame_rasterizer_time_millis
regressions.Pre-launch Checklist
///
).If you need help, consider asking for advice on the #hackers-new channel on Discord.