Vejledninger

▷ Directx 12 vs vulkan: kampen om den bedste grafikmotor?

Indholdsfortegnelse:

Anonim

For tiden for pc-verdenen er der to førsteklasses grafiske API'er, der styrer markedet med autoritet. Af denne grund bringer vi dig DirectX 12 Vs Vulkan sammenligning.

Begge har en lang historie bag sig og en hel horde af forsvarere og krænkere. I dag vil vi se forskellene, nøglerne til hver enkelt, og vi vil forsøge at give noget lys over dem.

Indholdsindeks

Grafisk API på lavt niveau og "Driver overhead"

API står for "applikationsprogrammeringsgrænseflade" og er et sæt underprogrammer, der kan bruges af en udvikler, der også inkluderer kommunikationsprotokoller og værktøjer, der letter softwareudvikling. Vi kan finde dem til næsten alt, og det er almindeligt, at hver tjenesteudbyder har denne type hjælp til at implementere deres systemer på en enkel og tilgængelig måde.

API'er på lavt niveau drager bedre fordel af GPU's ressourcer og aflaster CPU'en, men er også i stand til at drage større fordel af de multi-core processorer, som vi har i dag.

Både DirectX 12 og Vulkan 1.1 er API'er orienteret til udvikling af spil og applikationer, der kræver hjælp fra moderne grafikmotorer. Samtidig er de API'er understøttet af driverne til de vigtigste grafiske chipset-designere og derfor en hurtig og økonomisk måde at få adgang til deres funktioner uden at skulle kende deres design på et meget lavt niveau.

Et API på lavt niveau som disse gør det muligt at arbejde med hardwaren med et meget let tolkningslag, som gør det muligt for udvikleren at drage bedre fordel af hardware og opnå bedre resultater med hensyn til ydeevne og effektivitet, hvilket også giver mulighed for at andre delsystemer frigøres for yderligere belastning. I pc- eller mobiltelefonens verden er den mindre afhængig af systemets generelle CPU.

De to API'er, som vi vil tale om i dag, kan betragtes som API'er på lavt niveau, og begge udviklinger har resulteret i en mindre og mindre afhængighed af systemets CPU, mens de opnår bedre resultater på ydeevneniveauet og adgang til flere grafiske funktioner. forposter. De er to live API'er, der hvert år modtager opdateringer for at holde dem på linje med, hvad offentligheden og udviklere forventer.

API'er på lavt niveau har en direkte effekt på et andet computerkoncept, som vi kender som ”driver overhead”, hvilket kort sagt er de sekundære ressourcer, vi har brug for for at udføre visse typer operationer på en computer. I tilfælde af grafik henviser det til de ekstra ressourcer, som grafikkortet kræver for at udføre sit job, og i dette tilfælde er det grundlæggende centrale CPU-procestider. De lave niveau API'er, vi vil beskrive her, reducerer denne afhængighed, og faktisk afhænger afhængigheden til 0.

Microsoft DirectX

DirectX opstår som en nødvendighed for at standardisere forskellige Windows-multimediasubsystemer og er erstatning for WinG til Windows 3.1. Det er vedtaget i Windows 95 som en tilføjelsespakke, og dens anden version, DirectX 2.0, bliver en grundlæggende komponent i Windows 95 OSR2.

Inden for DirectX finder vi flere uafhængige API'er som Direct3D, som virkelig er den, det drejer sig om, DirectDraw, DirectMusic, DirectPlay og DirectSound. DirectX var en måde at navngive almindelige fremskridt på tværs af alle disse sub-API'er. Det er en API til Windows, men det bruges også til udvikling af spil på sine Xbox-konsoller, så vi kan betragte det som en Multiplatform-API, men ikke gratis, som det er tilfældet med Vulkan.

DirectX 12, dens seneste version, har været med os siden 2014 og har ikke stået stille, og for et par måneder siden modtog vigtige forbedringer, såsom Direct Ray Tracing (DXR) subroutine, der blev inkluderet i opdateringsversionen af ​​Windows 10 af Windows 10 i oktober.

API'er på lavt niveau som DirectX 12 har en grundlæggende fordel, som er reduktionen af ​​driveromkostningen. Programmerere er nu bemyndiget til at designe, hvordan GPU vil opføre sig i deres programmer og kan bedre styre GPU-ressourcer, især ved at drage fordel af procesparallalisering. Dette inkluderer bedre support til flere GPU'er i et system, og selvom de ikke er fra den samme producent.

De kan udføre forskellige typer operationer, normalt "heltal" eller "flydende punkt" ved at drage fordel af kapaciteten i den kompatible grafik og også dele komplekse operationer i enklere ved at behandle dem parallelt på de større busser. Et godt eksempel er, hvordan AMD eller Nvidia nu kan behandle 16-bit-operationer på deres 32-bit-busser, hvilket væsentligt forbedrer effektiviteten af ​​deres grafik.

Denne API har bragt effektiviteten af ​​brug af en konsol GPU tættere, hvor udviklerne perfekt kender den tilgængelige hardware, op til det heterogene økosystem, der danner en pc med uendelige forskellige hardware muligheder.

Aktuelt er DirectX 12 overraskende tilgængelig for Windows 7 og Windows 10, og selvom det ikke er direkte kompatibelt med Xbox One, er sandheden, at praktisk talt 90% af dens funktionalitet bruges til pc, forskellene er minimale, og det har tilladt udviklere hurtige tilpasninger af deres pc-spil til Xbox One og vice versa.

Vulkan fra Khronos

