« OOガンダム完成 | トップページ | ガンダムOOセカンドシーズ #02 »

結局IndirectRenderingはやめにした

結局CompizのオプションのIndirectRenderingはOFFにしてます。

ウィンドウで表示した際の動画が、アニメだとそれほど気にならなかったんですが、TZ5で撮影した手ブレというか、揺れまくりの動画を見た時に、見るに堪えないほどのフリッカーが発生していたので。
#見るに堪えるかどうかは主観に依存すると思います。

IndirectRenderingをOFFにすると、確実に改善されました。

これ、さらにMPlayer系のvoをGLとかGL2にすると、さらにフリッカーは目立たなくなる可能性があります。

例えば、以下のコマンドの結果を比較してみると。
$ mplayer -benchmark -nosound -frames 1234 -vo gl VIDEOFILE
※voがGL
$ mplayer -benchmark -nosound -frames 1234 -vo xv VIDEOFILE

※voがxv

まあ、比較結果は記載しませんが、動画が再生されるので、それを見比べてみると明らかではないかと思いますが。
voをxvにした時、明らかに垂直同期を無視して、動画が再生されます。
ものすごく速いので、何が起こったか解らないくらいです。(笑)
その点GLを使うと、垂直同期を意識した描画が為されているため、ちょっと早回し、くらいの動画再生になります。

結局フリッカーは垂直同期に依存した書き換えを行うか否か、なので、なるべく動画ツールの方で、垂直時を意識された上で、ウィンドウマネージャがそれに対応している必要があると思っています。

現状、Compizは垂直同期を意識してくれているみたいなので、IndirectRenderingをOFFにした上で、voにglを使用すれば、ウィンドウモードでもフリッカーは気にならなくなります。

少し気になっているのが、このIndirectRenderingというのが、何なのか、どういう動作をするモノなのか、理解していないことです。

どうしてこんなことが発生しているのか、まったく解らないわけです。

IndirectRenderingが、どこぞの説明で読んだように、OpenGLの機能をスキップせずにOpenGLを経由して、画面描画すること、だとすれば、こちらの方が遅いわけで、Compizのベンチマークが、どの程度アテになるかは解りませんが、DirectRenderingよりも悪くなるはずなんですよね。

その上、このベンチマークをしている最中、CPUの使用率も上がる。

どうしてこんな現象になっているのか、納得行く説明が得られていないんですよ。
なんだかなぁ。

nVidiaのドライバで以前にCompiz動作に問題があって、HWアクセラレーションを行わないために、IndirectRenderingオプションがある、という説明もネット上でちらと見ました。
昔はそうだった、ってことなら解らないでもないんですが。
今、現実として、こういう現象があるので、OpenGLのベンチマーク、ひいてはCompizのきちんとしたベンチマークがあれば、もしかしたら、納得行く答えが得られるのかも知れません。

Compizのベンチマークプラグインも何をしているのか解らないし。
単純なglxgearsでは、機能がしょぼすぎてベンチマークにはならないですしね。

まあ、今後この辺は整備されて行くのかも知れませんけど、今、知りたい場合はどうしたらいいんでしょうね。(笑)
#自分で作る、というのはナシ。(爆)


|

« OOガンダム完成 | トップページ | ガンダムOOセカンドシーズ #02 »

Ubuntu」カテゴリの記事

パソコン・インターネット」カテゴリの記事

コメント

はじめまして

動画のフリッカー対策を調べていてたどり着きました

私の設定ツールは システム>設定>Advanced DeskTop Effects Settings なのですが IndirectRendering の項目が見当たりません。

どのように設定されているのか教えて頂けないでしょうか?

投稿: りょう | 2008年10月26日 (日) 14時55分

IndirectRenderingの設定は、CCMSからは行えません。
Compiz起動時のオプションになっています。
ワタクシは、Compiz Fusion Iconから行っております。
Ubuntu 8.04なら、Synapticsやaptitude等でインストールできます。
また、セッションに登録して、起動時に自動実行するようにしております。
一応こちらに記事にしてます。
#解りづらいですけど。
「ちらつき再び」(http://kaoru-linux.cocolog-nifty.com/blog/2008/04/post_ea94.html#search_word=Fusion%20Icon)

リンクになってなかったら、左上の検索から、タイトル検索してみてください。

投稿: かおりん | 2008年10月26日 (日) 15時51分

さっそくリンク先を参考にさせていただきました。

肝心の IndirectRendering ON/OFF は自分の環境では今ひとつ効果が解り難かったですが、 LooseBinding ONで劇的にフリッカーが解消されました。

ありがとうございました!

投稿: りょう | 2008年10月26日 (日) 18時27分

改善されたならなによりです。
この辺の設定はビデオカードやドライババージョンにより、結構効果が違うので、試行錯誤するのが一番かな、と思ってます。

LooseBindingに関しては、ワタクシの環境ではOFFの方が効果がありましたし。

また、なんかあればコメントいただければ。(笑)

投稿: かおりん | 2008年10月26日 (日) 20時03分

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/500703/42763819

この記事へのトラックバック一覧です: 結局IndirectRenderingはやめにした:

« OOガンダム完成 | トップページ | ガンダムOOセカンドシーズ #02 »