Microsoft a lansat codul sursă al stratului D3D9On12 care este utilizat pentru a traduce comenzile Direct3D 9 în Direct3D 12

Vești bune au fost lansate de la Microsoft și este recent a făcut-o cunoscută printr-o postare pe blog deschiderea codului sursă al stratului D3D9On12 cu implementarea dispozitivului DDI (Device Driver Interface), care traduce comenzile Direct3D 9 (D3D9) în comenzile Direct3D 12 (D3D12).

Această mișcare a Microsoft va face acum mai ușor ca oricând dezvoltatorilor să treacă de la DirectX11 la DirectX12 pentru jocurile lor. Stratul de traducere DX12 este în esență o bibliotecă de ajutor pentru traducerea conceptelor grafice și a comenzilor dintr-un domeniu în stil DX11 într-un domeniu în stil DX12.

A trecut ceva timp de când am menționat ultima dată stratul de cartografiere D3D9On12. Ca o actualizare rapidă, mapează comenzile D3D9 la D3D12 acționând ca interfața D3D9 Device Driver Interface (DDI). Având acest strat de mapare, aplicațiile D3D9 mai vechi pot rula pe sisteme moderne care pot să nu aibă un driver D3D9. De la ultima postare pe blog, am adăugat suport pentru extensiile Alpha to Coverage, am remediat unele erori și am curățat baza de cod pentru open source.

Aceasta este, fără îndoială, o veste bună și este aceea diverse proiecte care funcționează cu stratul pot beneficia acum, deoarece, ca atare, permite aplicațiilor vechi să funcționeze în medii care acceptă doar D3D12, adică de exemplu, acest lucru poate fi util pentru implementarea D3D9 pe baza proiectelor vkd3d și VKD3D-Protondeoarece acestea oferă o implementare Direct3D 12 pentru Linux care funcționează prin traducerea apelurilor D3D12 în API-ul grafic Vulkan.

D3D9On12 este un strat care mapează comenzile grafice de la D3D9 la D3D12. D3D9On12 nu este o implementare a API-ului D3D9, ci mai degrabă o implementare a modului de utilizator D3D9 DDI (Device Driver Interface). Asta înseamnă că nu este un binar numit d3d9.dll, ci mai degrabă se numește d3d9on12.dll.

Când o aplicație creează un dispozitiv D3D9, poate alege să fie un dispozitiv D3D9On12, mai degrabă decât un dispozitiv D3D9 nativ. Când se întâmplă acest lucru, d3d9on12.dll este încărcat de runtime-ul D3D9 și inițializat. Când aplicația apelează comenzi de redare, D3D9 va valida acele comenzi și apoi le va converti în DDI D3D9 și le va trimite la D3D9On12, la fel ca orice driver D3D9.

D3D9On12 va prelua aceste comenzi și le va transforma în apeluri API D3D12, care sunt validate în continuare de runtime-ul D3D12, incluzând opțional stratul de depanare D3D12, care sunt apoi convertite în D3D12 DDI și trimise la driverul D3D12.

De asemenea, se menționează că proiectul se bazează pe codul unui subsistem similar inclus în Windows 10. Trebuie remarcat faptul că publicarea codului D3D9On12 va oferi o oportunitate astfel încât reprezentanții comunității participă la remedierea erorilor și adăugarea de optimizări, și poate servi, de asemenea, ca exemplu pentru a studia implementarea driverelor DDI D3D9 și un cadru pentru crearea unor astfel de straturi pentru traducerea diferitelor API grafice în D3D12.

De ce open source?
D3D9On12 face parte din Windows 10 de câțiva ani și în acest timp a crescut în stabilitate și utilizare. Faceți-l open source:

Permiteți comunității să contribuie la remedieri de erori suplimentare sau îmbunătățiri ale performanței.
servește ca un alt exemplu de utilizare a D3D12TranslationLayer
arătați celor interesați cum arată o implementare D3D9 DDI

În același timp, a fost lansat un pachet DXBC Signer care permite posibilitatea de a semna fișiere DXBC arbitrar generat de seturi de instrumente terță parte. D3D9On12 folosește acest pachet pentru a semna DXBC-uri generate prin convertirea umbrelor într-un nou model.

În cele din urmă dacă sunteți interesat să aflați mai multe despre asta, puteți verifica detaliile publicației pe care Microsoft a făcut-o pe blogul său În următorul link.


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.