Demistificiranje podrške za DirectX 12 u sustavu Windows 10: Što AMD, Intel i Nvidia rade, a ne isporučuju

Logotip DirectX 12

Sad kad se napokon isporučuje Windows 10, pitanje kompatibilnosti s DirectX-om pomaknut će se s marketinške točke na opipljivo pitanje za korisnike. Već više od godinu dana AMD i Nvidia oglašavaju kako će razne starije obitelji GPU-a podržati DirectX 12 pri lansiranju. Međutim, nedavno je došlo do zabune oko toga koju će razinu podrške Intel, AMD i Nvidia ponuditi za novi API i koji će proizvodi pokretati nadolazeće igre koje se na njega oslanjaju. Čini se da su trenutnu zbunjenost prouzročili komentari AMD-ovog Roberta Hallocka, koji je priznao da različiti AMD-ovi grafički procesori klase GCN podržavaju različite razine značajki DirectX 12. To je pretočeno u navode da AMD ne podržava 'puni' DirectX 12 U stvarnosti, Intel, Nvidia i AMD podržavaju DirectX 12 na različitim razinama značajki, a niti jedan GPU na tržištu danas ne podržava svaku pojedinu opciju DirectX 12.

Razine DirectX značajki i ažuriranja točaka nisu isto

Prvo što treba shvatiti jest da razine DirectX značajki nisu isto što i ažuriranja DirectX točke. Točkovno ažuriranje (DirectX 10.1, DirectX 11.1 / 11.2) dodatni je skup standardiziranih mogućnosti koje programerima omogućuju učinkovitije izvršavanje određenih zadataka ili nude određene mogućnosti. Na primjer, DirectX 10.1 implementirao je nove standarde za vizualnu kvalitetu, nove upute za sjenčanje i podršku za kockaste nizove mapa. To nije bilo dovoljno značajno ažuriranje da bi se oko njega definirala potpuno nova verzija DirectX-a, ali bio je to dovoljno velik korak koji je opravdao vlastito proširenje.



Suprotno tome, razina DirectX značajke definira razinu podrške koju pruža GPU dok i dalje podržava temeljnu specifikaciju. Ova je sposobnost prvi put predstavljena u DirectX 11. Microsoft definira razinu značajkekao „dobro definiran skup GPU funkcionalnosti. Na primjer, razina značajke 9_1 implementira funkcionalnost koja je implementirana u Microsoft Direct3D 9, koja otkriva mogućnosti modela sjenčanja ps_2_x i vs_2_x, dok razina značajke 11_0 implementira funkcionalnost koja je implementirana u Direct3D 11. '



Donji grafikon djelomičan je primjer razina značajki DirectX 11, samo da ilustriram poantu:

DX11-FeatureLevels



Svrha funkcije na razini značajke je omogućiti programerima da ciljaju jedan API umjesto paralelnog razvijanja zasebnih baza koda kako bi se osiguralo da igra može nesmetano raditi na više generacija GPU hardvera, umjesto pisanja zasebnog koda za DX12, DX11, DX10, i tako dalje. DirectX 11 GPU s razinom značajke 9_3 nije mogao čarobno izvesti DirectX 11 efekte, ali to jest mogli pokretati igre u DirectX 9 načinu, a da programer nije trebao napisati potpuno zasebnu implementaciju motora kako bi to omogućio. Tako su igre poput Civilization V mogle raditi u bilo DX11 ili DX9 modovima iz zajedničke baze koda.

AMD, Intel i Nvidia: Tko što podržava?

Jedan od problema s utvrđivanjem koji GPU-ovi podržavaju koje značajke je zabuna između DirectX API podrške i podrške na razini značajki. Ova stranica podrške tvrtke Nvidia, na primjer, detalji o tome kako grafički procesori Fermi i Kepler mogu podržati DirectX 11.1 na razini značajke 11_0. Razlog zbog kojeg Kepler i Fermi ne podržavaju DirectX 11.1 na razini značajke 11_1 je taj što dvije mogućnosti potrebne za 11_1 nisu dostupne na GPU-u. Nvidia se trudi istaknuti da ažuriranje 11.1 DirectX zapravo dodaje podršku za neke mogućnosti koje je Fermi predstavio 2010. godine.

Sljedeći Microsoftov slajd precizno opisuje koje razine značajki DirectX 12 podržavaju koje hardverske iteracije:

DX12FeatureLEvels

Nije jasno zašto Microsoft navodi Kepler kao podršku DirectX 11_1, dok ga Nvidia prikazuje kao ograničenu na DirectX 11_0 u nastavku, ali u svakom slučaju, poanta je istaknuta: podrška za DirectX 12 iznijansirana je i razlikuje se između različitih obitelji kartica od svakog proizvođača. AMD-ovi GCN 1.0 čipovi uključuju Zelenortske otoke, Pitcairn i Tahiti i podržavaju značajku razine 11_1, dok će Bonaire, Havaji, Tonga (možda Oland) i Fidži podržavati razinu 12_0. Sve Nvidijine obitelji 4xx, 5xx, 6xx i 7xx podržavat će DirectX 12 na razini značajki 11_0 ili 11_1, a GTX 750 Ti nudi podršku FL 12_0. Imajte na umu da je Oland neobična vrsta hibridnog čipa - možda ima podršku za značajke DirectX 12_0, ali nedostaju mu značajke poput TrueAudio i možda podrške za XDMA.

