Kandidát na vydání Wine 9.0 a vydání vkd3d 1.10

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

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster