El proyecto Wine ha publicado Vkd3d 1.14 con implementación de Direct3D 12

El proyecto Wine ha publicado la versión del paquete vkd3d 1.14 con la implementación de Direct3D 12, funcionando a través de la traducción de llamadas en la API gráfica Vulkan. El paquete incluye bibliotecas libvkd3d con la implementación de Direct3D 12, libvkd3d-shader con el traductor de shaders de modelo 4 y 5, y libvkd3d-utils con funciones para simplificar el portado 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 características de Direct3D 12, incluyendo herramientas para gráficos y cálculos, colas y listas de comandos, descriptores y descriptores de montón, firmas raíz, acceso no ordenado, Samplers, firmas de comandos, constantes raíz, renderizado indirecto, métodos Clear*() y Copy*(). En libvkd3d-shader se implementa la traducción del bytecode de modelos de shaders a la representación intermedia SPIR-V. Se soportan shaders de vértices, píxeles, teselación, cómputo y shaders geométricos simples, así como la serialización y deserialización de la firma raíz. Se han implementado operaciones aritméticas, atómicas y bit a bit, operadores de comparación y control de flujo, instrucciones sample, gather y load, y operaciones de acceso no ordenado (UAV, Unordered Access View).

En la nueva versión:

  • Se ha añadido soporte inicial para el lenguaje de shaders MSL (Metal Shading Language), utilizado por Apple en su API gráfica Metal.
  • Se ha implementado soporte para un desensamblador de efectos binarios.
  • En la biblioteca libvkd3, en la interfaz ID3D12GraphicsCommandList1 se ha implementado el método OMSetDepthBounds() para cambiar dinámicamente el rango permitido de valores de profundidad en el Z-buffer.
  • Se ha añadido una variable de entorno VKD3D_CAPS_OVERRIDE para anular la información sobre capacidades disponibles que se proporciona a las aplicaciones, como los niveles de funcionalidad máxima soportados y la vinculación de recursos.
  • Se ha añadido soporte inicial para shaders de teselación en la implementación del lenguaje de shaders HLSL. Se han implementado funciones integradas dst(), f32tof16(), mad(), modf() y sincos(). Para los perfiles 1, 2 y 3 de modelos de shaders se ha añadido soporte para la operación 'discard'. Se ha añadido soporte para la semántica de entradas SV_SampleIndex para shaders de fragmentos y SV_GroupIndex para shaders de cómputo.
  • Se ha implementado una gran cantidad de nuevas instrucciones para el lenguaje de shaders GLSL.

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