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

Após um ano e meio de desenvolvimento, o projeto Wine publicou o lançamento do pacote vkd3d 1.3 com 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 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. 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 as inovações mais significativas do Vkd3d 1.3 estão:

  • Adicionado suporte inicial para compilação e pré-processamento de shaders em HLSL (High-Level Shader Language), fornecido a partir do DirectX 9.0.
  • Adicionado suporte para matrizes de descritores definidos no modelo de shader 5.1.
  • Fornece suporte para operações de ponto flutuante de precisão dupla em shaders, endereçamento indireto para shaders de mosaico, exportação de estênceis de shaders, um modificador de shader "preciso" e barreiras globais para recursos de memória.
  • A capacidade de desmontar sombreadores Direct3D de bytecode em representação de montagem foi implementada.
  • Adicionado suporte para análise do antigo formato de bytecode Direct3D usado nos modelos de sombreamento Direct3D 1, 2 e 3.
  • libvkd3d adiciona recursos do Direct3D 12, como assinaturas raiz, contadores de exibição fora de ordem, operadores de mesclagem lógica para saída e modo de endereçamento de textura mirror_once. Adicionada estrutura vkd3d_host_time_domain_info.

Fonte: opennet.ru

Adicionar um comentário