-
Notifications
You must be signed in to change notification settings - Fork 29.1k
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
base: master
Are you sure you want to change the base?
Conversation
Since the present occurs in the same thread as the draw we need to keep running tasks while we wait for the frame.
Warning There is an error in the Gemini Code Assist config file for this repository at |
Replaces #172835 |
There was a problem hiding this 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!
engine/src/flutter/shell/platform/linux/fl_compositor_software.cc
Outdated
Show resolved
Hide resolved
There was a problem hiding this 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); |
There was a problem hiding this comment.
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:
- The initial dimensions are wrong so that it waits on the task runner
- The task runner updates the compositor with the correct dimensions at some point
- The compositor then successfully renders
Since the present occurs in the same thread as the draw we need to keep running tasks while we wait for the frame.