Login
Newsletter
Werbung

Do, 27. Juni 2019, 12:51

Software::Grafik

Panfrost-Treiber erreicht Meilenstein

Panfrost, ein Treiber für einige Grafikprozessoren der Mali-Reihe, besitzt jetzt genug Funktionalität, um die Gnome-Shell auszuführen. Dies bedeutet eine weitgehend funktionale Implementierung von OpenGL ES.

Gnome auf einem Laptop mit Panfrost-Grafiktreiber

Alyssa Rosenzweig

Gnome auf einem Laptop mit Panfrost-Grafiktreiber

Die von ARM entworfene Mali-Reihe von Grafikprozessoren besteht aus diversen unterschiedlichen Chips, die unterschiedliche Treiber benötigen. Von ARM selbst gibt es bedauerlicherweise nur Treiber, die entweder nicht frei oder nur mit eingeschränkter Funktionalität ausgestattet sind. Die langwierige Arbeit des Reverse Engineering der Chips für freie Treiber hat jedoch inzwischen Früchte getragen. So werden der Mali-400 und verwandte Chips durch den Lima-Treiber recht gut unterstützt. Für manche GPU-Typen fehlt allerdings ein freier Treiber noch vollständig.

Für Midgard und Bifrost, unter anderem Mali-T760 und T860, entwickelte die Studentin Alyssa Rosenzweig den Panfrost-Treiber. Schon im März 2019 war 3D-Rendering implementiert und Code zur Unterstützung von Panfrost in Mesa eingebracht. Mesa ist neben dem Grafiktreibern im Kernel eine der wichtigsten Komponenten für die Grafik freier Betriebssysteme, da das Projekt OpenGL, OpenGL ES und Vulkan als freie Software implementiert.

Eines der nächsten Ziele lautete schon im März, Gnome zum Laufen zu bekommen. Dazu war eine robuste Implementation von OpenGL ES 2.0 und höher notwendig, da Gnome diese 3D-Schnittstellen intensiv nutzt. Anfang Juni begann Alyssa Rosenzweig ein Praktikum bei Collabora, um weiter an Panfrost zu arbeiten. Schneller als erwartet konnte sie nun ein lauffähiges Gnome mit Panfrost-Treiber vermelden. Dazu musste sie vor allem Fehler im Treiber ausbügeln und die Geschwindigkeit erhöhen.

Die von Panfrost unterstützten Chips verwenden einen speziellen Ansatz, um die Geschwindigkeit zu erhöhen. Sie teilen den Bildschirm in Kacheln auf, was es ermöglicht, nur diejenigen Kacheln neu zu zeichnen, in denen sich etwas geändert hat. Da eine feste Größe der Kacheln für die meisten Anwendungen nicht optimal wäre, kann der Grafikprozessor Kacheln von 16 x 16 bis 2048 x 2048 Pixeln verwenden.

Rosenzweig implementierte im Panfrost-Treiber zunächst eine erste, noch einfache Optimierung bezüglich der Kacheln. Danach begann sie sich das Scoreboarding anzuschauen, mit dem der Chip verschiedene Rendering-Jobs priorisiert. Sie implementierte eine nach eigenen Angaben elegante Abhängigkeitsverwaltung, die auf einer topologischen Sortierung der Jobs beruht. Das wiederum ermöglichte weitere Funktionalität, so dass jetzt OpenGL ES 2.0 und neuer wohl bald vollständig implementiert sind. Das Ergebnis ist, dass Gnome jetzt bereits läuft und Rosenzweig noch zwei Monate Zeit hat, den Treiber weiter zu verbessern.

Werbung
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung