Alustati testimist esimese kandidaadi puhul Wine 9.0 väljaande jaoks, avatud WinAPI realiseerimise variandi osas. Koodibaas on viidud külmutamise etappi enne väljaandmist, mis on oodata jaanuari teises pooles. Võrreldes Wine 8.21 väljaandega on suletud 52 veateadet ja tehtud 391 muudatust.
Olulisemad muudatused:
- Sisseehitatud vkd3d pakett, mis realiseerib Direct3D 12 ning töötab graafikaprogrammi Vulkan kaudu, on uuendatud versioonile 1.10.
- Funktsionaalsuse arendamine on jätkunud, et võimaldada Wine'i kasutamist keskkondades, mis põhinevad Waylandi protokollil, ilma XWaylandi ja X11 komponentideta. Draiverisse winewayland.drv on lisatud klaviatuuri paigutuste tugi. Vulkan graafikaprogrammi tugi on laiendatud ning on lisatud funktsioonid vkQueuePresentKHR, vkGetDeviceGroupSurfacePresentModesKHR, vkGetPhysicalDevicePresentRectanglesKHR. Lisatud on funktsioon ClipCursor ja võimalus töötada suhteliste koordinaatidega hiire liikumise jälgimisel.
- Uute GnuTLS väljaannete kasutamisel on rakendatud DH (Diffie-Hellman) krüptovõtmete tugi.
- On suletud veateated, mis puudutasid rakendusi: 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.
- On suletud veateated, mis puudutasid mänge: For Honor, STEEP, Far Cry 5, NFS Most Wanted, Castlevania: Lords of Shadow 2, Eurobattle, Daily Chthonicle, Crimson Skies.
Tuleb märkida, et Wine projekt on avaldanud vkd3d paketi 1.10, mis realiseerib Direct3D 12 ja töötab graafikaprogrammi Vulkan kaudu. Pakett sisaldab teeke libvkd3d Direct3D 12 realiseerimisega, libvkd3d-shader 4. ja 5. mudeli shaderite tõlkijaga ning libvkd3d-utils funktsioonidele, et lihtsustada Direct3D 12 rakenduste portimist, samuti näidiste kogumit, sealhulgas glxgears'i porti Direct3D 12-le. Projekti kood on litsentseeritud LGPLv2.1 alusel.
Raamatukogu libvkd3d toetab enamikku Direct3D 12 võimalustest, sealhulgas graafika ja arvutamise vahendeid, järjekordi ja käsutamisliste, kirjeldajaid ja kaste, juureretsepte, segamatut juurdepääsu, näidikuid, käsureseptide, juurekonstantide, kaudset joonistamist, Clear*() ja Copy*() meetodeid. libvkd3d-shader'is on rakendatud 4. ja 5. mudeli shaderite bytecode'i tõlge vaheesitusele SPIR-V. Toetatud on tipp-, piksel-, tesselatsioon-, arvutamis- ja lihtsad geomeetrilised shaderid, juureretsepti serialiseerimine ja deserialiseerimine. Shaderi käskude seast on rakendatud aritmeetilised, aatomilised ja bititehteid, võrdlemise ja andmevoo juhtimise operaatorid, käsud sample, gather ja load, segamatu juurdepääsu operatsioonid (UAV, Unordered Access View).
Uues versioonis jätkatakse HLSL (High-Level Shader Language) shaderite kompilaatori täiustamist, mis on saadaval alates DirectX 9.0-st: lisatud on massiivide dünaamilise indekseerimise tugi; on lisatud laused "break", "continue" ja "switch"; on laiendatud laused, millele rakendub konstantide kokkukimmutamine; on rakendatud sisseehitatud funktsioonid ceil(), degrees(), radians(), fwidth(), tan(), tex2Dlod(), tex2Dproj(), texCUBEproj() ja tex3Dproj().
Libvkd3d raamatukokku on lisatud uued Direct3D 12 liideseid (ID3D12Device5, ID3D12GraphicsCommandList5 ja ID3D12Resource1) ning võimalus luua vooliku olekuobjekte (pipeline state object). Libvkd3d-utils on lisatud abifunktsioonid DXBC-naljade manipuleerimiseks: D3DGetBlobPart(), D3DGetDebugInfo(), D3DGetInputAndOutputSignatureBlob(), D3DGetInputSignatureBlob(), D3DGetOutputSignatureBlob(), D3DStripShader(). Vkd3d-compilerisse on lisatud valikud "--fragment-coordinate-origin" ja "--semantic-compat-map".
Allikas: opennet.ru
