OpenGL und XRender sind beide Zeichnungs-APIs, die dabei Anwendungen bestimmter geometrischer Transformationen ermöglichen.
OpenGL zielt auf Zeichenoperationen ab, die von einer dedizierten Grafikverarbeitungseinheit (GPU) ausgeführt werden, und bietet viele Funktionen, die das Generieren eines 3D-ähnlichen Bildes sehr einfach machen (Tiefenpuffer, Tiefentests, homogene 4 × 4-Transformationsmatrizen). Aber Sie können mit OpenGL auch 2D-ähnliche Grafiken erstellen.
XRender ist eine Erweiterung von X11, um Rendering-Methoden (Antialiasing, Alpha-Blending) zu unterstützen, die mit den Kernfunktionen von X11 nicht möglich sind. Die XRender-API ist jedoch für 2D-ähnliche Grafiken optimiert (kein Tiefenpuffer/Test, 3×3-Transformationsmatrizen).
Beachten Sie, dass XRender nicht perfekt orthogonal zu OpenGL ist. Insbesondere wenn Sie Antialiasing in OpenGL benötigen, müssen Sie einige Funktionen von XRender verwenden, um es zu aktivieren.
Was ist der Anwendungsfall jeder Option?
Die Option von XRender ist dazu da, Systeme zu unterstützen, für die es keine richtige OpenGL-Unterstützung gibt (Mangel an stabilen Treibern), aber eine akzeptable Unterstützung für XRender-Operationen. Außerdem ist XRender etwas einfacher einzurichten (aus Sicht eines Programmierers) als OpenGL.
Im Allgemeinen ist OpenGL aus Programmierersicht flexibler als XRender. Wenn Sie sich fragen, welche von beiden Sie wählen sollten:Beginnen Sie mit OpenGL und wenn alles akzeptabel funktioniert, bleiben Sie dabei. Die XRender-Option ist ein Fallback, wenn OpenGL nicht richtig funktioniert (aber da XRender heutzutage in den Treibern einen großen Teil mit OpenGL teilt oder tatsächlich mit OpenGL implementiert ist, macht es praktisch keinen Unterschied mehr).
Ich verwende XRender, weil KWin mit OpenGL gerne die CPU ohne guten Grund dreht.
Es hat auch einige seltsame Probleme mit OBS und Spielen, die in Wine/Proton laufen.
Kann dringend empfehlen, auf nVidia-Karten auf XRender umzusteigen!