El proyecto Wine ha lanzado Vkd3d 1.2 con implementación de Direct3D 12

Proyecto Vino publicado lanzamiento del paquete vkd3d 1.2 con una implementación de Direct3D 12 que funciona mediante llamadas de transmisió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. Código del proyecto distribuido por con licencia LGPLv2.1.

biblioteca libvkd3d apoyo La mayoría de las características de Direct3D 12, incluidas funciones gráficas e informáticas, 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*().

libvkd3d-shader 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).

Entre los más significativos innovaciones en Vkd3d 1.2 se resalta lo siguiente:

  • La biblioteca libvkd3d-shader está lista para usar en proyectos de terceros.
  • Soporte de sombreador de teselación.
  • Soporte para conversión, serialización y deserialización de firmas raíz (vkd3d_serialize_versioned_root_signature() y vkd3d_create_versioned_root_signature_deserializer()).
  • Soporte para salida de streaming.
  • Implementación de muchas funciones de Direct3D 12 que antes no estaban disponibles, incluida la compatibilidad con muestreo múltiple, reserva de recursos,
    renderizado indexado indirecto, renderizado en profundidad sin sombreadores de píxeles, acceso simultáneo a recursos desde diferentes colas de comandos, vistas nulas.

  • Se agregaron variables de entorno: VKD3D_CONFIG para configurar opciones para cambiar el comportamiento de libvkd3d y VKD3D_VULKAN_DEVICE para anular el dispositivo para la API de Vulkan.
  • Se agregó soporte para las instrucciones del sombreador bufinfo.
    evaluación_centroide,
    eval_sample_index,
    ld2ms,
    muestra_b,
    muestra_d,
    información_muestra,
    pos.muestra.

Fuente: opennet.ru

Añadir un comentario