vkd3d 1.11 chega com suporte inicial para compilação de bytecode Direct3D, DXIL, melhorias e muito mais

vkd3d

vkd3d, é a camada de tradução Direct3D 12 para Vulkan do Wine

O projecto Wine anunciou há poucos dias o lançamento da nova versão do pacote vkd3d 1.11, uma versão na qual foram introduzidas melhorias no uso de extensões vulkan, bem como melhorias de suporte, novas funções e muito mais.

Para quem não conhece o Vkd3d, saiba que este é um pacote que oferece uma implementação Direct3D 12 usando chamadas para a API gráfica Vulkan e inclui várias bibliotecas importantes. A biblioteca libvkd3d contém implementações do Direct3D 12, abrangendo uma ampla gama de funções como computação e gráficos, filas e listas de comandos, identificadores, entre outros.

A biblioteca libvkd3d-shader também é fornecida que fornece um tradutor dos modelos de shader 4 e 5 para uma representação SPIR-V intermediária. Esta biblioteca oferece suporte a sombreadores de vértice, pixel, tesselação, computação e geometria simples, bem como serialização e desserialização de assinatura raiz.

O que há de novo no vkd3d 1.11?

Vkd3d 1.11 apresenta um suporte inicial para compilar bytecode legado do Direct3D em uma representação intermediária de shaders SPIR-V, bem como o ssuporte inicial com o compilador HLSL ppara compilar perfis de efeitos.

Outra melhoria que se apresenta nesta nova versão é o suporte experimental para compilação DXIL (linguagem intermediária DirectX) na representação SPIR-V, proporcionando novas opções para o desenvolvimento de aplicações Direct3D. Este recurso requer a compilação do vkd3d com a opção 'pré-processador'-DVKD3D_SHADER_UNSUPPORTED_DXIL' e é considerado experimental.

Também o uso de grupos e conjuntos de descritores foi otimizado quando extensões estão disponíveis VK_EXT_mutable_descriptor_type e VK_EXT_shader_viewport_index_layer, que é fornecido para melhorar a eficiência do trabalho com o conjunto de descritores e acelerar a renderização de matrizes de mosaico e sombreador de vértice.

O c foi implementadoSuporte para cores de borda padrão, como preto e branco e o método foi implementado GetResourceAllocationInfo1() da interface ID3D12Device4, bem como suporte para as interfaces ID3D12Device7 e ID3D12Resource2.

Várias novas consultas de recursos são suportadas, incluindo D3D12_FEATURE_D3D12_OPTIONS6 a D3D12_FEATURE_D3D12_OPTIONS13.

Foram implementados novas opções de construção: VKD3D_SHADER_COMPILE_OPTION_FEATURE pode ser usado para
especifique os recursos disponíveis no ambiente de destino, enquanto VKD3D_SHADER_COMPILE_OPTION_FEATURE_INT64 indica compatibilidade com
os tipos inteiros de 64 bits no ambiente de destino SPIR e  VKD3D_SHADER_COMPILE_OPTION_FEATURE_FLOAT64 indica compatibilidade com
Tipos de ponto flutuante de 64 bits no ambiente de destino SPIR-V.

Do outras mudanças que se destacam desta nova versão:

  • As atualizações de descritores agora ocorrem de forma assíncrona em um thread de trabalho interno, melhorando o desempenho em aplicativos que atualizam muitos descritores por quadro.
  • Novos recursos foram adicionados para o tipo de destino SPIR-V, incluindo suporte para visualizações de acesso fora de ordem globalmente consistentes, barreiras de visualização de acesso fora de ordem de grupos de threads e muito mais.
  • A interface ID3D12Device7 é suportada.
  • A versão mínima necessária do Vulkan-Headers para esta versão é a versão
    1.3.228.
  • A interface ID3D12Resource2 é suportada.
  • Várias novas consultas de recursos são suportadas:
    – D3D12_FEATURE_D3D12_OPTIONS6
    – D3D12_FEATURE_D3D12_OPTIONS7
    – D3D12_FEATURE_D3D12_OPTIONS8
    – D3D12_FEATURE_D3D12_OPTIONS9
    – D3D12_FEATURE_D3D12_OPTIONS10
    – D3D12_FEATURE_D3D12_OPTIONS11
    – D3D12_FEATURE_D3D12_OPTIONS12
    – D3D12_FEATURE_D3D12_OPTIONS13
  • As funções intrínsecas acos(), asin(), atan() e atan2() já são suportadas.
  • Mapeamento explícito de registros usando a palavra-chave 'register ()'
  • Convertendo de tipos inteiros para ponto flutuante nos perfis de modelo de shader 1-3.

Para quem tem interesse em saber mais sobre o assunto, você deve saber que o código do projeto é distribuído sob LGPL 2.1 e pode consultar os detalhes desta nova versão no link a seguir.

Como instalar o vkd3d 1.11?

Para os interessado em poder instalar o vkd3d Eles devem saber que devem compilar o código-fonte, portanto devemos obtê-lo primeiro, é importante mencionar que Vkd3d depende de SPIRV-Headers e Vulkan-Headers (>= 1.3.228).

A compilação é bastante simples e para isso devemos abrir um terminal no qual vamos digitar o seguinte comando:

git clone https://gitlab.winehq.org/wine/vkd3d.git

Prosseguimos para entrar na pasta onde foi baixado com:

cd vkd3d

E procedemos à compilação executando os seguintes comandos:

./configure
make
make install

Si você quer saber mais sobre a compilação de vkd3d você pode verificar os detalhes em este link.


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: AB Internet Networks 2008 SL
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.