Alguns dias atrás foi anunciado o lançamento da primeira versão estável do projeto “D8VK 1.0”, que oferece um Implementação da API de gráficos Direct3D 8 que funciona através da tradução de chamadas API Vulkan e permite que você use Wine ou Proton para executar aplicativos 3D e jogos desenvolvidos para Windows no Linux que estão vinculados à API Direct3D 8.
Como muitos de vocês sabem, no Linux temos o VKD3D-Proton para a tradução do Direct3D 12 no Vulkan, além disso também temos o Steam Play que usa o DXVK para implementar as APIs do Direct3D 9/10/11 no Vulkan, mas para o antigo implementação do Direct3D 8, não havia nada de concreto.
É por isso que nasceu o D8VK, que é a implementação da antiga API Microsoft Direct3D 8 sobre Vulkan para melhorar a experiência de jogos mais antigos.
D8VK 1.0 é marcado como o primeiro lançamento do projeto, adequado para uso e testado em centenas de jogos. Comparado aos projetos WineD3D e d3d8to9, que usam a tradução Direct3D 8 para OpenGL e Direct3D 9, o projeto D8VK demonstra melhor desempenho, estabilidade e compatibilidade com jogos.
Por exemplo, quando testado no pacote 3DMark 2001 SE, o projeto D8VK obteve 144660 pontos, a combinação de d3d8to9 e dxvk – 118033 e WineD3D – 97134.
O lançamento de D8VK 1.0 apresenta d3d8.dll(d3d9 está vinculado estaticamente), bem como um novo processador de lote personalizado para certos jogos com comportamento indefinido.
Além disso, destaca-se também que suporta a substituição da declaração do sombreador de vértice para jogos com comportamento indefinido e que os buffers de vértice agora podem ser armazenados no pool autogerenciado para melhorar o desempenho e evitar problemas de ordem de gravação.
Também é observado que o suporte de compilação é implementado no MSVC, bem como o suporte para consultas GetInfo e os tipos de bloco de status agora são suportados.
Dos demais mudanças que se destacam:
- Tamanhos de descrição de superfície corretos com base no formato
- Permitir preservar a instalação atual do Proton
- Inúmeras configurações específicas do jogo e recursos e ajustes menores
- Corrigido um bug em que CreateTexture tentava envolver uma textura nula
- Backbuffers corrigidos não sendo armazenados em cache ou referenciados ao dispositivo proprietário
- Texturas corrigidas, fluxos e índices não sendo limpos na reinicialização
- Localização fixa de Direct3DCreate8 em d3d8.def
- Contagem de referência fixa para destinos de renderização, modelos de profundidade e texturas.
- Corrigidos sombreadores de pixel nulos não sendo lembrados
- Alvos de renderização corrigidos e modelos de profundidade não sendo armazenados em cache
- Corrigido o erro se o cliente tentasse habilitar o SWVP em um dispositivo de hardware
- Dispositivos corrigidos sem jailbreak
- Segfault corrigido na liberação do dispositivo com texturas vinculadas
Por fim, se você tiver interesse em saber mais sobre o assunto, pode consultar os detalhes no link a seguir.
Você deve saber que o código do projeto é escrito em linguagem C++ e é distribuído sob a licença Zlib. A base de código do projeto DXVK com a implementação do Direct3D 9, 10 e 11 em cima do Vulkan foi usada como base para o desenvolvimento.
Como instalar o D8VK no Linux?
Para quem tem interesse em poder instalar o D8VK, deve saber que sua implementação é bastante simples e não exige muito. Basta abrir um terminal para poder obter a nova versão. Nele vamos digitar o seguinte comando:
git clone https://github.com/AlpyneDreams/d8vk.git
Ou se preferir baixar do seu navegador (basta descompactar o arquivo e se posicionar em um terminal dentro da pasta) pode fazer clicando em neste link
Feito isso, agora vamos entrar no diretório com:
cd d8vk
E passamos a realizar a implementação do d8vk conforme o caso. Para implementá-lo com o Wine, devemos digitar o seguinte:
./setup_d3d8.sh install --no-proton
Ou no caso de querer implementar com Proton, o comando que deve ser digitado é o seguinte:
./setup_d3d8.sh install
Se pretender saber mais sobre a sua utilização ou instalação em casos particulares, pode consultar o seguinte link.