Megkezdődött az első jelölt tesztelése a Wine 9.0 kiadásaihoz, a WinAPI nyílt megvalósításához. A kódalap fagyás állapotába került a megjelenés előtt, amelyet január második felére várnak. A Wine 8.21 kiadásához képest 52 hibajelentést zárták le, és 391 módosítást hajtottak végre.
A legfontosabb változások:
- A beépített vkd3d csomag, amely a Direct3D 12 megvalósítását kínálja, frissítve lett 1.10 verzióra, és a Vulkan grafikus API-n keresztül történő hívások átírására épít.
- Folyamatban van a Wine Wayland protokollal való környezetekben való használatának lehetőségeit célzó funkciók fejlesztése, XWayland és X11 összetevők alkalmazása nélkül. A winewayland.drv meghajtóban hozzáadták a billentyűzetkiosztások támogatását. Kiterjesztették a Vulkan grafikus API támogatását, és hozzáadták a vkQueuePresentKHR, vkGetDeviceGroupSurfacePresentModesKHR, vkGetPhysicalDevicePresentRectanglesKHR funkciókat. Hozzáadták a ClipCursor funkciót, és megvalósították a relatív koordinátákkal való munkát az egérmozgás követése során.
- A friss GnuTLS kiadásokkal a DH (Diffie-Hellman) titkosítási kulcsok támogatása is megvalósult.
- Hibajelentéseket zártak le, amelyek alkalmazások működésével kapcsolatosak: 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.
- Hibajelentéseket zártak le, amelyek játékok működésével kapcsolatosak: For Honor, STEEP, Far Cry 5, NFS Most Wanted, Castlevania: Lords of Shadow 2, Eurobattle, Daily Chthonicle, Crimson Skies.
Emellett említést érdemel a Wine projekt vkd3d 1.10 csomagjának közzététele, amely a Direct3D 12 megvalósítását tartalmazza, és a Vulkan grafikus API hívásainak átírásával működik. A csomag tartalmazza a libvkd3d könyvtárakat a Direct3D 12 megvalósításához, a libvkd3d-shader-t a 4 és 5 modellek shadereinek fordítójával, valamint a libvkd3d-utils-t a Direct3D 12 alkalmazások egyszerűsített portolására szolgáló funkciókkal, valamint egy sor bemutató példát, beleértve a glxgears portját a Direct3D 12-re. A projekt kódját LGPLv2.1 licenc alatt terjesztik.
A libvkd3d könyvtár a Direct3D 12 lehetőségeinek nagy részét támogatja, beleértve a grafikai és számítási eszközöket, a sorokat és parancslistákat, a leírókat és a halom leírókat, a gyökér aláírásokat, nem rendezett hozzáférést, a Sampler-eket, a parancs aláírásokat, a gyökér konstansokat, közvetett (indirect) rajzolást, a Clear*() és Copy*() metódusokat. A libvkd3d-shader a 4-es és 5-ös modellek shaderek bytekódját SPIR-V köztes reprezentációvá alakítja. Támogatottak a vertex, pixel, tesszellációs, számítási és egyszerű geometriai shaderek, a gyökér aláírás sorozatának sorosítása és deszerializálása. A shader utasítások között megvalósításra került az aritmetikai, atomikus és bitműveletek, összehasonlító és adatáramlás-irányító utasítások, a sample, gather és load utasítások, valamint a nem rendezett hozzáférések (UAV, Unordered Access View) műveletei.
Az új verzióban folytatódott a HLSL (High-Level Shader Language) nyelvű shaderek fordítójának fejlesztése, amely a DirectX 9.0-tól kezdődően érhető el: dinamikus tömbindexelés támogatásának hozzáadása; 'break', 'continue' és 'switch' kifejezések bevezetése; a konstansok csökkentésére alkalmazható kifejezések bővítése; beépített függvények megvalósítása: ceil(), degrees(), radians(), fwidth(), tan(), tex2Dlod(), tex2Dproj(), texCUBEproj() és tex3Dproj().
A libvkd3d könyvtárhoz új Direct3D 12 interfészek (ID3D12Device5, ID3D12GraphicsCommandList5 és ID3D12Resource1) kerültek hozzáadásra, valamint lehetőség nyílt pipeline állapotobjektumok (pipeline state object) létrehozására. A libvkd3d-utils könyvtárhoz segédfunkciók kerültek be a DXBC manipulálásához: D3DGetBlobPart(), D3DGetDebugInfo(), D3DGetInputAndOutputSignatureBlob(), D3DGetInputSignatureBlob(), D3DGetOutputSignatureBlob(), D3DStripShader(). A vkd3d-compiler-be új lehetőségek kerültek bevezetésre: "—fragment-coordinate-origin" és "—semantic-compat-map".
Forrás: opennet.ru
