Guider

▷ Directx 12 vs vulkan: kampen om den beste grafikkmotoren?

Innholdsfortegnelse:

Anonim

For tiden for PC-verdenen er det to førsteklasses grafiske API-er som administrerer markedet med autoritet. Av denne grunn gir vi deg DirectX 12 Vs Vulkan- sammenligning.

Begge har en lang historie bak seg og en hel hord av forsvarere og motbydere. I dag vil vi se forskjellene, nøklene til hver enkelt, og vi vil prøve å gi litt lys på dem.

Innholdsindeks

Grafisk API på lavt nivå og "Driver overhead"

API står for "applikasjonsprogrammeringsgrensesnitt" og er et sett med underprogrammer som kan brukes av en utvikler som også inkluderer kommunikasjonsprotokoller og verktøy som letter programvareutvikling. Vi kan finne dem for nesten alt, og det er vanlig at hver tjenesteleverandør har denne typen hjelpemidler til å implementere systemene sine på en enkel og tilgjengelig måte.

API-er på lavt nivå utnytter GPUs ressurser bedre, og avlaster CPU-en, men er også i stand til å dra bedre nytte av flerkjerneprosessorene som vi har i dag.

Både DirectX 12 og Vulkan 1.1 er API-er orientert for utvikling av spill og applikasjoner som krever assistanse fra moderne grafikkmotorer. Samtidig er de APIer som støttes av driverne til de viktigste grafiske brikkesettdesignerne, og derfor en rask og økonomisk måte å få tilgang til funksjonene sine uten å måtte kjenne designet på et veldig lavt nivå.

Et API på lavt nivå, som disse, gjør det mulig å jobbe med maskinvaren med et veldig lett tolkningslag, som gjør det mulig for utvikleren å utnytte maskinvaren bedre, oppnå bedre resultater når det gjelder ytelse og effektivitet, og også la andre undersystemer frigjøres for ekstra belastning. I PC-en, eller mobiltelefonenes verden, er den mindre avhengig av systemets generelle CPU.

De to API-ene som vi vil snakke om i dag kan betraktes som API-er på lavt nivå, og begge utbyggingene har resultert i en mindre og mindre avhengighet av systemets CPU, samtidig som de oppnår bedre resultater på ytelsesnivået og tilgang til mer grafiske funksjoner. utposter. De er to live API-er som mottar oppdateringer årlig for å holde dem i tråd med hva allmennheten og utviklerne forventer.

APIer på lavt nivå har en direkte effekt på et annet beregningskonsept som vi kjenner som "driver overhead", som kort sagt er de sekundære ressursene vi trenger for å utføre visse typer operasjoner på en datamaskin. Når det gjelder grafikk, refererer det til de ekstra ressursene som grafikkortet krever for å gjøre jobben sin, og i dette tilfellet er det i grunnen sentrale CPU-prosess-tider. De lave nivå APIene vi vil beskrive her reduserer denne avhengigheten, og faktisk er avhengigheten til 0.

Microsoft DirectX

DirectX oppstår som en nødvendighet for å standardisere forskjellige Windows multimedia-undersystemer og er erstatning for WinG for Windows 3.1. Den er adoptert i Windows 95 som en tilleggspakke, og den andre versjonen, DirectX 2.0, blir en grunnleggende komponent i Windows 95 OSR2.

Innenfor DirectX finner vi flere uavhengige API-er som Direct3D, som egentlig er den det gjelder, DirectDraw, DirectMusic, DirectPlay og DirectSound. DirectX var en måte å navngi vanlige fremskritt i alle disse sub-API-ene. Det er et API for Windows, men det brukes også til utvikling av spill på Xbox-konsollene våre, slik at vi kan betrakte det som et Multiplatform API, men ikke gratis, som tilfellet er med Vulkan.

DirectX 12, den nyeste versjonen, har vært med siden 2014 og har ikke stått stille, og for noen måneder siden fikk den viktige forbedringer som Direct RayTracing (DXR) subroutine som ble inkludert i oppdateringsversjonen av Windows 1080 av Windows 10.

APIer på lavt nivå som DirectX 12 har en grunnleggende fordel, som er reduksjonen av sjåførens overhead. Programmerere er nå bemyndiget til å designe hvordan GPU vil oppføre seg i programmene sine og kan bedre administrere GPU-ressurser, spesielt ved å dra nytte av prosessparallellisering. Dette inkluderer bedre støtte for flere GPUer i ett system, og selv om de ikke er fra samme produsent.

De kan utføre forskjellige typer operasjoner, vanligvis "heltall" eller "flytende punkt" ved å dra nytte av egenskapene til den kompatible grafikken og også dele inn komplekse operasjoner i enklere ved å behandle dem parallelt på de større bussene. Et godt eksempel er hvordan AMD eller Nvidia nå kan behandle 16-bit operasjoner på sine 32-bit busser, noe som forbedrer effektiviteten til grafikken deres betydelig.

Denne APIen har ført effektiviteten til bruk av en konsoll-GPU nærmere, der utviklerne perfekt vet den tilgjengelige maskinvaren, opp til det heterogene økosystemet som danner en PC med uendelige forskjellige maskinvaremuligheter.

For øyeblikket er DirectX 12 overraskende tilgjengelig for Windows 7 og Windows 10, og selv om det ikke er direkte kompatibelt med Xbox One, er sannheten at praktisk talt 90% av funksjonaliteten brukes til PC, forskjellene er minimale og det har tillatt utviklere raske tilpasninger av PC-spillene sine for Xbox One og omvendt.

Vulkan av Khronos

