vr_मॉड्यूल संरचना संदर्भ

vr_मॉड्यूल संरचना संदर्भ

#include < vr.h >

डेटा फ़ील्ड

संरचना hw_module_t सामान्य
खालीपन(* init )(struct vr_module *मॉड्यूल)
खालीपन(* set_vr_mode )(struct vr_module *मॉड्यूल, बूल सक्षम)
खालीपन * आरक्षित [8-2]

विस्तृत विवरण

जब वर्चुअल रियलिटी (वीआर) एप्लिकेशन का उपयोग किया जा रहा हो तो कॉलबैक प्राप्त करने के लिए इस एचएएल को कार्यान्वित करें। वीआर अनुप्रयोगों में विशिष्ट रूप से कई विशेष प्रदर्शन और प्रदर्शन आवश्यकताएं होती हैं, जिनमें शामिल हैं:

  • कम सेंसर विलंबता - आईएमयू, एक्सेलेरोमीटर और जाइरो से एप्लिकेशन-दृश्य कॉलबैक तक कुल एंड-टू-एंड विलंबता बेहद कम होनी चाहिए (<5ms आमतौर पर)। यह HIFI सेंसर समर्थन के लिए आवश्यक है।
  • कम डिस्प्ले विलंबता - जीपीयू ड्रॉ कॉल से लेकर वास्तविक डिस्प्ले अपडेट तक कुल एंड-टू-एंड विलंबता यथासंभव कम होनी चाहिए। इसे सिंगल-बफ़र्ड मोड में सरफेसफ्लिंगर का उपयोग करके और यह सुनिश्चित करके हासिल किया जाता है कि ड्रॉ कॉल डिस्प्ले स्कैनआउट के साथ सही ढंग से सिंक्रनाइज़ हैं। यह व्यवहार ईजीएल एक्सटेंशन के माध्यम से अनुप्रयोगों में उजागर होता है। इसके लिए आवश्यक ईजीएल एक्सटेंशन के लिए नीचे देखें।
  • कम-दृढ़ता वाला डिस्प्ले - उचित चमक बनाए रखते हुए डिस्प्ले की दृढ़ता सेटिंग्स को यथासंभव कम सेट किया जाना चाहिए। 60 हर्ट्ज पर चलने वाले एक सामान्य डिस्प्ले के लिए, पिक्सल को कम-स्थिरता माने जाने के लिए <=3.5ms तक रोशन किया जाना चाहिए। यह VR सेटिंग में गतिविधियों के दौरान भूत-प्रेत से बचाता है, और BRIGHTNESS_MODE_LOW_PERSISTENCE सेट होने पर इसे लाइट्स.h HAL से सक्षम किया जाना चाहिए।
  • जीपीयू और सीपीयू का लगातार प्रदर्शन - जब एक फ्रेम में कई बार नियमित अंतराल पर काम के विस्फोट के साथ वीआर एप्लिकेशन के लिए मिश्रित जीपीयू/सीपीयू वर्कलोड दिया जाता है, तो सीपीयू शेड्यूलिंग को यह सुनिश्चित करना चाहिए कि एप्लिकेशन रेंडर थ्रेड वर्क 1 एमएस के भीतर लगातार चलता रहे। निर्धारित, और ड्रा विंडो के अंत से पहले पूरा किया गया। इस प्रयोजन के लिए, एक एकल सीपीयू कोर को वीआर मोड में रहते हुए वर्तमान में चल रहे वीआर एप्लिकेशन के रेंडर थ्रेड के लिए आरक्षित किया जाना चाहिए, और "टॉप-ऐप" सीपीयूसेट में उपलब्ध कराया जाना चाहिए। इसी तरह, यह सुनिश्चित करने के लिए एक उपयुक्त सीपीयू, जीपीयू और बस क्लॉकरेट बनाए रखा जाना चाहिए कि जब डिवाइस चालू होने पर वीआर मोड में POWER_HINT_SUSTAINED_PERFORMANCE ध्वज को पावर.एच एचएएल में सेट किया गया हो तो रेंडरिंग वर्कलोड प्रत्येक फ्रेम को रेंडर करने के लिए आवंटित समय के भीतर समाप्त हो जाए। थर्मली थ्रॉटल नहीं किया जा रहा है।
  • आवश्यक ईजीएल एक्सटेंशन मौजूद होने चाहिए - उपरोक्त क्षमताओं की अनुमति देने के लिए आवश्यक किसी भी जीपीयू सेटिंग्स की आवश्यकता है, जिसमें ईजीएल एक्सटेंशन शामिल हैं: ईजीएल_ANDROID_create_native_client_buffer, EGL_ANDROID_front_buffer_auto_refresh, EGL_EXT_protected_content, EGL_KHR_mutable_render_buffer, EGL_KHR_reusable_sync, और EGL_KHR_wait_sync।
  • सटीक थर्मल रिपोर्टिंग - थर्मल.एच एचएएल में सटीक थर्मल तापमान और सीमाएं रिपोर्ट की जानी चाहिए। विशेष रूप से, DEVICE_TEMPERATURE_SKIN के लिए वर्तमान त्वचा के तापमान को सटीक रूप से रिपोर्ट किया जाना चाहिए और इस डिवाइस के लिए रिपोर्ट किए गए vr_throttting_threshold को उस तापमान सीमा को सटीक रूप से रिपोर्ट करना चाहिए जिसके ऊपर डिवाइस का थर्मल गवर्नर सीपीयू, जीपीयू और/या बस क्लॉकरेट को लगातार प्रदर्शन के लिए आवश्यक न्यूनतम से नीचे थ्रॉटल करता है ( पिछला बुलेट पॉइंट देखें)।

