MuyLinux Eduardo Medina  

VKD3D 1.17 mejora el soporte de Direct3D 12 en Wine y Proton

Los responsables de Wine han anunciado la publicación de VKD3D 1.17, la nueva versión del renderizador o traductor de Direct3D 12 a Vulkan. Posiblemente a algunos esto les suene a Proton, pero la capa de compatibilidad de Valve utiliza una versión bifurcada y recortada del propio VKD3D llamada VKD3D-Proton, pero aun así eso no quiere decir que lo introducido en el proyecto original no vaya a llegar a la bifurcación.

VKD3D 1.17 trae una cantidad considerable de novedades y cambios, pero desde Wine han resaltado el soporte inicial del lenguaje de sombreador de alto nivel (HLSL) para la memoria compartida del grupo de hilos, la implementación de varias características para el Lenguaje de Sombreado Metal (Metal Shading Language) de Apple en fase experimental y las típicas correcciones de errores. A partir de ahora vamos a profundizar un poco en las novedades que ha traído el lanzamiento que nos ocupa en esta entrada.

En lo que respecta a libvkd3d, nos encontramos con que el método EnumerateMetaCommands() de la interfaz ID3D12Device5 ha sido implementado, lo que debería abrir la puerta a la realización de consultas de reflexión de metadatos sobre el metacomando especificado. Por otro lado, vkd3d-compiler ha incluido una nueva fuente de tipo, tx, que especifica los sombreadores de texturas tx_1_0 en D3DX.

La parte que más beneficiada ha salido de VKD3D 1.17 es libvkd3d-shader, para la que a nivel de los tipos de fuentes HLSL se han introducido soporte para la memoria compartida en el grupo de hilos inicial, soporte mejorado para shaders de geometría, salidas SV_ViewportArrayIndex, una semántica de entrada-salida de variables de estructura que se propaga a los campos de la estructura constitutiva, unos valores de retorno del punto de entrada del sombreador que se asignan antes que cualquier otra salida en la firma de salida, paso a través de los puntos de control del sombreado de carenado y una información de reflexión puede ser recuperada usando vkd3d_shader_scan().

Continuando con libvkd3d-shader, como mejoras y novedades para los efectos están las asignaciones de blobs del shader y expresiones de valor FXLVM en efectos fx_2_0, los tipos de estructuras sin nombre, los puntos de enlace de búfer constante explícitos y ajustes de empaquetado constantes, además de las operaciones d3ds_noiseswiz, ge, lt y noise de FXLVM.

Si bien DXVK, el traductor/renderizador de las versiones 8, 9, 10 y 11 de Direct3D a Vulkan, es más conocido y está más maduro, el futuro pasa por VKD3D debido a que cada vez son más los videojuegos que utilizan DirectX 12, la versión más reciente de la API de Microsoft. Esto hará que tanto Wine como Valve tengan que ponerse las pilas para soportar de manera correcta los videojuegos del futuro, y a eso hay que sumar basuras infectas como Unreal Engine 5, que van a hacer muy difícil la ejecución de muchos títulos doble A y triple A en la Steam Deck y básicamente cualquier ordenador que no cuente con una gráfica dedicada de gama media-alta relativamente reciente.

Los que quieran conocer todos los detalles sobre VKD3D 1.17 pueden consultar el registro de cambios publicado por los responsables de Wine, mientras que la mencionada versión del renderizador, si no se quiere lidiar con un proceso de compilación y posibles configuraciones complejas, sería mejor esperar a que llegue a Wine, Proton y las bifurcaciones de este último.

La entrada VKD3D 1.17 mejora el soporte de Direct3D 12 en Wine y Proton es original de MuyLinux

Leave A Comment

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.