Microsoft hat den Quellcode des D3D9On12-Layers veröffentlicht, der verwendet wird, um Direct3D 9-Befehle in Direct3D 12 zu übersetzen

Gute Nachrichten wurden von Microsoft veröffentlicht und das ist es vor kurzem enthüllt über einen Blogbeitrag Öffnen des Quellcodes der D3D9On12-Schicht mit der Implementierung des DDI-Geräts (Device Driver Interface), das Direct3D 9-Befehle (D3D9) in Direct3D 12-Befehle (D3D12) übersetzt.

Dieser Schritt von Microsoft wird es Entwicklern jetzt einfacher denn je machen, für ihre Spiele von DirectX11 auf DirectX12 umzusteigen. Die DX12-Übersetzungsschicht ist im Wesentlichen eine Hilfsbibliothek zum Übersetzen von grafischen Konzepten und Befehlen aus einer Domäne im DX11-Stil in eine Domäne im DX12-Stil.

Es ist schon eine Weile her, seit wir die D3D9On12-Mapping-Ebene das letzte Mal erwähnt haben. Als schnelles Update ordnet es D3D9-Befehle D3D12 zu, die als D3D9 Device Driver Interface (DDI) fungieren. Mit dieser Zuordnungsschicht können ältere D3D9-Anwendungen auf modernen Systemen ausgeführt werden, die möglicherweise keinen D3D9-Treiber haben. Seit dem letzten Blogbeitrag haben wir Unterstützung für die Erweiterungen Alpha bis Coverage hinzugefügt, einige Fehler behoben und die Codebasis für Open Source aufgeräumt.

Das ist zweifellos eine gute Nachricht und ist das? verschiedene Projekte, die mit dem Layer arbeiten, können nun profitieren, da es Legacy-Anwendungen als solche ermöglicht, in Umgebungen zu arbeiten, die nur D3D12 unterstützen, d. h. zB Dies kann nützlich sein, um D3D9 basierend auf den Projekten zu implementieren vkd3d und VKD3D-Protonda diese eine Direct3D 12-Implementierung für Linux anbieten, die durch die Übersetzung von D3D12-Aufrufen in die Vulkan-Grafik-API funktioniert.

D3D9On12 ist ein Layer, der grafische Befehle von D3D9 auf D3D12 abbildet. D3D9On12 ist keine Implementierung der D3D9 API, sondern eine Implementierung des D3D9 DDI (Device Driver Interface) Benutzermodus. Das heißt, es ist keine Binärdatei namens d3d9.dll, sondern heißt d3d9on12.dll.

Wenn eine Anwendung ein D3D9-Gerät erstellt, kann es anstelle eines nativen D3D9-Geräts als D12D3On9-Gerät ausgewählt werden. In diesem Fall wird d3d9on12.dll von der D3D9-Laufzeit geladen und initialisiert. Wenn die Anwendung die Renderbefehle aufruft, validiert D3D9 diese Befehle und konvertiert diese Befehle dann in DDI D3D9 und sendet sie an D3D9On12, genau wie jeder D3D9-Treiber.

D3D9On12 nimmt diese Befehle und konvertiert sie in D3D12-API-Aufrufe, die von der D3D12-Laufzeit weiter validiert werden, optional einschließlich der D3D12-Debug-Schicht, die dann in DDI D3D12 konvertiert und an den D3D12-Treiber gesendet werden.

Es wird auch erwähnt, dass Das Projekt basiert auf dem Code eines ähnlichen Subsystems, das in Windows 10 enthalten ist. Es ist zu beachten, dass die Veröffentlichung des Codes D3D9On12 wird eine Gelegenheit bieten damit die Gemeindevertreter an Fehlerbehebungen und Optimierungen teilnehmen, und es kann auch als Beispiel dienen, um die Implementierung der D3D9-DDI-Treiber und ein Framework zum Erstellen solcher Schichten für die Übersetzung verschiedener Grafik-APIs in D3D12 zu untersuchen.

Warum Open Source?
D3D9On12 ist seit einigen Jahren Teil von Windows 10 und hat in dieser Zeit an Stabilität und Benutzerfreundlichkeit zugenommen. Machen Sie es Open Source:

Erlauben Sie der Community, zusätzliche Fehlerkorrekturen oder Leistungsverbesserungen beizutragen.
dienen als weiteres Beispiel für die Verwendung des D3D12TranslationLayer
geben Interessierten einen Einblick, wie eine D3D9-DDI-Implementierung aussieht

Gleichzeitig wurde ein DXBC-Signer-Paket veröffentlicht, das die Möglichkeit bietet, DXBC-Dateien zu signieren willkürlich von Drittanbieter-Toolkits generiert werden. D3D9On12 verwendet dieses Paket zum Signieren von DXBCs, die durch die Konvertierung von Shadern in ein neues Modell generiert wurden.

Schließlich wenn Sie mehr darüber wissen möchten, können Sie die Details der Veröffentlichung von Microsoft in seinem Blog überprüfen im folgenden Link.


Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: Miguel Ángel Gatón
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.