O Linux 7.3 reúne mudanças específicas em V3D, AMDGPU, processamento de cor da AMD e controle de memória gráfica por cgroups. A Igalia relata menor uso de CPU no envio de tarefas do AMDGPU; no V3D, as alterações reorganizam o envio de tarefas e tornam os contadores de desempenho mais confiáveis. Os ajustes atuam em drivers e caminhos distintos, sem representar um aumento geral de FPS.
A Igalia informou ter escrito 69 patches e revisado 59 para o Linux 7.3. A cobertura da NeoTeo sobre as mudanças de rede no Linux 7.3 abordou outra frente do kernel; aqui, o foco está nos gráficos e na memória.
Neste artigo
- Mudanças por área
- V3D organiza o envio de tarefas e sincroniza contadores
- AMDGPU e HDR da AMD tratam problemas diferentes
- Como o limite dmem.max afeta a VRAM
- Compatibilidade do nouveau e futuro do V3D
Mudanças por área
| Área | Mudança no Linux 7.3 | Efeito e alcance |
| V3D | Envio de tarefas organizado em um vetor ordenado; sincronização entre filas quando um monitor de desempenho está conectado | Caminho de envio mais robusto e contadores mais confiáveis |
| AMDGPU | Ajustes no envio de tarefas e nos caminhos de contextos e listas de buffers | A Igalia relata redução qualitativa do uso de CPU no envio de tarefas |
| Telas AMD | Mudanças no processamento de cor para gradientes HDR | Correção direcionada às famílias DCN 3.0+ e DCN3.2+ |
| dmem | Limites de memória gráfica por cgroup, com recuperação de memória ao reduzir dmem.max | O processo pode aguardar a liberação de memória; O_NONBLOCK evita a espera |
| sched-ext | Remoção de cópias duplicadas de nós de spinlock da BPF arena e operação ops.cgroup_set_bandwidth() marcada como sleepable | Permite que essa operação chame funções que podem dormir, como as de alocação de memória |
V3D organiza o envio de tarefas e sincroniza contadores
No V3D, driver gráfico usado em dispositivos Raspberry Pi, o Linux 7.3 introduz uma abstração que representa a sequência de envio como um vetor ordenado de tarefas. Ela abrange os caminhos de renderização, textura e computação. A mudança reorganiza a implementação; não é uma medição de desempenho em jogos.
Quando um monitor de desempenho está conectado, o driver agora sincroniza o acesso entre filas. Isso ajuda a tornar mais confiáveis os valores dos contadores usados para depuração e análise de desempenho.
AMDGPU e HDR da AMD tratam problemas diferentes
No AMDGPU, a Igalia relata menor uso de CPU durante o envio de tarefas. As mudanças incluem a remoção de um mutex não utilizado na lista de objetos de buffer, o armazenamento em cache de verificações invariáveis do IP e menos reativações de trabalhadores ociosos. A redução é qualitativa, sem um valor numérico de ganho. Os caminhos de contextos e listas de buffers também foram simplificados, com a substituição de IDR por XArray.
Já a correção de imagem HDR abrange as famílias de tela AMD DCN 3.0+ e DCN3.2+. O trabalho trata o banding, ou faixas visíveis em gradientes, com segmentação específica de LUTs. Uma LUT é uma tabela de consulta que associa valores de entrada a valores de saída; nesse caso, as mudanças também se relacionam à conversão de funções de transferência eletro-óptica, que mapeiam o sinal codificado para níveis de luz. O alcance indicado é o dessas famílias de hardware, não uma correção para toda GPU AMD ou todo artefato HDR.
Como o limite dmem.max afeta a VRAM
Um cgroup agrupa processos para controlar o uso de recursos. O controlador dmem permite acompanhar e limitar memória de dispositivo, incluindo VRAM em caminhos compatíveis. A GTT é uma área de memória acessível à GPU por meio da tabela de tradução gráfica.
Se um cgroup reduz dmem.max para abaixo do uso atual, o sistema tenta recuperar memória, movendo objetos da VRAM para a GTT. Uma gravação normal espera enquanto essa recuperação ocorre; com O_NONBLOCK, ela não precisa esperar. Se a recuperação não alcançar o novo limite, o limite reduzido continua valendo e bloqueia novas alocações que o ultrapassem.
O arquivo dmem.peak permite consultar o pico de uso e é somente para leitura. Cada gravação atualiza uma região. As proteções também têm níveis diferentes: dmem.min oferece proteção rígida contra a remoção de memória do cgroup, enquanto dmem.low funciona como proteção flexível.
Compatibilidade do nouveau e futuro do V3D
A integração de dmem no Linux 7.3 inclui o nouveau, driver aberto da NVIDIA. A mudança se aplica a esse caminho de driver. O suporte do controlador não deve ser confundido com uma compatibilidade equivalente no driver proprietário da NVIDIA.
A Igalia afirmou que o Linux 7.3 seria o último lançamento com suporte do kernel ao V3D 3.3 e 4.1 e que esse suporte seria depreciado na versão seguinte. Trata-se de uma depreciação planejada, não de uma remoção já concluída.