Rastreador de páginas da GPU
O rastreador de páginas, de adesão explícita, vigia páginas convidadas de 16 KiB. O primeiro armazenamento nativo da CPU gera uma falha, avança uma geração e invalida a cópia da GPU, para que páginas inalteradas não sejam submetidas a hash e enviadas a cada quadro.
Notas do repositório até 10 de outubro de 2026
O problema que ele trata
Um alvo de renderização ou um buffer de vértices que vive na memória convidada precisa chegar à GPU. Enviar a alocação inteira a cada quadro é correto e caro. Submeter a alocação inteira a hash para descobrir que ela não mudou também é caro. O rastreador de páginas, em vez disso, marca uma página gravável rastreada como somente leitura e deixa a CPU falhar no primeiro armazenamento.
O tratador da falha registra a página, restaura a proteção real do convidado e avança a geração dessa página. Um desenho posterior compara gerações. Uma página inalterada permanece no dispositivo. Uma página cuja geração se moveu é enviada. PS5_GPU_PAGE_TRACKER=1 liga o mecanismo. Ele fica desligado, a menos que essa variável, ou o conjunto experimental, esteja definido.
O que a falha é
A falha é uma invalidação, não um erro do convidado. A página estava somente leitura só para que o anfitrião pudesse observar a escrita. O armazenamento do convidado então pode concluir sob a proteção que o título pediu. Páginas que não são rastreadas seguem o caminho comum de envio.
Mapeamentos de memória direta recriados com o mesmo endereço, o mesmo tamanho, o mesmo deslocamento físico e as mesmas permissões de CPU mantêm as visões do anfitrião. Essa reutilização é o que torna uma geração significativa de um quadro para o outro. Uma mudança de suporte ou de permissões segue o caminho normal de substituição, e o rastreador observa o mapeamento novo.
O que ele não faz
O rastreador não reduz a resolução interna de um título e não compila shaders. Ele só remove transferências repetidas de páginas nas quais a CPU não armazenou. Um título que reescreve um buffer a cada quadro ainda paga por esse buffer.
Escritas de atlas de fontes e outros armazenamentos do HLE invalidam as vigias antes de modificar a memória convidada, então uma escrita de firmware não fica invisível para a GPU. O rastreador faz parte do conjunto experimental de GPU descrito na visão geral da arquitetura.
O que está implementado
- Gerações por página para páginas convidadas de 16 KiB quando PS5_GPU_PAGE_TRACKER=1.
- Uma falha no primeiro armazenamento, que restaura a proteção do convidado e invalida a cópia residente.
- Reutilização de visões idênticas de memória direta, para que as gerações sobrevivam de um quadro para o outro.
- Invalidação quando o próprio HLE escreve uma página vigiada.
O que ainda falta
- O rastreador é de adesão explícita. O caminho padrão de compatibilidade não depende dele.
- Páginas que a CPU reescreve a cada quadro ainda são enviadas.
- Ele não cobre a coerência de GPU para GPU dentro de uma superfície de metadados comprimidos.
Mecanismos relacionados
O que estas páginas descrevem