Linux Adictos Darkcrizt  

vkd3d 1.7 ya fue liberado y estas son sus novedades

vkd3d

vkd3d, es la capa de traducción de Direct3D 12 a Vulkan de Wine

El proyecto Wine dio a conocer hace pocos días el lanzamiento de la nueva versión del paquete vkd3d 1.7 con una implementación de Direct3D 12 que funciona a través de la traducción de llamadas a la API de gráficos Vulkan.

El paquete incluye bibliotecas libvkd3d con implementaciones de Direct3D 12, libvkd3d-shader con shader model translate 4 y 5, y libvkd3d-utils con funciones para simplificar la migración de aplicaciones de Direct3D 12, así como un conjunto de demostraciones, incluido un puerto de glxgears a Direct3D 12.

La biblioteca libvkd3d admite la mayoría de las características de Direct3D 12, incluidos gráficos y computación, listas y colas de comandos, descriptores y descriptores de montón, firmas root, acceso no ordenado, muestras, firmas de comandos, constantes root, representación indirecta, métodos Clear*() y Copy*().

Ademas de ello libvkd3d-shader implementa la traducción del código de bytes 4 y 5 de los modelos de sombreado en una representación intermedia de SPIR-V. Admite sombreadores de vértice, píxel, teselación, cómputo y geometría simple, serialización y deserialización de firma root.

Las operaciones aritméticas, atómicas y de bits, los operadores de control de flujo de datos y comparación, las instrucciones de muestreo, recopilación y carga, las operaciones de acceso desordenado (UAV, vista de acceso desordenado) se implementan a partir de instrucciones de sombreado.

Principales novedades de vkd3d 1.7

En esta nueva versión que se presenta de vkd3d 1.7 se destaca él continuó trabajo para mejorar el compilador de shaders HLSL (High-Level Shader Language), asi como tambien que se agregó la capacidad de llamar a funciones definidas por el usuario y usar matrices como parámetros de funciones definidas por el usuario.

Otro de los cambios que se destaca de la nueva versión es la compatibilidad significativamente mejorada para los perfiles de modelo de sombreador Direct3D 1/2/3, ademas de que se agregó soporte inicial para tipos de punto flotante de baja precisión como «min16float».

Tambien se destaca que se agregó soporte para los parámetros SV_DispatchThreadID, SV_GroupID y SV_GroupThreadID y que se agregó una API pública para analizar (vkd3d_shader_parse_dxbc) y serializar (vkd3d_shader_serialize_dxbc) datos binarios de DXBC.

De los demás cambios que se destacan de la nueva versión:

  • Compatibilidad con el parámetro «offset» opcional del objeto de textura Load()
    método.
  • Soporte para la función intrínseca all().
  • Soporte para la función intrínseca de distance().
  • Soporte para las funciones intrínsecas exp() y exp2().
  • Soporte para la función intrínseca frac().
  • Soporte para la función intrínseca lit().
  • Soporte para la función intrínseca reflect().
  • Soporte para las funciones intrínsecas sin() y cos().
  • Soporte para la función intrínseca smoothstep().
  • Compatibilidad con las funciones intrínsecas sqrt() y rsqrt().
  • Soporte para la función intrínseca step().
  • Soporte para la función intrínseca transpose().
  • Compatibilidad con las variantes que no distinguen entre mayúsculas y minúsculas de los datos «float» y «dword»
    tipos
  • Soporte parcial para tipos de datos de precisión mínima como «min16float». Estos se interpretan actualmente como sus contrapartes regulares.
    Soporte de propagación constante mejorado, en particular a constante propagación a través de swizzles.
  • La opción de compilación VKD3D_SHADER_COMPILE_OPTION_WRITE_TESS_GEOM_POINT_SIZE se puede usar para especificar si los sombreadores SPIR-V dirigidos a Vulkan los entornos deben escribir tamaños de puntos para geometría y teselado sombreadores si no se especifica, se escribirán los tamaños en puntos.

Finalmente, para los interesados en poder conocer más al respecto, deben saber que el código del proyecto se distribuye con licencia bajo LGPLv2.1 y que pueden consultar los detalles de este nuevo lanzamiento en el siguiente enlace.

¿Como instalar vkd3d 1.7?

Para los interesados en poder instalar vkd3d deben saber que deben realizar la compilación del código fuente, por lo que primero debemos de obtenerlo, es importante mencionar que Vkd3d depende de SPIRV-Headers y Vulkan-Headers (>= 1.2.139).

Para realizar la compilación debemos abrir una terminal y en ella vamos a teclear el siguiente comando:

git clone https://gitlab.winehq.org/wine/vkd3d.git

Hecho esto procedemos a ingresar al directorio recién descargado con:

cd vkd3d

Y procedemos a realizar la compilación ejecutando los siguientes comandos:

./configure

make

make install

Si quieres conocer más al respecto sobre la compilación de vkd3d puedes consultar los detalles en este enlace.

Leave A Comment

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