Der kostenlose Panfrost-Treiber unterstützt jetzt Mali Valhall GPUs

Collabora hat die Unterstützung für GPUs der Valhall-Serie (Mali-G57, Mali-G78) in den kostenlosen Panfrost-Treiber implementiert, der sich zuvor auf die Implementierung der Unterstützung für Midgard- und Bifrost-Chips konzentrierte. Es wird darauf hingewiesen, dass die vorbereiteten Änderungen mit der ersten Implementierung des Treibers zur Aufnahme in die Hauptzusammensetzung von Mesa eingereicht wurden und den Benutzern in einer der nächsten wichtigen Versionen zur Verfügung gestellt werden.

Die Implementierung wurde nach 6 Monaten Reverse Engineering proprietärer Treiber vorbereitet, die in einem Android-Smartphone mit einer Mali G78-GPU verwendet wurden. Die geleistete Arbeit ist insofern bemerkenswert, als die Entwicklung im passiven Modus ohne Root-Zugriff auf ein Smartphone mit dem untersuchten Chip durchgeführt wurde, d. Entwickler konnten den vorhandenen Treiber nicht ersetzen. Um den Treiber zu testen und den Inhalt des Videospeichers im Smartphone zu analysieren, haben wir den Entwicklermodus in Android verwendet und unseren Code durch LD_PRELOAD ersetzt.

Kompilierte Shader, GPU-Befehlssequenzen und Datenstrukturen, die den Zustand grafischer Grundelemente wie Texturen steuern, wurden aus dem Speicher abgerufen. Anschließend wurden einzelne Änderungen an diesen Shadern und Strukturen vorgenommen und das Ergebnis analysiert. Als Ergebnis haben wir einen eigenen Shader-Compiler für die Valhall-GPU vorbereitet, der die Generierung ähnlicher Binärobjekte ermöglichte, sowie einen Treiberprototyp für Mesa. Im Januar dieses Jahres fiel ein Chromebook auf Basis eines MediaTek MT8192-Chips mit einer Valhall G57-GPU in die Hände der Entwickler, mit dessen Hilfe eine abschließende Überprüfung der realen Geräte durchgeführt und der resultierende Treiber in eine funktionsfähige Form gebracht wurde.

Source: opennet.ru

Kommentar hinzufügen