El proyecto Wine ha publicado el lanzamiento del paquete vkd3d 1.4 con una implementación de Direct3D 12 que funciona mediante llamadas de difusión a la API de gráficos Vulkan. El paquete incluye bibliotecas libvkd3d con implementaciones de Direct3D 12, libvkd3d-shader con un traductor de los modelos de sombreado 4 y 5 y libvkd3d-utils con funciones para simplificar la migración de aplicaciones Direct3D 12, así como un conjunto de ejemplos de demostración, incluido un puerto. de glxgears a Direct3D 12. El código del proyecto se distribuye con licencia LGPLv2.1.
La biblioteca libvkd3d admite la mayoría de las funciones de Direct3D 12, incluidas funciones informáticas y gráficas, colas y listas de comandos, identificadores y identificadores de montón, firmas raíz, acceso desordenado, muestreadores, firmas de comandos, constantes raíz, renderizado indirecto, métodos Clear *( ) y Copiar*().
En libvkd3d-shader, se implementa la traducción del código de bytes de los modelos de sombreador 4 y 5 a una representación SPIR-V intermedia. Admite sombreadores de vértices, píxeles, teselación, computación y geometría simple, serialización y deserialización de firmas de raíz. Las instrucciones de sombreado incluyen operaciones aritméticas, atómicas y de bits, operadores de comparación y control de flujo de datos, instrucciones de muestreo, recopilación y carga, operaciones de acceso desordenado (UAV, vista de acceso desordenado).
Versículos nuevos:
- Se han realizado numerosas mejoras en el compilador de sombreadores HLSL (lenguaje de sombreado de alto nivel) proporcionado desde DirectX 9.0.
- Se ha propuesto una nueva implementación del Descriptor Heap, utilizando la extensión Vulkan VK_EXT_descriptor_indexing.
- Se agregó una nueva implementación de valla basada en la extensión de Vulkan K_KHR_timeline_semaphore.
Fuente: opennet.ru