RPi-VK-Drive - GPU-styrenheten med Vulkan-stöd för äldre RPI-kort

För en tid sedan tillkännagav Raspberry Pi Foundation, tillsammans med Igalia , sitt gemensamma arbete med utvecklingen av en Vulkan-drivrutin för Raspberry Pi-kort. Inledningsvis uppgav de att den endast skulle vara kompatibel med det senaste kortet, "Raspberry Pi 4", och därmed inleddes den inledande utvecklingsfasen. De nämnde inget specifikt datum för när drivrutinen skulle vara klar eller när den skulle vara lämplig för lansering av riktiga applikationer.

Det enda de nämnde var att detta skulle kunna vara möjligt under andra halvan av 2020. I specifikationerna för handkontrollen nämndes att den är begränsad till kompatibilitet med grafikacceleratorn VideoCore VI, som använts sedan Raspberry Pi 4-modellen, och att den inte skulle vara kompatibel med äldre moderkort, vilket innebär att modeller från 3b+ och tidigare uteslöts.

Dessutom nämnde de att, jämfört med OpenGL, kan användningen av Vulkan förbättra prestandan hos grafiska applikationer och spel.

Med den här nyheten blev många fans och ägare av en Raspberry Pi som inte var modell 4 besvikna eftersom de kände att de trängdes åt sidan och att de praktiskt taget meddelade att det inte längre är värt att arbeta för att fortsätta ge support för någon av dessa kort. .

Men nu i nyare nyheter verkar det som att saker och ting har förändrats sedan en utvecklare kom att bevisa motsatsen.

Om RPi-VK-Driver 1.0

Martin Thomas, en NVIDIA-ingenjör, var ansvarig för utvecklingen av RPi-VK-Driver, som är en drivrutin med öppen källkod som, med dess författares ord:

"Drivrutinen utvecklades av, men utvecklingen utfördes som ett personligt projekt, inte relaterat till NVIDIA (drivrutinen utvecklades under de senaste två åren på sin fritid)."

Denna första version av den öppna källkoden RPi-VK-Driver 1.0 distribueras under MIT-licensen och implementerar Vulkan-grafik-API-stöd för äldre Raspberry Pi-kort som inkluderar Broadcom Videocore IV GPU.

Kontrollern passar alla Raspberry Pi-kortmodeller som släpptes före Raspberry Pi 4.

Av de modeller som stöds nämns följande i arkivet:

  • noll
  • noll 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+
  • Beräkningsmodul 1
  • Beräkningsmodul 3
  • Compute Module 3 lite
  • Beräkningsmodul 3+
  • Compute Module 3+ lite

Eftersom funktionerna hos VideoCore IV GPU, som är utrustade med äldre Raspberry Pi-modeller, inte är tillräckliga för fullständig implementering av Vulkan, implementerar drivrutinen endast en delmängd av Vulkan API , vilket inte täcker hela standarden, utan försöker följa den så långt teamet tillåter.

Den tillgängliga funktionaliteten är dock tillräcklig för många applikationer och spel, och prestandan ligger långt före OpenGL-drivrutiner tack vare effektivare minneshantering, flertrådad bearbetning av GPU-kommandon och direkt kontroll över GPU-operationer.

Drivrutinen stöder även funktioner som MSAA (Multisample Anti-aliasing), lågnivåshaders och prestandaräknare . En begränsning är bristen på stöd för GLSL-shaders, vilka ännu inte är tillgängliga i detta utvecklingsstadium.

När det gäller författaren kan vi markera att han också var ansvarig för att publicera porten till Quake 3-spelet för Raspberry Pi, som fungerar som en demonstration av den nya kontrollerns kapacitet.

Spelet är baserat på ioQuake3-motorn, som lades till en Vulkan-baserad modulär renderingsback-end, ursprungligen utvecklad av Quake III Arena Kenny Edition-projektet. Med den nya drivrutinen i spelet var det möjligt att rendera över 100 bilder per sekund (FPS) på Raspberry Pi 3B+-kortet vid 720p-utgång.

Slutligen, angående implementeringen av denna kontroller och för att lära dig mer om den , kan du konsultera kontrollerförrådet på följande länk.


Lägg till som prioriterad källa i Google