Die experimentelle Version der offenen Win32-API-Implementierung â Wine 11.17 â wurde veröffentlicht. Seit dem Release 11.16 wurden 44 Fehlerberichte geschlossen und 387 Ănderungen vorgenommen.
Die wichtigsten Ănderungen:
- Es wurde eine erste UnterstĂŒtzung fĂŒr die Emulation von Bildschirmmodi hinzugefĂŒgt, die es ermöglicht, Vollbildanwendungen und -spiele mit einer eigenen virtuellen Auflösung auszufĂŒhren, die bei der tatsĂ€chlichen Darstellung unter BerĂŒcksichtigung der DPI des vorhandenen Bildschirms skaliert wird. Zum Beispiel kann ein altes Spiel eine Auflösung von 640Ă480 verwenden, wird jedoch auf einem Monitor mit höherer Auflösung unter Beibehaltung des VerhĂ€ltnisses angezeigt.
- Die Funktionen RtlGetSystemPreferredUILanguages und RtlGetUserPreferredUILanguages wurden hinzugefĂŒgt, um eine Liste der im Registry fĂŒr das gesamte System und einzelne Benutzer festgelegten bevorzugten Sprachen zu erhalten, die standardmĂ€Ăig basierend auf den Gebietsschemainstellungen gebildet wird. DarĂŒber hinaus wurden die Funktionen RtlGetProcessPreferredUILanguages, SetProcessPreferredUILanguages, RtlGetSetThreadPreferredUILanguages und SetThreadPreferredUILanguages hinzugefĂŒgt, um die Liste der bevorzugten Sprachen auf Ebene von Prozessen und Threads zu bestimmen und festzulegen.
- Das integrierte Vkd3d-Paket mit der Implementierung von Direct3D 12 wurde auf Version 2.1 aktualisiert.
- Fehlerberichte zu Anwendungen wurden geschlossen: certmgr.exe, Signtools, Advanced SystemCare 6.4, Autodesk 3ds Max 9, SketchUp 2021, Nokia S60 5th Edition SDK 1.0, PDFCreator, SafeDisc v2.05.030, Bigrats, PTC Pro Engineer Wildfire V5, VisualSubSync 1.0.2.1, PS4 Remote Play 2.x, MigrosBank EBanking 8.2.x, Sparda Bank SecureApp 1.x, MSXML 6.0, Sennheiser Wireless Systems Manager 4.4, Netscape Navigator 3.04, xEdit.
- Fehlerberichte zu Spielen wurden geschlossen: GTA: Vice City, GTA: San Andreas, Tetris JR, Worms Blast, Horizon Chase Turbo, Star Wars: Knights of the Old Republic I/II, GunBound, Marathon, Ground Control, Ankh â Anniversary Edition, Clive Barkers Jericho.
ZusÀtzlich sind neue Veröffentlichungen verwandter Wine-Projekte zu beachten:
- Die Version des Wine Staging-Projekts 11.17 wurde erstellt, die erweiterte Builds von Wine bereitstellt, die nicht vollstĂ€ndig fertige oder riskante Patches enthalten, die derzeit nicht fĂŒr die Hauptversion von Wine geeignet sind. Im Vergleich zu Wine bietet Wine Staging 279 zusĂ€tzliche Patches. In dieser neuen Version von Wine Staging wurde eine Synchronisierung mit dem Codebasis von Wine 11.17 vorgenommen und der Code von vkd3d aktualisiert. Ein Patch, der die Funktion SetThreadpoolTimerEx in der Bibliothek kernel32.dll implementiert, wurde in den Hauptbestand von Wine ĂŒbernommen.
- Die Version 2.1 des vkd3d-Pakets wurde veröffentlicht, mit einer Implementierung von Direct3D 12, die ĂŒber einen Aufruf-Translater in die Vulkan-Grafik-API funktioniert. Das Paket enthĂ€lt die Bibliotheken libvkd3d mit der Implementierung von Direct3D 12, libvkd3d-shader mit einem Shader-Modelltranslater und libvkd3d-utils mit Funktionen zur Vereinfachung der Portierung von Direct3D 12-Anwendungen, sowie eine Sammlung von Demo-Beispielen, einschlieĂlich der Portierung von glxgears auf Direct3D 12. Die Bibliothek libvkd3d unterstĂŒtzt die meisten Funktionen von Direct3D 12, einschlieĂlich Grafik- und Berechnungsfunktionen, Warteschlangen und Befehlspakete, Deskriptoren und Deskriptoren-Pools, Root-Signaturen, ungeordneter Zugriff, Sampler, Befehls-Signaturen, Root-Konstanten, indirektes Rendering, die Clear*()- und Copy*()-Methoden. In libvkd3d-shader wurde die Ăbersetzung des Bytecode von Shader-Modellen in das Intermediate Format SPIR-V implementiert.
In der neuen Version vkd3d:
- Die HLSL-Shader-Sprache erhĂ€lt UnterstĂŒtzung fĂŒr arithmetische Operationen mit dem Typ "half" bei Verwendung von Shader-Modellen 4 und 5.
- Die HLSL-Shader-Compiler verstĂ€rken die ĂberprĂŒfungen der Eingangs- und Ausgangsdaten und implementieren einen Pass zum Entfernen nicht verwendeter globaler (uniform) Variablen in den Shader-Modellen 1-3.
- Im Backend fĂŒr die GLSL-Shader-Sprache (OpenGL Shading Language) wurde UnterstĂŒtzung fĂŒr indirekte Adressierung von Eingangs-Registern, atomare Vergleichsoperationen und Ganzzahladdition, bitweise Operationen und Barrieren sowie Lade-/Speicheroperationen fĂŒr UAV (Unordered Access View) und gemeinsamen Speicher von Arbeitsgruppen implementiert.
- Die UnterstĂŒtzung des alten binĂ€ren Shader-Formats von Direct3D wurde verbessert. Die Instruktionen "sub" und "break_cmp", die Modifikatoren der Instruktionen "_x2", "_x4", "_x8", "_d2", "_d4" und "_d8", sowie die Operandenmodifikatoren "_bias", "_x2" und "_bx2" wurden implementiert.
- Bei der Umwandlung von Shadern in das Intermediate Format SPIR-V wird die UnterstĂŒtzung fĂŒr Operationen zur Konvertierung von Gleitkommazahlen in 64-Bit-Ganzzahlen hinzugefĂŒgt.
- In libvkd3d-utils wurde die UnterstĂŒtzung fĂŒr die Shader-Reflexion-API erweitert. Die Schnittstellen ID3D10ShaderReflection, ID3D10ShaderReflection1 und ID3D11ShaderReflection sowie die meisten Methoden der Schnittstellen ID3D12ShaderReflection und ID3D12ShaderReflectionType wurden implementiert.
- Die Option "âallow-half-globals" wurde in vkd3d-compiler hinzugefĂŒgt, wĂ€hrend in libvkd3d-shader die Flagge VKD3D_SHADER_COMPILE_OPTION_BACKCOMPAT_ALLOW_HALF_GLOBALS zum Kompilieren von globalen Variablen des Typs "half" in das Format "float" eingefĂŒhrt wurde.
- Die Version 3.1 von DXVK wurde veröffentlicht, die eine Implementierung von DXGI (DirectX Graphics Infrastructure), Direct3D 8, 9, 10 und 11 bietet, die durch das Translatieren von Aufrufen in die Vulkan-API funktioniert. Um DXVK zu verwenden, sind Treiber erforderlich, die die Vulkan-API 1.4 unterstĂŒtzen, 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 Hilfe von Wine auszufĂŒhren, und stellt eine leistungsstĂ€rkere Alternative zu den in Wine enthaltenen Direct3D-Implementierungen dar, die auf OpenGL basieren.
In der neuen Version:
- Die UnterstĂŒtzung fĂŒr inkrementelles Rendering in DXGI wurde hinzugefĂŒgt, die mittels der Vulkan-Erweiterung VK_KHR_incremental_present implementiert wurde und es ermöglicht, nur die aktualisierten Bereiche auf dem Bildschirm anzuzeigen. Diese neue Funktion hat Rendering-Probleme in VirtualDJ und verschiedenen Spiel-Launcher wie Ubisoft Connect gelöst.
- Die UnterstĂŒtzung zur Erstellung von Render-Zielansichten (render target view) direkt in Buffern wurde hinzugefĂŒgt, was die Problematik von Artefakten beim Rendern von Wolken in einigen Spielen auf der Frostbite-Engine, wie Battlefield 3, behoben hat.
- Die Funktion zum Laden von Bibliotheken zur UnterstĂŒtzung von GPU-spezifischen Intel-Erweiterungen (vendor extensions) wurde implementiert.
- Probleme in den Spielen Mabinogi, The Witcher 1, Ghost Recon Breakpoint, Mirrors Edge und RaceRoom Racing Experience wurden behoben.
- Die Version 2.2 des Projekts D7VK wurde veröffentlicht, das die Implementierung der Grafik-APIs Direct3D 3, 5, 6 und 7 weiterentwickelt, die von Microsoft in den Jahren 1996, 1997, 1998 und 1999 vorgeschlagen wurden. D7VK funktioniert, indem es Aufrufe in die Vulkan-API ĂŒbersetzt, und ermöglicht das AusfĂŒhren von Retro-Spielen, die an die Direct3D-APIs 3, 5, 6 und 7 gebunden sind, unter Linux mit Wine. Der Code des Projekts ist in C++ geschrieben und wird unter der Zlib-Lizenz veröffentlicht. Bei der Entwicklung wurde der Code von D3D9 aus dem DXVK-Projekt als Grundlage verwendet â D7VK ĂŒbersetzt die Direct3D-APIs 3, 5, 6 und 7 in Aufrufe von Direct3D 9, die dann in die Vulkan-API translatiert werden. Der Entwickler beabsichtigt nicht, D7VK in DXVK zu integrieren, wie es bei den Implementierungen von Direct3D 8 und Direct3D 9 ĂŒber Vulkan der Fall war.
In der neuen Version wurde der Betrieb auf der Basis der Version 3.1 von DXVK umgesetzt, die ĂberprĂŒfung der ausfĂŒhrbaren D3D3-Puffer und das ReferenzzĂ€hlen (refcounting) fĂŒr D3D3-GerĂ€te wurde ĂŒberarbeitet, und die Texturverarbeitung fĂŒr D3D5/3 wurde verbessert. Es wurden Korrekturen vorgenommen, die die UnterstĂŒtzung fĂŒr die Spiele PalantĂrs in The Lord of the Rings, Resident Evil 2 und Frogger verbessern.
Quelle: opennet.ru
