Skip to content

Fix lock up when window resized with merged UI and platform threads. #172893

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

Open
wants to merge 5 commits into
base: master
Choose a base branch
from

Conversation

robert-ancell
Copy link
Contributor

Since the present occurs in the same thread as the draw we need to keep running tasks while we wait for the frame.

Since the present occurs in the same thread as the draw we need to
keep running tasks while we wait for the frame.
Copy link
Contributor

Warning

There is an error in the Gemini Code Assist config file for this repository at .gemini/config.yaml. The configuration cannot be used until the file is fixed.

@github-actions github-actions bot added the engine flutter/engine repository. See also e: labels. label Jul 29, 2025
@robert-ancell
Copy link
Contributor Author

Replaces #172835

@github-actions github-actions bot added platform-linux Building on or for Linux specifically a: desktop Running on desktop labels Jul 29, 2025
@robert-ancell robert-ancell requested review from mattkae and knopp July 29, 2025 04:43
Copy link
Contributor

@mattkae mattkae left a comment

Choose a reason for hiding this comment

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

One question on my end, but not blocking!

@robert-ancell robert-ancell requested a review from mattkae August 15, 2025 02:25
Copy link
Contributor

@mattkae mattkae left a comment

Choose a reason for hiding this comment

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

I have a test request, also I can't build for some reason on my end, but maybe that's just me


#include <gdk/gdkwayland.h>

TEST(FlCompositorSoftwareTest, Render) {
g_autoptr(FlDartProject) project = fl_dart_project_new();
g_autoptr(FlEngine) engine = fl_engine_new(project);
g_autoptr(FlTaskRunner) task_runner = fl_task_runner_new(engine);
Copy link
Contributor

Choose a reason for hiding this comment

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

Should we also add a test where:

  1. The initial dimensions are wrong so that it waits on the task runner
  2. The task runner updates the compositor with the correct dimensions at some point
  3. The compositor then successfully renders

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
a: desktop Running on desktop engine flutter/engine repository. See also e: labels. platform-linux Building on or for Linux specifically
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants