Der einzige Weg unter X11 kein Tearing zu bekommen, ist (neben dreckigen Hacks über den DDX-Treiber) ein Composite Manager über die XCOMPOSITE Extension. Technisch gesehen lagert es das Compositing, also das Zusammensetzen der fertig gerenderten Fenster zu einem fertigen Bild, in ein externes Programm aus. Die Kette ist da, egal ob der Composite Manager in den Window Manger integriert ist oder nicht, Anwendung -> X-Server -> Composite Manager -> X-Server -> DRM. Da X11 kein Frame Pacing unterstützt und der Composite Manager daher weder auf eingehender, noch auf ausgehender Seite Deadline definieren kann, braucht man für eine saubere Implementierung sowohl im X-Server, als auch im Composite Manager mindestens Double Buffering... Sprich man kopiert selbst bei Shared Buffers nicht unwesentliche Mengen an (Meta-)Daten durch die Gegend und fängt sich durch zweimal zwei Buffer Worst Case vier Frames Latenz ein.
Ich weiß, dass es viele Personen nicht stört. Aber ich als alter Quaker konnte X11 mit Composite Manager nie ertragen. Das war einfach nur schlimm. Daher habe ich all die Jahre X11 ohne Composite Manager und mit klassischer RENDER Extension genutzt.
Ich weiß, dass es viele Personen nicht stört. Aber ich als alter Quaker konnte X11 mit Composite Manager nie ertragen. Das war einfach nur schlimm. Daher habe ich all die Jahre X11 ohne Composite Manager und mit klassischer RENDER Extension genutzt.
