アプリケーションが Android のバッファリング システムとどのように相互作用しているかをよりよく理解しようとしています。具体的には、Vsync 信号に関連して、フレームが SurfaceFlinger の BufferQueue に追加されるタイミングを最適化したいと考えています。
SurfaceView を使用する場合、BufferQueue 情報が SurfaceView 内に含まれることを理解しています。
Binder_1-276 ( 171) [001] ...1 34110.301903: tracing_mark_write: C|171|SurfaceView|1
surfaceflinger-171 ( 171) [001] ...1 34110.314233: tracing_mark_write: C|171|SurfaceView|0
TextureView を使用している場合はどうなりますか? これらの場合、SurfaceView カウンターはありません。SurfaceView を使用していないときのバッファ状態の他のインジケータはありますか? アプリケーション カウンターは BufferQueue の状態も示しますか?
Binder_2-279 ( 171) [000] ...1 34169.029234: tracing_mark_write: C|171|com.android.grafika/com.android.grafika.PlayMovieActivity|1
BufferQueueProducer.cpp と BufferQueueConsumer.cpp の両方の次の行はこれを示唆しているように見えますが、可能であれば信頼投票を使用できます。
ATRACE_INT(mCore->mConsumerName.string(), mCore->mQueue.size());