Mga Tutorial

▷ Directx 12 vs bulkan: ang labanan para sa pinakamahusay na graphics engine?

Talaan ng mga Nilalaman:

Anonim

Sa kasalukuyan para sa mundo ng PC mayroong dalawang first-class na mga graphic na API na pinamamahalaan ang merkado na may awtoridad. Para sa kadahilanang ito ay dinala namin sa iyo ang paghahambing ng DirectX 12 Vs Vulkan.

Parehong may isang mahabang kasaysayan sa likod ng mga ito at isang buong kawan ng mga tagapagtanggol at detractors. Ngayon makikita natin ang mga pagkakaiba-iba, ang mga susi ng bawat isa at susubukan naming mag-alok ng ilang mga ilaw sa kanila.

Indeks ng nilalaman

Mababang antas ng graphic na API at "overhead ng driver"

Ang API ay nakatayo sa "application programming interface" at isang hanay ng mga subroutines na maaaring magamit ng isang developer na kasama rin ang mga protocol ng komunikasyon at mga utility na nagpapadali sa pag-unlad ng software. Maaari naming mahanap ang mga ito para sa halos lahat at karaniwan para sa bawat service provider na magkaroon ng ganitong uri ng tulong upang maipatupad ang kanilang mga system sa isang simple at naa-access na paraan.

Ang mga mababang antas ng API ay mas mahusay na bentahe ng mga mapagkukunan ng GPU, na nagpapahinga sa CPU, ngunit nagagawa ring mas samantalahin ang mga processors na multi-core na mayroon tayo ngayon.

Parehong DirectX 12 at Vulkan 1.1 ay mga API na nakatuon sa pagbuo ng mga laro at aplikasyon na nangangailangan ng tulong ng mga modernong graphics engine. Kasabay nito, ang mga ito ay sinusuportahan ng mga driver ng pinakamahalagang graphic chipset designer at sa gayon ay isang mabilis at matipid na paraan upang ma-access ang kanilang mga tampok nang hindi kinakailangang malaman ang kanilang disenyo sa isang napakababang antas.

Ang isang mababang antas ng API, tulad ng mga ito, ay nagbibigay-daan sa pagtatrabaho sa hardware na may isang napaka-magaan na layer ng interpretasyon, na nagpapahintulot sa developer na mas mahusay na samantalahin ang hardware, nakakamit ang mas mahusay na mga resulta sa mga tuntunin ng pagganap at kahusayan, pinapayagan din ang iba pang mga subsystem na mapalaya ng karagdagang pag-load. Sa mundo ng PC, o mga mobile phone, hindi gaanong nakasalalay sa pangkalahatang CPU ng system.

Ang dalawang mga API na pag-uusapan natin ngayon ay maaaring isaalang-alang ang mga mababang antas ng API at ang parehong mga pag-unlad ay nagresulta sa isang mas kaunti at hindi gaanong pag-asa sa CPU ng system habang nakamit ang mas mahusay na mga resulta sa antas ng pagganap at pag-access sa mas maraming mga grapikong pag-andar. advanced. Ang mga ito ay dalawang live na API na tumatanggap ng mga update taun-taon upang mapanatili ang mga ito ayon sa inaasahan ng pangkalahatang publiko at mga developer.

Ang mga mababang antas ng API ay may direktang epekto sa isa pang konsepto ng computational na alam natin bilang "overhead ng driver", kung saan, sa madaling salita, ang pangalawang mapagkukunan na kailangan nating isagawa ang ilang mga uri ng operasyon sa isang computer. Sa kaso ng mga graphic na tumutukoy ito sa mga labis na mapagkukunan na kinakailangan ng graphics card na gawin ang trabaho nito at sa kasong ito ito ay panimula sa mga oras ng proseso ng CPU. Ang mga mababang antas ng API na ilalarawan namin dito bawasan ang dependency at sa katunayan ang dependency ay may posibilidad na 0.

Microsoft DirectX

Ang DirectX ay lumitaw bilang isang pangangailangan upang i-standardize ang iba't ibang mga subsystem ng multimedia ng multimedia at ang kapalit ng WinG para sa Windows 3.1. Ito ay pinagtibay sa Windows 95 bilang isang add-on package at ang pangalawang bersyon nito, ang DirectX 2.0, ay naging isang pangunahing sangkap ng Windows 95 OSR2.

Sa loob ng DirectX ay nakakahanap kami ng maraming independiyenteng mga API tulad ng Direct3D, na talagang ang pinag-uusapan, DirectDraw, DirectMusic, DirectPlay at DirectSound. DirectX ay isang paraan upang pangalanan ang mga karaniwang pagsulong sa lahat ng mga sub-API. Ito ay isang API para sa Windows ngunit ginagamit din ito para sa pagbuo ng mga laro sa mga Xbox console upang maaari nating isaalang-alang ito ng isang Multiplatform API ngunit hindi libre, tulad ng kaso sa Vulkan.

