Um dos últimos recursos para pousar no Mesa 22.3 antes da ramificação de ontem e o lançamento do Mesa 22.3-rc1 está habilitando o cache de disco do sombreador Mesa para Panfrost, o driver de código aberto Arm Mali para as gerações Midgard e Bifrost.
O Panfrost Gallium3D fez as alterações necessárias no Mesa 22.3 para habilitar o cache de disco do sombreador Mesa comum. Por sua vez, isso deve ajudar com o Panfrost em tempos de carregamento de jogo mais rápidos, evitando a recompilação de shaders em carregamentos de jogos subsequentes, ajudando no desempenho de qualquer jogo que compile shaders em tempo real, etc. É o mesmo cache em disco do Mesa usado por outros drivers, apenas o bits de integração eram necessários para o suporte do Panfrost.
Alyssa Rosenzweig, da Collabora, desenvolveu o suporte ao cache de disco do shader. Ela resumiu assim:
Conecte o cache de disco do sombreador Mesa ao Panfrost. Juntamente com as pré-compilações do patch anterior, isso deve reduzir bastante a instabilidade na recompilação do shader.
Esta é uma implementação simples. O trabalho futuro óbvio inclui:
-Cache de shaders internos (fora do Gallium)
-Implementar finalize_nir para reduzir o tamanho do disco de shaders
Como parte desta mesclagem também é a capacidade de pré-compilar os shaders no momento da criação do CSO para tentar evitar”jank no tempo de desenho”. A pré-compilação do sombreador pode ser habilitada usando a nova opção de depuração”pré-compilar”.
Mais detalhes sobre o suporte ao cache de disco do sombreador Mesa para Panfrost via esta mesclagem.