Die Version 3.0 des DXVK-Layers ist verfügbar und bietet eine Implementierung von DXGI (DirectX Graphics Infrastructure), Direct3D 8, 9, 10 und 11, die durch Aufruftransformationen in die Vulkan-API funktioniert. Um DXVK nutzen zu können, sind Treiber erforderlich, die die API Vulkan 1.4 unterstützen, wie NVIDIA 575.51.02, Mesa AMD RADV 25.0, NVIDIA 25.1 und Intel ANV 25.1. DXVK kann verwendet werden, um 3D-Anwendungen und Spiele unter Linux mit Wine auszuführen und stellt eine leistungsstärkere Alternative zu den integrierten Direct3D-Implementierungen in Wine dar, die auf OpenGL basieren.
Wesentliche Änderungen:
- Für alle unterstützten Shader-Modelle wird der Shader-Compiler dxbc-spirv genutzt. Die Kompilierung der Shader wurde aus dem Hauptthread in separate Threads verlagert.
Es wurde ein diskbasiertes Caching der intermediären Shader-Repräsentationen implementiert (der Cache wird im Unterverzeichnis AppData/Local im aktuellen Wine-Präfix gespeichert).
Die Verwendung von dxbc-spirv hat den Speicherverbrauch gesenkt, die Startzeit verkürzt, Hängermomente ausgeschlossen und eine Reihe von Problemen behoben, die in Spielen wie Postal: Brain Damaged, Snowrunner, Overwatch, God of War, Days Gone und Final Fantasy XIV auftraten und die im alten Shader-Translationscode nicht behoben werden konnten. - Für D3D9 wurde die Unterstützung für Shader-Modelle 1-3 implementiert.
- Standardmäßig ist die Vulkan-Erweiterung VK_EXT_descriptor_heap aktiviert. Im Vergleich zum zuvor verwendeten Descriptor-Speicher, der auf der Vulkan-Erweiterung basiert, bietet
VK_EXT_descriptor_buffer eine neue Implementierung, die die gleiche Leistung der auf der CPU durchgeführten Operationen gewährleistet, jedoch die Belastung der GPU verringert, insbesondere bei der Verwendung von NVIDIA-Grafikkarten. Für den Betrieb auf Systemen mit NVIDIA-Grafikkarten ist mindestens die Version 595.84 der proprietären NVIDIA-Treiber erforderlich. Die Implementierung basierend auf VK_EXT_descriptor_buffer wurde als veraltet erklärt und wird in einer der kommenden Versionen entfernt. - In der Implementierung von Direct3D 9 werden statt der dynamischen Shader-Generierung jetzt Uber-Shader verwendet, von denen optimierte Versionen im Hintergrund kompiliert werden. Dies löst die Probleme mit dem Hängenbleiben einiger älterer Spiele, wie Unreal Tournament 2004. Eine bedarfsgerechte Pufferladung, ähnlich wie in Windows, wurde sichergestellt, anstelle der vorzeitigen Platzierung im Grafikspeicher, was das Abstürzen einiger 32-Bit-D3D9-Spiele aufgrund des begrenzten Adressraums beseitigt hat.
- Die korrekte Funktion des Multisampling (MSAA) im D3DRS_MULTISAMPLEANTIALIAS-Modus auf Systemen mit Unterstützung für Vulkan-Erweiterungen VK_EXT_sample_locations und VK_EXT_extended_dynamic_state3 wurde sichergestellt, was die Rendering-Probleme in Anno 1701, Men of War und anderen Spielen bei aktivem MSAA gelöst hat.
- Die Unterstützung für die Verwendung gemeinsamer Ressourcen (Shared resources) in den Standardversionen von Wine ohne zusätzliche Patches von Proton wurde implementiert.
- Die Umgebungsvariable DXVK_FRAME_RATE, die zur Begrenzung der Bildrate verwendet wurde, wurde entfernt; stattdessen wird empfohlen, externe Limiter wie Gamescope und Mangohud zu verwenden. Zum Aktivieren des integrierten Limiters kann die Einstellung „dxvk.maxFrameRate = n“ verwendet werden.
- Probleme in folgenden Spielen behoben:
- Bioshock Infinite
- Borderlands 2
- Colin McRae Rally 3
- Dirt Rally 2
- Fallout New Vegas
- Insurgency & Counter-Strike
- Jump Space
- Max Payne
- Railroad Tycoon 3
- Resident Evil 6
- Sang-Froid: Tales of Werewolves
- Sea Dogs
- Splinter Cell 4
- The I of the Dragon
- The Sims 3
- Total War: Pharaoh
- Witch on the Holy Night
- World of Final Fantasy
- Vietcong
- Die Anforderungen an die minimale Version der Grafik-API wurden auf Vulkan 1.4 erhöht.
Für die Nutzung sind nun mindestens die Treiberversionen AMD RADV 25.0, NVIDIA 575.51.02, NVIDIA 25.1 und Intel ANV 25.1 erforderlich.
Quelle: opennet.ru
