You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Linux][Wayland] Beta 3.50: FlViewRendererSubsurface shows a black window on GNOME 50.6 + NVIDIA 615 (default flutter create app); GTK frame clock stops after the first paint #195822
flutter create --platforms=linux subsurface_probe && cd subsurface_probe && flutter build linux --release
Run build/linux/x64/release/bundle/subsurface_probe in a native GNOME Wayland session on an NVIDIA GPU.
Expected results
The counter demo appears.
Actual results
The window opens at the right size with the title bar, but the client area stays solid black for as long as the app runs (tested for minutes, moved/resized the window, forced redraws). No GL/EGL errors on stderr, only:
[IMPORTANT:flutter/shell/platform/embedder/embedder_surface_gl_impeller.cc(127)] Using the Impeller rendering backend (OpenGLESSDF).
The same binary with GDK_BACKEND=x11 (which takes the FlViewRendererOpenGL path) renders the app.
What I could observe from the outside
Attaching gdb to the running app and reading the toplevel's GdkFrameClock counter shows it stuck (e.g. 30) and it does not advance after gtk_widget_queue_draw(toplevel) + 2 s, i.e. GTK never paints the parent surface again after the first frames. io.flutter.ui / io.flutter.rast CPU time also stops growing.
Widget tree is as expected: GtkApplicationWindow > FlView > GtkEventBox > FlViewRendererSubsurface with a correct allocation and scale=2.
In a larger app (BlueBubbles, same engine) built the same way, the first resize logs WARNING **: Timed out waiting for subsurface frame of size 2160x1440 (have 2560x1534) on every launch, and moving the window made Mutter log meta_wayland_surface_role_notify_subsurface_state_changed: assertion 'klass->notify_subsurface_state_changed' failed (twice). The default app did not trigger the Mutter assertion in my runs.
The 3.47 stable engine (OpenGL renderer, EGLImage sibling path) renders fine on this machine apart from the separate stale-frame problem reported in a different issue.
Fedora 44, kernel 7.2.13, GNOME Shell / Mutter 50.6, GTK 3.24.52, native Wayland session, fractional scaling 1.25 on the primary 4K display (GTK scale factor 2) plus a second 1080x1920 display at scale 1
NVIDIA GeForce RTX 5090, proprietary driver 615.78.08 (EGL via libEGL_nvidia)
I can run further diagnostics on this machine (gdb against the host GTK with debug symbols, Wayland protocol dumps with WAYLAND_DEBUG) if it helps.
@NelsonScott I tested the provided reproduction on my Linux environment using Flutter 3.50.0-1.0.pre-374 (master). The counter application renders correctly in both native Wayland and X11 sessions.
My environment uses Ubuntu 26.04 in a ChromeOS Linux container with llvmpipe, rather than an NVIDIA GPU. I couldn't reproduce the issue locally. Routing to team-linux for further investigation.
Flutter Doctor Output
[✓] Flutter (Channel master, 3.50.0-1.0.pre-374, onUbuntu26.04LTS6.6.147-09648-g97ef00d8a343, locale C.UTF-8) [966ms]
• Flutter version 3.50.0-1.0.pre-374on channel master at /home/suryak2662/flutter
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision c664bddfd1 (84 minutes ago), 2026-11-0304:54:11+0000
• Engine revision c664bddfd1
• Dart version 3.15.0 (build 3.15.0-101.0.dev)
• DevTools version 2.62.0-dev.0
• Feature flags: enable-web, enable-linux-desktop, enable-macos-desktop,
enable-windows-desktop, enable-android, enable-ios, cli-animations,
enable-native-assets, enable-record-use, enable-swift-package-manager,
omit-legacy-version-file, enable-windowing, enable-lldb-debugging,
enable-uiscene-migration, enable-riscv64, enable-hcpp
[✓] Android toolchain - develop forAndroid devices (AndroidSDK version 36.0.0)
[1,881ms]
• AndroidSDK at /home/suryak2662/Android/Sdk
• Emulator version 36.6.11.0 (build_id 15507667) (CL:N/A)
• Platform android-36, build-tools 36.0.0
• ANDROID_HOME=/home/suryak2662/Android/Sdk
• Java binary at:/opt/android-studio/jbr/bin/java
ThisJDKis specified in your Flutter configuration.
To change the current JDK, run: `flutter config --jdk-dir="path/to/jdk"`.
• Java version OpenJDKRuntimeEnvironment (build 21.0.10+-14961533-b1163.108)
• AllAndroid licenses accepted.
[✓] Chrome- develop for the web [15ms]
• Chrome at google-chrome
[✓] Linux toolchain - develop forLinux desktop [543ms]
• Ubuntu clang version 21.1.8 (6ubuntu1)
• cmake version 4.2.3
• ninja version 1.13.2
• pkg-config version 2.5.1
• OpenGL core renderer: llvmpipe (LLVM21.1.8, 256 bits)
• OpenGL core version:4.5 (CoreProfile) Mesa26.0.3-1ubuntu1
• OpenGL core shading language version:4.50
• OpenGLES renderer: llvmpipe (LLVM21.1.8, 256 bits)
• OpenGLES version:OpenGLES3.2Mesa26.0.3-1ubuntu1
• OpenGLES shading language version:OpenGLESGLSLES3.20
• GL_EXT_framebuffer_blit: yes
• GL_EXT_texture_format_BGRA8888: yes
[✓] Connected device (2 available) [157ms]
• Linux (desktop) • linux • linux-x64 • Ubuntu26.04LTS6.6.147-09648-g97ef00d8a343
• Chrome (web) • chrome • web-javascript • GoogleChrome150.0.7871.128
[✓] Network resources [876ms]
• All expected network resources are available.
• No issues found!
Reacted by Dmytro Yaroshenko and Francesco Vezzani
Activity
suryaKommana2662 commentedon Nov 3, 2026
@NelsonScott I tested the provided reproduction on my Linux environment using Flutter 3.50.0-1.0.pre-374 (master). The counter application renders correctly in both native Wayland and X11 sessions.
My environment uses Ubuntu 26.04 in a ChromeOS Linux container with
llvmpipe, rather than anNVIDIA GPU. I couldn't reproduce the issue locally. Routing toteam-linuxfor further investigation.Flutter Doctor Output