Cách sử dụng nâng cao

Các phần sau đây trình bày các chủ đề sử dụng nâng cao không cần thiết để thư viện hoạt động bình thường.

Các trình theo dõi được hỗ trợ khác

Tuning Fork hỗ trợ nhiều trình theo dõi (tracer). Tuning Fork hỗ trợ những trình theo dõi có các khoá xác định xuất phát điểm (instrument key) sau đây:

  • Thời gian giữa các khung hình (gọi là PACED_FRAME_TIME)
  • Thời gian của CPU: Thời gian từ khi bắt đầu một khung hình cho đến khi CPU kết thúc hoạt động cho khung hình (gọi là CPU_TIME)
  • Thời gian GPU: Thời gian để GPU xử lý khung hình trước đó (gọi là GPU_TIME)
  • Thời gian kết xuất khung hình thô, được xác định là thời gian tối đa của CPU và GPU (gọi là RAW_FRAME_TIME). Sự khác biệt giữa tuỳ chọn này và PACED_FRAME_TIME là tuỳ chọn này không bao gồm thời gian chờ nào có trong Swappy hoặc VSync.

Bạn có thể đọc thông tin về các khoá xác định xuất phát điểm này trong tài liệu tham khảo. Một số khoá trong số này được sử dụng tự động khi bạn bật thư viện Tốc độ khung hình Android (Android Frame Pacing), nhưng nếu không bật thư viện này thì bạn phải thể hiện rõ việc sử dụng.

Lấy thông số về độ chân thực

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

Nếu bạn truyền fidelity_params_callback đến TuningFork_init trong phần cài đặt hoặc thư viện đang ở chế độ điều chỉnh theo tỷ lệ, thì bạn không cần gọi hàm này.

Hàm này liên hệ với một máy chủ để truy xuất thông số về độ chân thực. Hoạt động này bị chặn cho đến khi một trong các trường hợp sau đây xảy ra:

  • Các thông số về độ chân thực được truy xuất, với giá trị trả về là TFERROR_OKreturnedParams lưu trữ các thông số này. Trong trường hợp này, tất cả dữ liệu kim đánh dấu nhịp độ khung hình theo sau sẽ được liên kết với returnedParams.
  • Số mili giây bằng với timeout_ms truyền quá và có giá trị trả về là TFERROR_TIMEOUT. Trong trường hợp này, tất cả dữ liệu kim đánh dấu nhịp độ khung hình theo sau sẽ được liên kết với defaultFidelityParams.

Bạn phải gọi TuningFork_init() trước hàm này và bạn phải gọi trên một chuỗi riêng biệt với chuỗi chính (xem TuningFork_startFidelityParamDownloadThread() để nắm được hàm hiệu dụng thực hiện việc này cho bạn). Bạn có thể gọi lại hàm này (chẳng hạn như tại thời điểm tải khi chuyển cấp) để truy xuất lại các thông số về độ chân thực từ máy chủ. Việc này cho phép bạn tự động cập nhật thông số thay vì phải tải lại các thông số đó chỉ khi khởi động. Nếu bạn tải thông số về độ chân thực mới xuống hoặc sử dụng giá trị mặc định mới, thì tất cả dữ liệu kim đánh dấu nhịp độ khung hình trước đó sẽ được gửi.