Repository navigation
[Linux] Request a frame when a view starts rendering - #192911
Conversation
Frames rendered before a view is realized are dropped, as there is nothing to present them to. The view is then left empty until something else makes Flutter render, which happens to be the window metrics sent when the view is first given a size. Add fl_engine_schedule_frame and ask the engine for a frame instead of relying on that.
|
It looks like this pull request may not have tests. Please make sure to add tests or get an explicit test exemption before merging. 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. If you believe this PR qualifies for a test exemption, contact "@test-exemption-reviewer" in the #hackers channel in Discord (don't just cc them here, they won't see it!). The test exemption team is a small volunteer group, so all reviewers should feel empowered to ask for tests, without delegating that responsibility entirely to the test exemption group. |
There was a problem hiding this comment.
Code Review
This pull request introduces the fl_engine_schedule_frame function to the Linux platform shell, which requests the Flutter engine to render a new frame. This function is called during the realization phase of the OpenGL, software, and subsurface view renderers to ensure a frame is scheduled and the view is not left empty if initial frames were dropped. There are no review comments, and I have no feedback to provide.
Covers fl_engine_schedule_frame and a view asking for a frame when it is realized. The mock engine didn't have a ScheduleFrame method, so calling it in a test used a null pointer.
# Conflicts: # engine/src/flutter/shell/platform/linux/fl_engine_private.h # engine/src/flutter/shell/platform/linux/fl_view_renderer_subsurface.cc
|
autosubmit label was removed for flutter/flutter/192911, because - The status or check suite Dashboard Checks has failed. Please fix the issues identified (or deflake) before re-applying this label. |
|
autosubmit label was removed for flutter/flutter/192911, because - The status or check suite Dashboard Checks has failed. Please fix the issues identified (or deflake) before re-applying this label. |
Frames rendered before a view is realized are dropped, as there is nothing to present them to. The view is then left empty until something else makes Flutter render, which happens to be the window metrics sent when the view is first given a size.
Add fl_engine_schedule_frame and ask the engine for a frame instead of relying on that.