Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix async image loading issues in skwasm. #47117

Merged
merged 4 commits into from
Oct 20, 2023

Conversation

eyebrowsoffire
Copy link
Contributor

This fixes flutter/flutter#134045

There were a few different issues here:

  • We need to do our own message passing for rendering pictures. The async methods provided by emscripten have their own queue that can drain synchronously, so basically it's not guaranteed to be FIFO with other messages sent to the web worker or main thread.
  • When we drop frames, we should only drop intermediate frames, so that when the rendering flurry stops that the frame that is displayed is the last one that was actually requested.
  • We need to reset the GL context after lazy image creation, otherwise skia's renderer gets into a bad state for that frame.

There were a few different issues here:
* We need to do our own message passing for rendering pictures. The
  async methods provided by emscripten have their own queue that can
  drain synchronously, so basically it's not guaranteed to be FIFO with
  other messages sent to the web worker or main thread.
* When we drop frames, we should only drop intermediate frames, so that
  when the rendering flurry stops that the frame that is displayed is
  the last one that was actually requested.
* We need to reset the GL context after lazy image creation, otherwise
  skia's renderer gets into a bad state for that frame.
@github-actions github-actions bot added the platform-web Code specifically for the web engine label Oct 19, 2023
Copy link
Contributor

@harryterkelsen harryterkelsen left a comment

Choose a reason for hiding this comment

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

LGTM

lib/web_ui/test/engine/scene_view_test.dart Outdated Show resolved Hide resolved
@eyebrowsoffire eyebrowsoffire added the autosubmit Merge PR when tree becomes green via auto submit App label Oct 20, 2023
@auto-submit auto-submit bot merged commit 8bd8294 into flutter:main Oct 20, 2023
25 checks passed
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Oct 20, 2023
auto-submit bot pushed a commit to flutter/flutter that referenced this pull request Oct 20, 2023
…136982)

flutter/engine@d46933e...b27e1b3

2023-10-20 [email protected] Add link support in web accessibility (flutter/engine#46117)
2023-10-20 [email protected] [web] Support `flutterViewId` in platform view messages (flutter/engine#46891)
2023-10-20 [email protected] Fix async image loading issues in skwasm. (flutter/engine#47117)
2023-10-20 [email protected] Add option to save Impeller failure images in rendertests (flutter/engine#47142)
2023-10-20 [email protected] Roll Skia from b960e9140f56 to 9ffd5ef9a9ed (3 revisions) (flutter/engine#47167)
2023-10-20 [email protected] [macOS] Eliminate extraneous loadView calls (flutter/engine#47166)
2023-10-20 [email protected] Roll Dart SDK from ba96a157a8eb to 53fee35b299f (1 revision) (flutter/engine#47165)
2023-10-20 [email protected] [Impeller] GPU Tracer for GLES. (flutter/engine#47080)
2023-10-20 [email protected] Roll Skia from de628929015d to b960e9140f56 (2 revisions) (flutter/engine#47164)

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
harryterkelsen pushed a commit that referenced this pull request Oct 23, 2023
This fixes flutter/flutter#134045

There were a few different issues here:
* We need to do our own message passing for rendering pictures. The async methods provided by emscripten have their own queue that can drain synchronously, so basically it's not guaranteed to be FIFO with other messages sent to the web worker or main thread.
* When we drop frames, we should only drop intermediate frames, so that when the rendering flurry stops that the frame that is displayed is the last one that was actually requested.
* We need to reset the GL context after lazy image creation, otherwise skia's renderer gets into a bad state for that frame.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
autosubmit Merge PR when tree becomes green via auto submit App platform-web Code specifically for the web engine
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Material 3 Demo running with Skwasm doesn't render all elements on first paint
3 participants