Projeto Wine lançado Vkd3d 1.2 com implementação Direct3D 12

Projeto Vinho опубликовал liberação do pacote vkd3d 1.2 com uma implementação Direct3D 12 que funciona por meio de chamadas de transmissão para a API gráfica Vulkan. O pacote inclui bibliotecas libvkd3d com implementações de Direct3D 12, libvkd3d-shader com um tradutor de modelos de shader 4 e 5 e libvkd3d-utils com funções para simplificar a portabilidade de aplicativos Direct3D 12, bem como um conjunto de exemplos de demonstração, incluindo uma porta de glxgears para Direct3D 12. Código do projeto distribuído por licenciado sob LGPLv2.1.

biblioteca libvkd3d suporta o A maioria dos recursos do Direct3D 12, incluindo recursos gráficos e de computação, filas e listas de comandos, identificadores e identificadores de heap, assinaturas de raiz, acesso fora de ordem, amostradores, assinaturas de comando, constantes de raiz, renderização indireta, métodos Clear*() e Copiar*().

No libvkd3d-shader, a tradução do bytecode dos modelos de shader 4 e 5 em uma representação SPIR-V intermediária é implementada. Sombreadores de vértice, pixel, tesselação, computação e geometria simples, serialização e desserialização de assinatura raiz são suportados. As instruções do shader incluem operações aritméticas, atômicas e de bits, operadores de comparação e controle de fluxo de dados, instruções de amostra, coleta e carregamento, operações de acesso não ordenado (UAV, Unordered Access View).

Entre os mais significativos inovações no Vkd3d 1.2 o seguinte é destacado:

  • A biblioteca libvkd3d-shader está pronta para uso em projetos de terceiros.
  • Suporte para shader de mosaico.
  • Suporte para conversão, serialização e desserialização de assinaturas raiz (vkd3d_serialize_versioned_root_signature() e vkd3d_create_versioned_root_signature_deserializer()).
  • Suporte para saída de streaming.
  • Implementação de muitos recursos do Direct3D 12 anteriormente indisponíveis, incluindo suporte para multisampling, reserva de recursos,
    renderização indexada indireta, renderização de profundidade sem pixel shaders, acesso simultâneo a recursos de diferentes filas de comando, visualizações nulas.

  • Adicionadas variáveis ​​de ambiente: VKD3D_CONFIG para definir opções para alterar o comportamento do libvkd3d e VKD3D_VULKAN_DEVICE para substituir o dispositivo para a API Vulkan.
  • Adicionado suporte para instruções do shader bufinfo,
    eval_centroid,
    eval_sample_index,
    ld2ms,
    amostra_b,
    amostra_d,
    amostra_info,
    amostrapos.

Fonte: opennet.ru

Adicionar um comentário