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