مرجع بنية vr_module
#include <
vr.h
>
حقول البيانات |
|
struct hw_module_t | شائعة |
void(* | init )(struct vr_module *module) |
void(* | set_vr_mode )(struct vr_module *module, bool enabled) |
void * | reserved [8-2] |
وصف مفصّل
يمكنك تنفيذ HAL هذا لتلقّي عمليات استدعاء عند استخدام تطبيق الواقع الافتراضي. تفرض تطبيقات الواقع الافتراضي عادةً عددًا من متطلبات العرض والأداء الخاصة، بما في ذلك:
- وقت استجابة منخفض لأجهزة الاستشعار: يجب أن يكون إجمالي وقت الاستجابة من البداية إلى النهاية من وحدة IMU ومقياس التسارع ووحدة التحكّم في الانحراف إلى طلب إعادة الاتصال المرئي للتطبيق منخفضًا جدًا (عادةً أقل من 5 مللي ثانية). هذا الإجراء مطلوب لتفعيل ميزة "الاستماع بجودة عالية".
- وقت استجابة منخفض للعرض: يجب أن يكون إجمالي وقت الاستجابة من البداية إلى النهاية من طلبات رسم وحدة معالجة الرسومات إلى التحديث الفعلي للعرض منخفضًا قدر الإمكان. ويتم تحقيق ذلك باستخدام SurfaceFlinger في وضع التخزين المؤقت الفردي، والتأكّد من تزامن طلبات الرسم مع عملية مسح الشاشة بشكل صحيح. ويتم عرض هذا السلوك من خلال إضافة EGL للتطبيقات. اطّلِع أدناه على إضافات EGL المطلوبة لإجراء ذلك.
- شاشة ذات مدة عرض منخفضة: يجب ضبط إعدادات مدة عرض الشاشة على أدنى مستوى ممكن مع الحفاظ على سطوع معقول. بالنسبة إلى الشاشة العادية التي تعمل بمعدّل 60 هرتز، يجب أن تبقى وحدات البكسل مضاءة لمدة 3.5 ملي ثانية كحدّ أدنى كي تُعتبر منخفضة الثبات. ويؤدي ذلك إلى تجنُّب ظهور مؤثر "المشاهدة المزدوجة" أثناء الحركات في وضع الواقع الافتراضي، ويجب تفعيله من ملف lights.h HAL عند ضبط BRIGHTNESS_MODE_LOW_PERSISTENCE.
- الأداء المتسق لوحدة معالجة الرسومات ووحدة المعالجة المركزية: عند تقديم حمولة عمل مختلطة لوحدة معالجة الرسومات/وحدة المعالجة المركزية لتطبيق الواقع الافتراضي مع نوبات عمل على فترات منتظمة عدة مرات في اللقطة، يجب أن تضمن جدولة وحدة المعالجة المركزية تنفيذ عمل سلسلة المهام لعرض التطبيق بشكلٍ متسق خلال 1 ملي ثانية من وقت تحديد الموعد، وأن تكتمل قبل نهاية نافذة الرسم. لتحقيق هذا الهدف، يجب حجز نواة وحدة معالجة مركزية واحدة فقط لسلسلة عمليات عرض تطبيق الواقع الافتراضي الذي يتم تشغيله حاليًا أثناء تفعيل وضع الواقع الافتراضي، ويجب إتاحتها في مجموعة المعالجة المركزية "top-app". وبالمثل، يجب الحفاظ على معدّل ساعة مناسب لوحدة المعالجة المركزية ووحدة معالجة الرسومات ووحدة الحافلة لضمان انتهاء حمولة عرض اللقطات في غضون الوقت المخصّص لعرض كل لقطة عند ضبط العلامة POWER_HINT_SUSTAINED_PERFORMANCE فيملف برمجة التطبيقات power.h HAL أثناء استخدام وضع الواقع الافتراضي عندما لا يتم فرض قيود حرارية على الجهاز.
- يجب توفُّر إضافات EGL المطلوبة: يجب توفُّر أي إعدادات مطلوبة لوحدة معالجة الرسومات للسماح بالإمكانات المذكورة أعلاه، بما في ذلك إضافات EGL: EGL_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.
- إعداد تقارير دقيقة عن الحرارة: يجب الإبلاغ عن درجات الحرارة والحدّ الأقصى لها بدقة فيملف برمجي thermal.h HAL. على وجه التحديد، يجب الإبلاغ بدقة عن درجة حرارة السطح الحالية لـ DEVICE_TEMPERATURE_SKIN، ويجب أن يُبلغ vr_throttling_threshold الذي تم الإبلاغ عنه لهذا الجهاز بدقة عن الحد الأقصى لدرجة الحرارة التي يحدّد عندها نظام التحكّم الحراري في الجهاز من معدّلات ساعة وحدة المعالجة المركزية و/أو وحدة معالجة الرسومات و/أو الناقل إلى ما دون الحد الأدنى اللازم لتحقيق أداء ثابت (راجِع النقطة النقطية السابقة).
بشكل عام، من المتوقّع أن يستخدم المورّدون الذين ينفّذون HAL هذا دالة set_vr_mode كإشارة لتفعيل ضبط الأداء الخاص بتقنية الواقع الافتراضي المطلوب لأي من المتطلبات المذكورة أعلاه، وتفعيل أي ميزات للجهاز تكون مثالية لأوضاع عرض الواقع الافتراضي. قد لا يؤدي طلب set_vr_mode إلى أيّ إجراء ببساطة إذا لم تكن هناك تحسينات متاحة أو ضرورية لاستيفاء المتطلبات المذكورة أعلاه.
لن يتم استدعاء أي طرق في HAL هذا بشكل متزامن من إطار عمل Android.
مستندات الحقل
struct hw_module_t common |
الطرق الشائعة للوحدة يجب أن يكون هذا العنصر العنصر الأول من vr_module لأنّ مستخدمي هذه البنية قد يحوّلون hw_module_t إلى vr_module مُشير في السياقات التي يُعرف فيها أنّ hw_module_t يشير إلى vr_module .
void(* init)(struct vr_module *module) |
void(* set_vr_mode)(struct vr_module *module, bool enabled) |
اضبط حالة وضع الواقع الافتراضي. الحالات المحتمَلة للمَعلمة enabled هي: false - وضع الواقع الافتراضي غير مفعَّل، أوقِف جميع الإعدادات المتعلّقة بالواقع الافتراضي. true - وضع الواقع الافتراضي مفعَّل، فعِّل جميع الإعدادات المتعلّقة بالواقع الافتراضي.
يتمّ تشغيل هذا الإجراء كلّما دخل نظام Android في وضع الواقع الافتراضي أو خرج منه. ويحدث ذلك عادةً عندما ينتقل المستخدم إلى تطبيق واقع افتراضي يُجري عرضًا مجسمًا أو يغادره.
تم إنشاء مستندات هذه البنية من الملف التالي:
- hardware/libhardware/include/hardware/ vr.h