Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Multiview: Add view ID to _render and remove render rule skipping #50220

Merged
merged 2 commits into from
Feb 1, 2024

Conversation

dkwingsmt
Copy link
Contributor

@dkwingsmt dkwingsmt commented Jan 31, 2024

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.

@dkwingsmt dkwingsmt requested a review from goderbauer January 31, 2024 23:31
@flutter-dashboard
Copy link

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 "@test-exemption-reviewer" in the #hackers channel in Chat (don't just cc them here, they won't see it! Use Discord!).

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.

@dkwingsmt dkwingsmt requested a review from loic-sharma January 31, 2024 23:33
@dkwingsmt dkwingsmt merged commit 80e5792 into flutter:main Feb 1, 2024
@dkwingsmt dkwingsmt deleted the multiview-dart-render branch February 1, 2024 00:38
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Feb 1, 2024
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Feb 1, 2024
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Feb 1, 2024
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Feb 1, 2024
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Feb 1, 2024
auto-submit bot pushed a commit to flutter/flutter that referenced this pull request Feb 1, 2024
…142690)

flutter/engine@f4fbabf...68943af

2024-02-01 [email protected] [Impeller] Clear the GPUTracerVK in_frame flag when ending a frame even if the tracer is disabled (flutter/engine#50228)
2024-02-01 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Remove migration flag and unused header files" (flutter/engine#50229)
2024-02-01 [email protected] [Impeller] size vk swapchain to window size. (flutter/engine#50205)
2024-02-01 [email protected] Remove string field from FlKeyEvent (flutter/engine#50189)
2024-02-01 [email protected] Roll Skia from 19e5e8f089b2 to bcbc172f74da (2 revisions) (flutter/engine#50226)
2024-02-01 [email protected] Ignore CRLF endings when determining the names of header guards. (flutter/engine#50227)
2024-02-01 [email protected] [Impeller] make GPU tracing off by default. (flutter/engine#50215)
2024-02-01 [email protected] Multiview: Add view ID to _render and remove render rule skipping (flutter/engine#50220)
2024-02-01 [email protected] Remove migration flag and unused header files (flutter/engine#50216)

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
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants