OpenGLRenderer কনফিগারেশন

এই নথিটি পারফরম্যান্স টিউনিং বর্ণনা করে যা আপনি আপনার হার্ডওয়্যার থেকে সবচেয়ে বেশি পেতে পারেন।

OpenGLRenderer (libhwui) বৈশিষ্ট্য

এই দস্তাবেজটি সমস্ত বৈশিষ্ট্য তালিকাভুক্ত করে যা আপনি Android এর 2D হার্ডওয়্যার ত্বরিত রেন্ডারিং পাইপলাইন নিয়ন্ত্রণ করতে ব্যবহার করতে পারেন৷ device.mk এ এই বৈশিষ্ট্যগুলিকে PRODUCT_PROPERTY_OVERRIDES হিসাবে সেট করুন।

সমস্ত অ্যান্ড্রয়েড সংস্করণের জন্য বৈশিষ্ট্য

সম্পত্তিটাইপডিফল্ট মানবর্ণনা
ro.zygote.disable_gl_preloadbooleanfalseবুট করার সময় Zygote-এ EGL/GL ড্রাইভারের প্রিলোডিং সক্ষম/অক্ষম করতে ব্যবহৃত হয়। যখন এই বৈশিষ্ট্যটি মিথ্যাতে সেট করা হয়, তখন জাইগোট eglGetDisplay(EGL_DEFAULT_DISPLAY) চালু করে GL ড্রাইভারগুলিকে প্রিলোড করবে। লক্ষ্য হল Zygote-এ ডাইনামিক লাইব্রেরি কোড লোড করা যাতে অন্য সব প্রক্রিয়ার সাথে শেয়ার করা যায়। যদি একজন ড্রাইভার শেয়ার করা সমর্থন না করে, তাহলে এই প্রপার্টিটিকে সত্য হিসাবে সেট করুন।

অ্যান্ড্রয়েড 8.0 এবং তার নিচের জন্য বৈশিষ্ট্য

সম্পত্তিটাইপডিফল্ট মানবর্ণনা
ro.hwui.disable_scissor_optbooleanfalse

কাঁচি অপ্টিমাইজেশান সক্ষম বা অক্ষম করতে ব্যবহৃত হয়। গৃহীত মান সত্য এবং মিথ্যা. যখন কাঁচি অপ্টিমাইজেশান সক্ষম করা হয়, OpenGLRenderer GL কাঁচি পরীক্ষাকে বেছে বেছে সক্রিয় এবং নিষ্ক্রিয় করে কাঁচি ব্যবহার কমানোর চেষ্টা করে।

যখন অপ্টিমাইজেশান অক্ষম করা হয়, OpenGLRenderer GL কাঁচি পরীক্ষা সক্রিয় রাখে এবং প্রয়োজন অনুসারে কাঁচি রেক্ট পরিবর্তন করে। কিছু জিপিইউ (উদাহরণস্বরূপ, SGX 540) কাঁচি পরীক্ষাটি প্রায়শই সক্রিয় বা নিষ্ক্রিয় করার চেয়ে বেশিবার কাঁচির রেক্ট পরিবর্তন করার সময় আরও ভাল কার্য সম্পাদন করে।

