Open Bug 1801632 Opened 2 years ago Updated 1 year ago

Firefox fails to commit Wayland xdg_surface after ack_configure


(Core :: Widget: Gtk, defect, P3)






(Reporter: luangruo, Unassigned, NeedInfo)


(Blocks 1 open bug)



(2 files)

Attached file Wayland compositor log

Firefox sometimes fails to commit an xdg_surface it creates after sending ack_configure. This results in the surface contents sometimes not being displayed after a resize finishes.

Attached is the compositor log demonstrating the incorrect behavior. After xdg_surface.configure (106) is sent, Firefox does not commit the associated xdg_surface, so the surface contents remain frozen. However, it does commit a desynchronous subsurface that is a child of the xdg_surface, which is not what the xdg_shell protocol says should be done in reply to an xdg_surface.configure event.

The log was generated with WebRender compositor integration enabled, but also happens without.

Which Wayland compositor do you run?

Flags: needinfo?(luangruo)
Priority: -- → P3

One I'm currently writing, but AFAICT from the log it isn't doing anything wrong (like not running frame callbacks.)

Flags: needinfo?(luangruo)

Does it have any visible consequences? i.e. do you see missing windows or so? Is there any testcase available?

Blocks: wayland
Flags: needinfo?(luangruo)

Yes, Firefox freezes until another configure event is generated, at which point it does commit.

WDYM by test-case?


Flags: needinfo?(luangruo)

Sorry but I fail to imagine how it looks like on user end. Is part of window missing after resize or so? How can I reproduce it? May you create a screencast of it, how it looks like?

The visible consequence is that the window contents "freeze" until the next configure event has a chance to make Firefox call commit, at which point the compositor resumes processing damage from the window. I've attached a screencast showing the problem. Thanks.

Interesting. I haven't seen such behavior in Mutter/KDE. Which compositor is that?

Flags: needinfo?(luangruo)

(In reply to [:nickname] Po Lu from comment #2)

One I'm currently writing

Is it based on wlroots or completely custom? Is it on Github? Does the problem still occur with

You need to log in before you can comment on or make changes to this bug.