ビデオのティアリングを停止するにはどうすればよいですか?(Nvidia propドライバー、非合成ウィンドウマネージャー)


35

私は、プロプライエタリのNvidiaドライバーを使用している多くの人を苦しめているような問題を抱えています。

ビデオのティアリングビデオに多くのパンまたはアクションがある場合の細い水平線(通常はディスプレイの上部近く)。

(注:存在しないように見える電源管理により、バッテリーが数倍速く消費されるため、デフォルトのnouveauドライバーに戻すことはオプションではありません)

Totem、Parole、VLCを試してみましたが、それらすべてで裂け目が発生しました。最良の結果はX11 outputVLCで使用することでしたが、比較的穏やかなアクションでまだ引き裂かれています。

ハードウェア: MacBook Air 3,2-Nvidia GeForce 320Mを搭載。

Nvidia propドライバーを使用したティアリングには、2つの一般的な修正があります。

  1. Nvidia独自のドライバーは通常、Linux上のウィンドウマネージャーの合成ではうまく動作しないため、合成をオフにします(Compizは私が知っている例外です)。しかし、私は非常に軽量なウィンドウマネージャ(Awesomeウィンドウマネージャ)を使用していますが、これは合成(またはクールな効果)さえもできません。合成が無効になっているXfceでもこの問題があります。

  2. VBlankへの同期を有​​効にします。 これを有効にするには、他の自動起動プログラムnvidia-settingsと同様にオプションを設定nvidia-settings -lしてから自動起動します。これは動作するようです。なぜなら、実行するglxgearsと次のようになるからです。

    $ glxgears
     Running synchronized to the vertical refresh.  The framerate should be
    approximately the same as the monitor refresh rate.
    303 frames in 5.0 seconds = 60.500 FPS
    300 frames in 5.0 seconds = 59.992 FPS
    

    そして、私が使用してリフレッシュレートをチェックするときnvidia-settings

    $ nvidia-settings -q RefreshRate
    Attribute 'RefreshRate' (wampum:0.0; display device: DFP-2): 60.00 Hz.
    

    これはすべて、VBlankへの同期有効であることを示唆しています。私が理解しているように、これは正確に涙を止めるように設計されており、多くの人々の問題はglxgears正しい情報を出力するようなものを得ることです。なぜそれが私のために働いていないのか分かりません。

xorg.confhttp : //paste.ubuntu.com/992056/

観察された引き裂きの例::ビデオティアリング


xorg.confファイルをpastebin.comでお願いします。Option "TripleBuffer" "1"xorg.confファイルで実験しましたか?
fossfreedom

TripleBufferを試しました。それは少し助けになるようですが、それほど多くはありません。私は私のペーストを貼り付けますxorg.conf
チャンホーSuh

デュアルモニターを使用していますか?
アリスターバクストン

ブラウザでFlashを使用する12.10でも同じ問題がありますが、VLCで表示されることはありませんが、ウィンドウをドラッグしても表示されません。それから解決策を見つけましたか?
ブリープループ

回答:


18

それを試してみると、うまくいくかもしれません。nvidia-settingsを開き、powermizerセクションに移動します。ドロップダウンで[最大パフォーマンス]を選択すると、パワーマイザーのレベルが最高速度にジャンプするのがわかります。

それが終わったら、ビデオを試してください。

過去に、nvidiaカードが最も遅いパワーマイザー設定にある場合、vsyncが機能しないことがわかりました。


ありがとうございました!これは、Arch Linuxで独自のnvidiaドライバー(310.19)を使用することで機能しました。私はこれをかなり長い間解決しようとしています。このような奇妙な問題。
リード

コマンドラインからこの設定を制御することは可能ですか?ビデオプレーヤーの起動時に有効にできます(プレーヤーが閉じた後に無効にできます)。
パンジー14年

1
あ。nvidia-settings -a GPUPowerMizerMode=1パフォーマンスとnvidia-settings -a GPUPowerMizerMode=2自動に設定します。
パンジー

11

デュアルモニターを使用している場合、nvidiaドライバーは、まったく同じリフレッシュレートを使用しない限り、いずれかのディスプレイのvblankにのみ同期できます。そして、私は正確に意味します。両方のモニターがまったく同じタイプでない限り、これは事実上不可能です。nvidiaドライバーが間違ったディスプレイに同期している場合(たとえば、外部テレビで映画を見たいときに内蔵ディスプレイに同期している場合)、その選択をオーバーライドできます。nvidiaドライバーのドキュメントから:

TwinGLで__GL_SYNC_TO_VBLANKを使用する場合、OpenGLはディスプレイデバイスの1つにのみ同期できます。これにより、OpenGLが同期していないディスプレイデバイスで破損が発生する可能性があります。環境変数__GL_SYNC_DISPLAY_DEVICEを使用して、OpenGLが同期するディスプレイデバイスを指定できます。この環境変数をディスプレイデバイスの名前に設定する必要があります。たとえば、「CRT-1」。Xログファイルで「Connected display device(s):」という行を探し、存在するディスプレイデバイスとその名前のリストを探します。

これを/ etc / environmentに永続的に設定しました-新しい行に次のようなものを追加するだけです:

__GL_SYNC_DISPLAY_DEVICE="DFP-0"


こんにちはアリスター。提案をありがとう、しかし私は単一のディスプレイのみを使用します。
チャンホーSuh

7

私も、Intelのサンディブリッジプロセッサでビデオの破損に苦しんでいました。これは私のために働いた。「/ etc / environment」に次の行を追加します-

CLUTTER_PAINT = disable-clipped-
redraws :disable-culling CLUTTER_VBLANK = True

そしてそれは働いた。最後にEnterを押し、これらの行をコピーして貼り付けます。再起動が必要な場合があります。それを試してみてください。


2
提案に感謝しますが、これらはGnome3環境変数(Gnome Shellで使用されるものなど)です。私は非常に最小限のウィンドウマネージャーを使用しているため、これは私には当てはまりません。また、Sandy Bridgeプロセッサはありません。
チャンホーSuh

このソリューションにより、13.04のCinnamonデスクトップ(Mutterウィンドウマネージャー)およびnvidia 313ドライバーで発生していた破損の問題が修正されました。古い投稿をぶつけてすみませんが、ありがとうございます。
askuhn

4

NVIDIA GeForce G102Mを使用して、ASUS K50INノートブックでビデオのvsync問題を解決した方法を次に示します。カードが異なるためマイレージが変わる可能性があることは承知していますが、試してみることができます... 他のプレーヤーでは機能しません。

  1. ccsmで通常のcompizマジックを行う

    • [コンポジット]で[リフレッシュレートの検出]をオフにし、モニターの現在のレートを手動で入力します。
    • 「テクスチャにコピー」をオンにしましたが、それが助けになるかどうかわかりません。
    • OpenGLの場合:Tex。Filter-Best
    • VBlankへの同期はオンです
    • Unityプラグイン:(これが助けになったかどうかはわかりませんが、速度が向上すると言われています)Panel Opacity-1.0000、Launcher Opacityでも同じです。ダッシュぼかし-静的
  2. 通常のnvidia-settingsマジックを実行します。

    • XVideoとOpenGLの両方の設定でVBlankへの同期を有​​効にします
    • OpenGL設定で画像設定を高品質に設定します
    • [ディスプレイの構成]で解像度を手動で設定し、リフレッシュレートを[自動]から現在のリフレッシュレートに設定します。
  3. mplayerとvdpauをインストールします(mplayer2ではありません!!!これは新しくて実験的なもので、少なくとも私にとってはVDPAUで遅れていました)

    • パッケージ:mplayer libvdpau1 vdpau-va-driver
  4. MPlayerをセットアップします(私もgnome-mplayerを試しましたが、試したのと同じ結果になりません)

    • 〜/ .mplayer / configファイルを開くか、ファイルがない場合は作成します。フォルダー.mplayerを作成する必要がある場合もあります。これが含まれている必要があります:
[default]
ao=pulse
vo=vdpau

パルスオーディオを削除した場合は、aoをalsaに変更します。

再度ログアウト/ログインしてXを再起動します。

YMMVをいつものように試してみてください。特にLTS以外のリリースやベータ版ドライバーでは、ビデオのコーデックによってはこれが機能しなくなることがあります。


1

これは、ATI radeonドライバー上で私のために働いたので、あなたのために働くかもしれません:

設定ファイルを追加します(例/etc/X11/xorg.conf.d/20-nouveau.confの場合)

これから成る:

Section "Device"
    Option      "EXAVsync"  "True"
    Option      "GLXVBlank" "True"
    Identifier  "Nvidia card"
    Driver      "nouveau"
EndSection

EXAはビデオを合成するためのフレームワークです。デフォルトではvsncには見えません。

ビデオを再生するために別のソフトウェア(vlcなど)を試す価値があるかもしれません。


1
投稿で述べたように、デフォルトのドライバーに切り替えることはオプションではありません。
チャンホーSuh

1

これがあなたを助けるかどうかはわかりませんが、それは私のために働いた。nvidia-settingsを開き、FrecuencyをAutoから60に変更します。Applyを押します。これにより、ビデオの破損や一般的なデスクトップのちらつきに関する問題が解決しました。残念ながら、再起動するたびにこれを行う必要があります。


1
投稿で説明したように、ディスプレイのリフレッシュレート 60 Hzです。問題については、この回答に従ってください。
チャンホーSuh

1

私はまったく同じビデオの涙の問題を経験していました。私の場合、ティアダウンはフルスクリーンモードでのみ発生します。問題は、ビデオをフルスクリーンにスケーリングすることにあるようです。再生されたビデオの元のサイズと画面解像度の比率が一致しない場合、ビデオが破損します。smplayerのアスペクト比をディスプレイのアスペクト比に設定すると、問題が解決しました。

たとえば、1280x714サイズのビデオをフルスクリーンで再生していたときに、ビデオに裂け目がありました。ビデオのアスペクト比を16:9に強制したため、再生はスムーズでした。

問題の根本原因がそこにとどまり、迷惑であることに注意する必要があります。アスペクト比は元のままなので、ビデオに多少の変形が生じます。しかし、涙を流さずに見た方が良い;)


1

Ubuntu 12.04LTS 64bitを使用していますが、nvidia gtx 660tiがあります。

解決策が見つかるまで、1か月以上にわたってビデオの破損に苦しんでいました。

nvidia xサーバー設定を開く-> PowerMizer- > PowerMizer Settings(下部近く)で、「Preferreded Mode」と表示されている箇所で、設定をAdaptiveからPrefer Maximum Performanceに変更します



0

デュアルモニターを使用していない場合は、別の可能性があります。vblankへの同期には、XVideo用とOpenGL用の2​​種類があります。nvidia-settingsでは、1つは「X Server XVideo Settings」の下にあり、もう1つは「OpenGL / Settings」の下にあります。ビデオ再生ソフトウェアに実際に影響するのは、使用している出力プラグインによって異なります。


VLCにはこれらの2つの出力のオプションがあり、私は両方を試しました。
チャンホーSuh

0

あなたの説明から、実際に涙が出ているかどうかはわかりません。通常、裂け目は、画像が水平方向に2つまたは3つのセクションに分割され、パーツが一致しないように見えます。これは、画像の上部と下部がビデオの同じフレームから来ていないために発生します。ウィキペディアには、画面の引き裂きの良いシミュレーション例があります。細い水平線は、コーミングのように聞こえますます。これは、インターレースが不十分アーティファクトのますが、説明するのは難しいかもしれません。

解像度、エンコーディング、インターレースまたはプログレッシブ、VLCでインターレース解除をオンにしているかどうかなど、視聴しようとしているビデオの詳細については言及しません。ビデオ処理がGPUにオフロードされているかどうかも確認する価値があるかもしれませんかどうか、またはCPUがすべての作業を行っているかどう。同じビデオを別のハードウェアで、またはMac XでOS Xを使用して正常に表示できることを確認しましたか?

XFCEで合成を無効にして試してみたと言いますが、追加しようとしても問題ないでしょう。

Section "Extensions"
    Option "Composite" "Disable"
EndSection

/etc/X11/xorg.confに確認してください。また、これまで言及されていなかったもう1つの提案は、以下を追加することです。

