[EGL][Wayland,Android?] Use EGL_EXT_buffer_age + EGL_EXT_swap_buffers_with_damage for partial present (damage tracking)
Categories
(Core :: Graphics, enhancement)
Tracking
()
People
(Reporter: val, Unassigned)
References
(Blocks 1 open bug)
Details
Inspired by the recent macOS stuff: we should notify the system compositor (display server) of damage via EGL.
Wayland compositors track damage quite obsessively: https://emersion.fr/blog/2019/intro-to-damage-tracking/
This might work for other EGL platforms that support the required extensions (Android?)
I think I know how to do this: I see how CompositorD3D11 gets "dirty rects" in Present() (which is called by EndFrame()). I'd have to do the same in CompositorOGL, pass the rects to SwapBuffers, which the EGL implementation would pass them to EGL.
// I wonder how this would interact with WindowSurfaceWayland's mWaylandBufferDamage which doesn't seem to interact with layers compositing at all - is that thing for software rendering only?
Comment 1•5 years ago
|
||
It looks similar to Bug 1575765
Comment 2•5 years ago
|
||
Probably a duplicate of https://bugzilla.mozilla.org/show_bug.cgi?id=1484812 though that’s Android-only.
Reporter | ||
Comment 3•5 years ago
|
||
Okay, let's keep this at bug 1484812. I couldn't find it because I was searching for the EGL_EXT_ version instead of the EGL_KHR_ one. (also because y'all mention keywords "partial" and "invalid" but not "damage" :D)
Description
•