NoticiasLinux.com.br Notícias do Mundo GNU/Linux
15 de setembro de 2026 · por Redação

VKD3D: o tradutor que faz os jogos DirectX 12 rodarem no Linux

VKD3D-Proton traduz o Direct3D 12 dos jogos de Windows para Vulkan em tempo real. Entenda o que é, como funciona no Steam/Proton e por que virou peça-chave do jogo no Linux.

Se você jogou algum lançamento pesado de Windows no Linux nos últimos anos — Cyberpunk 2077, Control, Elden Ring, Helldivers 2 — e tudo simplesmente funcionou, saiba que existe uma peça de software silenciosa fazendo um trabalho hercúleo nos bastidores. Ela se chama VKD3D, e é uma das engrenagens mais importantes (e menos conhecidas) da revolução que tornou o Linux uma plataforma de jogos de verdade. Sem ela, a maior parte dos títulos modernos simplesmente não abriria.

Neste guia a gente destrincha o que é o VKD3D, como ele conversa com o Proton e o Wine, por que existem "duas versões" do projeto, quais são os requisitos para tirar o máximo dele e para onde essa tecnologia está caminhando. Nada de conversa fiada: vamos direto ao que importa para quem joga — ou pretende jogar — no pinguim.

O problema que o VKD3D resolve

Todo jogo moderno precisa conversar com a placa de vídeo, e essa conversa acontece por uma "linguagem" chamada de API gráfica. No mundo Windows, a linguagem dominante é o Direct3D, parte do pacote DirectX da Microsoft. A versão mais recente e usada nos lançamentos de ponta é o Direct3D 12 — aquele que entrega ray tracing, texturas hiperdetalhadas e uso agressivo do hardware.

O detalhe é que o Direct3D é uma tecnologia proprietária da Microsoft, amarrada ao Windows. O Linux (e qualquer sistema Unix) não entende esse idioma nativamente. A linguagem gráfica aberta e universal do mundo Linux é o Vulkan, um padrão mantido pelo grupo Khronos e suportado por AMD, Intel e NVIDIA. Ou seja: o jogo fala Direct3D 12, mas a placa de vídeo no Linux só escuta Vulkan. Alguém precisa fazer a tradução.

É exatamente aí que entra o VKD3D. Pense nele como um tradutor simultâneo extremamente competente. Ele fica no meio da conversa, pega as instruções pesadíssimas que o jogo emite em Direct3D 12 e as converte, em tempo real, para comandos Vulkan que os drivers da sua GPU conseguem executar. Toda essa mágica acontece em uma fração de milissegundo, quadro após quadro, sem que você perceba. O resultado é que um jogo feito exclusivamente para Windows roda de forma fluida no Linux, sem precisar de nenhuma versão nativa.

VKD3D e vkd3d-proton: entenda a diferença

Aqui mora uma confusão clássica. Existem, na prática, dois projetos com o mesmo nome de batismo, e vale separá-los para não se perder.

De um lado há o VKD3D "upstream", a base oficial mantida junto ao Wine, no GitLab do WineHQ. É uma implementação purista, preocupada em seguir o padrão Direct3D 12 à risca, com foco amplo em compatibilidade — não necessariamente em espremer cada quadro por segundo.

Do outro lado, e é dele que a maioria dos jogadores realmente depende, está o vkd3d-proton. Trata-se de um fork — uma derivação — criado e mantido com o apoio da Valve, a dona do Steam. A descrição do próprio projeto é direta: ele "pretende implementar a API completa do Direct3D 12 sobre o Vulkan". E, ao contrário do upstream, a prioridade declarada do vkd3d-proton é desempenho e compatibilidade com jogos, mesmo que isso custe suporte a drivers e sistemas antigos.

Na prática, o vkd3d-proton é agressivo: adota rapidamente as extensões mais modernas do Vulkan e cobra do usuário que mantenha os drivers atualizados. É a filosofia oposta à do software conservador que roda em qualquer coisa. Aqui a lógica é: se existe um recurso novo capaz de deixar os jogos mais rápidos, ele entra — e quem tem hardware ou driver velho que se atualize. É esse apetite por modernidade que faz os games "voarem" no Steam e no Steam Deck.

Onde o VKD3D se encaixa: Wine, Proton e DXVK

Para entender o VKD3D é útil enxergar a "pilha" de software que faz o Windows rodar no Linux. Na base está o Wine, que traduz as chamadas de sistema do Windows. Sobre ele, a Valve construiu o Proton, o pacote que o Steam usa para rodar jogos de Windows com um clique — e que junta várias peças afinadas para jogos.

Duas dessas peças cuidam da parte gráfica, e é importante não confundi-las:

  • DXVK — traduz as versões mais antigas do Direct3D (8, 9, 10 e 11) para Vulkan. É o veterano da casa, responsável por rodar milhares de jogos mais antigos.
  • vkd3d-proton — traduz o Direct3D 12, o mais novo e exigente, para Vulkan. É o especialista nos lançamentos de ponta.

