Počelo je testiranje prvog kandidata za izdanja Wine 9.0, otvorene implementacije WinAPI. Kodna baza je prebačena u fazu zamrzavanja prije izdanja, koje se očekuje u drugoj polovici siječnja. U usporedbi s izdanjem Wine 8.21 zatvoreno je 52 izvještaja o greškama i unesenih 391 promjena.
Najvažnije promjene:
- Ugrađeni paket vkd3d s implementacijom Direct3D 12, koji funkcionira putem prevođenja poziva u grafički API Vulkan, ažuriran je na verziju 1.10.
- Nastavljeno je razvijanje funkcionalnosti usmjerene na omogućavanje korištenja Wine-a u okruženjima temeljenim na Wayland protokolu bez korištenja XWayland i komponenti X11. U drajveru winewayland.drv dodana je podrška za rasporede tipkovnica. Proširena je podrška za grafički API Vulkan i dodane su funkcije vkQueuePresentKHR, vkGetDeviceGroupSurfacePresentModesKHR, vkGetPhysicalDevicePresentRectanglesKHR. Dodana je funkcija ClipCursor i omogućena je rad s relativnim koordinatama prilikom praćenja pokreta miša.
- Pri korištenju novih izdanja GnuTLS implementirana je podrška za ključave za enkripciju DH (Diffie-Hellman).
- Zatvoreni su izvještaji o greškama vezanim za rad aplikacija: 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.
- Zatvoreni su izvještaji o greškama vezanim za rad igara: For Honor, STEEP, Far Cry 5, NFS Most Wanted, Castlevania: Lords of Shadow 2, Eurobattle, Daily Chthonicle, Crimson Skies.
Dodatno se može istaknuti objava projekta Wine paketa vkd3d 1.10 s implementacijom Direct3D 12, koji funkcioniše putem prevođenja poziva u grafički API Vulkan. U paketu se nalaze biblioteke libvkd3d s implementacijama Direct3D 12, libvkd3d-shader s prevoditeljem za šablone 4 i 5 i libvkd3d-utils s funkcijama za pojednostavljivanje portiranja aplikacija Direct3D 12, kao i set demo primjera, uključujući port glxgears na Direct3D 12. Kod projekta se distribuira pod licencom LGPLv2.1.
Biblioteka libvkd3d podržava većinu mogućnosti Direct3D 12, uključujući alate za grafiku i izračune, redove i popise naredbi, deskriptore i deskriptore hrpa, korijenske potpisne oblike, neuredni pristup, uzorce, potpisne oblike naredbi, korijenske konstante, neizravno (indirect) iscrtavanje, metode Clear*() i Copy*(). U libvkd3d-shader implementirana je translacija bajtkoda modela šejdera 4 i 5 u međurezultat SPIR-V. Podržani su vertikalni, pikselni, teselacijski, izračunateljski i jednostavni geometrijski šejderi, serijalizacija i deserijalizacija korijene potpisne oblike. Od šejderskih instrukcija implementirane su aritmetičke, atomske i bitne operacije, operatori usporedbe i kontrole toka podataka, instrukcije sample, gather i load, operacije neurednog pristupa (UAV, Unordered Access View).
U novoj verziji nastavljena je rad na poboljšanju prevoditelja šablona na jeziku HLSL (High-Level Shader Language), koji je dostupan od DirectX 9.0: dodana je podrška za dinamičko indeksiranje nizova; dodane su izraze "break", "continue" i "switch"; prošireni su izrazi na koje se može primijeniti sabijanje konstanti; implementirane su ugrađene funkcije ceil(), degrees(), radians(), fwidth(), tan(), tex2Dlod(), tex2Dproj(), texCUBEproj() i tex3Dproj().
U biblioteku libvkd3d dodane su nove programske sučelja Direct3D 12 (ID3D12Device5, ID3D12GraphicsCommandList5 i ID3D12Resource1) te je omogućeno stvaranje objekata stanja cjevovoda (pipeline state object). U libvkd3d-utils dodane su pomoćne funkcije za manipulaciju DXBC: D3DGetBlobPart(), D3DGetDebugInfo(), D3DGetInputAndOutputSignatureBlob(), D3DGetInputSignatureBlob(), D3DGetOutputSignatureBlob(), D3DStripShader(). U prevoditelj vkd3d-compiler dodane su opcije „—fragment-coordinate-origin“ i „—semantic-compat-map“.
Izvor: opennet.ru
