Die Veröffentlichung der DXVK 3.0 Schicht, die eine Implementierung von DXGI (DirectX Graphics Infrastructure), Direct3D 8, 9, 10 und 11 bietet, die über Aufruftransformationen im Vulkan-API funktioniert, ist verfügbar. Für die Nutzung von DXVK sind Treiber mit Unterstützung für die Vulkan-API 1.4 erforderlich, 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 in Wine integrierten Direct3D-Implementierungen dar, die über OpenGL funktionieren.
Hauptänderungen:
- Für alle unterstützten Shader-Modelle wird der Shader-Compiler dxbc-spirv verwendet. Die Shader-Kompilierung wurde aus dem Hauptthread in separate Threads verlagert.
Caching des Zwischenergebnisses von Shadern auf der Festplatte wurde 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, Ruckler 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-Übersetzungscode nicht behoben werden konnten. - Für D3D9 wurde die Unterstützung der Shader-Modelle 1-3 implementiert.
- Standardmäßig wird die Vulkan-Erweiterung VK_EXT_descriptor_heap verwendet. Im Vergleich zum früher genutzten Deskriptor-Storage auf Basis der Vulkan-Erweiterung
VK_EXT_descriptor_buffer bietet die neue Implementierung das gleiche Leistungsniveau für CPU-Operationen, verringert jedoch die Last auf der GPU, insbesondere bei 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 auf Basis von VK_EXT_descriptor_buffer wird als veraltet betrachtet und wird in einer der nächsten Versionen entfernt. - In der Implementierung von Direct3D 9 werden anstelle der On-the-Fly-Shader jetzt Uber-Shader verwendet, deren optimierte Versionen im Hintergrund kompiliert werden, was Probleme mit Rucklern einiger älterer Spiele, wie Unreal Tournament 2004, gelöst hat. Der Puffer wird nach Bedarf geladen, wie unter Windows, anstatt vorab im Videospeicher platziert zu werden, was Abstürze einiger 32-Bit-D3D9-Spiele aufgrund des begrenzten Adressraums beseitigt hat.
- Die korrekte Funktion des Multisampling (MSAA) im Modus D3DRS_MULTISAMPLEANTIALIAS auf Systemen, die die Vulkan-Erweiterungen VK_EXT_sample_locations und VK_EXT_extended_dynamic_state3 unterstützen, wurde sichergestellt, wodurch Rendering-Probleme in Anno 1701, Men of War und anderen Spielen beim Aktivieren von MSAA behoben wurden.
- Die Unterstützung für die Verwendung von gemeinsamen Ressourcen (Shared resources) in den regulären Versionen von Wine ohne zusätzliche Patches vom Proton-Projekt wurde sichergestellt.
- 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. Um den integrierten Limiter zu aktivieren, kann die Einstellung "dxvk.maxFrameRate = n" verwendet werden.
- Probleme in den Spielen wurden gelöst:
- 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 den Betrieb werden jetzt mindestens die Treiberversionen AMD RADV 25.0, NVIDIA 575.51.02, NVIDIA 25.1 und Intel ANV 25.1 benötigt.
Quelle: opennet.ru