ro.hwui.texture_cache_sizefloat24প্রতি প্রক্রিয়া টেক্সচার ক্যাশের আকার, মেগাবাইটে, সংজ্ঞায়িত করে। আমরা 32-বিট টেক্সচারের বেশ কয়েকটি স্ক্রিন রাখার জন্য যথেষ্ট বড় ক্যাশে ব্যবহার করার পরামর্শ দিই (উদাহরণস্বরূপ, একটি 1280x800 ডিসপ্লেতে, একটি পূর্ণ স্ক্রীন বাফার প্রায় 4 MB ব্যবহার করে তাই ক্যাশে কমপক্ষে 20 MB হওয়া উচিত।)
ro.hwui.layer_cache_sizefloat16প্রতি প্রক্রিয়া স্তর ক্যাশের আকার, মেগাবাইটে, সংজ্ঞায়িত করে। আমরা 32 বিটে 4 বার স্ক্রীন ধরে রাখার জন্য যথেষ্ট বড় ক্যাশে ব্যবহার করার পরামর্শ দিই। উদাহরণস্বরূপ, একটি 1280x800 ডিসপ্লেতে, একটি পূর্ণ স্ক্রীন বাফার প্রায় 4 MB ব্যবহার করে, তাই ক্যাশে কমপক্ষে 16 MB হওয়া উচিত।
ro.hwui.gradient_cache_size0.5floatপ্রতি প্রক্রিয়া গ্রেডিয়েন্ট ক্যাশের আকার, মেগাবাইটে, সংজ্ঞায়িত করে। একটি একক গ্রেডিয়েন্ট সাধারণত 1 থেকে 4 KB মেমরি দখল করে। কমপক্ষে বারোটি গ্রেডিয়েন্ট ধরে রাখার জন্য যথেষ্ট বড় ক্যাশে ব্যবহার করার পরামর্শ দেওয়া হয়।
ro.hwui._cache_sizeinteger128প্রতি প্রক্রিয়ায় 9-প্যাচ ক্যাশের আকার, কিলোবাইটে, সংজ্ঞায়িত করে। এই ক্যাশে শুধুমাত্র ভার্টেক্স ডেটা ধারণ করে এবং তাই ছোট রাখা যেতে পারে। প্রতিটি শীর্ষবিন্দু 4 ফ্লোট বা 16 বাইট দিয়ে তৈরি।
ro.hwui.path_cache_sizefloat4প্রতি প্রক্রিয়া পাথ ক্যাশের আকার, মেগাবাইটে, সংজ্ঞায়িত করে। আমরা 32-বিট টেক্সচারের কমপক্ষে একটি স্ক্রীন ধারণ করার জন্য যথেষ্ট বড় ক্যাশে ব্যবহার করার পরামর্শ দিয়েছি। উদাহরণস্বরূপ, একটি 1280x800 ডিসপ্লেতে, একটি পূর্ণ স্ক্রীন বাফার প্রায় 4 MB ব্যবহার করে, তাই ক্যাশে কমপক্ষে 4 MB হওয়া উচিত।
ro.hwui.shape_cache_sizefloat1প্রতি প্রক্রিয়া আকার ক্যাশে আকার, মেগাবাইটে, সংজ্ঞায়িত করে। এই মানটি বিভিন্ন ক্যাশে যেমন বৃত্ত এবং বৃত্তাকার আয়তক্ষেত্র দ্বারা ব্যবহৃত হয়। আমরা অন্তত একটি 8-বিট স্ক্রিন ধরে রাখার জন্য যথেষ্ট বড় ক্যাশে ব্যবহার করার পরামর্শ দিই। উদাহরণস্বরূপ, একটি 1280x800 ডিসপ্লেতে, একটি পূর্ণ স্ক্রীন বাফার প্রায় 1 MB ব্যবহার করে, তাই ক্যাশে কমপক্ষে 1 MB হওয়া উচিত।
ro.hwui.drop_shadow_cache_sizefloat2প্রতি প্রক্রিয়া পাঠ্য ড্রপ শ্যাডো ক্যাশের আকার, মেগাবাইটে, সংজ্ঞায়িত করে। আমরা 8-বিট টেক্সচারের দুটি স্ক্রীন ধরে রাখার জন্য যথেষ্ট বড় ক্যাশে ব্যবহার করার পরামর্শ দিই। উদাহরণস্বরূপ, একটি 1280x800 ডিসপ্লেতে, একটি পূর্ণ স্ক্রীন বাফার প্রায় 1 এমবি ব্যবহার করে, তাই ক্যাশে কমপক্ষে 2 এমবি হওয়া উচিত।
ro.hwui.r_buffer_cache_sizefloat2প্রতি প্রক্রিয়ায় রেন্ডার বাফার ক্যাশের আকার, মেগাবাইটে, সংজ্ঞায়িত করে। 8 বিটে স্ক্রীনের দ্বিগুণ ধরে রাখার জন্য যথেষ্ট বড় ক্যাশে ব্যবহার করার পরামর্শ দেওয়া হয়। উদাহরণস্বরূপ, একটি 1280x800 ডিসপ্লেতে, একটি পূর্ণ স্ক্রীন বাফার প্রায় 1 এমবি ব্যবহার করে তাই ক্যাশে কমপক্ষে 2 এমবি হওয়া উচিত। ডিভাইসটি 4 বিট বা 1 বিট স্টেনসিল বাফার সমর্থন করলে ক্যাশে ছোট হতে পারে।
ro.hwui.texture_cache_flush_ratefloat0.6মেমরি ফ্লাশ করার পরে টেক্সচার ক্যাশের শতাংশ সংজ্ঞায়িত করে। যখন সিস্টেমটিকে সমস্ত অ্যাপ্লিকেশন জুড়ে মেমরি পুনরুদ্ধার করার প্রয়োজন হয় তখন মেমরি ফ্লাশগুলি ট্রিগার হয়৷ আমরা এই ধরনের পরিস্থিতিতে প্রায় 50% ক্যাশে ছেড়ে দেওয়ার পরামর্শ দিই।
ro.hwui.text_small_cache_widthinteger1024ডিফল্ট ফন্ট ক্যাশের পিক্সেলে প্রস্থ নির্ধারণ করে। উপরের বাউন্ড নির্ভর করে GPU কত দ্রুত টেক্সচার আপলোড করতে পারে তার উপর। আমরা কমপক্ষে 1024 পিক্সেল ব্যবহার করার পরামর্শ দিই কিন্তু সর্বাধিক 2048 পিক্সেল। আপনি দুই মান একটি শক্তি ব্যবহার করা উচিত.
ro.hwui.text_small_cache_heightinteger256ডিফল্ট ফন্ট ক্যাশের পিক্সেলে উচ্চতা নির্ধারণ করে। উপরের বাউন্ড নির্ভর করে GPU কত দ্রুত টেক্সচার আপলোড করতে পারে তার উপর। আমরা কমপক্ষে 256 পিক্সেল ব্যবহার করার পরামর্শ দিই কিন্তু সর্বাধিক 1024 পিক্সেল।
ro.hwui.text_large_cache_widthinteger2048বড় ফন্ট ক্যাশের পিক্সেলে প্রস্থ নির্ধারণ করে। এই ক্যাশে ডিফল্ট ফন্ট ক্যাশে ফিট করার জন্য খুব বড় গ্লিফের জন্য ব্যবহার করা হয়। উপরের বাউন্ড নির্ভর করে GPU কত দ্রুত টেক্সচার আপলোড করতে পারে তার উপর। আমরা কমপক্ষে 2048 পিক্সেল ব্যবহার করার পরামর্শ দিয়েছি তবে সর্বাধিক 4096 পিক্সেল। আপনি দুই মান একটি শক্তি ব্যবহার করা উচিত.
ro.hwui.text_large_cache_heightinteger512বড় ফন্ট ক্যাশের পিক্সেলে উচ্চতা নির্ধারণ করে। বড় ফন্ট ক্যাশে ডিফল্ট ফন্ট ক্যাশে মাপসই করা খুব বড় glyphs জন্য ব্যবহার করা হয়. উপরের বাউন্ড নির্ভর করে GPU কত দ্রুত টেক্সচার আপলোড করতে পারে তার উপর। আমরা কমপক্ষে 512 পিক্সেল ব্যবহার করার পরামর্শ দিই কিন্তু সর্বাধিক 2048 পিক্সেল। আপনি দুই মান একটি শক্তি ব্যবহার করা উচিত.
hwui.text_gamma_correctionstringlookupপাঠ্য গামা সংশোধন কৌশল নির্বাচন করে। চারটি সম্ভাব্য পছন্দ আছে:
  • lookup3 : লুকআপ টেবিলের উপর ভিত্তি করে একটি সংশোধন। কালো এবং সাদা পাঠ্যের জন্য গামা সংশোধন ভিন্ন (নীচে থ্রেশহোল্ড দেখুন)।
  • lookup : একটি একক লুকআপ টেবিলের উপর ভিত্তি করে একটি সংশোধন।
  • shader3 : একটি GLSL shader দ্বারা প্রয়োগ করা একটি সংশোধন। কালো এবং সাদা পাঠ্যের জন্য গামা সংশোধন ভিন্ন (নীচে থ্রেশহোল্ড দেখুন)।
  • shader : একটি GLSL shader দ্বারা প্রয়োগ করা একটি সংশোধন।
