https://bugzilla.kernel.org/show_bug.cgi?id=196777
--- Comment #14 from Gerd Hoffmann (kraxel@redhat.com) ---
We could possibly decouple the primary surface from the drm framebuffers, so the drm framebuffers effectively become shadow framebuffers, and every display update becomes a drm framebuffer -> primary surface blit. Not sure whenever that scheme can work properly with xorg though. Also has a high chance to cause xorg performance regressions.
Turns out there is an easy way out: shadow dumb framebuffers only.
https://www.kraxel.org/cgit/linux/log/?h=drm-qxl-atomic