Antarmuka utama Tuning Fork

Antarmuka utama untuk menggunakan Tuning Fork.

Ringkasan

Enumerasi

InstrumentKeys{
  TFTICK_RAW_FRAME_TIME = 64000,
  TFTICK_PACED_FRAME_TIME = 64001,
  TFTICK_CPU_TIME = 64002,
  TFTICK_GPU_TIME = 64003
}
enum
Kunci instrumen yang menunjukkan periode waktu dalam frame.
TFErrorCode{
  TFERROR_OK = 0,
  TFERROR_NO_SETTINGS = 1,
  TFERROR_NO_SWAPPY = 2,
  TFERROR_INVALID_DEFAULT_FIDELITY_PARAMS = 3,
  TFERROR_NO_FIDELITY_PARAMS = 4,
  TFERROR_TUNINGFORK_NOT_INITIALIZED = 5,
  TFERROR_INVALID_ANNOTATION = 6,
  TFERROR_INVALID_INSTRUMENT_KEY = 7,
  TFERROR_INVALID_TRACE_HANDLE = 8,
  TFERROR_TIMEOUT = 9,
  TFERROR_BAD_PARAMETER = 10,
  TFERROR_B64_ENCODE_FAILED = 11,
  TFERROR_JNI_BAD_VERSION = 12,
  TFERROR_JNI_BAD_THREAD = 13,
  TFERROR_JNI_BAD_ENV = 14,
  TFERROR_JNI_EXCEPTION = 15,
  TFERROR_JNI_BAD_JVM = 16,
  TFERROR_NO_CLEARCUT = 17,
  TFERROR_NO_FIDELITY_PARAMS_IN_APK = 18,
  TFERROR_COULDNT_SAVE_OR_DELETE_FPS = 19,
  TFERROR_PREVIOUS_UPLOAD_PENDING = 20,
  TFERROR_UPLOAD_TOO_FREQUENT = 21,
  TFERROR_NO_SUCH_KEY = 22,
  TFERROR_BAD_FILE_OPERATION = 23,
  TFERROR_BAD_SETTINGS = 24,
  TFERROR_ALREADY_INITIALIZED = 25,
  TFERROR_NO_SETTINGS_ANNOTATION_ENUM_SIZES = 26,
  TFERROR_DOWNLOAD_THREAD_ALREADY_STARTED = 27,
  TFERROR_PLATFORM_NOT_SUPPORTED = 28,
  TFERROR_GENERATE_TUNING_PARAMETERS_ERROR = 29,
  TFERROR_GENERATE_TUNING_PARAMETERS_RESPONSE_NOT_SUCCESS = 30
}
enum
Semua kode error yang dapat ditampilkan oleh fungsi Tuning Fork.

Typedef

