VKD3D-Proton 2.10 ha sido publicada como la nueva versión del renderizador (o traductor) de Direct3D 12 a Vulkan y que, como bien indica su nombre, forma parte de la capa de compatibilidad Proton. Se trata de un proyecto que parte de una bifurcación del VKD3D original, procedente de Wine.
Microsoft ha intentado con DirectX 12 ir más allá de solo procesar gráficos mediante una GPU, sino también abarcar otros aspectos que permitan mejorar el desempeño de los videojuegos. De todo lo presente en la última versión de la tecnología del gigante de Redmond se puede destacar a DirectStorage, una característica que permite al procesador gráfico (GPU) llevar a cabo las tareas de descompresión de datos instalados en las unidades SSD sin pasar por el procesador.
VKD3D-Proton 2.10 puede hacer uso de la extensión de Vulkan NV_memory_decompression
para implementar la compresión de GDeflate acelerada por hardware en DirectStorage. Por otro lado, los responsables del renderizador comentan que han trabajado alrededor de un bug en el driver de NVIDIA cuando se usa el sombreador de respaldo de GDeflate. El sombreador de respaldo también funciona a partir de este lanzamiento en RADV (el driver de Vulkan para gráficas Radeon presente en Mesa).
Otra novedad es que, con la implementación de la extensión de Vulkan NV_device_generated_commands_compute
, es posible implementar de manera eficiente el uso que hace Starfield de ExecuteIndirect, lo que debería de mejorar el desempeño del último triple A de Bethesda, aunque por ahora esto solo funciona con el driver RADV. Antes se empleaba otro arreglo para el mismo problema, pero ofrecía un rendimiento más lento.
Otras cosas que han sido implementadas en VKD3D-Proton 2.10 son el soporte para la versión 1.2 de Support Root Signature, la implementación de Shader Model 6.7 (si bien Vulkan no cumple con la implementación como tal, funciona tanto con NVIDIA como RADV), la implementación de CreateSampler2, la implementación de la característica RelaxedFormatCasting procedente de Enhanced Barriers y un soporte correcto para A8_UNORM usando la extensión de Vulkan VK_KHR_maintenance5
.
Otras extensiones de Vulkan que están soportadas a partir de este lanzamiento son VK_EXT_dynamic_rendering_unused_attachments
, VK_KHR_maintenance5
y VK_NV_device_generated_commands_compute
, mientras que a nivel de rendimiento están las compilaciones de la estructura de aceleración por lotes, una característica que mejora el rendimiento al menos en RADV, y la mencionada mejora del rendimiento de ExecuteIndirect con VK_NV_device_generated_commands_compute
, que obviamente se puede aplicar a otras aplicaciones que hagan uso de DirectX 12.
Por último están las correcciones, de las que se pueden destacar aquellas que han arreglado lo siguiente: un mal rendimiento de Resizable BAR (ReBAR) en Age of Wonders 4, un problema de corrupción de memoria en Starfield, la inhabilitación de ReBAR en Halo Infinite para arreglar el pobre rendimiento de la CPU, un problema de cuelgue de la GPU en juegos de Capcom como Street Fighter 6 y Resident Evil 2 remake, otro cuelgue de GPU que afecta a Armored Core VI en la pelea de Balteus del capítulo 1, fallos de glitches que afectan a Monster Hunter Rise y Resident Evil 4 remake, un fallo en torno a los montones de consultas de marcas de tiempo en el driver de NVIDIA que puede provocar falsos cuelgues de la GPU, además de una rotura en Unreal Engine 5 cuando los sombreadores en malla están expuestos, pero no las coordenadas baricéntricas.
Con la consolidación de DirectX 12 como API para la construcción de videojuegos, VKD3D-Proton irá ganando protagonismo en el futuro, mientras que DXVK, que se encarga de traducir las versiones 9, 10 y 11 de Direct3D, quedará como un soporte para títulos que ya han sido comercializados. Si Valve quiere que la Steam Deck tenga futuro, deberá de invertir bastante en la mejora de VKD3D-Proton.
Un dato curioso es que tanto DirectX 12 como Vulkan son derivadas de Mantle, una API creada por AMD y que fue “donada” a Microsoft y Khronos Group respectivamente. En consecuencia y como señala la wiki de WineHQ, DirectX 12 y Vulkan tienen muchas similitudes, lo que sobre el papel debería facilitar la compatibilidad, pero no hay que olvidar que la tecnología de Microsoft es privativa y la de Khronos Group una especificación abierta.
Y hasta aquí lo más importante de VKD3D-Proton 2.10. Los que quieran conocer todos los detalles pueden consultar el anuncio de lanzamiento publicado en el repositorio GitHub del proyecto, mientras que el renderizador, si no se quiere lidiar con él, lo suyo es esperar a que llegue a Proton.
La entrada VKD3D-Proton 2.10 mejora la compatibilidad con DirectStorage y el desempeño de Starfield es original de MuyLinux