Open Bug 1841713 Opened 2 years ago Updated 2 years ago

Incorrect opaque regions on first commit after resize on Wayland

Categories

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

Firefox 114
defect

Tracking

()

UNCONFIRMED

People

(Reporter: contact, Unassigned)

References

(Blocks 1 open bug)

Details

Attachments

(1 file)

Steps to reproduce:

My own Wayland compositor has a view where all windows are temporarily frozen, only allowing updates when the window is resized and only applying the first commit after the resize.

This issue can be reproduced by shrinking Firefox, applying the first commit, then ignoring all the commits that come after it.

Actual results:

Firefox seems to have two surfaces on Wayland, one being seemingly transparent while the other contains the actual useful window data. However both are reported as transparent.

On the first commit after the resize, the "invisible" surface seems to be resized already while the actual surface is not resized yet, causing damage tracking to break since the invisible surface claims full opacity but it cannot rely on the main surface clearing its opaque region and it's not actually opaque.

Expected results:

The transparent surface probably shouldn't be marked as fully opaque. Alternatively both surfaces should be synchronized to ensure they're resized at the same commit.

I have tried setting widget.wayland.opaque-region.enabled to false, but Firefox still sets both surfaces to be fully opaque. So the setting seems to have no effect (which maybe should be a second, separate bug?).

The Bugbug bot thinks this bug should belong to the 'Core::Widget: Gtk' component, and is moving the bug to that component. Please correct in case you think the bot is wrong.

Component: Untriaged → Widget: Gtk
Product: Firefox → Core
Blocks: wayland
Priority: -- → P3
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: