Sitelet https://github.com/flutter/flutter/pull/192098
Skip to content

[Linux] Use fences to synchronize frames between OpenGL contexts - #192098

Merged
robert-ancell merged 7 commits into
flutter:masterfrom
robert-ancell:linux-gl-fence
Sep 4, 2026
Merged

robert-ancell merged 7 commits into
flutter:masterfrom
robert-ancell:linux-gl-fence

Conversation

@robert-ancell

Copy link
Copy Markdown
Contributor

[Linux] Use fences to synchronize frames between OpenGL contexts

Frames are rendered in the engine's OpenGL context and read by whoever
presents them using a different context, so the rendering has to have
completed before the other context uses the texture. This was done by
waiting for the rendering to complete on the raster thread, which is
correct but stalls that thread until the GPU has caught up, stopping it
from rendering the next frame while it waits.

Take a fence after the frame is rendered instead, and wait for it where
the frame is used:

  • The subsurface renderer presents using the subsurface's context, which
    it makes current itself. Make that context wait for the fence, so the
    wait happens on the GPU and the raster thread doesn't block at all.
  • Frames drawn by GTK are read on the main thread, and GTK draws them
    using the window's paint context rather than the one that is current
    when the frame is handed over. A wait issued there would only order the
    context it was issued in, so block until the fence is reached. That
    wait happens on the main thread rather than the raster thread, and by
    the time the frame is drawn the rendering has normally completed.

Fences are an extension, so add fl_opengl_manager_can_fence() to check
for it. Drivers without fences wait for the rendering to complete as
before. Drivers that support fences but not waiting on the GPU block
instead of waiting on the GPU.

See #191775

@robert-ancell
robert-ancell requested a review from a team as a code owner September 1, 2026 05:46
@flutter-dashboard flutter-dashboard Bot added the CICD Run CI/CD label Sep 1, 2026
@github-actions github-actions Bot added engine flutter/engine related. See also e: labels. platform-linux Building on or for Linux specifically a: desktop Running on desktop team-linux Owned by the Linux platform team labels Sep 1, 2026
@robert-ancell

Copy link
Copy Markdown
Contributor Author

Land this after the #192094 as that is simpler and fixes the crash, but this PR is more complex and more performant. We can then consider if we want to cherry-pick one or both of these changes.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Code Review

This pull request introduces OpenGL fence synchronization (FlGLFence) on Linux to synchronize frames rendered in the engine's context before they are read and presented by GTK or a subsurface context. The review feedback recommends simplifying the extension-checking logic by replacing the custom string parser with Epoxy's built-in epoxy_has_egl_extension function, and adding a defensive validation check in fl_gl_fence_new to ensure the OpenGL manager is valid.

Comment thread engine/src/flutter/shell/platform/linux/fl_opengl_manager.cc Outdated
Comment thread engine/src/flutter/shell/platform/linux/fl_opengl_manager.h Outdated
Comment thread engine/src/flutter/shell/platform/linux/fl_gl_fence.cc Outdated
Comment thread engine/src/flutter/shell/platform/linux/fl_gl_fence.cc
Frames are rendered in the engine's OpenGL context and read by whoever
presents them using a different context, so the rendering has to have
completed before the other context uses the texture. This was done by
waiting for the rendering to complete on the raster thread, which is
correct but stalls that thread until the GPU has caught up, stopping it
from rendering the next frame while it waits.

Take a fence after the frame is rendered instead, and wait for it where
the frame is used:

- The subsurface renderer presents using the subsurface's context, which
  it makes current itself. Make that context wait for the fence, so the
  wait happens on the GPU and the raster thread doesn't block at all.
- Frames drawn by GTK are read on the main thread, and GTK draws them
  using the window's paint context rather than the one that is current
  when the frame is handed over. A wait issued there would only order the
  context it was issued in, so block until the fence is reached. That
  wait happens on the main thread rather than the raster thread, and by
  the time the frame is drawn the rendering has normally completed.

Fences are an extension, so add fl_opengl_manager_can_fence() to check
for it. Drivers without fences wait for the rendering to complete as
before. Drivers that support fences but not waiting on the GPU block
instead of waiting on the GPU.

