Fehlerbehebung bei AGI

In diesem Thema wird beschrieben, wie Sie häufige Probleme bei der Verwendung des Android GPU Inspectors beheben (AGI)

AGI-Einstellungen zurücksetzen

AGI speichert die Einstellungen in der Datei ~/.agic. Durch das Entfernen dieser Datei werden alle AGI-Einstellungen gelöscht, einschließlich der Liste kürzlich geöffnete Traces und Ergebnisse der Gerätevalidierung.

AGI schlägt auf einigen Geräten fehl

Achten Sie darauf, dass Ihre Einrichtung alle Anforderungen erfüllen.

Auch Folgendes kann hilfreich sein:

  • Beenden Sie alle Programme, die möglicherweise über ADB mit dem Gerät interagieren, z. B. Android. Studio

  • Aktiviere unter Android unter „Entwickleroptionen“ die Option Stay awake, um verhindern Probleme, die auftreten, wenn sich das Display des Geräts aufgrund des Schlafmodus abschaltet.

Der System-Profiler meldet keine GPU-Aktivitäten für OpenGL ES-Spiele

Derzeit werden nur GPU-Zähler unterstützt, wenn Sie ein OpenGL ES verfolgen . Informationen zur GPU-Aktivität für OpenGL ES-Anwendungen sind unter „Aktiv“ Entwicklung.

Frame-Profiler schlägt in einigen Vulkan-Spielen fehl

Zuerst solltest du prüfen, ob Vulkan in deinem Spiel richtig verwendet wird. Verwenden Sie die Methode Vulkan-Validierungsschicht und achten Sie darauf, dass Ihr Spiel keine Fehler oder Warnungen ausgibt.

Bei einem Vulkan-Validierungsfehler wird der AGI-Frame-Profiler nicht erwartet. zu arbeiten.

Spielfehler beim Erstellen eines Frame-Profiler-Trace

Wenn das Spiel ohne AGI läuft, aber nicht beim Erstellen eines Frames läuft kann es passieren, dass das Spiel beim Start einen anderen Prozess abzweigt. Sequenz hinzufügen. In diesem Fall müssen Sie den Namen des Prozesses angeben, der verfolgt werden soll. „Prozessname“ in den Trace-Optionen.

Um dieses Problem zu identifizieren, können Sie die Logcat-Ausgabe prüfen, während Sie einen Trace erstellen Prüfen Sie, ob ein anderer Prozess gestartet wird:

# 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

Bei den meisten Spielen gibt es nur einen Prozess. Das Beispiel oben zeigt, Spiel mit mehr als einem Prozess.

Das Spiel startet in einem Hauptprozess mit dem Namen com.example.mygame und gibt dann einen Forks ein. Neuer Prozess mit dem Namen com.example.mygame:GameProcess. Wird das Spiel im zweiten Prozess gerendert, müssen Sie angeben, AGI, dass dies der Prozess ist, den Sie nachverfolgen möchten. Geben Sie dazu den Namen des Prozesses in das Feld Process name der das Dialogfeld mit den Trace-Optionen.

Spielfehler nach Verwendung von AGI

Wenn eine Ablaufverfolgung nicht ordnungsgemäß beendet wird, belässt AGI möglicherweise einige Android-Einstellungen in der nachfolgende Ausführungen der App unterbrechen kann. Diese Einstellungen sind:

  • Einstellungen für Vulkan-Ebenen:

    • enable_gpu_debug_layers

    • gpu_debug_app

    • gpu_debug_layers

    • gpu_debug_layer_app

  • ANGLE-bezogene Einstellungen:

    • angle_debug_package

    • angle_gl_driver_selection_values

    • angle_gl_driver_selection_pkgs

Wenn es nach der Verwendung von AGI Probleme mit Ihrer App gibt, können Sie versuchen, diese Einstellungen mit den folgenden ADB-Befehlen:

# 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

Ihr Spiel sieht anders aus, wenn Sie es über AGI starten, während Sie einen Frame-Profil-Trace erstellen

Um einen Frame-Profil-Trace zu erstellen, fängt AGI die Grafik-API-Aufrufe ab, die vom was sich auf das Rendering des Spiels auswirken kann.

AGI erfasst Vulkan-Aufrufe. Für OpenGL ES-Spiele benötigt AGI ANGLE zum Übersetzen von OpenGL ES zu Vulkan übertragen. Wenn Ihr Spiel anders aussieht, wenn z.B. einige Farben nicht Ihren Erwartungen entsprechen, über AGI starten, ist es wahrscheinlich ein Fehler in AGI oder ANGLE. So können wir die Ursache des Problems besser nachvollziehen: versuchen Sie Folgendes.

Vulkan-Spiele: Trace mit allen unterstützten Vulkan-Erweiterungen

Mit der Tracing-Option Unbekannte Erweiterungen einschließen wird gesteuert, ob AGI enthalten nicht unterstützte Vulkan-Erweiterungen. (Durchsuchen Liste der unterstützten Erweiterungen)

Wenn in Ihrer App eine Erweiterung verwendet wird, die nicht von AGI unterstützt wird, und unerwünschtes Verhalten, einschließlich geringfügiger Fehler oder Abstürze, bei der Wiedergabe Trace.

Versuchen Sie, diese Option zu aktivieren, und starten Sie dann einen anderen Frame-Profiler-Trace. Wenn das Spiel wie erwartet angezeigt wird und die Option aktiviert ist, kann für das Spiel ein Vulkan die nicht von AGI unterstützt wird.

OpenGL ES-Spiele: nur mit ANGLE laufen

Du kannst dein OpenGL ES-Spiel mit ANGLE, aber ohne AGI ausführen, um zu sehen, auf ein Problem in ANGLE zurückzuführen ist.

Wenn du bereits versucht hast, einen Frame-Profil-Trace deines OpenGL ES zu erstellen dann hat AGI ANGLE bereits auf Ihrem Gerät installiert. Das ANGLE-Paket, das von AGI heißt org.chromium.angle.agi.

Mit den folgenden Befehlen können Sie erzwingen, dass Ihr Spiel in ANGLE ausgeführt wird:

# 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

Wenn das Spiel mit diesen Einstellungen anders aussieht, liegt wahrscheinlich ein Fehler in ANGLE und nicht AGI. Wenn das Spiel mit diesen Einstellungen korrekt aussieht, ist es wahrscheinlich ein Fehler in AGI.

Sie können AGI-Programmfehler melden, indem Sie ein GitHub-Problem