Neue Versionen Wine 10.20, Vkd3d 1.18 und vkd3d-proton 3.0

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

60GB SSD 8Gb DDR4