שימוש מתקדם

בקטעים הבאים מפורטים נושאים מתקדמים לשימוש בספרייה, שלא נדרשים לפעולה רגילה שלה.

כלי מעקב נתמכים אחרים

הכלי Tuning Fork תומך בכמה כלי מעקב. יש תמיכה ב-Tracers עם מפתחות המכשירים הבאים:

  • הזמן בין התחלות של פריים (נקרא PACED_FRAME_TIME)
  • זמן CPU: הזמן שחלף בין תחילת הפריים לסיום העבודה של ה-CPU על הפריים (נקרא CPU_TIME)
  • זמן GPU: הזמן שנדרש ל-GPU לטפל בפריים הקודם (נקרא GPU_TIME)
  • זמן הפריים הגולמי, שמוגדר כזמן המקסימלי של CPU ו-GPU (נקרא 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, והפרמטרים נשמרים. במקרה כזה, כל נתוני הטיקים הבאים משויכים ל-returnedParams.
  • עוברים timeout_ms מילי-שניות, וערך ההחזרה הוא TFERROR_TIMEOUT. במקרה כזה, כל נתוני הטיקים הבאים משויכים ל-defaultFidelityParams.

צריך לקרוא לפונקציה TuningFork_init() לפני הפונקציה הזו, ולקרוא לה ב-thread נפרד מה-thread הראשי (במאמר TuningFork_startFidelityParamDownloadThread() מוסבר על פונקציית כלי עזר שעושה את זה בשבילכם). אפשר לקרוא לפונקציה הזו שוב, למשל בזמן טעינת הרמה, כדי לאחזר שוב מהשרת פרמטרים של דיוק. כך אפשר לעדכן פרמטרים באופן דינמי במקום לטעון אותם מחדש רק בהפעלה. אם מורידים פרמטרים חדשים של דיוק או משתמשים בברירת מחדל חדשה, כל נתוני הטיקים הקודמים נשלחים.