Enige tijd geleden kondigden de Raspberry Pi Foundation en Igalia hun gezamenlijke werk aan de ontwikkeling van een Vulkan-driver voor Raspberry Pi-boards aan. Aanvankelijk gaven ze aan dat de driver alleen compatibel zou zijn met het nieuwste board, de Raspberry Pi 4, waarmee de eerste ontwikkelingsfase van start ging. Ze noemden geen specifieke datum waarop de driver klaar zou zijn of wanneer deze geschikt zou zijn voor het lanceren van daadwerkelijke applicaties.
Het enige wat ze vermeldden, was dat dit mogelijk zou zijn in de tweede helft van 2020. In de specificaties van de controller stond vermeld dat de compatibiliteit beperkt is tot de VideoCore VI grafische accelerator, die sinds het Raspberry Pi 4-model wordt gebruikt, en dat deze niet compatibel zou zijn met oudere boards, wat betekent dat modellen van de 3b+ en ouder uitgesloten waren.
Ze zeiden ook dat het gebruik van Vulkan, in vergelijking met OpenGL, de prestaties van grafische applicaties en games kan verbeteren.
Met dit nieuws waren veel fans en eigenaren van een Raspberry Pi die niet model 4 was, teleurgesteld omdat ze het gevoel hadden dat ze opzij waren gezet en dat ze praktisch aankondigden dat het niet langer de moeite waard is om deze boards te blijven ondersteunen.
Maar nu in meer recent nieuws, lijkt het erop dat de dingen zijn veranderd toen een ontwikkelaar het tegendeel kwam bewijzen.
Over RPi-VK-Driver 1.0
Martin Thomas, een engineer bij NVIDIA, was verantwoordelijk voor de ontwikkeling van RPi-VK-Driver, een open-source driver die, in de woorden van de auteur:
"De controller is ontwikkeld door, maar de ontwikkeling werd uitgevoerd als een persoonlijk project, niet gerelateerd aan NVIDIA (de controller is de afgelopen twee jaar in zijn vrije tijd ontwikkeld)."
Deze eerste versie van de open-source RPi-VK-Driver 1.0 wordt gedistribueerd onder de MIT-licentie en implementeert ondersteuning voor de Vulkan grafische API voor oudere Raspberry Pi-boards met de Broadcom Videocore IV GPU.
De controller is geschikt voor alle Raspberry Pi-boardmodellen die vóór de Raspberry Pi 4 zijn uitgebracht.
Van de ondersteunde modellen worden de volgende vermeld in de repository:
- zero
- Nul 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 +
- Rekenmodule 1
- Rekenmodule 3
- Rekenmodule 3 lite
- Rekenmodule 3+
- Rekenmodule 3+ lite
Omdat de mogelijkheden van de VideoCore IV GPU, waarmee oudere Raspberry Pi-modellen zijn uitgerust, niet toereikend zijn voor een volledige implementatie van Vulkan, implementeert de driver slechts een subset van de Vulkan API . Dit dekt niet de volledige standaard, maar probeert deze zo goed mogelijk te volgen binnen de mogelijkheden van het team.
De beschikbare functionaliteit is echter voldoende voor veel toepassingen en games, en de prestaties liggen aanzienlijk hoger dan die van OpenGL-stuurprogramma's dankzij efficiënter geheugenbeheer, multithreaded verwerking van GPU-opdrachten en directe controle over GPU-bewerkingen.
De driver ondersteunt ook functies zoals MSAA (Multisample Anti-aliasing), low-level shaders en prestatiemeters . Een beperking is het ontbreken van ondersteuning voor GLSL-shaders, die in dit ontwikkelingsstadium nog niet beschikbaar zijn.
Wat betreft de auteur kunnen we benadrukken dat hij ook verantwoordelijk was voor het publiceren van de port van de game Quake 3 voor Raspberry Pi, die dient als demonstratie van de mogelijkheden van de nieuwe controller.
De game is gebaseerd op de ioQuake3-engine, waaraan een modulaire rendering-back-end is toegevoegd op basis van Vulkan, oorspronkelijk ontwikkeld door het Quake III Arena Kenny Edition-project. Met behulp van de nieuwe in-game controller was het mogelijk om meer dan 100 frames per seconde (FPS) op het Raspberry Pi 3B + -bord te renderen met een output van 720p.
Tot slot, voor meer informatie over de implementatie van deze controller kunt u de controllerrepository raadplegen via de volgende link.