Teiesugused lugejad aitavad MUO-d toetada. Kui teete ostu meie saidil olevate linkide abil, võime teenida sidusettevõtte komisjonitasu. Loe rohkem.

DirectX 12 ilmus koos Windows 10-ga 2015. aastal. Oma väljalaskega juhatas Microsofti DirectX 12 mängijatele ja mänguarendajatele uue ajastu. DirectX 12, mis on võimeline vähendama CPU üldkulusid, suurendades samal ajal GPU jõudlust, tegi endale kiiresti nime.

Kas jõudluse suurendamine on aga tõesti nii lihtne kui DirectX 11-lt DirectX 12-le üleminek? Uurime välja, vaadates DirectX 11 ja 12 erinevusi.

Mis on Microsofti DirectX?

Nagu on selgitatud meie ülevaade Microsoft DirectX-ist, DirectX on API-de kogum, mida kasutatakse multimeediumiga seotud ülesannete haldamiseks. See hõlmab mängude programmeerimist Microsofti-põhistel platvormidel, nagu Windows ja Xbox. Konteksti andmiseks räägime lühidalt API-dest.

Rakenduse programmeerimisliides (API) võimaldab kahel või enamal arvutiprogrammil omavahel suhelda, mida me käsitleme meie ülevaade API-dest. Mõelge sellele nagu telefonile. Kui teie ema saadab teile tekstisõnumi koos toidukaupade nimekirjaga, võtab teie telefon need andmed vastu ja kuvab need teie eest. See on põhimõtteliselt API.

Mis vahe on DirectX 11 ja DirectX 12 vahel?

Mis vahe on DirectX 11 ja DirectX 12 vahel? Lihtsamalt öeldes on DirectX 12 DirectX-i uusim versioon. Üks märgatavamaid erinevusi nende kahe vahel on see, kuidas nad teie riistvaraga suhtlevad. Enamik DirectX 11-ga arendatud mänge kasutab ainult kahte kuni nelja CPU tuumad. Üks neist tuumadest on tavaliselt pühendatud GPU-le, mida teha.

Seejärel kasutab mäng ülejäänud südamikke mitmesuguste protsessorimahukate seadete, näiteks mängu osakeste või joonistuskauguse käsitlemiseks. Teisest küljest jaotab DirectX 12 protsessori töökoormuse mitme tuuma vahel ja võimaldab igal tuumal samal ajal GPU-ga rääkida.

DirectX 12-ga on kaasas ka mõned uhked kellad ja viled. See hõlmab asünkroonset andmetöötlust ja konveieri olekuobjekte (PSO). Asünkroonne andmetöötlus suurendab GPU kasutust, võimaldades mitmel töökoormusel paralleelselt töötada. See avab sisuliselt teie GPU täieliku potentsiaali.

Lisaks graafika renderdamisele vastutab teie GPU paljude muude ülesannete, näiteks masinõppe algoritmide käitamise eest. DirectX 11 abil saab GPU korraga ja kindlas järjekorras täita ainult ühte neist ülesannetest. Kui see juhtub, saab jõudlus löögi, kuna kõiki teie GPU ressursse ei kasutata.

Mõelge sellele nagu restorani kelner. Kui kelner esimest korda teie tellimuse vastu võtab, küsib ta, mida te kõigepealt juua tahaksite. Kui olete oma joogid kätte saanud, küsitakse, mida soovite pearoaks. Teie tellimus võetakse vastu sammude kaupa. Kelner ei küsi enne pearoa söömist, mida sa magustoiduks soovid. Kuigi see on tõhus, pole see nii tõhus kui võiks.

Arvutustöös tegeleks iga kelneri ülesandega erinev GPU ressurss. Kuni joogi kättesaamiseni on pearoa tellimiseks vajalikud GPU ressursid jõude. DirectX 12 asünkroonse andmetöötluse abil saaks kelner teie tellimuse korraga vastu võtta nagu kiirtoiduketis. See maksimeerib GPU kasutust ja parandab teie mängu jõudlust.

DirectX 12 tutvustas ka PSO-sid. DirectX 11 puhul, kui mängu geomeetria esitatakse GPU-le renderdada, vastutavad selle tõlgendamise ja renderdamise eest mitmesugused riistvarasätted andmeid. Seda nimetatakse graafikakonveieriks ja see on andmesisendite ja -väljundite voog, mis toimub siis, kui teie GPU kaadreid renderdab. DirectX 11 graafikakonveier pole aga täiuslik.

