E foi lançado o vkd3d 1.7 lançado com várias melhorias. Conheça o software, confira as novidades e veja como instalar no Linux.
vkd3d, é a camada de tradução Direct3D 12 para Vulkan do Wine. O pacote inclui as bibliotecas libvkd3d com implementações de Direct3D 12, libvkd3d-shader com shader model translate 4 e 5 e libvkd3d-utils com funções para simplificar a migração de aplicativos Direct3D 12, bem como um conjunto de demos, incluindo uma porta de glxgears para Direct3D 12.
A biblioteca libvkd3d suporta a maioria dos recursos do Direct3D 12, incluindo gráficos e computação, filas e listas de comandos, descritores e descritores de heap, assinaturas raiz, acesso não ordenado, amostras, assinaturas de comando, constantes raiz, renderização indireta, métodos Clear*() e Copy*( ).
Além disso, libvkd3d-shader implementa a tradução dos bytecodes 4 e 5 dos modelos de shader em uma representação SPIR-V intermediária. Suporta vértice, pixel, mosaico, computação e sombreadores de geometria simples, serialização e desserialização de assinatura raiz.
Operações aritméticas, atômicas e de bit, operadores de comparação e controle de fluxo de dados, instruções de amostra, coleta e carga, operações de acesso fora de ordem (UAV, exibição de acesso fora de ordem) são implementadas a partir de instruções de sombreamento.
Agora, o projeto Wine anunciou há alguns dias o lançamento da nova versão do pacote vkd3d 1.7 com uma implementação do Direct3D 12 que funciona por meio da tradução de chamadas da API gráfica Vulkan.
Novidades do vkd3d 1.7
Nesta nova versão do vkd3d 1.7, destaca-se que ele continuou trabalhando para melhorar o compilador de shader HLSL (High-Level Shader Language), além de adicionar a capacidade de chamar funções definidas pelo usuário e usar matrizes como parâmetros de parâmetros definidos pelo usuário. funções.
Outra mudança notável na nova versão é o suporte significativamente aprimorado para perfis de modelo de sombreador Direct3D 1/2/3, além de suporte inicial adicionado para tipos de ponto flutuante de baixa precisão, como min16float.
Também é importante notar que o suporte foi adicionado para os parâmetros SV_DispatchThreadID, SV_GroupID e SV_GroupThreadID e que uma API pública foi adicionada para analisar (vkd3d_shader_parse_dxbc) e serializar (vkd3d_shader_serialize_dxbc) dados binários DXBC.
Das outras mudanças que se destacam da nova versão:
- Suporte para o parâmetro opcional “offset” do
método Load() do objeto de textura. - Suporte para a função intrínseca all().
- Suporte para a função intrínseca distance().
- Suporte para as funções intrínsecas exp() e exp2().
- Suporte para a função intrínseca frac().
- Suporte para a função intrínseca lit().
- Suporte para a função intrínseca reflect().
- Suporte para as funções intrínsecas sin() e cos().
- Suporte para a função intrínseca smoothstep().
- Suporte para funções intrínsecas sqrt() e rqrt().
- Suporte para a função intrínseca step().
- Suporte para a função intrínseca transpose().
- Suporte para variantes que não diferenciam maiúsculas de minúsculas dos
tipos de dados float e dword - Suporte parcial para tipos de dados de precisão mínima, como “min16float”. Estes são atualmente interpretados como suas contrapartes regulares.
Suporte de propagação constante aprimorado, em particular para propagação constante via swizzles. - A opção de compilação VKD3D_SHADER_COMPILE_OPTION_WRITE_TESS_GEOM_POINT_SIZE pode ser usada para especificar se os sombreadores SPIR-V destinados a ambientes Vulkan devem gravar tamanhos de ponto para sombreadores de geometria e tesselação, se não for especificado, os tamanhos de ponto serão gravados.
Para saber mais sobre essa versão do vkd3d, acesse a nota de lançamento.
Como instalar ou atualizar o vkd3d
Para instalar a versão mais recente do vkd3d nas principais distribuições Linux, é preciso compilar o código-fonte, portanto devemos obtê-lo primeiro, é importante mencionar que o Vkd3d depende de SPIRV-Headers e Vulkan-Headers (>= 1.2.139 ).
Para realizar a compilação, devemos abrir um terminal e nele digitaremos o seguinte comando:
git clone https://gitlab.winehq.org/wine/vkd3d.git
Feito isso, passamos a entrar no diretório baixado recentemente com:
cd vkd3d
E procedemos à compilação executando os seguintes comandos:
./configure
make
make install