Ape é uma nova implementação de código aberto do Vulkan ICD.

Introduzido novo experimental driver Vulkan Macaco — uma implementação de software de código aberto do Vulkan ICD, escrita quase inteiramente em Zig e não utiliza o código Mesa. O projeto ainda não se declara adequado para uso industrial: o autor o descreve explicitamente como uma tentativa educacional de "construir um driver manualmente" e alerta contra o uso do Ape em projetos sérios. O código é publicado sob uma licença MIT.


O interesse em Ape surgiu após na especificação Foi adicionado um ID de fornecedor separado para o Vulkan. Macaco e identificação do motorista para ApeSoftA solicitação de pull request correspondente no repositório KhronosGroup/Vulkan-Docs foi mesclada. 6 junho 2026 anosEm um comentário, o autor indicou que estava trabalhando em um driver Vulkan para uso amador e que estava perto de passar em todos os testes do Vulkan 1.0.

Na verdade, o Ape não é um driver para uma placa de vídeo específica, mas renderizador de software VulkanSimilar em propósito ao Mesa Lavapipe: os comandos Vulkan são executados por sua própria implementação, sem acessar o driver de hardware da GPU. No entanto, o Lavapipe não é baseado no Mesa e foi escrito como um código-fonte independente em Zig.

O que o Macaco já consegue fazer

  • Funciona como o ICD do Vulkan.
    O macaco foi projetado como Driver de cliente instalável — ou seja, como um driver que pode ser detectado pelo carregador Vulkan padrão por meio de um manifesto ICD. Após a compilação, o autor sugere direcionar o carregador Vulkan para o arquivo de manifesto correspondente. Isso faz com que o projeto não seja apenas uma coleção de experimentos, mas uma implementação real do driver Vulkan, ainda que para fins de treinamento. O carregador Vulkan foi projetado especificamente para detectar e habilitar múltiplos drivers ICD no sistema.

  • Escrito inteiramente em Zig.
    A base de código principal do Ape é escrita em Zig; a linguagem está listada na página principal do projeto no Forge como Zig 99,9%A Phoronix enfatiza que o projeto é independente do Mesa e implementado em Zig, não em C/C++. Os drivers gráficos são tradicionalmente escritos em C/C++, mas o Ape demonstra que o Vulkan ICD pode ser implementado em uma linguagem de sistema mais moderna.

  • Existe uma implementação de software da ApeSoft.
    O projeto destaca a implementação de software. Suave, que está localizado dentro do próprio código-fonte do driver. Ele usa seu próprio Interpretador SPIR-V e seu próprio renderizador. O Ape não se limita a aceitar chamadas Vulkan, mas tenta executar shaders e renderização em sua própria CPU.

  • A compilação via Zig build é suportada.
    Para a implementação do software, o arquivo README especifica um método de compilação usando o comando `zig build soft`. Depois disso, você precisa configurar o carregador Vulkan no manifesto ICD. Por enquanto, esta é claramente uma ferramenta para desenvolvedores e entusiastas, não um pacote do tipo "instalar e executar".

  • Uma parte significativa do Vulkan 1.0 já foi implementada.
    O arquivo README lista o status dos recursos do Vulkan 1.0. Os recursos implementados incluem criação de instâncias e dispositivos, alocação de memória, buffers, imagens, buffers de comando, passe de renderização, framebuffer, pipeline gráfico, pipeline de computação, módulos de shader, conjuntos de descritores, swapchain e comandos básicos de renderização. Em termos de recursos implementados, o projeto já ultrapassou o experimento do "triângulo de olá", mas ainda precisa ser validado e algumas tarefas pendentes precisam ser concluídas para se tornar um driver totalmente compatível.

  • Existem comandos de desenho e de computação.
    A lista de funções implementadas inclui vkCmdDraw, vkCmdDrawIndexed, vkCmdDrawIndirect, vkCmdDrawIndexedIndirect, vkCmdDispatch e vkCmdDispatchIndirect. O Ape abrange não apenas a infraestrutura principal do Vulkan, mas também dois cenários de API importantes: renderização gráfica e pipelines de computação.

  • Saques via Swapchain e Wayland são suportados.
    O status da implementação inclui vkCreateSwapchainKHR, vkQueuePresentKHR, vkCreateWaylandSurfaceKHR e verificações de suporte à apresentação Wayland. A presença de uma swapchain e de uma superfície Wayland significa que o driver foi projetado não apenas para testes offline, mas também para exibir imagens em um ambiente de janela real. Linux.

  • Parte do WSI para X11 e Windows Ainda em andamento.
    As funções vkCreateXcbSurfaceKHR, vkCreateXlibSurfaceKHR, vkCreateWin32SurfaceKHR e as respectivas funções de verificação de suporte à apresentação estão marcadas como WIP (em desenvolvimento). Wayland já está presente, e X11/Windows- O suporte ainda não está pronto.

  • Alguns elementos do Vulkan 1.0 ainda não estão prontos ou não são suportados.
    O status WIP inclui, por exemplo, vkCreatePipelineCache, vkCreateSemaphore, vkGetQueryPoolResults, vkMergePipelineCaches, alguns estados dinâmicos e comandos de carimbo de data/hora. Funções esparsas como vkQueueBindSparse e vkGetImageSparseMemoryRequirements estão marcadas como não suportadas. O Ape está próximo da cobertura do Vulkan 1.0, mas ainda não é um substituto universal para um driver Vulkan padrão.

  • Foram adicionadas novas melhorias de renderização e sincronização.
    O histórico do projeto entre 5 e 6 de junho incluiu mudanças como a adição de reinicialização de primitivas, amostragem de textura inteira, gerenciamento de amostragem mip/lod e a implementação de semáforos binários. O projeto está em desenvolvimento ativo, visando especificamente a compatibilidade prática com benchmarks do Vulkan e cenários gráficos do mundo real.

  • O projeto não tem como objetivo a produtividade.
    O autor afirma explicitamente que o Ape foi criado para exploração do Vulkan e não tem como objetivo ser um driver de alto desempenho ou pronto para produção. O Ape deve ser visto como um projeto de pesquisa, uma implementação de aprendizado do Vulkan e um experimento com o Zig, não como um concorrente do Mesa RADV, ANV, NVK ou Lavapipe.

Em última análise, o Ape é interessante não por poder ser instalado amanhã em vez do Mesa, mas sim por ser uma implementação independente do Vulkan ICD no Zig, com seu próprio interpretador SPIR-V, renderizador de software e uma cobertura já significativa do Vulkan 1.0. Embora seja de pouca utilidade para usuários comuns, para desenvolvedores de drivers, autores de runtimes e aqueles que estudam o funcionamento interno do Vulkan, o projeto representa um campo de testes fascinante e dinâmico.

Fonte: linux.org.ru

Compre hospedagem confiável para sites com proteção DDoS, servidores VPS VDS 🔥 Compre hospedagem de sites confiável com proteção contra DDoS, servidores VPS/VDS | ProHoster