まず最初に、XF86Config
で選択したデフォルトのモードをモニタが
サポートしていること、つまり水平同期の上限が正しいことを確認してくださ
い。まずは標準の 25.175 MHz のクロックの 640x480x256(水平同期に 31.5
だけを指定します)から始め、お使いの設定でドライバが動作することを確認
するのが良いでしょう。使われるデフォルトのモードは常にモード行に最初に
書かれたモードで、タイミングのセクションの解像度を指定するための最も高
いドットクロック値とともに使われます。
VESA 標準モードのタイミングは、一部のモニタで問題を起こすことがあるの で注意してください(水平同期信号を増やしてみましょう。つまり真ん中の 2 つの水平タイミング値の差を大きくするか、または全ての水平タイミングのパ ラメータを 16 か 32 の倍数にします)。
モニターが扱えないモードを使っているのです。標準でないモードを使ってい る場合、少し数値をいじる必要があるかもしれません。モニターが取り扱える 標準モードと標準周波数の場合、似たようなモードと周波数の組合せに対する 別の異なるタイミングを見つけてください。
この問題は、スクロールのような描画操作が行われている時に顕著になります。
542x/3x/46/6x/754x を使う場合は、
"fifo_conservative"
オプションを試してください。
これでうまく行かない時は、"fast_dram"
オプション
を試すか、ドットクロックを下げてみてください。これでも十分でない場合は、
"noaccel"
オプションか、
"no_bitblt"
オプションが多分有効でしょう。546x を
使っている時は、"fifo_aggressive"
オプションを試すこともでき
ます。
(描画操作に依存しないで)いつも画面全体が水平方向に波打ったり、揺れたり
する現象です。おそらくドットクロックが高すぎるのでしょう。また、近い
MCLK 値が衝突を起こしていることも考えられます。ドットクロックを下げて
みてください。また、モードのタイミングをずらしてみても良いでしょう。2
番目の水平クロック値をいくらか増やしてみてください。ドットクロックが
65 MHz の 1024x768 モード(約 60Hz)では、次の値が役に立つでしょう:
"1024x768" 65 1024 1116 1228 1328 768 783 789 818Clockchip
"cirrus"
を用いてプログラマブルクロックを使っている
場合は、これを無効にし、デフォルトのクロック値の組合せを使ってください。
"noaccel"
オプションを試してみましょう。これで動
作すれば、多少性能が良くなる "no_bitblt"
を試して
ください。 BIOS の設定が大丈夫かどうか確認してください。特に
0xa0000-0xaffff をキャッシングしないようにしてください。裏 DRAM のリフ
レッシュをを無効にしても良いでしょう。
この問題が起こると、アクセラレータ機能のいずれかのバグや、あるいは
BitBLT エンジンの問題に関係しているかもしれません。
"noaccel"
オプションや
"no_bitblt"
オプションを試してみてください。また、
BIOS の設定も確認しましょう。
前の項目と同じです。
DRAM の構成に問題があることを示しています。カードに 2 メガバイトのメモ
リを搭載している場合は、"no_2mb_banksel"
オプショ
ンを試してください。ただし、1 メガバイトだけを仮想スクリーンに使う場合
は、videoram "1024"
を使ってください。
標準でないビデオの実装についてこの問題が報告されています。
"no_bitblt"
オプションを使ってください。
この現象が起こるのは、ドットクロック値が高すぎて描画のためのバンド幅が 十分取れない場合(例: 512K バイトのカードで 40MHz を使う場合)や、(5422 のような形式の)アクセラレーション機能を使っている場合です。
多分、MCLK の設定が高すぎることに関係しています(バンクモードが大丈夫で も、リニアアドレッシングで問題になることがあります)。
持っているチップセットに最も近いものの型を強制的に指定してみましょう。
システムからのビデオメモリに対する BitBLT 操作における問題に関係してい
ます。気になる場合には、"no_imageblt"
オプション
を試してみましょう。
この現象はいくつかの構成で報告されています。XFree86 3.1 では、SVGA サー
バの検出結果が Chipset 行を要求し、543x のレジスタを壊していたこともあ
ります。普通は、テキストモードのフォントをセットするユーティリティ
(Linux では setfont
, runx
, restorefont
)を使っ
てフォントを復元することができます。
カードやマザーボードの設計が悪いために、ビデオカードのドットクロックを 高くするとシステムの他の部分(例: ディスク I/O)と衝突することがあります。 この現象は 5428 ベースの PCI カードの一部で起こっています(これは滅多に ありません。というのも、5428 チップは PCI をサポートしていないからです)。
ドットクロックが高い場合、グラフィックカードのハードウェアカーソルが正
しく動作しません。"sw_cursor"
オプションを試すか、スクリーン
のリフレッシュレートを下げましょう。
この問題は普通、スクリーンのディスプレイサイズよりも大きい仮想スクリー ンのサイズを使っているときに起こります。ゴミピクセルはフレームバッファ の未使用の部分で、各スキャンラインがバイト境界にまたがらないように調整 している結果として起こります。余計なピクセルを無くすには、スクリーンの ピクセル幅が 128/(bpp 値) で割り切れるような表示モードを使うことです。
上の項目と同じです。
この問題は通常、色の深さが大きい時とスクリーンが速く書き換えられている
時(長いファイルを cat で出力している時や、大きいウィンドウをぐるぐると
動かしている時)に起こります。RamBus メモリが激しく使いすぎになるのです。
まずは Option "med_dram"
を使ってください。これでも問題が解決
しなければ Option "slow_dram"
を使います。
"noaccel"
オプ
ションを試してください("no_bitblt"
の効果が無い場合)。
このドキュメントに載っていないようなドライバ関連の問題が生じた場合や、 アクセラレーション付き機能のバグを発見した場合は、XFree86 チームに連絡 するか(現在のドライバのメンテナである Corin Anderson には、 corina@the4cs.com で連絡できます)、Usenet のニュースグループ "comp.windows.x.i386unix" に投稿を行ってください。
実際のところ、(成功でも失敗でも)報告は大歓迎です。テストがまだ行われて いない機器構成の場合はなおさらです。報告は BetaReport フォーム (report@XFree86.org にメールを出してください)を使って行うことができま す。そのうちに www.xfree86.org で公開されるベータリリースを狙 うというのもよいでしょう。