Vसिंक सिग्नल, डिसप्ले पाइपलाइन को सिंक करता है. डिसप्ले पाइपलाइन में ऐप्लिकेशन रेंडरिंग, SurfaceFlinger कंपोज़िशन, और हार्डवेयर शामिल हैं डिसप्ले पर इमेज दिखाता कंपोज़र (एचडब्ल्यूसी). VSYNC, रेंडरिंग शुरू करने के लिए, ऐप्लिकेशन के चालू होने का समय और वह समय जब SurfaceFlinger नींद से उठती है और डिसप्ले रीफ़्रेश साइकल को कंपोज़िट कर सकता है. यह सिंक्रोनाइज़ेशन गड़बड़ी को खत्म करता है और ग्राफ़िक्स के विज़ुअल प्रदर्शन को बेहतर बनाता है.
HWT, VSYNC इवेंट जनरेट करता है और इवेंट को SurfaceFlinger को कॉलबैक:
typedef void (*HWC2_PFN_VSYNC)(hwc2_callback_data_t callbackData, hwc2_display_t display, int64_t timestamp);अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
SurfaceFlinger यह कंट्रोल करती है कि HW,
setVsyncEnabled
पर कॉल किया जा रहा है. SurfaceFlinger ऐप्लिकेशन,
VSYNC इवेंट जनरेट करने के लिए setVsyncEnabled
, ताकि उसे सिंक करने में मदद मिल सके
रीफ़्रेश साइकल. जब SurfaceFlinger को
रीफ़्रेश साइकल दिखाता है, तो SurfaceFlinger setVsyncEnabled
को
HWT को VSYNC इवेंट जनरेट करने से नहीं रोका जा सकेगा. अगर SurfaceFlinger को
पहले से तय किए गए असल VSYNC और Vसिंक के बीच का अंतर
SurfaceFlinger, VSYNC इवेंट जनरेट करने की सुविधा को फिर से चालू करती है.
VSYNC ऑफ़सेट
सिंक ऐप्लिकेशन और SurfaceFlinger रेंडर, हार्डवेयर VSYNC. VSYNC इवेंट पर, डिसप्ले N फ़्रेम के दौरान दिखता है SurfaceFlinger N+1 फ़्रेम के लिए विंडो कंपोज़िट करना शुरू करता है. यह ऐप्लिकेशन इनपुट को मंज़ूरी मिलना बाकी है और यह फ़्रेम N+2 जनरेट करता है.
Vसिंक के साथ सिंक करने पर, इंतज़ार का समय एक जैसा रहता है. इससे गड़बड़ियां कम हो जाती हैं यह ऐप्लिकेशन और SurfaceFlinger में है. साथ ही, यह स्क्रीन मोड में, स्क्रीन के अंदर और बाहर मूव होने वाले डिसप्ले को कम करता है एक-दूसरे से जुड़ी हैं. यह हर फ़्रेम के हिसाब से ऐप्लिकेशन और SurfaceFlinger को समय में बहुत ज़्यादा अंतर नहीं होता. इंतज़ार का समय कम से कम दो फ़्रेम है.
इसे ठीक करने के लिए, इनपुट-टू-डिसप्ले को कम करने के लिए, VSYNC ऑफ़सेट का इस्तेमाल किया जा सकता है ऐप्लिकेशन और कंपोज़िशन के सिग्नल को हार्डवेयर से जोड़कर, इंतज़ार का समय Vसिंक. ऐसा इसलिए मुमकिन है, क्योंकि ऐप्लिकेशन और कंपोज़िशन में आम तौर पर कम समय लगता है 33 मि॰से॰ से ज़्यादा हो.
VSYNC ऑफ़सेट का नतीजा, समान पीरियड और ऑफ़सेट वाले तीन सिग्नल है फ़ेज़:
HW_VSYNC_0
— डिसप्ले पर अगला फ़्रेम दिखना शुरू हो जाता है.VSYNC
— ऐप्लिकेशन इनपुट को पढ़ता है और अगला फ़्रेम जनरेट करता है.SF_VSYNC
— SurfaceFlinger अगले फ़्रेम के लिए कंपोज़िट करना शुरू करता है.
Vsync ऑफ़सेट के साथ, SurfaceFlinger को बफ़र मिलता है और यह फ़्रेम करें, जबकि ऐप्लिकेशन एक साथ इनपुट को प्रोसेस और रेंडर करता हो टैप करें.
डिस्पसिंक
DispSync इवेंट के हार्डवेयर-आधारित VSYNC इवेंट के मॉडल को बनाए रखता है उस मॉडल को दिखाता है और उसका इस्तेमाल करके, एक तय चरण में कॉलबैक एक्ज़ीक्यूट करता है हार्डवेयर VSYNC इवेंट से ऑफ़सेट मिलते हैं.
DispSync एक सॉफ़्टवेयर फ़ेज़-लॉक लूप (पीएलएल) है जो कोरियोग्राफ़र और SurfaceFlinger में इस्तेमाल किए जाने वाले VSYNC और SF_VSYNC सिग्नल, भले ही हार्डवेयर VSYNC से ऑफ़सेट नहीं होता.
DispSync के ये गुण हैं:
- रेफ़रंस — HW_VSYNC_0.
- आउटपुट — VSYNC और SF_VSYNC.
- सुझाव — हार्डवेयर कंपोज़र की मदद से, फ़ेंस के सिग्नल के टाइमस्टैंप बंद करें.
VSYNC/रिटायर ऑफ़सेट
डिवाइसों पर भी, रिटायर फ़ेंस के सिग्नल टाइमस्टैंप HW VSYNC से मेल खाने चाहिए जो ऑफ़सेट फ़ेज़ का इस्तेमाल नहीं करते. ऐसा न करने पर, गड़बड़ियां ज़्यादा गंभीर दिखती हैं वे हैं. स्मार्ट पैनल में अक्सर एक डेल्टा होता है, जहां रिटायर बाड़ अंत होता है मेमोरी को दिखाने के लिए डायरेक्ट मेमोरी ऐक्सेस (डीएमए) का इस्तेमाल किया है, लेकिन असल डिसप्ले स्विच और HW VSYNC कुछ समय बाद है.
PRESENT_TIME_OFFSET_FROM_VSYNC_NS
को डिवाइस के
BoardConfig.mk
मेकेफ़ाइल. यह डिसप्ले कंट्रोलर और पैनल पर आधारित होता है
विशेषताएं. रिटायर फ़ेंस के टाइमस्टैंप से HW VSYNC तक का समय
सिग्नल को नैनोसेकंड में मापा जाता है.
VSYNC और SF_VSYNC ऑफ़सेट
VSYNC_EVENT_PHASE_OFFSET_NS
और
SF_VSYNC_EVENT_PHASE_OFFSET_NS
कंज़र्वेटिव तरीके से इस पर सेट की गई हैं
इस्तेमाल के ज़्यादा लोड होने के उदाहरण, जैसे कि विंडो ट्रांज़िशन के दौरान कुछ हद तक जीपीयू कंपोज़िशन
या Chrome पर ऐनिमेशन वाले वेब पेज को स्क्रोल करने पर. ये ऑफ़सेट
ज़्यादा समय तक चलने वाले ऐप्लिकेशन को रेंडर करने में लगने वाले समय और जीपीयू कंपोज़िशन के लिए ज़्यादा समय देने वाली.
मिलीसेकंड से ज़्यादा की इंतज़ार का समय साफ़ तौर पर देखा जा सकता है. इंतज़ार का समय कम करने के लिए गड़बड़ी की संख्या को काफ़ी हद तक बढ़ाए बिना, पूरी जानकारी के साथ अपने-आप होने वाली गड़बड़ियों को इंटिग्रेट करें टेस्टिंग हो रही है.