- Renderizador do Linux reimplementado com base em wgpu, removendo a biblioteca gráfica Blade existente
- A Blade anterior causava vários problemas para usuários do Zed e apps de terceiros, enquanto o wgpu oferece compatibilidade mais ampla e potencial de melhoria por ser o padrão do ecossistema Rust
- A nova implementação resolve vários problemas, incluindo travamentos em ambientes NVIDIA e Wayland, e encerra diversos relatórios de bugs relacionados
- Durante o processo de revisão, foram feitas otimizações de uso de memória e desempenho, com melhora de cerca de 20% no uso de CPU, enquanto o tempo de GPU permaneceu em nível semelhante ao anterior
- Com essa mudança, a estabilidade gráfica e a manutenibilidade no Linux do Zed melhoram significativamente
Migração do renderizador Linux para wgpu
- Problemas ocorreram no Zed e em apps baseados em GPUI devido à complexidade e aos erros da biblioteca gráfica Blade existente
- Foram relatados crashes e congelamentos não apenas por usuários do Zed, mas também em outros apps de terceiros
- A nova implementação usa wgpu, a API gráfica padrão do ecossistema Rust
- Com a mesma base tecnológica de projetos importantes como Bevy e Iced, será possível compartilhar benefícios de melhorias futuras
- Entre os problemas relacionados estão #44814, #40481, niri-wm/niri#2335, zortax/zlaunch#15
Discussão sobre desempenho e compatibilidade
- Alguns desenvolvedores apontaram aumento no uso de memória do wgpu
- No Windows, com base em uma janela vazia, foi relatado que o wgpu usa cerca de 100MB, enquanto o renderizador gpui anterior usava cerca de 10MB
- Em resposta, foi explicado que o wgpu tem aumento inicial de memória por causa da pré-alocação de buffers, mas que durante a renderização real a diferença não é grande
- Na discussão sobre uso de memória da GPU, alguns usuários relataram aumento de VRAM (cerca de 30MB), mas em outros ambientes foi confirmado que não houve diferença
Escopo de aplicação por plataforma
- No Mac e no Windows, os renderizadores nativos existentes serão mantidos
- reflectronic mencionou que “os renderizadores nativos dessas plataformas oferecem melhor desempenho e compatibilidade”
- zortax rebateu dizendo que o wgpu oferece suporte a vários backends, como Vulkan, DirectX12 e ANGLE(OpenGL ES), e pode até ampliar a compatibilidade
- maddythewisp sugeriu aproveitar as características multiplataforma do wgpu para também ativá-lo opcionalmente no Mac e no Windows
Otimização e benchmark
- reflectronic adicionou vários commits de otimização, como reutilização de buffer único, pré-criação de bind groups e integração de buffers globais
- Com base no commit mais recente (
f988a34), houve melhora de cerca de 20% no tempo de draw da CPU, enquanto o tempo de GPU permaneceu semelhante ao anterior
- Mediana da CPU reduzida de 301µs → 238µs
- Também foi relatado que o uso de memória melhorou em relação ao Zed Stable
Merge e conclusão
- Após a revisão final, reflectronic aprovou dizendo que “tudo está pronto”, e a mudança foi mergeada na branch main em 13 de fevereiro de 2026
- O backend Blade “não é mais usado no Zed e não será mais mantido”
- Com essa migração, a stack gráfica do Linux no Zed foi unificada com base em wgpu, fortalecendo no futuro a integração técnica com o ecossistema Rust
Ainda não há comentários.