Vad är skillnaden mellan DirectX 11 och DirectX 12?
DirectX är en samling API, eller applikationsprogrammeringsgränssnitt, som används av programvara för att göra multimediainnehåll och kommunicera med grafisk hårdvara. DirectXs huvudkomponent API, Direct3D, hanterar kommunikation mellan programvara och grafikhårdvara. Eftersom all hårdvara är annorlunda, används ett standardiserat bibliotek med funktioner och samtal för att kommunicera med grafikkortet, vilket gör att spelutveckling snabbare. Detta kallas hårdvaraabstraktion, och det är huvudansvaret för API: n.
Tänk på bilar: Om du kan köra en bil kan du ganska mycket driva dem alla. Gas- och bromspedalerna är på samma plats, och ratten roterar i samma riktning och dörrarna öppnas utåt. Det kan finnas några mindre skillnader i icke-kritiska funktioner som radio, men totalt sett vet du vad du kan förvänta dig. DirectX och Direct3D är sålunda, så att utvecklare kan koppla samman med ett brett utbud av hårdvara med samma verktyg. Och eftersom de flesta spelutvecklare använder Direct3Ds standardbibliotek, kan alla ändringar i API-en påverka spelarna och kodarna lika.
Vad är nytt i DirectX 12?
Varje större uppdatering till DirectX och Direct3D ger nya funktioner och utvecklingar. Direct3D 12 medförde dock några särskilt signifikanta förändringar. Faktum är att det kan inleda ett nytt område med grafik API med låg nivå som förändrar hur spel utvecklas.
Nedre nivå maskinvara abstraktion
DirectX 12 låter utvecklare komma närmare "metal" av användarnas grafikhårdvara, vilket ger tillgång till funktioner som tidigare inte är tillgängliga för utvecklare. Att exponera maskinvara på lägre nivå innebär att skickliga utvecklare kan skriva mer effektiv kod som körs snabbare. Specifikt kan utvecklare förbättra optimeringen med snabbare multi-threaded prestanda och effektivare CPU-utnyttjande. Detta kan möjligen möjliggöra optimeringar på låg nivå som liknar dem vi ser i konsolspel där spel är inställda för extremt specifik mellanklasshårdvara, vilket visar ut prestanda som skulle vara omöjligt utan sådana hyperspecifika optimeringar.
Tidigare erbjöd DirectX 11 en ganska hög nivå av hårdvaraabstraktion, vilket förenklar processen för kodning. I själva verket är det hela tanken bakom vad som gör hårdvarup API: er så kraftfulla. Men det innebar också att möjligheterna till finjusteringskod mot specifika hårdvarufunktioner var mindre frekventa. Microsofts utvecklingsbloggar ger några bra insikter om hur DirectX 12 exakt gör det här.
Förbättrad multicore-prestanda
Under de senaste åren har spelare kommit att acceptera att multicore-processorer inte är lika användbara för spel. Spel istället förlita sig på snabb enkelgängad prestanda. Detta händer delvis eftersom DirectX 11 inte tillåter så mycket parallellisering. Flera CPU-trådar kan lägga in dragkommandon samtidigt. Men de kommer fortfarande att bearbetas i en kö, en i taget. DirectX 12 lyfter den begränsningen, vilket gör det möjligt för multicore-processorer att skicka samtidig instruktioner till GPU, vilket öppnar dörren för bättre prestanda på multicore-processorer.
Rita omkostnadsreduktion
Under DirectX 11 spenderas en betydande del av CPU: s kraft genom att tolka API-instruktioner istället för att utföra spelkod. DirectX 12 minskar API-överhuvudet och frigör beräkningsresurser för att köra spelkoden. Det innebär att CPU-begränsade spel kan se större prestanda, eftersom deras CPU-kraft är befriad för att hantera spelkoden. De flesta spel är inte CPU-begränsade idag, men det är möjligt att nya spel kommer att driva detta kuvert vidare.
Explicit Multiadapter
DirectX 12 har möjlighet att kombinera flera GPU (AKA "display adapters") i en enda logisk enhet. Denna funktion, kallad Explicit Multiadapter, tillåter flera GPU: er att instrueras av programvara som en enda GPU. Med DirectX 12 kan den integrerade GPU-enheten på din maskin nu tagga lag med din diskreta GPU och låna ut egen processorkraft. Större API-stöd kan också innebära större tillförlitlighet och effektivitet i multi-GPU SLI / CrossFire-inställningar. I Microsofts testning med integrerad grafik i kombination med diskret grafik gav en liten men märkbar kant i riktmärken.
Hur mycket kostar DirectX 12 för spelare?
Liksom många stegvisa förbättringar kommer spelare inte att se skillnader mellan dag och natt mellan DirectX 11 och DirectX 12. De nya funktionerna ger inte nya återgivningsalternativ som wow-användare. Inte heller kommer du att se ett 100 FPS hopp mellan de två normerna. Men dessa vinster i effektivitet leder så småningom till bättre prestanda på mindre kraftfull hårdvara, vilket förbättrar datorns ström utan att uppgradera hårdvaran.