Microsoft wydał kod źródłowy warstwy D3D9On12, który służy do tłumaczenia poleceń Direct3D 9 na Direct3D 12

Firma Microsoft wydała dobre wieści i to ostatnio dał mi znać za pośrednictwem wpisu na blogu otwarcie kodu źródłowego warstwy D3D9On12 z implementacją urządzenia DDI (Device Driver Interface), które tłumaczy polecenia Direct3D 9 (D3D9) na polecenia Direct3D 12 (D3D12).

To posunięcie Microsoftu ułatwi teraz programistom przejście z DirectX11 na DirectX12 w swoich grach. Warstwa tłumacząca DX12 jest zasadniczo biblioteką pomocniczą do tłumaczenia koncepcji graficznych i poleceń z domeny w stylu DX11 na domenę w stylu DX12.

Minęło trochę czasu, odkąd ostatnio wspomnieliśmy o warstwie mapowania D3D9On12. W ramach szybkiej aktualizacji mapuje polecenia D3D9 na D3D12 działając jako interfejs sterownika urządzenia (DDI) D3D9. Posiadanie tej warstwy mapowania umożliwia uruchamianie starszych aplikacji D3D9 w nowoczesnych systemach, które mogą nie mieć sterownika D3D9. Od ostatniego wpisu na blogu dodaliśmy obsługę rozszerzeń Alpha to Coverage, naprawiliśmy kilka błędów i uporządkowaliśmy bazę kodu dla open source.

To niewątpliwie dobra wiadomość i czy to różne projekty, które pracują z warstwą, mogą teraz skorzystać, ponieważ jako taka pozwala starszym aplikacjom działać w środowiskach, które obsługują tylko D3D12, czyli na przykład może to być przydatne do wdrożenia D3D9 na podstawie projektów vkd3d i VKD3D-Protonponieważ oferują implementację Direct3D 12 dla Linuksa, która działa poprzez tłumaczenie wywołań D3D12 na API graficzne Vulkan.

D3D9On12 to warstwa, która mapuje polecenia graficzne z D3D9 do D3D12. D3D9On12 nie jest implementacją interfejsu API D3D9, ale raczej implementacją trybu użytkownika D3D9 DDI (interfejs sterownika urządzenia). Oznacza to, że nie jest to plik binarny o nazwie d3d9.dll, ale raczej o nazwie d3d9on12.dll.

Gdy aplikacja tworzy urządzenie D3D9, może wybrać urządzenie D3D9On12 zamiast natywnego urządzenia D3D9. W takim przypadku plik d3d9on12.dll jest ładowany przez środowisko wykonawcze D3D9 i inicjowany. Gdy aplikacja wywoła polecenia renderowania, D3D9 sprawdzi poprawność tych poleceń, a następnie przekonwertuje je na DDI D3D9 i wyśle ​​do D3D9On12, tak jak każdy sterownik D3D9.

D3D9On12 pobierze te polecenia i przekonwertuje je na wywołania interfejsu API D3D12, które są dalej sprawdzane przez środowisko wykonawcze D3D12, opcjonalnie łącznie z warstwą debugowania D3D12, które są następnie konwertowane na DDI D3D12 i wysyłane do sterownika D3D12.

Wspomina się również o tym projekt bazuje na kodzie podobnego podsystemu zawartego w Windows 10. Należy zauważyć, że publikacja kodu D3D9On12 zapewni okazję aby przedstawiciele społeczności uczestniczyć w poprawkach błędów i dodawaniu optymalizacji, a także może służyć jako przykład do przestudiowania implementacji sterowników D3D9 DDI i frameworka do tworzenia takich warstw dla tłumaczeń różnych API graficznych w D3D12.

Dlaczego open source?
D3D9On12 jest częścią systemu Windows 10 od kilku lat i przez ten czas zyskał na stabilności i użyteczności. Zrób to open source:

Pozwól społeczności na wprowadzanie dodatkowych poprawek błędów lub ulepszeń wydajności.
służą jako kolejny przykład wykorzystania D3D12TranslationLayer
zainteresowanym pokaż, jak wygląda implementacja D3D9 DDI

W tym samym czasie został wydany pakiet DXBC Signer, który umożliwia podpisywanie plików DXBC arbitralnie generowane przez zestawy narzędzi innych firm. D3D9On12 używa tego pakietu do podpisywania DXBC wygenerowanych przez konwersję shaderów do nowego modelu.

W końcu jeśli chcesz dowiedzieć się więcej na ten temat, możesz sprawdzić szczegóły publikacji, którą Microsoft opublikował na swoim blogu W poniższym linku.


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.