Zaawansowane użycie

W sekcjach poniżej opisano zaawansowane tematy dotyczące używania, które nie są potrzebne do normalnego działania biblioteki.

Inne obsługiwane narzędzia do śledzenia

Tuning Fork obsługuje wiele śledzeń. Obsługiwane są ślady z tymi kluczami instrumentów:

  • Czas między rozpoczęciem klatek (nazywany PACED_FRAME_TIME)
  • Czas pracy procesora: czas od rozpoczęcia klatki do zakończenia pracy procesora nad klatką (nazywany CPU_TIME).
  • Czas przetwarzania przez GPU: czas przetwarzania poprzedniej klatki przez GPU (nazywanyGPU_TIME)
  • Surowy czas klatki, zdefiniowany jako maksimum czasu procesora i GPU (nazywany RAW_FRAME_TIME). Różnica między tą opcją a PACED_FRAME_TIME polega na tym, że ta opcja nie obejmuje czasu oczekiwania uwzględnianego przez Swappy ani synchronizację pionową.

Klucze instrumentów znajdziesz w dokumentacji. Niektóre z tych kluczy są używane automatycznie po włączeniu biblioteki Android Frame Pacing, ale jeśli nie włączasz tej biblioteki, musisz używać ich jawnie.

Pobieranie parametrów wierności

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

Jeśli przekażesz wartość fidelity_params_callback do TuningFork_init w ustawieniach lub biblioteka jest w trybie skalowania, nie musisz wywoływać tej funkcji.

Ta funkcja kontaktuje się z serwerem, aby pobrać parametry wierności. Blokuje się do momentu wystąpienia jednego z tych zdarzeń:

  • Parametry wierności są pobierane, a wartość zwracana to TFERROR_OKreturnedParams. W takim przypadku wszystkie kolejne dane o zmianach cen są powiązane z returnedParams.
  • Mija liczba milisekund równa timeout_ms, a funkcja zwraca wartość TFERROR_TIMEOUT. W tym przypadku wszystkie kolejne dane o zmianach cen są powiązane z wartością defaultFidelityParams.

Przed wywołaniem tej funkcji musisz wywołać funkcję TuningFork_init() w osobnym wątku (zobacz TuningFork_startFidelityParamDownloadThread(), aby poznać funkcję narzędziową, która to robi). Możesz ponownie wywołać tę funkcję, np. podczas wczytywania poziomu, aby ponownie pobrać parametry wierności z serwera. Dzięki temu możesz dynamicznie aktualizować parametry, zamiast wczytywać je tylko podczas uruchamiania. Jeśli zostaną pobrane nowe parametry wierności lub zostanie użyta nowa wartość domyślna, zostaną przesłane wszystkie poprzednie dane dotyczące ticków.