DirectX 12 toe demüstifitseerimine Windows 10-s: mida AMD, Intel ja Nvidia teevad ja mida ei paku

DirectX 12 logo

Nüüd, kui Windows 10 lõpuks tarnitakse , DirectX-i ühilduvuse küsimus liigub turunduse täppidest kasutajate jaoks käegakatsutava probleemini. Üle aasta on AMD ja Nvidia reklaaminud, et erinevad vanemad graafikaprotsessorite perekonnad toetaksid käivitamisel DirectX 12-d. Viimasel ajal on siiski olnud segadust selle üle, millist tugitaset pakuvad Intel, AMD ja Nvidia uuele API-le ning millised tooted käivitavad sellele tuginevaid eelseisvaid mänge. Tundub, et praeguse segaduse põhjustasid AMD Robert Hallocki kommentaarid, kes tõdesid, et erinevad AMD GCN-klassi GPU-d toetavad DirectX 12 erinevaid funktsioonitasemeid. See on ketranud väidetesse, et AMD ei toeta 'täielikku' DirectX 12 Tegelikkuses toetavad kõik Intel, Nvidia ja AMD DirectX 12 erinevatel funktsioonitasemetel ning tänapäeval ei toeta ükski turul olev GPU kõiki valikulisi DirectX 12 võimalusi.

DirectX-funktsioonide tasemed ja punktivärskendused pole sama asi



Kõigepealt tuleb mõista, et DirectX-i funktsioonide tasemed ei ole sama mis DirectX-i punktide värskendused. Punktivärskendus (DirectX 10.1, DirectX 11.1 / 11.2) on täiendav standardiseeritud võimaluste komplekt, mis võimaldab arendajatel teatud ülesandeid tõhusamalt täita või pakkuda konkreetseid võimalusi. Näiteks rakendas DirectX 10.1 uued visuaalse kvaliteedi standardid, uued varjutusjuhised ja kuubikaartide massiivide tugi. See ei olnud piisavalt märkimisväärne värskendus, et määratleda selle ümber täiesti uus DirectX-i versioon, kuid see oli piisavalt suur samm, et õigustada oma laiendust.

DirectX funktsioonide tase määratleb seevastu GPU pakutava toetuse taseme toetades endiselt aluseks olevat spetsifikatsiooni. See võimalus võeti esmakordselt kasutusele DirectX 11-s. Microsoft määratleb funktsioonitaseme kui „täpselt määratletud GPU funktsionaalsuse komplekt. Näiteks rakendab funktsioonitase 9_1 funktsionaalsust, mis rakendati Microsoft Direct3D 9-s, mis paljastab varjutusmudelite ps_2_x ja vs_2_x võimalused, funktsioonitasem 11_0 aga rakendust Direct3D 11 rakendatud funktsioonid. '



Alltoodud diagramm on osaline näide DirectX 11 funktsioonitasemetest, lihtsalt selle illustreerimiseks:



DX11-FeatureLevels

Funktsioonitaseme funktsiooni eesmärk on võimaldada arendajatel sihtida ühte API-d, mitte paralleelselt välja töötada eraldi koodibaase, et tagada mängu sujuv toimimine mitme põlvkonna GPU riistvaral, selle asemel et kirjutada eraldi kood DX12, DX11, DX10, ja nii edasi. Funktsioonitasemega 9_3 DirectX 11 GPU ei suutnud maagiliselt teha DirectX 11 efekte, kuid seda siiski võiks mänge mänge DirectX 9 režiimis ilma, et arendajal oleks selle kirjutamiseks vaja kirjutada täiesti eraldi mootori rakendust. Nii said sellised mängud nagu Civilization V ühises koodibaasis töötada kas DX11 või DX9 režiimis.

AMD, Intel ja Nvidia: kes mida toetab?

Üks probleemidest, mis GPU-d milliseid funktsioone toetavad, on DirectX API toe ja funktsioonitaseme segiajamine. See Nvidia tugileht näiteks üksikasjad selle kohta, kuidas Fermi ja Kepleri GPU-d saavad funktsioonitasemel 11_0 DirectX 11.1 toetada. Põhjus, miks Kepler ja Fermi ei toeta funktsioonitasemel 11_1 DirectX 11.1, seisneb selles, et kaks versioonile 11_1 nõutavatest võimalustest pole GPU-l saadaval. Nvidia teeb mõningaid probleeme, et juhtida tähelepanu sellele, et 11.1 DirectX-i värskendus lisab tegelikult toetust mõnele Fermi 2010. aastal kasutusele võetud võimele.

Järgmine Microsofti slaid täpsustab täpselt, milliseid DirectX 12 funktsioonitasemeid milliseid riistvara iteratsioone toetatakse:

DX12FunktsioonidLaulud

Pole selge, miks Microsoft loetleb Kepleri DirectX 11_1 toetajana, samal ajal kui Nvidia näitab seda allpool piiratud DirectX 11_0-ga, kuid mõlemal juhul tehakse punkt: DirectX 12 tugi on nüansirikas ja varieerub iga tootja erinevate kaardiperede vahel. AMD GCN 1.0 kiibid hõlmavad Cabo Verde, Pitcairni ja Tahitit ning toetavad funktsioonitaset 11_1, Bonaire, Hawaii, Tonga (võimalik, et ka Oland) ja Fidži kõik toetavad funktsioonitaset 12_0. Nvidia erinevad 4xx, 5xx, 6xx ja 7xx perekonnad toetavad DirectX 12 funktsiooni 11_0 või 11_1 tasemel, GTX 750 Ti pakub FL 12_0 tuge. Pange tähele, et Oland on paaritu hübriidkiip - sellel võib olla DirectX 12_0 funktsioonide tugi, kuid sellel puuduvad sellised funktsioonid nagu TrueAudio ja võib-olla XDMA tugi.

