Swappy untuk tambahan OpenGL

Fungsi utilitas tambahan untuk menggunakan Swappy dengan OpenGL.

Ringkasan

Fungsi

SwappyGL_enableStats(bool enabled)
void
Mengaktifkan/menonaktifkan pengumpulan statistik.
SwappyGL_getStats(SwappyStats *swappyStats)
void
Menampilkan statistik yang dikumpulkan, jika pengumpulan statistik diaktifkan.
SwappyGL_injectTracer(const SwappyTracer *t)
void
Teruskan callback untuk dipanggil setiap frame untuk melacak eksekusi.
SwappyGL_onChoreographer(int64_t frameTimeNanos)
void
Jika aplikasi ingin menggunakan koreografer Android untuk menyediakan titik skala ke Swappy, aplikasi ini dapat memanggil fungsi ini.
SwappyGL_recordFrameStart(EGLDisplay display, EGLSurface surface)
void
Harus dipanggil jika statistik telah diaktifkan dengan SwappyGL_enableStats.
SwappyGL_setAutoPipelineMode(bool enabled)
void
Mengaktifkan/menonaktifkan mode pipeline otomatis.
SwappyGL_setAutoSwapInterval(bool enabled)
void
Mengaktifkan/menonaktifkan deteksi interval pertukaran otomatis.
SwappyGL_setMaxAutoSwapIntervalNS(uint64_t max_swap_ns)
void
Menyetel durasi maksimal untuk interval pertukaran otomatis dalam milidetik.

Makro

MAX_FRAME_BUCKETS 6
Durasi terpanjang, dalam periode refresh, diwakili oleh statistik.

Struct

SwappyStats

Statistik swappy, dikumpulkan jika diaktifkan dengan SwappyGL_enableStats.

Fungsi

SwappyGL_enableStats

void SwappyGL_enableStats(
  bool enabled
)

Mengaktifkan/menonaktifkan pengumpulan statistik.

Secara default, pengumpulan statistik nonaktif dan tidak ada overhead yang terkait dengan statistik. Sebuah aplikasi dapat mengaktifkan pengumpulan statistik dengan memanggil SwappyGL_enableStats(true). Kemudian, aplikasi diharapkan memanggil SwapanGL_recordFrameStart untuk setiap frame sebelum mulai melakukan pekerjaan terkait CPU. Statistik akan direkam dalam logcat dengan tag 'FrameStatistics'. Sebuah aplikasi bisa mendapatkan statistik dengan memanggil SwappyGL_getStats.

SwappyGL_getStats

void SwappyGL_getStats(
  SwappyStats *swappyStats
)

Menampilkan statistik yang dikumpulkan, jika pengumpulan statistik diaktifkan.

Lihat juga: SwappyStats Lihat juga: SwappyGL_enableStats

Detail
Parameter
swappyStats
Pointer ke SwappyStats yang akan diisi dengan statistik yang dikumpulkan.

SwappyGL_injectTracer

void SwappyGL_injectTracer(
  const SwappyTracer *t
)

Teruskan callback untuk dipanggil setiap frame untuk melacak eksekusi.

SwappyGL_onChoreographer

void SwappyGL_onChoreographer(
  int64_t frameTimeNanos
)

Jika aplikasi ingin menggunakan koreografer Android untuk menyediakan titik skala ke Swappy, aplikasi ini dapat memanggil fungsi ini.

Fungsi ini harus dipanggil sebelum panggilan Swappy_swap() pertama. Setelah itu, panggil fungsi ini setiap titik skala koreografer.

SwappyGL_recordFrameStart

void SwappyGL_recordFrameStart(
  EGLDisplay display,
  EGLSurface surface
)

Harus dipanggil jika statistik telah diaktifkan dengan SwappyGL_enableStats.

Saat pengumpulan statistik diaktifkan dengan SwappyGL_enableStats, aplikasi diharapkan memanggil fungsi ini untuk setiap frame sebelum mulai melakukan pekerjaan terkait CPU.

Lihat juga:SwappyGL_enableStats.

SwappyGL_setAutoPipelineMode

void SwappyGL_setAutoPipelineMode(
  bool enabled
)

Mengaktifkan/menonaktifkan mode pipeline otomatis.

Secara default, jika interval pertukaran otomatis aktif, pipeline otomatis aktif dan Swappy akan mencoba mengurangi latensi dengan menjadwalkan cpu dan gpu berfungsi di tahap pipeline yang sama, jika cocok.

SwappyGL_setAutoSwapInterval

void SwappyGL_setAutoSwapInterval(
  bool enabled
)

Mengaktifkan/menonaktifkan deteksi interval pertukaran otomatis.

Secara default, Swappy akan menyesuaikan interval pertukaran berdasarkan waktu rendering frame yang sebenarnya. Jika sebuah aplikasi ingin mengganti interval pertukaran yang dihitung oleh Swappy, aplikasi tersebut dapat memanggil SwappyGL_setSwapIntervalNS. Ini akan mengganti pengaturan waktu frame Swappy sementara, tetapi, kecuali SwappyGL_setAutoSwapInterval(false) dipanggil, pengaturan waktu akan terus diupdate secara dinamis, sehingga interval pertukaran dapat berubah.

SwappyGL_setMaxAutoSwapIntervalNS

void SwappyGL_setMaxAutoSwapIntervalNS(
  uint64_t max_swap_ns
)

Menyetel durasi maksimal untuk interval pertukaran otomatis dalam milidetik.

Jika Swappy beroperasi dalam interval pertukaran otomatis dan durasi frame lebih lama dari max_swap_ns, Swappy tidak akan melakukan pacing dan hanya mengirimkan frame sesegera mungkin.

Makro

MAX_FRAME_BUCKETS

 MAX_FRAME_BUCKETS 6

Durasi terpanjang, dalam periode refresh, diwakili oleh statistik.

Lihat juga: SwappyStats