vkd3d 1.11 lançado com novas funções e melhorias

E foi lançado o vkd3d 1.11 com novas funções e melhorias. Confira as novidades dessa atualização e veja como instalar no Linux.

Vkd3d é um pacote que fornece uma implementação do Direct3D 12 usando chamadas para a API gráfica Vulkan e inclui várias bibliotecas principais. O código do projeto é distribuído sob licença LGPL 2.1.

vkd3d é a camada de tradução do Direct3D 12 para Vulkan do Wine. 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.

Também é fornecida a biblioteca libvkd3d-shader 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.

Há poucos dias, o projeto Wine anunciou o lançamento da nova versão do pacote vkd3d 1.11,

Novidades do vkd3d 1.11

vkd3d 1.11 lançado com novas funções e melhorias
vkd3d 1.11 lançado com novas funções e melhorias

Nesta versão introduzidas melhorias no uso de extensões vulkan, além de melhorias de suporte, novas funções e muito mais.

Vkd3d 1.11 introduz suporte inicial para compilar bytecode Direct3D herdado em uma representação intermediária de shaders SPIR-V, bem como suporte inicial com o compilador HLSL para compilar perfis de efeitos.

Outra melhoria apresentada nesta nova versão é o suporte experimental à compilação DXIL (DirectX Intermediate Language) 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 de pré-processador ‘-DVKD3D_SHADER_UNSUPPORTED_DXIL’ e é considerado experimental.

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

Foi implementado suporte para cores de borda padrão, como preto e branco, e o método GetResourceAllocationInfo1() da interface ID3D12Device4 foi implementado, 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.

Novas opções de construção foram implementadas: VKD3D_SHADER_COMPILE_OPTION_FEATURE pode ser usado para especificar os recursos disponíveis no ambiente de destino, enquanto VKD3D_SHADER_COMPILE_OPTION_FEATURE_INT64 indica suporte para tipos inteiros de 64 bits no ambiente de destino SPIR e VKD3D_SHADER_COMPILE_OPTION_FEATURE_FLOAT64 indicam suporte para tipos de ponto flutuante de 64 bits no ambiente de destino SPIR-V.

Das outras mudanças que se destacam nesta 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_FEA TURE_D3D 12_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 saber mais sobre essa versão do vkd3d, acesse a nota de lançamento.

Como instalar ou atualizar o vkd3d

Para os interessados ​​​​em poder instalar o vkd3d, devem saber que devem compilar o código fonte, por isso devemos primeiro obtê-lo.É importante mencionar que o 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

Sobre o Edivaldo Brito

Edivaldo Brito é analista de sistemas, gestor de TI, blogueiro e também um grande fã de sistemas operacionais, banco de dados, software livre, redes, programação, dispositivos móveis e tudo mais que envolve tecnologia.