See torujuhe sisaldab muude komponentide hulgas erinevate olekute kogumit, sealhulgas rasterimisolekut, segamisolekut ja sügavusšablooni olekut. DirectX 11-s on nende erinevate olekute vahel sõltuvusi. Selle tulemusena ei saa ühte olekut lõpetada enne, kui eelmine olek on määratletud. See vähendab GPU kasutust ja suurendab protsessori üldkulusid jõudluse hinnaga.

Sellest mööda saamiseks tutvustas DirectX 12 PSO-sid, mis on objektid, mis kirjeldavad kogu graafikakonveieri olekut. PSOd on nagu pudel, mis sisaldab erinevaid olekuid ja imago loomiseks vajalikke komponente. See võimaldab GPU-l eeltöödelda iga sõltuvat olekut, selle asemel, et olekuid praeguse graafikakonveieri alusel pidevalt ümber arvutada.

See vähendab märkimisväärselt DirectX 11 protsessori koormust ja parandab jõudlust. Niisiis, kuidas see erinevus tegelikult välja näeb? Microsofti sõnul vähendab DirectX 12 CPU üldkulusid kuni 50 protsenti ja parandab GPU jõudlust kuni 20 protsenti. Kuigi need on mõned olulised täiustused, ei tähenda see, et näete samu tulemusi.

Miks pole DirextX 11-lt DirectX 12-le üleminek lihtne?

DirectX 11 ilmus esmakordselt Windows Vista jaoks 27. oktoobril 2009. Seega, kui DirectX 12 järgneb 2015. aastal, on see kuueaastane vahe DirectX 11 ja DirectX 12 vahel. Selle aja jooksul on DirectX 11 abil välja töötatud tuhandeid mänge. Kahjuks on DirectX 11-lt DirectX 12-le üleminek kõike muud kui lihtne.

DirectX 11 on nn kõrgetasemeline API. Lihtsamalt öeldes on arendajatel lihtsam töötada kõrgetasemeliste API-dega. Tulemuseks on stabiilsed, lihvitud ja mängitavad mängud. Teisest küljest on DirectX 12 madala tasemega API ja see on DirectX 11-ga võrreldes erinev metsaline. Kuigi see võimaldab arendajatel optimeerimist detailsel tasemel täpsustada, nõuab see ka laialdasi teadmisi.

Sellest hoolimata võib DirectX 12-s arendatud mäng olla halvema jõudlusega sõltuvalt arendaja teadmistest API kohta. DirectX 12-ga on kaasas täiustusi, kuid see sõltub tegelikult sellest, kui hästi arendaja seda rakendada suudab. Sel põhjusel otsustavad paljud arendajad jääda kõrgetasemeliste API-de, näiteks DirectX 11 juurde.

Kas peaksite valima DirectX 11 või DirectX 12?

Vastus sõltub mõnest asjast, näiteks sellest, millist mängu proovite käivitada. Näiteks Guild Wars 2 töötab DirectX 11 peal. Isegi kui teie operatsioonisüsteem ja riistvara kasutavad DirectX 12, ei saa te Guild Wars 2-s DirectX 11 valida, kuna mäng seda ei toeta. See on täielikult arendaja ArenaNeti otsus.

Pildi krediit: Martin Kerstein/Guild Wars 2

Uskuge või mitte, kulus üheksa aastat, enne kui ArenaNet läks DirectX 9-lt DirectX 11-le üle. Siiski on mõned mängud, mis toetavad nii DirectX 11 kui ka DirectX 12. Fortnite (loe meie Fortnite'i petuleht), näiteks. Mängu seadete kaudu saavad kasutajad mõlema versiooni vahel vahetada. Kokkuvõtteks võib öelda, et mitte kõik mängud ei toeta nii DirectX 11 kui ka DirectX 12. Need, kes seda teevad, vahetage nende kahe vahel ja määrake ise, milline töötab teie arvutis paremini.

See, kas saate valida DirectX 11 ja DirectX 12 vahel, sõltub ka teie riistvarast. Peaaegu iga kaasaegne GPU toetab DirectX 12, kuid seda ei saa öelda vanemate GPU-de kohta, nagu Radeon HD 4870. See 2008. aastal välja antud GPU toetab ainult kuni DirectX 10. See tähendab, et see ei suuda käivitada enamikku kaasaegseid mänge, mis töötavad DirectX 11 ja DirectX 12 abil.

Kas DirectX 12 on teie jaoks õige valik?

Kokkuvõttes ei ole DirectX 11-lt DirectX 12-le üleminek nii must-valge, kui see kõlab. See sõltub paljudest teguritest, nagu riistvara, tarkvara, operatsioonisüsteem ja kas mäng üldse toetab mõlemat. Neid kõiki tuleb enne otsuse tegemist kaaluda ja see kehtib tõenäoliselt ka DirectX-i tulevaste põlvkondade kohta.