اندروید ۱۳ پیکربندی جدیدی به نام AutoSingleLayer را برای قفل کردن بافرهای بدون سیگنال معرفی میکند. این پیکربندی به SurfaceFlinger اجازه میدهد تا زمانی که فقط یک لایه در حال بهروزرسانی است، یک بافر بدون سیگنال را قفل کند. این مورد در مواردی که بین لایهها رخ میدهد، مانند تغییرات هندسی یا تراکنشهای همگامسازی، صدق نمیکند.
 پیش از این، پرچم debug.sf.latch_unsignaled در پروژه متنباز اندروید (AOSP) به SurfaceFlinger اجازه میداد تا صرف نظر از مورد استفاده، تمام بافرهای بدون سیگنال را قفل کند. هنگامی که این پیکربندی را فعال میکنید، میتواند عوارض جانبی نامطلوبی ایجاد کند، به عنوان مثال، قطع تراکنشهای همگامسازی و فریز شدن کل صفحه نمایش در حین انتظار برای بافرهای ناقص.
 در حالت AutoSingleLayer ، SurfaceFlinger فقط یک بافر از یک سطح واحد در یک فریم را بهروزرسانی میکند. این حالت به بازیها و سایر برنامههای تمام صفحه اجازه میدهد تا از بافرهای بدون سیگنال بهره ببرند و لرزش برنامه را کاهش دهند، در حالی که تحت تأثیر هنگ کردن صفحه نمایش قرار نمیگیرند.
تنظیمات حالت AutoSingleLayer
 برای اندروید ۱۳، AutoSingleLayer حالت پیشفرض برای ویژگی latch unsignaled buffer است. این حالت توسط ویژگی سیستمی debug.sf.auto_latch_unsignaled کنترل میشود.
 SurfaceFlinger در هنگام بوت LatchUnsignaledConfig میخواند. پیکربندیهای ممکن عبارتند از:
- LatchUnsignaledConfig::AutoSingleLayer- در این حالت پیشفرض AOSP، SurfaceFlinger اجازه میدهد تا بافرهای بدون سیگنال را هنگام بهروزرسانی یک لایه در یک فریم، قفل کند. بهروزرسانی باید فقط شامل بهروزرسانی بافر باشد و هیچ تراکنش همگامسازی یا تغییر هندسهای نداشته باشد. بهطور پیشفرض، این حالت - debug.sf.auto_latch_unsignaledروی- trueتنظیم میکند.
- LatchUnsignaledConfig::Disabled- این حالت، رفتار قفل بدون علامت را غیرفعال میکند و فقط تراکنشهای علامتدار را قفل میکند. این حالت همچنین حالت - AutoSingleLayerرا غیرفعال میکند. برای پیکربندی این حالت،- debug.sf.latch_unsignaledو- debug.sf.auto_latch_unsignaledرا روی- falseتنظیم کنید.
- LatchUnsignaledConfig::Always- در این حالت، SurfaceFlinger تمام بافرها را بدون علامتگذاری قفل میکند. برای پیکربندی این حالت، - debug.sf.latch_unsignaledروی- trueتنظیم کنید.
تست تکلایه خودکار
برای بررسی اینکه آیا یک بافر بدون سیگنال قفل شده است یا خیر، به دنبال ردپاهای زیر از SurfaceFlinger در Perfetto باشید:

شکل ۱. رد یک بافر قفلشده بدون سیگنال در Perfetto
