Alustati Vini 9.0 avaleere kandidaatide testimine, avatud WinAPI teostamine. Koodibaas on viidud ettevalmistusse enne väljalaskmist, mis on oodata jaanuari teises pooles. Võrreldes Wine 8.21 väljaandega on suletud 52 veateadet ja tehtud 391 muudatust.
Kõige olulisemad muudatused:
- Sisseehitatud vkd3d pakett, mis teostab Direct3D 12 üle Vulkani graafilise API, on värskendatud versioonile 1.10.
- Funktsionaalsuse arendamine jätkub, et võimaldada Wine'i kasutamist Waylandi protokolliga keskkondades ilma XWayland ja X11 komponentideta. Draiveris winewayland.drv on lisatud klaviatuurivajaduste tugi. Vulkani graafilise API tuge on laiendatud ning on lisatud funktsioonid vkQueuePresentKHR, vkGetDeviceGroupSurfacePresentModesKHR, vkGetPhysicalDevicePresentRectanglesKHR. Lisatud on funktsioon ClipCursor ja teostatud võimalus töötada suhteliste koordinaatidega hiire liikumise jälgimisel.
- Uute GnuTLS väljalasete kasutamisel on rakendatud DH (Diffie-Hellman) krüptovõtmete tugi.
- Veebirakenduste tõrkearuanded on suletud: 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.
- Mängude tõrkearuanded on suletud: For Honor, STEEP, Far Cry 5, NFS Most Wanted, Castlevania: Lords of Shadow 2, Eurobattle, Daily Chthonicle, Crimson Skies.
Lisaks tasub märkida, et projekt Wine on avaldanud paketi vkd3d 1.10, mis rakendab Direct3D 12, töötades graafikala API Vulkani kaudu. Pakett sisaldab librariisid libvkd3d, mis teostab Direct3D 12, libvkd3d-shader 4. ja 5. mudeli shaderite tõlkijaga ning libvkd3d-utils, mis sisaldab funktsioone Direct3D 12 rakenduste portimise lihtsustamiseks, samuti näidisnäidendeid, sealhulgas glxgears'i porti Direct3D 12-le. Projekti kood on litsentseeritud LGPLv2.1 alusel.
libvkd3d raamatukogu toetab enamikku Direct3D 12 funktsioone, sealhulgas graafika ja arvutuste tööriistu, järjekordi ja käskluste loendeid, deskriptorid ja hunnikutes deskriptorid, juure signtuurid, süstemaatiline juurdepääs, katsurfiltrid, käskluste signtuurid, juure konstantsed, kaudne (indirect) joonistamine, Clear*() ja Copy*() meetodid. libvkd3d-shader võimaldab 4. ja 5. versiooni shaderite byte-code'i tõlget vahepealseks kujutiseks SPIR-V. Toetatakse tipu-, pikslite-, tessleeringu-, arvutus- ja lihtsaid geomeetrilisi shadereid, juure signtuuride serialiseerimist ja deserialiseerimist. Shaderi käskudest on väljatöötatud aritmeetilised, aatomilised ja bitised operatsioonid, võrdlusoperaatorid ja andmevoo juhtimise käsklused, instruktsioonid sample, gather ja load, operatsioonid süstemaatilise juurdepääsu (UAV, Unordered Access View) jaoks.
Uues versioonis on jätkatud HLSL (High-Level Shader Language) shaderite kompilaatori täiustamist, mis on saadaval alates DirectX 9.0: on lisatud dünaamilise indekseerimise toetus massiividele; on lisatud „break”, „continue” ja „switch” avaldused; on laiendatud avaldusi, millele rakendub konstantide kokkusurumine; on rakendatud sisseehitatud funktsioonid ceil(), degrees(), radians(), fwidth(), tan(), tex2Dlod(), tex2Dproj(), texCUBEproj() ja tex3Dproj().
Libvkd3d teeki on lisatud uued Direct3D 12 API-d (ID3D12Device5, ID3D12GraphicsCommandList5 ja ID3D12Resource1) ja on rakendatud võimalus luua torujuhtme olekute objekt (pipeline state object). Libvkd3d-utils on lisatud abifunktsioonid DXBC manipuleerimiseks: D3DGetBlobPart(), D3DGetDebugInfo(), D3DGetInputAndOutputSignatureBlob(), D3DGetInputSignatureBlob(), D3DGetOutputSignatureBlob(), D3DStripShader(). VKD3D-kompilaatorisse on lisatud valikud „—fragment-coordinate-origin” ja „—semantic-compat-map”.
Allikas: opennet.ru
