Android GPU Inspector (AGI) ব্যবহার করার সময় সাধারণ সমস্যা কীভাবে সমাধান করবেন তা এই বিষয়ে বর্ণনা করা হয়েছে।
AGI সেটিংস রিসেট করা হচ্ছে
AGI তার সেটিংস ~/.agic ফাইলে সেভ করে।
এই ফাইলটি সরিয়ে দিলে, সম্প্রতি খোলা ট্রেসের তালিকা ও ডিভাইস যাচাইকরণের ফলাফল সহ
সব AGI সেটিংস মুছে যায়।
কিছু ডিভাইসে AGI কাজ করে না
আপনার সেট-আপ সব প্রয়োজনীয়তা পূরণ করছে কিনা তা ভালো করে দেখে নিন।
এছাড়াও, নিম্নলিখিত বিষয়গুলি সাহায্য করতে পারে:
ADB-এর মাধ্যমে ডিভাইসের সাথে ইন্টার্যাক্ট করতে পারে এমন যেকোনও প্রোগ্রাম বন্ধ করুন, যেমন Android Studio।
স্লিপ মোডের কারণে ডিভাইসের স্ক্রিন বন্ধ হয়ে গেলে যে সমস্যা হয় তা প্রতিরোধ করতে
Stay awakeবিকল্প (Android-এ ডেভেলপার বিকল্পের অধীনে) চালু করুন।
সিস্টেম প্রোফাইলার OpenGL ES গেমের জন্য GPU অ্যাক্টিভিটি রিপোর্ট করে না
বর্তমানে, আপনি OpenGL ES অ্যাপ্লিকেশন ট্রেস করলে, শুধুমাত্র GPU কাউন্টার কাজ করে। OpenGL ES অ্যাপ্লিকেশনের জন্য GPU অ্যাক্টিভিটি সংক্রান্ত তথ্য সক্রিয়ভাবে ডেভেলপ করা হচ্ছে।
কিছু Vulkan গেমে ফ্রেম প্রোফাইলার কাজ করে না
প্রথমে যাচাই করে নিন যে আপনার গেম Vulkan সঠিকভাবে ব্যবহার করছে কিনা। Vulkan ভ্যালিডেশন লেয়ার ব্যবহার করুন এবং আপনার গেমে কোনও সমস্যা বা সতর্কতা দেখানো হচ্ছে না তা নিশ্চিত করুন।
Vulkan যাচাইকরণ সংক্রান্ত কোনও সমস্যা থাকলে, AGI ফ্রেম প্রোফাইলার কাজ করবে বলে আশা করা হয় না।
ফ্রেম প্রোফাইলার ট্রেস তৈরি করার সময় গেম কাজ করেনি
AGI ছাড়া গেমটি সফলভাবে চললেও ফ্রেম প্রোফাইল ট্রেস তৈরি করার সময় না চললে, গেমটি স্টার্টআপ সিকোয়েন্সের সময় অন্য কোনও প্রসেস ফর্ক করতে পারে। সেক্ষেত্রে, ট্রেস বিকল্পের "প্রসেসের নাম" ফিল্ডে ট্রেস করার জন্য প্রসেসের নাম উল্লেখ করতে হবে।
এই সমস্যা শনাক্ত করতে, আপনি ট্রেস তৈরি করার সময় 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 নামের একটি নতুন প্রসেস ফর্ক করে।
দ্বিতীয় প্রসেসে আসল গেম রেন্ডারিং হলে, আপনাকে অবশ্যই
AGI-কে জানাতে হবে যে আপনি এই প্রসেসটি ট্রেস করতে চান।
আপনি ট্রেস বিকল্প ডায়ালগের Process name ফিল্ডে প্রসেসের নাম লিখে এটি করতে পারবেন।
AGI ব্যবহার করার পরে গেম কাজ করেনি
কোনও ট্রেস সঠিকভাবে শেষ না হলে, AGI কিছু Android সেটিংস এমন অবস্থায় ছেড়ে দিতে পারে যা অ্যাপের পরবর্তী রানকে বাধাগ্রস্ত করতে পারে। এই সেটিংসগুলি হল:
Vulkan লেয়ার সম্পর্কিত সেটিংস:
enable_gpu_debug_layersgpu_debug_appgpu_debug_layersgpu_debug_layer_app
ANGLE সম্পর্কিত সেটিংস:
angle_debug_packageangle_gl_driver_selection_valuesangle_gl_driver_selection_pkgs
AGI ব্যবহার করার পরে আপনার অ্যাপে কোনও সমস্যা হলে, আপনি নিম্নলিখিত 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
ফ্রেম প্রোফাইল ট্রেস তৈরি করার সময় AGI-এর মাধ্যমে লঞ্চ করলে আপনার গেমটি অন্যরকম দেখায়
ফ্রেম প্রোফাইল ট্রেস তৈরি করতে, AGI গেমের মাধ্যমে করা গ্রাফিক্স API কল ইন্টারসেপ্ট করে, যা গেম রেন্ডারিংয়ে প্রভাব ফেলতে পারে।
AGI, Vulkan কল ক্যাপচার করে। OpenGL ES গেমের জন্য, OpenGL ES-কে Vulkan-এ অনুবাদ করতে, AGI ANGLE-এর উপর নির্ভর করে। AGI-এর মাধ্যমে গেম লঞ্চ করার সময় যদি গেমটি অন্যরকম দেখায় (যেমন, কিছু রঙ আপনার প্রত্যাশা অনুযায়ী না হয়), তাহলে সম্ভবত AGI বা ANGLE-এ কোনও সমস্যা আছে। আপনি নিম্নলিখিত ধাপগুলি অনুসরণ করে সমস্যার মূল কারণটি আরও ভালভাবে বুঝতে আমাদের সাহায্য করতে পারেন।
Vulkan গেম: কাজ করে এমন সব Vulkan এক্সটেনশন সহ ট্রেস করুন
অজানা এক্সটেনশন অন্তর্ভুক্ত করুন ট্রেসিং বিকল্পটি নিয়ন্ত্রণ করে যে AGI-এর Vulkan এক্সটেনশন অন্তর্ভুক্ত করা উচিত কিনা যা এটি সাপোর্ট করে না। (কাজ করে এমন এক্সটেনশনের তালিকা ব্রাউজ করুন।)
আপনার অ্যাপ যদি এমন কোনও এক্সটেনশন ব্যবহার করে যা AGI-এর সাথে কাজ করে না, তাহলে ট্রেস রিপ্লে করার সময় আপনি সূক্ষ্ম ত্রুটি বা ক্র্যাশ সহ অবাঞ্ছিত আচরণ দেখতে পেতে পারেন।
এই বিকল্প চালু করে দেখুন, তারপর অন্য ফ্রেম প্রোফাইলার ট্রেস লঞ্চ করুন। বিকল্পটি চালু করার পরে গেমটি প্রত্যাশিতভাবে দেখালে, গেমটি Vulkan এক্সটেনশনের উপর নির্ভর করতে পারে যা AGI-তে কাজ করে না।
OpenGL ES গেম: শুধুমাত্র ANGLE-এর মাধ্যমে চালান
ভুল রেন্ডারিং ANGLE-এর কোনও সমস্যার কারণে হচ্ছে কিনা তা দেখতে, আপনি AGI ছাড়াই ANGLE-এর মাধ্যমে OpenGL ES গেম চালাতে পারেন।
আপনি যদি আগে থেকেই আপনার OpenGL ES গেমের ফ্রেম প্রোফাইল ট্রেস তৈরি করার চেষ্টা করে থাকেন, তাহলে AGI আপনার ডিভাইসে আগে থেকেই ANGLE ইনস্টল করেছে। AGI-এর ব্যবহার করা 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 সমস্যা তৈরি করে AGI বাগ সম্পর্কে অভিযোগ জানাতে পারবেন।