Vulkan er utviklingen til OpenGLs API på lavt nivå og støttes av Khronos Corporation. I PC-verdenen har de en sekundær rolle i forhold til DirectX 12, men dens forskjellige tilpasninger til forskjellige plattformer, for eksempel Android, har gjort det til et målestokk i grafikk for mobilitet. Det er også kompatibelt med at Linux er det store alternativet til spill i gratis systemer.

Den store dyden er den store parallelle prosesseringskapasiteten, den er ekstremt effektiv i moderne CPUer og GPU-er, oppnår lite bruk av førstnevnte og stor bruk av maskinvaren til sistnevnte. Den er spesialdesignet for å dra nytte av at flerkjerneprosessorer oppnår en utmerket belastningsfordeling i denne typen prosessorer, faktisk er den så mye mer effektiv for flere kjerner vi kan tilby.

Vulkans historie går tilbake til et år etter at DirectX 12 og Khronos, som er et ideelt selskap, opprettholder det så ofte eller oftere enn Microsoft gjør med sin egen API. Det er basert på API- mantelen som AMD utviklet for sin GCN- arkitektur, og som var et annet API på lavt nivå for en redusert "overhead driver". AMD donerte utviklingen til Khronos, og dette er grunnlaget for en av de beste grafiske API-ene på markedet.

I tillegg til overlegen parallellisering, gjør dette designet også mulig å eliminere forhåndskompilering av skyggelegging på GPU, kunne ha flere effekter og på skjermen med høyere lastehastighet, i tillegg til en mer detaljert justering av hvordan maskinvaren prosesser operasjoner eller hvordan vi får tilgang til rammebuffer tilgjengelig. Det er sikkert API for PC som er nærmest selve maskinvaren, enda bedre enn DirectX 12.

Vulkan introduserer også API-forbedringer på lavt nivå på Android og andre plattformer.

Den siste versjonen, Vulkan 1.1, introdusert i slutten av 2018, legger til viktige forbedringer som HLSL-støtte, som er DirectX 12s alternativ til å styre shader-operasjoner uten behov for forhåndskompilering, bedre kompatibilitet med DirectX 12 (til de mange underrutinene bortsett fra grafikken), eksplisitt støtte for Multi-GPU-systemer uavhengig av produsent og, selvfølgelig, støtte for RayTracing.

Styrker og svakheter ved DirectX 12 vs Vulkan

I tillegg til de vanlige funksjonene som allerede er beskrevet, for eksempel bedre bruk av maskinvare, mer kontroll over den og bedre bruk av parallellisering av både GPU og CPU, legger disse to APIene også muligheten til å utføre generelle beregningsoperasjoner med grafikkbrikker med som er kompatible. Dette gjør at kompatible grafikkmotorer, flere generasjoner allerede, kan utføre komplekse matematiske operasjoner som kan utnyttes av programmer av alle slag, inkludert de uten grafiske komponenter.

I spill kan de også brukes til stadig viktigere sekundære operasjoner som beregning av realistisk fysikk, kunstig intelligens, posisjonslydeffekter, etc.

Begge API-er har stor støtte fra storheter av grafikk, både AMD og Nvidia prøver å tilby disse API-ene de passende driverne for å oppnå begge tilby sine brukere de siste forbedringene og styrke ytelsen og stabiliteten til spill som bruker en eller et annet API.

"Driverhead" for begge er veldig lite, faktisk, som du vil se i testene våre, er det knapt noen forskjeller mellom dem, noe som også er et tegn på den viktige optimaliseringen av driverne til begge produsentene.

Vi har begrenset rammene til 120FPS for en demonstrasjon av Driver Overhead. I Dota 2 reduseres CPU-forbruket vesentlig med samme FPS.

Den eneste mer åpenbare forskjellen er at Vulkan har noe mindre avhengighet av CPU, med lavere gjennomsnittlig forbruk, og at den også er mye mer åpen for forskjellige plattformer, inkludert Windows og Linux og dens homogenisering med OpenGL ES, som er den mobile versjonen, det er på vei videre å forene plattformene den beveger seg på.

DirectX 12 har i sin favør den gode aksept av utviklerne, som ser ut til å finne i dette API-et det perfekte økosystemet for å redusere kostnadene, siden det til og med har en flott integrasjon i så omfattende utbredte rammer som.NET Framework der det integreres med tusen underverker med lite tap av ytelse.

Resultatforskjeller i spill med dobbelt API

Som bevegelsen er demonstrert ved å gå, har vi gjennomført noen ytelsestester i forskjellige spill og benchmarks som har muligheten til å bruke disse to APIene for utførelse.

3DMark Driver Overhead Test. Resultatet er millioner av forespørsler, mer er bedre.

Enkelhetens aske. Resultater i FPS, mer er bedre.

Strange Brigade. Resultater i FPS, mer er bedre.

Vi oppsummerer de beste maskinvareguidene som burde interessere deg:

  • Beste prosessorer på markedet Beste hovedkort på markedet Beste RAM-minne på markedet Beste grafikkort på markedet Beste SSD-er på markedet Bedre kabinetter eller PC-etuier Bedre strømforsyninger Bedre kjøling og flytende kjølere

Som du kan se, er resultatene jevn, og vi ser forskjeller mellom programmer for og mot det ene og det andre. Dette etterlater oss spørsmålet om hva som er bedre og svaret er klart, det avhenger av programmet og hvordan utvikleren vet eller ønsker å dra nytte av fordelene. Det som gjenstår er å tenke på at i hvert spill vil utviklerne bruke nettopp API-en som best utnytter fordelene med grafikken vår, selv om det er tydelig at begge alternativene virker mer enn kompetente. Hva syntes du om artikkelen vår om Directx 12 vs Vulkan ? Vi vil vite din mening!

Guider

Redaktørens valg

Back to top button