Microsoft släppte källkoden för D3D9On12 -lagret som används för att översätta Direct3D 9 -kommandon till Direct3D 12

Goda nyheter har släppts från Microsoft och det är det nyligen gjorde det känt via ett blogginlägg öppna källkoden för D3D9On12 -lagret med implementeringen av DDI (Device Driver Interface) -enheten, som översätter Direct3D 9 (D3D9) kommandon till Direct3D 12 (D3D12) kommandon.

Detta drag från Microsoft kommer nu att göra det lättare än någonsin för utvecklare att övergå från DirectX11 till DirectX12 för sina spel. DX12-översättningsskiktet är i huvudsak ett hjälpbibliotek för att översätta grafiska koncept och kommandon från en DX11-stildomän till en DX12-stildomän.

Det var ett tag sedan vi senast nämnde kartläggningsskiktet D3D9On12. Som en snabb uppdatering mappar den D3D9 -kommandon till D3D12 som fungerar som D3D9 Device Driver Interface (DDI). Med detta mappningsskikt kan äldre D3D9 -applikationer köras på moderna system som kanske inte har en D3D9 -drivrutin. Sedan det senaste blogginlägget har vi lagt till stöd för Alpha till tilläggstäckning, fixat några buggar och rensat kodbasen för öppen källkod.

Detta är utan tvekan goda nyheter och det är det olika projekt som arbetar med skiktet kan nu gynnaseftersom det tillåter att äldre applikationer fungerar i miljöer som bara stöder D3D12, det vill säga till exempel detta kan vara användbart för att implementera D3D9 baserat på projekten vkd3d och VKD3D-Protoneftersom dessa erbjuder en Direct3D 12 -implementering för Linux som fungerar genom att översätta D3D12 -anrop till Vulkan -grafik -API.

D3D9On12 är ett lager som kartlägger grafiska kommandon från D3D9 till D3D12. D3D9On12 är inte en implementering av D3D9 API, utan snarare en implementering av D3D9 DDI (Device Driver Interface) användarläge. Det betyder att det inte är en binär som heter d3d9.dll, utan snarare kallas det d3d9on12.dll.

När ett program skapar en D3D9 -enhet kan de välja att vara en D3D9On12 -enhet, snarare än en inbyggd D3D9 -enhet. När detta händer laddas d3d9on12.dll av D3D9 -körtiden och initieras. När applikationen anropar kommandon för återgivning, validerar D3D9 dessa kommandon och konverterar sedan dessa kommandon till DDI D3D9 och skickar det till D3D9On12, precis som alla D3D9 -drivrutiner.

D3D9On12 tar dessa kommandon och förvandlar dem till D3D12 API -anrop, som ytterligare valideras av D3D12 -körtiden, eventuellt inklusive D3D12 -felsökningsskiktet, som sedan konverteras till D3D12 DDI och skickas till D3D12 -drivrutinen.

Det nämns också att projektet är baserat på koden för ett liknande delsystem som ingår i Windows 10. Det bör noteras att publiceringen av koden D3D9On12 kommer att ge en möjlighet så att samhällsrepresentanterna delta i buggfixar och lägga till optimeringar, och det kan också fungera som ett exempel för att studera implementeringen av D3D9 DDI -drivrutiner och en ram för att skapa sådana lager för översättningar av olika grafik -API: er i D3D12.

Varför öppen källkod?
D3D9On12 har varit en del av Windows 10 i några år nu, och under den tiden har den ökat i stabilitet och användbarhet. Gör det till öppen källkod:

Låt gemenskapen bidra med ytterligare buggfixar eller prestandaförbättringar.
tjäna som ett annat exempel på hur man använder D3D12TranslationLayer
ge dem som är intresserade en titt på hur en D3D9 DDI -implementering ser ut

Samtidigt har ett DXBC Signer -paket släppts som gör det möjligt att signera DXBC -filer godtyckligt genererat av verktygspaket från tredje part. D3D9On12 använder detta paket för att signera DXBC: er som genereras genom att konvertera shaders till en ny modell.

Slutligen om du är intresserad av att veta mer om det, kan du kontrollera detaljerna i publikationen som Microsoft gjorde på sin blogg I följande länk.


Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.