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

Conversation

@jason-simmons
Copy link
Member

The GPUSurfaceGLImpeller ctor creates an AiksContext/ContentContext, which loads the shader pipelines. If the current thread does not have a GL context and can not execute ReactorGLES operations, then the pipeline futures will not complete. This can cause the raster thread to hang if the reactor has not run and the futures are still incomplete when a rendering task later needs to obtain the pipeline.

PlatformDispatcher.instance.scheduleFrame();
}

@pragma('vm:entry-point')
Copy link
Contributor

Choose a reason for hiding this comment

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

What does this test do differently than the entrypoint you're replacing?

Copy link
Member Author

Choose a reason for hiding this comment

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

The test executes a series of canvas draw calls that makes the EntityPass render a Contents that needs to obtain a Pipeline before the ReactorGLES is flushed.

Without this patch, the test hangs when SolidColorContents::Render tries to get its shader pipeline.

Copy link
Contributor

@jonahwilliams jonahwilliams left a comment

Choose a reason for hiding this comment

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

LGTM with nit

…ing the GPU surface

The GPUSurfaceGLImpeller ctor creates an AiksContext/ContentContext, which loads the shader pipelines.  If the current thread does not have a GL context and can not execute ReactorGLES operations, then the pipeline futures will not complete.  This can cause the raster thread to hang if the reactor has not run and the futures are still incomplete when a rendering task later needs to obtain the pipeline.
@jason-simmons jason-simmons force-pushed the embed_iplr_gl_context_gpu_surface branch from 26d2a40 to 41d39f7 Compare February 21, 2024 02:23
@jason-simmons jason-simmons added the autosubmit Merge PR when tree becomes green via auto submit App label Feb 21, 2024
@auto-submit auto-submit bot merged commit f7ac96d into flutter:main Feb 21, 2024
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Feb 21, 2024
auto-submit bot pushed a commit to flutter/flutter that referenced this pull request Feb 21, 2024
…143875)

flutter/engine@52ffcaa...bf5c003

2024-02-21 [email protected] Roll Skia from 9d86359b5fe8 to 8fa858855820 (15 revisions) (flutter/engine#50827)
2024-02-21 [email protected] Add the `scenario_app` `'solid_blue'` golden to the Android test suite (flutter/engine#50801)
2024-02-21 [email protected] Ignore EOF newline characters and added tests to `dir_contents_diff` tool (flutter/engine#50805)
2024-02-21 [email protected] Make the GL context current in EmbedderSurfaceGLImpeller before creating the GPU surface (flutter/engine#50807)
2024-02-21 [email protected] Fail engine post-submit on skia-gold comparions. (flutter/engine#50826)
2024-02-21 [email protected] Remove WindowManager reflection in SingleViewPresentation.java (flutter/engine#49996)
2024-02-21 [email protected] [Impeller] applied the lerp hack to blur (roughly 2x speedup?) (flutter/engine#50790)
2024-02-21 [email protected] Migrate the Fuchsia embedder to the Dart_RecordTimelineEvent API (flutter/engine#50823)
2024-02-21 [email protected] Hook ImageReaderSurfaceProducer to the onTrimMemory listener interface (flutter/engine#50792)
2024-02-21 [email protected] Fix the local-only lint errors due to an unexpected `GeneratedPluginRegistrant.java` (flutter/engine#50795)
2024-02-21 [email protected] [Impeller] cache onscreen render targets. (flutter/engine#50751)
2024-02-21 [email protected] Use 'et format' in CI. Check formatting of all files in CI (flutter/engine#50810)

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

autosubmit Merge PR when tree becomes green via auto submit App

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants