Microsoft lanzou o código fonte da capa D3D9On12 que se usa para traducir comandos Direct3D 9 a Direct3D 12

De Microsoft lanzáronse boas novas e é que hai pouco deuno a coñecer a través dunha publicación no blog abrindo o código fonte da capa D3D9On12 coa implementación do dispositivo DDI (Device Driver Interface), que traduce os comandos Direct3D 9 (D3D9) en comandos Direct3D 12 (D3D12).

Este movemento de Microsoft agora facilitará que nunca aos desenvolvedores a transición de DirectX11 a DirectX12 para os seus xogos. A capa de tradución DX12 é esencialmente unha biblioteca auxiliar para traducir conceptos e comandos gráficos dun dominio de estilo DX11 a un dominio de estilo DX12.

Pasou un tempo desde que mencionamos por última vez a capa de mapeo D3D9On12. Como actualización rápida, mapea os comandos D3D9 a D3D12 que actúan como a interface de controlador de dispositivo D3D9 (DDI). Ter esta capa de mapeo permite que as aplicacións D3D9 máis antigas funcionen en sistemas modernos que poden non ter un controlador D3D9. Desde a última publicación do blog, engadimos soporte para as extensións Alpha to Coverage, arranxamos algúns erros e limpamos a base de código para o código aberto.

Esta é sen dúbida unha boa noticia e é iso agora poden beneficiarse varios proxectos que funcionan coa capa, xa que como tal permite que as aplicacións herdadas funcionen en contornos que só admiten D3D12, é dicir por exemplo, isto pode ser útil para implementar D3D9 baseado nos proxectos vkd3d e VKD3D-Protonxa que ofrecen unha implementación Direct3D 12 para Linux que funciona traducindo as chamadas D3D12 á API de gráficos Vulkan.

D3D9On12 é unha capa que mapea ordes gráficos de D3D9 a D3D12. D3D9On12 non é unha implementación da API D3D9, senón unha implementación do modo de usuario DI D3D9 DDI (Device Driver Interface). Isto significa que non se trata dun binario chamado d3d9.dll, senón que se chama d3d9on12.dll.

Cando unha aplicación crea un dispositivo D3D9, pode optar por ser un dispositivo D3D9On12, en lugar dun dispositivo D3D9 nativo. Cando isto ocorre, d3d9on12.dll é cargado polo tempo de execución D3D9 e inicializado. Cando a aplicación chama aos comandos de renderización, D3D9 validará eses comandos e logo converterá eses comandos en DDI D3D9 e enviarao a D3D9On12, como calquera controlador D3D9.

D3D9On12 tomará estes comandos e converteraos en chamadas API D3D12, que son validadas polo tempo de execución D3D12, incluíndo opcionalmente a capa de depuración D3D12, que logo se converte a DDI D3D12 e envíase ao controlador D3D12.

Tamén se menciona que o proxecto está baseado no código dun subsistema similar incluído en Windows 10. Hai que ter en conta que a publicación do código D3D9On12 proporcionará unha oportunidade para que os representantes da comunidade participar nas correccións de erros e engadir optimizacións, e tamén pode servir de exemplo para estudar a implementación dos controladores DDI D3D9 e un marco para crear tales capas para traducións de varias API gráficas en D3D12.

Por que o código aberto?
D3D9On12 forma parte de Windows 10 desde hai uns anos e durante ese tempo medrou en estabilidade e usabilidade. Facelo de código aberto:

Permitir á comunidade contribuír con correccións de erros ou melloras de rendemento.
servir como un exemplo máis de como usar D3D12TranslationLayer
vexa aos interesados ​​o aspecto dunha implementación DDI D3D9

Ao mesmo tempo, lanzouse un paquete DXBC Signer que permite a sinatura de ficheiros DXBC arbitraria xerada por conxuntos de ferramentas de terceiros. D3D9On12 usa este paquete para asinar DXBC xerados ao converter sombreadores a un novo modelo.

Finalmente se estás interesado en saber máis sobre el, podes consultar os detalles da publicación que Microsoft fixo no seu blog Na seguinte ligazón.


O contido do artigo adhírese aos nosos principios de ética editorial. Para informar dun erro faga clic en aquí.

Sexa o primeiro en opinar sobre

Deixa o teu comentario

Enderezo de correo electrónico non será publicado. Os campos obrigatorios están marcados con *

*

*

  1. Responsable dos datos: Miguel Ángel Gatón
  2. Finalidade dos datos: controlar SPAM, xestión de comentarios.
  3. Lexitimación: o seu consentimento
  4. Comunicación dos datos: os datos non serán comunicados a terceiros salvo obrigación legal.
  5. Almacenamento de datos: base de datos aloxada por Occentus Networks (UE)
  6. Dereitos: en calquera momento pode limitar, recuperar e eliminar a súa información.