Veröffentlichung von DXVK 3.0

Nach einem halben Jahr Entwicklung wurde eine neue Version von DXVK (Direct3D zu Vulkan Übersetzungsschicht) veröffentlicht, einer Open-Source-Bibliothek, die API-Aufrufe von Direct3D 8, 9, 10 und 11 in Vulkan-Befehle umwandelt. Damit können 3D-Anwendungen und Spiele, die für Windows entwickelt wurden, auf Systemen ausgeführt werden, die keine native Unterstützung für Direct3D bieten, während die effizienteren Funktionen der Vulkan-Grafik-API genutzt werden.

Wesentliche Änderungen
Die neue Version wechselt zur Verwendung der Spezifikationen und Erweiterungen von Vulkan 1.4, was entsprechende Anforderungen an einen kompatiblen Treiber.

DXVK verwendet jetzt dxbc-spirv zur Kompilierung von Shadern für alle unterstützten Shader-Modelle. Dadurch werden eine Reihe von Problemen beseitigt, die zuvor nicht gelöst werden konnten:
Rendering-Probleme in Spielen, die entweder durch den Vertrauensvorschuss auf undefiniertes Verhalten entstehen oder weil FXC in einigen Fällen fehlerhaften Code generiert, wie in Postal: Brain Damaged und Snowrunner.
Der generierte Code ist kompakter als einfach nur der konvertierte SPIR-V-Code, was den von DXVK verwendeten Speicher erheblich reduziert. In Spielen wie Overwatch oder God of War ermöglicht dies eine Einsparung von etwa 1 GB Arbeitsspeicher.
Die Shader-Kompilierung wurde nun vollständig auf Arbeitsströme verlagert, was die Ladezeiten in Spielen wie Days Gone und Final Fantasy XIV verkürzen oder in einigen Fällen Ruckler verringern kann. Zuvor führte DXVK die SPIR-V-Übersetzung im Anwendungsstrom durch und kompilierte nur die echten Vulkan-Pipelines in Arbeitsprozessen.
Die Zwischenrepräsentation der kompilierten Shader von DXVK wird nun im Verzeichnis AppData/Local des aktuellen Wine-Präfixes auf der Festplatte zwischengespeichert. Dies ist notwendig, da die Kompilierungszeit im Vergleich zum alten Compiler gestiegen ist. Der Pfad zum Cache kann mithilfe der Umgebungsvariable DXVK_SHADER_CACHE_PATH geändert werden.

Die neue Vulkan-Erweiterung VK_EXT_descriptor_heap wird jetzt standardmäßig in den unterstützenden Treibern verwendet.
Es wird erwartet, dass dieses neue Modell im Vergleich zur alten Bindings-Implementierung, die auf VK_EXT_descriptor_buffer basiert, ein ähnliches Leistungsniveau in CPU-bezogenen Aufgaben bietet, während es Leistungseinbußen bei Nvidia-GPU (nvidia-drivers-595.84 oder neuer erforderlich) vermeidet.
Änderungen D3D9
Um die veraltete Pipeline mit festen Funktionen zu emulieren, die D3D8- und D3D9-Spiele ohne Shader rendert, generierte DXVK zuvor eigenen Shader-Code zur Laufzeit basierend auf dem Pipeline-Zustand. In einigen Spielen, wie z.B. Unreal Tournament 2004, konnte dies selbst nach längeren Spielsitzungen zu merklichen Rucklern führen.

Um dies zu beheben, implementiert DXVK jetzt die Pipeline mit festen Funktionen in Form von zwei Ubershaders, für die optimierte Varianten im Hintergrund kompiliert werden.
Optimierung des Buffer-Loads
Um das Verhalten von Windows genauer nachzubilden, werden verschiedene Arten von Buffern, die zuvor direkt im VRAM abgelegt wurden, nun bedarfsgerecht geladen, und eine Speichergrenzstrategie wurde implementiert, die Adressraumprobleme in einer Reihe von 32-Bit-D3D9-Spielen behebt.
Diese Änderungen können auch die Leistung auf Systemen ohne anpassbare BAR-Größe in Spielen wie GTA IV verbessern.

In Systemen, die VK_EXT_sample_locations und VK_EXT_extended_dynamic_state3 ausreichend unterstützen, funktioniert der D3DRS_MULTISAMPLEANTIALIAS-Rendermodus jetzt korrekt. Dies ermöglicht es Anwendungen, eine einzelne Sampling-Rasterisierung beim Rendern in Renderziele mit mehreren Samplings zu verwenden. Damit werden Probleme mit der Benutzeroberflächenzeichnung in Anno 1701, Men of War Assault Squad und ähnlichen Problemen in anderen Spielen mit aktiviertem MSAA behoben.

Allgemeine Ressourcen arbeiten jetzt mit der originalen Implementierung von Wine und benötigen keine spezifischen Proton-Patches mehr.

Es sind auch zahlreiche Fehlerbehebungen für verschiedene Spiele zu erwähnen, die jetzt besser funktionieren werden.

Quelle: linux.org.ru

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster