Sie können (oder möglicherweise nicht) gehört haben, dass sich Firefox von GLX auf EGL für den Linux-Grafikstapel bewegt. Es ist ein Indikator, auf den sich die Gezeiten in der Software-Welt bewegen. Schauen wir uns an, was es bedeutet, warum es wichtig ist und warum es cool ist.
Ein Grafikstapel ist ein komplexes System mit zahlreichen Ebenen. Bei Linux muss jedoch eine Schnittstelle zwischen etwas OpenGL und einem Fenstersystem wie x11 sein. X11 bietet einen grundlegenden Rahmen für das Zeichnen und das Verschieben von Fenstern um ein Display, die Benutzereingabe aufnehmen und den Fokus erkennen, aber wenig anderes. Ein X11-Server ist nur ein Programm, das alle Windows (Clients) verwaltet. Jedes Fenster in X11 gilt als Kunde. Ein Client verbindet sich mit dem Server über eine UNIX-Prozessbuchse oder das Internet.
OpenGL konzentriert sich darauf, was in den Grenzen des Bildschirms, der vom Fenstersystem angegeben ist, in den Grenzen des Bildschirms zu zeichnen. GLX (der für OpenGL-Erweiterung zum X-Fenstersystem steht) wurde ursprünglich von Siliziumgrafiken entwickelt. Es hat sich im Laufe der Jahre geändert und den Hardwarebeschleunigungsunterstützung und DRI (Direct Rendering-Schnittstelle) erwerben. DRI ist ein Weg für OpenGL, direkt mit der grafischen Hardware zu sprechen, wenn sich der Server und der Client auf demselben Computer befinden. In seinem Kern bietet GLX OpenGL-Funktionen auf x11 an, fügt dem X-Protokoll hinzu, indem 3D-Rendering-Befehle zulässt, und eine Erweiterung, die Rendering-Befehle liest und sie an OpenGL übergibt.
EGL (EGBEDDED-System Graphics-Bibliothek) ist ein Nachfolger von GLX, begann jedoch mit einer anderen Umgebung. Anfangs war der Fokus eingebettete Systeme, und Geräte wie Android, Raspberry Pi und Blackberry stützen sich auf EGL für ihre grafischen Bedürfnisse. Abschließend entschied sich Wayland jedoch, EGL als GLX in X11-Abhängigkeiten zu verwenden, und EGL bietet einen genaueren Zugriff auf Hardware.
Als Martin Stránský anfangs Firefox Wayland unterstützte, verwendete er EGL anstelle von GLX. Darüber hinaus hatte die Wayland-Implementierung GPU-Puffer-Sharing über DMABUF (ein Linux-Kernel-Subsystem zum Teilen von Puffern). Leider konnte Firefox diese verbesserte WebGL-Leistung für X11 nicht einschalten (es gab es jedoch nie stabil genug). Trotzdem kommen die Merkmale, um Wayland (und folglich EGL) einen wesentlich erstklassigen Bürger zu machen. Nun wird EGL standardmäßig in Firefox 94+ mit MESA 21+ Chauffeuren aktiviert (MESA ist eine Implementierung von OpenGL, Vulkan und anderen Spezifikationen, die Befehle in Anweisungen übersetzen, in die die GPU verstehen kann).
Warum dieser Umzug ist
Wie bereits diskutiert, hat EGL zwei entscheidende Merkmale: Null-Kopie-gemeinsame Puffer und Unterstützung der Teilschaden-Unterstützung. Nullkopie impliziert WebGL kann sandkasten und schnell sein. Teilschaden impliziert, dass das gesamte Fenster nicht neu gezeichnet werden muss, wenn nur ein kleiner Teil geändert wird, wodurch Energie gespart wird. Diese Verschiebung spricht auch mit den fortlaufenden Gezeiten in der Software-Welt. Langsam, aber sicher bewegt sich die Welt in Richtung des Egl / Wayland-Kompositionsstils. Diese Änderung impliziert in erster Linie weniger Abstraktionen und Schichten und näherer Zugriff auf die Hardware. EGL-Vorteile ist einfach von neuer und (hoffentlich) weniger Buggy mit ungewöhnlichen Randkasten. Darüber hinaus ist das Laufen von Wayland nativ standardmäßig in Firefox und nicht durch Xwayland eine bedeutende Verschiebung.
Anekdotal, Menschen, die es ausprobiert haben, sagen, dass die Leistungsgewinne stattgefunden wurden, waren insbesondere beim Anzeigen von Videos statt. Der gemeinsam genutzte Puffer hilft, für zahlreiche GPUs zu decodiert (umzuwandeln den komprimierten Strom wie H.264 in eine rohe Bitmap) und dann kompositiert. Mit einem gemeinsam genutzten Puffer und näherer Zugriff auf Hardware können die GPU diesen dekodierten Rahmen direkt in den Compositor-Puffer übertragen, anstatt eine Auslösung in den CPU-RAM zu erstellen, anstatt eine Reise in die GPU für Numa-Maschinen zurückzukehren.
Für zahlreiche von uns sind Firefox und andere äußerst komplexe Programme mysteriöse Zauberkästen. Ein Blick innen, um die engagierten Menschen zu sehen, die sie machen und wie sie Entscheidungen treffen und Kompromisse faszinieren.
Neugierig auf viele Linux-Internisten? Warum tauchen Sie nicht in eine Reise in die Hauptreise ()?