Drivers da GPU
Driver do sistema ou Turnip, onde trocar, como os pacotes são baixados e conferidos, e as flags do Turnip.
O Xendroid+ desenha com Vulkan. Por padrão usa o driver Vulkan do sistema, que vem com o Android e está sempre disponível. Em GPUs Adreno dá para trocar por um driver personalizado, como o Turnip (o driver Vulkan livre do Mesa para Adreno), que é o foco das otimizações do projeto.
Só em Adreno
Drivers personalizados só carregam em GPUs Adreno com o driver de kernel KGSL da Qualcomm. Nos outros aparelhos a tela Drivers avisa que todos os jogos usam o driver do sistema.

Onde trocar #
- Área Drivers (no trilho, deitado; no menu Start, com controle; em pé, por Configurações → Resumo → Driver → Gerenciar drivers). A escolha vale para todos os jogos a partir da próxima abertura; a anterior fica a um toque, e Usar o driver do sistema volta ao padrão.
- Por jogo: na ficha → Driver e Vulkan.
- Só numa abertura: na ficha → Iniciar com… → Driver.
A seção Em uso mostra o driver escolhido e o que a última sessão de fato carregou. Se um driver personalizado não carregou (arquivo ausente ou recusado), ela avisa que o do sistema foi usado. Quando um jogo não abre com um driver personalizado, a tela de falha oferece Tentar com o driver do sistema só naquela abertura.
Baixar e instalar #
- Fontes: repositórios do GitHub com releases de drivers. A fonte padrão é
K11MCH1/AdrenoToolsDrivers; dá para ter até 8. O app lê as releases publicadas (ignora rascunhos e prévias) e só os arquivos.zip. - Sugestão para a sua GPU: pelo nome dos arquivos e das releases, o modelo exato vem antes da família (por exemplo, a7xx), sempre da mesma família e o mais novo primeiro. O app avisa que é uma escolha pelos nomes, não uma garantia.
- Importar ZIP: instala um pacote que você já tem.
Todo pacote é conferido antes de instalar:
- o SHA-256, quando a release publica um: o arquivo baixado tem que bater; o selo diz “SHA-256 publicado” ou “Sem checksum publicado”;
- a biblioteca tem que ser Vulkan para ARM de 64 bits;
- o ZIP tem limites de tamanho (64 MB compactado, 256 MB descompactado) e precisa indicar a biblioteca no
meta.jsonou ter um único.so.
O pacote em uso não pode ser removido. Remover um pacote apaga os arquivos; para usar de novo, baixe ou importe outra vez.
Opções do Turnip #
As flags do Turnip (a variável TU_DEBUG) são passadas ao driver quando o próximo jogo inicia. Valem para todos os jogos, e cada jogo pode ter as próprias na ficha. Drivers da Qualcomm ignoram essas flags. O padrão do Xendroid+ é sysmem.
| Flag | O que faz |
|---|---|
sysmem | Desenha direto na memória em vez dos tiles do chip (GMEM). Mais lento, mas evita uma classe de travamentos da GPU Adreno. Padrão do Xendroid+. exclui gmem |
gmem | Sempre desenha nos tiles do chip. Mais rápido onde funciona; o oposto de sysmem. exclui sysmem |
nolrz | Desliga o LRZ, o teste de profundidade antecipado. Pode corrigir cintilação ou geometria sumindo; custa velocidade. |
nolrzfc | Desliga só a limpeza rápida do LRZ. Uma versão mais estreita do nolrz. |
noubwc | Desliga a compressão de imagem UBWC. Pode corrigir texturas ou render targets corrompidos; mais tráfego de memória. |
nomultipos | Desliga a otimização de saída multiposição. Pode corrigir polígonos esticados ou piscando. |
noconcurrentresolves | Não resolve tiles enquanto os próximos desenham. Pode corrigir artefatos na Adreno 7xx; mais lento. |
noconcurrentunresolves | Não carrega tiles enquanto outros desenham. Pode corrigir artefatos na Adreno 7xx; mais lento. |
forcebin | Sempre usa a passada de binning no modo por tiles. Para diagnóstico. |
flushall | Esvazia a GPU depois de cada comando. Muito lento; ajuda a achar qual desenho trava a GPU. |
syncdraw | Espera cada desenho terminar. Muito lento; para diagnosticar travamentos da GPU. |
sysmem e gmem se excluem. Flags que a versão do app não conhece ficam como estão. A última linha da tela mostra o valor final, como TU_DEBUG=sysmem.
Quando trocar #
- Comece pelo driver do sistema. O assistente da primeira abertura lembra que ele basta para começar.
- Um Turnip recente costuma ser o caminho das otimizações do projeto em Adreno 7xx e 8xx, e as medições publicadas foram feitas com Turnip.
- Se o jogo fecha ou trava com um driver personalizado, teste o do sistema. O app sugere isso sozinho depois de um travamento nativo com driver personalizado (veja sugestões ao fim da sessão).
O simulador mostra a tela Drivers com o catálogo de exemplo e as flags reais.