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
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