D7VK 2.2 verbessert die Direct3D-3-Unterstützung für das Spielen von Windows-Klassikern unter Linux.

  • D7VK 2.2 verbessert die Direct3D 3-Unterstützung deutlich und behebt Geräteprobleme, Ausführungspuffer und Vertex-Transformationen.
  • Das Update verbessert außerdem das Texturmanagement und die Transparenz der Farbschlüssel und reduziert den Overhead auf einigen Direct3D 5- und 6-Pfaden.
  • D7VK 2.2 basiert auf DXVK 3.1 und verbessert kontinuierlich die Ausführung klassischer Windows-Spiele mit Wine und Proton unter Linux.

D7VK 2.2

D7VK 2.2 ist jetzt als neue Version der Grafikübersetzungsschicht verfügbar, die es ermöglicht, klassische Windows-Spiele unter Linux auszuführen. Das Projekt, das auf DXVK basiert, konzentriert sich auf die Übersetzung der älteren Direct3D-APIs 7, 6, 5 und 3 nach Vulkan für die Verwendung mit Wine und Proton. Ein wesentlicher Teil dieser neuen Version widmet sich einem der Bereiche mit den größten Schwächen: der Direct3D-3-Unterstützung.

Das Update erscheint nur wenige Wochen nach D7VK 2.1 und setzt die Weiterentwicklung einer Technologie fort, die besonders für diejenigen interessant ist, die Spiele der späten 90er und frühen 2000er Jahre auf modernen Linux-Systemen spielen möchten. Neben Verbesserungen an Direct3D 3 enthält D7VK 2.2 zahlreiche Fehlerbehebungen und interne Anpassungen und basiert auf der aktuellen Version DXVK 3.1.

D7VK 2.2 konzentriert sich auf Direct3D 3

Die wichtigste Neuerung in D7VK 2.2 betrifft Direct3D 3, eine API, die im Vergleich zu den anderen, älteren Technologien des Projekts etwas hinterherhinkte. Obwohl die vom Entwickler gesammelten und getesteten Direct3D-3-Spiele bereits mit D7VK funktionierten, gab es noch einige Sonderfälle und Verhaltensweisen, die nicht korrekt implementiert waren.

Dies erwies sich als besonders problematisch, da der Katalog der Spiele, die Direct3D 3 verwenden, schwer zu rekonstruieren ist. Es handelt sich um sehr alte Titel, von denen viele nicht mehr im Handel erhältlich oder schwer zu finden sind, was es schwierig macht, alle möglichen Implementierungen zu testen, die in der Praxis auftreten können.

Mit dieser Version hat der Entwickler einen Großteil der Direct3D 3-Implementierung überarbeitet, um sie dem Reifegrad der anderen mit D7VK kompatiblen APIs anzunähern.

Das Verhalten der D3D3-Bausteine ​​entspricht dem ursprünglichen

Eine der technischen Änderungen betrifft die Überarbeitung des Referenzzählsystems für Direct3D-3-Geräte. D7VK 2.2 modifiziert diesen Mechanismus, sodass sein Verhalten dem der nativen API-Implementierung entspricht.

Solche Details mögen dem Benutzer irrelevant erscheinen, sind aber für die Übersetzungsschicht von entscheidender Bedeutung. Ältere Spiele verwenden mitunter spezifische Verhaltensweisen beim Erstellen und Zerstören von Objekten, und selbst scheinbar kleine Unterschiede können zu schwer zu diagnostizierenden Fehlern führen.

Die neue Implementierung verringert somit die Wahrscheinlichkeit, dass bestimmte Titel ihre Grafikgeräte nicht auf eine von D7VK nicht erwartete Weise verwalten.

D7VK 2.2 führt Verbesserungen bei der Transparenz durch Farbschlüssel ein.

D7VK 2.2 modifiziert auch das Farbschlüsselungsmanagement auf reinen Direct3D-3-Geräten. Bisher verwendete das Projekt ein sehr einfaches Modell, bei dem diese Funktion unter bestimmten Umständen immer aktiviert war.

Die neue Version ermöglicht eine präzise Steuerung des Aktivierungszeitpunkts und bildet das Verhalten von Direct3D 3 getreuer nach. Dies ist besonders wichtig für ältere Spiele, die Transparenztechniken auf Basis bestimmter Farben verwenden.

Darüber hinaus wurden die Berechnungen für normalisierte Farbbereiche optimiert. Diese Werte werden nun nur noch aktualisiert, wenn sich die Oberflächenbeschreibung ändert, sodass sie zwischengespeichert und später wiederverwendet werden können.

Das Ergebnis sollte eine kleine bis moderate Verbesserung der Leistung in Spielen sein, die Farbschlüsseltransparenz verwenden, sowie ein korrekteres Verhalten.

Grenzfälle in Ausführungspuffern werden korrigiert

Ein weiterer wichtiger Aspekt von D7VK 2.2 ist die Überarbeitung der Validierungen des Direct3D 3- Ausführungspuffers . Das Projekt hat einen Teil dieser Logik neu organisiert, um verschiedene, während der Tests identifizierte Sonderfälle zu beheben.

Um das erwartete Verhalten der API zu überprüfen, konnte der Entwickler auch auf Wine-Tests zurückgreifen, die speziell auf Direct3D 3 bezogen sind. Diese Tests ermöglichen es, das Verhalten von D7VK mit dem einer kompatiblen Implementierung zu vergleichen und Unterschiede aufzudecken, die bei der Verwendung ausschließlich bekannter Spiele möglicherweise unbemerkt bleiben.

