Este tópico descreve como corrigir problemas comuns ao usar o Android GPU Inspector (AGI) .
Redefinindo as configurações do AGI
O AGI armazena as configurações no arquivo ~/.agic
.
Se você remover este arquivo, todas as configurações do AGI serão excluídas, incluindo a lista de
rastros abertos recentemente e resultados de validação de dispositivo.
O AGI falha em alguns dispositivos
Verifique se sua configuração atende a todos requisitos.
As orientações a seguir também podem ajudar:
Interrompa qualquer programa que possa interagir com o dispositivo pelo adb, como o Android. Estúdio.
Ative a opção
Stay awake
(em Opções do desenvolvedor no Android) para evitar problemas que surgem quando a tela do dispositivo é desligada devido ao modo de sono.
O criador de perfil do sistema não informa a atividade da GPU para jogos com OpenGL ES
Atualmente, apenas contadores de GPU têm suporte ao rastrear um OpenGL ES para o aplicativo. As informações de atividade da GPU para aplicativos OpenGL ES estão ativas no desenvolvimento de software.
O criador de perfil de frame falha em alguns jogos do Vulkan
A primeira coisa a verificar é se o jogo usa o Vulkan corretamente. Use o Camada de validação da Vulkan e garantir que o jogo não gere erros ou avisos.
Se houver algum erro de validação do Vulkan, o criador de perfil de frames do AGI não é esperado para funcionar.
Falha no jogo ao criar um rastro do criador de perfil de frame
Se o jogo é executado corretamente sem o AGI, mas não é executado durante a criação de um frame rastreamento de perfil, o jogo pode estar bifurcando um processo diferente durante a inicialização sequência. Nesse caso, é necessário especificar o nome do processo a ser rastreado o "Nome do processo" nas opções de trace.
Para identificar esse problema, você pode verificar a saída do logcat enquanto cria um trace e verifique se outro processo está começando:
# Clear the logcat output
adb logcat -c
## Use AGI to attempt to create a frame profile trace
Look at the logcat output to identify the processes that are running AGI.
adb logcat | grep "this process name"
I GAPID : gapii [gapii/cc/spy.cpp:109] this process name: com.example.mygame
I GAPID : gapii [gapii/cc/spy.cpp:109] this process name: com.example.mygame:GameProcess
A maioria dos jogos tem apenas um processo. O exemplo acima mostra o que esperar com mais de um processo.
O jogo começa em um processo principal chamado com.example.mygame
e depois bifurca uma
um novo processo chamado com.example.mygame:GameProcess
.
Se a renderização real do jogo ocorrer no segundo processo, informe
AGI que esse é o processo que você quer rastrear.
Para fazer isso, insira o nome do processo no campo Process name
do
a caixa de diálogo de opções de rastreamento.
Falha no jogo após usar o AGI
Se um rastro não for encerrado corretamente, o AGI poderá deixar algumas configurações do Android um estado que pode interromper as execuções subsequentes do app. Essas configurações são:
Configurações relacionadas às camadas do Vulkan:
enable_gpu_debug_layers
gpu_debug_app
gpu_debug_layers
gpu_debug_layer_app
Configurações relacionadas ao ANGLE:
angle_debug_package
angle_gl_driver_selection_values
angle_gl_driver_selection_pkgs
Se o app tiver algum problema após usar o AGI, tente limpar o com os seguintes comandos adb:
# Vulkan layers
adb shell settings delete global enable_gpu_debug_layers
adb shell settings delete global gpu_debug_app
adb shell settings delete global gpu_debug_layers
adb shell settings delete global gpu_debug_layer_app
# ANGLE
adb shell settings delete global angle_debug_package
adb shell settings delete global angle_gl_driver_selection_values
adb shell settings delete global angle_gl_driver_selection_pkgs
Seu jogo tem uma aparência diferente quando é iniciado pelo AGI ao criar um rastro de perfil de frame.
Para criar um rastreamento de perfil de frame, o AGI intercepta as chamadas da API gráfica feitas pelo o que pode afetar a renderização do jogo.
O AGI captura chamadas do Vulkan. Para jogos OpenGL ES, o AGI depende ANGLE para traduzir o OpenGL ES para o Vulkan. Se o jogo tiver uma aparência diferente (por exemplo, algumas cores não são as esperadas) quando iniciar pelo AGI, provavelmente é um bug no AGI ou no ANGLE. Você pode nos ajudar a entender melhor a causa raiz do problema tente o seguinte.
Jogos do Vulkan: rastrear com todas as extensões do Vulkan compatíveis
A opção de rastreamento Incluir extensões desconhecidas controla se o AGI deve incluir extensões do Vulkan incompatíveis. (Navegar uma lista de extensões compatíveis.
Caso seu app use uma extensão não compatível com o AGI, talvez você encontre comportamento indesejado, incluindo erros ou falhas sutis, ao reproduzir rastros.
Tente ativar essa opção e inicie outro rastro do criador de perfil de frame. Se o jogo for exibido conforme esperado com a opção ativada, o jogo poderá depender de um Vulkan não compatível com o AGI.
Jogos OpenGL ES: executar apenas com o ANGLE
Você pode executar seu jogo OpenGL ES com o ANGLE, mas sem o AGI para ver se a resposta renderização vem de um problema no ANGLE.
Se você já tentou criar um rastro de perfil de frame do OpenGL ES
o AGI já instalou o ANGLE no seu dispositivo. O pacote ANGLE usado pelo
O AGI é chamado de org.chromium.angle.agi
.
Para forçar a execução do jogo no ANGLE, use os seguintes comandos:
# Make sure that the AGI capture layer will be ignored
adb shell settings delete global enable_gpu_debug_layers
# Force the package com.example.mygame to use ANGLE
adb shell settings put global angle_debug_package org.chromium.angle.agi
adb shell settings put global angle_gl_driver_selection_values angle
adb shell settings put global angle_gl_driver_selection_pkgs com.example.mygame
Se o jogo estiver diferente com essas configurações, é provável que seja um bug no ANGLE, e não AGI. Se o jogo parece correto com essas configurações, mas parece diferente ao criar um trace do AGI, provavelmente é um bug no AGI.
É possível denunciar bugs do AGI criando um Problema no GitHub.