Vulkan er udviklingen til OpenGLs API på lavt niveau og understøttes af Khronos Corporation. I pc-verdenen har de en sekundær rolle i forhold til DirectX 12, men dens forskellige tilpasninger til forskellige platforme, såsom Android, har gjort det til et benchmark i grafik til mobilitet. Det er også kompatibelt med Linux som det store alternativ til spil i gratis systemer.

Dens store dyd er dens store parallelle behandlingskapacitet, idet den er ekstremt effektiv i moderne CPU'er og GPU'er, hvilket opnår lav anvendelse af førstnævnte og en stor brug af sidstnævnte hardware. Det er specielt designet til at drage fordel af multikerneprocessorer, der opnår en fremragende belastningsfordeling i denne type processorer, faktisk er det så meget mere effektiv for de flere kerner, vi kan levere.

Vulkans historie går tilbage til et år efter DirectX 12 og Khronos, som er et non-profit selskab, opretholder det så ofte eller hyppigere end Microsoft gør med sin egen API. Det er baseret på API Mantle, som AMD udviklede til sin GCN- arkitektur, og det var en anden API på lavt niveau for en reduceret "overheaddriver". AMD donerede sin udvikling til Khronos, og dette er grundlaget for en af ​​de bedste grafiske API'er på markedet.

Ud over den overlegne parallelisering tillader dette design også, at forkompileringen af ​​skyggefunktioner på GPU'en kan elimineres, være i stand til at have flere effekter og på skærmen med højere belastningshastighed, ud over en mere detaljeret justering af, hvordan hardware behandler operationer, eller hvordan vi får adgang til rammebuffer tilgængelig. Det er helt sikkert API'en til pc, der er tættest på selve hardwaren, endda bedre end DirectX 12.

Vulkan introducerer også API-forbedringer på lavt niveau på Android og andre platforme.

Dens seneste version, Vulkan 1.1, introduceret i slutningen af ​​2018 tilføjer vigtige forbedringer såsom HLSL-understøttelse, som er DirectX 12's alternativ til at styre shader-operationer uden forudkompilering, bedre kompatibilitet med DirectX 12 (til dets mange underprogrammer) bortset fra grafikken), eksplicit support til Multi-GPU-systemer uanset producenten og selvfølgelig support til RayTracing.

Styrker og svagheder ved DirectX 12 vs Vulkan

Ud over de allerede beskrevne almindelige funktioner, såsom bedre brug af hardware, mere kontrol over det og bedre brug af parallelisering af både GPU og CPU, tilføjer disse to API'er også muligheden for at udføre generelle beregningsoperationer med grafikchips med der er kompatible. Dette gør det muligt for kompatible grafikmotorer, allerede i flere generationer, at være i stand til at udføre komplekse matematiske operationer, der kan udnyttes af programmer af alle slags, inklusive dem uden grafiske komponenter.

I spil kan de også bruges til stadig vigtigere sekundære operationer som beregning af realistisk fysik, kunstig intelligens, positionslydeffekter osv.

Begge API'er har stor understøttelse af grafikens storheder, både AMD og Nvidia stræber efter at tilbyde disse API'er de passende drivere til at opnå begge tilbyder deres brugere de nyeste forbedringer og styrker ydelsen og stabiliteten af ​​spil, der bruger en eller et andet API.

Begge "chaufføroverhead" er meget lav, faktisk, som du vil se i vores test, er der næppe forskelle mellem dem, hvilket også er et tegn på den vigtige optimering af driverne til begge producenter.

Vi har begrænset rammeret til 120FPS for en demo af Driver Overhead. I Dota 2 reduceres CPU-forbruget væsentligt med den samme FPS.

Den eneste mere åbenlyse forskel er, at Vulkan har noget mindre afhængighed af CPU'en med et lavere gennemsnitligt forbrug, og at det også er meget mere åbent for forskellige platforme, herunder Windows og Linux og dens homogenisering med OpenGL ES, som er dens mobile version, det er på vej yderligere at forene de platforme, som den bevæger sig på.

DirectX 12 har til fordel for den store accept af udviklerne, der ser ud til at finde i dette API det perfekte økosystem til at reducere deres omkostninger, da det endda har en stor integration i rammer, der er så udbredte som. NET Framework, hvor det integreres med tusind vidundere med lidt tab af ydeevne.

Prestationsforskelle i spil med dobbelt API

Som bevægelsen demonstreres ved at gå, har vi udført nogle performance tests på forskellige spil og benchmarks, der har muligheden for at bruge disse to API'er til udførelse.

3DMark Driver Overhead Test. Resultater i millioner af anmodninger, mere er bedre.

Enhedens aske. Resultater i FPS, mere er bedre.

Strange Brigade. Resultater i FPS, mere er bedre.

Vi opsummerer de bedste hardware guider, der burde interessere dig:

  • Bedste processorer på markedet Bedste bundkort på markedet Bedste RAM-hukommelse på markedet Bedste grafikkort på markedet Bedste SSD'er på markedet Bedre chassis eller pc-kabinetter Bedre strømforsyning Bedre køleplader og flydende køler

Som du kan se, er resultaterne lige, og vi ser forskelle mellem programmer for og imod det ene og det andet. Dette efterlader os spørgsmålet om, hvad der er bedre, og svaret er klart, det afhænger af programmet, og hvordan dets udvikler ved eller ønsker at drage fordel af dets fordele. Det resterende er at tænke, at i hvert spil udviklerne vil bruge nøjagtigt det API, der bedst drager fordel af fordelene ved vores grafik, selvom det er klart, at begge indstillinger synes mere end kompetente. Hvad syntes du om vores artikel om Directx 12 vs Vulkan ? Vi vil gerne vide din mening!

Vejledninger

Valg af editor

Back to top button