Diese Arbeit ist besonders wertvoll für eine so alte API, da die zum Testen verfügbaren Titel spärlich sind und nicht immer alle Möglichkeiten der ursprünglichen Implementierung abdecken.

Höhere Robustheit für Direct3D 5- und 3-Texturen

Das Update beschränkt sich nicht auf Direct3D 3. D7VK 2.2 verbessert auch die Handhabung von Texturen, die von Direct3D 5 und Direct3D 3 verwendet werden, um zu verhindern, dass darunterliegende Oberflächen außerhalb des Bereichs geraten, während sie noch verwendet werden.

Die Änderung erhöht die Robustheit der Grafikressourcenverwaltung und kann Fehler beheben, die nur bei bestimmten Abläufen auftreten. Der Entwickler merkt außerdem an, dass diese Verbesserung sich positiv auf Frogger ausgewirkt hat , das ursprünglich 1997 veröffentlicht wurde.

Der Patch zeigt, wie interne Änderungen, die eigentlich zur Behebung von Problemen im Ressourcenmanagement gedacht waren, sichtbare Auswirkungen auf bestimmte Spiele haben können, selbst wenn die Modifikation nicht speziell für diese Spiele entwickelt wurde.

D7VK 2.2 korrigiert auch Transformations- und Matrixprobleme.

D7VK 2.2 behebt außerdem einen Fehler im Zusammenhang mit der Transformation von Direct3D-3-Ausführungspuffern. Das Problem wurde durch eine fehlerhafte Bestimmung des für Vertex-Eingaben verwendeten FVF-Formats verursacht.

Ein Problem mit älteren Projektionsmatrixberechnungen wurde ebenfalls behoben. Der Fehler wurde durch einen Wine-Test entdeckt, der sich nicht wie erwartet verhielt und bestimmte Direct3D-6-, -5- und -3-Anwendungen hätte beeinträchtigen können.

Diese Änderungen unterstreichen die Bedeutung von Kompatibilitätstests für D7VK. Viele Probleme mit älteren Grafik-APIs treten nicht unbedingt in den beliebtesten Spielen auf, sondern eher in bestimmten Funktionskombinationen, die jahrelang unentdeckt bleiben können.

Geringerer Aufwand bei älteren Zeichenpfaden

Die neue Version reorganisiert auch den Zeichenpfad Begin() / Vertex() / End() Wird von Direct3D 6 und Direct3D 5 verwendet. Die Modifikation reduziert den Speicherverbrauch und führt zu einer geringfügigen Leistungsverbesserung.

Auch Frogger gehört zu den Spielen, die von dieser Änderung profitieren können. Zwar verdoppelt diese Optimierung nicht die Bildrate aller Retro-Titel, aber sie trägt dazu bei, den durch ältere APIs verursachten Overhead zu reduzieren.

D7VK hat in früheren Versionen bereits signifikante Leistungsoptimierungen erfahren, daher konzentrieren sich die aktuellen Arbeiten zunehmend auf die Verfeinerung der Implementierung und die Beseitigung unnötiger Kosten.

D7VK 2.2 ist Teil von DXVK 3.1

Ein weiteres wichtiges Merkmal dieser Version ist, dass D7VK 2.2 durch DXVK 3.1 ersetzt wurde . Dadurch profitiert das Projekt von einer aktuelleren Basis und kann seine Implementierung an die Weiterentwicklung von DXVK anpassen.

Die Beziehung zwischen den beiden Projekten ist besonders wichtig. D7VK entstand als Abspaltung von DXVK und spezialisierte sich auf ältere Direct3D-APIs, die nicht von der Standardnutzung von DXVK abgedeckt wurden, während beide Vulkan als Ziel für Grafikaufrufe von Windows verwenden.

Dank dieser Beziehung können die strukturellen Verbesserungen, die DXVK erzielt, als Grundlage für die Weiterentwicklung von D7VK dienen, ohne dass die gesamte für die Kommunikation mit Vulkan notwendige Infrastruktur von Grund auf neu entwickelt werden muss.

Ein Projekt zur Wiederbelebung klassischer Spiele

D7VK verfolgt innerhalb des Linux-Ökosystems ein ganz bestimmtes Ziel: Windows-Spiele, die Direct3D 7, 6, 5 und 3 nutzen, sollen unter Vulkan lauffähig werden. Dies unterscheidet es von DXVK, das sich primär auf Direct3D 9, 10 und 11 konzentriert.

Die Bedeutung des Projekts steigt bei Titeln, die auf Grafiktechnologien angewiesen sind, die Wine nicht direkt in der gleichen Weise implementiert, oder die von einer genaueren Übersetzung nach Vulkan profitieren könnten.

Durch die Kombination von D7VK mit Wine oder Proton können Linux-Benutzer eine beträchtliche Menge an Software aus dem späten 20. und frühen 21. Jahrhundert wiederherstellen, ohne unbedingt auf eine alte Windows-Installation zurückgreifen zu müssen.

Für alle, die mit Wine oder Proton unter Linux spielen und an der Wiederbelebung von Klassikern interessiert sind, stärkt D7VK 2.2 eine der wichtigsten Komponenten der Kompatibilitätsinfrastruktur. Viele Verbesserungen sind zwar für den Nutzer nicht sichtbar, doch jede Korrektur erhöht die Wahrscheinlichkeit, dass ein weiteres Spiel aus der Direct3D-Ära (3, 5, 6 oder 7) wieder auf einem modernen Linux-System einwandfrei funktioniert.


Als bevorzugte Quelle in Google hinzufügen