問題タブ [surfaceflinger]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - systrace で BufferQueue の状態を取得する
アプリケーションが Android のバッファリング システムとどのように相互作用しているかをよりよく理解しようとしています。具体的には、Vsync 信号に関連して、フレームが SurfaceFlinger の BufferQueue に追加されるタイミングを最適化したいと考えています。
SurfaceView を使用する場合、BufferQueue 情報が SurfaceView 内に含まれることを理解しています。
TextureView を使用している場合はどうなりますか? これらの場合、SurfaceView カウンターはありません。SurfaceView を使用していないときのバッファ状態の他のインジケータはありますか? アプリケーション カウンターは BufferQueue の状態も示しますか?
BufferQueueProducer.cpp と BufferQueueConsumer.cpp の両方の次の行はこれを示唆しているように見えますが、可能であれば信頼投票を使用できます。
android - Android VSYNC 信号の必要性を理解する
私は Android ディスプレイ サブシステムをよりよく理解しようとしていますが、VSYNC 信号がどのように処理されるか、そもそもなぜこれほど多くの信号が存在するのかということは、まだわかりにくい点の 1 つです。
Android は、そのコアで VSYNC を使用するように設計されていますが、複数の VSYNC 信号が採用されています。https://source.android.com/devices/graphics/implement.htmlの「VSYNC オフセット」セクションには、 HW_VSYNC_0 、VSYNC、および SF-VSYNC の 3 つの VSYNC 信号を示すフロー図があります。HW_VSYNC が DispSync のタイミングを更新するために使用されること、および VSYNC と SF-VSYNC がアプリと surfaceflinger によって使用されることは理解していますが、なぜこれらの個々の信号が必要なのですか? さらに、オフセットはこれらの信号にどのように影響しますか? これをよりよく説明するタイミング図はどこにありますか?
ご協力いただきありがとうございます。
android - Android systrace/atrace にイベントがありません。トレースで不可能な状態です
現在、Android で atrace を使用して、ビデオ ワークロード中の OS の状態を記録および分析しています。具体的には、実行中にシステムの BufferQueue のサイズを監視しています。atrace は、時間の経過とともにキューに入れられる/取得されるこれらのバッファーのサイズをログに記録します。
ただし、私のトレースの一部では、これは不可能な状況につながります。C|171|SurfaceView|x の行は、'x' がバッファ内にキューに入れられたテクスチャの数であることを示します。たとえば、1 回の取得中に、1 つではなく 2 つのバッファーが削除されることがあります (これは不可能なはずです)。
android - Android (ADB シェル、ソース) で SurfaceFlinger サービスを強制終了/開始する方法は?
アンドロイド開発者!! SurfaceFlinger について質問があります。私は Android TV の開発者です。Launcher なしで TV アプリを起動したいです。しかし問題は、ランチャーが GMS であることです。だから私はこれを変更することはできません。このシナリオをランチャーを TV アプリに実行するように変更することはできません。だから私はトリックを持っています。Launcher がユーザーに表示されないため、最初に surfaceFlinger Service を無効にすると思います。その後、TV アプリを起動し、surfaceFlinger Service を有効にします。しかし、surfaceFlinger Service を制御できるかどうかはわかりません。アドバイスいただけますか?どうも!
android - NEXUS 5 lollipop 5.1 SurfaceFlinger エラー
こんにちは?1つの質問があります。nexus5 lollipop5.1 の問題です。surfaceflinger を使用して ScreenshotClient update でデバイスの画面情報に応答して来るコードがあります。コードは次のようになります。
上記のコードは、他の lollipop バージョンでは正常に動作しています。もちろん同じバージョンのnexus7も正常に動作します。ただし、nexus5 の変更。参照する私のコードですが、コードのループを続けます。そして、画面を継続して取得しようとするためです。まず nexus5 のコードは正常に動作しています。ただし、一定の回数になると、他画面下に更新が来ずエラーを返します。もっと ...!自分のコードを完成させた後、再実行して、別の井戸の後で、特定の数になると同じ現象が発生します。あなたがこれについて知っている能力者なら?
英語が下手ですみません。
android - Android の APP と surfaceflinger 間の OpenGL コンテキスト
私がこれまでに知っているように、surfaceflinger プロバイダーは APP にサーフェスを表示してレンダリングし、すべてのサーフェスを最終画面に合成します。(間違いがあればThxで指摘してください。)
最初の質問: surfaceflinger によって作成されたサーフェスは、すべてのプロセスで使用できるグローバルに利用可能ですか? (サーフェスのメモリは GPU メモリにありますか?)
私がググったように、プロセス間でopenGLコンテキストを共有することはできません(ここでは、APPプロセスとsurfaceflingerプロセスを意味します)。サーフェスで使用される GPU メモリについてはどうかわかりません。
私の最初の質問に対する答えが「はい」の場合、APP がサーフェスにレンダリングするときに、サーフェスフリンガーと共有する openGL リソースはありますか? そして、表面の記憶を含むこれらの破片はどのように機能したのでしょうか?