Microsoft ha rilasciato il codice sorgente del livello D3D9On12 utilizzato per tradurre i comandi Direct3D 9 in Direct3D 12

Buone notizie sono state rilasciate da Microsoft ed è quello di recente lo ha reso noto tramite un post sul blog aprendo il codice sorgente del livello D3D9On12 con l'implementazione del dispositivo DDI (Device Driver Interface), che traduce i comandi Direct3D 9 (D3D9) in comandi Direct3D 12 (D3D12).

Questa mossa di Microsoft ora renderà più facile che mai per gli sviluppatori la transizione da DirectX11 a DirectX12 per i loro giochi. Il livello di traduzione DX12 è essenzialmente una libreria di supporto per la traduzione di concetti e comandi grafici da un dominio in stile DX11 a un dominio in stile DX12.

È passato un po' di tempo dall'ultima volta che abbiamo menzionato il livello di mappatura D3D9On12. Come aggiornamento rapido, mappa i comandi D3D9 su D3D12 fungendo da D3D9 Device Driver Interface (DDI). Avere questo livello di mappatura consente alle applicazioni D3D9 meno recenti di essere eseguite su sistemi moderni che potrebbero non avere un driver D3D9. Dall'ultimo post sul blog, abbiamo aggiunto il supporto per le estensioni da Alpha a Coverage, corretto alcuni bug e ripulito la base di codice per l'open source.

Questa è senza dubbio una buona notizia ed è quella vari progetti che funzionano con il livello ora possono trarne vantaggio, poiché in quanto tale consente alle applicazioni legacy di funzionare in ambienti che supportano solo D3D12, ovvero ad esempio, questo può essere utile per implementare D3D9 in base ai progetti vkd3d e VKD3D-Protonpoiché offrono un'implementazione Direct3D 12 per Linux che funziona traducendo le chiamate D3D12 all'API grafica Vulkan.

D3D9On12 è un livello che mappa i comandi grafici da D3D9 a D3D12. D3D9On12 non è un'implementazione dell'API D3D9, ma piuttosto un'implementazione della modalità utente D3D9 DDI (Device Driver Interface). Ciò significa che non è un binario chiamato d3d9.dll, ma piuttosto si chiama d3d9on12.dll.

Quando un'applicazione crea un dispositivo D3D9, può scegliere di essere un dispositivo D3D9On12, anziché un dispositivo D3D9 nativo. Quando ciò accade, d3d9on12.dll viene caricato dal runtime D3D9 e inizializzato. Quando l'applicazione chiama i comandi di rendering, D3D9 convaliderà quei comandi e quindi convertirà quei comandi in DDI D3D9 e li invierà a D3D9On12, proprio come qualsiasi driver D3D9.

D3D9On12 prenderà questi comandi e li trasformerà in chiamate API D3D12, che vengono ulteriormente convalidate dal runtime D3D12, includendo facoltativamente il livello di debug D3D12, che vengono quindi convertiti in D3D12 DDI e inviati al driver D3D12.

Si dice anche che il progetto si basa sul codice di un sottosistema simile incluso in Windows 10. Si segnala che la pubblicazione del codice D3D9On12 offrirà un'opportunità in modo che i rappresentanti della comunità partecipare a correzioni di bug e aggiungere ottimizzazioni, e può anche servire come esempio per studiare l'implementazione dei driver DDI D3D9 e un framework per creare tali livelli per le traduzioni di varie API grafiche in D3D12.

Perché open source?
D3D9On12 fa parte di Windows 10 da alcuni anni e durante questo periodo è cresciuto in stabilità e usabilità. Rendilo open source:

Consenti alla community di contribuire con ulteriori correzioni di bug o miglioramenti delle prestazioni.
servire come un altro esempio di come utilizzare D3D12TranslationLayer
dare a coloro che sono interessati un'occhiata a come appare un'implementazione DDI D3D9

Allo stesso tempo, è stato rilasciato un pacchetto DXBC Signer che consente la possibilità di firmare file DXBC arbitrario generato da toolkit di terze parti. D3D9On12 utilizza questo pacchetto per firmare i DXBC generati convertendo gli shader in un nuovo modello.

Infine se sei interessato a saperne di più, puoi controllare i dettagli della pubblicazione che Microsoft ha fatto sul suo blog nel seguente link


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.