การอ้างอิงโครงสร้าง vr_module

การอ้างอิงโครงสร้าง vr_module

#include < vr.h >

เขตข้อมูล

โครงสร้าง hw_module_t ทั่วไป
เป็นโมฆะ(* init )(struct vr_module *โมดูล)
เป็นโมฆะ(* set_vr_mode ) (struct vr_module * โมดูล, เปิดใช้งานบูล)
เป็นโมฆะ * สงวนไว้ [8-2]

คำอธิบายโดยละเอียด

ใช้ HAL นี้เพื่อรับการติดต่อกลับเมื่อมีการใช้แอปพลิเคชันความเป็นจริงเสมือน (VR) แอปพลิเคชัน VR มีข้อกำหนดการแสดงผลและประสิทธิภาพพิเศษหลายประการเป็นพิเศษ ซึ่งรวมถึง:

  • เวลาแฝงของเซ็นเซอร์ต่ำ - เวลาแฝงตั้งแต่ต้นทางถึงปลายทางทั้งหมดตั้งแต่ IMU, มาตรความเร่ง และไจโรไปจนถึงการโทรกลับที่แอปพลิเคชันมองเห็นจะต้องต่ำมาก (โดยทั่วไป <5ms) สิ่งนี้จำเป็นสำหรับการรองรับเซ็นเซอร์ HIFI
  • เวลาแฝงในการแสดงผลต่ำ - เวลาแฝงตั้งแต่ต้นทางถึงปลายทางทั้งหมดจากการเรียก GPU ไปจนถึงการอัปเดตจอแสดงผลจริงจะต้องต่ำที่สุดเท่าที่จะเป็นไปได้ ซึ่งทำได้โดยใช้ SurfaceFlinger ในโหมดบัฟเฟอร์เดี่ยว และรับประกันว่าการโทรที่ดึงข้อมูลจะซิงโครไนซ์กับการสแกนจอแสดงผลอย่างถูกต้อง ลักษณะการทำงานนี้เปิดเผยผ่านส่วนขยาย EGL ไปยังแอปพลิเคชัน ดูส่วนขยาย EGL ที่จำเป็นสำหรับสิ่งนี้ด้านล่าง
  • จอแสดงผลมีความคงทนต่ำ - การตั้งค่าความคงอยู่ของจอแสดงผลจะต้องตั้งค่าให้ต่ำที่สุดเท่าที่เป็นไปได้โดยยังคงรักษาความสว่างที่เหมาะสมไว้ สำหรับจอแสดงผลทั่วไปที่ทำงานที่ 60Hz พิกเซลควรสว่างเป็นเวลา <=3.5ms ถือว่ามีความคงทนต่ำ วิธีนี้จะหลีกเลี่ยงภาพซ้อนระหว่างการเคลื่อนไหวในการตั้งค่า VR และควรเปิดใช้งานจาก ไฟ h HAL เมื่อตั้งค่า BRIGHTNESS_MODE_LOW_PERSISTENCE
  • ประสิทธิภาพที่สม่ำเสมอของ GPU และ CPU - เมื่อได้รับปริมาณงาน GPU/CPU ผสมสำหรับแอปพลิเคชัน VR ที่มีการทำงานต่อเนื่องในช่วงเวลาปกติหลาย ๆ ครั้งต่อเฟรม การกำหนดเวลา CPU ควรตรวจสอบให้แน่ใจว่าเธรดการเรนเดอร์แอปพลิเคชันทำงานอย่างสม่ำเสมอภายใน 1 มิลลิวินาทีของเวลาที่ กำหนดไว้และเสร็จสิ้นก่อนสิ้นสุดหน้าต่างการจับรางวัล ด้วยเหตุนี้ CPU คอร์เดี่ยวจะต้องถูกสงวนไว้สำหรับเธรดการเรนเดอร์ของแอปพลิเคชัน VR ที่กำลังรันอยู่ในปัจจุบันเท่านั้นในขณะที่อยู่ในโหมด VR และเปิดให้ใช้งานได้ในชุด CPU "บนสุดของแอป" ในทำนองเดียวกัน จะต้องรักษาความเร็วนาฬิกาของ CPU, GPU และบัสที่เหมาะสมเพื่อให้แน่ใจว่าปริมาณงานการเรนเดอร์เสร็จสิ้นภายในเวลาที่กำหนดเพื่อเรนเดอร์แต่ละเฟรมเมื่อตั้งค่าสถานะ POWER_HINT_SUSTAINED_PERFORMANCE ใน power.h HAL ขณะอยู่ในโหมด VR เมื่ออุปกรณ์อยู่ ไม่ถูกควบคุมปริมาณความร้อน
  • ต้องมีส่วนขยาย EGL ที่จำเป็น - จำเป็นต้องมีการตั้งค่า GPU ใดๆ ที่จำเป็นเพื่อให้มีความสามารถข้างต้น รวมถึงส่วนขยาย 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 _ซิงค์
  • การรายงานความร้อนที่แม่นยำ - ต้องรายงานอุณหภูมิและขีดจำกัดความร้อนที่แม่นยำใน Thermal.h HAL โดยเฉพาะอย่างยิ่ง ต้องรายงานอุณหภูมิผิวปัจจุบันสำหรับ DEVICE_TEMPERATURE_SKIN อย่างถูกต้อง และ vr_throttling_threshold ที่รายงานสำหรับอุปกรณ์นี้จะต้องรายงานขีดจำกัดอุณหภูมิที่สูงกว่านั้นอย่างแม่นยำซึ่งผู้ควบคุมความร้อนของอุปกรณ์ควบคุมความเร็วสัญญาณนาฬิกาของ CPU, GPU และ/หรือบัสต่ำกว่าค่าต่ำสุดที่จำเป็นสำหรับประสิทธิภาพที่สอดคล้องกัน ( ดูหัวข้อย่อยก่อนหน้า)

