إعدادات OpenGLRenderer

يوضّح هذا المستند عمليات ضبط الأداء التي يمكنك إجراؤها للاستفادة إلى أقصى حدّ من الأجهزة.

خصائص OpenGLRenderer (libhwui)

يسرد هذا المستند جميع السمات التي يمكنك استخدامها للتحكّم في مسار عرض الصور ثنائية الأبعاد المُسرَّع بالأجهزة في Android. اضبط هذه السمات في device.mk على PRODUCT_PROPERTY_OVERRIDES.

المواقع لكل إصدارات Android

الخاصية النوع القيمة التلقائية الوصف
ro.zygote.disable_gl_preload boolean false يُستخدَم هذا الخيار لتفعيل/إيقاف التحميل المُسبَق لبرامج تشغيل EGL/GL في Zygote أثناء عملية التشغيل. عند ضبط هذه الخاصية على "خطأ"، سيحمِّل Zygote برامج تشغيل GL مسبقًا من خلال استدعاء eglGetDisplay(EGL_DEFAULT_DISPLAY). والهدف من ذلك هو تحميل رمز المكتبات الديناميكية في Zygote لمشاركته مع جميع العمليات الأخرى. إذا كان أحد برامج تشغيل الأجهزة لا يتيح إمكانية المشاركة، اضبط هذه السمة على true.

السمات لنظام التشغيل Android 8.0 والإصدارات الأقدم

الخاصية النوع القيمة التلقائية الوصف
ro.hwui.disable_scissor_opt boolean false

تُستخدَم لتفعيل ميزة "تحسين المقص" أو إيقافها. القيم المقبولة هي true وfalse. عند تفعيل ميزة تحسين المقصّ، يحاول OpenGLRenderer تقليل استخدام المقصّ من خلال تفعيل اختبار المقصّ GL وإيقافه بشكل انتقائي.

عند إيقاف التحسين، يحافظ OpenGLRenderer على تفعيل اختبار GL scissor ويغيّر مستطيل المقص حسب الحاجة. تحقّق بعض وحدات معالجة الرسومات (مثل SGX 540) أداءً أفضل عند تغيير مستطيل المقص بشكل متكرّر أكثر من تفعيل اختبار المقص أو إيقافه بشكل متكرّر.

