DirectX 12 tika izlaists kopā ar Windows 10 2015. gadā. Ar savu izlaišanu Microsoft DirectX 12 ievadīja jaunu ēru spēlētājiem un spēļu izstrādātājiem. DirectX 12, kas spēj samazināt centrālā procesora slodzi, vienlaikus uzlabojot GPU veiktspēju, ātri ieguva savu vārdu.
Tomēr vai veiktspējas palielināšana tiešām ir tikpat vienkārša kā pārslēgšanās no DirectX 11 uz DirectX 12? Noskaidrosim, kādas ir atšķirības starp DirectX 11 un 12.
Kas ir Microsoft DirectX?
Kā paskaidrots mūsu pārskats par Microsoft DirectX, DirectX ir API kolekcija, ko izmanto ar multividi saistīto uzdevumu apstrādei. Tas ietver spēļu programmēšanu uz Microsoft balstītām platformām, piemēram, Windows un Xbox. Lai sniegtu kādu kontekstu, īsi parunāsim par API.
Lietojumprogrammu saskarne (API) ļauj divām vai vairākām datorprogrammām sazināties savā starpā, par ko mēs runājam mūsu pārskats par API
. Padomājiet par to kā par telefonu. Ja jūsu mamma nosūtīs jums īsziņu ar pārtikas preču sarakstu, jūsu tālrunis saņems šos datus un parādīs tos jūsu vietā. Tas būtībā ir API.Kādas ir atšķirības starp DirectX 11 un DirectX 12?
Tātad, kādas ir atšķirības starp DirectX 11 un DirectX 12? Vienkārši sakot, DirectX 12 ir jaunākā DirectX versija. Viena no pamanāmākajām atšķirībām starp abiem ir tas, kā tie mijiedarbojas ar jūsu aparatūru. Lielākā daļa spēļu, kas izstrādātas ar DirectX 11, izmanto tikai divas līdz četras CPU kodoli. Viens no šiem kodoliem parasti ir paredzēts, lai norādītu GPU, kas jādara.
Pēc tam spēle izmanto atlikušos kodolus, lai apstrādātu dažādus CPU intensīvus iestatījumus, piemēram, spēles daļiņas vai zīmēšanas attālumu. No otras puses, DirectX 12 sadala CPU darba slodzi vairākos kodolos, kā arī ļauj katram kodolam vienlaikus sazināties ar GPU.
DirectX 12 komplektācijā ir iekļauti arī daži eleganti zvani un svilpes. Tas ietver asinhrono skaitļošanu un konveijera stāvokļa objektus (PSO). Asinhronā skaitļošana palielina GPU izmantošanu, ļaujot vairākām darba slodzēm strādāt paralēli. Tas būtībā atraisa visu jūsu GPU potenciālu.
Papildus grafikas renderēšanai jūsu GPU ir atbildīgs par dažādu citu uzdevumu veikšanu, piemēram, mašīnmācīšanās algoritmu izpildi. Izmantojot DirectX 11, GPU var veikt tikai vienu no šiem uzdevumiem vienlaikus un noteiktā secībā. Ja tas notiek, veiktspēja samazinās, jo netiek izmantoti visi jūsu GPU resursi.
Padomājiet par to kā par viesmīli restorānā. Kad viesmīlis pirmo reizi pieņem jūsu pasūtījumu, viņš jautā, ko jūs vispirms vēlētos dzert. Kad saņemat dzērienus, viņi jums jautā, ko jūs vēlētos pamatēdienam. Jūsu pasūtījums tiek veikts pakāpeniski. Viesmīlis jums nejautās, ko jūs vēlētos desertā, pirms esat paēdis savu pamatēdienu. Lai gan tas ir efektīvs, tas nav tik efektīvs kā varētu būt.
Datorā katrs no viesmīļa uzdevumiem tiktu veikts ar citu GPU resursu. Kamēr nesaņemsiet savu dzērienu, GPU resursi, kas nepieciešami galvenā ēdiena pasūtījuma veikšanai, būs dīkstāvē. Izmantojot DirectX 12 asinhrono skaitļošanu, viesmīlis varētu pieņemt jūsu pasūtījumu uzreiz kā ātrās ēdināšanas ķēdē. Tas maksimāli palielina GPU izmantošanu un uzlabo jūsu spēļu veiktspēju.
DirectX 12 ieviesa arī PSO. Izmantojot DirectX 11, kad spēles ģeometrija tiek iesniegta GPU uz tiek renderēts, par tā interpretāciju un renderēšanu ir atbildīgi dažādi aparatūras iestatījumi datus. Tas tiek dēvēts par grafikas cauruļvadu, un tā ir datu ievades un izvades plūsma, kas notiek, kad jūsu GPU renderē kadrus. Tomēr DirectX 11 grafikas cauruļvads nav ideāls.
Šajā konveijerā ir ietverta dažādu stāvokļu kolekcija, tostarp rastrizācijas stāvoklis, sajaukšanas stāvoklis un dziļuma trafareta stāvoklis, kā arī citi komponenti. DirectX 11 starp šiem dažādajiem stāvokļiem pastāv atkarības. Rezultātā vienu stāvokli nevar pabeigt, kamēr nav definēts iepriekšējais stāvoklis. Tas samazina GPU izmantošanu un palielina CPU pieskaitāmās izmaksas uz veiktspējas rēķina.
Lai to apietu, DirectX 12 ieviesa PSO, kas ir objekti, kas apraksta visa grafikas cauruļvada stāvokli. PSO ir kā pudele, kurā ir dažādi stāvokļi un komponenti, kas nepieciešami attēla izveidošanai. Tas ļauj GPU iepriekš apstrādāt katru atkarīgo stāvokli, nevis nepārtraukti pārrēķināt stāvokļus, pamatojoties uz pašreizējo grafikas cauruļvadu.
Tas ievērojami samazina DirectX 11 pieejamās CPU izmaksas un uzlabo veiktspēju. Tātad, kā šī atšķirība patiesībā izskatās? Kā norāda Microsoft, DirectX 12 samazina CPU pieskaitāmās izmaksas līdz pat 50 procentiem un uzlabo GPU veiktspēju pat par 20 procentiem. Lai gan tie ir daži būtiski uzlabojumi, tas nenozīmē, ka jūs redzēsit tādus pašus rezultātus.
Kāpēc pārslēgšanās no DirextX 11 uz DirectX 12 nav vienkārša?
DirectX 11 pirmo reizi tika izlaists operētājsistēmai Windows Vista 2009. gada 27. oktobrī. Tā kā 2015. gadā sekos DirectX 12, starp DirectX 11 un DirectX 12 ir sešu gadu starpība. Šajā laikā tūkstošiem spēļu ir izstrādātas, izmantojot DirectX 11. Diemžēl pāreja no DirectX 11 uz DirectX 12 nav vienkārša.
DirectX 11 ir tā sauktā augsta līmeņa API. Vienkārši sakot, izstrādātājiem ir vieglāk strādāt ar augsta līmeņa API. Rezultāts ir stabilas, noslīpētas un spēlējamas spēles. No otras puses, DirectX 12 ir zema līmeņa API, un tas ir atšķirīgs zvērs salīdzinājumā ar DirectX 11. Lai gan tas ļauj izstrādātājiem precīzi noregulēt optimizāciju detalizētā līmenī, tā lietošanai ir nepieciešamas arī plašas zināšanas.
Tas nozīmē, ka spēle, kas izstrādāta DirectX 12, var beigties ar sliktāku veiktspēju atkarībā no izstrādātāja zināšanām par API. Ir uzlabojumi, kas nāk ar DirectX 12, taču tas tiešām ir atkarīgs no tā, cik labi izstrādātājs to var ieviest. Šī iemesla dēļ daudzi izstrādātāji izvēlas pieturēties pie augsta līmeņa API, piemēram, DirectX 11.
Vai jums vajadzētu izvēlēties DirectX 11 vai DirectX 12?
Atbilde ir atkarīga no dažām lietām, piemēram, no spēles, kuru mēģināt palaist. Piemēram, Guild Wars 2 darbojas uz DirectX 11. Pat ja jūsu operētājsistēma un aparatūra izmanto DirectX 12, jums nebūs iespējas Guild Wars 2 atlasīt DirectX 11, jo spēle to neatbalsta. Tas ir pilnībā izstrādātāja ArenaNet lēmums.
Ticiet vai nē, bija vajadzīgi deviņi gadi, līdz ArenaNet pārgāja no DirectX 9 uz DirectX 11. Tomēr ir dažas spēles, kas atbalsta gan DirectX 11, gan DirectX 12. Fortnite (lasīt mūsu Fortnite apkrāptu lapa), piemēram. Izmantojot spēles iestatījumus, lietotāji var pārslēgties starp abām versijām. Rezumējot, ne katra spēle atbalsta gan DirectX 11, gan DirectX 12. Tiem, kas to dara, pārslēdzieties starp abiem un paši nosakiet, kurš datorā darbojas labāk.
Tas, vai varat izvēlēties starp DirectX 11 un DirectX 12, arī būs atkarīgs no jūsu aparatūras. Gandrīz jebkurš mūsdienu GPU atbalstīs DirectX 12, taču to nevar teikt par vecākiem GPU, piemēram, Radeon HD 4870. Šis GPU, kas tika izlaists 2008. gadā, atbalsta tikai līdz DirectX 10. Tas nozīmē, ka tas nespēs palaist lielāko daļu moderno spēļu, kas darbojas, izmantojot DirectX 11 un DirectX 12.
Vai DirectX 12 ir jums piemērota izvēle?
Kopumā pāreja no DirectX 11 uz DirectX 12 nav tik melnbalta, kā izklausās. Tas ir atkarīgs no dažādiem faktoriem, piemēram, aparatūras, programmatūras, operētājsistēmas un tā, vai spēle vispār atbalsta abus. Tas viss ir jāņem vērā pirms lēmuma pieņemšanas, un tas, visticamāk, attieksies arī uz nākamajām DirectX paaudzēm.