Projeto Wine publicado Vkd3d 1.7 com implementação Direct3D 12

O projeto Wine publicou o lançamento do pacote vkd3d 1.7 com uma implementação do 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 do glxgears para Direct3D 12. O código do projeto é distribuído licenciado sob LGPLv2.1.

A biblioteca libvkd3d oferece suporte à 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. Suporta sombreadores de vértice, pixel, tesselação, computação e geometria simples, serialização e desserialização de assinatura raiz. 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).

Na nova versão:

  • O trabalho continuou para melhorar o compilador de shader em HLSL (High-Level Shader Language):
    • Adicionada a capacidade de chamar funções personalizadas e usar matrizes como parâmetros para funções personalizadas.
    • Adicionado suporte para parâmetros SV_DispatchThreadID, SV_GroupID e SV_GroupThreadID.
    • Adicionadas funções integradas all(), distance(), exp(), exp2(), frac(), lit(), reflect(), sin(), cos(), smoothstep(), sqrt(), rsqrt () , passo(), transposição().
    • Adicionado suporte inicial para tipos de ponto flutuante de baixa precisão, como "min16float".
  • Suporte significativamente aprimorado para perfis de modelo de sombreador Direct3D 1/2/3.
  • Adicionada API pública para análise (vkd3d_shader_parse_dxbc) e serialização (vkd3d_shader_serialize_dxbc) de dados binários DXBC.

Fonte: opennet.ru

Adicionar um comentário