AGI sorunlarını giderme

Bu konuda, Android GPU Inspector (AGI) kullanılırken sık karşılaşılan sorunların nasıl düzeltileceği açıklanmaktadır.

AGI ayarlarını sıfırlama

AGI, ayarlarını ~/.agic dosyasında depolar. Bu dosyanın kaldırılması, son açılan izlerin listesi ve cihaz doğrulama sonuçları da dahil tüm AGI ayarlarını siler.

Bazı cihazlarda AGI başarısız oluyor

Lütfen kurulumunuzun tüm gereksinimleri karşıladığından emin olun.

Aşağıdakiler de yardımcı olabilir:

  • Android Studio gibi ADB üzerinden cihazla etkileşim kurabilecek programları durdurun.

  • Uyku modu nedeniyle cihaz ekranı kapandığında ortaya çıkabilecek sorunları önlemek için Stay awake seçeneğini (Android'de Geliştirici seçenekleri altında) etkinleştirin.

Sistem profil oluşturucusu, OpenGL ES oyunları için GPU etkinliğini bildirmiyor

Şu anda bir OpenGL ES uygulamasını izlerken yalnızca GPU sayaçları desteklenmektedir. OpenGL ES uygulamaları için GPU etkinliği bilgileri, aktif geliştirme aşamasındadır.

Bazı Vulkan oyunlarında çerçeve profil aracı başarısız oluyor

Doğrulamanız gereken ilk şey, oyununuzun Vulkan'ı doğru bir şekilde kullanıp kullanmadığıdır. Vulkan doğrulama katmanını kullanın ve oyununuzun hata veya uyarı vermediğinden emin olun.

Herhangi bir Vulkan doğrulama hatası varsa AGI çerçeve profil aracının çalışması beklenmez.

Çerçeve profil aracı izlemesi oluşturulurken oyun hatası oluştu

Oyun, AGI olmadan başarılı bir şekilde çalışıyor ancak çerçeve profil izlemesi oluştururken çalıştırılamıyorsa başlangıç sırasında farklı bir işlemi çatallıyor olabilir. Bu durumda, izlenecek işlemin adını izleme seçeneklerindeki "İşlem adı" alanında belirtmeniz gerekir.

Bu sorunu tespit etmek için, bir iz oluştururken logcat çıktısını kontrol edip farklı bir işlemin başlayıp başlamadığını doğrulayabilirsiniz:

# 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

Çoğu oyunun yalnızca bir süreci vardır. Yukarıdaki örnekte, birden fazla işlem içeren bir oyunda neler bekleneceği gösterilmektedir.

Oyun, com.example.mygame adlı ana süreçte başlar ve ardından com.example.mygame:GameProcess adlı yeni bir süreci çatallar. Gerçek oyun oluşturma ikinci süreçte gerçekleşirse AGI'ye izlemek istediğiniz işlemin bu olduğunu bildirmeniz gerekir. Bunu, izleme seçeneği iletişim kutusundaki Process name alanına işlemin adını girerek yapabilirsiniz.

AGI kullanıldıktan sonra oyun hatası

Bir iz düzgün bir şekilde sonlandırılmazsa AGI, bazı Android ayarlarını uygulamanın sonraki çalıştırmalarını kesintiye uğratabilecek bir durumda bırakabilir. Bu ayarlar şunlardır:

  • Vulkan katmanlarıyla ilgili ayarlar:

    • enable_gpu_debug_layers

    • gpu_debug_app

    • gpu_debug_layers

    • gpu_debug_layer_app

  • ANGLE ile ilgili ayarlar:

    • angle_debug_package

    • angle_gl_driver_selection_values

    • angle_gl_driver_selection_pkgs

AGI'yi kullandıktan sonra uygulamanızda sorun olursa bu ayarları aşağıdaki adb komutlarıyla temizlemeyi deneyebilirsiniz:

# 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

Oyununuz, AGI aracılığıyla başlatılırken kare profil izlemesi oluşturulurken farklı görünüyor

AGI, kare profili izi oluşturmak için oyun tarafından yapılan grafik API çağrılarına müdahale eder. Bu durum, oyun oluşturma işlemlerini etkileyebilir.

AGI, Vulkan çağrılarını yakalar. OpenGL ES oyunlarında AGI, OpenGL ES'yi Vulkan'a çevirmek için ANGLE'dan yararlanır. Oyununuzu AGI aracılığıyla başlattığınızda farklı görünüyorsa (ör. bazı renkler beklediğinizden farklıysa) bu muhtemelen AGI veya ANGLE'daki bir hatadır. Aşağıdakileri deneyerek sorunun temel nedenini daha iyi anlamamıza yardımcı olabilirsiniz.

Vulkan oyunları: Tüm Vulkan uzantılarıyla birlikte izleme

Bilinmeyen Uzantıları Dahil Et izleme seçeneği, AGI'nin desteklemediği Vulkan uzantılarını içermesi gerekip gerekmediğini kontrol eder. (Desteklenen uzantıların listesine göz atın.)

Uygulamanız AGI tarafından desteklenmeyen bir uzantı kullanıyorsa izlemeyi tekrar oynatırken küçük hatalar veya kilitlenmeler gibi istenmeyen davranışlarla karşılaşabilirsiniz.

Bu seçeneği etkinleştirip başka bir çerçeve profil aracı izlemesi başlatın. Bu seçenek etkinken oyun beklendiği gibi görüntüleniyorsa oyun, AGI tarafından desteklenmeyen bir Vulkan uzantısı kullanıyor olabilir.

OpenGL ES oyunları: Yalnızca ANGLE ile çalışır

Hatalı oluşturma işleminin ANGLE'taki bir sorundan kaynaklanıp kaynaklanmadığını görmek için OpenGL ES oyununuzu ANGLE ile ancak AGI olmadan çalıştırabilirsiniz.

OpenGL ES oyununuzun kare profili izlemeyi oluşturmayı denediyseniz AGI, cihazınıza zaten ANGLE'ı yüklemiş demektir. AGI tarafından kullanılan ANGLE paketi org.chromium.angle.agi olarak adlandırılmıştır.

Oyununuzu ANGLE'da çalışmaya zorlamak için aşağıdaki komutları kullanın:

# 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

Oyun bu ayarlarla farklı görünüyorsa sorun AGI değil, ANGLE'daki bir hata olabilir. Oyun, bu ayarlarla doğru görünüyorsa ancak AGI izlemesi oluştururken farklı görünüyorsa sorun büyük olasılıkla AGI'de bir hatadan kaynaklanmaktadır.

AGI hatalarını GitHub sorunu oluşturarak bildirebilirsiniz.