A început testarea primului candidat la lansarea Wine 8.0, o implementare open-source a WinAPI. Codul a fost transferat într-o etapă de înghețare înainte de lansare, care este așteptată pentru mijlocul lunii ianuarie. Comparativ cu lansarea Wine 7.22, au fost închise 52 de rapoarte de erori și s-au făcut 538 de modificări.
Cele mai importante schimbări:
- Pachetul vkd3d cu implementarea Direct3D 12, care funcționează prin traducerea apelurilor în API-ul grafic Vulkan, a fost actualizat la versiunea 1.6.
- Au fost optimizate conversoarele de apeluri de sistem (thunk) pentru Vulkan și OpenGL.
- În WinPrint, s-a extins suportul pentru procesorii de imprimare (Print processor).
- A fost îmbunătățită panoul de control cu joystick-ul.
- S-a finalizat suportul pentru tipul 'long' în codul funcției printf.
- Au fost închise rapoartele de erori legate de funcționarea jocurilor: Tom Clancy’s Rainbow Six: Vegas 2, The Void, Ragnarok Online, Drakan, Star Wars, Colin McRae, X-COM.
- Au fost închise rapoartele de erori legate de funcționarea aplicațiilor: TMUnlimiter 1.2.0.0, MDB Viewer Plus, Framemaker 8, Studio One Professional 5.
De asemenea, se remarcă publicarea de către proiectul Wine a pachetului vkd3d 1.6 cu implementarea Direct3D 12, care funcționează prin traducerea apelurilor în API-ul grafic Vulkan. Pachetul include bibliotecile libvkd3d cu implementarea Direct3D 12, libvkd3d-shader cu traducătorul pentru shader-ele de model 4 și 5 și libvkd3d-utils cu funcții pentru simplificarea portării aplicațiilor Direct3D 12, precum și un set de exemple demonstrative, inclusiv portarea glxgears pe Direct3D 12. Codul proiectului este distribuit sub licența LGPLv2.1.
Biblioteca libvkd3d suportă majoritatea funcționalităților Direct3D 12, inclusiv instrumente pentru grafică și calcul, cozi și liste de comenzi, descriptorii și descriptorii de heap, semnăturile rădăcină, accesul nesortat, Sampler-e, semnăturile comenzii, constantele rădăcină, redarea indirectă, metodele Clear*() și Copy*(). În libvkd3d-shader este implementată traducerea codului byte pentru modelele de shader 4 și 5 în reprezentarea intermediară SPIR-V. Sunt suportate shader-ele de vârf, pe pixel, tesselație, calcul și geometrie simplă, serializarea și deserializarea semnăturii rădăcină. Dintre instrucțiunile shader-ului, sunt implementate operații aritmetice, atomice și bitwise, operatori de comparație și control al fluxului de date, instrucțiuni sample, gather și load, operații de acces nesortat (UAV, Unordered Access View).
În noua versiune, s-a continuat munca de îmbunătățire a compilatorului de shader-e scris în HLSL (High-Level Shader Language), disponibil începând cu DirectX 9.0. Printre îmbunătățirile legate de HLSL se numără:
- A fost implementat suportul inițial pentru shader-e compute.
- A fost îmbunătățit suportul pentru inițializarea și atribuirea obiectelor complexe, cum ar fi structuri și matrici.
- A fost adăugată posibilitatea de încărcare și salvare a resurselor de textură, folosind accesul neordânat (UAV).
- A fost adăugat suport pentru atributele funcțiilor și au fost implementate funcții încorporate asuint(), length(), normalize().
- A fost adăugat suport pentru module de calcul cu floating point.
- A fost implementat flagul VKD3D_SHADER_DESCRIPTOR_INFO_FLAG_UAV_ATOMICS pentru a indica operațiuni atomice asupra descriptorilor pentru acces neordonat (UAV).
Sursa: opennet.ro
