Расширенное использование

В следующих разделах описываются темы расширенного использования, не требующиеся для нормальной работы библиотеки.

Другие поддерживаемые трассировщики

Tuning Fork поддерживает несколько трейсеров. Поддерживаются трейсеры со следующими тональностями:

  • Время между запусками кадров (называется PACED_FRAME_TIME )
  • Время ЦП: время между началом кадра и окончанием работы ЦП над кадром (называется CPU_TIME ).
  • Время GPU: время, необходимое графическому процессору для обработки предыдущего кадра (называется GPU_TIME ).
  • Необработанное время кадра, определяемое как максимальное время центрального и графического процессоров ( RAW_FRAME_TIME ). Разница между этим параметром и PACED_FRAME_TIME заключается в том, что этот параметр не учитывает время ожидания, учитываемое Swappy или VSync.

Эти клавиши инструментов можно найти в справочной документации . Некоторые из них используются автоматически при включении библиотеки Android Frame Pacing, но если вы не включаете эту библиотеку, их следует использовать явно.

Получить параметры точности

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

Если вы передаете fidelity_params_callback в TuningFork_init в настройках или библиотека находится в масштабируемом режиме, вам не нужно вызывать эту функцию.

Эта функция обращается к серверу для получения параметров точности. Она блокируется до тех пор, пока не произойдет одно из следующих событий:

  • Параметры точности извлекаются, возвращая значение TFERROR_OK , а returnedParams параметры сохраняются в returnParams. В этом случае все последующие данные тика связываются с returnedParams .
  • Проходит количество миллисекунд, равное timeout_ms , с возвращаемым значением TFERROR_TIMEOUT . В этом случае все последующие данные тика связываются с defaultFidelityParams .

Перед этой функцией необходимо вызвать TuningFork_init() , причем вызвать ее необходимо в отдельном потоке, отличном от основного (см. TuningFork_startFidelityParamDownloadThread() , где описана вспомогательная функция, выполняющая эту функцию). Вы можете вызвать эту функцию повторно, например, во время загрузки уровня, чтобы снова получить параметры точности с сервера. Это позволяет динамически обновлять параметры, а не загружать их только при запуске. При загрузке новых параметров точности или использовании нового значения по умолчанию все предыдущие данные тиков передаются.