Utilisation avancée

Les sections suivantes décrivent les sujets d'utilisation avancée qui ne sont pas nécessaires au fonctionnement normal de la bibliothèque.

Autres traceurs compatibles

Tuning Fork accepte plusieurs traceurs. Les traceurs avec les clés d'instrumentation suivantes sont acceptés :

  • Délai entre les débuts de frame (appelé PACED_FRAME_TIME).
  • Temps CPU : temps écoulé entre le début du frame et la fin de la tâche du processeur pour ce frame (appelé CPU_TIME).
  • Temps GPU : délai de traitement du frame précédent par le GPU (appelé GPU_TIME).
  • Temps de rendu brut, défini comme le maximum du temps CPU et GPU (appelé RAW_FRAME_TIME). La différence entre cette option et PACED_FRAME_TIME est qu'elle ne tient pas compte du temps d'attente inclus dans Swappy ou VSync.

Vous trouverez ces clés d'instrumentation dans la documentation de référence. Certaines de ces clés sont utilisées automatiquement lorsque vous activez la bibliothèque Android Frame Pacing. Si vous n'activez pas cette bibliothèque, vous devrez les utiliser explicitement.

Obtenir les paramètres de fidélité

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

Si vous transmettez fidelity_params_callback à TuningFork_init dans les paramètres ou que la bibliothèque est en mode de mise à l'échelle, vous n'avez pas besoin d'appeler cette fonction.

Cette fonction contacte un serveur pour récupérer les paramètres de fidélité. Elle est verrouillée jusqu'à ce que l'un des événements suivants se produise :

  • Les paramètres de fidélité sont récupérés, avec la valeur renvoyée TFERROR_OK, et returnedParams stocke les paramètres. Dans ce cas, toutes les données tick ultérieures seront associées à returnedParams.
  • Un nombre de millisecondes égal à timeout_ms s'écoule, avec la valeur renvoyée TFERROR_TIMEOUT. Dans ce cas, toutes les données tick ultérieures seront associées à defaultFidelityParams.

Vous devez appeler TuningFork_init() avant cette fonction et sur un thread distinct du thread principal (consultez la section TuningFork_startFidelityParamDownloadThread() pour vous familiariser avec une fonction utilitaire qui s'en chargera pour vous). Vous pouvez appeler une nouvelle fois cette fonction, par exemple lors du chargement de niveau, afin de récupérer à nouveau les paramètres de fidélité du serveur. Cela vous permet de mettre à jour les paramètres de manière dynamique au lieu de devoir les actualiser seulement au démarrage. Si de nouveaux paramètres de fidélité sont téléchargés ou qu'une nouvelle valeur par défaut est utilisée, toutes les données tick précédentes seront envoyées.