Engenheira da Valve desenvolve solução para otimizar uso de VRAM no Linux
Uma nova implementação técnica desenvolvida por Natalie Vock, engenheira da equipe de drivers gráficos para Linux da Valve, promete mitigar gargalos de desempenho em placas de vídeo (GPUs) com 8 GB de memória de vídeo (VRAM) ou menos. A solução foca em reorganizar a prioridade de alocação de memória no kernel do Linux, garantindo que jogos em primeiro plano tenham preferência sobre processos secundários.
O Problema da Gestão Indiscriminada de Memória
Atualmente, o kernel do Linux apresenta limitações ao gerenciar a VRAM de forma dinâmica. Quando a memória dedicada da placa de vídeo atinge sua capacidade total, o sistema operacional muitas vezes remove dados do jogo ativo para a GTT (Graphics Translation Table), que utiliza a memória RAM do sistema.
Como a memória RAM convencional possui largura de banda significativamente menor e latência superior à VRAM, essa transferência (conhecida como spillover) resulta em quedas de quadros por segundo (FPS) e travamentos (stuttering). Testes realizados por Vock com o jogo Cyberpunk 2077 demonstraram que, mesmo em GPUs de 8 GB, cerca de 1,37 GB de dados eram movidos desnecessariamente para a RAM do sistema enquanto o jogo consumia apenas 6 GB de VRAM disponível.
Mecanismo de Priorização: dmemcg-booster
A solução proposta introduz o conceito de Device Memory Control Groups (DMEM). Através de patches no kernel e de uma ferramenta chamada dmemcg-booster, o sistema passa a identificar quais processos devem ser "protegidos" na VRAM.
- Prioridade ao Primeiro Plano: Quando um jogo é iniciado, o sistema o marca como alta prioridade.
- Expulsão Seletiva: Se a VRAM estiver cheia, o kernel agora prioriza a expulsão de dados de aplicativos de fundo (como navegadores ou players de vídeo) para a RAM do sistema, mantendo os ativos do jogo na memória de vídeo de alta velocidade.
- Resultados Práticos: No mesmo cenário de teste com Cyberpunk 2077, o uso da memória de sistema (GTT) caiu para aproximadamente 650 MB, estabilizando o desempenho e eliminando a degradação de performance ao longo do tempo.
Ferramentas de Espaço de Usuário
Além das mudanças no núcleo do sistema, foram desenvolvidas duas utilidades principais:
- dmemcg-booster: Um serviço de sistema que gerencia as atribuições de grupos de controle, impedindo que o jogo seja movido para fora da VRAM.
- plasma-foreground-booster: Uma integração específica para o ambiente desktop KDE Plasma, que informa automaticamente ao sistema qual janela está em foco para que a prioridade seja ajustada em tempo real.
Compatibilidade e Disponibilidade
No momento, a tecnologia é compatível com drivers de código aberto para GPUs AMD e Intel. Devido à natureza proprietária da gestão de memória nos drivers da NVIDIA, a funcionalidade ainda não é suportada por esse hardware no driver oficial, embora patches para o driver de código aberto nouveau tenham sido enviados para avaliação.
As melhorias já foram integradas à distribuição CachyOS e aguardam revisão para serem incorporadas oficialmente ao kernel principal do Linux (upstream). A iniciativa reforça os esforços da Valve em otimizar a experiência de jogos no ecossistema Linux, beneficiando usuários com hardware de entrada e médio porte.