Probleemi on veelgi segi ajanud väited, et Maxwell on ainus GPU turul, mis toetab „täis” DirectX 12-d. Kuigi on tõsi, et Maxwell on ainus GPU, mis toetab DirectX 12_1, on AMD ainus ettevõte, mis 3. taseme ressursside sidumine ja asünkroonsed varjundid samaaegse graafika ja arvutamise jaoks. See ei tähenda, et AMD või Nvidia valetaks - see tähendab, et funktsioonide tasemed haaravad ebatäiuslikult erinevate kaartide teatud funktsioonid ja võimalused ning et ühe või teise GPU helistamine 'täis' DX12-le jätab selle eristuse tegemata. Näiteks Intel pakub ROV-d funktsioonide 11_1 tasemel - midagi, millele ei AMD ega Nvidia ei sobi.

Miks DirectX 12 näeb välja selline, nagu ta näeb

Mängijate ühine mure on see, et kui nende kaardid toetavad ainult DirectX 12 11_1 või 12_0, jäävad nad DirectX 12 pakutavast ilma. Oluline on meeles pidada, et DirectX 12 mitme lõime ja mitme graafikaprotsessoriga võimalused, mida oleme tänaseni vaadanud (ja Mantle'i kaudu demonstreeritud), on endiselt igal funktsioonitasemel täielikult saadaval. Kepler ja vanemad GCN-i protsessorid saavad DirectX 12 pakutavatest uutest võimalustest absoluutselt kasu. Seda öeldes on DirectX 12_0 ja 12_1 küpsetatud mõned spetsiifilised võimalused, millele vanemate kaartidega mängijad ei pääse - kuid nagu näitavad ülaltoodud tabelid, pole see AMD, Nvidia ega Inteli ainulaadne probleem. Ükski praegune Inteli IGP ei toeta DirectX 12_0, samas kui ainult Nvidia Maxwelli riistvara toetab 12_0 või 12_1.

See hiljutine slaid GTX 980 Ti käivitamisel tähendab, et Kepler piirdub funktsioonitasemega 11_0, mitte 11_1.

See hiljutine slaid GTX 980 Ti käivitamisel tähendab, et Kepler piirdub funktsioonitasemega 11_0, mitte 11_1.

Mõistmaks alternatiivi, et mõista, miks Microsoft DirectX 12 nii ehitas, nagu ta tegi. Enne DirectX 11 oli iga uus DirectX-versioon seotud uute riistvaranõuetega. Aeg-ajalt võivad AMD või Nvidia rakendada riistvaras mõnda konkreetset funktsiooni, enne kui see sai tulevase DirectX-i standardi osaks, kuid graafikakaardid kinnitati nende käivitamisel toetatud DirectX-i API-de külge. Ilma funktsioonitasemete pakutava paindlikkuseta saavad ainsad mängijad seda teha ära kasutama DX12 oleks need, kes ostsid kas GCN 1.1, 1.2 või Maxwelli GPU. Kõik teised, sealhulgas miljonid veidi vanemate kaartidega inimesed, oleks külmast välja jäetud.

Funktsioonitasemete lisamine ja nende rakendamine DX12 osana tähendab, et miljonid inimesed näevad uue API kasutuselevõtu siin ja praegu olulist kasu. Ei, vanemad GPU-d ei pruugi kõiki DX12 funktsioone toetada, kuid keegi ei pea graafikakaardi rakendamise probleemide tõttu valima DX11-s suurepärase väljanägemisega mängu või pooleldi DX12-versiooni vahel. Kui AMD, Nvidia ja Intel räägivad DirectX 12 toetamisest vanemal riistvaral, räägivad nad kõige olulisematest funktsioonidest - madalama üldkuluga API-d, parem protsessori kasutamine ja mitme GPU funktsionaalsus . Tegelikud funktsioonitasemed, mis määratlevad 12_1 erinevaks 11_0-st, on teatud stsenaariumide korral huvitavad ja kasulikud, kuid need ei kujunda tõepoolest seda, kuidas mängijad API-ga mängimist kogevad.

Nii nagu on väga vähe mänge, mis vajavad DirectX 11.2 või 11.1 (otse, ma ei suuda mõelda neist ühtegi), on ka DirectX 12 pealkirju, mis volitavad DirectX 12 FL 12_0 või 12_1, olema väga vähe. Ma ei ütle, et selliseid mänge kunagi ei juhtu, kuid see saab olema aastate pärast, kaua pärast seda, kui praegused GPU-d on asendatud kaasaegse riistvaraga. Kui teil on GCN 1.0, Fermi või Kepleri kaart, saate endale kõige olulisemad DirectX 12 funktsioonid. Sellepärast lõi Microsoft funktsioonitasemed, mida vanemad GPU-d saaksid kasutada - kui Fermi, Kepler ja vanemad GCN 1.0 kaardid ei saaks DirectX 12 peamistest eelistest kasu, ei oleks Microsoft neid esmalt kvalifitseerinud kasutama. API kujundati sihipäraselt tagurpidi ühilduvuse tagamiseks, et arendajad oleksid valmis seda sihtima.

Copyright © Kõik Õigused Kaitstud | 2007es.com