إغلاق المخزن المؤقت غير المُشار إليه باستخدام AutoSingleLayer

يضيف Android 13 تكوينًا جديدًا يُسمى AutoSingleLayer لإغلاق المخازن المؤقتة غير المُشار إليها. يتيح هذا التكوين لـ SurfaceFlinger إغلاق مخزن مؤقت غير مشار إليه عند تحديث طبقة واحدة فقط، وليس للحالات التي تحدث عبر الطبقات، مثل التغييرات الهندسية أو معاملات المزامنة.

قبل Android 13، كانت العلامة debug.sf.latch_unsignaled في AOSP تسمح لـ SurfaceFlinger بإغلاق جميع المخازن المؤقتة غير المُشار إليها، بغض النظر عن حالة الاستخدام. عند تمكين هذا التكوين، تكون هناك تأثيرات جانبية غير مرغوب فيها، مثل قطع معاملات المزامنة وتجميد العرض بالكامل أثناء انتظار المخازن المؤقتة غير المكتملة.

باستخدام وضع AutoSingleLayer ، يتم تحديث المخزن المؤقت لسطح واحد فقط في الإطار. يمكّن هذا الوضع الألعاب وتطبيقات ملء الشاشة الأخرى من الاستفادة من إغلاق المخازن المؤقتة غير المُشار إليها وتقليل التطبيقات غير المرغوب فيها مع عدم التأثر بتجميد العرض.

إعدادات وضع AutoSingleLayer

في Android 13، يعد AutoSingleLayer هو الوضع الافتراضي لميزة المخزن المؤقت غير المُشار إليه. يتم التحكم في هذا الوضع من خلال خاصية النظام debug.sf.auto_latch_unsignaled .

يقرأ SurfaceFlinger LatchUnsignaledConfig عند التمهيد. فيما يلي التكوينات الممكنة:

  • LatchUnsignaledConfig::AutoSingleLayer

    في الوضع الافتراضي لـ AOSP، يُسمح بإغلاق المخازن المؤقتة غير المُشار إليها عندما يتم تحديث طبقة واحدة في إطار، ويتضمن التحديث فقط تحديث المخزن المؤقت بدون معاملات مزامنة أو تغييرات هندسية. في هذا الوضع، يتم تعيين debug.sf.auto_latch_unsignaled على true افتراضيًا.

  • LatchUnsignaledConfig::Disabled

    يقوم هذا الوضع بتعطيل سلوك المزلاج غير المُشار إليه ويغلق المعاملات المُشار إليها فقط. يقوم هذا الوضع أيضًا بتعطيل وضع AutoSingleLayer . لتكوين هذا الوضع، قم بتعيين debug.sf.latch_unsignaled و debug.sf.auto_latch_unsignaled على false .

  • LatchUnsignaledConfig::Always

    في هذا الوضع، يتم إغلاق كافة المخازن المؤقتة بدون إشارة. لتكوين هذا الوضع، قم بتعيين debug.sf.latch_unsignaled على true .

اختبار AutoSingleLayer

لاختبار ما إذا كان المخزن المؤقت مغلقًا بدون إشارة، ابحث عن الآثار التالية من SurfaceFlinger في Perfetto :

أثر المخزن المؤقت مغلق غير إشارة

الشكل 1. أثر المخزن المؤقت غير المُغلق في Perfetto