Ang DirectX 12, ang pinakabagong bersyon, ay nakasama sa amin mula noong 2014 at hindi pa nakatayo at ilang buwan na ang nakakalipas nakatanggap ito ng mga mahahalagang pagpapabuti tulad ng Direct RayTracing (DXR) subroutine na kasama sa 1809 october na bersyon ng pag-update ng Windows 10.

Ang mga mababang antas ng API tulad ng DirectX 12 ay may pangunahing kalamangan, na kung saan ay ang pagbawas ng overhead ng driver. Ang mga programmer ngayon ay binigyan ng kapangyarihan upang magdisenyo kung paano kumilos ang GPU sa kanilang mga programa at mas mahusay na mapamamahalaan ang mga mapagkukunan ng GPU, lalo na sa pamamagitan ng pagsamantala sa proseso ng pagkakatulad. Kasama dito ang mas mahusay na suporta para sa maraming mga GPU sa isang system at kahit na hindi sila mula sa parehong tagagawa.

Maaari silang magsagawa ng iba't ibang mga uri ng operasyon, karaniwang "integer" o "floating point" na sinasamantala ang mga kakayahan ng katugmang graphics at naghahati din ng mga kumplikadong operasyon sa mga mas simple sa pamamagitan ng pagproseso ng mga ito nang magkatulad sa mga mas malaking bus. Ang isang mabuting halimbawa ay kung paano maipoproseso ngayon ng AMD o Nvidia ang mga operasyon ng 16-Bit sa kanilang mga 32-Bit bus, higit na mapabuti ang kahusayan ng kanilang mga graphics.

Dinala ng API na ito ang kahusayan ng paggamit ng isang console GPU na mas malapit, kung saan alam ng mga developer ang perpektong magagamit na hardware, hanggang sa heterogenous ecosystem na bumubuo ng isang PC na may walang katapusang iba't ibang mga posibilidad ng hardware.

Magagamit na ang DirectX 12, sa pamamagitan ng sorpresa, para sa Windows 7 at Windows 10 at kahit na hindi ito direkta na katugma sa Xbox One, ang totoo ay halos 90% ng pag-andar nito ay ginagamit para sa PC, ang mga pagkakaiba ay minimal at na pinahintulutan mabilis na pagbagay ng mga developer ng kanilang mga laro sa PC para sa Xbox One at kabaligtaran.

Vulkan ng Khronos

Ang Vulkan ay ang ebolusyon sa mababang antas ng OpenGL na API at suportado ng Khronos Corporation. Sa mundo ng PC mayroon silang pangalawang papel sa DirectX 12 ngunit ang iba't ibang mga adaptasyon sa iba't ibang mga platform, tulad ng Android, ay ginawa itong isang benchmark sa graphics para sa kadaliang kumilos. Tugma din ito sa Linux na ang mahusay na alternatibo ng laro sa mga libreng sistema.

Ang mahusay na kabutihan nito ay ang mahusay na kahilera sa pagpoproseso ng kapasidad, pagiging lubos na mabisa sa mga modernong CPU at GPUs, pagkamit ng mababang paggamit ng dating at isang mahusay na paggamit ng hardware ng huli. Espesyal na idinisenyo upang samantalahin ang mga prosesor ng multi-core na nakakamit ng isang mahusay na pamamahagi ng pag-load sa ganitong uri ng mga processors, sa katunayan, ito ay mas mahusay para sa mas maraming mga cores na maibigay namin.

Ang kasaysayan ng Vulkan ay nag- date pabalik sa isang taon pagkatapos ng DirectX 12 at Khronos, na isang kumpanya na hindi kumikita, ay pinapanatili ito nang madalas o mas madalas kaysa sa ginagawa ng Microsoft sa sarili nitong API. Ito ay batay sa API Mantle na AMD na binuo para sa arkitektura ng GCN at iyon ay isa pang mababang antas ng API para sa isang nabawasan na "overhead driver". Ibinigay ng AMD ang mga pagpapaunlad nito sa Khronos at ito ang mga pundasyon ng isa sa pinakamahusay na mga graphical na API sa merkado.

Bilang karagdagan sa higit na mahusay na pagkakapareho, pinapayagan din ng disenyo na ito ang pag-precompilation ng mga pagpapatakbo ng shading sa GPU na maalis, na magkaroon ng higit na mga epekto at sa screen na may mas mataas na bilis ng paglo-load, bilang karagdagan sa isang mas detalyadong pagsasaayos ng kung paano ang mga proseso ng pag-proseso ng hardware o kung paano namin ma-access ang magagamit ang frame buffer. Tiyak na ang API para sa PC na pinakamalapit sa hardware mismo, mas mahusay kaysa sa DirectX 12.

Ipinakilala rin ng Vulkan ang mga pagpapabuti ng mababang antas ng API sa Android at iba pang mga platform.

Ang pinakabagong bersyon nito, ang Vulkan 1.1, na ipinakilala sa pagtatapos ng 2018 ay nagdaragdag ng mga mahalagang pagpapabuti tulad ng suporta sa HLSL, na alternatibo ng DirectX 12 sa pamamahala ng mga operasyon ng shader nang walang pag-iingat, mas mahusay na pagiging tugma sa DirectX 12 (sa maraming mga subroutines bukod sa mga graphics), malinaw na suporta para sa mga sistema ng Multi-GPU anuman ang tagagawa at, siyempre, suporta para sa RayTracing.

