Handledningar

▷ Directx 12 vs vulkan: kampen för den bästa grafikmotorn?

Innehållsförteckning:

Anonim

För närvarande för PC-världen finns det två förstklassiga grafiska API: er som hanterar marknaden med auktoritet. Av denna anledning ger vi dig DirectX 12 Vs Vulkan jämförelse.

Båda har en lång historia bakom sig och en hel horde av försvarare och förnekare. Idag kommer vi att se skillnaderna, nycklarna för var och en och vi kommer att försöka ge lite ljus på dem.

Innehållsindex

Grafisk API på låg nivå och "Driver overhead"

API står för "applikationsprogrammeringsgränssnitt" och är en uppsättning underrutiner som kan användas av en utvecklare som också innehåller kommunikationsprotokoll och verktyg som underlättar programvaruutveckling. Vi kan hitta dem för nästan allt och det är vanligt att varje tjänsteleverantör har denna typ av hjälp för att implementera sina system på ett enkelt och tillgängligt sätt.

Lågnivå-API: er utnyttjar GPU: s resurser bättre, vilket lindrar CPU: n, men kan också dra fördel av de multikärnprocessorer som vi har idag.

Både DirectX 12 och Vulkan 1.1 är API: er inriktade på utveckling av spel och applikationer som kräver hjälp av moderna grafikmotorer. Samtidigt är det API: er som stöds av drivrutinerna för de viktigaste grafiska chipsetdesignarna och därför ett snabbt och ekonomiskt sätt att komma åt deras funktioner utan att behöva känna till deras design på en mycket låg nivå.

Ett lågnivå API, som dessa, gör det möjligt att arbeta med hårdvaran med ett mycket lätt tolkningsskikt, vilket gör det möjligt för utvecklaren att utnyttja hårdvaran bättre, uppnå bättre resultat när det gäller prestanda och effektivitet och också frigöra andra delsystem för ytterligare belastning. I PC: s eller mobiltelefoner är det mindre beroende av systemets allmänna CPU.

De två API: erna som vi kommer att prata om idag kan betraktas som API: er på låg nivå och båda utvecklingen har resulterat i ett allt mindre beroende av systemets CPU, samtidigt som man har uppnått bättre resultat på prestandanivån och tillgång till mer grafiska funktioner. utposter. De är två live API: er som får uppdateringar varje år för att hålla dem i linje med vad allmänheten och utvecklare förväntar sig.

API: er på låg nivå har en direkt effekt på ett annat beräkningskoncept som vi känner som ”driver overhead”, vilket kort sagt är de sekundära resurserna som vi behöver för att utföra vissa typer av operationer på en dator. När det gäller grafik hänvisar det till de extra resurser som grafikkortet kräver för att utföra sitt jobb och i detta fall är det grundläggande CPU-processtider. De lågnivå API: er som vi kommer att beskriva här minskar detta beroende och faktiskt beroendet tenderar till 0.

Microsoft DirectX

DirectX uppstår som en nödvändighet för att standardisera olika Windows-multimedia-subsystem och är ersättare för WinG för Windows 3.1. Det antas i Windows 95 som ett tilläggspaket och dess andra version, DirectX 2.0, blir en grundläggande komponent i Windows 95 OSR2.

Inom DirectX hittar vi flera oberoende API: er som Direct3D, vilket verkligen är det i fråga, DirectDraw, DirectMusic, DirectPlay och DirectSound. DirectX var ett sätt att namnge vanliga framsteg i alla dessa sub-API: er. Det är ett API för Windows men det används också för utveckling av spel på sina Xbox-konsoler så att vi kan betrakta det som ett Multiplatform API men inte gratis, som är fallet med Vulkan.

DirectX 12, dess senaste version, har varit med oss ​​sedan 2014 och har inte stått stilla och för några månader sedan fick viktiga förbättringar, såsom Direct Ray Tracing (DXR) subroutine som ingick i uppdateringsversionen 1809 av oktober 10 av Windows 10.

Lågnivå-API: er som DirectX 12 har en grundfördel, vilket är minskningen av förarens overhead. Programmerare har nu befogenhet att utforma hur GPU kommer att uppträda i sina program och kan bättre hantera GPU-resurser, särskilt genom att dra fördel av processparallalisering. Detta inkluderar bättre stöd för flera GPU: er i ett system och även om de inte kommer från samma tillverkare.

De kan utföra olika typer av operationer, vanligtvis "heltal" eller "flytande punkt" genom att utnyttja kapaciteten hos den kompatibla grafiken och också dela upp komplexa operationer i enklare genom att bearbeta dem parallellt på de större bussarna. Ett bra exempel är hur AMD eller Nvidia nu kan bearbeta 16-bitars operationer på sina 32-bitarsbussar, vilket väsentligt förbättrar effektiviteten i deras grafik.

Detta API har gjort effektiviteten i användningen av en konsol GPU närmare, där utvecklarna vet perfekt den tillgängliga hårdvaran, upp till det heterogena ekosystemet som bildar en PC med oändliga olika hårdvarumöjligheter.

Just nu är DirectX 12 överraskande tillgängligt för Windows 7 och Windows 10 och även om det inte är direkt kompatibelt med Xbox One är sanningen att praktiskt taget 90% av dess funktionalitet används för PC, skillnaderna är minimala och det har tillåtit utvecklare snabba anpassningar av sina PC-spel för Xbox One och vice versa.

Vulkan av Khronos

