A fost publicat un release experimental al implementării deschise Win32 API — Wine 11.17. De la lansarea versiunii 11.16, au fost închise 44 de rapoarte de erori și au fost efectuate 387 de modificări.
Cele mai importante schimbări:
- A fost adăugat suport inițial pentru emularea modurilor de ecran, permițând rularea aplicațiilor și jocurilor în mod fullscreen cu rezoluția virtuală proprie, care la redarea efectivă se scalează luând în considerare DPI-ul monitorului existent. De exemplu, un joc vechi poate utiliza o rezoluție de 640×480, dar să fie afișat pe un ecran cu o rezoluție mai mare, menținând proporțiile.
- A fost adăugat suport pentru funcțiile RtlGetSystemPreferredUILanguages și RtlGetUserPreferredUILanguages pentru a obține lista limbilor preferate în interfață, configurate în registru pentru întreaga sistem și utilizatori individuali, și generate în mod implicit pe baza setărilor locale. De asemenea, au fost adăugate funcțiile RtlGetProcessPreferredUILanguages, SetProcessPreferredUILanguages, RtlGetSetThreadPreferredUILanguages, SetThreadPreferredUILanguages pentru a determina și seta lista limbilor preferate la nivel de procese și fire.
- Pachetul încorporat Vkd3d cu implementarea Direct3D 12 a fost actualizat la versiunea 2.1.
- Au fost închise rapoarte de erori legate de funcționarea aplicațiilor: certmgr.exe, Signtools, Advanced SystemCare 6.4, Autodesk 3ds Max 9, SketchUp 2021, Nokia S60 5th Edition SDK 1.0, PDFCreator, SafeDisc v2.05.030, Bigrats, PTC Pro Engineer Wildfire V5, VisualSubSync 1.0.2.1, PS4 Remote Play 2.x, MigrosBank EBanking 8.2.x, Sparda Bank SecureApp 1.x, MSXML 6.0, Sennheiser Wireless Systems Manager 4.4, Netscape Navigator 3.04, xEdit.
- Au fost închise rapoarte de erori legate de funcționarea jocurilor: GTA: Vice City, GTA: San Andreas, Tetris JR, Worms Blast, Horizon Chase Turbo, Star Wars: Knights of the Old Republic I/II, GunBound, Marathon, Ground Control, Ankh — Anniversary Edition, Clive Barker’s Jericho.
De asemenea, merită menționate noi release-uri ale proiectelor legate de Wine:
- A fost formatat release-ul proiectului Wine Staging 11.17, oferind build-uri extinse Wine, care includ patch-uri incomplet gata sau riscante, încă neadecvate pentru a fi acceptate în ramura principală Wine. Comparativ cu Wine, Wine Staging oferă 279 de patch-uri suplimentare. În noul release Wine Staging a fost realizată sincronizarea cu baza de cod Wine 11.17 și a fost actualizat codul vkd3d. În compunerea principală Wine a fost mutat un patch care implementează în biblioteca kernel32.dll funcția SetThreadpoolTimerEx.
- A fost publicat pachetul vkd3d 2.1 cu implementarea Direct3D 12, care funcționează prin translația apelurilor în API-ul grafic Vulkan. Pachetul include bibliotecile libvkd3d cu implementarea Direct3D 12, libvkd3d-shader cu translația modelelor de shader și libvkd3d-utils cu funcții pentru simplificarea portării aplicațiilor Direct3D 12, precum și un set de exemple demonstrative, inclusiv portul glxgears pe Direct3D 12. Biblioteca libvkd3d sprijină majoritatea funcționalităților Direct3D 12, inclusiv instrumente pentru grafică și calcul, cozi și liste de comenzi, descriptorii și grupurile de descriptoare, semnăturile rădăcină, accesul nestructurat, sampler-i, semnăturile de comenzi, constantele rădăcină, redarea indirectă, metodele Clear*() și Copy*(). În libvkd3d-shader s-a realizat translația codului binar al modelelor de shader către reprezentarea intermediară SPIR-V.
În noua versiune a vkd3d:
- În implementarea limbajului de shader HLSL a fost adăugată suport pentru operații aritmetice cu tipul „half” la utilizarea modelelor de shader 4 și 5.
- În compilatorul de shader HLSL au fost îmbunătățite verificările pentru datele de intrare și ieșire, fiind implementat un parcurs pentru eliminarea variabilelor globale (uniform) neutilizate în modelele de shader 1-3.
- În backend-ul pentru limbajul de shader GLSL (OpenGL Shading Language) a fost implementat suport pentru adresarea indirectă a registrelor de intrare, operații atomice de comparare și adunare între numere întregi, operații pe biți și bariere, operații de încărcare/salvare pentru UAV (Unordered Access View) și memorie comună a grupului de fire.
- A fost îmbunătățită suportul pentru vechiul format binar al shaderelor Direct3D. S-au implementat instrucțiunile „sub” și „break_cmp”, modificatorii instrucțiunilor „_x2”, „_x4”, „_x8”, „_d2”, „_d4” și „_d8”, precum și modificatorii operandului „_bias”, „_x2” și „_bx2”.
- În procesul de conversie în reprezentarea intermediară a shaderelor SPIR-V a apărut suport pentru operațiile de conversie a numerelor cu virgulă mobilă în numere întregi de 64 de biți.
- În libvkd3d-utils a fost extins suportul pentru API-ul de reflexie a shaderelor. S-au implementat interfețele ID3D10ShaderReflection, ID3D10ShaderReflection1 și ID3D11ShaderReflection, precum și majoritatea metodelor interfețelor ID3D12ShaderReflection și ID3D12ShaderReflectionType.
- În vkd3d-compiler a fost adăugată opțiunea „—allow-half-globals”, iar în libvkd3d-shader, flacul VKD3D_SHADER_COMPILE_OPTION_BACKCOMPAT_ALLOW_HALF_GLOBALS pentru compilarea variabilelor globale cu tipul „half” în reprezentarea cu tipul „float”.
- A fost lansată versiunea DXVK 3.1, care oferă o implementare a DXGI (DirectX Graphics Infrastructure), Direct3D 8, 9, 10 și 11, funcționând printr-o translație a apelurilor în API Vulkan. Pentru utilizarea DXVK, este necesar să aveți drivere care suportă API Vulkan 1.4, cum ar fi NVIDIA 575.51.02, Mesa AMD RADV 25.0, NVIDIA 25.1 și Intel ANV 25.1. DXVK poate fi utilizat pentru a rula aplicații și jocuri 3D în Linux prin intermediul Wine, servind ca o alternativă mai performantă la implementările Direct3D integrate în Wine, care funcționează pe baza OpenGL.
În noua versiune:
- A fost adăugată suportul pentru redarea incrementală în DXGI, implementată prin intermediul extensiei Vulkan VK_KHR_incremental_present, care permite actualizarea pe ecran doar a zonelor modificate. Aceasta nouă funcționalitate a rezolvat problemele de redare în VirtualDJ și în diferite lanțuri de jocuri, cum ar fi Ubisoft Connect.
- A fost adăugat suportul pentru crearea viziunilor de obiecte de redare (render target view) direct în bufere, ceea ce a rezolvat problemele cu apariția artefactelor la redarea norilor în unele jocuri pe motorul Frostbite, cum ar fi Battlefield 3.
- A fost implementată încărcarea bibliotecilor pentru a susține extensiile specifice GPU-urilor Intel (vendor extensions).
- Au fost rezolvate problemele din jocurile Mabinogi, The Witcher 1, Ghost Recon Breakpoint, Mirrors Edge, RaceRoom Racing Experience.
- A fost publicată versiunea proiectului D7VK 2.2, care dezvoltă implementarea API-urilor grafice Direct3D 3, 5, 6 și 7, propuse de compania Microsoft în anii 1996, 1997, 1998 și 1999. D7VK funcționează printr-o translație a apelurilor în API Vulkan și permite, prin intermediul Wine, rularea în Linux a jocurilor retro bazate pe API Direct3D 3, 5, 6 și 7. Codul proiectului este scris în C++ și este distribuit sub licența Zlib. Ca bază în dezvoltare a fost utilizat codul backend-ului d3d9 de la proiectul DXVK - D7VK transformă API-urile Direct3D 3, 5, 6 și 7 în apeluri Direct3D 9, care sunt apoi translatate în API Vulkan. Dezvoltatorul nu intenționează să integreze D7VK în DXVK, așa cum s-a întâmplat cu implementările Direct3D 8 și Direct3D 9 deasupra Vulkan.
În noua versiune s-a realizat trecerea la funcționarea pe baza lansării DXVK 3.1, s-a reproiectat verificarea bufferelor executabile D3D3 și numărarea referințelor (refcounting) pentru dispozitivele D3D3, s-a îmbunătățit procesarea texturilor pentru D3D5/3. S-au adus corecturi care îmbunătățesc suportul pentru jocuri: Palantírs in The Lord of the Rings, Resident Evil 2 și Frogger.
Sursa: opennet.ro
