fix(linux): schakel Impeller uit om Wayland-crash te voorkomen (#2058) #2059
No reviewers
Labels
No labels
accepted
bug
declined
docs
duplicate
enhancement
good first issue
in-progress
needs-info
privacy
security
triage
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
LibreKAT/Ocideck!2059
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/linux-impeller-crash"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Samenvatting
OciDeck segfaults reproduceerbaar op Linux/Wayland (issue #2058): SIGSEGV in
gdk_window_end_draw_frame(libgdk-3) metrdi=0x0, in de GTK-tekenpad.Root cause: Flutter 3.47 zet Impeller op Linux standaard aan. Impeller's EGL-context botst met GTK3's eigen GL-context op Wayland (Flutter #191775, P1):
eglMakeCurrentfaalt tijdens een redraw en GDK dereferenceert een NULL-pointer. De crash is niet specifiek voor NVIDIA — de melder draait Intel/Mesa op Hyprland.Fix:
fl_dart_project_set_enable_impeller(project, FALSE)inlinux/runner/my_application.cc— valt terug op Skia, die geen tweede GL-context opent. Dit is de officieel gedocumenteerde workaround (docs.flutter.dev/perf/impeller).Poort:
tool/check_linux_impeller.dart(onderdeel vanSTATIC_GATES) verifieert dat de aanroep aanwezig is enFALSEdoorgeeft. De crash reproduceert alleen op Linux/Wayland, dus een Dart-test kan hier structureel niets bewijzen — de poort is het kleinste dat faalt als de regel verdwijnt.Waarom geen Dart-test
De fix is één regel C++ in de Linux-runner.
flutter testdraait op macOS, compileert de C++-runner niet, en de crash reproduceert alleen op Linux/Wayland. Een poort intool/die de aanroep bewaakt is het hoogst haalbare.Bewaker
Niet van toepassing — de wijziging raakt geen bestandsformaat, opslag, afhankelijkheid, uitgaand verkeer of publieke belofte.
Test plan
make checkgroen (4588+ tests, golden suite, alle statische poorten)make check-linux-impellergroen met de fix, rood zonderstatic-gategroenGenerated with Devin