vr_module 結構參考

vr_module 結構參考

#include < vr.h >

資料欄位

結構體hw_module_t常見的
空白(*初始化)(結構vr_module *模組)
空白(* set_vr_mode )(struct vr_module *module, bool 啟用)
空白 *保留[8-2]

詳細說明

實現此 HAL 以在使用虛擬實境 (VR) 應用程式時接收回呼。 VR 應用程式具有許多特殊的顯示和效能要求,包括:

  • 低感測器延遲 - 從 IMU、加速度計和陀螺儀到應用程式可見回調的總端到端延遲必須極低(通常 <5 毫秒)。這是 HIFI 感測器支援所必需的。
  • 低顯示延遲 - 從 GPU 繪製呼叫到實際顯示更新的總端到端延遲必須盡可能低。這是透過在單一緩衝模式下使用 SurfaceFlinger 並確保繪製呼叫與顯示掃描輸出正確同步來實現的。此行為透過應用程式的 EGL 擴充功能公開。請參閱下文以了解所需的 EGL 擴充功能。
  • 低餘輝顯示 - 顯示餘輝設定必須設定得盡可能低,同時仍保持合理的亮度。對於以 60Hz 運作的典型顯示器,像素點亮時間應小於等於 3.5 毫秒,才被視為低餘輝。這可以避免在 VR 設定中移動期間出現重影,並且應在設定 BRIGHTNESS_MODE_LOW_PERSISTENCE 時從lighting.h HAL 啟用。
  • GPU 和 CPU 的一致性能 - 當為 VR 應用程式提供混合 GPU/CPU 工作負載且每幀定期多次突發工作時,CPU 調度應確保應用程式渲染執行緒工作在 1 毫秒內一致運行計劃並在抽獎窗口結束前完成。為此,必須在 VR 模式下為目前運行的 VR 應用程式的渲染線程保留一個 CPU 核心,並在「頂級應用程式」CPU 集中可用。同樣,必須保持適當的 CPU、GPU 和匯流排時脈頻率,以確保在設備處於 VR 模式時,當power.h HAL 中設定了 POWER_HINT_SUSTAINED_PERFORMANCE 標誌時,渲染工作負載在分配給渲染每個幀的時間內完成。沒有受到熱節流。
  • 必須有必要的 EGL 擴充功能 - 需要允許上述功能所需的任何 GPU 設置,包括 EGL 擴充功能:EGL_ANDROID_create_native_client_buffer、EGL_ANDROID_front_buffer_auto_refresh、EGL_EXT_protected_content、EGL_KHR_mutable_hfresh、EGL_EXT_profidted_Fy_Fal_HR_
  • 準確的熱報告 - 必須在Thermal.h HAL 中報告準確的熱溫度和限制。具體來說,必須準確報告DEVICE_TEMPERATURE_SKIN 的當前皮膚溫度,並且為此設備報告的vr_throtdling_threshold 必須準確報告溫度限制,高於該溫度限制,設備的熱調節器將CPU、GPU 和/或總線時鐘速率限制在一致效能所需的最低值以下(請參閱前面的要點)。

一般來說,實現此 HAL 的供應商應使用 set_vr_mode 作為提示,以啟用滿足上述任何要求所需的 VR 特定效能調整,並開啟最適合 VR 顯示模式的任何裝置功能。如果沒有可用的最佳化或沒有必要進行最佳化來滿足上述要求,則 set_vr_mode 呼叫可能不會執行任何操作。

Android 框架不會同時呼叫此 HAL 中的任何方法。

定義位於檔案vr.h82行。

現場文檔

結構體hw_module_t公共

模組的常用方法。這必須vr_module的第一個成員,因為結構的使用者可以在已知hw_module_t引用vr_module 的上下文中將hw_module_t強制轉換為vr_module指標。

定義位於檔案vr.h89行。

void(* init)(struct vr_module *module)

HAL 實現設定運行時啟動所需的任何狀態的便捷方法。這在引導階段從 VrManagerService 呼叫一次。在 init 之前不會呼叫此 HAL 中的任何方法。

定義位於檔案vr.h96行。

void* 保留[8-2]

定義位於檔案vr.h的第110行。

void(* set_vr_mode)(struct vr_module *module, bool 啟用)

設定 VR 模式狀態。啟用參數的可能狀態有: false - VR 模式已停用,關閉所有 VR 特定設定。 true - VR 模式已啟用,開啟所有 VR 特定設定。

每當 Android 系統進入或離開 VR 模式時都會呼叫此函數。當使用者切換到正在進行立體渲染的 VR 應用程式或從正在進行立體渲染的 VR 應用程式切換時,通常會發生這種情況。

文件vr.h107行的定義。


該結構的文檔是從以下文件產生的:
  • 硬體/libhardware/include/hardware/vr.h