Comezaron as probas do primeiro candidato á versión Wine 9.0, unha implementación aberta de WinAPI. O código base foi posto nunha fase de conxelación antes do lanzamento, que se espera na segunda quincena de xaneiro. Desde o lanzamento de Wine 8.21, pecháronse 52 informes de erros e fixéronse 391 cambios.
Os cambios máis importantes:
- O paquete vkd3d integrado cunha implementación de Direct3D 12, que traballa a través da tradución de chamadas á API de gráficos Vulkan, actualizouse á versión 1.10.
- Continuou o desenvolvemento de funcionalidades destinadas a implementar a capacidade de usar Wine en contornos baseados no protocolo Wayland sen o uso de compoñentes XWayland e X11. Engadido soporte para deseños de teclado no controlador winewayland.drv. Ampliouse a compatibilidade coa API de gráficos Vulkan e engadíronse as funcións vkQueuePresentKHR, vkGetDeviceGroupSurfacePresentModesKHR, vkGetPhysicalDevicePresentRectanglesKHR. Engadiuse a función ClipCursor e implementouse a capacidade de traballar con coordenadas relativas ao rastrexar o movemento do rato.
- Cando se usan versións recentes de GnuTLS, implementouse o soporte para chaves de cifrado DH (Diffie-Hellman).
- Informes de erros pechados relacionados co funcionamento das aplicacións: Bloc de notas, 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.
- Os informes de erros relacionados co funcionamento dos xogos están pechados: For Honor, STEEP, Far Cry 5, NFS Most Wanted, Castlevania: Lords of Shadow 2, Eurobattle, Daily Chthonicle, Crimson Skies.
Ademais, podemos destacar a publicación por parte do proxecto Wine do paquete vkd3d 1.10 cunha implementación de Direct3D 12, que traballa a través da tradución de chamadas á API de gráficos Vulkan. O paquete inclúe bibliotecas libvkd3d con implementacións de Direct3D 12, libvkd3d-shader cun tradutor dos modelos de sombreadores 4 e 5 e libvkd3d-utils con funcións para simplificar a portabilidade de aplicacións Direct3D 12, así como un conxunto de exemplos de demostración, incluíndo un porto de glxgears a Direct3D 12. O código do proxecto distribúese con licenza LGPLv2.1.
A biblioteca libvkd3d admite a maioría das funcións de Direct3D 12, incluíndo gráficos e instalacións informáticas, filas e listas de comandos, identificadores e identificadores de montón, sinaturas raíz, acceso fóra de orde, mostradores, sinaturas de comandos, constantes raíz, renderización indirecta, métodos claros *( ) e Copiar*(). En libvkd3d-shader, implícase a tradución do bytecode dos modelos de shader 4 e 5 nunha representación SPIR-V intermedia. Admite sombreadores de vértice, píxeles, teselación, computación e xeometría simple, serialización e deserialización de sinatura raíz. As instrucións de sombreado inclúen operacións aritméticas, atómicas e de bits, operadores de comparación e control de fluxo de datos, instrucións de mostra, recollida e carga, operacións de acceso sen ordenar (UAV, Vista de acceso sen ordenar).
A nova versión segue mellorando o compilador de sombreadores en HLSL (High-Level Shader Language), proporcionado a partir de DirectX 9.0: soporte adicional para a indexación dinámica de matrices; engadíronse expresións “romper”, “continuar” e “cambiar”; Expandíronse expresións para as que é aplicable a convolución constante; As funcións integradas ceil(), degrees(), radians(), fwidth(), tan(), tex2Dlod(), tex2Dproj(), texCUBEproj() e tex3Dproj() están implementadas.
Engadíronse novas interfaces de programación Direct3D 3 (ID12D3Device12, ID5D3GraphicsCommandList12 e ID5D3Resource12) á biblioteca libvkd1d e implementouse a capacidade de crear obxectos de estado de canalización. Engadíronse funcións auxiliares para a manipulación de DXBC a libvkd3d-utils: D3DGetBlobPart(), D3DGetDebugInfo(), D3DGetInputAndOutputSignatureBlob(), D3DGetInputSignatureBlob(), D3DGetOutputSignatureBlob(), D3DGetOutputSignatureBlob(), D3DStrip. Engadíronse as opcións "—fragment-coordinate-origin" e "—semantic-compat-map" ao compilador vkdXNUMXd-compiler.
Fonte: opennet.ru
