Microsoft je izdal izvorno kodo sloja D3D9On12, ki se uporablja za prevajanje ukazov Direct3D 9 v Direct3D 12

Microsoft je objavil dobre novice in to je nedavno dal vedeti prek objave na blogu odpiranje izvorne kode sloja D3D9On12 z implementacijo naprave DDI (Device Driver Interface), ki ukaze Direct3D 9 (D3D9) prevede v ukaze Direct3D 12 (D3D12).

Ta poteza Microsofta bo razvijalcem olajšala prehod z DirectX11 na DirectX12 za svoje igre. Prevajalska plast DX12 je v bistvu knjižnica pomočnikov za prevajanje grafičnih konceptov in ukazov iz domene v slogu DX11 v domeno v slogu DX12.

Minilo je že nekaj časa, odkar smo nazadnje omenili preslikavni sloj D3D9On12. Kot hitra posodobitev preslika ukaze D3D9 v D3D12, ki deluje kot vmesnik gonilnika naprav D3D9 (DDI). Ta sloj preslikave omogoča, da se starejše aplikacije D3D9 izvajajo v sodobnih sistemih, ki morda nimajo gonilnika D3D9. Od zadnje objave na spletnem dnevniku smo dodali podporo za razširitve Alpha to Coverage, odpravili nekaj napak in počistili kodno osnovo za odprtokodne datoteke.

To je nedvomno dobra novica in to je to različni projekti, ki delujejo s plastjo, lahko zdaj koristijo, saj kot taka omogoča, da stare aplikacije delujejo v okoljih, ki podpirajo le D3D12, tj. na primer to je lahko koristno za izvajanje D3D9 na podlagi projektov vkd3d in VKD3D-Protonsaj ti ponujajo izvedbo Direct3D 12 za Linux, ki deluje s prevajanjem klicev D3D12 v grafični vmesnik Vulkan.

D3D9On12 je plast, ki preslika grafične ukaze od D3D9 do D3D12. D3D9On12 ni implementacija API -ja D3D9, temveč implementacija uporabniškega načina D3D9 DDI (Device Driver Interface). To pomeni, da ni binarna datoteka, imenovana d3d9.dll, ampak se imenuje d3d9on12.dll.

Ko aplikacija ustvari napravo D3D9, se lahko odloči, da bo naprava D3D9On12 in ne domača naprava D3D9. Ko se to zgodi, se d3d9on12.dll naloži v času izvajanja D3D9 in inicializira. Ko aplikacija pokliče ukaze upodabljanja, bo D3D9 preveril te ukaze in jih nato pretvoril v DDI D3D9 ter jih poslal v D3D9On12, tako kot kateri koli gonilnik D3D9.

D3D9On12 bo sprejel te ukaze in jih pretvoril v klice API -ja D3D12, ki jih dodatno potrdi izvajanje D3D12, po izbiri pa tudi sloj za odpravljanje napak D3D12, ki se nato pretvori v DDI D3D12 in pošlje gonilniku D3D12.

Omenjeno je tudi, da projekt temelji na kodi podobnega podsistema, vključenega v sistem Windows 10. Treba je opozoriti, da je objava kode D3D9On12 bo dala priložnost tako da predstavniki skupnosti sodelujejo pri odpravljanju napak in dodajanju optimizacij, lahko pa služi tudi kot primer za preučevanje implementacije gonilnikov DDI D3D9 in okvir za ustvarjanje takšnih plasti za prevode različnih grafičnih API -jev v D3D12.

Zakaj odprtokodni?
D3D9On12 je že nekaj let del sistema Windows 10, v tem času pa se je povečal v stabilnosti in uporabnosti. Naj bo odprtokoden:

Dovolite skupnosti, da prispeva k dodatnim popravkom napak ali izboljšanju zmogljivosti.
služijo kot še en primer uporabe D3D12TranslationLayer
tistim, ki jih zanima, poglejte, kako izgleda implementacija DDI D3D9

Hkrati je bil izdan paket DXBC Signer, ki omogoča podpis datotek DXBC poljubno ustvarjeno z orodji tretjih oseb. D3D9On12 uporablja ta paket za podpisovanje DXBC -jev, ustvarjenih s pretvorbo senčnikov v nov model.

Končno če vas zanima več o tem, lahko preverite podrobnosti objave, ki jo je Microsoft objavil na svojem spletnem dnevniku V naslednji povezavi.


Pustite svoj komentar

Vaš e-naslov ne bo objavljen. Obvezna polja so označena z *

*

*

  1. Za podatke odgovoren: Miguel Ángel Gatón
  2. Namen podatkov: Nadzor neželene pošte, upravljanje komentarjev.
  3. Legitimacija: Vaše soglasje
  4. Sporočanje podatkov: Podatki se ne bodo posredovali tretjim osebam, razen po zakonski obveznosti.
  5. Shranjevanje podatkov: Zbirka podatkov, ki jo gosti Occentus Networks (EU)
  6. Pravice: Kadar koli lahko omejite, obnovite in izbrišete svoje podatke.