Os dois trabalham lado a lado e chegam a compartilhar código — o vkd3d-proton usa a mesma implementação de DXGI (a camada que gerencia telas e apresentação de quadros) do DXVK. Quando você aperta "jogar" em um título de Windows no Steam, o Proton detecta qual versão do Direct3D o jogo usa e aciona a peça certa. Se for um jogo Direct3D 12, é o vkd3d-proton que assume o volante. Tudo isso de forma invisível: você não precisa configurar nada.

Vale reforçar que o alcance do VKD3D vai além dos jogos. Programas de Windows que dependem de aceleração 3D via Direct3D — softwares de modelagem, simuladores e ferramentas criativas — também podem funcionar no Linux através do Wine graças a essa camada de tradução.

Do que o VKD3D precisa para funcionar

Como o vkd3d-proton corre atrás do que há de mais moderno, ele tem exigências claras. A principal é o Vulkan 1.3: sua placa e seu driver precisam suportar essa versão do padrão. Além disso, o projeto pede recursos específicos do Vulkan, como indexação de descritores em larga escala e algumas extensões que garantem robustez e velocidade na comunicação com a GPU.

Em termos de drivers, a situação hoje é confortável para a maioria:

  • AMD — com o driver aberto RADV (parte da Mesa), o suporte é excelente. O projeto pede, no mínimo, a Mesa 22.0. Na prática, quem usa AMD com uma distribuição relativamente atual tem a melhor experiência com o mínimo de dor de cabeça.
  • NVIDIA — o requisito mínimo é a série 535 do driver, mas o projeto recomenda manter-se atualizado (as versões beta do Vulkan costumam trazer as correções mais recentes). A NVIDIA foi historicamente o ponto fraco do Direct3D 12 no Linux, mas isso vem mudando rápido, como veremos a seguir.
  • Intel — as GPUs da Intel usam o driver ANV (também na Mesa) e vêm ganhando suporte progressivo às mesmas tecnologias.

Um aviso importante: o vkd3d-proton não é feito para Windows 7 ou 8.1. Ele reproduz o comportamento do Direct3D 12 moderno, que na prática espera um ambiente equivalente ao Windows 10 ou superior.

A grande novidade: a "descriptor heap" e o salto da NVIDIA

Se existe um assunto quente em torno do VKD3D neste momento, é uma extensão do Vulkan chamada descriptor heap (algo como "pilha de descritores"). Ela ataca justamente o calcanhar de Aquiles das placas NVIDIA no Linux: o desempenho abaixo do esperado em jogos Direct3D 12.

Sem entrar no jargão de engenheiro gráfico, a ideia da extensão é melhorar a forma como a memória lida com os "descritores" — as referências que os shaders usam para acessar texturas e outros recursos. Ao organizar isso de um jeito mais próximo de como o Direct3D 12 realmente funciona, a tradução fica mais barata e sobra mais poder bruto para o que interessa: os quadros na tela. É uma peça pensada para implementar os recursos do shader model 6.6 de forma eficiente.

O ponto interessante é que essa não é uma jogada isolada. A NVIDIA vem trabalhando nessa extensão, e desenvolvedores de AMD e Intel também — o recurso está sendo levado para os drivers RADV (AMD) e ANV (Intel) na Mesa, e não deve ficar restrito a uma marca. A própria camada de tradução precisa acompanhar: tanto o vkd3d-proton quanto o DXVK estão preparando suporte à descriptor heap, para que todo mundo colha o benefício.

Do lado da NVIDIA, o suporte chegou a partir do driver 595.58.03 para Linux. E os primeiros testes da comunidade — feitos com um "runner" customizado do Proton, o CachyOS Proton, ativando a extensão pela variável proton_vkd3d_heap=1 — mostraram ganhos concretos. Segundo esses testes, em jogos como Assetto Corsa Rally a melhora chegou a mais de 20% na taxa média de quadros e a mais de 30% nos "1% lows" (aqueles momentos de queda brusca que arruínam a fluidez). Em títulos como Cyberpunk 2077, Helldivers 2, The Finals e Outriders também houve melhora, ora no número de quadros, ora na estabilidade do frame time — que, no fim das contas, é o que faz o jogo parecer suave.

É bom temperar o entusiasmo com um pouco de sal: por enquanto essa implementação ainda é experimental e em estágio de rascunho. Ela não está ativada por padrão no Proton comum, os ganhos variam de jogo para jogo e de GPU para GPU, e pode haver problemas pelo caminho. O cenário ideal é o futuro próximo, quando a extensão estiver madura, integrada ao vkd3d-proton oficial e ligada automaticamente no Proton — aí ninguém precisará mexer em variável nenhuma para se beneficiar.

Ray tracing, cache de shaders e ajustes finos

