Kandidaten für die Veröffentlichung von Wine 9.0 und Release vkd3d 1.10

Die Tests des ersten Kandidaten für die Releases von Wine 9.0, einer offenen Implementierung von WinAPI, haben begonnen. Der Code wurde in die Freeze-Phase vor der Veröffentlichung überführt, die für die zweite Januarhälfte erwartet wird. Im Vergleich zur Version Wine 8.21 wurden 52 Fehlerberichte geschlossen und 391 Änderungen vorgenommen.

Die wichtigsten Änderungen:

  • Das integrierte Paket vkd3d mit der Implementierung von Direct3D 12, das über die Übersetzung von Aufrufen in die Grafik-API Vulkan arbeitet, wurde auf Version 1.10 aktualisiert.
  • Die Entwicklung von Funktionen, die darauf abzielen, die Nutzung von Wine in Umgebungen, die auf dem Wayland-Protokoll basieren, ohne XWayland und X11-Komponenten zu ermöglichen, wurde fortgesetzt. Der Treiber winewayland.drv unterstützt jetzt Tastaturlayouts. Die Unterstützung der Grafik-API Vulkan wurde erweitert, und es wurden Funktionen wie vkQueuePresentKHR, vkGetDeviceGroupSurfacePresentModesKHR und vkGetPhysicalDevicePresentRectanglesKHR hinzugefügt. Die Funktion ClipCursor wurde hinzugefügt, und es wurde die Möglichkeit implementiert, mit relativen Koordinaten beim Verfolgen von Mausbewegungen zu arbeiten.
  • Bei der Nutzung der aktuellen Versionen von GnuTLS wurde die Unterstützung für DH-Verschlüsselungsschlüssel (Diffie-Hellman) implementiert.
  • Die Fehlerberichte, die mit der Funktion von Anwendungen zusammenhängen, wurden geschlossen: Notepad, MS Word, Roon, eFilm Workstation 2.x/3.x, Athena’s Charm Table Search 0.35b, Process Explorer, Araxis Merge 2023.5877, Framemaker 8, Internet Download Manager, Air Jura, SpeedCommander, ModOrganizer, RestoreDC, Acid-V VST-Plugin, MIDITrail 1.4.0.
  • Die Fehlerberichte, die mit der Funktion von Spielen zusammenhängen, wurden geschlossen: For Honor, STEEP, Far Cry 5, NFS Most Wanted, Castlevania: Lords of Shadow 2, Eurobattle, Daily Chthonicle, Crimson Skies.

Zusätzlich kann die Veröffentlichung des vkd3d-Pakets 1.10 durch das Wine-Projekt hervorgehoben werden, das die Implementierung von Direct3D 12 umfasst, das über die Übersetzung von Aufrufen in die Grafik-API Vulkan arbeitet. Das Paket enthält die Bibliotheken libvkd3d mit der Implementierung von Direct3D 12, libvkd3d-shader mit dem Übersetzer für Shader der Modelle 4 und 5 sowie libvkd3d-utils mit Funktionen zur Vereinfachung der Portierung von Direct3D 12-Anwendungen, einschließlich einer Reihe von Demobeispielen, darunter der Port von glxgears auf Direct3D 12. Der Quellcode des Projekts wird unter der LGPLv2.1-Lizenz veröffentlicht.

Die Bibliothek libvkd3d unterstützt die meisten Funktionen von Direct3D 12, einschließlich Grafik- und Compute-Funktionen, Warteschlangen und Befehlslisten, Deskriptoren und Heap-Deskriptoren, Wurzel-Signaturen, ungeordneten Zugriff, Sampler, Befehls-Signaturen, Wurzel-Konstanten, indirekte Zeichnungen, Clear*()-Methoden und Copy*(). In libvkd3d-shader wurde die Übersetzung von Bytecode der Shader-Modellversionen 4 und 5 in das Intermediate-Format SPIR-V implementiert. Unterstützt werden Vertex-, Pixel-, Tessellations-, Compute- und einfache geometrische Shader, Serialisierung und Deserialisierung von Wurzel-Signaturen. Implementiert sind die arithmetischen, atomaren und Bitoperationen, Vergleichsoperatoren und Steueranweisungen, sowie die Anweisungen sample, gather und load, und Operationen mit ungeordnetem Zugriff (UAV, Unordered Access View).

In der neuen Version wurde die Arbeit an der Verbesserung des HLSL (High-Level Shader Language) Shader-Compilers, der seit DirectX 9.0 bereitgestellt wird, fortgesetzt: Unterstützung für dynamische Indizierung von Arrays hinzugefügt; die Ausdrücke 'break', 'continue' und 'switch' wurden hinzugefügt; die Ausdrücke, auf die die Konstantenfaltung anwendbar ist, wurden erweitert; und die eingebauten Funktionen ceil(), degrees(), radians(), fwidth(), tan(), tex2Dlod(), tex2Dproj(), texCUBEproj() und tex3Dproj() wurden implementiert.

In die Bibliothek libvkd3d wurden neue Programmier-Schnittstellen für Direct3D 12 (ID3D12Device5, ID3D12GraphicsCommandList5 und ID3D12Resource1) integriert, und es wurde die Möglichkeit zur Erstellung von Pipeline-Zustandsobjekten umgesetzt. In libvkd3d-utils wurden Hilfsfunktionen zur Manipulation von DXBC hinzugefügt: D3DGetBlobPart(), D3DGetDebugInfo(), D3DGetInputAndOutputSignatureBlob(), D3DGetInputSignatureBlob(), D3DGetOutputSignatureBlob(), D3DStripShader(). Im Compiler vkd3d-compiler wurden die Optionen "—fragment-coordinate-origin" und "—semantic-compat-map" hinzugefügt.

Quelle: opennet.ru

60GB SSD 8Gb DDR4