Problem je dodatno zbunjen tvrdnjama da je Maxwell jedini GPU na tržištu koji podržava 'puni' DirectX 12. Iako je istina da je Maxwell jedini GPU koji podržava DirectX 12_1, AMD je jedina tvrtka koja nudi potpuno Vezivanje resursa razine 3 i asinkroni shaderi za simultanu grafiku i računanje. To ne znači da AMD ili Nvidia lažu - to znači da su određene značajke i mogućnosti različitih kartica nesavršeno zabilježene razinama značajki i da pozivanje jednog GPU-a ili drugog 'punog' DX12 propušta tu razliku. Intel, na primjer, nudi ROV na razini značajki 11_1 - nešto što ni AMD ni Nvidia ne mogu parirati.

Zašto DirectX 12 izgleda onako kako izgleda

Jedna od zajedničkih briga igrača je da će, ako njihove kartice podržavaju samo DirectX 12 11_1 ili 12_0, propustiti ono što DirectX 12 nudi. Važno je imati na umu da su mogućnosti multi-threadinga i multi-GPU-a DirectX 12 koje smo do danas vidjeli (i demonstrirale putem Mantlea) i dalje u potpunosti dostupne za svaku razinu značajki. Kepler i stariji GCN GPU apsolutno će imati koristi od novih mogućnosti koje DirectX 12 nudi. Uz to, postoje neke specifične mogućnosti ugrađene u DirectX 12_0 i 12_1 kojima igrači sa starijim karticama neće imati pristup - ali kao što pokazuju gornje karte, to nije problem jedinstven za AMD, Nvidiju ili Intel. Nijedan trenutni Intel IGP ne podržava DirectX 12_0, dok samo Nvidijin Maxwell hardver podržava 12_0 ili 12_1.

Ovaj nedavni slajd s predstavljanja GTX 980 Ti implicira da je Kepler ograničen na razinu značajke 11_0, a ne 11_1.

Ovaj nedavni slajd s predstavljanja GTX 980 Ti implicira da je Kepler ograničen na razinu značajke 11_0, a ne 11_1.

Da biste razumjeli zašto je Microsoft sagradio DirectX 12 na način na koji je to učinio, razmotrite alternativu. Prije DirectX-a 11, svaka nova DirectX verzija bila je vezana uz nove hardverske zahtjeve. Povremeno bi AMD ili Nvidia mogle implementirati određenu značajku u hardver prije nego što je postala dio budućeg DirectX standarda, ali grafičke kartice bile su fiksirane na DirectX API-je koje su podržavale prilikom pokretanja. Bez fleksibilnosti koju pružaju razine značajki, jedini igrači koji su to mogli iskoristite DX12 bili bi oni koji su kupili ili GCN 1.1, 1.2 ili Maxwell GPU. Svi ostali, uključujući milijune ljudi s nešto starijim karticama, bili bi izostavljeni na hladnoći.

Dodavanje razina značajki i njihova primjena kao dio DX12 znači da će milijuni ljudi vidjeti značajne koristi od usvajanja novog API-ja ovdje i sada. Ne, stariji grafički procesori možda neće podržavati svaku pojedinu značajku DX12, ali nitko neće na kraju morati birati između igre koja izgleda sjajno u DX11 ili napola verzije DX12 zbog problema s implementacijom grafičke kartice. Kada AMD, Nvidia i Intel govore o podršci DirectX 12 na starijem hardveru, oni govore o značajkama koje su najvažnije - API-ji s nižim troškovima, bolja upotreba CPU-a i multi-GPU funkcionalnost. Stvarne razine značajki koje definiraju 12_1 kao različite od 11_0 zanimljive su i korisne u određenim scenarijima, ali nisu mogućnosti koje će uistinu oblikovati kako igrači doživljavaju igranje s API-jem.

Baš kao što je vrlo malo igara koje zahtijevaju DirectX 11.2 ili 11.1 (nenapisano, ne mogu se sjetiti nijedne), tako će biti vrlo malo DirectX 12 naslova koji nalažu DirectX 12 FL 12_0 ili 12_1. Ne kažem da se takve igre nikada neće dogoditi, ali to će proći godinama, dugo nakon što su trenutni GPU-ovi zamijenjeni modernim hardverom. Ako posjedujete GCN 1.0, Fermi ili Kepler karticu, dobit ćete DirectX 12 značajke koje su najvažnije. Zbog toga je Microsoft stvorio razine značajki koje bi stariji GPU-ovi mogli koristiti - da Fermi, Kepler i starije GCN 1.0 kartice ne mogu imati koristi od osnovnih prednosti DirectX-a 12, Microsoft ih ne bi kvalificirao da ih uopće koriste. API je namjerno dizajniran da omogući povratnu kompatibilnost kako bi se osiguralo da ga programeri budu spremni ciljati.

Copyright © Sva Prava Pridržana | 2007es.com