Mga kalakasan at kahinaan ng DirectX 12 kumpara sa Vulkan

Bilang karagdagan sa mga karaniwang tampok na inilarawan, tulad ng mas mahusay na paggamit ng hardware, mas maraming kontrol nito at mas mahusay na paggamit ng paralelisasyon ng parehong GPU at CPU, ang dalawang API ay nagdaragdag din ng posibilidad na magsagawa ng pangkalahatang mga operasyon sa pagkalkula sa mga graphics chips na na katugma. Pinapayagan nito ang mga katugmang graphics engine, maraming henerasyon na, upang magawa ang kumplikadong mga pagpapatakbo ng matematika na maaaring samantalahin ng mga programa ng lahat ng uri, kabilang ang mga walang mga sangkap na graphic.

Sa mga laro maaari rin silang magamit para sa lalong mahalagang pangalawang operasyon tulad ng pagkalkula ng makatotohanang pisika, artipisyal na intelektwal, mga posisyong tunog, atbp.

Ang parehong mga API ay may malaking suporta sa pamamagitan ng mahusay na mga graphics, kapwa ang AMD at Nvidia ay nagsisikap na mag-alok sa mga API na ito ng naaangkop na driver upang makamit ang parehong nag-aalok ng kanilang mga gumagamit ng pinakabagong mga pagpapabuti at palakasin ang pagganap at katatagan ng mga laro na gumagamit ng isa o ibang API.

Ang "driver ng overhead" ng kapwa ay napakababa, sa katunayan, tulad ng makikita mo sa aming mga pagsubok ay bahagya ang anumang pagkakaiba sa pagitan nila, na kung saan ay isang tanda din ng mahalagang pag-optimize ng mga driver ng parehong mga tagagawa.

Limitado namin ang framerate sa 120FPS para sa isang demo ng Driver Overhead. Sa Dota 2 na pagkonsumo ng CPU ay malaki ang nabawasan sa parehong FPS.

Ang mas malinaw na pagkakaiba ay ang Vulkan ay medyo hindi umaasa sa CPU, na may mas mababang average na pagkonsumo at na ito ay mas bukas sa iba't ibang mga platform, kasama ang Windows at Linux at ang homogenization nito sa OpenGL ES, na kung saan ay ang mobile na bersyon nito, ito ay papunta sa karagdagang paraan ng pag-iisa ng mga platform kung saan ito gumagalaw.

Ang DirectX 12 ay pinapaboran ang mahusay na pagtanggap ng mga nag-develop, na tila matatagpuan sa API na ito ang perpektong ekosistema upang mabawasan ang kanilang mga gastos dahil mayroon din itong isang mahusay na pagsasama sa mga frameworks na laganap tulad ng.NET Framework kung saan isinama ito sa isang libong kababalaghan na may kaunting pagkawala ng pagganap.

Mga pagkakaiba sa pagganap sa mga laro na may dobleng API

Habang ipinapakita ang kilusan sa pamamagitan ng paglalakad, nagsagawa kami ng ilang mga pagsubok sa pagganap sa iba't ibang mga laro at benchmark na may kakayahang magamit ang dalawang API para sa pagpapatupad.

Pagsubok sa Overhead ng 3DMark Driver. Ang mga resulta sa milyon-milyong mga kahilingan, higit pa ay mas mahusay.

Ashes ng singulity. Ang mga resulta sa FPS, higit pa ay mas mahusay.

Kakaibang Brigade. Ang mga resulta sa FPS, higit pa ay mas mahusay.

Ibinubuod namin ang pinakamahusay na mga gabay sa hardware na dapat ka interesado:

  • Pinakamahusay na mga processors sa merkado Pinakamahusay na mga motherboards sa merkado Pinakamahusay na memorya ng RAM sa merkado Pinakamahusay na mga graphics card sa merkado Pinakamahusay na SSD sa merkado Mas mahusay na mga tsasis o PC kaso Mas mahusay na mga power supply Mas mahusay na heatsinks at likidong cooler

Tulad ng nakikita mo, ang mga resulta ay kahit na nakikita namin ang mga pagkakaiba sa pagitan ng mga programa para sa at laban sa isa at sa iba pa. Ito ay nag-iiwan sa amin ng tanong kung alin ang mas mahusay at malinaw ang sagot, nakasalalay ito sa programa at kung paano nalalaman o nais na samantalahin ng developer nito ang mga pakinabang nito. Ang nananatiling isipin na sa bawat laro ay gagamitin nang wasto ng mga developer ang API na pinakamahusay na sinamantala ang mga pakinabang ng aming mga graphics, bagaman malinaw na ang parehong mga pagpipilian ay tila higit sa karampatang. Ano ang tingin mo sa aming artikulo sa Directx 12 vs Vulkan ? Nais naming malaman ang iyong opinyon!

Mga Tutorial

Pagpili ng editor

Back to top button