問題タブ [vsync]

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.

0 投票する
0 に答える
1162 参照

opengl - GLFW VSync の問題

GLFW ライブラリと VSync に少し問題があります。統合プロセッサと「高性能 NVIDIA プロセッサ」の両方で、非常に基本的な GLFW プログラムをテストしています。

VSync 呼び出しを使用して統合プロセッサでプログラムを実行すると、予想どおりglfwSwapInterval(1)、約 16 ミリ秒/フレーム (~60 FPS) が得られます。ただし、NVIDIA プロセッサで同じ VSync 呼び出しを使用して同じプログラムを実行すると、フレーム レートは約 30 ミリ秒/フレーム (~30 FPS) に低下します。呼び出しなしでプログラムをテストしてみましたglfwSwapIntervalが、統合プロセッサ上で実行すると期待どおりに動作しました (1 ミリ秒/フレーム未満)。これを NVIDIA プロセッサでテストしたところ、フレームあたり約 24 ミリ秒になりましたが、これは間違いなく正しくありません。呼び出しでプログラムを実行するとglfwSwapInterval(0)、両方のプロセッサが 1 ミリ秒/フレーム未満で期待どおりに実行されます。

最初は、これは GLFW の問題かもしれないと考えましたが、もうよくわかりません。NVIDIA プロセッサの設定を確認したところ、VSync オプションはアプリケーションによって制御されているはずです。

これもドローコールのない基本的な GLFW プログラムです。問題の原因となっている可能性のあるものについての洞察をいただければ幸いです。必要に応じて、さらに情報を提供できます。

0 投票する
0 に答える
255 参照

opengl - 画面のティアリングまたはカクつきを引き起こす最も信頼できる効果は何ですか?

さまざまな vsync 実装、手動フレーム レート タイミング、ダブル バッファリングなど、画面のティアリングを軽減または排除するためのさまざまな戦略を調査しようとしています。調査結果を説明するチュートリアルまたはペーパーを作成する予定です。

ただし、まず最初に、効果を実証する簡単な opengl プログラムを作成する必要があります。これにより、さまざまな戦略がどの程度うまく機能するかがわかります。テアリングが発生する可能性が最も高いのは、どのタイプのアニメーションとエフェクトですか? 素早い動きがそれを引き起こすことが多いことは知っていますが、使用できる何らかの方程式または経験則があると思います.

これについてグーグルで調べてみましたが、引き裂きを止める方法に関する無限のスレッドしか見つけることができず、それを作成するための系統的な方法はありません.

0 投票する
1 に答える
179 参照

c# - vsync パルスでの正確なソフトウェア同期

着信する各 vsync パルスで画像を切り替えようとしています。ハードウェアでは、vga-signal の vsync パルスは、着信パルス (VHDL) の各エッジ イベントにトリガーを使用することで簡単に使用できます。

今私の質問:ソフトウェアでこの vsync 信号のイメージをトリガーしてスワップすることは可能ですか? そのため、画面を更新するたびに、別の画像に切り替わります。どんな言語、プログラムでも大歓迎です。このトリガーは、可能な限り正確である必要があります.. ( < 1 ms)

ありがとう!

0 投票する
0 に答える
2446 参照

android - Android アニメーション: vsync に追いつく

バックグラウンド

さまざまなコンテンツを 1080p@60HZ 出力 (大画面) に表示することを含む、まだ定義されていないハードウェア プラットフォーム (現在 Ouya と MK802IV、すべて Android 4.1+ をテスト中) 用の Android ベースのアプリケーションを開発しています。

このアプリケーションでは、スクロールを表示します。スクロールとは、テレビのニュース ステーションで見られるように、画面を右から左にスクロールするテキストです。私は 60fps で完全に動作する実用的な実装 (SurfaceView を拡張して手動で描画する) を持っています。

問題

アプリケーションの残りの部分がより高度なフラグメント アニメーションの実行を開始すると、スクロールのフレームレートが低下します。私にとって、この低下は (最適化後でも) 完全に正常ですが、フレームレートが 30 ~ 40 fps に低下した場合でも、スクロールが元の速度と滑らかさを維持するようにしたいと考えています。テキストの動きの滑らかさはユーザーにとって非常に目立つため、これは非常に重要です。

Android 4.1 以降で使用されている Vsync とチップル バッファリングについて調べたところ、実行可能な解決策が 2 つあります。

解決策 1: VSYNC を遅くする

アプリケーションまたはデバイス全体で Vsync をグローバルに 30 fps まで下げるとよいでしょう。残念ながら、eglSwapInterval はテスト済みのどのデバイスでも機能しません。

  • アプリケーション/デバイス全体を一定の低いフレームレートで強制的にレンダリングする方法はありますか?

解決策 2: レンダリングしているフレームを知る

デバイスには Android 4.1+ が搭載されているため、SurfaceView はトリプル バッファリング スキームの一部としてレンダリングされます。実装がどのフレームをレンダリングしているかを何らかの形で知っていれば、それに応じてスクロール テキストを描画できます。特にサブピクセル描画は問題ではありません。

私は SystemClock.uptimeMillis を使用して素朴な実装を試みましたが、この方法で取得したタイムスタンプは大きく変動しました (60fps でも、フレーム間の時間差は一定とはほど遠いものでした)。

  • どのフレームがレンダリングされているか、またはスキップされたフレームの数を知る方法はありますか?この情報を使用してフレームを適切にレンダリングできますか?

  • テキスト スクロールの主題にアプローチする方法について他に何か提案はありますか?

追加情報

テキストが長く (1000 文字以上)、最大 20 文字/画面、最大 4 ピクセル/秒で 1920x280 ピクセルのウィジェットに表示され、フォントが等幅でない場合があることに注意してください。OpenGL と GlSurfaceView を使用することを考えましたが、ここでは問題は同じままです。システムの負荷が高い場合でも、現在何をレンダリングしているかを知る必要があります。

プラットフォームに依存するソリューションも大歓迎です。どのプラットフォームがサポートされるかを制御できるからです (非常に狭く、主流の範囲ではない可能性があります)。

よろしくお願いいたします。

0 投票する
0 に答える
237 参照

python - OS X で Kivy で Vsync を有効にする方法

私は Kivy を学び始めており、チュートリアルの Pong アプリを作成した後、ボールが再描画されると、明らかにグラフィックの更新が垂直リフレッシュ レートと同期していないため、クレイジーなティアリングが見られます。

とにかくそのような同期を達成する方法はありますか?

0 投票する
1 に答える
67 参照

firefox-os - Firefox OS は表示のためにプラットフォームとカーネルを同期しますか?

プラットフォームとカーネルの間で表示レートがどのように同期されるかを誰かが理解するのを手伝ってくれますか? Android で行っていたように、vsync の使用を確認できないためですか?

それで、Firefox OSがどのようにそれを行うのか知りたかったのですか?