Opaque frameless windows jitter during native interactive resize with default ANGLE/OpenGL on Linux/X11
Preflight Checklist
- I have read the Contributing Guidelines for this project.
- I agree to follow the Code of Conduct that this project adheres to.
- I have searched the issue tracker for a bug report that matches the one I want to file, without success.
Electron Version
43.4.1
What operating system(s) are you using?
Ubuntu
Operating System Version
Ubuntu 22.04.5 LTS, GNOME Shell 42.9, X11, Linux 6.16.7, Mesa 23.2.1
What arch are you using?
x64
Last Known Working Electron version
Not yet established for Electron's default ANGLE/OpenGL backend. The same Electron 43.4.1 build resizes smoothly when explicitly configured to use ANGLE/Vulkan.
Does the issue also appear in Chromium / Google Chrome?
Not directly testable using the equivalent Electron BrowserWindow configuration.
Expected Behavior
An opaque frameless X11 window should resize with stable visual presentation when using Electron's default graphics configuration. Its content and apparent window edges should follow the native interactive resize without jumping or lagging.
Actual Behavior
Quickly resizing an opaque BrowserWindow with frame: false vertically or diagonally produces visible presentation jitter when Electron is launched without a --use-angle override.
A matched comparison using the same Electron 43.4.1 build, the same BrowserWindow options, and the same native edge/corner resize interaction is smooth when Vulkan is selected explicitly:
| Graphics configuration | Result |
|---|---|
--use-angle not set — default ANGLE/OpenGL |
Visible resize jitter |
--use-angle=vulkan with Vulkan,DefaultANGLEVulkan,VulkanFromANGLE enabled |
Smooth |
No JavaScript resizing, IPC bounds updates, setBounds(), or custom resize implementation is involved.
Testcase Gist URL
https://gist.github.com/otanim/12c2cece789b68d04c271b96bfc41b68
Additional Information
Confirmed on Intel Meteor Lake-P / Intel Arc Graphics using the i915 driver.
Correction to the original investigation
The earlier Alpha 3 versus Alpha 4 comparison and source-commit attribution were confounded by a separate Electron regression that prevented transparent frameless windows from being resized natively on Linux.
That separate native-resizing regression affected the Electron versions used during the earlier investigation. It was fixed for Electron 43.x in 43.4.1 by #52947, a backport of #52740. The corresponding 44.x backport is #52891.
Because native resizing was unavailable during part of the earlier comparison, alternative resize paths did not provide an equivalent test of Electron's native interactive resize behavior and produced false-positive conclusions. The previous claim that the jitter itself began in 43.0.0-alpha.4, along with the associated first-bad source-commit attribution and proposed opaque-surface policy, is therefore withdrawn.
After retesting with native resize restored in Electron 43.4.1, the reproducible differentiator is the graphics backend: the default ANGLE/OpenGL path jitters, while the explicitly selected ANGLE/Vulkan path is smooth.
Source: electron/electron