De 3dfx Voodoo grafische acceleratorkaart, die nog steeds beroemd is in pc-hardware en retro-gamingkringen, keert nu "terug" op het podium in de vorm van een nieuwe FPGA-implementatie. Op basis van het feit dat meerdere DOS- en pc-simulators de prestaties van Voodoo goed hebben kunnen reproduceren, heeft een ontwikkelaar ervoor gekozen om deze klassieke chip uit de vorige eeuw rechtstreeks te reconstrueren op programmeerbare hardware.

Het merk 3dfx werd in 2000 door Nvidia overgenomen en verdween uiteindelijk, maar de acceleratorkaarten uit de Voodoo-serie zijn nog steeds de "magische kaarten" in de harten van veel spelers en liefhebbers van 3D-graphics, en zijn ook kerncomponenten in verschillende retro-modificatieprojecten en oude gamehardware-oplossingen. Op dit moment zijn Voodoo-chips bijna volledig gesimuleerd in verschillende simulators zoals DOSBox-X, PCem en 86Box, en hardwarespelers proberen voortdurend aanpassingsprojecten uit op basis van originele chips of zelfgemaakte oplossingen.

Francisco Ayala Le Brun, chief technology officer van het Nederlandse bedrijf VideowindoW, koos ervoor om via FPGA een nieuw "reïncarnatie" -pad voor Voodoo te vinden. Hij gebruikte SpinalHDL, een hardwarebeschrijvingstaal, om de Voodoo 1 grafische kaart volledig te beschrijven en converteerde deze vervolgens naar een digitaal circuitmodel dat kon draaien op een moderne field-programmable gate array (FPGA).

Le Brun benadrukte in de technische beschrijving dat Voodoo 1 weliswaar heel oud is, maar geenszins een simpel chipontwerp is. In tegenstelling tot moderne GPU's beschikt deze niet over transformatie- en verlichtingshardware of programmeerbare shader-functies. Alle grafische mogelijkheden zijn "hardgecodeerd" in de siliciumchip in de vorm van vaste functies, waaronder een complete pijplijn van gradiëntberekeningen voor Gouraud-shading, texture sampling, mipmapping, multi-level texture filtering (bilineair en trilineair), alpha clipping, clipping berekeningen, enz.

In het op 3dfx gebaseerde grafische weergaveproces is de CPU verantwoordelijk voor het voltooien van de complexe wiskundige bewerkingen die nodig zijn om de 3D-scène te beschrijven, terwijl de Voodoo-versneller zo snel mogelijk getextureerde driehoeken naar het scherm tekent. Le Brun wees erop dat deze “schijnbaar eenvoudige” verdeling van verantwoordelijkheden er gemakkelijk toe kan leiden dat mensen denken dat de hardwarestructuur ook heel eenvoudig is. Zelfs als er maar één driehoek wordt weergegeven, moet er in de chip een reeks bewerkingen worden uitgevoerd, zoals kleurinterpolatie, texture sampling, mip-niveauselectie, filtering, dieptevergelijking, bijsnijden en misteffecten. Bovendien zijn dit geen programmeerbare processen in de moderne zin van het woord, maar zijn ze in de chip gestold in de vorm van vaste circuits.

Tijdens het reconstrueren van Voodoo 1 moest Le Brun de verborgen complexiteit erin ontrafelen: het besturingspad reorganiseren, de semantiek en het extreem "diepe" pijplijntimingontwerp registreren, zodat deze vroege 3D-versneller ook complexe weergavetaken kan verdelen in pixels op FPGA, zoals destijds, en pijplijnverwerking in meerdere fasen, waardoor datadoorvoercapaciteiten worden bereikt die veel groter zijn dan die van pure softwareweergave.

Met behulp van moderne tools zoals SpinalHDL en register transfer level (RTL) ontwerp, heeft Le Brun de architecturale concepten van Voodoo "gecodeerd" in de FPGA-implementatie zonder details te verliezen. Hij noemde dit project "SpinalVoodoo" en heeft het open source gemaakt op GitHub. Momenteel is slechts een klein deel van de functies van de originele Voodoo-chip nog niet voltooid.

Hoewel het project voor veel ophef heeft gezorgd onder de retro-hardware-enthousiastelingen, heeft Le Brun nog geen interesse getoond in het lanceren en verkopen van kant-en-klare FPGA-hardware rond SpinalVoodoo. Voor 3dfx-fans en retro-gamers biedt deze open source-implementatie nog steeds een aantrekkelijk nieuw pad voor toekomstige hardwareprojecten, doe-het-zelf-kaarten of modding-oplossingen.

leer meer:

https://noquiche.fyi/voodoo