If you think a bug might affect users in the 57 release, please set the correct tracking and status flags for Release Management.

Wayland - implement subsurface to draw to mozcontainer

NEW
Unassigned

Status

()

Core
Widget: Gtk
P3
minor
8 months ago
6 months ago

People

(Reporter: Martin Stránský, Unassigned)

Tracking

(Blocks: 1 bug)

Trunk
All
Linux
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(firefox54 affected)

Details

(Whiteboard: tpi:+)

Attachments

(1 attachment)

(Reporter)

Description

8 months ago
We use GdkWindow from mozcontainer to draw when CSD or Wayland is enabled. It means that the mShell's GdkWindow is used by GDK to draw decorations (usually shadows) and main firefox window is rendered to mContainer which is nested in mShell.

To draw asynchronously (off-main thread) we can no more draw directly to GdkWindow owned by mContainer. This GdkWindow (and its wl_surface) is owned by Gdk and it's updated by Gdk internals from main thread.

Instead we create wl_subsurface which overlays whole mContainer and attach it as child of wl_surface owned by mContainer. The wl_subsurface is owned by us, it's not touched by Gdk and can be drawn off main thread without any collision/deadlock.
(Reporter)

Comment 1

8 months ago
Created attachment 8834428 [details] [diff] [review]
wip

WIP patch. Bug 1299083 has to be sorted out first.
(Reporter)

Updated

8 months ago
Depends on: 1299083

Updated

8 months ago
Priority: -- → P3
Whiteboard: tpi:+
(Reporter)

Updated

7 months ago
Depends on: 1341296
You need to log in before you can comment on or make changes to this bug.