Microsoft je objavio izvorni kod sloja D3D9On12 koji se koristi za prevođenje naredbi Direct3D 9 u Direct3D 12

Dobre vijesti objavljene su iz Microsofta i to je nedavno dao do znanja putem objave na blogu otvaranje izvornog koda sloja D3D9On12 s implementacijom DDI (Device Driver Interface) uređaja, koji prevodi naredbe Direct3D 9 (D3D9) u naredbe Direct3D 12 (D3D12).

Ovaj potez Microsofta sada će programerima olakšati prelazak sa DirectX11 na DirectX12 za svoje igre. DX12 prevodilački sloj u osnovi je pomoćna biblioteka za prevođenje grafičkih pojmova i naredbi iz domene u stilu DX11 u domenu u stilu DX12.

Prošlo je dosta vremena od kada smo zadnji put spomenuli sloj preslikavanja D3D9On12. Kao brzo ažuriranje, preslikava naredbe D3D9 u D3D12 koje djeluju kao D3D9 sučelje upravljačkog programa uređaja (DDI). Imajući ovaj sloj mapiranja omogućava se starijim D3D9 aplikacijama da rade na modernim sistemima koji možda nemaju upravljački program D3D9. Od zadnjeg posta na blogu dodali smo podršku za proširenja Alpha to Coverage, ispravili neke greške i očistili bazu kodova za open source.

Ovo je nesumnjivo dobra vijest i to je to različiti projekti koji rade sa slojem sada mogu imati koristi, jer kao takav dopušta naslijeđenim aplikacijama rad u okruženjima koja podržavaju samo D3D12, tj na primjer, ovo može biti korisno za implementaciju D3D9 na osnovu projekata vkd3d i VKD3D-Protonbudući da oni nude Direct3D 12 implementaciju za Linux koja radi prevođenjem D3D12 poziva u Vulkan grafički API.

D3D9On12 je sloj koji preslikava grafičke naredbe od D3D9 do D3D12. D3D9On12 nije implementacija D3D9 API -ja, već implementacija korisničkog načina rada D3D9 DDI (Device Driver Interface). To znači da to nije binarni dokument koji se zove d3d9.dll, već se naziva d3d9on12.dll.

Kada aplikacija kreira D3D9 uređaj, može izabrati da bude D3D9On12 uređaj, a ne izvorni D3D9 uređaj. Kada se to dogodi, d3d9on12.dll učitava vrijeme izvođenja D3D9 i inicijalizira. Kada aplikacija pozove naredbe za iscrtavanje, D3D9 će potvrditi te naredbe, a zatim će te naredbe pretvoriti u DDI D3D9 i poslati ih u D3D9On12, baš kao i svaki upravljački program D3D9.

D3D9On12 će preuzeti ove naredbe i pretvoriti ih u D3D12 API pozive, koji se dodatno potvrđuju vremenom izvršavanja D3D12, opcionalno uključujući sloj za otklanjanje grešaka D3D12, koji se zatim pretvaraju u DDI D3D12 i šalju upravljačkom programu D3D12.

Takođe se spominje da projekt se temelji na kodu sličnog podsistema uključenog u Windows 10. Treba napomenuti da je objavljivanje koda D3D9On12 pružiće priliku tako da predstavnici zajednice sudjelovati u ispravljanju grešaka i dodavanju optimizacija, a može poslužiti i kao primjer za proučavanje implementacije D3D9 DDI upravljačkih programa i okvir za stvaranje takvih slojeva za prijevode različitih grafičkih API -ja u D3D12.

Zašto open source?
D3D9On12 je dio Windows 10 već nekoliko godina, a za to vrijeme je porastao u stabilnosti i upotrebljivosti. Neka to bude otvoreni izvor:

Dopustite zajednici da doprinese dodatnim ispravkama grešaka ili poboljšanjima performansi.
poslužiti kao još jedan primjer upotrebe D3D12TranslationLayer
dajte onima koji su zainteresovani da pogledaju kako izgleda implementacija DD3 D9DXNUMX

Istovremeno je objavljen paket DXBC Signer koji omogućava potpisivanje DXBC datoteka proizvoljno generirano kompletima alata trećih strana. D3D9On12 koristi ovaj paket za potpisivanje DXBC -ova generiranih pretvaranjem shadera u novi model.

Konačno ako ste zainteresirani da saznate više o tome, detalje o publikaciji koju je Microsoft objavio na svom blogu možete provjeriti Na sledećem linku.


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.