試験運用中なLinux備忘録・旧記事

はてなダイアリーで公開していた2007年5月-2015年3月の記事を保存しています。

Catalyst(fglrx)ドライバでCompiz使用時のWine上のRPGツクール作品とWOLF RPGエディター(ウディタ)作品におけるちらつきとその対処について(Radeon HD 4200使用・Catalyst 13.1時点)

Radeon HDのグラフィックボード(オンボード含む)をfglrxドライバで使用してCompizを動かしているときにWine上の一部のアプリケーションでちらつきが発生する場合がある。その中には対策が可能な場合もあり、ここではRPGツクール(各種)作品とWOLF RPGエディター作品での対策についてをまとめておく。使用ハードウェアはRadeon HD 4200(オンボード)。
なお、ちらつきの発生はハードウェア環境やソフトウェア環境の条件により起こらない可能性もある上に発生条件にも不明な部分が結構あり、また、検証作業が不十分で以下に誤った内容が含まれる可能性もそれなりにある点には注意が必要。

RPGツクール2000/2003作品

  • 仮想デスクトップを使用
  • その中でフルスクリーンで動作している
  • DirectDrawレンダラ(HKEY_CURRENT_USER\Software\Wine\Direct3D\の文字列項目DirectDrawRenderer)にOpenGLを使用(「opengl」を指定・バージョン1.4系以上の時点では既定値なので無指定でも使用される)
  • 仮想デスクトップの解像度が320x240か640x480

の条件が全て満たされているときにちらつきが発生することがある。回避するにはこれらのいずれかが満たされないようにすればよい。

  • 仮想デスクトップを使用せず(実際の)フルスクリーンで作品を起動し、フルスクリーンでプレイする
  • フルスクリーンで起動した後でF4を押して(640x480の)ウィンドウモードにして、更に320x240のウィンドウで動かしたい場合はF5を続けて押す
  • 「wine explorer /desktop=[名前],320x240 [RPG_RT.exeの場所]」のように起動して仮想デスクトップ内で動かす場合はwinetricksで「ddr=gdi」をインストールするなどしてDirectDrawレンダラにGDIが用いられるようにする(HKEY_CURRENT_USER\Software\Wine\Direct3D\の文字列項目DirectDrawRendererを「gdi」にする)
  • 仮想デスクトップを使用してその中でフルスクリーンにしたい場合でも、仮想デスクトップの画面解像度が「320x240」「640x480」以外であれば仮想デスクトップ内で解像度が変動して作品の動作中のみ640x480のサイズになり、この後でちらつきは発生しなくなるため、(320x240ではなく)640x480のウィンドウでプレイしたい場合はその2つ以外の仮想デスクトップサイズを指定する(「wine explorer /desktop=[名前],641x481 [RPG_RT.exeの場所]」などのように起動するか、winecfgで仮想デスクトップのサイズを「640x480」以外に指定しておく)だけでよい(「320x240」はwinecfgでは指定できないので注意)

RPGツクールVX/VX Ace作品

  • 仮想デスクトップを使用
  • 仮想デスクトップの解像度が640x480
  • DirectDrawレンダラにOpenGLを使用

の条件が全て満たされているときにちらつきが発生することがある。(仮想デスクトップ内で)フルスクリーンかどうかには影響されない。
この他、仮想デスクトップを使用せず、かつウィンドウモードで動かした場合でもちらつきが発生する場合がある。
DirectDrawレンダラにGDIが用いられるようにするか、仮想デスクトップを使用しない形で(実際の)フルスクリーンで動かせば回避できる。

WOLF RPGエディター(ウディタ)作品

  • 3Dモード
  • 仮想デスクトップを使用
  • 仮想デスクトップの解像度が作品の解像度と同じ

の条件が全て満たされているときにちらつきが発生することがある。
この他、仮想デスクトップを使用せずにウィンドウモードで動かしたときにも発生する場合がある。
DirectDrawレンダラにGDIを指定してもちらつきが発生することがある。「ソフトウェアモード」にするとちらつきは発生しない。
対策としては、仮想デスクトップを使用せず(実際の)フルスクリーンで動かす他、作品ごとの設定ツール(Config.exe)で全画面モードにした上で仮想デスクトップを使用し、かつ仮想デスクトップの画面解像度が作品の画面解像度と異なるようにする方法もあるが、全画面モードを用いるとフレームレートなどタイトルバー上の情報は表示されないので注意が必要。
ウィンドウモードで起動してちらつきが発生した場合は、F4キーを押してウィンドウのサイズが変わるときにちらつきが改善されるので、数回押してサイズを選択すればよい。

その他のメモ

  • Compiz,Wine,Catalystのいずれかの設定でちらつき発生を回避することができないか色々と試してみたが、この記事を公開した段階ではうまくいくものは見つけられなかった
  • ちらつきが発生しているときにそのウィンドウを別のアプリケーションのウィンドウの下(背面)に持っていっても、内容が背面には隠れずに常にちらついた内容が表示されている(ウィンドウの移動で場所は移動できる)
  • ちらつきが発生するアプリケーションを動かすときだけ一時的に(fusion-iconなどで)Compizから別のウィンドウマネージャに切り替えるという方法もあるのだが、fglrxドライバを使用していると「Compizから別のウィンドウマネージャへの切り替わり」もしくは「Compiz使用時のGUIからのログアウト/シャットダウン」のタイミングで固まって操作不能になる場合がある(これもバージョンによって安定していたり不安定だったりしているが、Ubuntu 12.04のときのディストリのパッケージは比較的安定していた印象だったが今の環境では結構不安定)ので避けたい

関連記事:

まとめドキュメント:

関連URL:

使用したバージョン:

  • Catalyst (legacy) 13.1 (8.97.100.7)
  • Xorg server 1.12.4
  • Compiz 0.9.8.6
  • Linux 3.5.7.6
  • Wine 1.4.1