RPi-VK-Drive: Der GPU-Controller mit Vulkan-Unterstützung für ältere RPI-Karten

Vor einiger Zeit kündigten die Raspberry Pi Foundation und Igalia ihre gemeinsame Entwicklung eines Vulkan-Treibers für Raspberry Pi-Boards an. Zunächst hieß es, der Treiber sei nur mit dem neuesten Board, dem „Raspberry Pi 4“, kompatibel, und damit begann die erste Entwicklungsphase. Ein konkretes Datum für die Fertigstellung des Treibers oder dessen Eignung für den Einsatz in realen Anwendungen wurde nicht genannt.

Sie erwähnten lediglich, dass dies möglicherweise in der zweiten Jahreshälfte 2020 möglich sein könnte. In den Spezifikationen des Controllers wurde vermerkt, dass die Kompatibilität auf den seit dem Raspberry Pi 4 verwendeten VideoCore VI Grafikbeschleuniger beschränkt ist und dass er nicht mit älteren Boards kompatibel wäre, was bedeutet, dass Modelle ab dem 3b+ und älter ausscheiden.

Darüber hinaus erwähnten sie, dass die Verwendung von Vulkan im Vergleich zu OpenGL die Leistung von Grafikanwendungen und Spielen verbessern kann.

Mit dieser Nachricht waren viele Fans und Besitzer eines Raspberry Pi, der nicht das Modell 4 war, enttäuscht, weil sie das Gefühl hatten, beiseite gelegt zu werden und praktisch angekündigt zu haben, dass es sich nicht mehr lohnt, daran zu arbeiten, eines dieser Boards weiter zu unterstützen.

Aber jetzt, in neueren Nachrichten, scheint es, dass sich die Dinge geändert haben, als ein Entwickler kam, um das Gegenteil zu beweisen.

Über RPi-VK-Driver 1.0

Martin Thomas, ein NVIDIA-Ingenieur, war für die Entwicklung des RPi-VK-Treibers verantwortlich, eines Open-Source-Treibers, der, in den Worten seines Autors, Folgendes leistet:

"Der Controller wurde von entwickelt, jedoch wurde die Entwicklung als persönliches Projekt durchgeführt, das nichts mit NVIDIA zu tun hat (der Controller wurde in den letzten zwei Jahren in seiner Freizeit entwickelt)."

Diese erste Version des Open-Source-RPi-VK-Treibers 1.0 wird unter der MIT-Lizenz vertrieben und implementiert die Vulkan-Grafik-API-Unterstützung für ältere Raspberry Pi-Boards, die die Broadcom Videocore IV GPU enthalten.

Der Controller ist für alle Raspberry Pi-Boardmodelle geeignet, die vor dem Raspberry Pi 4 erschienen sind.

Von den unterstützten Modellen werden im Repository folgende erwähnt:

  • Null
  • Null w
  • 1 Modell A.
  • 1 Modell A +
  • 1 Modell B.
  • 1 Modell B +
  • 2 Modell B.
  • 3 Modell A +
  • 3 Modell B.
  • 3 Modell B +
  • Rechenmodul1
  • Rechenmodul 3
  • Compute Module 3 Lite
  • 3 + Compute Module
  • Rechenmodul 3+ lite

Da die Fähigkeiten der VideoCore IV GPU, mit der ältere Raspberry Pi-Modelle ausgestattet sind, für die vollständige Implementierung von Vulkan nicht ausreichen , implementiert der Treiber nur eine Teilmenge der Vulkan-API , die nicht den gesamten Standard abdeckt, sondern versucht, ihn so weit wie möglich zu befolgen.

Die verfügbare Funktionalität ist jedoch für viele Anwendungen und Spiele ausreichend, und die Leistung ist den OpenGL-Treibern aufgrund effizienterer Speicherverwaltung, Multithread-Verarbeitung von GPU-Befehlen und direkter Steuerung der GPU-Operationen weit überlegen.

Der Treiber unterstützt außerdem Funktionen wie MSAA (Multisample Anti-Aliasing), Low-Level-Shader und Leistungsindikatoren . Eine Einschränkung besteht darin, dass GLSL-Shader in dieser Entwicklungsphase noch nicht unterstützt werden.

Was den Autor betrifft, können wir hervorheben, dass er auch für die Veröffentlichung des Ports des Spiels Quake 3 für Raspberry Pi verantwortlich war, der als Demonstration der Fähigkeiten des neuen Controllers dient.

Das Spiel basiert auf der ioQuake3-Engine, zu der ein modulares Rendering-Backend auf Basis von Vulkan hinzugefügt wurde, das ursprünglich vom Quake III Arena Kenny Edition-Projekt entwickelt wurde. Mit dem neuen Controller im Spiel konnten mehr als 100 Bilder pro Sekunde (FPS) auf dem Raspberry Pi 3B + Board mit 720p-Ausgabe gerendert werden.

Abschließend noch ein Hinweis zur Implementierung dieses Controllers und um mehr darüber zu erfahren : Sie können das Controller-Repository unter folgendem Link konsultieren.


Als bevorzugte Quelle in Google hinzufügen