O proxecto Wine lanzou Vkd3d 1.2 coa implementación de Direct3D 12

Proxecto do viño publicado liberación do paquete vkd3d 1.2 cunha implementación de Direct3D 12 que funciona mediante chamadas de difusión á API de gráficos Vulkan. O paquete inclúe bibliotecas libvkd3d con implementacións de Direct3D 12, libvkd3d-shader cun tradutor dos modelos de sombreadores 4 e 5 e libvkd3d-utils con funcións para simplificar a portabilidade de aplicacións Direct3D 12, así como un conxunto de exemplos de demostración, incluíndo un porto de glxgears a Direct3D 12. Código do proxecto distribuído por licenciado baixo LGPLv2.1.

biblioteca libvkd3d soportes A maioría das funcións de Direct3D 12, incluíndo gráficos e instalacións informáticas, filas e listas de comandos, identificadores e identificadores do montón, sinaturas raíz, acceso fóra de orde, mostradores, sinaturas de comandos, constantes raíz, renderización indirecta, métodos Clear*() e Copiar*().

En libvkd3d-shader, implícase a tradución do bytecode dos modelos de shader 4 e 5 nunha representación SPIR-V intermedia. Admítense os sombreadores de vértices, píxeles, tessellation, computación e xeometría simple, serialización e deserialización de sinatura raíz. As instrucións de sombreado inclúen operacións aritméticas, atómicas e de bits, operadores de comparación e control de fluxo de datos, instrucións de mostra, recollida e carga, operacións de acceso sen ordenar (UAV, Vista de acceso sen ordenar).

Entre os máis significativos innovacións en Vkd3d 1.2 destacan os seguintes:

  • A biblioteca libvkd3d-shader está lista para ser usada en proxectos de terceiros.
  • Soporte para sombreadores de teselación.
  • Soporte para conversión, serialización e deserialización de sinaturas raíz (vkd3d_serialize_versioned_root_signature() e vkd3d_create_versioned_root_signature_deserializer()).
  • Soporte para a saída de streaming.
  • Implementación de moitas funcións de Direct3D 12 non dispoñibles anteriormente, incluíndo soporte para multimostraxe, reserva de recursos,
    renderizado indirecto indexado, renderizado en profundidade sen sombreadores de píxeles, acceso simultáneo a recursos desde diferentes filas de comandos, vistas nulas.

  • Variables de ambiente engadidas: VKD3D_CONFIG para configurar opcións para cambiar o comportamento de libvkd3d e VKD3D_VULKAN_DEVICE para anular o dispositivo para a API de Vulkan.
  • Engadido soporte para instrucións do sombreador bufinfo,
    eval_centroid,
    índice_de_mostra_eval,
    ld2ms,
    mostra_b,
    mostra_d,
    información_mostra,
    mostrapos.

Fonte: opennet.ru

Engadir un comentario