RPi-VK-Drive: kontroler GPU z obsługą Vulkan dla starszych płyt RPI

Jakiś czas temu Raspberry Pi Foundation, wraz z Igalia , ogłosiły publicznie swoje wspólne prace nad stworzeniem sterownika Vulkan dla płytek Raspberry Pi. Początkowo twierdzili, że będzie on kompatybilny tylko z najnowszą płytą, „Raspberry Pi 4”, i tak rozpoczął się wstępny etap rozwoju. Nie podano konkretnej daty, kiedy sterownik będzie gotowy ani kiedy będzie nadawał się do uruchomienia rzeczywistych aplikacji.

Jedyną rzeczą, o której wspomnieli, było to, że może to być możliwe w drugiej połowie 2020 roku. W specyfikacji kontrolera wspomniano, że będzie on ograniczony do kompatybilności z akceleratorem graficznym VideoCore VI, używanym od modelu Raspberry Pi 4, i że nie będzie kompatybilny ze starszymi płytkami, co oznacza, że ​​modele od 3b+ i starsze zostały wykluczone.

Ponadto wspomnieli, że w porównaniu z OpenGL, użycie Vulkan może poprawić wydajność aplikacji graficznych i gier.

Tą wiadomością wielu fanów i właścicieli Raspberry Pi, które nie było modelem 4, było rozczarowanych, ponieważ czuli, że zostali odstawieni na bok i praktycznie ogłosili, że nie warto już pracować nad dalszym wsparciem którejkolwiek z tych płyt.

Ale teraz w nowszych wiadomościach wydaje się, że sytuacja się zmieniła, gdy programista zaczął udowodnić, że jest inaczej.

Informacje o RPi-VK-Driver 1.0

Martin Thomas, inżynier firmy NVIDIA, odpowiadał za rozwój RPi-VK-Driver, sterownika o otwartym kodzie źródłowym, który, jak ujął to jego autor:

„Kontroler został opracowany przez, jednak rozwój był prowadzony jako projekt osobisty, niezwiązany z firmą NVIDIA (kontroler był rozwijany przez ostatnie dwa lata w wolnym czasie)”.

Pierwsza wersja sterownika RPi-VK-Driver 1.0 o otwartym kodzie źródłowym rozpowszechniana jest na licencji MIT i implementuje obsługę interfejsu API graficznego Vulkan dla starszych płytek Raspberry Pi, które zawierają procesor graficzny Broadcom Videocore IV.

Kontroler pasuje do wszystkich modeli płytek Raspberry Pi wydanych przed Raspberry Pi 4.

Spośród obsługiwanych modeli w repozytorium wymieniono następujące:

  • zero
  • Zero w
  • 1 model A
  • 1 model A +
  • 1 model B
  • 1 model B +
  • 2 Model B
  • 3 Model A +
  • 3 Model B
  • 3 Model B +
  • Moduł obliczeniowy 1
  • Moduł obliczeniowy 3
  • Moduł obliczeniowy 3 lite
  • Moduł obliczeniowy 3+
  • Moduł obliczeniowy 3+ lite

Ponieważ możliwości procesora graficznego VideoCore IV, w który wyposażone są starsze modele Raspberry Pi, nie są wystarczające do pełnej implementacji standardu Vulkan, sterownik implementuje tylko podzbiór interfejsu API Vulkan , nie obejmując całego standardu, ale starając się go naśladować w miarę możliwości zespołu.

Dostępna funkcjonalność jest jednak wystarczająca dla wielu aplikacji i gier, a wydajność znacznie przewyższa sterowniki OpenGL dzięki efektywniejszemu zarządzaniu pamięcią, wielowątkowemu przetwarzaniu poleceń GPU i bezpośredniej kontroli operacji GPU.

Sterownik obsługuje również takie funkcje, jak MSAA (Multisample Anti-aliasing), shadery niskiego poziomu i liczniki wydajności . Jednym z ograniczeń jest brak obsługi shaderów GLSL, które nie są jeszcze dostępne na tym etapie rozwoju.

Jeśli chodzi o autora, to możemy podkreślić, że był on również odpowiedzialny za opublikowanie portu gry Quake 3 na Raspberry Pi, który służy jako demonstracja możliwości nowego kontrolera.

Gra oparta jest na silniku ioQuake3, do którego dodano modułowy backend renderujący oparty na Vulkan, pierwotnie opracowany przez projekt Quake III Arena Kenny Edition. Dzięki zastosowaniu nowego kontrolera w grze możliwe było renderowanie ponad 100 klatek na sekundę (FPS) na płycie Raspberry Pi 3B + z wyjściem 720p.

Na koniec, jeśli chcesz dowiedzieć się więcej na temat implementacji tego kontrolera i poznać więcej szczegółów , możesz zapoznać się z repozytorium kontrolerów pod poniższym linkiem.


Dodaj jako preferowane źródło w Google