सामान्य तौर पर, इस एचएएल को लागू करने वाले विक्रेताओं से उपरोक्त आवश्यकताओं में से किसी के लिए आवश्यक वीआर-विशिष्ट प्रदर्शन ट्यूनिंग को सक्षम करने और वीआर डिस्प्ले मोड के लिए इष्टतम किसी भी डिवाइस सुविधाओं को चालू करने के लिए एक संकेत के रूप में set_vr_mode का उपयोग करने की अपेक्षा की जाती है। यदि उपरोक्त आवश्यकताओं को पूरा करने के लिए कोई अनुकूलन उपलब्ध नहीं है या आवश्यक नहीं है तो set_vr_mode कॉल कुछ भी नहीं कर सकती है।

इस HAL में किसी भी विधि को एंड्रॉइड फ्रेमवर्क से समवर्ती रूप से नहीं बुलाया जाएगा।

फ़ाइल vr.h की पंक्ति 82 पर परिभाषा।

फ़ील्ड दस्तावेज़ीकरण

संरचना hw_module_t सामान्य

मॉड्यूल के सामान्य तरीके. यह vr_module का पहला सदस्य होना चाहिए क्योंकि इस संरचना के उपयोगकर्ता उन संदर्भों में hw_module_t को vr_module पॉइंटर में डाल सकते हैं जहां यह ज्ञात है कि hw_module_t एक vr_module को संदर्भित करता है।

फ़ाइल vr.h की पंक्ति 89 पर परिभाषा।

शून्य(* init)(struct vr_module *मॉड्यूल)

रनटाइम स्टार्टअप पर आवश्यक किसी भी स्थिति को स्थापित करने के लिए एचएएल कार्यान्वयन के लिए सुविधाजनक विधि। इसे बूट चरण के दौरान VrManagerService से एक बार कॉल किया जाता है। इस HAL से कोई भी विधि init से पहले नहीं बुलाई जाएगी।

फ़ाइल vr.h की पंक्ति 96 पर परिभाषा।

शून्य* आरक्षित[8-2]

फ़ाइल vr.h की पंक्ति 110 पर परिभाषा।

शून्य(* set_vr_mode)(struct vr_module *मॉड्यूल, बूल सक्षम)

वीआर मोड स्थिति सेट करें। सक्षम पैरामीटर की संभावित स्थितियाँ हैं: गलत - वीआर मोड अक्षम है, सभी वीआर-विशिष्ट सेटिंग्स बंद करें। सच - वीआर मोड सक्षम है, सभी वीआर-विशिष्ट सेटिंग्स चालू करें।

इसे तब कहा जाता है जब एंड्रॉइड सिस्टम वीआर मोड में प्रवेश करता है या छोड़ता है। यह आमतौर पर तब होता है जब उपयोगकर्ता किसी वीआर एप्लिकेशन पर या उससे स्विच करता है जो स्टीरियोस्कोपिक रेंडरिंग कर रहा है।

फ़ाइल vr.h की पंक्ति 107 पर परिभाषा।


इस संरचना के लिए दस्तावेज़ीकरण निम्नलिखित फ़ाइल से तैयार किया गया था:
  • हार्डवेयर/लिबहार्डवेयर/शामिल/हार्डवेयर/ vr.h