De ce să te deranjezi? „Pentru ca pot”
Rip and Tear the Framebuffer: Fanii Doom și pasionații de codare nu se pot opri să pună FPS-ul id Software pe fiecare platformă de calcul sau marfă legată de tehnologie cunoscută omenirii. Cel mai recent port, totuși, vizează o componentă hardware foarte specifică PC-ului. Deși „funcționează” ca o afișare impresionantă a priceperii software, nu servește niciun scop practic real.
Lista de porturi Doom de pe Wikipedia ar trebui acum să fie actualizată cu o intrare nou-nouță. Proiectul doomgpu, recent dezvăluit, își propune să ruleze „aproape” în întregime pe GPU-ul strămoșului shooter-urilor moderne, necesitând o configurare software oarecum complexă și un sistem de operare Linux pentru a face treaba.
Joseph Huber, dezvoltatorul din spatele doomgpu, a implementat cu succes o copie de lucru a originalului Doom pentru DOS pe GPU-ul său AMD folosind biblioteca LLVM C pentru GPU și interfața doomgeneric. Tehnologia LLVM acționează ca un „strat mijlociu” între codul sursă și codul de asamblare pur, producând o reprezentare intermediară comună care poate fi portată și optimizată pentru diferite arhitecturi de procesor.
Mai mult, scopul doomgeneric este de a face portarea Doom chiar mai ușoară decât este în mod tradițional. PC DOS FPS lansat de id Software în 1993 și-a demonstrat în mod repetat capacitatea de a fi portat peste tot, mai ales după ce id a lansat codul sursă oficial sub o licență necomercială în 1997. Datorită doomgeneric, un dezvoltator plin de resurse poate crea un brand- port nou folosind doar câteva funcții.
Huber a explicat cum și-a atins obiectivul pe pagina oficială GitHub de doomgpu. Portul necesită un sistem de operare Linux, un GPU AMD cu suport pentru stiva de software deschisă ROCm, biblioteci SDL2, o instalare ROCm sau ROCR-Runtime și o versiune LLVM derivată din ramura principală a proiectului, cum ar fi LLVM20.
Doomgpu face ca aproape tot codul jocului să ruleze pe GPU în loc de CPU, afirmă Huber, interfața SDL2 gestionând funcțiile necesare pentru a captura cheile de intrare și pentru a scrie în framebuffer-ul de ieșire. În timp ce Doom nu rulează „în întregime” pe GPU, dezvoltatorul admite că toate logica și rutinele de randare o fac.
Doomgpu a fost testat pe o instalare Arch Linux cu versiunea de kernel 6.10.5, un GPU AMD Radeon RX 6950 XT și versiunea ROCm 6.0. Proiectul ar trebui să funcționeze și pe GPU-urile Nvidia, datorită capacităților LLVM și backend-ului NVPTX.
Framebuffer-ul unui GPU nu este cel mai ciudat loc în care Doom a fost portat recent, cu computere cuantice, afișaje holografice și modele AI generative luptă pentru primele locuri în categoria „ciudat” de portare Doom. Între timp, Bethesda și id Software lucrează acum la o nouă experiență Doom, cunoscută sub numele de Doom: The Dark Ages.