- A Valve e a Collabora estão trabalhando na adaptação do driver de código aberto RADV para Windows, oferecendo uma alternativa aos drivers proprietários.
- O projeto baseia-se na engenharia reversa da interface WDDM2 para comunicação com o driver de modo kernel da AMD.
- Marcos importantes foram alcançados, como a execução do Counter-Strike 2, embora a falta de documentação oficial da AMD seja um obstáculo.
- Esta iniciativa visa melhorar a estabilidade, a depuração e o desempenho das GPUs AMD no Windows.
Você provavelmente já ouviu falar que o Linux é um paraíso para os amantes de software livre, e no mundo das placas gráficas AMD, o driver RADV reina absoluto. Este driver Vulkan, integrado ao Mesa, tornou-se o padrão para jogadores no Steam Deck ou em qualquer distribuição Linux, superando até mesmo as opções oficiais da empresa. Mas e se pudéssemos ter o mesmo poder e transparência no Windows? Bem, existe um grupo de pessoas altamente motivadas tentando fazer exatamente isso.
A ideia não é descartar os drivers que já temos, mas oferecer uma alternativa. A Valve, que continua a promover o código aberto, financiou os especialistas da Collabora para tentar portar o RADV para o sistema da Microsoft. Embora possa parecer uma missão impossível, eles já conseguiram fazer jogos como Counter-Strike 2 funcionarem , demonstrando que o caminho, embora desafiador, é totalmente viável com a paciência necessária.
Em que consiste tecnicamente essa porta?

Para entender o problema, é importante saber que um driver é dividido em duas partes: modo de usuário (UMD), onde reside o RADV, e modo kernel (KMD), que se comunica diretamente com o hardware. No Windows, a Microsoft usa uma interface chamada WDDM2. A principal diferença é que, desde o Windows 10, essa interface permite que drivers de terceiros interajam com o kernel de forma mais flexível do que antes.
O problema é que a AMD guarda seus segredos a sete chaves. Para o RADV funcionar, ele precisa enviar dados para o kernel da AMD, mas esses dados consistem em "blobs" opacos e não são documentados. Para resolver esse problema, Faith Ekstrand criou uma ferramenta chamada wddm2-pdd-re que permite registrar e analisar chamadas de sistema . Graças a essa engenharia reversa, eles conseguiram decifrar como solicitar memória, criar filas de trabalho e, finalmente, desenhar na tela.
Obstáculos no caminho: hardware e compiladores

Nem tudo foram flores. Os desenvolvedores perceberam que nem todas as GPUs são iguais; por exemplo, a atualização de uma RX 7800 XT para uma RX 7900 XT causava travamentos constantes do sistema. Isso os obrigou a aprimorar suas ferramentas de depuração , criando uma camada de registro WDDM2 muito mais poderosa para identificar exatamente onde o fluxo de comandos estava falhando.
Além disso, lidar com compiladores é uma verdadeira dor de cabeça. O Mesa foi projetado para GCC e Clang, mas no Windows, o MSVC é o compilador dominante. Acontece que o MSVC lida com enumeradores de forma diferente , às vezes tratando-os como valores com sinal, o que leva a um comportamento errático que pode enlouquecer qualquer programador.
O gargalo: a opacidade da AMD
Se quisermos que qualquer usuário possa instalar e usar isso sem que o computador trave, precisamos de estabilidade. Atualmente, o RADV no Windows é frágil porque depende de estruturas de dados privadas que a AMD pode alterar em qualquer atualização oficial de driver sem notificar ninguém. É como tentar encaixar uma peça de quebra-cabeça que muda de forma toda semana.
Para superar esse gargalo, a Collabora solicitou urgentemente que a AMD ou a Microsoft forneçam uma interface documentada ou uma biblioteca "shim" para servir de ponte. Sem isso, a manutenção será um pesadelo. Outro problema crítico é a apresentação de imagens; atualmente, eles usam uma abordagem lenta baseada em CPU e precisam implementar swapchains DXGI para alcançar um desempenho realmente competitivo e evitar gargalos.
Por que deveríamos nos importar com este projeto?
Ter o RADV no Windows não é apenas um capricho de programador. Os drivers proprietários da AMD para Windows são conhecidos por serem instáveis ou causarem falhas gráficas no Windows 11 ou problemas em certos jogos. O RADV, por ser de código aberto, permite que a comunidade reporte bugs e aplique correções muito mais rapidamente . Além disso, facilitaria a vida dos desenvolvedores de jogos, que poderiam testar seu código em uma única implementação do Vulkan para ambos os sistemas operacionais.
Isso também poderia dar uma segunda vida a placas de vídeo mais antigas que a AMD já descontinuou. Como um projeto da comunidade, a compatibilidade com hardware antigo costuma durar muito mais do que o suporte oficial. Se a Valve continuar a promover isso, poderemos chegar a um ponto em que instalar o RADV no Windows se torne a opção preferida para obter estabilidade ou até mesmo alguns FPS extras.
Os esforços da Valve e da Collabora transformaram uma ideia maluca em um protótipo funcional que já renderiza polígonos em jogos reais. Apesar dos obstáculos técnicos com compiladores e da falta de manuais oficiais da AMD, a base foi estabelecida. O futuro dessa iniciativa agora depende da disposição de abrir o kernel para que o código aberto também possa brilhar nos desktops de milhões de usuários do Windows.