تكوين OpenGLRenderer

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

خصائص OpenGLRenderer (libhwui).

يسرد هذا المستند كافة الخصائص التي يمكنك استخدامها للتحكم في مسار العرض المسرع ثنائي الأبعاد لأجهزة Android. قم بتعيين هذه الخصائص في device.mk كـ PRODUCT_PROPERTY_OVERRIDES .

خصائص لجميع إصدارات أندرويد

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

خصائص لنظام Android 8.0 والإصدارات الأقدم

ملكية يكتب القيمة الافتراضية وصف
ro.hwui.disable_scissor_opt boolean false

يستخدم لتمكين أو تعطيل تحسين المقص. القيم المقبولة صحيحة وخاطئة. عند تمكين تحسين المقص، يحاول OpenGLRenderer تقليل استخدام المقص عن طريق تمكين وتعطيل اختبار GL scissor بشكل انتقائي.

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

ro.hwui.texture_cache_size float 24 يحدد الحجم بالميجابايت لذاكرة التخزين المؤقت للنسيج لكل عملية. نوصي باستخدام ذاكرة تخزين مؤقت كبيرة بما يكفي لاستيعاب عدة شاشات بقيمة 32 بت (على سبيل المثال، على شاشة عرض بدقة 1280 × 800، يستخدم المخزن المؤقت بملء الشاشة حوالي 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 كيلو بايت من الذاكرة. يوصى باستخدام ذاكرة تخزين مؤقت كبيرة بما يكفي لاستيعاب ما لا يقل عن اثني عشر تدرجًا.
ro.hwui.patch_cache_size integer 128 يحدد الحجم بالكيلوبايت لذاكرة التخزين المؤقت المكونة من 9 تصحيحات لكل عملية. تحتوي ذاكرة التخزين المؤقت هذه على بيانات قمة الرأس فقط، وبالتالي يمكن أن تظل صغيرة. تتكون كل قمة من 4 عوامات، أو 16 بايت.
ro.hwui.path_cache_size float 4 يحدد الحجم بالميجابايت لذاكرة التخزين المؤقت لكل مسارات العملية. نوصي باستخدام ذاكرة تخزين مؤقت كبيرة بما يكفي لاستيعاب شاشة واحدة على الأقل بحجم 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 يُستخدم لتمكين أو تعطيل استخدام PBOs على أجهزة OpenGL ES 3.0. يتم استخدام PBOs بواسطة العارض لإجراء تحميلات غير متزامنة للنسيج، خاصة بالنسبة لذاكرة التخزين المؤقت للخط. يجب أن تظل هذه الخاصية ممكنة دائمًا ولكن يمكن تعطيلها أثناء الجلب أو التطوير إذا تسبب استخدام PBOs في حدوث تلف أو أداء سيئ. هذا هو السبب في أن الخاصية ليست للقراءة فقط.