Vulkan är utvecklingen till OpenGL: s lågnivå API och stöds av Khronos Corporation. I PC-världen har de en sekundär roll gentemot DirectX 12 men dess olika anpassningar till olika plattformar, till exempel Android, har gjort det till ett riktmärke i grafik för mobilitet. Det är också kompatibelt med att Linux är det stora alternativet för spel i fria system.

Dess stora dygd är dess stora parallella bearbetningskapacitet, eftersom den är extremt effektiv i moderna CPU och GPU: er, vilket uppnår låg användning av den förra och en stor användning av hårdvaran för den senare. Det är speciellt utformat för att dra fördel av processorer med flera kärnor för att uppnå en utmärkt belastningsfördelning i denna typ av processorer, i själva verket är den så mycket effektivare för de fler kärnorna vi kan erbjuda.

Vulkans historia går tillbaka till ett år efter DirectX 12 och Khronos, som är ett ideellt företag, underhåller det lika ofta eller oftare än Microsoft gör med sitt eget API. Det är baserat på API- manteln som AMD utvecklade för sin GCN- arkitektur och som var en annan API på låg nivå för en reducerad "overhead-drivrutin". AMD donerade sin utveckling till Khronos och dessa är grunden till en av de bästa grafiska API: erna på marknaden.

Förutom överlägsen parallellisering möjliggör denna design också att förkompileringen av skuggningsoperationer på GPU kan elimineras, kunna ha fler effekter och på skärmen med högre lasthastighet, förutom en mer detaljerad justering av hur hårdvaran bearbetar operationer eller hur vi får åtkomst rambuffert tillgänglig. Det är säkert API för PC som är närmast hårdvaran, ännu bättre än DirectX 12.

Vulkan introducerar också API-förbättringar på låg nivå på Android och andra plattformar.

Dess senaste version, Vulkan 1.1, som introducerades i slutet av 2018, lägger till viktiga förbättringar som HLSL-stöd, vilket är DirectX 12: s alternativ till att hantera shader-operationer utan behov av förkompilering, bättre kompatibilitet med DirectX 12 (till dess många subroutiner bortsett från grafiken), uttryckligt stöd för Multi-GPU-system oavsett tillverkare och givetvis stöd för RayTracing.

Styrkor och svagheter hos DirectX 12 vs Vulkan

Förutom de redan beskrivna vanliga funktionerna, såsom bättre användning av hårdvara, mer kontroll av den och bättre användning av parallellisering av både GPU och CPU, lägger dessa två API: er också till möjligheten att utföra allmänna beräkningsoperationer med grafikchips med som är kompatibla. Detta gör att kompatibla grafikmotorer, flera generationer redan, kan utföra komplexa matematiska operationer som kan utnyttjas av program av alla slag, inklusive sådana utan grafiska komponenter.

I spel kan de också användas för allt viktigare sekundära operationer som beräkning av realistisk fysik, konstgjord intelligens, positionella ljudeffekter etc.

Båda API: erna har stort stöd av storheterna i grafik, både AMD och Nvidia strävar efter att erbjuda dessa API: er lämpliga drivrutiner för att uppnå båda erbjuda sina användare de senaste förbättringarna och stärka prestanda och stabilitet för spel som använder en eller ett annat API.

Båda drivrutinerna är väldigt låga, i själva verket, som du ser i våra tester, finns det knappast några skillnader mellan dem, vilket också är ett tecken på den viktiga optimeringen av drivrutinerna för båda tillverkarna.

Vi har begränsat framerate till 120FPS för en demo av Driver Overhead. I Dota 2 reduceras CPU-förbrukningen väsentligt med samma FPS.

Den enda mer uppenbara skillnaden är att Vulkan har något mindre beroende av CPU, med lägre genomsnittlig förbrukning och att den också är mycket mer öppen för olika plattformar, inklusive Windows och Linux och dess homogenisering med OpenGL ES, som är dess mobilversion, det är på väg att ytterligare förena plattformarna som den rör sig på.

DirectX 12 har till förmån för den stora acceptansen av utvecklarna, som verkar hitta i detta API det perfekta ekosystemet för att minska sina kostnader eftersom det till och med har en bra integration i ramar som är så utbredda som. NET Framework där det integreras med tusen underverk med liten förlust av prestanda.

Prestationsskillnader i spel med dubbel API

Som rörelsen visas genom att gå, har vi genomfört några prestandatest i olika spel och riktmärken som har förmågan att använda dessa två API: er för körning.

3DMark Driver Overhead Test. Resultat i miljoner förfrågningar, mer är bättre.

Singlarnas aska. Resultat i FPS, mer är bättre.

Strange Brigade. Resultat i FPS, mer är bättre.

Vi sammanfattar de bästa maskinvaruhandböckerna som borde intressera dig:

  • Bästa processorer på marknaden Bästa moderkort på marknaden Bästa RAM-minne på marknaden Bästa grafikkort på marknaden Bästa SSD: er på marknaden Bättre chassi- eller PC-fodral Bättre strömförsörjning Bättre kylflänsar och flytande kylare

Som ni ser är resultaten jämna och vi ser skillnader mellan program för och mot det ena och det andra. Detta lämnar oss med frågan om vilket är bättre och svaret är klart, det beror på programmet och hur dess utvecklare vet eller vill dra nytta av dess fördelar. Det som återstår är att tänka att utvecklarna i varje spel kommer att använda exakt det API som bäst utnyttjar fördelarna med vår grafik, även om det är uppenbart att båda alternativen verkar mer än kompetenta. Vad tyckte du om vår artikel om Directx 12 vs Vulkan ? Vi vill veta din åsikt!

Handledningar

Redaktörens val

Back to top button