El proyecto Wine ha publicado vkd3d 1.7 con la implementación de Direct3D 12.

El proyecto Wine ha publicado la versión del paquete vkd3d 1.7 con la implementación de Direct3D 12, que funciona mediante 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 sombreador 4 y 5, y libvkd3d-utils con funciones para facilitar la portabilidad 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:

  • Continúa el trabajo en la mejora del compilador de sombreados en HLSL (High-Level Shader Language):
    • Se ha añadido la capacidad de invocar funciones personalizadas y utilizar matrices como parámetros de funciones personalizadas.
    • Se ha añadido soporte para los parámetros SV_DispatchThreadID, SV_GroupID y SV_GroupThreadID.
    • Se han añadido funciones integradas all(), distance(), exp(), exp2(), frac(), lit(), reflect(), sin(), cos(), smoothstep(), sqrt(), rsqrt(), step(), transpose().
    • Se ha añadido soporte inicial para tipos de baja precisión de punto flotante, como 'min16float'.
  • Se ha mejorado significativamente el soporte para los perfiles de modelo de sombreador Direct3D 1/2/3.
  • Se ha añadido una API pública para el análisis (vkd3d_shader_parse_dxbc) y la serialización (vkd3d_shader_serialize_dxbc) de datos binarios DXBC.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster