Linux: Vulkan-Treiber für Raspberry Pi läuft nur über Umwege
Der Vulkan-Grafik-API liegen Annahmen zugrunde, die der Raspberry Pi nicht liefert. Der Vulkan-Treiber läuft dank Anpassungen trotzdem.

Auf der diesjährigen Open-Source-Konferenz Fosdem hat der an der Entwicklung beteiligte Programmierer Alejandro Piñeiro einen Überblick zum Stand des Vulkantreibers für den Bastelrechner Raspberry Pi gegeben. Der Treiber für die moderne Grafikarchitektur ist zwar seit mehr als einem Jahr in Entwicklung und inzwischen offiziell fertig gestellt. Laut Piñeiro, der die Arbeiten für die Linux- und Open-Source-Spezialisten von Igalia umsetzt, musste das Team dafür aber einige Besonderheiten beachten.
Der wohl wichtigste Punkt dabei ist, dass Vulkan eben genau dazu gedacht ist, sämtliche notwendigen Aufrufe der API auf dem Grafikchip selbst auszuführen. Das soll den CPU-Overhead von älteren Schnittstellen wie bei OpenGL überwinden und so zu einer Beschleunigung der Grafik führen. Der Raspberry Pi unterstützt dies laut dem Vortrag aber nicht vollständig, was das Entwicklungsteam vor Probleme gestellt hat. So müssen Flushes weiter über die CPU koordiniert werden.
Ebenso hat das Team derzeit noch Probleme mit der Umsetzung von Samplern, konkret sind das Filter für das Verarbeiten von linearen Bildern. Das Sampling in Swapchains ist ebenfalls nicht möglich. In den Swapchains werden bei Vulkan mehrere Buffer für Inhalte verwaltet, die für die grafische Darstellung vorgesehen sind. Auch hier können also keine Filter eingesetzt werden, was die Darstellung aber eigentlich beschleunigen könnte.
Ein weiteres Problem für die Vulkan-Implementierung auf dem Raspberry Pi ergibt sich aus der Grundlage des Linux-Codes sowie der 3D-Grafikbibliothek Mesa. Darin wird bisher einfach angenommen, dass es sich bei GPUs für Vulkan um PCIe-Geräte handelt, was bei der Embedded-GPU des Bastelrechners nicht der Fall ist. Daraus wiederum ergibt sich das Problem, dass die Window-System-Integration (WSI) für Vulkan aus dem Mesa-Projekt noch nicht in dem Treiber des Raspberry Pi genutzt werden kann.
Das Team plant natürlich, die beschriebenen Probleme in Angriff zu nehmen und etwa die Unterstützung von WSI zu verbessern. Mittelfristig wollen die Beteiligten die Leistung verbessern. Langfristig hofft das Team, Vulkan 1.1 zu unterstützen und darüber hinaus mehr Code mit OpenGL-Treibern teilen zu können.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
- ohne Werbung
- mit ausgeschaltetem Javascript
- mit RSS-Volltext-Feed
Kommentieren