-
Notifications
You must be signed in to change notification settings - Fork 6k
Revert "Listen for Vsync callback on the UI thread directly" #29923
Conversation
This reverts commit 9be4b8b.
|
It looks like this pull request may not have tests. Please make sure to add tests before merging. If you need an exemption to this rule, contact Hixie on the #hackers channel in Chat. If you are not sure if you need tests, consider this rule of thumb: the purpose of a test is to make sure someone doesn't accidentally revert the fix. Ask yourself, is there anything in your PR that you feel it is important we not accidentally revert back to how it was before your fix? Reviewers: Read the Tree Hygiene page and make sure this patch meets those guidelines before LGTMing. |
mdebbar
left a comment
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.
LGTM
|
Whitout reverting this commit, I run hybrid_android_views_integration_test on my mac laptop, it's success. Here is the output log: |
|
Can @blasten or @GaryQian answer the question above from @FelixZhang00 ? |
|
If it is passing, we can try to land it again, the failure may have been a flake then. I opted for revert since it was the only risky change in the roll and it was blocking the tree. |
|
Based on the failures in the Flutter Dashboard, this doesn't seem to be flaky. It's consistently passing in all commits without retries, and kept failing consistently on this commit despite retrying multiple times. |
|
@FelixZhang00 It seems like your change exposed a race in the current implementation of platform views. The race is more noticeable due to the changes to shell/platform/android/vsync_waiter_android.cc in #29889. The issue is that to show a platform view in the first frame, the platform thread needs to wait for a message from framework. Currently, the engine post a task to the platform thread to generate a frame, which may cause the ordering of events to be "just" right. However, your change posts a frame without going through the queue. A potential solution to this problem would require to detect if the current frame has a platform view, and wait for the message (that allows to create the Android view) before producing the actual frame on the screen. |

Reverts #29889
https://ci.chromium.org/ui/p/flutter/builders/prod/Mac_android%20hybrid_android_views_integration_test/3199/overview