O VKD3D não se limita a "abrir o jogo". Ele traduz recursos avançados do Direct3D 12, incluindo o ray tracing (DXR), a técnica que calcula reflexos, sombras e iluminação de forma fisicamente mais realista. O suporte a DXR pode ser ativado por configuração, e o projeto já experimenta versões mais novas do padrão.

Outro herói discreto é o cache de shaders. Traduzir os shaders (os pequenos programas que rodam na GPU) de Direct3D para Vulkan tem um custo, e fazer isso durante a partida causa aquele engasgo incômodo na primeira vez que um efeito aparece. Para atacar isso, o vkd3d-proton guarda as traduções já feitas em um arquivo de cache (o vkd3d-proton.cache). Da segunda vez em diante, o trabalho já está pronto — menos travadas, carregamento mais rápido.

Para quem gosta de meter a mão na massa, o projeto oferece um arsenal de variáveis de ambiente para ajustar e diagnosticar o comportamento. A mais versátil é a VKD3D_CONFIG, que liga ou desliga recursos específicos (como o próprio DXR). Há ainda controles para escolher qual GPU usar, limitar a taxa de quadros, redirecionar logs, forçar o modo de apresentação da tela e até capturar quadros para depuração. Para desenvolvedores, existem recursos de "breadcrumbs" que ajudam a investigar travamentos da GPU. O usuário comum não precisa de nada disso — mas é bom saber que a porta dos fundos está lá para quem quiser afinar.

Na prática: como usar (spoiler: você quase não faz nada)

A melhor notícia é que, para a imensa maioria das pessoas, o VKD3D já está funcionando sem que você precise instalá-lo. Ele vem embutido no Proton. Você abre o Steam, ativa o Steam Play para todos os títulos nas configurações, aperta "jogar" em um jogo de Windows e pronto — se for um jogo Direct3D 12, o vkd3d-proton entra em ação sozinho. No Steam Deck, isso já vem ligado de fábrica.

Quem quer explorar versões mais novas ou experimentais tem caminhos fáceis. Ferramentas como o ProtonPlus permitem baixar "runners" alternativos do Proton — como o GE-Proton ou o CachyOS Proton — com poucos cliques, cada um trazendo ajustes e patches diferentes. É assim que entusiastas testam recursos de ponta, como a tal descriptor heap, antes de eles chegarem ao Proton oficial.

Compilar o vkd3d-proton do zero é possível — ele é distribuído sob a licença livre LGPL-2.1, com o código aberto no GitHub —, mas isso é território de desenvolvedores e curiosos avançados. Para jogar, o Proton pronto resolve. Se você está começando agora e quer um passo a passo de como colocar seus jogos para rodar, vale conferir nosso guia dedicado a como jogar no Linux.

Que jogos realmente funcionam?

Essa é a pergunta que separa a teoria da vida real — e a resposta anima. As camadas de tradução como o VKD3D deixaram de ser experimentos instáveis para se tornarem uma base sólida e madura. Superproduções que outrora seriam impensáveis rodam hoje de forma fluida no Linux graças a ele: Control, Death Stranding, Devil May Cry 5, Horizon Zero Dawn, Cyberpunk 2077 e uma lista que só cresce.

Isso não significa que tudo seja perfeito. Nem todo recurso do Direct3D 12 está 100% coberto, e jogos particularmente complexos ainda podem apresentar falhas gráficas ou instabilidade pontual. Mas a comunidade em torno do projeto é ativíssima, as atualizações chegam com frequência pelo próprio Proton, e a cada nova versão a lista de jogos que "simplesmente funcionam" fica mais longa. É um alvo em movimento — e o movimento é sempre para frente.

O futuro: e se a plataforma deixar de importar?

O que o VKD3D representa vai além de rodar este ou aquele jogo. Ele é a prova de conceito de uma ideia poderosa: quando a camada de tradução atinge um nível de precisão e desempenho alto o bastante, a plataforma para a qual o jogo foi originalmente feito começa a perder importância. Um título pensado só para Windows roda no Linux com desempenho próximo do nativo, e o jogador nem percebe a fronteira.

Some a isso o ritmo de melhoria. A NVIDIA, historicamente relapsa com o Linux, agora investe em corrigir o desempenho do Direct3D 12, contrata engenheiros para trabalhar em drivers e Vulkan, e entrega novidades reais — a descriptor heap é só um exemplo. AMD e Intel caminham na mesma direção, com o código aberto na Mesa acelerando tudo. O ecossistema evolueu de "gambiarra heroica" para "infraestrutura séria" em poucos anos.

O VKD3D é, no fim das contas, uma dessas tecnologias que fazem um trabalho gigantesco justamente para você não precisar pensar nele. Ele é a ponte silenciosa entre dois mundos — o do Windows e o do Linux — e, quanto melhor ele fica, mais essa ponte some da vista. Da próxima vez que um lançamento pesado abrir de primeira no seu pinguim, você já sabe a quem agradecer.

📬 Receba no seu e-mail As principais notícias de Linux e software livre, sem custo.
« todos os artigos