Skip to content

Conversation

@liyuqian
Copy link
Contributor

Description

This is required for a high-priority Google client to remove its two final shader compilation jank. I tried to not modify any of the existing engine or framework API so this can be rolled quickly without manual fixes.

Related Issues

#813

Tests

Ask for preliminary code review now to accelerate the process. Will add a flutter drive performance benchmarks similar to cubic_bezier_perf__timeline_summary soon.

Checklist

Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]). This will ensure a smooth and quick review process.

  • I read the Contributor Guide and followed the process outlined there for submitting PRs.
  • I signed the CLA.
  • I read and followed the Flutter Style Guide, including Features we expect every widget to implement.
  • I updated/added relevant documentation (doc comments with ///).
  • All existing and new tests are passing.
  • The analyzer (flutter analyze --flutter-repo) does not report any problems on my PR.
  • I am willing to follow-up on review comments in a timely manner.

Breaking Change

Does your PR require Flutter developers to manually update their apps to accommodate your change?

  • Yes, this is a breaking change (Please read Handling breaking changes). Replace this with a link to the e-mail where you asked for input on this proposed change.
  • No, this is not a breaking change.

Copy link
Contributor

@dnfield dnfield left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm having trouble seeing why this belongs in the framework. An app developer doesn't benefit much from this implementation, and we already know it's a less than ideal implementation (using screenshots instead of flushes) of an API that already seems difficult to reason about using correctly.

As written, this seems like something that could easily be a package (or just written directly in an app).

If this really is the fix that the internal customer needs, perhaps we could just implement it in their app rather than the framework. I strongly suspect we'd have a better time even doing this in their embedder rather than in the Dart code, since we could presumably fire this off asynchronously as soon as Skia is loaded rather than waiting for the Dart VM to arrive here.

@goderbauer goderbauer added the framework flutter/packages/flutter repository. See also f: labels. label Apr 10, 2019
@liyuqian
Copy link
Contributor Author

Thanks @dnfield for the suggestion! I've verified that it's indeed possible to fix the problem without any Flutter framework or engine side changes. The downside is that there will be two screenshots. But it's Ok as we have several seconds of budget. Close this PR, and let's move the the Google-internal changes.

@liyuqian liyuqian closed this Apr 10, 2019
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Aug 7, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

framework flutter/packages/flutter repository. See also f: labels.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants