問題タブ [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 投票する
1 に答える
900 参照

javascript - キャンバスの vsync が機能しない

requestanimationframe を使用して描画をモニターに同期する javascript/canvas ゲームがあります。ただし、ゲームをスクロールすると、まだせん断効果が得られます (Windows 7 の Google Chrome)。画面に描画するより良い方法はありますか? ダブルバッファ? これは私が使用するものです:

ここで問題を確認できます: http://www.pi-games.com/Thailet/

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

haskell - GPipe VSync & FPS

私はGPipe ライブラリを学び始めており、誰かがそれを使って vsync と FPS の制御をどのように達成できるか疑問に思っていました。1 * 1000000 / FPS最初は、別のスレッドがマイクロ秒ごとにブロックして実行できると考えていましたが、それは別のスレッドが独自のを構築swapContextBuffersする必要があることを意味し、したがってそれは独自のウィンドウです。ContextT

関数自体のドキュメントでは、システムでVSync が有効になっている場合にブロックされる可能性があると簡単に述べていますが、これはどういう意味ですか? どうすれば有効にできますか?

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

android - Do Handler postDelay not precise

In my app, I used handle.postDealy(Runnable, 50) to refresh my View. but sometimes it was very not precise. it was be 90ms. here are the log:

onRender interval: 86

onRender 間隔: 90

onRender 間隔: 84

onRender 間隔: 90

Androidで正確なタイマーを取得するにはどうすればよいですか? VSync は使用できますか?

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

c++ - Vulkan で VSync を有効にする

Vulkan で vsync を使用するにはどうすればよいですか? 私は Windows を使用していますが、コードは Linux でも動作するはずです。にフェンスを挿入することで実装されていvkAcquireNextImageKHRますか?

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

winapi - OpenGL を使用した画面のティアリング

Windows 10 で OpenGL を使用すると、画面が裂ける問題が発生します。私はレイ マーチングのデモを行っています (2 つの三角形のみをレンダリングし、フラグメント シェーダーでレイ マーチングとシェーディング地形をレンダリングします)。GTX 860M でレンダリングすると、アプリは 60 FPS を維持しても問題はありません (少なくとも解像度が低くても)。ただし、画面のティアリングが発生します (次のビデオは、フラグメント シェーダー コードの複雑さとは無関係であることを確認するために、特に低解像度でレンダリングされています): YouTube のスクリーン ティアリング ビデオ。

私が試したこと:

推奨設定を使用して OpenGL コンテキストを作成しています。(wglSwapIntervalEXT(1)) を使用して手動で VSync をオンにしようとしましたが、これがデフォルトの動作であるはずです。SwapBuffers 呼び出しの前に glFinish を配置しようとしました。

Nvidia コントロール パネルで VSync を「常にオン」に設定しようとしました。また、WinApi の代わりに GLFW を使用してウィンドウを作成しようとしました。フルスクリーンモードとサイズ変更可能モードの両方でウィンドウを作成しようとしました。

とはいえ、改善は見られませんでした。

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

c++ - Qt: vsync - レンダリングされたフレームがありません

科学的タスクの場合、安定した周波数 (最大 60 Hz) で点滅する領域が画面に表示されます。Qt 5.6 を使用して、安定した刺激の可視化を実現しようとしました。

このブログ エントリと他の多くのオンライン推奨事項によると、QWindow クラス、QOpenGLWindow クラス、および QRasterWindow クラスからの継承という 3 つの異なるアプローチに気付きました。vsync の利点を得て、QTimer の使用を避けたかったのです。

ちらつき領域を表示できます。また、フレーム間の安定した時間は、16 ~ 17 ms で測定されています。しかし、数秒ごとにいくつかの欠落したフレームが発見されます。刺激の安定した視覚化がないことが非常にはっきりとわかります。3 つのアプローチすべてで同じ効果が発生します。

コードの実装を適切に行ったか、またはより良い解決策が存在するか? コードがその目的に対して適切である場合、それはハードウェアの問題であると想定する必要がありますか? それでは、単純なちらつき領域を表示するのは難しいでしょうか?

助けてくれてありがとう!

例として、QWindow クラスの私のコードをここで見ることができます:

render()上書きされたイベント関数によって呼び出される関数は次のとおりです。