次のページ
前のページ
目次へ
XF86_SVGA の ViRGE ドライバは、Trio3D と Savage 系を含めた現在の S3
ViRGE 系のチップセットを全てサポートしています。
このドライバは XAA アクセラレーションアーキテクチャを使ってアクセラレー
ションを行っており、色の深さは 8, 15, 16, 24, 32 bpp を利用できます。
このドライバのテストを行ったのは、2MB, 4MB の ViRGE カードのいくつか、
4MB の ViRGE/DX カード と ViRGE/VX カード、4MB の Trio3D カードです。
解像度は 1600x1200 まで使用できます。このドライバは初期リリースなので、
全て期待通りに動作するとは限りません。Trio3D のサポートは初めてのリリー
スであり、テストも十分でない点に注意してください。何か問題があれば、
XFree86@Xfree86.org
までお知らせください。連絡の際には適切なバグレポート用紙を使ってくださ
い。
- PCI ハードウェア、ViRGE, ViRGE/DX, ViRGE/GX, ViRGE/GX2,
ViRGE/MX, ViRGE/VX, Trio3D, Savage 系をサポートしています。
- 8bpp, 15/16bpp, 24bpp, 32bpp をサポートしています。
- 仮想端末切替えはうまく動作しているようです。どの色の深さでも、表
示が乱れるという報告は受けていません。
- アクセラレーションはかなり良くできています(スクリーンからスクリー
ンへのコピー、長方形の塗りつぶし、CPUからスクリーンへの色展開、モノク
ロとカラーでの 8x8 パターンによる塗りつぶし)。XAA のルーチンが最適化さ
れているので、現在の色展開の速度はアクセラレーション付き S3 ViRGE 専
用サーバよりもかなり高速です。
- 32bpp におけるアクセラレーションは限定されています。
ScreenToScreen bitblit と solid rectangle だけがサポートされています。
ViRGE 自体に 32bpp でのアクセラレーション機能がないため、グラフィック
スエンジンを 16bpp モードで使用しています。
- 全てのモードでハードウェアカーソルがサポートされています。
Savage3D と Savage4 向けの Savage 系チップ用ドライバは、XFree86-3.3.5
のリリースの直前に S3 が XFree86 に寄付しました。このドライバは
XFree86 の設計の原則と目的に違反している部分がいくつかありますが、需要
が非常に大きいので、XFree86-3.3.5 に含めることに決めました。
3.3.6 ではいくらか書き直しが行われ、非 BIOS モードのために昔に戻したコー
ドが入っています。
- ViRGE/VX では外部 RAMDAC はサポートされていません。
- VL バスのカードはサポートされていません。
- ダブルスキャンモードはサポートされていません。
- このドライバはリニアアドレッシングでしか動作しません。
- 線や多角形ではまだアクセラレーションは使えません(ただし、XAA は
一部のアクセラレーションをサポートしています)。
- バーストコマンドインタフェース(BCI, Burst Command Interface)のサ
ポートと 32bpp のサポートは、Trio3D 用には実装されていません。
- Trio3D サポートが動作するのは一部のモード行だけです。標準の
モード行の多くでは動作しません(ただし、少しドットクロックを変えれば動
くかもしれません)。以下の 2 つのモード行は 8bpp と 24bpp で安定して動
作するようです:
Modeline "1024x768" 75 1024 1048 1184 1328 768 771 777 806 -hsync -vsync
Modeline "1280x1024" 135 1280 1312 1416 1664 1024 1027 1030 1064
以下の 2 つのモード行は 16bpp で安定して動作するようです:
Modeline "640x480" 45.80 640 672 768 864 480 488 494 530 -hsync -vsync
Modeline "800x600" 36 800 824 896 1024 600 601 603 625
ViRGE SVGA ドライバは XF86Config のオプションの多くをサポートしていま
す。このオプションを使って、PCI の動作をチューンしたり、性能を向上させ
ることができます。
メモリ用のオプション:
- "slow_edodram" を指定すると ViRGE は2サイクルの EDO モードに切り
替わります。ViRGE でピクセルが崩れる場合には、このオプションを試してく
ださい。このオプションを使用すると、性能は大幅に悪くなります。
- "early_ras_precharge" と "late_ras_precharge" はメモリのタイミン
グを変更するもので、一部のカードでのピクセルが崩れる問題を解決すること
ができます。デフォルトの動作は BIOS が決定しますが、普通は
"late_ras_precharge" です。
- "set_mclk value" は、ビデオメモリのクロックレートを 'value' に設
定します(単位は MHz)。カードの性能はメモリのクロック数に直接比例するの
で、このオプションで性能を向上させることができます。BIOS が行ったカー
ドの設定はサーバの起動時に表示されます。「安物」のカードでは S3 のデフォ
ルト値である 50MHz がよく使われます。メモリの方がこれより速いことも多
く、そのようなカードでは 60 MHz や 65MHz でもうまく動作します(最近の
/DX や /GX カードにはもっと速くてもよいものがあります)。S3 が公式にサ
ポートしているのは MCLK 値が 50MHz の場合だけなので、XFree86 はこの仕
様を越えるような使い方はお勧めしません。
***注意: このオプションは "Option" キーワードより後に置いてはいけませ
ん!
アクセラレーションとグラフィックエンジン用のオプション:
- "noaccel" はアクセラレーションを全て無効にします。
"fifo_aggressive", "fifo_moderate", "fifo_conservative" は、ピクセルの
FIFO が内部メモリバスを占有して、自身を塗りつぶし直すときの閾値の設定
を変更します。この閾値を小さく取るほど、カードのアクセラレーション性能
は向上します。まず最も速い設定("aggressive")を試し、ピクセルが崩れるよ
うならば遅い設定にするとよいでしょう。最適な設定を決めるのはたぶんドッ
トクロック値と色の深さです。これらのオプションのどれかを設定すると、性
能向上に繋がるような他のメモリ設定も変更されます。したがって、少なくと
も "fifo_conservative" (チップのデフォルト設定を使う)を使わなければな
りません。
PCI 用オプション:
- "pci_burst_on" を指定すると、PCI のバーストモードが有効になりま
す。このオプションは「欠陥のある」一部の PCI チップセット以外では動作
するはずで、性能を向上させます。
- "pci_retry" を指定すると、ドライバは PCI の Retry を信用して
ViRGE のレジスタのプログラムを行うことができるようになります。このオプ
ションを動作させるには、"pci_burst_on" は有効になっていなければなりま
せん。このオプションを使うと性能が向上します(特に小さい fill/blit の場
合)。その理由は、ドライバがコマンドを送る前に ViRGE に問い合わせを行っ
て、コマンド実行が可能なことを確かめる必要がなくなるからです。このオプ
ションは最近のほとんどの PCI チップセットで動作するはずです。起こり得る
副作用としては、PCI バス上での DMA 操作(例: サウンドカードやフロッピー
ドライブ)との干渉が考えられます。
カーソル用のオプション:
- "hw_cursor" ハードウェアカーソルを有効にします。
色の深さに関するオプションと制限事項:
- ViRGE の場合、8bpp で 80MHz 以上のクロックであるとピクセルの多重化が行
われます。
- 15bpp はサポートされています。サーバのオプションに "-bpp 15" を
指定してください。
- 24bpp は STREAMS エンジンを利用してサポートされています。
- 32bpp でも STREAMS エンジンが使われます。しかし、ViRGE は 32bpp
を「ネイティブ」にはサポートしていないので、アクセラレーションはかなり
制限されています。
- 24bpp でも 32bpp でもインタレースモードはサポートされていません。
- 32bpp 時の画面幅は 1024 ピクセル未満に制限されています。
(十分なメモリがあっても 1024x768 は使用できません。) これは ViRGE チッ
プのハードウェア的な制限です。
LCD がアクティブならば、CRT 出力は常に 1024x768 (または、LCD の「物理
的」サイズ)で行われます。画面の小さいモードの場合は、デバイスのセクショ
ンでオプション "lcd_center" を指定しない限り、LCD に収まるようにズーム
表示が行われます。
この物理サイズ(例: 1024x768)のモードに対応するピクセルクロック値につい
ては、以下のことが成り立ちます。
- ピクセルクロック値は、設定ファイル(のデバイスのセクション)で、例
えば `Set_LCDClk 70' のように明示的に指定できます。(この結果、LCD が有
効の時には全てのモードにおいてピクセルクロック値が 70 MHz になります。)
- このモードにおけるディスプレイのサイズが物理的な LCD のサイズと
同じならば、ピクセルクロック値はモード行の「最初の」モードから取得され
ます。
- BIOS の初期化によるデフォルトの LCD ピクセルクロック値が使われま
す。`Set_LCDClk ...' を用いて値を指定しなければ、この値はサーバの起動
時に `LCD size ...' という行に出力されます。
LCD がアクティブで「ない」場合には、通常のモード行とピクセルクロック値
が VGA 出力に使われます。
Fn-F5 等を使って出力ソースを切替えると、X サーバはピクセルクロックを知
らされず、ピクセルクロックや他の設定はおかしくなります。したがって、出
力ソースを切替えた「後」にモードを切替えなければなりません。そうすれば、
X サーバはどの出力がアクティブかをチェックし、適切なクロック値等を選択
します。よって、出力を切替えるためのお勧めのキーシーケンスは次のように
なります:
Fn-F5 Ctrl-Alt-Plus Ctrl-Alt-Minus
これで全てうまくいくはずです。
東芝のノートPC のキーボードでは、まず Ctrl-Alt を押した状態にしておき、
Plus/Minus を押す前にさらに `Fn' を押します。これにより、モード切替え
のたびにいちいちキーボードの数値部分を有効または無効にすることが避けら
れます。
次のページ
前のページ
目次へ