Det finns en rad olika gränssnitt som nya speltitlar kan utvecklas för. En av dessa är DirectX 12, som ofta får mycket uppmärksamhet när det väl används. Vad är det då som detta gränssnitt kan erbjuda som särskiljer det från de andra?
DirectX introducerades för första gången år 1995. Sedan dess har Microsoft kontinuerligt utvecklat detta Windows-orienterade gränssnitt och idag har vi nått hela vägen till DirectX 12. I väldigt enkla termer är DirectX en mjukvara som kan prata med en dators hårdvarukomponenter. Det är en samling applikationer för rendering av 2D och 3D-grafik och även video- och ljuduppspelning genom Windows. Microsoft förser mjukvaruutvecklare med verktyg för att anpassa sina applikationer till att kunna använda DirectX och dess egenskaper som en slags förmedlare mellan tredjepartsutvecklad mjukvara och hårdvaran.
DirectX 12 och din CPU
Med lanseringen av operativsystemet Windows 10 såg vi även introduktionen av DirectX 12 (DX 12). Denna senaste upplaga skiljer sig från sin föregångare inte bara i vilka grafikeffekter som kan användas i en speltitel. DirectX 11 var konstruerat så att spelrendering i princip hanterades på en enda CPU-kärna. Det var något som inte direkt var optimalt för prestandan. Den nyare upplagan av DirectX delar dock upp arbetsuppgifter på ett mer balanserat vis.
Med DirectX 12 behöver ett grafikkort således inte vänta lika länge på att en dators processorenhet ska säga åt grafikkortet att rendera ett specifikt objekt. Detta var ett större problem i spel som verkligen pressade processorer. Det kunde skapa en flaskhals som kunde resultera i att ett lägre antal objekt kunde renderas åt gången, så att processorn inte hann kommunicera med grafikkortet tillräckligt snabbt.
Optimerat för GPU
Det är inte bara processortrådar som används mer flitigt i DX 12. Även användandet av grafikprocessorer och videominne har optimerats. Medan den ”pipeline” som används i DX 11 har flera start- och stopp-punkter för objekt som ska skapas, har denna strömlinjeformats i DX 12.
Med DirectX 11 behöver varje objekt definieras individuellt genom en rad olika stadier och kan inte gå vidare från ett stadie till ett annat innan det första är komplett. Hos DirectX 12 har dessa ersatts av Pipeline State Objects (PSO). Dessa objekt kan konverteras till olika stadier efter behov och agerar helt oberoende från andra objekt och stadier. Resultatet av detta blir en mer strömlinjeformad och optimerad skapelseprocess för virtuella objekt, allt för en potentiell prestandavinst.
Feature Levels
En avstickare värd att nämna är så kallade Feature Levels. Dessa introducerades redan med DirectX 11 och finns kvar än idag. DirectX 10 hade en uppsättning specifika krav för hårdvara vars tillverkare ville implementera stöd för gränssnittet. Detta innebar att ett grafikkort var tvunget att ha stöd för samtliga tekniker som gick under DirectX 10. Hos de två senare generationerna används dessa Feature Levels för att ändra på detta. Ett grafikkort kan till exempel vara kompatibelt med DirectX 12 Feature Level 11_0. Detta innebär att det i princip rör sig om ett DirectX 11-kort som kan ta vara på de nyare egenskaperna hos DirectX 12.
DirectX 12 Ultimate
En nyligen avtäckt expansion till gränssnittet kallas DirectX 12 Ultimate visar även den vad det ”nya” gränssnittet kan erbjuda. Ultimate tar vad som ses som ”framtidens grafiktekniker” och lägger dessa under ett samlingsnamn.
Det nya tillägget tar då tekniker som till exempel raytracing och Variable Rate Shading och klumpar ihop dessa under en och samma stämpel. Detta för att ge konsumenter en bättre uppfattning av vad för tekniker specifika grafikkort har stöd för.
Kan jag använda DX 12?
Intel, Nvidia och AMD har alla erbjudit stöd för DX 12 under en längre tid. Hos Nvidia har det funnits stöd för DX 12 sedan arkitekturen Fermi och företagets GTX 400-serie av grafikkort. För AMD är det GCN-baserade HD 7 000-serien och framåt som gäller och för Intels integrerade grafikkretsar handlar det om processorarkitekturen Haswell och senare.
MÅSTE jag använda DX 12?
Medan den senaste upplagan av DirectX mycket väl bjuder på sin beskärda del av uppgraderingar jämfört med tidigare versioner, är det inte ett absolut måste att använda gränssnittet. Många spel kommer med stöd för både DX 11 och DX 12, om inte ännu fler gränssnitt. Således är det inte ett krav att använda DirectX 12. Särskilt inte då vissa grafikarkitekturer är käna för att ha mindre optimalt stöd för gränssnittet.
Även om DirectX 12 kan erbjuda vinster för både utvecklare och spelintresserade är det aldrig garanterat att olika hårdvaruuppsättningar fungerar likvärdigt i spels DX 12-lägen. Det är även upp till individuella utvecklare och spelstudios att optimera sina produkter för just DX 12. Detta lämnar det hela upp till användare att själva experimentera och se vad som fungerar bäst, om flera olika gränssnitt finns tillgängliga i en och samma speltitel.