इस विषय में, Android जीपीयू इंस्पेक्टर का इस्तेमाल करते समय होने वाली आम समस्याओं को ठीक करने का तरीका बताया गया है (एजीआई) .
एजीआई की सेटिंग रीसेट की जा रही हैं
एजीआई, ~/.agic
फ़ाइल में अपनी सेटिंग सेव करता है.
इस फ़ाइल को हटाने से, एजीआई की सभी सेटिंग मिट जाएंगी. इनमें, एजीआई की सूची भी शामिल है
हाल ही में खोले गए ट्रेस और डिवाइस की पुष्टि के नतीजे.
कुछ डिवाइसों पर एजीआई काम नहीं कर रहा है
कृपया पक्का करें कि आपका सेटअप इन सभी ज़रूरी शर्तों को पूरा करता हो ज़रूरी शर्तें.
इनसे भी मदद मिल सकती है:
ADB पर डिवाइस से इंटरैक्ट करने वाले किसी भी प्रोग्राम को बंद करें, जैसे कि Android स्टूडियो.
Stay awake
विकल्प (Android पर 'डेवलपर के लिए सेटिंग और टूल' में जाकर) को चालू करके इससे स्लीप मोड की वजह से डिवाइस की स्क्रीन बंद होने पर आने वाली समस्याओं को रोकने में मदद मिलती है.
सिस्टम प्रोफ़ाइलर, OpenGL ES गेम के लिए जीपीयू गतिविधि की रिपोर्ट नहीं करता
फ़िलहाल, OpenGL ES को ट्रेस करने पर सिर्फ़ जीपीयू काउंटर काम करते हैं का इस्तेमाल करें. OpenGL ES ऐप्लिकेशन के लिए जीपीयू गतिविधि की जानकारी चालू है डेवलपमेंट.
Vulkan गेम में फ़्रेम प्रोफ़ाइलर काम नहीं कर रहा
सबसे पहले यह पुष्टि करें कि आपका गेम, Vulkan का सही तरीके से इस्तेमाल करता है. इसका इस्तेमाल करें Vulkan की पुष्टि करने वाली लेयर और यह पक्का करें कि आपके गेम में कोई गड़बड़ी या चेतावनी न हो.
अगर Vulkan की पुष्टि करने में कोई गड़बड़ी होती है, तो एजीआई फ़्रेम प्रोफ़ाइलर की उम्मीद नहीं की जाती है काम करता है.
फ़्रेम प्रोफ़ाइलर ट्रेस बनाते समय गेम में कोई गड़बड़ी हुई
अगर गेम एजीआई के बिना चलता है, लेकिन फ़्रेम बनाते समय नहीं चलता प्रोफ़ाइल ट्रेस करने की सुविधा चालू होती है, तो हो सकता है कि गेम शुरू होने के दौरान कोई दूसरी प्रोसेस शुरू हो रही हो क्रम. ऐसी स्थिति में, आपको ट्रेस करने के लिए प्रोसेस का नाम बताना होगा "प्रोसेस का नाम" फ़ील्ड को ट्रेस करने के विकल्पों में.
इस समस्या का पता लगाने के लिए, ट्रेस बनाते समय Logcat आउटपुट की जांच करें और पुष्टि करें कि क्या कोई अलग प्रोसेस शुरू हो रही है:
# 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
ज़्यादातर गेम में सिर्फ़ एक प्रोसेस होती है. ऊपर दिए गए उदाहरण में बताया गया है कि गेम में ऐसा गेम जिसमें एक से ज़्यादा प्रोसेस हैं.
गेम, com.example.mygame
नाम की मुख्य प्रोसेस से शुरू होता है. इसके बाद,
नई प्रक्रिया का नाम com.example.mygame:GameProcess
है.
अगर गेम की असल रेंडरिंग दूसरी प्रोसेस में होती है, तो आपको बताना होगा कि
एजीआई को बताएं कि यह वही प्रोसेस है जिसे आपको ट्रेस करना है.
इसके लिए, Process name
फ़ील्ड में प्रोसेस का नाम डालें
ट्रेस करने के विकल्प का डायलॉग बॉक्स.
AGI का इस्तेमाल करने के बाद गेम में कोई गड़बड़ी हुई
अगर कोई ट्रेस ठीक से खत्म नहीं होता है, तो एजीआई Android की कुछ सेटिंग को ऐसी स्थिति जो ऐप्लिकेशन के आने वाले समय में चलने में रुकावट डाल सकती है. ये सेटिंग हैं:
Vulkan लेयर से जुड़ी सेटिंग:
enable_gpu_debug_layers
gpu_debug_app
gpu_debug_layers
gpu_debug_layer_app
ANGLE से जुड़ी सेटिंग:
angle_debug_package
angle_gl_driver_selection_values
angle_gl_driver_selection_pkgs
अगर एजीआई का इस्तेमाल करने के बाद, आपके ऐप्लिकेशन में कोई समस्या आती है, तो उसे मिटाएं सेटिंग तय करने में मदद मिलेगी.
# 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
फ़्रेम प्रोफ़ाइल ट्रेस बनाते समय, एजीआई के ज़रिए अपना गेम लॉन्च करने पर, आपका गेम अलग दिखने लगता है
फ़्रेम प्रोफ़ाइल ट्रेस बनाने के लिए, AGI, जिससे गेम की रेंडरिंग पर असर पड़ सकता है.
एजीआई, Vulkan कॉल कैप्चर करता है. OpenGL ES गेम के लिए, AGI OpenGL ES का अनुवाद करने के लिए ANGLE को Vulkan के लिए धन्यवाद. अगर आपका गेम अलग दिखता है (उदाहरण के लिए, कुछ रंग आपकी उम्मीद के मुताबिक नहीं हैं), एजीआई के ज़रिए लॉन्च किया हो, तो हो सकता है कि AGI या ANGLE में कोई गड़बड़ी हो. समस्या की असल वजह को बेहतर तरीके से समझने में हमारी मदद करने के लिए, नीचे दिया गया तरीका आज़माएं.
Vulkan गेम: इस्तेमाल किए जा सकने वाले सभी Vulkan एक्सटेंशन के साथ ट्रेस करें
अनजान एक्सटेंशन को शामिल करें ट्रेस करने के विकल्प से यह कंट्रोल किया जाता है कि एजीआई को शामिल Vulkan एक्सटेंशन हैं, जिनका यह समर्थन नहीं करता. (ब्राउज़ करें इस्तेमाल किए जा सकने वाले एक्सटेंशन की सूची देखें.)
अगर आपका ऐप्लिकेशन किसी ऐसे एक्सटेंशन का इस्तेमाल करता है जो एजीआई के साथ काम नहीं करता है, तो आपको कोई अनचाहा व्यवहार, जिसमें छोटी-मोटी गड़बड़ियां या क्रैश होना शामिल है. ट्रेस करें.
इस विकल्प को चालू करके देखें. इसके बाद, दूसरा फ़्रेम प्रोफ़ाइलर ट्रेस लॉन्च करें. अगर गेम में विकल्प चालू होने पर, उम्मीद के मुताबिक डिसप्ले दिखता है. गेम, Vulkan पर निर्भर हो सकता है ऐसा एक्सटेंशन जो AGI के साथ काम नहीं करता.
OpenGL ES गेम: सिर्फ़ ANGLE का इस्तेमाल करें
OpenGL ES गेम को ANGLE के साथ चलाया जा सकता है, लेकिन AGI के बिना भी यह देखा जा सकता है कि यह गेम गलत है या नहीं रेंडरिंग में कोई समस्या ANGLE में आ रही है.
अगर आपने पहले ही अपने OpenGL ES का फ़्रेम प्रोफ़ाइल ट्रेस बनाने की कोशिश की है
तो AGI ने आपके डिवाइस पर ANGLE को पहले ही इंस्टॉल कर लिया है. ANGLE पैकेज का इस्तेमाल किया गया
एजीआई का नाम org.chromium.angle.agi
है.
अपने गेम को ANGLE पर ज़बरदस्ती चलाने के लिए, इन निर्देशों का इस्तेमाल करें:
# 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
अगर इन सेटिंग में गेम अलग तरीके से दिखता है, तो हो सकता है कि इसमें कोई गड़बड़ी हो ANGLE, AGI नहीं. अगर इन सेटिंग में गेम सही, लेकिन दिखता है AGI ट्रेस बनाते समय अलग हैं, तो शायद AGI में कोई गड़बड़ी हो.
एजीआई गड़बड़ी की शिकायत करने के लिए, GitHub से जुड़ी समस्या.