مرجع ساختار vr_module
#include < vr.h >
فیلدهای داده | |
struct hw_module_t | مشترک |
خالی(* | init )(struct vr_module *module) |
خالی(* | set_vr_mode )(struct vr_module *module, bool enabled) |
خالی * | رزرو شده [8-2] |
توصیف همراه با جزئیات
این HAL را برای دریافت تماسها در زمانی که از یک برنامه واقعیت مجازی (VR) استفاده میشود، اجرا کنید. برنامه های کاربردی VR مشخصاً دارای تعدادی الزامات ویژه نمایش و عملکرد هستند، از جمله:
- تأخیر سنسور کم - کل تأخیر انتها به انتها از IMU، شتاب سنج و ژیروسکوپ تا یک تماس قابل مشاهده در برنامه باید بسیار کم باشد (معمولاً کمتر از 5 میلی ثانیه). این برای پشتیبانی از سنسور HIFI مورد نیاز است.
- تأخیر نمایشگر کم - کل تأخیر انتها به انتها از فراخوانی GPU تا به روز رسانی واقعی نمایشگر باید تا حد امکان کم باشد. این امر با استفاده از SurfaceFlinger در حالت تک بافری و اطمینان از همگام سازی صحیح تماس های قرعه کشی با اسکن نمایشگر به دست می آید. این رفتار از طریق یک پسوند EGL برای برنامه ها آشکار می شود. پسوندهای EGL مورد نیاز برای این کار را در زیر ببینید.
- نمایشگر با ماندگاری پایین - تنظیمات پایداری نمایشگر باید تا حد امکان پایین تنظیم شود و در عین حال روشنایی معقول حفظ شود. برای نمایشگر معمولی که با فرکانس 60 هرتز کار میکند، پیکسلها باید کمتر از 3.5 میلیثانیه روشن شوند تا ماندگاری پایین در نظر گرفته شوند. این از ایجاد شبح در حین حرکات در تنظیمات VR جلوگیری میکند و باید از چراغها فعال شود. HAL وقتی BRIGHTNESS_MODE_LOW_PERSISTENCE تنظیم شده است.
- عملکرد ثابت GPU و CPU - هنگامی که برای یک برنامه VR حجم کاری ترکیبی GPU/CPU با فواصل منظم در فواصل زمانی منظم چندین بار در یک فریم داده می شود، زمان بندی CPU باید اطمینان حاصل کند که کار رندر برنامه به طور مداوم در عرض 1 میلی ثانیه از زمان اجرا می شود. برنامه ریزی شده و قبل از پایان پنجره قرعه کشی تکمیل شده است. برای این منظور، یک هسته CPU باید صرفاً برای رشته رندر برنامه VR در حال اجرا در حال اجرا در حالت VR رزرو شود و در cpuset "برنامه برتر" در دسترس قرار گیرد. به همین ترتیب، زمانی که پرچم POWER_HINT_SUSTAINED_PERFORMANCE در power.h HAL در حالت VR تنظیم شده است، زمانی که دستگاه در حالت VR است، باید یک CPU، GPU و ساعت گذرگاه مناسب حفظ شود تا اطمینان حاصل شود که حجم کاری رندر در مدت زمان تعیین شده برای رندر هر فریم به پایان می رسد. تحت فشار حرارتی قرار نمی گیرد.
- برنامههای افزودنی EGL مورد نیاز باید وجود داشته باشد - هر گونه تنظیمات GPU مورد نیاز برای اجازه دادن به قابلیتهای فوق، از جمله برنامههای افزودنی EGL: EGL_ANDROID_create_native_client_buffer، EGL_ANDROID_front_buffer_auto_refresh، EGL_EXT_protected_content، EGL_renderable، EGL_render_Kontent، EGL_renderable EGL_KHR_wait_sync.
- گزارش دقیق حرارتی - دماها و محدودیت های حرارتی دقیق باید در thermal.h HAL گزارش شوند. به طور خاص، دمای فعلی پوست باید بهطور دقیق برای DEVICE_TEMPERATURE_SKIN گزارش شود و vr_throttling_threshold گزارششده برای این دستگاه باید بهطور دقیق محدودیت دمایی را گزارش کند که بالاتر از آن، گاورنر حرارتی دستگاه، CPU، GPU و/یا گذرگاه را کمتر از حداقل لازم برای عملکرد ثابت میکند ( نقطه گلوله قبلی را ببینید).
به طور کلی، از فروشندگانی که این HAL را پیادهسازی میکنند، انتظار میرود که از set_vr_mode به عنوان راهنمایی برای فعال کردن تنظیم عملکرد خاص VR مورد نیاز برای هر یک از الزامات بالا استفاده کنند، و هر ویژگی دستگاه را برای حالتهای نمایش VR بهینه کنند. تماس set_vr_mode ممکن است به سادگی کاری انجام ندهد اگر هیچ بهینهسازی در دسترس نباشد یا برای برآورده کردن الزامات فوق ضروری باشد.
هیچ روشی در این HAL به طور همزمان از فریم ورک اندروید فراخوانی نخواهد شد.
مستندات میدانی
struct hw_module_t مشترک |
روش های رایج ماژول این باید اولین عضو 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) |
وضعیت حالت VR را تنظیم کنید. حالت های احتمالی پارامتر فعال عبارتند از: false - حالت VR غیرفعال است، تمام تنظیمات مربوط به VR را خاموش کنید. درست - حالت VR فعال است، همه تنظیمات مربوط به VR را روشن کنید.
زمانی که سیستم اندروید وارد حالت VR یا خارج می شود، این نام خوانده می شود. این معمولاً زمانی اتفاق میافتد که کاربر به یک برنامه واقعیت مجازی که در حال انجام رندر استریوسکوپی است، یا از آن استفاده میکند.
مستندات این ساختار از فایل زیر تولید شده است:
- hardware/libhardware/include/hardware/ vr.h