Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Multiview: Add view ID to _render and remove render rule skipping (fl…
…utter#50220) This PR adds a view ID parameter to the Dart FFI `_render` function, and also remove the logic that skips illegal renders that violates the render rule. I decided to implement the change to add the view ID as a separate PR because it's blocking us from performing benchmark testing internally, which is required to verify before merging the full multiview pipeline. We're also abolishing the render rule for now to allow presenting the warmup frame, which affects the startup performance. It is planned to implement the render rule once we can coordinate the warmup frame into the pipeline. ### More on removing the render rule enforcement The project needs to be divided into two phases: * Phase 1: Dart:ui doesn't kip out-of-vsync frames. And the pipeline presents these frames in a hacky way. * Phase 2: Dart:ui skip out-of-vsync frames, but submit warmup frames using a dedicated method. The pipeline contains no hacks. The current logic only enforces the render rule in debug mode. It's not desired to have the debug mode and the release mode behaving differently. Moreover, I'd like to make only the necessary changes for phase 1, so that there is as little "to be used in the future" code between the two phases as possible. ## Pre-launch Checklist - [ ] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [ ] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [ ] I read and followed the [Flutter Style Guide] and the [C++, Objective-C, Java style guides]. - [ ] I listed at least one issue that this PR fixes in the description above. - [ ] 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. - [ ] I updated/added relevant documentation (doc comments with `///`). - [ ] I signed the [CLA]. - [ ] 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
- Loading branch information