See flutter#191775
fl_opengl_manager_has_extension() parsed the extension string itself,
which epoxy already does. Use epoxy instead of repeating it.

The mock has to provide epoxy_has_egl_extension() for this, in the same
way it already provides epoxy_has_gl_extension(). Tests can now say which
extension they want to be missing rather than having to build an
extension string that parses to that.
Matches the precondition checks the other constructors in the embedder
have.
mattkae
mattkae previously approved these changes Sep 2, 2026

@mattkae mattkae left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Left some non-blocking food for thought, but this looks like a solid implementation to me 👍

Comment thread engine/src/flutter/shell/platform/linux/fl_opengl_frame.cc Outdated
Comment thread engine/src/flutter/shell/platform/linux/fl_gl_fence.cc Outdated
Comment thread engine/src/flutter/shell/platform/linux/fl_gl_fence.h Outdated
The EGL extension the fences use was wrapped but the one waiting for
them on the GPU wasn't, so one was accessed through a generic extension
check and the other through a named method. Wrap both and make the
generic check private, as nothing else needs it.
The waits were named fl_gl_fence_wait() and fl_gl_fence_wait_gpu(),
which was the opposite way around to the calls they make - OpenGL uses
the plain name for the wait that doesn't block the caller and qualifies
the one that does. The name also described the wait as being done by the
GPU, which OpenGL is allowed to do on the CPU instead.

Rename them to fl_gl_fence_client_wait() and fl_gl_fence_wait() to match.
mattkae
mattkae previously approved these changes Sep 3, 2026

@mattkae mattkae left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Awesome!

Conflicts came from "[Linux] Remove frame sharing between OpenGL contexts"
(flutter#192150) landing on master.

fl_opengl_frame no longer shares a texture between the rendering context
and the one GTK draws with - the frame is read back with glReadPixels()
and uploaded again as a new texture. glReadPixels() waits for the
rendering to complete, so the fence this branch added there is no longer
needed and has been dropped, along with the tests covering it.

The fence is still used where buffers really are passed between
contexts, in fl_view_renderer_subsurface, which is what it was written
for.

mock_epoxy keeps the EGL fence mocks and drops the EGLImage ones master
removed with the sharing.
The only caller of fl_gl_fence_client_wait() outside fl_gl_fence was
fl_opengl_frame, which handed the frame to GTK to draw with a different
context and so couldn't let OpenGL do the waiting. Frames are no longer
shared between contexts, so the only thing left that blocks is the
fallback fl_gl_fence_wait() uses when the driver has no EGL_KHR_wait_sync.

Make it a static function. The fallback is still covered by the
WaitUnsupported test, so the test that called it directly goes away.
@robert-ancell
robert-ancell added this pull request to the merge queue Sep 4, 2026
Merged via the queue into flutter:master with commit 2092785 Sep 4, 2026
30 of 33 checks passed
@robert-ancell
robert-ancell deleted the linux-gl-fence branch September 4, 2026 01:07
auto-submit Bot pushed a commit to flutter/packages that referenced this pull request Sep 4, 2026
…12760)

Manual roll Flutter from 70797e15325e to 5a6cfa7f3d26 (52 revisions)

Manual roll requested by bensonluk@google.com

flutter/flutter@70797e1...5a6cfa7

