Testování prvního kandidáta na vydání Wine 9.0, otevřené implementace WinAPI, začalo. Kódová základna byla převedena do stavu zmrazení před vydáním, které se očekává ve druhé polovině ledna. Ve srovnání s vydáním Wine 8.21 bylo uzavřeno 52 chybových hlášení a provedeno 391 změn.
Nejdůležitější změny:
- Vestavěný balíček vkd3d s implementací Direct3D 12, fungující přes překlad volání do grafického API Vulkan, byl aktualizován na verzi 1.10.
- Pokračovalo se ve vývoji funkcionality zaměřené na využití Wine v prostředích založených na protokolu Wayland bez použití XWayland a komponentů X11. V ovladači winewayland.drv byla přidána podpora pro rozložení klávesnice. Byla rozšířena podpora grafického API Vulkan a přidány funkce vkQueuePresentKHR, vkGetDeviceGroupSurfacePresentModesKHR, vkGetPhysicalDevicePresentRectanglesKHR. Přidána funkce ClipCursor a implementována možnost práce s relativními souřadnicemi při sledování pohybu myši.
- Při použití nejnovějších verzí GnuTLS byla implementována podpora pro šifrovací klíče DH (Diffie-Hellman).
- Byla uzavřena chybová hlášení týkající se fungování aplikací: 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.
- Byla uzavřena chybová hlášení týkající se fungování her: For Honor, STEEP, Far Cry 5, NFS Most Wanted, Castlevania: Lords of Shadow 2, Eurobattle, Daily Chthonicle, Crimson Skies.
Dále lze zmínit publikaci projektem Wine balíčku vkd3d 1.10 s implementací Direct3D 12, fungující přes překlad volání do grafického API Vulkan. Balíček obsahuje knihovny libvkd3d s implementací Direct3D 12, libvkd3d-shader s překladačem modelů shaderů 4 a 5 a libvkd3d-utils s funkcemi pro usnadnění portování aplikací Direct3D 12, a také sadu demonstračních příkladů, včetně portu glxgears na Direct3D 12. Kód projektu je distribuován pod licencí LGPLv2.1.
Knihovna libvkd3d podporuje většinu funkcí Direct3D 12, včetně prostředků pro grafiku a výpočty, front, seznamů příkazů, descriptorů a deskriptorů haldy, kořenových podpisů, neuspořádaného přístupu, samplerů, podpisů příkazů, kořenových konstant, nepřímého vykreslování, metod Clear*() a Copy*(). V libvkd3d-shader je implementováno překlad bytecode modelů 4 a 5 shaderů do mezivrstvy SPIR-V. Podporovány jsou vertexové, pixelové, tesselace, výpočetní a jednoduché geometrické shadery, serializace a deserializace kořenového podpisu. Z shaderových instrukcí jsou realizovány aritmetické, atomické a bitové operace, operátory porovnání a řízení toku dat, instrukce sample, gather a load, operace neuspořádaného přístupu (UAV, Unordered Access View).
V nové verzi pokračuje práce na vylepšení překladače shaderů v jazyce HLSL (High-Level Shader Language), poskytovaném od DirectX 9.0: byla přidána podpora dynamického indexování polí; přidány výrazy „break“, „continue“ a „switch“; rozšířeny výrazy, pro které je použitelná konstantní zkracování; implementovány vestavěné funkce ceil(), degrees(), radians(), fwidth(), tan(), tex2Dlod(), tex2Dproj(), texCUBEproj() a tex3Dproj().
Do knihovny libvkd3d byly přidány nové rozhraní Direct3D 12 (ID3D12Device5, ID3D12GraphicsCommandList5 a ID3D12Resource1) a byla implementována možnost vytváření objektů stavu potrubí (pipeline state object). Do libvkd3d-utils byly přidány pomocné funkce pro manipulaci s DXBC: D3DGetBlobPart(), D3DGetDebugInfo(), D3DGetInputAndOutputSignatureBlob(), D3DGetInputSignatureBlob(), D3DGetOutputSignatureBlob(), D3DStripShader(). Do kompilátoru vkd3d-compiler byly přidány možnosti "—fragment-coordinate-origin" a "—semantic-compat-map."
Zdroj: opennet.ru
