進階用法

以下各節概略說明對程式庫一般作業而言非必要的進階用法相關主題。

其他支援的追蹤器

Tuning Fork 支援多個追蹤器。支援具有以下檢測金鑰的追蹤器:

  • 影格開始到下一個影格開始的這段時間 (稱為「PACED_FRAME_TIME」)
  • CPU 作業時間:從影格開始到 CPU 結束處理影格的這段時間 (稱為「CPU_TIME」)
  • GPU 作業時間:GPU 將處理的上一個影格的時間 (稱為「GPU_TIME」)
  • 原始影格時間,也就是 CPU 和 GPU 作業時間的長度上限 (稱為「RAW_FRAME_TIME」)。這個選項和 PACED_FRAME_TIME 之間的差異,在於這個選項不包含 Swappy 或 VSync 所包含的任何等待時間。

這些檢測金鑰列於參考說明文件中。 當你啟用 Android 影格速率程式庫時,系統會自動使用其中的部分金鑰;但如果未啟用這個程式庫,請手動使用這些金鑰。

取得擬真度參數

TFErrorCode TuningFork_getFidelityParameters(const CProtobufSerialization* defaultParams, CProtobufSerialization* params, uint32_t timeout_ms);

如果你在設定中將 fidelity_params_callback 傳遞至 TuningFork_init,或程式庫處於資源調度模式,則不需要呼叫此函式。

此函式會與伺服器聯絡,以擷取擬真度參數。封鎖作業會執行至發生下列其中一種情況為止:

  • 系統擷取擬真度參數並傳回 TFERROR_OK 的值,並由 returnedParams 儲存參數。在這種情況下,所有後續的滴答資料都會與 returnedParams 建立關聯。
  • 傳遞等於 timeout_ms 的毫秒數並傳回 TFERROR_TIMEOUT 的值。在這種情況下,所有後續的滴答資料都會與 defaultFidelityParams 建立關聯。

你必須在這個函式之前呼叫 TuningFork_init(),而且必須在主執行緒以外的其他執行緒中呼叫 (如需使用可代為呼叫的公用函式,請參閱 TuningFork_startFidelityParamDownloadThread())。你可以再次呼叫此函式 (例如在層級載入時),以便再次從伺服器擷取擬真度參數。如此一來,你就能動態更新參數,而不需要在啟動時重新載入參數。如果下載了新的擬真度參數或採用新的預設參數,則系統會提交先前所有的滴答資料。