2026-09-04 bkonyi@google.com [tool] Migrate ScreenshotCommand to modular dependency injection (flutter/flutter#190767)
2026-09-04 engine-flutter-autoroll@skia.org Roll Skia from 8fce167bdded to 93ac1e630d1d (3 revisions) (flutter/flutter#192306)
2026-09-04 okorohelijah@google.com Add iOS Universal Link integration test (Simulator) (flutter/flutter#191443)
2026-09-04 269567208+reidbaker-agent@users.noreply.github.com [AGP 9.1.0 Migration #5] Delete getLegacyAndroidExtension and migrate NDK fallback to public DSL (flutter/flutter#192116)
2026-09-04 bkonyi@google.com Reland "[tool_tests] Remove bringup from Windows tool_tests_commands_2_2" (#191732) (flutter/flutter#191802)
2026-09-04 bkonyi@google.com [flutter_tools] Fix unhandled DebugAdapterException on early process termination (flutter/flutter#192294)
2026-09-04 engine-flutter-autoroll@skia.org Roll Packages from f9b3954 to 9af9c60 (4 revisions) (flutter/flutter#192292)
2026-09-04 engine-flutter-autoroll@skia.org Roll Skia from 2e3f7e07eee6 to 8fce167bdded (5 revisions) (flutter/flutter#192283)
2026-09-04 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from GTZNkoIR_WegRPWgL... to FgDQeF6jb1dVRVh3K... (flutter/flutter#192276)
2026-09-04 engine-flutter-autoroll@skia.org Roll Skia from b6b00df360e5 to 2e3f7e07eee6 (2 revisions) (flutter/flutter#192275)
2026-09-04 cetinibrahim.ci@gmail.com [iOS] TextField should support typing accented words with external keyboard (flutter/flutter#191062)
2026-09-04 engine-flutter-autoroll@skia.org Roll Skia from 1f68c0b16f17 to b6b00df360e5 (7 revisions) (flutter/flutter#192269)
2026-09-04 kevmoo@users.noreply.github.com [flutter_tools] add typed enum and defaulted option descriptors (flutter/flutter#191760)
2026-09-04 engine-flutter-autoroll@skia.org Roll Dart SDK from c2edc382a4f8 to 5501d02b583d (1 revision) (flutter/flutter#192263)
2026-09-04 robert.ancell@canonical.com [Linux] Use fences to synchronize frames between OpenGL contexts (flutter/flutter#192098)
2026-09-03 brunocorona.alcantar@gmail.com Defer semantics geometry updates for blocked branches (flutter/flutter#192146)
2026-09-03 engine-flutter-autoroll@skia.org Roll Skia from 8d3e197531c6 to 1f68c0b16f17 (8 revisions) (flutter/flutter#192244)
2026-09-03 57765714+Vi-debug@users.noreply.github.com Fix DeleteSurrounding splitting UTF-16 surrogate pairs (flutter/flutter#190514)
2026-09-03 32538273+ValentinVignal@users.noreply.github.com Remove no-shuffle from progress indicator test (flutter/flutter#186655)
2026-09-03 srawlins@google.com [material] Remove unused parameters from constructors of generic test class (flutter/flutter#191764)
2026-09-03 97480502+b-luk@users.noreply.github.com Handle linear and radial gradients in UberSDF (re-implement after fix) (flutter/flutter#192124)
2026-09-03 engine-flutter-autoroll@skia.org Roll Dart SDK from fcbfb64f42a1 to c2edc382a4f8 (2 revisions) (flutter/flutter#192240)
2026-09-03 34871572+gmackall@users.noreply.github.com Fix parsing of --enable-hcpp-and-surface-control switch and add --no-enable-hcpp tests (flutter/flutter#192202)
2026-09-03 97480502+b-luk@users.noreply.github.com Fix issue where shapes rendered with gradient+blur+rotation end up incorrectly cut off (flutter/flutter#192136)
2026-09-03 47866232+chunhtai@users.noreply.github.com Fix sibling nodes crash under MergeSemantics (flutter/flutter#191587)
2026-09-03 30870216+gaaclarke@users.noreply.github.com Makes backdrop groups operate on the union. (flutter/flutter#191838)
2026-09-03 engine-flutter-autoroll@skia.org Roll Skia from 008936396810 to 8d3e197531c6 (1 revision) (flutter/flutter#192236)
2026-09-03 parlough@gmail.com [docs] Remove superseded AI rules for Flutter (flutter/flutter#192185)
2026-09-03 15619084+vashworth@users.noreply.github.com Collect analytics about SwiftPM errors and warnings (flutter/flutter#191746)
2026-09-03 engine-flutter-autoroll@skia.org Roll Packages from 18fe786 to f9b3954 (7 revisions) (flutter/flutter#192235)
2026-09-03 robert.ancell@canonical.com [Linux] Remove frame sharing between OpenGL contexts (flutter/flutter#192150)
2026-09-03 engine-flutter-autoroll@skia.org Roll Dart SDK from cf79067a1e44 to fcbfb64f42a1 (1 revision) (flutter/flutter#192228)
2026-09-03 engine-flutter-autoroll@skia.org Roll Skia from 731fe9af4c0b to 008936396810 (3 revisions) (flutter/flutter#192225)
2026-09-03 engine-flutter-autoroll@skia.org Roll Dart SDK from 700ab60bfe53 to cf79067a1e44 (2 revisions) (flutter/flutter#192219)
2026-09-03 engine-flutter-autoroll@skia.org Roll Skia from 823f82e18177 to 731fe9af4c0b (5 revisions) (flutter/flutter#192217)
2026-09-03 louisehsu@google.com Fixes OverlayPortal semantics bounds corruption (flutter/flutter#192139)
2026-09-03 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from idslm9FikVLy2K_A-... to GTZNkoIR_WegRPWgL... (flutter/flutter#192215)
2026-09-03 engine-flutter-autoroll@skia.org Roll Fuchsia Test Scripts from u_fSMsPU22VvUsvSo... to VObjlh3xw2P9sEbC_... (flutter/flutter#192212)
2026-09-03 engine-flutter-autoroll@skia.org Roll Skia from ae22da2e8308 to 823f82e18177 (13 revisions) (flutter/flutter#192209)
2026-09-02 ishaquehassan@gmail.com Expose skipTraversal in FocusableActionDetector (flutter/flutter#191308)
2026-09-02 97480502+b-luk@users.noreply.github.com Add `IsProgram` mock method to `MockGLESImpl`, use it in `BufferBindingsGLESTest` (flutter/flutter#192196)
2026-09-02 uros.radulovic23@gmail.com Fix nested scroll view fling crash (flutter/flutter#191130)
2026-09-02 brunocorona.alcantar@gmail.com Fix TabBarView/PageView edge auto-scroll during mouse text selection (flutter/flutter#189544)
2026-09-02 30870216+gaaclarke@users.noreply.github.com Bypass gamma correction when alpha >= 1.0 (flutter/flutter#192193)
...
victorsanni pushed a commit to victorsanni/packages that referenced this pull request Sep 9, 2026
…lutter#12760)

Manual roll Flutter from 70797e15325e to 5a6cfa7f3d26 (52 revisions)

Manual roll requested by bensonluk@google.com

flutter/flutter@70797e1...5a6cfa7

2026-09-04 bkonyi@google.com [tool] Migrate ScreenshotCommand to modular dependency injection (flutter/flutter#190767)
2026-09-04 engine-flutter-autoroll@skia.org Roll Skia from 8fce167bdded to 93ac1e630d1d (3 revisions) (flutter/flutter#192306)
2026-09-04 okorohelijah@google.com Add iOS Universal Link integration test (Simulator) (flutter/flutter#191443)
2026-09-04 269567208+reidbaker-agent@users.noreply.github.com [AGP 9.1.0 Migration flutter#5] Delete getLegacyAndroidExtension and migrate NDK fallback to public DSL (flutter/flutter#192116)
2026-09-04 bkonyi@google.com Reland "[tool_tests] Remove bringup from Windows tool_tests_commands_2_2" (#191732) (flutter/flutter#191802)
2026-09-04 bkonyi@google.com [flutter_tools] Fix unhandled DebugAdapterException on early process termination (flutter/flutter#192294)
2026-09-04 engine-flutter-autoroll@skia.org Roll Packages from f9b3954 to 9af9c60 (4 revisions) (flutter/flutter#192292)
2026-09-04 engine-flutter-autoroll@skia.org Roll Skia from 2e3f7e07eee6 to 8fce167bdded (5 revisions) (flutter/flutter#192283)
2026-09-04 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from GTZNkoIR_WegRPWgL... to FgDQeF6jb1dVRVh3K... (flutter/flutter#192276)
2026-09-04 engine-flutter-autoroll@skia.org Roll Skia from b6b00df360e5 to 2e3f7e07eee6 (2 revisions) (flutter/flutter#192275)
2026-09-04 cetinibrahim.ci@gmail.com [iOS] TextField should support typing accented words with external keyboard (flutter/flutter#191062)
2026-09-04 engine-flutter-autoroll@skia.org Roll Skia from 1f68c0b16f17 to b6b00df360e5 (7 revisions) (flutter/flutter#192269)
2026-09-04 kevmoo@users.noreply.github.com [flutter_tools] add typed enum and defaulted option descriptors (flutter/flutter#191760)
2026-09-04 engine-flutter-autoroll@skia.org Roll Dart SDK from c2edc382a4f8 to 5501d02b583d (1 revision) (flutter/flutter#192263)
2026-09-04 robert.ancell@canonical.com [Linux] Use fences to synchronize frames between OpenGL contexts (flutter/flutter#192098)
2026-09-03 brunocorona.alcantar@gmail.com Defer semantics geometry updates for blocked branches (flutter/flutter#192146)
2026-09-03 engine-flutter-autoroll@skia.org Roll Skia from 8d3e197531c6 to 1f68c0b16f17 (8 revisions) (flutter/flutter#192244)
2026-09-03 57765714+Vi-debug@users.noreply.github.com Fix DeleteSurrounding splitting UTF-16 surrogate pairs (flutter/flutter#190514)
2026-09-03 32538273+ValentinVignal@users.noreply.github.com Remove no-shuffle from progress indicator test (flutter/flutter#186655)
2026-09-03 srawlins@google.com [material] Remove unused parameters from constructors of generic test class (flutter/flutter#191764)
2026-09-03 97480502+b-luk@users.noreply.github.com Handle linear and radial gradients in UberSDF (re-implement after fix) (flutter/flutter#192124)
2026-09-03 engine-flutter-autoroll@skia.org Roll Dart SDK from fcbfb64f42a1 to c2edc382a4f8 (2 revisions) (flutter/flutter#192240)
2026-09-03 34871572+gmackall@users.noreply.github.com Fix parsing of --enable-hcpp-and-surface-control switch and add --no-enable-hcpp tests (flutter/flutter#192202)
2026-09-03 97480502+b-luk@users.noreply.github.com Fix issue where shapes rendered with gradient+blur+rotation end up incorrectly cut off (flutter/flutter#192136)
2026-09-03 47866232+chunhtai@users.noreply.github.com Fix sibling nodes crash under MergeSemantics (flutter/flutter#191587)
2026-09-03 30870216+gaaclarke@users.noreply.github.com Makes backdrop groups operate on the union. (flutter/flutter#191838)
2026-09-03 engine-flutter-autoroll@skia.org Roll Skia from 008936396810 to 8d3e197531c6 (1 revision) (flutter/flutter#192236)
2026-09-03 parlough@gmail.com [docs] Remove superseded AI rules for Flutter (flutter/flutter#192185)
2026-09-03 15619084+vashworth@users.noreply.github.com Collect analytics about SwiftPM errors and warnings (flutter/flutter#191746)
2026-09-03 engine-flutter-autoroll@skia.org Roll Packages from 18fe786 to f9b3954 (7 revisions) (flutter/flutter#192235)
2026-09-03 robert.ancell@canonical.com [Linux] Remove frame sharing between OpenGL contexts (flutter/flutter#192150)
2026-09-03 engine-flutter-autoroll@skia.org Roll Dart SDK from cf79067a1e44 to fcbfb64f42a1 (1 revision) (flutter/flutter#192228)
2026-09-03 engine-flutter-autoroll@skia.org Roll Skia from 731fe9af4c0b to 008936396810 (3 revisions) (flutter/flutter#192225)
2026-09-03 engine-flutter-autoroll@skia.org Roll Dart SDK from 700ab60bfe53 to cf79067a1e44 (2 revisions) (flutter/flutter#192219)
2026-09-03 engine-flutter-autoroll@skia.org Roll Skia from 823f82e18177 to 731fe9af4c0b (5 revisions) (flutter/flutter#192217)
2026-09-03 louisehsu@google.com Fixes OverlayPortal semantics bounds corruption (flutter/flutter#192139)
2026-09-03 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from idslm9FikVLy2K_A-... to GTZNkoIR_WegRPWgL... (flutter/flutter#192215)
2026-09-03 engine-flutter-autoroll@skia.org Roll Fuchsia Test Scripts from u_fSMsPU22VvUsvSo... to VObjlh3xw2P9sEbC_... (flutter/flutter#192212)
2026-09-03 engine-flutter-autoroll@skia.org Roll Skia from ae22da2e8308 to 823f82e18177 (13 revisions) (flutter/flutter#192209)
2026-09-02 ishaquehassan@gmail.com Expose skipTraversal in FocusableActionDetector (flutter/flutter#191308)
2026-09-02 97480502+b-luk@users.noreply.github.com Add `IsProgram` mock method to `MockGLESImpl`, use it in `BufferBindingsGLESTest` (flutter/flutter#192196)
2026-09-02 uros.radulovic23@gmail.com Fix nested scroll view fling crash (flutter/flutter#191130)
2026-09-02 brunocorona.alcantar@gmail.com Fix TabBarView/PageView edge auto-scroll during mouse text selection (flutter/flutter#189544)
2026-09-02 30870216+gaaclarke@users.noreply.github.com Bypass gamma correction when alpha >= 1.0 (flutter/flutter#192193)
...
victorsanni pushed a commit to victorsanni/packages that referenced this pull request Sep 9, 2026
…lutter#12760)

Manual roll Flutter from 70797e15325e to 5a6cfa7f3d26 (52 revisions)

Manual roll requested by bensonluk@google.com

flutter/flutter@70797e1...5a6cfa7

2026-09-04 bkonyi@google.com [tool] Migrate ScreenshotCommand to modular dependency injection (flutter/flutter#190767)
2026-09-04 engine-flutter-autoroll@skia.org Roll Skia from 8fce167bdded to 93ac1e630d1d (3 revisions) (flutter/flutter#192306)
2026-09-04 okorohelijah@google.com Add iOS Universal Link integration test (Simulator) (flutter/flutter#191443)
2026-09-04 269567208+reidbaker-agent@users.noreply.github.com [AGP 9.1.0 Migration flutter#5] Delete getLegacyAndroidExtension and migrate NDK fallback to public DSL (flutter/flutter#192116)
2026-09-04 bkonyi@google.com Reland "[tool_tests] Remove bringup from Windows tool_tests_commands_2_2" (#191732) (flutter/flutter#191802)
2026-09-04 bkonyi@google.com [flutter_tools] Fix unhandled DebugAdapterException on early process termination (flutter/flutter#192294)
2026-09-04 engine-flutter-autoroll@skia.org Roll Packages from f9b3954 to 9af9c60 (4 revisions) (flutter/flutter#192292)
2026-09-04 engine-flutter-autoroll@skia.org Roll Skia from 2e3f7e07eee6 to 8fce167bdded (5 revisions) (flutter/flutter#192283)
2026-09-04 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from GTZNkoIR_WegRPWgL... to FgDQeF6jb1dVRVh3K... (flutter/flutter#192276)
2026-09-04 engine-flutter-autoroll@skia.org Roll Skia from b6b00df360e5 to 2e3f7e07eee6 (2 revisions) (flutter/flutter#192275)
2026-09-04 cetinibrahim.ci@gmail.com [iOS] TextField should support typing accented words with external keyboard (flutter/flutter#191062)
2026-09-04 engine-flutter-autoroll@skia.org Roll Skia from 1f68c0b16f17 to b6b00df360e5 (7 revisions) (flutter/flutter#192269)
2026-09-04 kevmoo@users.noreply.github.com [flutter_tools] add typed enum and defaulted option descriptors (flutter/flutter#191760)
2026-09-04 engine-flutter-autoroll@skia.org Roll Dart SDK from c2edc382a4f8 to 5501d02b583d (1 revision) (flutter/flutter#192263)
2026-09-04 robert.ancell@canonical.com [Linux] Use fences to synchronize frames between OpenGL contexts (flutter/flutter#192098)
2026-09-03 brunocorona.alcantar@gmail.com Defer semantics geometry updates for blocked branches (flutter/flutter#192146)
2026-09-03 engine-flutter-autoroll@skia.org Roll Skia from 8d3e197531c6 to 1f68c0b16f17 (8 revisions) (flutter/flutter#192244)
2026-09-03 57765714+Vi-debug@users.noreply.github.com Fix DeleteSurrounding splitting UTF-16 surrogate pairs (flutter/flutter#190514)
2026-09-03 32538273+ValentinVignal@users.noreply.github.com Remove no-shuffle from progress indicator test (flutter/flutter#186655)
2026-09-03 srawlins@google.com [material] Remove unused parameters from constructors of generic test class (flutter/flutter#191764)
2026-09-03 97480502+b-luk@users.noreply.github.com Handle linear and radial gradients in UberSDF (re-implement after fix) (flutter/flutter#192124)
2026-09-03 engine-flutter-autoroll@skia.org Roll Dart SDK from fcbfb64f42a1 to c2edc382a4f8 (2 revisions) (flutter/flutter#192240)
2026-09-03 34871572+gmackall@users.noreply.github.com Fix parsing of --enable-hcpp-and-surface-control switch and add --no-enable-hcpp tests (flutter/flutter#192202)
2026-09-03 97480502+b-luk@users.noreply.github.com Fix issue where shapes rendered with gradient+blur+rotation end up incorrectly cut off (flutter/flutter#192136)
2026-09-03 47866232+chunhtai@users.noreply.github.com Fix sibling nodes crash under MergeSemantics (flutter/flutter#191587)
2026-09-03 30870216+gaaclarke@users.noreply.github.com Makes backdrop groups operate on the union. (flutter/flutter#191838)
2026-09-03 engine-flutter-autoroll@skia.org Roll Skia from 008936396810 to 8d3e197531c6 (1 revision) (flutter/flutter#192236)
2026-09-03 parlough@gmail.com [docs] Remove superseded AI rules for Flutter (flutter/flutter#192185)
2026-09-03 15619084+vashworth@users.noreply.github.com Collect analytics about SwiftPM errors and warnings (flutter/flutter#191746)
2026-09-03 engine-flutter-autoroll@skia.org Roll Packages from 18fe786 to f9b3954 (7 revisions) (flutter/flutter#192235)
2026-09-03 robert.ancell@canonical.com [Linux] Remove frame sharing between OpenGL contexts (flutter/flutter#192150)
2026-09-03 engine-flutter-autoroll@skia.org Roll Dart SDK from cf79067a1e44 to fcbfb64f42a1 (1 revision) (flutter/flutter#192228)
2026-09-03 engine-flutter-autoroll@skia.org Roll Skia from 731fe9af4c0b to 008936396810 (3 revisions) (flutter/flutter#192225)
2026-09-03 engine-flutter-autoroll@skia.org Roll Dart SDK from 700ab60bfe53 to cf79067a1e44 (2 revisions) (flutter/flutter#192219)
2026-09-03 engine-flutter-autoroll@skia.org Roll Skia from 823f82e18177 to 731fe9af4c0b (5 revisions) (flutter/flutter#192217)
2026-09-03 louisehsu@google.com Fixes OverlayPortal semantics bounds corruption (flutter/flutter#192139)
2026-09-03 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from idslm9FikVLy2K_A-... to GTZNkoIR_WegRPWgL... (flutter/flutter#192215)
2026-09-03 engine-flutter-autoroll@skia.org Roll Fuchsia Test Scripts from u_fSMsPU22VvUsvSo... to VObjlh3xw2P9sEbC_... (flutter/flutter#192212)
2026-09-03 engine-flutter-autoroll@skia.org Roll Skia from ae22da2e8308 to 823f82e18177 (13 revisions) (flutter/flutter#192209)
2026-09-02 ishaquehassan@gmail.com Expose skipTraversal in FocusableActionDetector (flutter/flutter#191308)
2026-09-02 97480502+b-luk@users.noreply.github.com Add `IsProgram` mock method to `MockGLESImpl`, use it in `BufferBindingsGLESTest` (flutter/flutter#192196)
2026-09-02 uros.radulovic23@gmail.com Fix nested scroll view fling crash (flutter/flutter#191130)
2026-09-02 brunocorona.alcantar@gmail.com Fix TabBarView/PageView edge auto-scroll during mouse text selection (flutter/flutter#189544)
2026-09-02 30870216+gaaclarke@users.noreply.github.com Bypass gamma correction when alpha >= 1.0 (flutter/flutter#192193)
...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

a: desktop Running on desktop CICD Run CI/CD engine flutter/engine related. See also e: labels. platform-linux Building on or for Linux specifically team-linux Owned by the Linux platform team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants