Pamācības

▷ Directx 12 vs vulkan: cīņa par labāko grafikas motoru?

Satura rādītājs:

Anonim

Pašlaik personālajā datorā ir divas pirmās klases grafiskās API, kas ar autoritāti pārvalda tirgu. Šī iemesla dēļ mēs piedāvājam jums DirectX 12 Vs Vulkan salīdzinājumu.

Abiem aiz muguras ir sena vēsture un vesela virkne aizstāvju un iznīcinātāju. Šodien mēs redzēsim atšķirības, katras atslēgas un mēģināsim tās nedaudz atspoguļot.

Satura rādītājs

Zema līmeņa grafiskā API un “Driver overhead”

API nozīmē "lietojumprogrammu saskarne" un ir apakšprogrammu kopa, ko var izmantot izstrādātājs, ieskaitot arī komunikācijas protokolus un utilītas, kas atvieglo programmatūras izstrādi. Mēs tos varam atrast gandrīz visam, un katram pakalpojumu sniedzējam ir ierasts, ka šāda veida palīdzība viņu sistēmu ieviešanai ir vienkārša un pieejama.

Zema līmeņa API labāk izmanto GPU resursus, atbrīvojot CPU, bet arī spēj labāk izmantot šodien izmantotos daudzkodolu procesorus.

Gan DirectX 12, gan Vulkan 1.1 ir API, kas orientētas uz tādu spēļu un lietojumprogrammu attīstību, kurām nepieciešama mūsdienu grafikas dzinēju palīdzība. Tajā pašā laikā tās ir API, kuras atbalsta svarīgāko grafisko mikroshēmojumu dizaineru draiveri, un tāpēc ātrs un ekonomisks veids, kā piekļūt to funkcijām, nezinot to dizainu ļoti zemā līmenī.

Zema līmeņa API, piemēram, šie, ļauj strādāt ar aparatūru ar ļoti vieglu interpretācijas slāni, kas ļauj izstrādātājam labāk izmantot aparatūras priekšrocības, panākot labākus rezultātus veiktspējas un efektivitātes ziņā, ļaujot arī citām apakšsistēmām atbrīvot no papildu slodzes. Datoru vai mobilo tālruņu pasaulē tas ir mazāk atkarīgs no vispārējā sistēmas centrālā procesora.

Divas API, par kurām šodien runāsim, var uzskatīt par zema līmeņa API, un abas izstrādes ir radījušas arvien mazāku atkarību no sistēmas CPU, vienlaikus panākot labākus rezultātus veiktspējas līmenī un piekļuvi vairāk grafiskām funkcijām. uzlabotas. Tās ir divas aktīvās API, kuras katru gadu saņem atjauninājumus, lai nodrošinātu to atbilstību plašai sabiedrībai un izstrādātājiem.

Zema līmeņa API tieši ietekmē citu skaitļošanas koncepciju, ko mēs zinām kā “draivera pieskaitāmās izmaksas”, kas īsumā ir sekundārie resursi, kas mums nepieciešami, lai datorā veiktu noteikta veida operācijas. Grafikas gadījumā tas attiecas uz papildu resursiem, kas grafikas kartei nepieciešami, lai veiktu savu darbu, un šajā gadījumā tas principā ir centrālais CPU procesa laiks. Zema līmeņa API, ko mēs šeit aprakstīsim, samazina šo atkarību, un faktiski atkarībai ir tendence uz 0.

Microsoft DirectX

DirectX rodas kā nepieciešamība standartizēt dažādas Windows multivides apakšsistēmas, un tas aizstāj WinG operētājsistēmai Windows 3.1. Tas tiek pieņemts operētājsistēmā Windows 95 kā papildinājumu pakotne, un tā otrā versija DirectX 2.0 kļūst par būtisku Windows 95 OSR2 sastāvdaļu.

DirectX ietvaros mēs atrodam vairākas neatkarīgas API, piemēram, Direct3D, par kuru patiešām tiek runāts, DirectDraw, DirectMusic, DirectPlay un DirectSound. DirectX bija veids, kā nosaukt kopīgos sasniegumus visās šajās sub-API. Tā ir API operētājsistēmai Windows, bet to izmanto arī spēļu izstrādei tās Xbox konsolēs, tāpēc mēs to varam uzskatīt par Multiplatform API, bet ne par brīvu, kā tas ir Vulkan gadījumā.

Tā jaunākā versija DirectX 12 ir bijusi kopā ar mums kopš 2014. gada un nav stāvējusi uz vietas un pirms dažiem mēnešiem saņēmusi svarīgus uzlabojumus, piemēram, apakšprogrammu Direct Ray Tracing (DXR), kas tika iekļauta Windows 10 1809. gada oktobra atjaunināšanas versijā.

Zema līmeņa API, piemēram, DirectX 12, ir būtiska priekšrocība, proti, draivera samazināšana. Programmētāji tagad ir pilnvaroti noformēt to, kā GPU izturēsies savās programmās, un kā labāk pārvaldīt GPU resursus, īpaši izmantojot procesa paralēles priekšrocības. Tas ietver labāku atbalstu vairākiem GPU vienā sistēmā un pat ja tie nav no tā paša ražotāja.

Viņi var veikt dažāda veida operācijas, parasti "vesels skaitlis" vai "peldošs komats", izmantojot saderīgās grafikas iespējas, kā arī sadalot sarežģītas operācijas vienkāršākās, apstrādājot tās paralēli tajos lielākajos autobusos. Labs piemērs ir tas, kā AMD vai Nvidia tagad var apstrādāt 16 bitu operācijas savos 32 bitu autobusos, ievērojami uzlabojot viņu grafikas efektivitāti.

Šī API ir tuvinājusi konsoles GPU izmantošanas efektivitāti, kur izstrādātāji lieliski zina pieejamo aparatūru līdz heterogēnai ekosistēmai, kas veido datoru ar bezgalīgi dažādām aparatūras iespējām.

Pašlaik DirectX 12, pārsteidzoši, ir pieejams operētājsistēmām Windows 7 un Windows 10 un, kaut arī tas nav tieši saderīgs ar Xbox One, patiesība ir tāda, ka praktiski 90% no tā funkcionalitātes tiek izmantoti personālajiem datoriem, atšķirības ir minimālas, un tas ļāva izstrādātāji ātri pielāgo savas PC spēles Xbox One un otrādi.

Vulkan no Khronos

Vulkan ir OpenGL zema līmeņa API attīstība, un to atbalsta Khronos Corporation. Personālo datoru pasaulē viņiem ir sekundāra loma salīdzinājumā ar DirectX 12, taču atšķirīgie pielāgojumi dažādām platformām, piemēram, Android, ir padarījuši to par etalonu mobilitātes grafikā. Tas ir saderīgs arī ar Linux, kas ir lieliska spēles alternatīva bezmaksas sistēmās.

Tā lielais pluss ir tā lielā paralēlās apstrādes jauda, ​​kas ir ārkārtīgi efektīva mūsdienu procesoros un GPU, panākot zemu pirmā lietojumu un plašu pēdējās aparatūras izmantošanu. Tas ir īpaši izstrādāts, lai izmantotu daudzkodolu procesoru priekšrocības, panākot lielisku slodzes sadalījumu šāda veida procesoros, patiesībā tas ir tik daudz efektīvāks, jo vairāk kodolu mēs varam nodrošināt.

Vulkan vēsture sākas gadu pēc tam, kad DirectX 12 un Khronos, kas ir bezpeļņas uzņēmums, uztur to tikpat bieži vai biežāk nekā Microsoft to dara ar savu API. Tas ir balstīts uz API mantiju, kuru AMD izstrādāja savai GCN arhitektūrai, un tā bija vēl viena zema līmeņa API samazināta “pieskaitāmā draivera” vajadzībām. AMD ziedoja savus sasniegumus Khronos, un tie ir viena no labākajiem grafiskajiem API tirgū pamatā.

Papildus augstākajai paralēlei, šī konstrukcija ļauj arī novērst GPU ēnojuma operāciju iepriekšēju kompilāciju, tai var būt vairāk efektu un ekrānā ar lielāku ielādes ātrumu, turklāt detalizētāk pielāgojot, kā aparatūra apstrādā operācijas vai kā mēs piekļūstam pieejams kadru buferis. Tas, protams, ir personālajai personālajai programmai paredzētā API, kas ir vistuvāk aparatūrai, pat labāk nekā DirectX 12.

Vulkan arī ievieš zema līmeņa API uzlabojumus Android un citās platformās.

Tās jaunākā versija Vulkan 1.1, kas tika ieviesta 2018. gada beigās, pievieno svarīgus uzlabojumus, piemēram, HLSL atbalstu, kas ir DirectX 12 alternatīva shader operāciju pārvaldībai bez iepriekšējas kompilācijas, labāka savietojamība ar DirectX 12 (daudzām apakšprogrammām izņemot grafiku), izteikts atbalsts daudz GPU sistēmām neatkarīgi no ražotāja un, protams, atbalsts RayTracing.

DirectX 12 un Vulkan stiprās un vājās puses

Papildus jau aprakstītajām kopīgajām iezīmēm, piemēram, labāka aparatūras izmantošana, lielāka tās kontrole un labāka GPU un CPU paralēles izmantošana, šīs divas API pievieno arī iespēju veikt vispārīgas aprēķina operācijas ar grafikas mikroshēmām ar kas ir savietojami. Tas ļauj jau vairākas paaudzes saderīgiem grafikas dzinējiem veikt sarežģītas matemātiskas operācijas, kuras var izmantot visu veidu programmas, ieskaitot tās, kurās nav grafisko komponentu.

Spēlēs tos var izmantot arī arvien svarīgākām sekundārām operācijām, piemēram, reālistiskas fizikas aprēķiniem, mākslīgajam intelektam, pozicionāliem skaņas efektiem utt.

Abām API ir liels grafikas atbalsts, gan AMD, gan Nvidia cenšas piedāvāt šīm API atbilstošus draiverus, lai panāktu, ka abi piedāvā saviem lietotājiem jaunākos uzlabojumus un stiprina to spēļu veiktspēju un stabilitāti, kuras izmanto vienu vai citu API.

Abu vadītāju "virs galvas" faktiski ir ļoti maz, kā jūs redzēsit mūsu testos, starp tiem gandrīz nav atšķirību, kas arī liecina par abu ražotāju vadītāju būtisko optimizāciju.

Mēs esam ierobežojuši kadru ātrumu līdz 120 kadriem sekundē, lai demonstrētu Driver Overhead. Dota 2 centrālo procesoru patēriņš ir ievērojami samazināts ar to pašu FPS.

Vienīgā acīmredzamākā atšķirība ir tā, ka Vulkan ir nedaudz mazāka atkarība no CPU, ar zemāku vidējo patēriņu un ka tas ir arī daudz atvērtāks dažādām platformām, ieskaitot Windows un Linux, un tās homogenizēšana ar OpenGL ES, kas ir tā mobilā versija, tas ir ceļā, vēl vairāk apvienojot platformas, uz kurām tas pārvietojas.

Par labu DirectX 12 atbalsta izstrādātāji, kuri, šķiet, šajā API atrod ideālu ekosistēmu, lai samazinātu izmaksas, jo tai ir pat lieliska integrācija tik plaši izplatītos ietvaros kā.NET Framework, kur tā integrējas ar tūkstoš brīnumiem. ar nelielu veiktspējas zaudēšanu.

Veiktspējas atšķirības spēlēs ar dubultu API

Tā kā kustību demonstrē staigāšana, mēs esam veikuši dažus veiktspējas testus dažādās spēlēs un etalonus, kuriem ir iespēja izmantot šīs divas API izpildīšanai.

3DMark vadītāja gaisvadu pārbaude. Rezultāti miljonos pieprasījumu, vairāk ir labāks.

Vienatnes pelni. Rezultāti FPS, vairāk ir labāki.

Dīvainā brigāde. Rezultāti FPS, vairāk ir labāki.

Mēs apkopojam labākos aparatūras ceļvežus, kuriem vajadzētu jūs interesēt:

  • Labākie procesori tirgū Labākās mātesplates tirgū Labākās RAM atmiņas tirgū Labākās grafikas kartes tirgū Labākie tirgū esošie SSD diski Labāki šasijas vai datoru korpusi Labāki barošanas bloki Labākas radiatori un šķidruma dzesētāji

Kā redzat, rezultāti ir vienmērīgi, un mēs redzam atšķirības starp programmām par un pret vienu un otru. Tas mums liek jautāt, kurš ir labāks un atbilde ir skaidra. Tas ir atkarīgs no programmas un no tā, kā tās izstrādātājs zina vai vēlas izmantot savas priekšrocības. Atliek domāt, ka katrā spēlē izstrādātāji precīzi izmantos API, kas vislabāk izmanto mūsu grafikas priekšrocības, lai gan ir skaidrs, ka abas iespējas šķiet vairāk nekā kompetentas. Ko jūs domājāt par mūsu rakstu par Directx 12 vs Vulkan ? Mēs vēlamies uzzināt jūsu viedokli!

Pamācības

Izvēle redaktors

Back to top button