ro.hwui.texture_cache_size float 24 يحدِّد حجم ذاكرة التخزين المؤقت للنسيج لكل عملية بالميغابايت. ننصح باستخدام ذاكرة تخزين مؤقت كبير بما يكفي لتخزين عدة شاشات من مواد العرض بدقة 32 بت (على سبيل المثال، على شاشة بدقة 1280x800، يستخدم المخزن المؤقت بملء الشاشة حوالي 4 ميغابايت، لذا يجب أن تكون ذاكرة التخزين المؤقت 20 ميغابايت على الأقل).
ro.hwui.layer_cache_size float 16 يحدِّد حجم ذاكرة التخزين المؤقت لكل طبقة من الطبقات في العملية، بالميغابايت. ننصحك باستخدام ذاكرة تخزين مؤقت كبير بما يكفي لتخزين 4 أضعاف الشاشة بسعة 32 بت. على سبيل المثال، على شاشة بدقة 1280×800، يستخدم المخزن المؤقت للعرض بملء الشاشة 4 ميغابايت تقريبًا، لذا يجب أن يكون حجم ذاكرة التخزين المؤقت 16 ميغابايت على الأقل.
ro.hwui.gradient_cache_size 0.5 float يحدِّد حجم ذاكرة التخزين المؤقت للتدرّجات لكل عملية، بالميغابايت. يشغل التدرّج الفردي بشكل عام ما بين 1 و4 كيلوبايت من الذاكرة. يُنصح باستخدام ملف cache كبير بما يكفي لتخزين اثني عشر تدرّجًا على الأقل.
ro.hwui.patch_cache_size integer 128 يحدِّد حجم ذاكرة التخزين المؤقت لـ 9-patches بالكيلوبايت لكل عملية. لا يحتوي هذا المخزن المؤقت إلا على بيانات الرؤوس، وبالتالي يمكن إبقاؤه صغيرًا. يتكون كلّ رأس من 4 أعداد كسرية أو 16 بايت.
ro.hwui.path_cache_size float 4 يحدِّد حجم ذاكرة التخزين المؤقت لكل مسار عملية، بالميغابايت. ننصحك باستخدام ملف cach كبير بما يكفي لتخزين مواد عرض بدقة 32 بت على شاشة واحدة على الأقل. على سبيل المثال، على شاشة بدقة 1280×800، يستخدم المخزن المؤقت للعرض بملء الشاشة 4 ميغابايت تقريبًا، لذا يجب أن يكون حجم ذاكرة التخزين المؤقت 4 ميغابايت على الأقل.
ro.hwui.shape_cache_size float 1 يحدِّد حجم ذاكرات التخزين المؤقت للأشكال لكل عملية، بالميغابايت. وتستخدم عدة ذاكرات تخزين مؤقت هذه القيمة، مثل الدوائر والمستطيلات المستديرة. ننصحك باستخدام ذاكرة تخزين مؤقت كبيرة بما يكفي لتخزين شاشة واحدة بدقة 8 بت على الأقل. على سبيل المثال، على شاشة بدقة 1280×800، يستخدم المخزن المؤقت بملء الشاشة حوالي 1 ميغابايت، لذا يجب أن يكون حجم ذاكرة التخزين المؤقت 1 ميغابايت على الأقل.
ro.hwui.drop_shadow_cache_size float 2 يحدِّد حجم ذاكرة التخزين المؤقت للظلال المسقطة للنص لكل عملية، بالميغابايت. ننصحك باستخدام ذاكرة تخزين مؤقت كبير بما يكفي لتخزين رسومات بدقة 8 بت تكفي لشاشةَين. على سبيل المثال، في شاشة بدقة 1280×800، يستخدم المخزن المؤقت للعرض بملء الشاشة حوالي 1 ميغابايت، لذا يجب أن يكون حجم ذاكرة التخزين المؤقت 2 ميغابايت على الأقل.
ro.hwui.r_buffer_cache_size float 2 يحدِّد حجم ذاكرة التخزين المؤقت لمخازن التقديم بالميغابايت لكل عملية. يُنصح باستخدام ذاكرة تخزين مؤقت كبير بما يكفي لتخزين ضعف حجم الشاشة بسعة 8 بت. على سبيل المثال، في شاشة بدقة 1280×800، يستخدم المخزن المؤقت للعرض بملء الشاشة حوالي 1 ميغابايت، لذا يجب أن يكون حجم ذاكرة التخزين المؤقت 2 ميغابايت على الأقل. يمكن أن تكون ذاكرة التخزين المؤقت أصغر إذا كان الجهاز متوافقًا مع وحدات تخزين مصفوفة 4 بت أو 1 بت.
ro.hwui.texture_cache_flush_rate float 0.6 يحدِّد هذا الخيار النسبة المئوية لمخزن مؤقت النسيج الذي يجب الاحتفاظ به بعد تفريغ الذاكرة. يتم بدء عمليات تفريغ الذاكرة عندما يحتاج النظام إلى استرداد الذاكرة في جميع التطبيقات. ننصحك بتفريغ 50% تقريبًا من ذاكرة التخزين المؤقت في مثل هذه الحالات.
ro.hwui.text_small_cache_width integer 1024 يحدِّد العرض بالبكسل لذاكرة التخزين المؤقت للخط التلقائي. يعتمد الحدّ الأقصى على سرعة تحميل وحدة معالجة الرسومات للنقوش. ننصحك باستخدام 1024 بكسل على الأقل و2048 بكسل كحد أقصى. يجب أيضًا استخدام قيمة ناتجة عن ضرب عدد في نفسه.
ro.hwui.text_small_cache_height integer 256 تُحدِّد هذه السمة الارتفاع بالبكسل لذاكرة التخزين المؤقت للخط التلقائي. يعتمد الحدّ الأقصى على سرعة تحميل وحدة معالجة الرسومات للنقوش. ننصحك باستخدام 256 بكسل على الأقل و1024 بكسل كحد أقصى.
ro.hwui.text_large_cache_width integer 2048 لتحديد العرض بالبكسل لذاكرة التخزين المؤقت للخطوط الكبيرة. تُستخدَم ذاكرة التخزين المؤقت هذه للرموز غير القابلة للعرض في ذاكرة التخزين المؤقت للخطوط التلقائية. يعتمد الحدّ الأقصى على سرعة تحميل وحدة معالجة الرسومات للنقوش. ننصحك باستخدام 2048 بكسل على الأقل و4096 بكسل كحد أقصى. يجب أيضًا استخدام قيمة ناتجة عن ضرب عدد في نفسه.
ro.hwui.text_large_cache_height integer 512 لتحديد الارتفاع بالبكسل لذاكرة التخزين المؤقت للخطوط الكبيرة. يتم استخدام ذاكرة التخزين المؤقت للخطوط الكبيرة للرموز غير القابلة للملاءمة في ذاكرة التخزين المؤقت للخطوط التلقائية. يعتمد الحدّ الأقصى على سرعة تحميل وحدة معالجة الرسومات للنقوش. ننصحك باستخدام 512 بكسل على الأقل و2048 بكسل كحد أقصى. يجب أيضًا استخدام قيمة ناتجة عن ضرب عدد في نفسه.
hwui.text_gamma_correction string lookup لاختيار أسلوب تصحيح جاما للنص. هناك أربعة خيارات محتملة:
  • lookup3: تصحيح يستند إلى جداول البحث يختلف تصحيح جاما للنص الأسود والأبيض (راجِع الحدود الدنيا أدناه).
  • lookup: تصحيح يستند إلى جدول مرجعي واحد
  • shader3: تصحيح تم تطبيقه بواسطة برنامج تشفير GLSL يختلف تصحيح جاما للنص بالأبيض والأسود (اطّلِع على الحدود الدنيا أدناه).
  • shader: تصحيح تم تطبيقه بواسطة برنامج تشفير GLSL
