হার্ডওয়্যার পারফর্ম্যান্স অপ্টিমাইজ করার জন্য পারফর্ম্যান্স টিউনিং সম্পর্কে এই ডকুমেন্টে বর্ণনা করা হয়েছে।
OpenGLRenderer (libhwui) প্রপার্টি
এই ডকুমেন্ট Android-এর 2D হার্ডওয়্যার-অ্যাক্সিলারেটেড রেন্ডারিং পাইপলাইন
নিয়ন্ত্রণ করার প্রপার্টি বর্ণনা করে। device.mk-এ এই প্রপার্টিগুলি
PRODUCT_PROPERTY_OVERRIDES হিসেবে সেট করুন।
সব Android ভার্সনের জন্য প্রপার্টি
| প্রপার্টি | ধরন | ডিফল্ট ভ্যালু | বর্ণনা |
|---|---|---|---|
ro.zygote.disable_gl_preload |
boolean |
false |
বুট করার সময় Zygote-এ EGL/GL ড্রাইভারের প্রি-লোডিং চালু বা বন্ধ করে।
এই প্রপার্টি false হলে, Zygote eglGetDisplay(EGL_DEFAULT_DISPLAY) ইনভোক করে GL ড্রাইভার প্রি-লোড করে।
এটি Zygote-এ ডায়নামিক লাইব্রেরি কোড লোড করে যাতে অন্যান্য সব প্রসেসের সাথে এটি শেয়ার করা যায়। কোনও
ড্রাইভার শেয়ার করার সুবিধা না দিলে, এই প্রপার্টিকে true হিসেবে সেট করুন। |
Android 8.0 ও এর আগের যেকোনও ভার্সনের জন্য প্রপার্টি
| প্রপার্টি | ধরন | ডিফল্ট ভ্যালু | বর্ণনা |
|---|---|---|---|
ro.hwui.disable_scissor_opt |
boolean |
false |
সিজর অপ্টিমাইজেশন চালু বা বন্ধ করে। এইসব ভ্যালু গ্রহণ করা হয়:
বন্ধ করা থাকলে, OpenGLRenderer, GL সিজার টেস্ট চালু রাখে এবং প্রয়োজনমতো সিজার রেক্ট পরিবর্তন করে। কিছু GPU (যেমন, SGX 540) সিজর টেস্ট ঘন ঘন চালু বা বন্ধ করার চেয়ে সিজর রেকট ঘন ঘন পরিবর্তন করলে আরও ভালো পারফর্ম করে। |
ro.hwui.texture_cache_size |
float |
24 |
প্রতিটি প্রসেসের টেক্সচার ক্যাশের সাইজ মেগাবাইটে নির্দিষ্ট করে। আমরা সাজেস্ট করি যে এমন একটি ক্যাশে ব্যবহার করুন যা ৩২-বিট টেক্সচারের একাধিক স্ক্রিন ধরে রাখতে পারে। যেমন, ১২৮০x৮০০ ডিসপ্লেতে, একটি ফুল স্ক্রিন বাফার প্রায় ৪ এমবি ব্যবহার করে, তাই ক্যাশে অন্তত ২০ এমবি হতে হবে। |
ro.hwui.layer_cache_size |
float |
16 |
প্রতিটি প্রসেস লেয়ার ক্যাশের সাইজ মেগাবাইটে নির্ধারণ করে। আমরা ৩২ বিটে স্ক্রিনের চার গুণ ধরে রাখার জন্য যথেষ্ট বড় ক্যাশে ব্যবহার করার সাজেস্ট করি। যেমন, ১২৮০x৮০০ ডিসপ্লেতে, একটি ফুল স্ক্রিন বাফার প্রায় ৪ এমবি ব্যবহার করে, তাই ক্যাশে অন্তত ১৬ এমবি হতে হবে। |
ro.hwui.gradient_cache_size |
float |
0.5 |
প্রতি-প্রসেস গ্রেডিয়েন্ট ক্যাশের সাইজ মেগাবাইটে নির্ধারণ করে। A একটি গ্রেডিয়েন্ট সাধারণত ১ কেবি থেকে ৪ কেবি মেমরি দখল করে। আমরা এমন একটি ক্যাশে ব্যবহার করার সাজেশন দিই যা অন্তত ১২টি গ্রেডিয়েন্ট ধরে রাখতে পারে। |
ro.hwui.patch_cache_size |
integer |
128 |
প্রতিটি প্রসেস পিছু ৯-প্যাচ ক্যাশের সাইজ কিলোবাইটে নির্ধারণ করে। এই ক্যাশে শুধুমাত্র ভার্টেক্স ডেটা ধরে রাখে, তাই আপনি এটি ছোট রাখতে পারেন। প্রতিটি ভার্টেক্সে ৪টি ফ্লোট বা ১৬ বাইট থাকে। |
ro.hwui.path_cache_size |
float |
4 |
প্রতিটি প্রসেস পাথ ক্যাশের সাইজ মেগাবাইটে নির্ধারণ করে। আমরা এমন ক্যাশে ব্যবহার করার সাজেশন দিই যা অন্তত ৩২-বিট টেক্সচারের একটি স্ক্রিন ধরে রাখার জন্য যথেষ্ট বড়। যেমন, ১২৮০x৮০০ ডিসপ্লেতে, ফুল স্ক্রিন বাফার প্রায় ৪ এমবি ব্যবহার করে, তাই ক্যাশে অন্তত ৪ এমবি হতে হবে। |
ro.hwui.shape_cache_size |
float |
1 |
প্রতিটি প্রসেস শেপ ক্যাশের সাইজ মেগাবাইটে নির্ধারণ করে। এই ভ্যালু বৃত্ত এবং গোলাকার কোণযুক্ত আয়তক্ষেত্রের মতো বিভিন্ন ক্যাশে ব্যবহার করে। আমরা এমন একটি ক্যাশে ব্যবহার করার পরামর্শ দিই যা অন্তত একটি ৮-বিট স্ক্রিন ধরে রাখতে পারে। যেমন, ১২৮০x৮০০ ডিসপ্লেতে, একটি ফুল স্ক্রিন বাফার প্রায় ১ এমবি ব্যবহার করে, তাই ক্যাশে অন্তত ১ এমবি হতে হবে। |
ro.hwui.drop_shadow_cache_size |
float |
2 |
প্রতিটি প্রসেসের টেক্সট ড্রপ শ্যাডো ক্যাশের সাইজ মেগাবাইটে নির্দিষ্ট করে। আমরা ৮-বিট টেক্সচারের দুটি স্ক্রিন ধরে রাখার জন্য যথেষ্ট বড় ক্যাশে ব্যবহার করার সাজেস্ট করি। যেমন, ১২৮০x৮০০ ডিসপ্লেতে, ফুল স্ক্রিন বাফার প্রায় ১ এমবি ব্যবহার করে, তাই ক্যাশে অন্তত ২ এমবি হতে হবে। |
ro.hwui.r_buffer_cache_size |
float |
2 |
প্রতি-প্রসেস রেন্ডার বাফার ক্যাশের সাইজ মেগাবাইটে নির্ধারণ করে। আমরা সাজেস্ট করি যে এমন একটি ক্যাশে ব্যবহার করুন যা ৮ বিটে স্ক্রিনের দ্বিগুণ ডেটা ধরে রাখতে পারে। যেমন, ১২৮০x৮০০ ডিসপ্লেতে, একটি ফুল স্ক্রিন বাফার প্রায় ১ এমবি ব্যবহার করে, তাই ক্যাশে অন্তত ২ এমবি হতে হবে। ডিভাইস ৪-বিট বা ১-বিট স্টেনসিল বাফার সাপোর্ট করলে ক্যাশে ছোট হতে পারে। |
ro.hwui.texture_cache_flush_rate |
float |
0.6 |
মেমরি ফ্ল্যাশ করার পরে টেক্সচার ক্যাশে কত শতাংশ রেখে দেওয়া হবে তা নির্ধারণ করে। সিস্টেম যখন সব অ্যাপ্লিকেশন জুড়ে মেমরি রিক্লেইম করতে চায়, তখন মেমরি ফ্ল্যাশ ট্রিগার করে। এই ধরনের পরিস্থিতিতে আমরা প্রায় ৫০% ক্যাশে রিলিজ করার সাজেস্ট করি। |
ro.hwui.text_small_cache_width |
integer |
1024 |
ডিফল্ট ফন্ট ক্যাশের প্রস্থ পিক্সেলে নির্ধারণ করে। সর্বোচ্চ সীমা GPU কত দ্রুত টেক্সচার আপলোড করতে পারে তার উপর নির্ভর করে। আমরা কমপক্ষে ১০২৪ পিক্সেল কিন্তু সর্বাধিক ২০৪৮ পিক্সেল ব্যবহার করার সাজেশন দিই। এছাড়াও, দুইয়ের ঘাত ভ্যালু ব্যবহার করুন। |
ro.hwui.text_small_cache_height |
integer |
256 |
ডিফল্ট ফন্ট ক্যাশের উচ্চতা পিক্সেলে নির্ধারণ করে। সর্বোচ্চ সীমা GPU কত দ্রুত টেক্সচার আপলোড করতে পারে তার উপর নির্ভর করে। আমরা সাজেস্ট করি যে অন্তত ২৫৬ পিক্সেল কিন্তু সর্বাধিক ১০২৪ পিক্সেল ব্যবহার করুন। |
ro.hwui.text_large_cache_width |
integer |
2048 |
বড় ফন্ট ক্যাশের প্রস্থ পিক্সেলে নির্ধারণ করে। ডিফল্ট ফন্ট ক্যাশে ফিট করার জন্য খুব বড় গ্লিফের জন্য এই ক্যাশে ব্যবহার করা হয়। সর্বোচ্চ সীমা GPU কত দ্রুত টেক্সচার আপলোড করতে পারে তার উপর নির্ভর করে। আমরা সাজেস্ট করি যে কমপক্ষে ২০৪৮ পিক্সেল এবং সর্বাধিক ৪০৯৬ পিক্সেল ব্যবহার করুন। এছাড়াও, পাওয়ার-অফ-টু ভ্যালু ব্যবহার করুন। |
ro.hwui.text_large_cache_height |
integer |
512 |
বড় ফন্ট ক্যাশের উচ্চতা পিক্সেলে নির্ধারণ করে। ডিফল্ট ফন্ট ক্যাশে ফিট করার জন্য খুব বড় গ্লিফের জন্য বড় ফন্ট ক্যাশে ব্যবহার করা হয়। সর্বোচ্চ সীমা GPU কত দ্রুত টেক্সচার আপলোড করতে পারে তার উপর নির্ভর করে। আমরা সাজেস্ট করি যে অন্তত ৫১২ পিক্সেল কিন্তু সর্বাধিক ২০৪৮ পিক্সেল ব্যবহার করুন। এছাড়াও, পাওয়ার-অফ-টু ভ্যালু ব্যবহার করুন। |
hwui.text_gamma_correction |
string |
lookup |
টেক্সট গামা সংশোধন করার টেকনিক বেছে নেয়। চারটি সম্ভাব্য
বিকল্প আছে:
lookup টেকনিক ব্যবহার করার সাজেশন দিই, যা কোয়ালিটি, স্পিড ও মেমরির ব্যবহারের ক্ষেত্রে
একটি ভালো সমঝোতা অফার করে।
|
hwui.text_gamma |
float |
1.4 |
টেক্সট গামা কারেকশনের জন্য ব্যবহৃত গামা ভ্যালু নির্ধারণ করে। ডিভাইসের ডিসপ্লের উপর ভিত্তি করে আপনি এই ভ্যালু অ্যাডজাস্ট করতে পারবেন। |
hwui.text_gamma.black_threshold |
integer |
64 |
লুমিন্যান্স থ্রেশহোল্ড নির্ধারণ করে যার নিচে ব্ল্যাক গামা কারেকশন প্রয়োগ করা হয়। মান অবশ্যই ০-২৫৫-এর মধ্যে হতে হবে। |
hwui.text_gamma.white_threshold |
integer |
192 |
যেসব ক্ষেত্রে সাদা গামা কারেকশন প্রয়োগ করা হয়, সেগুলির লুমিন্যান্স থ্রেশহোল্ড নির্ধারণ করে। মান অবশ্যই ০-২৫৫-এর মধ্যে হতে হবে। |
hwui.use_gpu_pixel_buffers |
boolean |
true |
OpenGL ES 3.0 হার্ডওয়্যারে PBO-এর ব্যবহার চালু বা বন্ধ করে। রেন্ডারার অ্যাসিঙ্ক্রোনাস টেক্সচার আপলোড করার জন্য PBO ব্যবহার করে, বিশেষ করে ফন্ট ক্যাশের জন্য। এই প্রপার্টি সবসময় চালু থাকতে হবে, তবে PBO-এর কারণে ডেটা দুর্নীতি বা খারাপ পারফর্ম্যান্স হলে, ব্রিং-আপ বা ডেভেলপমেন্টের সময় আপনি এটি বন্ধ করে দিতে পারেন। এই কারণে প্রপার্টিটি রিড-অনলি নয়। |