Eine experimentelle Version der offenen Win32 API-Implementierung â Wine 10.20 wurde veröffentlicht. Seit dem Release 10.19 wurden 31 Fehlerberichte geschlossen und 337 Ănderungen vorgenommen.
Die wichtigsten Ănderungen:
- Das integrierte Paket Vkd3d mit der Implementierung von Direct3D 12 wurde auf Version 1.18 aktualisiert.
- Ein Dialogfenster zur Anzeige des Fortschritts beim Scannen von Dokumenten wurde hinzugefĂŒgt.
- Die Implementierung des Reparse Point-Mechanismus wurde fortgesetzt, mit dem zusĂ€tzliche Daten, die ĂŒber Tags identifiziert werden, an Dateien und Verzeichnissen angehĂ€ngt werden können. Die UnterstĂŒtzung von Reparse Point in den Funktionen CreateHardLink(), SetFileAttributes(), FindNextFile(), MoveFileWithProgress() wurde sichergestellt.
- Die Refaktorisierung der Common Control-Implementierung nach der Trennung der COMCTL32-Bibliothek in separate Module fĂŒr die Versionen 5 und 6 wurde fortgesetzt.
- Ein Problem mit dem Absturz vieler Spiele (z. B. Syberia 2) im WoW64-Modus auf Systemen mit NVIDIA-GPU wurde behoben.
- Ein Problem mit der Verzögerung der Reaktion beim DrĂŒcken der Cursorsteuerungstasten in einigen Spielen, wie Might and Magic VI, wurde behoben.
- Ein Problem mit dem HÀngenbleiben oder dem Unvermögen, einige Windows-Anwendungen, die die GTK-Bibliothek verwenden, wie Meld und Geany, zu starten, wurde behoben.
- Fehlerberichte, die mit Anwendungen zusammenhingen: SQL Server 2012/2014, MS Office 365 Installer, QuarkXPress 2024, TomTom MyDrive Connect 4.x, Spine, GenLauncher, grepwinNP3, PlayOnline Viewer, tlReader 10.1.0.2004, cmd.exe, CLM Explorer, HiveMQ CE 2025.5 wurden geschlossen.
- Fehlerberichte, die mit Spielen zusammenhingen: Civilization 1.2, StarCraft, Last Stand: Aftermath, Mega Man X DiVE, Wagotabi, Geneforge 1 â Mutagen wurden geschlossen.
Das Wine-Projekt hat auch die Veröffentlichung des Pakets vkd3d 1.18 mit einer Direct3D 12-Implementierung bekannt gegeben, die ĂŒber einen Aufruftranslater in die Vulkan-Grafik-API funktioniert. Das Paket enthĂ€lt die Bibliotheken libvkd3d mit der Implementierung von Direct3D 12, libvkd3d-shader mit einem Ăbersetzer der Shader-Modelle 4 und 5 sowie libvkd3d-utils mit Funktionen zur Vereinfachung des Portierens von Direct3D 12-Anwendungen, einschlieĂlich einer Sammlung von Beispielanwendungen, zu denen auch der Port von glxgears auf Direct3D 12 gehört. Der Code des Projekts wird unter der LGPLv2.1-Lizenz veröffentlicht.
Die Bibliothek libvkd3d unterstĂŒtzt einen GroĂteil der Funktionen von Direct3D 12, einschlieĂlich Grafik- und Berechnungsmittel, Warteschlangen und Befehlslisten, Deskriptoren und Deskriptortabellen, Wurzel-Signaturen, ungeordneten Zugriff, Sampler, Befehls-Signaturen, Wurzel-Konstanten, indirektes Rendering, sowie die Methoden Clear*() und Copy(). In libvkd3d-shader wurde die Ăbersetzung von Bytecode der Shader-Modelle in die Intermediate Representation SPIR-V implementiert. Es werden Vertex-, Pixel-, Tessellierungs-, Compute- und einfache Geometrie-Shader unterstĂŒtzt, sowie die Serialisierung und Deserialisierung der Wurzel-Signatur. Zu den Shader-Instruktionen gehören arithmetische, atomare und bitweise Operationen, Vergleichsoperatoren und Kontrollströme, sowie die Instruktionen sample, gather und load und die Operationen des ungeordneten Zugriffs (UAV, Unordered Access View).
In der neuen Version vkd3d:
- In die Implementierung der HLSL-Shader-Sprache wurden die eingebauten Funktionen countbits(), firstbithigh(), firstbitlow(), frexp() und texCUBEbias() hinzugefĂŒgt. FĂŒr die Shader Model 1-3-Profile wurde die UnterstĂŒtzung fĂŒr bedingsabhĂ€ngige AusdrĂŒcke mit Ganzzahltypen implementiert.
- Im HLSL-Shader-Compiler wurde die Kompilierung von Code mit bedingten Anweisungen if/else optimiert. Die Berechnung von Konstanten wĂ€hrend des Kompilierungsprozesses (Constant Folding) wurde erweitert. Eine Ă€hnliche Optimierung kann jetzt fĂŒr AusdrĂŒcke vom Typ âtrue ? x : yâ sowie fĂŒr die Funktionen asfloat(), asint(), asuint(), cos(), mad(), round() und sin() angewendet werden.
- In der libvkd3d-Bibliothek wurde die Implementierung der Programmierschnittstelle ID3D12Device4 um die Methode CreateCommandList1() erweitert.
- Neue Direct3D-Bytecode-Anweisungen hinzugefĂŒgt: bem, tex, texbem, texbeml und texcoord.
- Die Entwicklung der Implementierung der Shader-Sprache MSL (Metal Shading Language), die von Apple in der Grafik-API Metal verwendet wird, wurde fortgesetzt. UnterstĂŒtzung fĂŒr Compute-Shader, sofort initialisierbare Konstantenpuffer, trigonometrische Funktionen, Restoperationen und bitweise Operatoren wurden hinzugefĂŒgt.
- In die GLSL-Implementierung (OpenGL Shading Language) wurden nicht-signierte ganzzahlige Divisionen und Restoperationen, die Funktionen sin() und cos(), sowie die Möglichkeit zur Offset-Anpassung von Texteln beim Laden von Texturen aufgenommen.
ZusĂ€tzlich hat Valve die Veröffentlichung von VKD3D-Proton 3.0, einem Fork des vkd3d-Codebases, bekannt gegeben, der zur Verbesserung der UnterstĂŒtzung von Direct3D 12 im Proton-Games-Launch-Paket entwickelt wurde. VKD3D-Proton unterstĂŒtzt spezifische Unterschiede fĂŒr Proton sowie Optimierungen und Verbesserungen fĂŒr eine bessere Leistung von Windows-Spielen, die auf Direct3D 12 basieren und noch nicht in die Hauptversion von vkd3d integriert wurden. AuĂerdem wird die Orientierung an modernen Vulkan-Erweiterungen und den Möglichkeiten aktueller Grafiktreiber hervorgehoben, um vollstĂ€ndige KompatibilitĂ€t mit Direct3D 12 zu erreichen.
Ănderungen in der neuen Version von vkd3d-proton:
- Der DXBC-Shader-Backend wurde neu geschrieben, um den vkd3d-shader-Backend zu ersetzen. Das neue Backend hat Probleme in vielen Spielen gelöst, die zuvor aufgrund fehlender Funktionen in vkd3d-shader auftraten, beispielsweise wurde das Spiel Red Dead Redemption 2 im D3D12-Modus zum Laufen gebracht.
- UnterstĂŒtzung fĂŒr die FSR4-Technologie (AMD FidelityFX Super Resolution) wurde hinzugefĂŒgt.
- Experimentelle UnterstĂŒtzung fĂŒr D3D12-Work-Graphs wurde hinzugefĂŒgt.
- Experimentelle UnterstĂŒtzung fĂŒr Opacity MicroMaps (OMM) wurde hinzugefĂŒgt.
- Probleme in den Spielen Star Citizen, Ninja Gaiden 4, Monster Hunter Wilds, Wreckfest 2, Satisfactory, Street Fighter 6, Death Stranding, Wuthering Waves, Dune, Spider-Man Remastered, Gray Zone Warfare, Rise of the Tomb Raider, Port Royal, Mafia: Definitive Edition, Final Fantasy Tactics wurden behoben.
Quelle: opennet.ru