লুকআপ গামা সংশোধনগুলি সীমিত শেডারের গণিত সহ GPU-তে সেরা কাজ করে। শেডার গামা সংশোধন মেমরি সংরক্ষণ করা ভাল. আমরা ডিফল্ট lookup কৌশল ব্যবহার করার পরামর্শ দিই, যা গুণমান, গতি এবং মেমরি ব্যবহারের ক্ষেত্রে একটি ভাল আপস প্রস্তাব করে।
hwui.text_gammafloat1.4টেক্সট গামা সংশোধনের জন্য ব্যবহৃত গামা মান সংজ্ঞায়িত করে। এই মানটি ডিভাইস দ্বারা ব্যবহৃত ডিসপ্লের উপর ভিত্তি করে সামঞ্জস্য করা যেতে পারে।
hwui.text_gamma.black_thresholdinteger64লুমিনেন্স থ্রেশহোল্ড সংজ্ঞায়িত করে যার নীচে কালো গামা সংশোধন প্রয়োগ করা হয়। মান 0..255 পরিসরে সংজ্ঞায়িত করা আবশ্যক।
hwui.text_gamma.white_thresholdinteger192উজ্জ্বলতা থ্রেশহোল্ড সংজ্ঞায়িত করে যার উপরে সাদা গামা সংশোধন প্রয়োগ করা হয়। মান 0..255 পরিসরে সংজ্ঞায়িত করা আবশ্যক।
hwui.use_gpu_pixel_buffersbooleantrueOpenGL ES 3.0 হার্ডওয়্যারে PBO এর ব্যবহার সক্ষম বা অক্ষম করতে ব্যবহৃত হয়। পিবিওগুলি রেন্ডারার দ্বারা অ্যাসিঙ্ক্রোনাস টেক্সচার আপলোডগুলি সম্পাদন করতে ব্যবহার করা হয়, বিশেষত ফন্ট ক্যাশের জন্য৷ এই সম্পত্তি সর্বদা সক্রিয় থাকা উচিত কিন্তু PBOs ব্যবহার দুর্নীতি বা ভয়ানক কর্মক্ষমতা সৃষ্টি করলে তা আনয়ন বা বিকাশের সময় অক্ষম করা যেতে পারে। এই কারণে সম্পত্তি শুধুমাত্র পড়ার জন্য নয়।