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