Option "UseEvents" "True"

xorg.confのDeviceまたはScreenセクションに移動します。

更新:

添付のスクリーンショットは間違いなくティアリングを示しています!それ以外の場合、プレーヤーがビデオのデコードに遅れない場合(つまり、音が途切れることなくスローダウンする場合)、おそらくデコードを実行するのがCPUかGPUかは問題ではありません。VLCの[設定]の[ビデオ設定]ページには、[高速ビデオ出力]をオンまたはオフにするオプションがあります。オンの場合、GPUを使用してデコードする必要があります。VLCでその設定を切り替えて実行する場合top、ビデオの再生中に端末でする、2つの設定のCPU使用率に違いが見られるはずです。VLCのインターレース解除をオフにして、違いが生じるかどうかを確認することもできます。

他に2つの提案があります。

xorg.confに明らかな問題はありませんが、vblank設定(X Server XVideo設定とOpenGL設定)への同期が.nvidia-settings-rcに正しく保存されていることを再確認できます。nvidia-settingsをrootとして、またはgksudoを使用して実行します(したがって/etc/X11/xorg.confを更新できます)が、これにより設定が〜/ではなく/root/.nvidia-settings-rcに保存される可能性があります。 nvidia-settings-rc。独自のコピーを取得する必要がありますが、疑いを避けるために、nvidia-settingsを実行するときに両方のvblank設定を確認する必要があります。設定の下部ページで「現在の設定を保存」を押すことを忘れないでください。実行する場合:

nvidia-settings -q=XVideoTextureSyncToVBlank -q=SyncToVBlank

両方の設定が1に設定されていることを確認する必要があります。また、上記のコマンドを再起動して再度実行することにより、設定の自動読み込みが機能していることも確認する必要があります。

他に試すことができるのは、nvidiaドライバーをアップグレード/ダウングレードすることです。私は以前にいくつかのマイナーなドライバーバージョンの更新で破損を経験しました。確かに「良い」バージョンと「悪い」バージョンのnvidiaドライバーがあり、最新のものが常に最高とは限りません。X-swat PPAを使用してアップグレードを試すことができます。

https://launchpad.net/~ubuntu-x-swat/+archive/x-updates

また、12.04で利用可能な以前のバージョンにダウングレードすることもできます。

https://launchpad.net/ubuntu/precise/amd64/nvidia-current または https://launchpad.net/ubuntu/precise/i386/nvidia-current

amd64またはi386がインストールされているかどうかによります。試してみたい右側のバージョン番号をクリックし、.debファイルをダウンロードしてからインストールします。

sudo dpkg --install <name of file>.deb

たとえば、無関係なnvidiaバグのため、これをダウンロードする必要がありました。

http://launchpadlibrarian.net/90395807/nvidia-current_290.10-0ubuntu2_amd64.deb

から

https://launchpad.net/ubuntu/precise/amd64/nvidia-current/290.10-0ubuntu2

以下を使用してインストールします。

sudo dpkg --install nvidia-current_290.10-0ubuntu2_amd64.deb

もう1つの小さな点:もう1つの答えは、リフレッシュレートを自動から60Hzに変更することであり、すでに60Hzに設定されていると言います。ただし、添付されたxorg.confにはメタモード(画面セクション)でnvidia-auto-selectがあり、修正されていないことが示唆されています。ただし、モニター定義では60.0しか提供されないため、これは重要ではありません。xorg.confをバックアップして移動し、nvidia-xconfigとnvidia-settingsを再実行して、異なる構成を取得するかどうかを確認するのは興味深いかもしれません。


こんにちはデビッド。引き裂かれたと思われる画像をアップロードしました:-)「引き裂く」と一致するかどうか教えてください。それは私が見ているどのビデオでもほとんど起こるので、詳細に触れる価値があるとは思いませんでした。具体的に何をテストするかについての提案はありますか?私はこれらのオプションを試しました(そしてその後、それらを削除しました)が、おそらく私が試すべきいくつかの組み合わせがありますか?貼り付けたxorg.confをご覧になりたい場合は、何かおかしいと思われるものがあればお知らせください。GPUが動作していないかどうかを確認するにはどうすればよいですか?最後に、はい、同じビデオが同じマシンのOS Xで問題になることはありません。
チャンホーSuh

nouveauドライバーには同じ問題はないようです。診断できた唯一の違いは、nouveauではFPSが約600であり、追加の構成が必要ないことです。
Suh

はい、それは引き裂くように見えます。疑ってごめんなさい:-)
デビッドエドワーズ

フィードバックに基づいて、さらに提案を追加しました。
デビッドエドワーズ

残念ながら、運はありません。NvidiaがGeForce 320Mのサポートを改善するのを待つことしかないと思うかもしれませんが、なぜNouveauに問題がないのか疑問に思います。
チャンホーSuh

0

Davidの以前の投稿に加えて、X-swat PPAを使用して最新のNVidia独自のドライバーをインストールする場合は、aptソースに追加することもできます。

sudo add-apt-repository ppa:ubuntu-x-swat/x-updates
sudo apt-get update
sudo apt-get install nvidia-current

これにより、最新バージョンがインストールされ、配信に関する最新情報が保持されます。


0

申し訳ありませんが、この回答はUbuntuではなくopenSuSEのものですが、最終的にこれらの変更で機能するようになりました。

  • 合成/ウィンドウ効果を一時的に無効にします(openSuSEでAlt + Shift + F12)
  • 「ビデオ」設定を「OpenGLビデオ出力(実験的)」に設定してVLCを使用します。「加速ビデオ出力(オーバーレイ)」もチェックされています。問題があればVLC 2.1.1を使用しています。
  • mjnicholの答えのように、PowerMizer設定をパフォーマンスに設定します
  • AmirDizdarevićの答えのように、OpenGL設定を高く設定します

それが役に立てば幸い!合成で動作させるための設定があると思いますが、少なくともテストのために合成を無効にすることをお勧めします。私のセットアップは、4KモニターとGTX 650グラフィックスカードです。


0

ビデオ出力を「OpenGL GLX」に変更することにより、VLCでこれを修正できます。


0

64ビットのElementary OS Luna(Ubuntu 12.04 LTSベース)を実行していますが、同じ問題が発生しました。他の多くの人々がすでに言っているように、私はついに、WORKSであり、明らかに「Powermizer settings to Performance」ソリューションを含むメソッドを見つけました。

問題は、再起動後、これらの設定がデフォルトの「自動」設定に復元され、明らかにNvidia-SettingsアプリケーションがPowermizerの新しい設定を適切に保存しないことです。心配無用!!!

以下の指示に従うだけで、簡単です:

http://ubuntu.aspcode.net/view/635400140124705175636416/nvidia-settings-powermizer-performance-mode-on-12044-64-bit

記事にあるように、スタートアップアプリケーションを作成すれば、準備完了です!!!! TRUST ME IT WORKS !!! これを投稿してくれたAquablueと、もちろんソリューションを提供してくれたNvidia Customer CareのMikeに感謝します!!!

参考までに、Phenom II X4、8GB DDR3 RAM、Corsair SSD、GTX 650、Elementary Luna 64ビットがあります。


0

カーソルでウィンドウを選択し、ウィンドウを移動すると、破損が修正されました。Xのコールバックの問題のようです。

私にとって、vlcの修正は次のとおりでした。

vlc->ツール->設定->ビデオ->「出力」ドロップダウンで選択 x11 video output(XCB)


-2

軽量のウィンドウマネージャー(おそらくopenbox)を実行しているようです。その場合、xcompmgrをコンポジットマネージャーとして使用して、シャドウ、透明度などのデスクトップ効果を得ることができます。私の場合、xcompmgrをオフにすると、同じ問題が解決されます。 HD(CPUを集中的に使用します)。どうやら、断念は、長い間放棄されたプロジェクトであるxcompmgrのバグのために発生しました。xcompmgrをオフにするには、「killall xcompmgr」を実行します。それはうまくいくはずです。それが役に立てば幸い!サルード!パブロ。


私の投稿を注意深く読んでいるようには見えません。ちなみに、殺す必要はないはずxcompmgrです。そもそも起動しないでください。
チャンホーSuh
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.