Microsoft je predstavil DirectX 12 Ultimate
Jurij Kristan
22. mar 2020 ob 23:43:40
Pri Microsoftu so predstavili novo inačico programskega vmesnika za grafiko DirectX 12, ki so jo modno poimenovali Ultimate. Znaten del novosti pravzaprav že poznamo, toda dogodek je pomemben tudi z vidika, da vzpostavlja celovit standard za razvijanje iger na Xboxu Series X.
V okviru nesojenega GDCja bi morala potekati tudi predstavitev nove inačice Microsoftovega grafičnega APIja DirectX 12, a so zaradi prestavitve krovne prireditve vse skupaj izvedli na spletu. Gre v bistvu za prvo deklarirano diskretno inačico dvanajstice po tem, ko so jo pred petimi leti splovili, kajti njene podizvedenke prihajajo rahlo drugače kot tiste prejšnjih generacij, ki smo jih bili vajeni dobivati pod decimalkami. DX12 novosti dobiva bolj zvezno, v paketih funkcij na mestoma zelo različnih razvojnih stopnjah, in od grafičnih kartic ne terja tako brezpogojnega upoštevanja standardov kot poprej, saj lahko GPUji iz APIja bolj dinamično poberejo tiste zmogljivosti, ki jih podpirajo. Najnovejša verzija ima tako tehnično ime "feature level 12_2", toda v Microsoftu so jo vendarle pomenovali Ultimate, kar se sliši precej vehementno. V bistvu razlog za to ni toliko v zbirki novih funkcij, temveč v prihodu novega Xboxa koncem tega leta. Z DirectX 12 Ultimate želijo pri Microsoftu preprosto postaviti enovite tehnične programske temelje za razvoj na Xboxu Series X in primerljivih PCjih z Okni, ki bodo obenem jasneje vidni tudi navzven, se pravi igričarjem. Na PCju bomo ultimativno verzijo prejeli z nastopom posodobitve 20H1 za Windows 10, predvidoma konec pomladi.
DX12 feature level 12_2 ima štiri poglavitne sklope novosti - pri čemer je pod "novost" mišljena njihova zloščena končn(ejš)a verzija, kajti večino smo v tej ali oni razvojni obliki srečali že prej. To so: raytracing v inačici DXR 1.1, variable rate shading, mesh shading in sampler feedback. Pomenljivo je, da gre pri vseh teh zmogljivostih za ideje, zasnovane pri Nvidii, za GPU arhitekturo Turing. Tako so najnovejši Geforci tiste grafične kartice, ki spisek zmogljivosti že podpirajo, medtem ko jih bodo Radeoni z naslednjo generacijo na osnovi arhitekture RDNA 2, ki bo tudi temelj Xboxove grafike.
Prvi dve funkciji smo na slo-techu že popisovali, zato o njiju zgolj na hitro. Raytracing v različici DXR 1.1 predvsem prinaša enostavnejšo rabo realističnih izračunov svetlobnih žarkov za razvijalce; opazna noviteta je denimo tako imenovan inline raytracing, oziroma popreproščena metoda, ki jo je mogoče uporabljati v več različnih delih izrisovalnega cevovoda. Pri AMDju so v tem oziru pokazali tudi svojo implementacijo DXR 1.1, ki se je lahko nadejamo v naslednji generaciji Radeonov. Variable rate shading je po drugi strani zmogljivost, ki omogoča prilagodljivo kvaliteto senčenja na različnih pikah iste sličice. Po domače: del scene bo tako lahko izrisan na visoki kvaliteti - na primer fokus dogajanja, medtem ko se bo pri drugih delih prizora varčevalo, ker ne bodo v ospredju. Zamisel seveda nosi še posebno veliko vrednost za navidezno resničnost, kjer je mogoče tako središče slike izrisati bolje kot robove in privarčevati krvavo potrebne strojne vire.
Za tehnologijo mesh shaders pa večina ljudi bržkone še ni slišala - pa je za to že kar čas, saj pomeni enega najbolj korenitih prelomov v izrabi grafičnih kartic. Grafični cevovod za geometrijo se je v zadnjih dvajsetih letih nadgrajeval pretežno z zaporednim dodajanjem novih funkcij, kot je na primer teselacija. Dve desetletji takšnega varjenja kosov enega na drugega pa je poskrbelo za že precej tog in neroden postopek. Mesh shader pipeline dozdajšnjo čorbo povsem zamenja z nečim, kar bi lahko imenovali "računski senčilniki za geometrijo". To razvijalcem odpira dozdajšnji tog cevovod in jim daje na voljo precej več svobode, posledično pa poskrbi za bistvene optimizacije procesov in s tem veliko količino privarčevanih strojnih virov. To na koncu pomeni občutno več trikotnikov v sceni, zaradi česar se lahko v igrah nadejamo mnogo bogatejših okolišev. Drobni tisk pri vsem tem pa je seveda to, da bo prestop na to tehnologijo zahteval velike spremembe v delu razvojnih studijev in s tem nemajhne enkratne stroške, zaradi česar lahko razširitev rabe mesh shader pipelina pričakujemo šele čez leta, z novimi generacijami grafičnih pogonov.
Zadnja zmogljivost, sampler feedback, je med opisanimi najmlajša. Osnovna ideja je tesnejše sporazumevanje GPUja in grafičnega pogona o tem, kako se teksture prevažajo v VRAM. Na tej osnovi je mogoče razviti različne funkcije, na primer natančnejše in varčnejše pretakanje tekstur - to pomeni, nalaganje zgolj tistih tekstur v pomnilnik, ki se dejansko izrisujejo, ne pa vseh v določeni stopnji igre. Kako močan prijem je dobro implementiran texture streaming, najbolje pokaže nedavno izdani Doom Eternal (pa čeprav je zgrajen na APIju Vulkan, ne DXu). Poganja ga id Tech 7, v katerem se je studio odrekel tehnologiji megatexture in namesto tega napravil visoko optimizirano pretakanje tekstur in s tem občutno boljšo podobo glede na Doom (2016).