[Wayland/GL] Visual glitches with gl compositor during window resize
Categories
(Core :: Widget: Gtk, defect, P2)
Tracking
()
People
(Reporter: stransky, Assigned: stransky)
References
(Blocks 2 open bugs)
Details
Attachments
(2 files, 1 obsolete file)
When Gl compositor / WebRender is enabled, Firefox window resize is not very smooth, window is flickering/jumping.
Assignee | ||
Updated•4 years ago
|
Assignee | ||
Comment 1•4 years ago
|
||
I see the same artifacts with resizing chrome browser on XWayland, which doesn't look much as wayland/firefox specific issue.
Assignee | ||
Updated•4 years ago
|
Assignee | ||
Updated•4 years ago
|
Assignee | ||
Comment 2•4 years ago
|
||
Recently we update egl_window size only in moz_container_size_allocate() which is leads
to visible visual glitches as moz_container_size_allocate() is not called during window resize but
after it.
We need to update egl_window size faster which is done in configure-event callback.
Assignee | ||
Updated•4 years ago
|
Assignee | ||
Updated•4 years ago
|
Assignee | ||
Comment 3•4 years ago
|
||
We may need to backport this to FF 70.
Assignee | ||
Updated•4 years ago
|
Assignee | ||
Comment 4•4 years ago
|
||
The fix here is incomplete - does not work with e10s enabled.
Assignee | ||
Comment 5•4 years ago
|
||
This looks like a race condition between glSwapBuffers() and wl_egl_window_resize(). glSwapBuffers() sets wl_surface and wl_buffer position for a egl_window/GdkWindow at dri2_wl_swap_buffers_with_damage() at MESA and If we call dri2_wl_swap_buffers_with_damage()/glSwapBuffers() with old wl_egl_window_resize() values then old offset/position values are used and we see the egl_window jumping around.
Updated•4 years ago
|
Assignee | ||
Comment 6•4 years ago
|
||
wl_egl_window size must exactly march GL rendering pipeline setting.
Compositor and widget can have different window sizes during window resize when widget
is resized faster than layout can render. Firefox window is rendered misplaced then
and it's "jumping" as layout size is behind toolkit size.
Assignee | ||
Comment 7•4 years ago
|
||
We can't set wl_egl_window from widget code as it must match GL rendering pipeline,
so let compositor to set the egl window size.
Depends on D49136
Assignee | ||
Updated•4 years ago
|
Pushed by dluca@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/afc6499c8f1f
[Wayland] Set EGL window size at CompositorOGL::BeginFrame, r=sotaro
https://hg.mozilla.org/integration/autoland/rev/9e610c4628e1
[Wayland] Get wl_egl_window size from compositor by nsWindow::SetEGLNativeWindowSize, r=jhorak
Comment 9•4 years ago
|
||
Backed out 2 changesets (bug 1587008) for build bustage on src/widget/gtk/GtkCompositorWidget.cpp. CLOSED TREE
Log:
https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=271338273&repo=autoland&lineNumber=28042
Push with failures:
https://treeherder.mozilla.org/#/jobs?repo=autoland&group_state=expanded&revision=9e610c4628e11d5374d2adae34d26a028b30bae3
Backout:
https://hg.mozilla.org/integration/autoland/rev/8dcdb516629f8c2d57630a6ad410f3d89be541b0
Assignee | ||
Comment 10•4 years ago
|
||
Updated, Thanks.
Comment 11•4 years ago
|
||
Pushed by rmaries@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/5781505ae8f5
[Wayland] Set EGL window size at CompositorOGL::BeginFrame, r=sotaro
https://hg.mozilla.org/integration/autoland/rev/cb34ab7100d3
[Wayland] Get wl_egl_window size from compositor by nsWindow::SetEGLNativeWindowSize, r=jhorak
Comment 12•4 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/5781505ae8f5
https://hg.mozilla.org/mozilla-central/rev/cb34ab7100d3
Updated•4 years ago
|
Description
•