Se ha publicado una versión experimental de la implementación abierta de la API Win32 — Wine 10.20. Desde la versión 10.19, se han cerrado 31 informes de errores y se han realizado 337 cambios.
Cambios más importantes:
- El paquete integrado Vkd3d con la implementación de Direct3D 12 se ha actualizado a la versión 1.18.
- Se agregó un cuadro de diálogo para mostrar el progreso del escaneo de documentos.
- Se continuó la implementación del mecanismo Reparse Point, que permite adjuntar datos adicionales a archivos y carpetas, identificados a través de etiquetas. Se ha garantizado el soporte de Reparse Point en las funciones CreateHardLink(), SetFileAttributes(), FindNextFile(), MoveFileWithProgress()
- Se ha continuado el refactorizado de la implementación de Common Control tras la separación de la biblioteca COMCTL32 en módulos individuales para las versiones 5 y 6.
- Se ha resuelto un problema de cierre inesperado de muchos juegos (por ejemplo, Syberia 2) al usar el modo WoW64 en sistemas con GPU NVIDIA.
- Se ha solucionado un problema con el retraso en la respuesta al presionar las teclas de control del cursor en algunos juegos, como Might and Magic VI.
- Se ha resuelto un problema de congelamiento o imposibilidad de iniciar algunas compilaciones de aplicaciones windows que utilizan la biblioteca GTK, como Meld y Geany.
- Se han cerrado informes de errores relacionados con el funcionamiento de aplicaciones: SQL Server 2012/2014, instalador de MS Office 365, QuarkXPress 2024, TomTom MyDrive Connect 4.x, Spine, GenLauncher, grepwinNP3, PlayOnline Viewer, tlReader 10.1.0.2004, cmd.exe, CLM Explorer, HiveMQ CE 2025.5.
- Se han cerrado informes de errores relacionados con el funcionamiento de juegos: Civilization 1.2, StarCraft, Last Stand: Aftermath, Mega Man X DiVE, Wagotabi, Geneforge 1 — Mutagen.
El proyecto Wine también ha publicado la versión del paquete vkd3d 1.18 con la implementación de Direct3D 12, que funciona a través de la traducción de llamadas a la API gráfica Vulkan. El paquete incluye las bibliotecas libvkd3d con la implementación de Direct3D 12, libvkd3d-shader con el traductor de modelos de shaders 4 y 5 y libvkd3d-utils con funciones para facilitar la adaptación de aplicaciones Direct3D 12, así como un conjunto de ejemplos demostrativos, incluido el puerto de glxgears a Direct3D 12. El código del proyecto se distribuye bajo la licencia LGPLv2.1.
La biblioteca libvkd3d soporta la mayor parte de las características de Direct3D 12, incluyendo herramientas para gráficos y cálculos, colas y listas de comandos, descriptores y descriptores de pilas, firmas raíz, acceso desordenado, samplers, firmas de comandos, constantes raíz, renderizado indirecto, métodos Clear*() y Copy*(). En libvkd3d-shader se ha implementado la traducción de bytecode de modelos de shaders a la representación intermedia SPIR-V. Se soportan shaders de vértices, píxeles, teselación, cómputo y shaders geométricos simples, así como la serialización y deserialización de la firma raíz. Se han implementado operaciones aritméticas, atómicas y bit a bit, operadores de comparación y control de flujo, instrucciones sample, gather y load, operaciones de acceso desordenado (UAV, Unordered Access View) a partir de instrucciones de shader.
En la nueva versión de vkd3d:
- Se han añadido funciones integradas en la implementación del lenguaje de shaders HLSL: countbits(), firstbithigh(), firstbitlow(), frexp() y texCUBEbias(). Para los perfiles Shader Model 1-3 se ha implementado el soporte de expresiones condicionales con tipos de enteros.
- El compilador de shaders HLSL ha optimizado la compilación de código con declaraciones condicionales if/else. Se ha ampliado el cálculo de constantes en la etapa de compilación (constant folding). Esta optimización ahora se puede aplicar a expresiones del tipo «true ? x : y» y a las funciones asfloat(), asint(), asuint(), cos(), mad(), round() y sin().
- Se ha añadido el método CreateCommandList1() a la implementación de la interfaz ID3D12Device4 en la biblioteca libvkd3d.
- Se han añadido las instrucciones de bytecode Direct3D: bem, tex, texbem, texbeml y texcoord.
- Se ha continuado el desarrollo de la implementación del lenguaje de shaders MSL (Metal Shading Language), utilizado por Apple en su API gráfica Metal. Se ha añadido soporte para shaders compute, buffers de constantes que se inicializan instantáneamente, funciones trigonométricas, operaciones de módulo y barrido a nivel de bits.
- Se han añadido operaciones de división y de módulo con enteros sin signo, funciones sin() y cos(), y la capacidad de desplazar texels al cargar texturas en la implementación del lenguaje de shaders GLSL (OpenGL Shading Language).
Además, Valve ha publicado la versión VKD3D-Proton 3.0, una bifurcación de la base de código vkd3d, diseñada para mejorar el soporte de Direct3D 12 en el paquete de ejecución de juegos Proton. VKD3D-Proton incluye cambios, optimizaciones y mejoras específicos para Proton, para un mejor rendimiento de juegos de Windows basados en Direct3D 12 que aún no han sido implementados en la versión principal de vkd3d. También se destaca la orientación hacia el uso de extensiones modernas de Vulkan y las capacidades de las nuevas versiones de controladores gráficos para lograr plena compatibilidad con Direct3D 12.
Entre los cambios en la nueva versión de vkd3d-proton:
- Se ha reescrito el backend de shaders DXBC (DirectX ByteCode), que sustituye al backend vkd3d-shader. Este nuevo backend ha resuelto problemas en muchos juegos que anteriormente surgían debido a la falta de funcionalidad necesaria en vkd3d-shader; por ejemplo, se ha logrado que el juego Red Dead Redemption 2 funcione correctamente en modo D3D12.
- Se ha añadido soporte para la tecnología de supermuestreo FSR4 (AMD FidelityFX Super Resolution).
- Se ha añadido soporte experimental para gráficos de trabajo D3D12 (Work Graphs).
- Se ha añadido soporte experimental para microcartas de opacidad (OMM — Opacity MicroMaps).
- Se han solucionado problemas en los juegos Star Citizen, Ninja Gaiden 4, Monster Hunter Wilds, Wreckfest 2, Satisfactory, Street Fighter 6, Death Stranding, Wuthering Waves, Dune, Spider-Man Remastered, Gray Zone Warfare, Rise of the Tomb Raider, Port Royal, Mafia: Definitive Edition, Final Fantasy Tactics.
Fuente: opennet.ru
