Microsoft frigav kildekoden for D3D9On12 -laget, der bruges til at oversætte Direct3D 9 -kommandoer til Direct3D 12

Gode ​​nyheder er blevet frigivet fra Microsoft og det er det for nylig gjort det kendt via et blogindlæg åbning af kildekoden for D3D9On12 -laget med implementeringen af ​​DDI (Device Driver Interface) -enheden, som oversætter Direct3D 9 (D3D9) kommandoer til Direct3D 12 (D3D12) kommandoer.

Dette skridt fra Microsoft vil nu gøre det lettere end nogensinde for udviklere at overgå fra DirectX11 til DirectX12 til deres spil. DX12-oversættelseslaget er i det væsentlige et hjælperbibliotek til at oversætte grafiske begreber og kommandoer fra et DX11-stil domæne til et DX12-stil domæne.

Det er et stykke tid siden, vi sidst nævnte D3D9On12 kortlægningslag. Som en hurtig opdatering kortlægger den D3D9 -kommandoer til D3D12, der fungerer som D3D9 Device Driver Interface (DDI). Med dette kortlægningslag kan ældre D3D9 -applikationer køre på moderne systemer, der muligvis ikke har en D3D9 -driver. Siden det sidste blogindlæg har vi tilføjet support til Alpha til dækningsudvidelser, rettet nogle fejl og ryddet op i kodebasen for open source.

Dette er utvivlsomt gode nyheder og er det forskellige projekter, der arbejder med laget, kan nu gavne, da det som sådan tillader ældre programmer at arbejde i miljøer, der kun understøtter D3D12, det vil sige for eksempel dette kan være nyttigt at implementere D3D9 baseret på projekterne vkd3d og VKD3D-Protonda disse tilbyder en Direct3D 12 -implementering til Linux, der fungerer ved at oversætte D3D12 -opkald til Vulkan -grafik -API.

D3D9On12 er et lag, der kortlægger grafiske kommandoer fra D3D9 til D3D12. D3D9On12 er ikke en implementering af D3D9 API, men derimod en implementering af brugerfunktionen D3D9 DDI (Device Driver Interface). Det betyder, at det ikke er et binært kaldet d3d9.dll, men det kaldes snarere d3d9on12.dll.

Når et program opretter en D3D9 -enhed, kan de vælge at være en D3D9On12 -enhed frem for en indbygget D3D9 -enhed. Når dette sker, indlæses d3d9on12.dll af D3D9 -runtime og initialiseres. Når applikationen kalder render -kommandoer, validerer D3D9 disse kommandoer og konverterer derefter disse kommandoer til DDI D3D9 og sender den til D3D9On12, ligesom enhver D3D9 -driver.

D3D9On12 vil tage disse kommandoer og omdanne dem til D3D12 API -opkald, som yderligere valideres af D3D12 -runtime, eventuelt inklusive D3D12 -fejlfindingslaget, som derefter konverteres til D3D12 DDI og sendes til D3D12 -driveren.

Det nævnes også, at projektet er baseret på koden for et lignende undersystem inkluderet i Windows 10. Det skal bemærkes, at offentliggørelsen af ​​koden D3D9On12 vil give en mulighed så at samfundsrepræsentanterne deltage i fejlrettelser og tilføjelse af optimeringer, og det kan også tjene som et eksempel på at studere implementeringen af ​​D3D9 DDI -driverne og en ramme for at skabe sådanne lag til oversættelser af forskellige grafiske API'er i D3D12.

Hvorfor open source?
D3D9On12 har været en del af Windows 10 i et par år nu, og i løbet af den tid er det vokset i stabilitet og brugervenlighed. Gør det til open source:

Tillad fællesskabet at bidrage med yderligere fejlrettelser eller forbedringer af ydeevnen.
tjene som et andet eksempel på, hvordan man bruger D3D12TranslationLayer
giv dem, der er interesserede, et kig på, hvordan en D3D9 DDI -implementering ser ud

Samtidig er der udgivet en DXBC Signer -pakke, der gør det muligt at signere DXBC -filer vilkårligt genereret af tredjeparts værktøjskasser. D3D9On12 bruger denne pakke til at signere DXBC'er genereret ved at konvertere shaders til en ny model.

Endelig hvis du er interesseret i at vide mere om det, kan du kontrollere detaljerne i den publikation, som Microsoft lavede på sin blog I det følgende link.


Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.