تعمل تصحيحات جاما للبحث بشكل أفضل على وحدات معالجة الرسومات التي تتضمّن عمليات حسابية محدودة لظلال الألوان. إنّ تصحيحات جاما لظلال الألوان هي الأفضل لتوفير الذاكرة. ننصحك باستخدام أسلوب lookup التلقائي الذي يقدّم حلًا وسطًا جيدًا من حيث الجودة والسرعة واستخدام الذاكرة.
hwui.text_gamma float 1.4 تحدِّد قيمة جاما المستخدَمة لتصحيح جاما للنص. يمكن تعديل هذه القيمة استنادًا إلى الشاشة التي يستخدمها الجهاز.
hwui.text_gamma.black_threshold integer 64 يحدِّد حدّ الإضاءة الذي يتمّ تطبيق تصحيح جاما الأسود أدناه. يجب تحديد القيمة في النطاق 0..255.
hwui.text_gamma.white_threshold integer 192 يحدِّد حدّ الإضاءة الذي يتم فوقه تطبيق تصحيح جاما الأبيض. يجب تحديد القيمة في النطاق 0..255.
hwui.use_gpu_pixel_buffers boolean true يُستخدَم لتفعيل استخدام وحدات PBO أو إيقافها على أجهزة OpenGL ES 3.0. يستخدم العارض وحدات PBO لتنفيذ عمليات تحميل النسيج غير المتزامنة، خاصةً في ذاكرة التخزين المؤقت للخطوط. يجب أن تظل هذه السمة مفعّلة دائمًا، ولكن يمكن إيقافها أثناء الإعداد أو التطوير إذا كان استخدام ملفات PBO يتسبب في حدوث تلف أو أداء سيئ. لهذا السبب، لا يكون الموقع الإلكتروني للقراءة فقط.