Ha comenzado la prueba del primer candidato para el lanzamiento de Wine 8.0, una implementación abierta de WinAPI. La base de código se ha trasladado a la etapa de congelación antes del lanzamiento, que se espera para mediados de enero. En comparación con la versión Wine 7.22, se han cerrado 52 informes de errores y se han realizado 538 cambios.
Cambios más importantes:
- El paquete vkd3d con la implementación de Direct3D 12, que funciona a través de la traducción de llamadas en la API gráfica Vulkan, se ha actualizado a la versión 1.6.
- Se ha optimizado el convertidor de llamadas del sistema (thunk) para Vulkan y OpenGL.
- En WinPrint, se ha ampliado el soporte para los controladores de salida de impresión (Print processor).
- Se ha mejorado panel de control con el joystick.
- Se ha completado el trabajo para proporcionar soporte para el tipo 'long' en el código de la función printf.
- Se han cerrado informes de errores relacionados con el funcionamiento de los juegos: Tom Clancy’s Rainbow Six: Vegas 2, The Void, Ragnarok Online, Drakan, Star Wars, Colin McRae, X-COM.
- Se han cerrado informes de errores relacionados con el funcionamiento de las aplicaciones: TMUnlimiter 1.2.0.0, MDB Viewer Plus, Framemaker 8, Studio One Professional 5.
También se puede mencionar la publicación por parte del proyecto Wine del paquete vkd3d 1.6 con la implementación de Direct3D 12, que funciona a través de la traducción de llamadas en la API gráfica Vulkan. El paquete incluye bibliotecas libvkd3d con la implementación de Direct3D 12, libvkd3d-shader con el traductor de modelos de sombreado 4 y 5, y libvkd3d-utils con funciones para simplificar el portado de aplicaciones Direct3D 12, así como un conjunto de ejemplos de demostración, incluyendo 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 funcionalidades de Direct3D 12, incluyendo herramientas para gráficos y cálculos, colas y listas de comandos, descriptores y descriptores de montones, firmas raíz, acceso desordenado, Samplers, firmas de comandos, constantes raíz, renderizado indirecto, métodos Clear*() y Copy*(). En libvkd3d-shader se implementó la traducción de bytecode de versiones 4 y 5 de modelos de shaders a la representación intermedia SPIR-V. Se soportan shaders de vértices, píxeles, teselación, cómputo y de geometría simple, así como la serialización y deserialización de la firma raíz. Se han implementado instrucciones de shaders para operaciones aritméticas, atómicas y bitwise, operadores de comparación y control del flujo de datos, instrucciones sample, gather y load, y operaciones de acceso desordenado (UAV, Unordered Access View).
En la nueva versión, se ha continuado trabajando en la mejora del compilador de shaders en HLSL (High-Level Shader Language), proporcionado desde DirectX 9.0. Entre las mejoras relacionadas con HLSL:
- Se ha implementado un soporte inicial para shaders computacionales.
- Se ha mejorado el soporte para la inicialización y asignación de objetos compuestos, como estructuras y matrices.
- Se ha añadido la posibilidad de cargar y guardar recursos de texturas utilizando acceso desordenado (UAV).
- Se ha añadido soporte para atributos de funciones y se han implementado funciones integradas asuint(), length(), normalize().
- Se ha añadido soporte para módulos para cálculos en punto flotante.
- Se ha implementado la bandera VKD3D_SHADER_DESCRIPTOR_INFO_FLAG_UAV_ATOMICS para indicar operaciones atómicas sobre descriptores de acceso desordenado (UAV).
Fuente: opennet.ru