โดยทั่วไป ผู้จำหน่ายที่ใช้ HAL นี้คาดว่าจะใช้ set_vr_mode เป็นคำแนะนำในการเปิดใช้งานการปรับแต่งประสิทธิภาพเฉพาะ VR ซึ่งจำเป็นสำหรับข้อกำหนดข้างต้น และเพื่อเปิดคุณสมบัติของอุปกรณ์ใดๆ ที่ปรับให้เหมาะสมที่สุดสำหรับโหมดการแสดงผล VR การเรียก set_vr_mode อาจไม่ทำอะไรเลยหากไม่มีการปรับให้เหมาะสมหรือจำเป็นเพื่อให้เป็นไปตามข้อกำหนดข้างต้น

จะไม่มีการเรียกเมธอดใน HAL นี้พร้อมกันจากเฟรมเวิร์ก Android

คำจำกัดความที่บรรทัด 82 ของไฟล์ vr.h

เอกสารภาคสนาม

struct hw_module_t ทั่วไป

วิธีการทั่วไปของโมดูล นี่ จะต้อง เป็นสมาชิกคนแรกของ vr_module เนื่องจากผู้ใช้โครงสร้างนี้อาจส่ง hw_module_t ไปยังตัวชี้ vr_module ในบริบทที่ทราบกันว่า hw_module_t อ้างอิงถึง vr_module

คำจำกัดความที่บรรทัด 89 ของไฟล์ vr.h

เป็นโมฆะ (* init) (struct vr_module * โมดูล)

วิธีการที่สะดวกสบายสำหรับการใช้งาน HAL เพื่อตั้งค่าสถานะใดๆ ที่จำเป็นเมื่อเริ่มต้นรันไทม์ สิ่งนี้ถูกเรียกหนึ่งครั้งจาก VrManagerService ในระหว่างขั้นตอนการบูต จะไม่มีการเรียกเมธอดจาก HAL นี้ก่อน init

คำจำกัดความที่บรรทัดที่ 96 ของไฟล์ vr.h

เป็นโมฆะ* สงวนไว้[8-2]

คำจำกัดความที่บรรทัด 110 ของไฟล์ vr.h

เป็นโมฆะ (* set_vr_mode) (struct vr_module * โมดูล, เปิดใช้งานบูล)

ตั้งค่าสถานะโหมด VR สถานะที่เป็นไปได้ของพารามิเตอร์ที่เปิดใช้งานคือ: เท็จ - โหมด VR ถูกปิดใช้งาน ปิดการตั้งค่าเฉพาะ VR ทั้งหมด จริง - เปิดใช้งานโหมด VR แล้ว เปิดการตั้งค่าเฉพาะ VR ทั้งหมด

สิ่งนี้จะถูกเรียกเมื่อใดก็ตามที่ระบบ Android เข้าหรือออกจากโหมด VR โดยทั่วไปสิ่งนี้จะเกิดขึ้นเมื่อผู้ใช้สลับไปหรือจากแอปพลิเคชัน VR ที่กำลังทำการเรนเดอร์สามมิติ

คำจำกัดความที่บรรทัด 107 ของไฟล์ vr.h


เอกสารประกอบสำหรับโครงสร้างนี้สร้างขึ้นจากไฟล์ต่อไปนี้:
  • ฮาร์ดแวร์ / libhardware / รวม / ฮาร์ดแวร์ / vr.h