Desenvolvedor escreve driver Vulkan do zero em Zig e passa em testes 1.0

Desenvolvedor francês cria driver Vulkan completo em Zig, que passa nos testes oficiais da especificação 1.0.

O driver Ape, escrito em Zig, foi reconhecido pela Khronos e serve como prova de conceito para a linguagem.
Destaques
  • O driver Ape é um software rasterizer que implementa o pipeline Vulkan completamente via CPU.
  • O desenvolvedor kbz_8 escreveu o Ape do zero em Zig, sem usar código da Mesa ou de outros drivers.
  • A Khronos adicionou o vendor ID 'Ape' ao registro oficial, reconhecendo a implementação independente.

Um desenvolvedor francês conhecido como kbz_8 conseguiu um feito que chamou a atenção do ecossistema gráfico: escreveu do zero um driver Vulkan completo, chamado Ape, utilizando exclusivamente a linguagem Zig. O projeto, que começou como um experimento pessoal de aprendizado, já passa pela quase totalidade dos testes de conformidade da especificação Vulkan 1.0 e teve seu vendor ID oficialmente adicionado ao repositório do Khronos Group. Em um mundo onde drivers gráficos são dominados por C, C++ e equipes de centenas de engenheiros, o trabalho de um único desenvolvedor usando uma linguagem de sistema relativamente nova representa um marco tanto para a adoção de Zig quanto para a compreensão do que é possível fazer na computação gráfica de baixo nível.

O que é o Ape e como funciona esse driver Vulkan escrito em Zig

Ape é uma implementação de ICD (Instalable Client Driver) da especificação Vulkan, o que significa que ele é reconhecido pelo sistema como um driver Vulkan legítimo. Diferente de soluções como RADV (AMD) ou ANV (Intel), que são drivers nativos que conversam diretamente com o hardware da GPU, o Ape é um software rasterizer: ele executa todo o pipeline gráfico do Vulkan via CPU, sem depender de aceleração por hardware gráfico. Nesse sentido, ele se assemelha ao Lavapipe, da Mesa, mas com uma diferença crucial: o código do Ape não utiliza nenhuma linha do código-fonte da Mesa. É uma implementação 100% independente, com 99,9% do código escrito em Zig.

Para executar os shaders, kbz_8 desenvolveu um interpretador SPIR-V próprio, também em Zig, que funciona como o motor de execução dos programas de vértice, fragmento e computação. O primeiro commit no repositório data de outubro de 2025; em cerca de sete meses, o desenvolvedor acumulou 292 commits e atingiu um estágio em que o driver passa pela maioria dos testes da suíte de conformação Vulkan 1.0. Em 6 de junho de 2026, um pull request adicionou o vendor ID “Ape” e o driver ID “ApeSoft” ao registro oficial da Khronos — um reconhecimento formal de que o projeto existe e opera dentro das especificações.

Por que Zig e não C ou Rust? A escolha da linguagem para drivers gráficos

Zig é uma linguagem de programação de sistemas que surgiu em 2016 com o objetivo declarado de substituir o C. A versão 0.16.0 foi lançada em abril de 2026, e o ecossistema ainda está em formação. No entanto, o caso do Ape demonstra que Zig já é capaz de produzir código de sistema de altíssima complexidade.

Diferente de Rust, que impõe um modelo de ownership rigoroso para garantir segurança de memória, Zig adota uma abordagem mais pragmática: oferece verificações de limites em modo ReleaseSafe, mantém a liberdade de manipulação de ponteiros típica do C, e tem compatibilidade binária direta com código C. Para um driver gráfico — que precisa acessar estruturas de baixo nível, gerenciar memória de forma explícita e interagir com o kernel — esse equilíbrio entre segurança e controle é particularmente atraente. Enquanto Rust avança no lado do kernel com drivers como o Nova para GPUs NVIDIA, Zig mostra que pode ocupar o espaço do userspace gráfico com a mesma desenvoltura.

O próprio kbz_8 descreve o projeto como um aprendizado: a frase no README diz “sinto-me como um macaco, batendo pedaços de madeira na vã esperança de forjar um driver”. O tom humilde contrasta com a sofisticação da implementação.

Ape: 86,7% da especificação Vulkan 1.0 implementada

De acordo com a tabela de implementação do repositório, dos 143 comandos da API Vulkan 1.0, 124 já estão implementados, 16 estão em andamento e apenas 3 são considerados não aplicáveis (como recursos específicos de extensões de hardware). Isso representa 86,7% de cobertura funcional — um número impressionante para um projeto individual sem acesso a uma equipe de engenheiros ou a uma base de código herdada.

Os recursos ainda em desenvolvimento incluem áreas tradicionalmente complexas, como sparse resources e algumas operações de sincronização avançadas. O driver já roda em ambiente Linux com Wayland; o suporte a Windows está em andamento, mas ainda incompleto. O código é distribuído sob licença MIT.

O que o Ape significa para o futuro do ecossistema gráfico e da linguagem Zig

O aparecimento de um driver Vulkan escrito do zero em Zig não é apenas uma curiosidade técnica. Ele serve como prova de conceito de que a linguagem pode ser usada em projetos de sistema que tradicionalmente exigem C ou C++. Em 2025, o servidor gráfico Phoenix, também escrito em Zig, já havia mostrado que a linguagem pode substituir componentes do Xorg e do Wayland. Agora, com o Ape, a linguagem avança para dentro do pipeline gráfico propriamente dito.

É improvável que o Ape venha a substituir drivers nativos como RADV ou os drivers proprietários da NVIDIA em cenários de produção. O desempenho de um software rasterizer é naturalmente limitado pela CPU. Mas o projeto tem valor educacional imenso: qualquer pessoa interessada em entender como um driver Vulkan funciona por dentro pode ler o código limpo e bem estruturado do Ape, sem precisar navegar pelo enorme código-fonte da Mesa. Além disso, a existência de um driver Vulkan independente, escrito em uma linguagem diferente, fortalece a resiliência do ecossistema — se um dia houver necessidade de criar uma implementação leve para um novo hardware ou plataforma, o caminho já foi pavimentado.

O fato de a Khronos ter aceitado o vendor ID “Ape” no registro oficial mostra que o comitê da especificação reconhece e incentiva implementações independentes, mesmo que não sejam comerciais. O Ape, ainda que nascido como um projeto de “apenas por diversão”, já é parte da história do Vulkan.

Compartilhar este artigo
Canal oficial de conteúdo do portal Overcentral. A Equipe Central produz notícias, guias e análises com foco em credibilidade e relevância, garantindo que você receba o melhor conteúdo editorial diariamente.