OpenGL 用 Swappy 追加ツール

OpenGL で Swappy を使用するための追加のユーティリティ関数。

概要

関数

SwappyGL_enableStats(bool enabled)
void
統計情報の収集のオン / オフを切り替えます。
SwappyGL_getStats(SwappyStats *swappyStats)
void
統計情報の収集がオンになっている場合、収集された統計情報を返します。
SwappyGL_injectTracer(const SwappyTracer *t)
void
実行をトレースするために各フレームで呼び出されるコールバックを渡します。
SwappyGL_onChoreographer(int64_t frameTimeNanos)
void
アプリが Android Choreographer を使用して Swappy にティックを提供する場合は、この関数を呼び出すことができます。
SwappyGL_recordFrameStart(EGLDisplay display, EGLSurface surface)
void
SwappyGL_enableStats で統計情報が有効になっている場合は、この関数を呼び出す必要があります。
SwappyGL_setAutoPipelineMode(bool enabled)
void
自動パイプライン モードのオン / オフを切り替えます。
SwappyGL_setAutoSwapInterval(bool enabled)
void
自動スワップ間隔検出のオン / オフを切り替えます。
SwappyGL_setMaxAutoSwapIntervalNS(uint64_t max_swap_ns)
void
自動スワップ間隔の最大時間をミリ秒単位で設定します。

マクロ

MAX_FRAME_BUCKETS 6
統計情報で示されるリフレッシュ期間中の最長期間。

構造体

SwappyStats

SwappyGL_enableStats でオンに切り替えた場合に収集される Swappy 統計情報。

関数

SwappyGL_enableStats

void SwappyGL_enableStats(
  bool enabled
)

統計情報の収集のオン / オフを切り替えます。

デフォルトでは統計情報の収集はオフになっており、統計情報に関連するオーバーヘッドは発生しません。アプリは SwappyGL_enableStats(true) を呼び出すことにより、統計情報の収集を有効にできます。その場合、アプリは CPU 関連作業を開始する前に、各フレームで SwappyGL_recordFrameStart を呼び出すことを期待されます。統計情報は「FrameStatistics」タグ付きで logcat に記録されます。アプリは SwappyGL_getStats を呼び出すことにより統計情報を取得できます。

SwappyGL_getStats

void SwappyGL_getStats(
  SwappyStats *swappyStats
)

統計情報の収集がオンになっている場合、収集された統計情報を返します。

関連項目: SwappyStats 関連項目: SwappyGL_enableStats

詳細
パラメータ
swappyStats
収集された統計値が入力される SwappyStats へのポインタ。

SwappyGL_injectTracer

void SwappyGL_injectTracer(
  const SwappyTracer *t
)

実行をトレースするために各フレームで呼び出されるコールバックを渡します。

SwappyGL_onChoreographer

void SwappyGL_onChoreographer(
  int64_t frameTimeNanos
)

アプリが Android Choreographer を使用して Swappy にティックを提供する場合は、この関数を呼び出すことができます。

この関数は、最初の Swappy_swap() 呼び出しの前に呼び出す必要があります。その後、コリオグラファのティックのたびにこの関数を呼び出します。

SwappyGL_recordFrameStart

void SwappyGL_recordFrameStart(
  EGLDisplay display,
  EGLSurface surface
)

SwappyGL_enableStats で統計情報が有効になっている場合は、この関数を呼び出す必要があります。

SwappyGL_enableStats で統計情報の収集を有効にすると、アプリは CPU 関連作業を開始する前に、各フレームでこの関数を呼び出すことを期待されます。

関連項目: SwappyGL_enableStats

SwappyGL_setAutoPipelineMode

void SwappyGL_setAutoPipelineMode(
  bool enabled
)

自動パイプライン モードのオン / オフを切り替えます。

デフォルトでは、自動スワップ間隔がオンの場合、自動パイプライン処理がオンになり、Swappy は(可能であれば)同じパイプライン ステージで CPU と GPU の作業のスケジュールを設定することにより、レイテンシを短縮しようとします。

SwappyGL_setAutoSwapInterval

void SwappyGL_setAutoSwapInterval(
  bool enabled
)

自動スワップ間隔検出のオン / オフを切り替えます。

デフォルトでは、Swappy は実際のフレーム レンダリング時間に基づいてスワップ間隔を調整します。Swappy によって計算されたスワップ間隔をアプリでオーバーライドしたい場合は、SwappyGL_setSwapIntervalNS を呼び出します。そうすると、Swappy のフレーム時間が一時的にオーバーライドされますが、SwappyGL_setAutoSwapInterval(false) が呼び出されない限りフレーム時間は引き続き動的に更新されるため、スワップ間隔が変更される可能性があります。

SwappyGL_setMaxAutoSwapIntervalNS

void SwappyGL_setMaxAutoSwapIntervalNS(
  uint64_t max_swap_ns
)

自動スワップ間隔の最大時間をミリ秒単位で設定します。

Swappy が自動スワップ間隔内で動作する場合にフレーム時間が max_swap_ns より長いと、Swappy はペーシングを行わず、単にできるだけ早くフレームを送信します。

マクロ

MAX_FRAME_BUCKETS

 MAX_FRAME_BUCKETS 6

統計情報で示されるリフレッシュ期間中の最長期間。

関連項目: SwappyStats