Section N'34'DeviceN'34' Identifier N'34'devnameN'34' Driver N'34'glideN'34' ... EndSection
このドライバを使うには、既に Glide がインストールされている必要がある (この文章を書いている時点では、Glide は http://glide.xxedgexx.com/3DfxRPMS.html から入手できる)。 また、/usr/X11R6/lib/modules ディレクトリに libglide2x.so ファイルを指 すシンボリックリンクを作ることにより、libglide2x.so ファイルが置かれて いる場所を XFree86 に教える必要がある。 例えば以下のようにする(libglide2x.so は /usr/lib にあるものとする):
# ln -s /usr/lib/libglide2x.so /usr/X11R6/lib/modules
/dev/3dfx が既にインストールされている場合、CPU が MTRR レジスタを持っ ていれば、glide ドライバは MTRR レジスタを(glide ライブラリを利用して) 有効にできる(http://glide.xxedgexx.com/MTRR.html を参照)。 これは Voodoo ボードへのデータのコピーを 2.7 倍にも高速化できるので非 常に重要である。というのも、このドライバは大量のデータをコピーするから である…。これは強く求められる。
glide ドライバは 16, 24 ビットカラーモードに対応している。24 ビット カラーモードは 32 ビットのフレームバッファを使用する(24 ビット packed ピクセルフレームバッファには対応していない)。 Voodoo ボードは 16 ビットカラーしか表示できないが、シャドウフレーム バッファは 24 ビットカラーで動作できる点に注意すること。 24 ビットモードに対応していることのポイントは、実際に 24 ビットカラー モードで動作する別のボードと同時に使い、Xinerama を使ったマルチヘッド 構成が可能となる点である。(Xinerama を使うには、全てのボードの色の深さ は同じでなければならない。)
対応している解像度は 640x480, 800x600, 960x720, 1024x768, 1280x1024, 1600x1200 である。全ての Voodoo ボードで全てのモードが動作 するわけではない点に注意すること。Voodoo 2 ボードは 1024x768 より大き な解像度に対応していないようであるし、Voodoo 1 ボードは 800x600 を超え られないようである。 サーバから
(EE) GLIDE(0): grSstWinOpen returned ...
のようなメッセージを受け取った場合には、 ドライバは対応していてもハードウェアは対応していない解像度を使おうとし たと思われる。
対応しているリフレッシュレートは 60Hz, 75Hz, 85Hz である。 リフレッシュレートは通常のモード行から以下の表を使って得られる:
したがって、例えば 70Hz のリフレッシュレートを持つモード行を使う場合は、 実際には 60Hz のリフレッシュレートしか得られない。
glide ドライバでどの Voodoo ボードを使うかの選択は、"Device" セクションの "GlideDevice" というオプションを使って行う。(このオプションがなければ、 最初に見つかったボードがその Device セクションのボードとして選択される。) 例えば、最初の Voodoo ボードを使う場合の Device セクションは以下のよう になる:
Section "Device"
Identifier "Voodoo"
Driver "glide"
Option "dpms" "on"
Option "GlideDevice" "0"
EndSection
複数の Voodoo ボードがある場合は、別の "Device" セクションを用意し、そ の GlideDevice オプションの値を 1 にする。その後も同様である。 (複数の Voodoo ボードを利用できるが、SLI が設定されているボードは一枚 のボードとして扱われる。)
マルチヘッドおよび Xinerama の構成はサポートされている。
DPMS によるスクリーン保護は部分的にサポートされている。"standby" およ び "suspend" モードは単に画面を黒く塗りつぶすだけである。"off" モード は Voodoo ボードの電源を切るので、正しく動作する。
glide ドライバは、ディスプレイのサイズと異なる仮想画面のサイズには対応 していない。
オプションは以下のものがサポートされている( Options 項目):
Section "Monitor"
Identifier "Monitor 1"
VendorName "Unknown"
ModelName "Unknown"
HorizSync 30-70
VertRefresh 50-80
# 1024x768 @ 76 Hz, 62.5 kHz hsync
Modeline "1024x768" 85 1024 1032 1152 1360 768 784 787 823
EndSection
Section "Monitor"
Identifier "Monitor 2"
VendorName "Unknown"
ModelName "Unknown"
HorizSync 30-70
VertRefresh 50-80
# 1024x768 @ 76 Hz, 62.5 kHz hsync
Modeline "1024x768" 85 1024 1032 1152 1360 768 784 787 823
EndSection
Section "Device"
Identifier "fb"
Driver "fbdev"
Option "shadowfb"
Option "dpms" "on"
# 筆者のビデオカードは AGP バス上にあり、通常は
# PCI bus 1, device 0, function 0 の位置にある。
BusID "PCI:1:0:0"
EndSection
Section "Device"
# 筆者は Voodoo 2 ボードを持っている
Identifier "Voodoo"
Driver "glide"
Option "dpms" "on"
# 次の行で、最初のボードを使うことを指示する
Option "GlideDevice" "0"
EndSection
Section "Screen"
Identifier "Screen 1"
Device "fb"
Monitor "Monitor 1"
DefaultDepth 16
Subsection "Display"
Depth 16
Modes "1024x768"
EndSubSection
EndSection
Section "Screen"
Identifier "Screen 2"
Device "Voodoo"
Monitor "Monitor 2"
DefaultDepth 16
Subsection "Display"
Depth 16
Modes "1024x768"
EndSubSection
EndSection
Section "ServerLayout"
Identifier "Main Layout"
# 画面 1 は左側、画面 2 は右側に置かれる
Screen "Screen 2"
Screen "Screen 1" "" "" "Screen 2" ""
EndSection
この設定ファイルを使い、コマンドラインオプション +xinerama を付けて サーバを実行すると、2 つのモニタで 1 つの大きな領域が表示される。 ウィンドウは両方のモニタ間を行き来できるし、モニタ間にまたがることもで きる。Xinerama 機能拡張を使った X サーバの起動は、以下のコマンドで行え る: