はじめに
このドライバは当初 SiS86c201 用に作成されました。そしてこのドライバは
SiS86c202, SiS86c205, SiS5597/5598 チップでも動作します。現在は
SiS6326 をサポートするようになりましたが、テストはほとんど行っていませ
ん。また、SiS86c215 と SiS86c225 のサポートもいくらか追加しました。サ
ポートと言っても単にチップを SiS86c205 として識別するだけですから、お
そらく 86c215 はアクセラレーションモードでは動作しないでしょう(機能を
いくつか取り除いた安物の 205 ということになります)。
このドライバは先進的な機能をたくさんサポートしています。これを以下に列
挙します:
- リニアアドレッシング
- 8/15/16/24 bpp
- 完全にプログラマブルなクロックのサポート
- ハードウェアカーソル
- 多くの機能の BitBLT アクセラレーション
- XAA (XFree86 Acceleration Architecture)のサポート
サポートしているチップ
SiS 86c201
(外部ハードウェアクロック)
SiS 86c202, SiS 86c2x5, SiS 5597/5598, SiS 6326
(内部クロックシンセサイザ)
1600万色のグラフィックスモードでは、アクセラレーションエンジンは色展開
をサポートしていません。
XF86Config のオプション
以下のオプションは SiS ドライバ専用です。各項目は XF86Config ファイルの
`svga' ドライバセクションの、適用する色の深さについての Screen サブセ
クションで指定しなければなりません(オプションを全ての色の深さに対して
有効にするには、Device セクションでオプションを指定します)。
Option &dquot;set_mclk&dquot;
このオプションを使うとお使いのカードのメモリクロックを変更できます
(5597 と 6326 の場合のみ)。メモリのタイミングを変更するとハードウェア
を壊す可能性もありますが、オーバークロッキングの悪影響は普通は描画時に
ノイズが乗ることくらいです。それでも気をつけてください。普通は少しクロッ
クを上げると描画速度が向上し、ドットクロックも高くすることができるよう
になります。サーバは起動メッセージでデフォルトのメモリクロック値を出力
するので、この値を基本値として使うと良いでしょう。単位は MHz です。
Option &dquot;dac_speed&dquot;
このオプションを使うと、設定可能なドットクロックの最大値を変更することが
できます(5597 と 6326 の場合のみ)。この指定をしなかった場合、サーバは
メモリのクロックと速度、バンク数に基づいて安全側に寄った推定を行います。
モニタがより高いドットクロックをサポートしており、カードも高いドットク
ロックをサポートできることが分かっている場合は、このオプションを試して
ください。(モニタに対してではなく)設定に対して速度が速すぎた場合、画面にノイズ
が乗ったり画面が表示されない等の色々な影響が出ます。モニタがサポートして
いるドットクロックであっても、135MHz 以上(6326 の場合には 175MHz 以上)
の速度を指定しないでください。
Option &dquot;noaccel&dquot;
デフォルトでは XAA(XFree86 Acceleration Architecture) が使用されます。
このオプションは XAA の使用を無効にし、古い BitBlt アクセラレーション
操作を有効にします(後述)。
Option &dquot;hw_clocks&dquot;
86c202 以降のチップでは、デフォルトで全てのクロックに対してプログラマ
ブルクロックが使われます。このオプションを使わないで、チップがサポート
している固定のクロック値を使うこともできます(メーカー依存)。
(訳注:
動作的には「このオプションを使って、チップがサポートしている固定のクロッ
ク値を使うこともできます(メーカー依存)。」が正しいのでは?)
Option &dquot;sw_cursor&dquot;, &dquot;hw_cursor&dquot;
デフォルトではハードウェアカーソルを使用します。
Option &dquot;no_linear&dquot;
デフォルトでは、全てのチップにおいてリニアアドレッシングが使用されます。
しかし、実装によってはリニアアドレッシングに不具合があります。このオプ
ションでリニアアドレッシングを無効にすることができます。ハードウェアア
クセラレーションと 16/24 bpp はリニアアドレッシングが有効な時だけサポー
トされる点に注意してください。
Option &dquot;no_bitblt&dquot;
このオプションは BitBLT エンジンの使用を全て無効にします。アクセラレー
ション関係の問題に対処する時に役立ちます。一般には、このオプションを使
うと性能が低下します。
Option &dquot;no_imageblt&dquot;
イメージ書き込みに関する問題と、たぶんスティプルのアクセラレーションの問
題に対処する際に役立ちます。一般には、このオプションを使うと性能が低下
するでしょう。
Option &dquot;ext_eng_queue&dquot;
5597/8 と 6326 には VRAM 上にあるエンジンのコマンドキューを拡張するオ
プションがあります。キューの長さを拡張すると、ドライバは一部の色展開コ
マンドのキューの状態チェックだけを行います。このオプションを使うと性能
は向上しますが、コマンドが消えてしまい、画面表示がおかしくなる可能性が
あります。拡張されるコマンドキューのサイズは 16-32K なので、その確率は非常
に低いですがゼロではありません。実験では性能の向上は約 8-10% です。現
時点では、このオプションの使用時に xaa_benchmark オプションを使うとアクセラレー
ションエンジンが止まってしまい、イメージ表示がおかしくなります。
Option &dquot;pci_burst_on&dquot;
このオプションは、いくつかのレジスタをちょっとを設定します。ドキュメ
ントには記述されていますが、筆者はこのオプションが役に立つのか知りませ
ん。安定性や性能にどんな違いが出るのかもわかりません。
Option &dquot;fast_vram&dquot;
1サイクルメモリアクセスを有効にします。このオプションを試してください。
メモリのバンド幅が増えるので、高解像度モードで画面が乱れてノイズが出る
可能性が減ります。
Option &dquot;fifo_moderate&dquot;,&dquot;fifo_conservative&dquot;,&dquot;fifo_aggressive&dquot;
このオプションは CRT の FIFO を調停するための閾値を変更します。
fifo_aggressive を指定すると、CPU が VRAM に長い間アクセスできるように
なります。fifo_conservative を指定すると CPU がメモリを使っている時に
CRT がメモリを読み出そうとしてノイズが乗ってしまう可能性が小さくなり
ます。ただし、性能は悪くなります。デフォルト値は aggressive と
moderate の間です(moderate より agressive 寄りです)。
モード行
SiS ドライバで使うモード行を作る時には、以下の点を考慮する必要がありま
す:
- ハードウェアアクセラレーション。ハードウェアカーソル機能と塗り
つぶし操作のアクセラレーションは一般に、使用するメモリをビデオ RAM か
ら割り当てます。このメモリ割り当てに失敗した場合、これらの機能は自動的
に無効にされます。また、ext_eng_queue オプションを指定すると、ビデオ
RAM から 32k のメモリが割り当てられます。
- ドットクロック。SiS のドキュメントによると、6326 は以下に挙げ
るビデオモードで動作します。6326 ベースのボードで設定可能なドットクロッ
クの最大値は、ボードにインストールされているメモリにも依存します。高
いドットクロックで動作させるためには、オプション fast_vram が必要に
なるかもしれません。当然ながら、インストールされているメモリは 1 サ
イクルの読み書きができなければなりません。サーバは高いドットクロック
に伴う問題を回避するために、推定したメモリのバンド幅に基づいて最大値
を制限します。この制限を dac_speed で上書きすると、モード行の指定に
よってはカードの制限を越えた時にカードを壊すことがあります。ドライバ
の推定値とチップセットの制限の間にある値は設定可能ですが、表示の質が悪
かったり、ノイズが乗ったり、全然表示がされなかったりすることがありま
す。
- 6326 向けの SiS 推奨ビデオモード:
- 640x480 : 4, 8, 15, 16, 24 bpp, 85Hz ノンインタレース
- 800x600 : 4, 8, 15, 16, 24 bpp, 85Hz ノンインタレース
- 1024x768 : 4, 8, 15, 16, 24 bpp, 85Hz ノンインタレース
- 1280x1024 : 4, 8, 15, 16, 24 bpp, 75Hz ノンインタレース
- 1600x1200 : 4, 8 bpp, 65Hz ノンインタレース
トラブルシューティング
汎用 VGA ドライバは 6326 では動作しません。したがって、このカードでは
XF86Setup は使えません。代わりに xf86config を使ってください。
スクリーンに雪のようなものが激しく出てきます。Windows95 からダンプした
FIFO の最大値と最小値を使っても、これを無くすことはできませんでした。
後者については状況が変わりました。現在 FIFO の設定には計算された値を
使います。そしてこの設定は、CRT が必要とするバンド幅(dotclock*depth/8)が
メモリのバンド幅(Mclk*32 または Mclk*64)に接近するまでは安定しているよう
です。もし2つの値が接近して画面表示が不安定になってしまう場合は、
fifo_moderate, fifo_conservative を使うかドットクロックを小さくしてみる
とよいでしょう。
一部のビデオモードは高いドットクロックでは全く動作せず、画面に何も
表示されません。この問題を現在追跡中です。この場合、ドットクロックを
下げれば問題が解決するでしょう。
Updated October 12, 1998 by Juanjo Santamarta, covering changes for 5597 and 6326.
Updated November 6, 1998 by Juanjo Santamarta, covering changes for 5597, 86c2x5 and 6326.
$XFree86: xc/programs/Xserver/hw/xfree86/doc/Japanese/sgml/SiS.sgml,v 1.1.2.2 1999/05/25 12:00:33 hohndel Exp $
日本語訳について
日本語訳は X Japanese Documentation Project が行いました
(翻訳: 藤原輝嘉 ,
校正: 金田浩司 ,
岡崎哲朗 ,
山下純司 )。
問題点の指摘やご意見は藤原まで御連絡ください。原文の著作権は XFree86
プロジェクト社にあり、日本語訳に関する権利は X Japanese Documentation
Project にあります。