The following sections outline advanced usage topics not needed for normal operation of the library.

## Other supported tracers

Tuning Fork supports multiple tracers. Tracers with the following instrument keys are supported:

- Time between frame starts (called`PACED_FRAME_TIME`)
- CPU Time: Time between the start of the frame and the end of the CPU work for the frame (called`CPU_TIME`)
- GPU Time: Time for the previous frame to be handled by the GPU (called`GPU_TIME`)
- The raw frame time, defined as the maximum of the CPU and GPU time (called`RAW_FRAME_TIME`). The difference between this option and`PACED_FRAME_TIME`is that this option does not include any wait time included by Swappy or VSync.

You can find these instrument keys in the[reference documentation](https://developer.android.com/games/sdk/reference/performance-tuner/custom-engine). Some of these keys are used automatically when you enable the Android Frame Pacing library, but if you are not enabling this library, you should use them explicitly.

## Get fidelity parameters

[`TFErrorCode TuningFork_getFidelityParameters(const CProtobufSerialization*
defaultParams, CProtobufSerialization* params, uint32_t
timeout_ms);`](https://developer.android.com/games/sdk/reference/performance-tuner/custom-engine/group/tuningfork#tuningfork_getfidelityparameters)

If you pass`fidelity_params_callback`to`TuningFork_init`in settings or the library is in scaled mode, you do not need to call this function.

This function contacts a server to retrieve fidelity parameters. It blocks until one of the following occurs:

- Fidelity parameters are retrieved, with a return value of`TFERROR_OK`and`returnedParams`store the parameters. In this case, all subsequent tick data is associated with`returnedParams`.
- A number of milliseconds equal to`timeout_ms`passes, with a return value of`TFERROR_TIMEOUT`. In this case, all subsequent tick data is associated with`defaultFidelityParams`.

You must call`TuningFork_init()`before this function, and you must call it on a separate thread from the main thread (see[`TuningFork_startFidelityParamDownloadThread()`](https://developer.android.com/games/sdk/reference/performance-tuner/custom-engine/group/tuningfork-extra#tuningfork_startfidelityparamdownloadthread)for a utility function that does this for you). You can call this function again, for example at level-loading time, to retrieve fidelity parameters from the server again. This allows you to dynamically update parameters rather than having to reload them only at start-up. If new fidelity parameters are downloaded or a new default is used, all previous tick data is submitted.