ProtoCallback)(const CProtobufSerialization *) typedef
void(*
Pointer ke fungsi yang dapat dilampirkan ke TFSettings::fidelity_params_callback.
SwappyTracerFn)(const SwappyTracer *) typedef
void(*
Pointer ke Swappy_injectTracers yang dapat dilampirkan ke TFSettings::swappy_tracer_fn.
TFDuration typedef
uint64_t
Durasi dalam nanodetik.
TFInstrumentKey typedef
uint16_t
Kunci instrumentasi mengidentifikasi titik tick dalam frame atau segmen trace.
TFTimePoint typedef
uint64_t
Waktu dalam milidetik setelah epoch.
TFTraceHandle typedef
uint64_t
Handle trace yang digunakan di TuningFork_startTrace.
UploadCallback)(const char *, size_t n) typedef
void(*
Pointer ke fungsi yang dapat diteruskan ke TuningFork_setUploadCallback.

Fungsi

CProtobufSerialization_Free(CProtobufSerialization *ser)
void
Menghapus alokasi semua memori yang dimiliki oleh serialisasi buffering prokol.
TuningFork_destroy()
Membersihkan semua memori yang dimiliki Tuning Fork dan menghentikan semua thread.
TuningFork_enableMemoryRecording(bool enable)
Mengaktifkan atau menonaktifkan perekaman telemetri memori.
TuningFork_endTrace(TFTraceHandle handle)
Menghentikan dan merekam segmen trace.
TuningFork_flush()
Memaksa upload histogram saat ini.
TuningFork_frameDeltaTimeNanos(TFInstrumentKey key, TFDuration dt)
Merekam tick frame menggunakan waktu eksternal, bukan waktu sistem.
TuningFork_frameTick(TFInstrumentKey key)
Merekam tick frame yang akan dikaitkan dengan kunci instrumentasi dan anotasi saat ini.
TuningFork_getFidelityParameters(const CProtobufSerialization *defaultParams, CProtobufSerialization *params, uint32_t timeout_ms)
Panggilan pemblokiran untuk mendapatkan parameter fidelitas dari server.
TuningFork_init(const TFSettings *settings, JNIEnv *env, jobject context)
Menginisialisasi Tuning Fork.
TuningFork_setCurrentAnnotation(const CProtobufSerialization *annotation)
Menyetel anotasi saat ini.
TuningFork_setFidelityParameters(const CProtobufSerialization *params)
Menyetel parameter fidelitas yang saat ini aktif.
TuningFork_setUploadCallback(UploadCallback cbk)
Menyetel callback untuk dipanggil pada thread terpisah setiap kali TuningFork melakukan upload.
TuningFork_startTrace(TFInstrumentKey key, TFTraceHandle *handle)
Memulai segmen trace.

Struct

CProtobufSerialization

Serangkaian byte yang mewakili buffering protokol serial.

TFSettings

Setelan inisialisasi Nol nilai mana pun yang tidak digunakan.

Enumerasi

InstrumentKeys

 InstrumentKeys

Kunci instrumen yang menunjukkan periode waktu dalam frame.

Kunci 64000-65535 telah dipesan

Properti
TFTICK_CPU_TIME

Waktu antara frame dimulai dan panggilan ke Swappy_swap.

TFTICK_GPU_TIME

Waktu antara pertukaran buffering dan pemicu fence GPU.

TFTICK_PACED_FRAME_TIME

Waktu frame antara akhir panggilan eglSwapBuffers atau antrean Vulkan yang ada.

TFTICK_RAW_FRAME_TIME

Jika waktu GPU tersedia, ini adalah MAX(CPU_TIME,GPU_TIME). Jika tidak, ini sama dengan PACED_FRAME_TIME.

TFErrorCode

 TFErrorCode

Semua kode error yang dapat ditampilkan oleh fungsi Tuning Fork.

Properti
TFERROR_ALREADY_INITIALIZED

TuningFork_init dipanggil lebih dari sekali.

TFERROR_B64_ENCODE_FAILED

Tidak dapat mengenkode protobuf.

TFERROR_BAD_FILE_OPERATION

Error file umum.

TFERROR_BAD_PARAMETER

Parameter buruk generik.

TFERROR_BAD_SETTINGS

File Tuningfork_settings.bin tidak valid.

TFERROR_COULDNT_SAVE_OR_DELETE_FPS

Error saat memanggil TuningFork_saveOrDeleteFidelityParamsFile.

TFERROR_DOWNLOAD_THREAD_ALREADY_STARTED

TuningFork_startFidelityParamDownloadThread dipanggil lebih dari sekali, atau dipanggil saat TuningFork_init sudah mulai didownload.

TFERROR_GENERATE_TUNING_PARAMETERS_ERROR

Terjadi error saat menguraikan respons ke generateTuningParameters.

TFERROR_GENERATE_TUNING_PARAMETERS_RESPONSE_NOT_SUCCESS

Respons dari generateTuningParameters bukan kode yang berhasil.

TFERROR_INVALID_ANNOTATION

Parameter tidak valid untuk TuningFork_setCurrentAnnotation.

TFERROR_INVALID_DEFAULT_FIDELITY_PARAMS

fpDefaultFileNum di luar jangkauan.

TFERROR_INVALID_INSTRUMENT_KEY

Kunci instrumen tidak valid diteruskan ke fungsi tick.

TFERROR_INVALID_TRACE_HANDLE

Handle tidak valid diteruskan ke TuningFork_endTrace.

TFERROR_JNI_BAD_ENV

Jni error - obsolete.

TFERROR_JNI_BAD_JVM

Jni error - obsolete.

TFERROR_JNI_BAD_THREAD

Jni error - obsolete.

TFERROR_JNI_BAD_VERSION

Jni error - obsolete.

TFERROR_JNI_EXCEPTION

Jni error - pengecualian ditampilkan. Lihat output logcat.

TFERROR_NO_CLEARCUT

Obsolete.

TFERROR_NO_FIDELITY_PARAMS

Tidak ditemukan parameter fidelitas saat inisialisasi.

TFERROR_NO_FIDELITY_PARAMS_IN_APK

Tidak ditemukan dev_tuningfork_fidelityparams_#.bin di aset/tuningfork.

TFERROR_NO_SETTINGS

Tidak ditemukan tuningfork_settings.bin di aset/tuningfork.

TFERROR_NO_SETTINGS_ANNOTATION_ENUM_SIZES

Bagian yang tidak ada dari tuningfork_settings.bin.

TFERROR_NO_SUCH_KEY

Tidak ada kunci tersebut saat mengakses cache file.

TFERROR_NO_SWAPPY

Tidak dapat menemukan fungsi Swappy yang diperlukan.

TFERROR_OK

Tidak ada error.

TFERROR_PLATFORM_NOT_SUPPORTED

Game atau aplikasi dijalankan pada platform yang tidak mendukung Tuning fork.

Khusus digunakan oleh plugin Unity.

TFERROR_PREVIOUS_UPLOAD_PENDING

Tidak dapat mengupload karena permintaan lain tertunda.

TFERROR_TIMEOUT

Waktu tunggu dalam permintaan untuk parameter fidelitas.

TFERROR_TUNINGFORK_NOT_INITIALIZED

Panggilan dibuat sebelum Tuning Fork diinisialisasi.

TFERROR_UPLOAD_TOO_FREQUENT

Panggilan terlalu sering ke TuningFork_flush.

Typedef

ProtoCallback

void(* ProtoCallback)(const CProtobufSerialization *)

Pointer ke fungsi yang dapat dilampirkan ke TFSettings::fidelity_params_callback.

Fungsi yang akan dipanggil dengan parameter fidelitas yang didownload. Lihat juga:TFSettings

SwappyTracerFn

void(* SwappyTracerFn)(const SwappyTracer *)

Pointer ke Swappy_injectTracers yang dapat dilampirkan ke TFSettings::swappy_tracer_fn.

Lihat juga: TFSettings

TFDuration

uint64_t TFDuration

Durasi dalam nanodetik.

TFInstrumentKey

uint16_t TFInstrumentKey

Kunci instrumentasi mengidentifikasi titik tick dalam frame atau segmen trace.

TFTimePoint

uint64_t TFTimePoint

Waktu dalam milidetik setelah epoch.

TFTraceHandle

uint64_t TFTraceHandle

Handle trace yang digunakan di TuningFork_startTrace.

UploadCallback

void(* UploadCallback)(const char *, size_t n)

Pointer ke fungsi yang dapat diteruskan ke TuningFork_setUploadCallback.

Fungsi yang akan dipanggil pada thread terpisah setiap kali TuningFork melakukan upload. Lihat juga:TFSettings

Fungsi

CProtobufSerialization_Free

void CProtobufSerialization_Free(
  CProtobufSerialization *ser
)

Menghapus alokasi semua memori yang dimiliki oleh serialisasi buffering prokol.

Detail
Parameter
ser
Serialisasi buffering protokol

TuningFork_destroy

TFErrorCode TuningFork_destroy()

Membersihkan semua memori yang dimiliki Tuning Fork dan menghentikan semua thread.

Detail
Hasil
TFERROR_OK kecuali Tuning Fork tidak diinisialisasi.

TuningFork_enableMemoryRecording

TFErrorCode TuningFork_enableMemoryRecording(
  bool enable
)

Mengaktifkan atau menonaktifkan perekaman telemetri memori.

Secara default, perekaman telemetri memori diaktifkan saat inisialisasi.

Detail
Parameter
enable
Jika true, perekaman memori akan diaktifkan, jika false, akan dinonaktifkan.
Hasil
TFERROR_OK kecuali Tuning Fork tidak diinisialisasi.

TuningFork_endTrace

TFErrorCode TuningFork_endTrace(
  TFTraceHandle handle
)

Menghentikan dan merekam segmen trace.

Detail
Parameter
handle
ini adalah handle yang sebelumnya ditampilkan oleh TuningFork_startTrace
Hasil
TFERROR_INVALID_TRACE_HANDLE jika handle tidak valid. TFERROR_OK saat berhasil.

TuningFork_flush

TFErrorCode TuningFork_flush()

Memaksa upload histogram saat ini.

Detail
Hasil
TFERROR_OK jika upload dapat diinisialisasi. TFERROR_PREVIOUS_UPLOAD_PENDING jika ada upload sebelumnya yang memblokirnya. TFERROR_UPLOAD_TOO_FREQUENT jika telah berlalu kurang dari satu menit sejak upload sebelumnya.

TuningFork_frameDeltaTimeNanos

TFErrorCode TuningFork_frameDeltaTimeNanos(
  TFInstrumentKey key,
  TFDuration dt
)

Merekam tick frame menggunakan waktu eksternal, bukan waktu sistem.

Lihat juga: kunci instrumen yang dipesan di atas

Detail
Parameter
key
kunci instrumen
Parameter
dt
durasi yang ingin Anda rekam (dalam nanodetik)
Hasil
TFERROR_INVALID_INSTRUMENT_KEY jika kunci instrumen tidak valid. TFERROR_OK saat berhasil.

TuningFork_frameTick

TFErrorCode TuningFork_frameTick(
  TFInstrumentKey key
)

Merekam tick frame yang akan dikaitkan dengan kunci instrumentasi dan anotasi saat ini.

Catatan: memanggil fungsi tick atau trace dari thread yang berbeda diperbolehkan, tetapi kunci instrumen tunggal harus selalu di-tick dari thread yang sama. Lihat juga: kunci instrumen yang dipesan di atas

Detail
Parameter
key
kunci instrumen
Hasil
TFERROR_INVALID_INSTRUMENT_KEY jika kunci instrumen tidak valid. TFERROR_OK saat berhasil.

TuningFork_getFidelityParameters

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

Panggilan pemblokiran untuk mendapatkan parameter fidelitas dari server.

Anda tidak perlu memanggil ini jika meneruskan fidelity_params_callback sebagai bagian dari setelan ke TuningFork_init. Perhatikan bahwa setelah parameter fidelitas didownload, informasi pengaturan waktu direkam sebagai terkait dengan parameter tersebut. Jika memanggil GetFidelityParameters dan sekumpulan parameter baru telah didownload, setiap data yang telah dikumpulkan akan dikirimkan ke backend. Kepemilikan 'parameter' ditransfer ke pemanggil, sehingga harus memanggil parameter->dealloc saat selesai menggunakannya. Permintaan parameter dikirim ke: ${url_base}+'applications/'+package_name+'/apks/'+version_number+':generateTuningParameters'.

Detail
Parameter
defaultParams
ini akan dianggap saat ini jika tidak ada parameter yang dapat didownload.
params
timeout_ms
waktu tunggu sebelum kembali dari panggilan ini saat tidak ada koneksi yang dapat dilakukan Jika nol atau negatif, nilai di Settings.initial_request_timeout_ms akan digunakan.
Hasil
TFERROR_TIMEOUT jika ada waktu tunggu sebelum parameter dapat didownload. TFERROR_OK saat berhasil.

TuningFork_init

TFErrorCode TuningFork_init(
  const TFSettings *settings,
  JNIEnv *env,
  jobject context
)

Menginisialisasi Tuning Fork.

Tindakan ini harus dipanggil sebelum fungsi lainnya.

Library akan memuat histogram dan setelan anotasi dari file tuningfork_settings.bin file. Lihat juga:TFSettings untuk semantik tentang cara setelan lainnya mengubah perilaku inisialisasi.

Detail
Parameter
settings
struktur TFSettings
env
JNIEnv
context
konteks aplikasi
Hasil
TFERROR_OK jika berhasil, TFERROR_NO_SETTINGS jika tidak ada setelan yang ditemukan, TFERROR_BAD_SETTINGS jika file tuningfork_settings.bin Anda tidak valid atau TFERROR_ALREADY_INITIALIZED jika tuningfork sudah diinisialisasi.

TuningFork_setCurrentAnnotation

TFErrorCode TuningFork_setCurrentAnnotation(
  const CProtobufSerialization *annotation
)

Menyetel anotasi saat ini.

Detail
Parameter
annotation
serialisasi protobuf dari anotasi saat ini.
Hasil
TFERROR_INVALID_ANNOTATION jika anotasi tidak konsisten dengan setelan.
Hasil
TFERROR_OK saat berhasil.

TuningFork_setFidelityParameters

TFErrorCode TuningFork_setFidelityParameters(
  const CProtobufSerialization *params
)

Menyetel parameter fidelitas yang saat ini aktif.

Fungsi ini mengganti parameter apa pun yang telah didownload jika dalam mode eksperimen. Gunakan jika, misalnya, pemain telah mengubah setelan kualitas game secara manual. Tindakan ini akan menghapus (yaitu mengupload) data apa pun yang terkait dengan parameter sebelumnya.

Detail
Parameter
params
Parameter yang dienkode buffering protokol.
Hasil
TFERROR_OK jika parameter dapat disetel.

TuningFork_setUploadCallback

TFErrorCode TuningFork_setUploadCallback(
  UploadCallback cbk
)

Menyetel callback untuk dipanggil pada thread terpisah setiap kali TuningFork melakukan upload.

Detail
Parameter
cbk
Hasil
TFERROR_OK kecuali Tuning Fork tidak diinisialisasi.

TuningFork_startTrace

TFErrorCode TuningFork_startTrace(
  TFInstrumentKey key,
  TFTraceHandle *handle
)

Memulai segmen trace.

Lihat juga: kunci instrumen yang dipesan di atas

Detail
Parameter
key
kunci instrumen
Parameter
handle
ini akan diisi dengan handle baru saat berhasil.
Hasil
TFERROR_INVALID_INSTRUMENT_KEY jika kunci instrumen tidak valid. TFERROR_OK saat berhasil.