AGX サーバに関する注意書き Henry Worth 24 June 1995 The X Japanese Documentation Project 30 January 1999 ____________________________________________________________ 目次 1. 一般的なことがら 2. 謝辞 3. 既知の問題 4. 残っている作業 5. XF86Config 6. XGA の設定 ______________________________________________________________________ 1. 一般的なことがら このサーバは現在、IIT AGX-016, AGX-015, AGX-014, XGA-2 チップセットを サポートしています。AGX チップセットは XGA アーキテクチャに基づくもの ですが、足りない機能がいくつかありますし、他のカードと違う点もありま す。 XGA-1, AGX-010 チップセットのサポートについてもテストされていない 部分があります。ピクセルの色の深さは一般的に 8bpp, 15bpp, 16bpp がサポ ートされます。unpacked 形式の 24bpp (RGBX 32bpp) は、まだリリースでき るほど安定していません。 現在サポートしている RAMDAC は、Hercules Graphite シリーズで使われてい る Brooktree (BT481, BT482, BT485) と AT&T (20C505) RAMDAC, Sierra RAMDAC (15025, 15021), 汎用 VGA RAMDAC です。テストはされていません が、AT&T 20C490 シリーズにも対応しました。 現在のドライバにはアクセラレーションのルーチンがたくさんあります: 幅が 0 の実線と点線(AGX-014 を除く)。bitbit を使った塗りつぶし、タイリン グ、スティプル。円弧と多角形の塗りつぶし。8ビット文字の文字グリフと フォントキャッシュ。 テストを行ったボードを以下に示します: Hercules Graphite シリーズの大部 分(ISA, VLB 版)、Spider 製の Black Widow VLB と Black Widow Plus VLB, Boca 製の Vortek VL, CatsEye/X XGA-2, PS/2-57 planar XGA-2。Orchid 製 の Celsius は Spider と Boca のボードによく似ていますが、AT&T 20C490 シリーズの RAMDAC を使っているカードが一部にあるかもしれない点が異なり ます。AT&T 20C490 の互換品と思われる UMC RAMDAC を使っている汎用ボード についての報告もありました。 2. 謝辞 まず、Hercules 社のカスタマサポート部に感謝します。こちらにはボードを 提供していただき、おかげで作業を始めることができました。 次に XFree86 チームとプロジェクトのために尽力している方々に感謝しま す。このサーバを作り始めるに当たっての作業の基礎となる部分を与えていた だきました。 3. 既知の問題 o アクセラレーション付きの線描画ルーチンで描画した線は、mi/cfb ルーチ ンで描画した線と一致しません。線の描画と消去を行うルーチンの実行中 に仮想コンソール間の切り替えを行った時に、この不一致が目立ちます。 前のリリースで改善/修正されたようなのですが、もう少しテストする必要 があります。 o 3.1.1 でキャッシュ付きフォント描画に追加された特殊なケースでの高速 化の一部は、やりすぎになる場合があるので無効にされました。これは端 末のフォントの性能を半分に落としますが、AGX チップの場合、フォント の性能は同じ時期の他のカードと比べても既に低いです。 o 全てのプログラムと同様に、さらにテストを行う必要があります。 4. 残っている作業 o 上記の既知の問題への対応。 o アクセラレーションルーチンの追加と一般的な性能の向上。既存のアクセ ラレーションルーチンの多くは、アーキテクチャ的に XGA とは全く異なる グラフィックスチップをサポートしている他のサーバの既存のルーチンを いい加減に書き直したものであり、明らかに最適とは程遠いものです。特 に、クラフィックスコンテクストを設定するための操作ごとの一般的なオ ーバーヘッドの中には、ValidateGC() ルーチンに移動させるべきものもあ ります。 o ハードウェアカーソルの完全なサポート。コードの大部分はできていま す(あるいは他のサーバからもらってきています)。残っているのは、設定 コードを少し書くことと、デバッグや色々な組合せを試すための時間を見 つけることだけです。 o Graphite Pro の 84 ピン RAMDAC のサポート(2MB 版の Graphite Pro に は両方の RAMDAC があり、1MB には 44 ピンの RAMDAC しかありません)。 現在は 84 ピンの RAMDAC は倍速クロックの pixmux モードでしかサポー トされておらず、サーバはビデオモードで必要とされるように RAMDAC の 切り替えを行います。8bpp より大きいモードではこの切り替えは起こりま せん。 o ハードウェア検出の実装を増やす。この作業は困難かもしれません。とい うのも、AGX チップは VESA の VXE POS レジスタをサポートしているにも かかわらず、AGX ベースのベンダの一部(全て?)はこれを実装していないよ うだからです(VXE 準拠だと言っているベンダはありますが…)。AGX チッ プにはリビジョンやベンダを表すレジスタがいくつかありますが、これは ドキュメントには載っていません。注意: SuperProbe も AGX/XGA の検出 はサポートしていません。XGA チップに対しては ISA の POS 検出がサポ ートされており、 EISA の POS の検出のコードも入っていますが、テスト は行われていません。 o 細かい最適化。特に、完全に一般化する必要が無い特殊な場合のうち、よ く現われるものに対する処理のオーバーヘッドの削減 5. XF86Config Device セクションの項目と、現在サポートされているオプションを以下に示 します: AGX-014, AGX-015, AGX-016 と ISA ベースの XGA-1, XGA-2 を使う場合、 XF86Config ファイルの Device セクションで最低限指定しなければならない のは Chipset です。しかし、AGX-01[456] チップの機能を最大限に利用する ためには、RAMDAC も指定すべきです。他のパラメータを使って追加の機能を 選択したり、デフォルト値を上書きしたり、検出を止めて起動時間を短くする こともできます。XGA 固有の設定は本ドキュメントの最後で説明します。一般 には XGA の項目を使って AGX-01[456] のデフォルト値も上書きすることがで きます。 Ramdac ビデオボードに載っている RAMDAC のクロックのレートを必ず確かめ、 サーバに指定可能な場合であっても、このレートを越えないようにしま しょう。 RAMDAC をオーバークロックさせると、これを壊してしまいま す。 一般的にはクロックレートは部品番号に添字として付けられています。 ただし、最上位の桁だけが付いていることや、他のコード(例えばパッ ケージのタイプ) と混じっていることもあります。例えば、プラスチッ クの J-lead パッケージに入っている 85MHz の Bt481 の部品番号は Bt481KPJ85 であり、135MHz の AT&T20C505 の部品番号は ATT20C505-13 です。Sierra のチップの場合には、クロックレートは部 品番号の下に濃いインクで刻印されています。 "normal" 通常の VGA スタイルの RAMDAC(6 ビット DAC)であり、指定が無い 場合にはこれがデフォルト値です。ほとんどのカードはこのパラメ ータで動作するはずですが、一部の機能は使えないでしょう。8bpp だけを使用できます。 "bt481" bt481 RAMDAC (8 ビット DAC をサポートしています) "bt482" bt482 RAMDAC(8 ビット DAC をサポートしています)。Hercules Graphite HG210 は BT481 または BT482 を使っています。両者の違 いは、BT482 にはハードウェアカーソルがあることだけです(まだサ ポートしていませんが)。 BT481/2 のドットクロック値の制限は 85MHz です。8bpp, 15bpp, 16bpp がサポートされています。 "ATT20c490" AT&T490 RAMDAC (49[123] を含み、- 8 ビット DAC をサポートして います)。8bpp 時のドットクロック値の制限は 110MHz です。8bpp, 15bpp, 16bpp がサポートされています。 "SC15025" Sierra SC15025 および SC15021 RAMDAC(8 ビット DAC をサポート しています)。 SC15025 の制限は 125MHz で、SC15021 の制限は 135MHz です。RAMDAC の実際のレートを調べましょう。AGX ベース のボードで使われている一部の SC15025 はレートが 110MHz しか出 せません。8bpp, 15bpp, 16bpp がサポートされています。 "herc_dual_dac" Hercules Graphite Pro の RAMDAC を調べます。80 ピンの Big- RAMDAC が付いている(2MB モデル)場合には Big-RAMDAC を使います が、倍速クロックのピクセル多重化モードしか使いません(高いク ロック値だけになります!)。 8bpp モードの低いクロック値や解像 度は 44 ピンの Small-RAMDAC に切り替えることでサポートしま す。15bpp と 16bpp がサポートされています。 "dac-8-bit" オプションが BT485 RAMDAC を載せた Graphite Pro で動作しないという報告が以前にありましたが、この点では AT&T20C505 と全く同じはずなので困ってしまいました。問題の切り 分けを行うための起動メッセージや XF86Config ファイルは送られ てきませんでした。 HG210 Graphite ではサポートされていません。 "herc_small_dac" Hercules Graphite Pro の RAMDAC を調べます。必ず BT481/482 RAMDAC だけを使うようにします。8bpp, 15bpp, 16bpp と unpacked 形式の 24/32bpp がサポートされています。 HG210 Graphite ではサポートされていません。 "xga" AGX-010 に対し、デフォルトの VGA 形式の RAMDAC 制御を上書き指 定できるようにします。 Ramdac 関連のオプション: "dac_6_bit" RAMDAC を VGA デフォルトの 6 ビット DAC モードに設定しま す("normal" の場合のデフォルト値です)。 サポートしている RAMDAC を 8 ビット DAC に設定します("normal" を除く全ての場合のデフォルト値です)。 "sync_on_green" 同期信号をG(緑)信号に乗せる合成する機能を持った RAMDAC (BT481/481, AT&T20c490)の場合、この機能を使います。しかし、ボ ードに必要な装備があっても、合成のロジックの方が怪しいです。 Chipset: 必ず指定しなければなりません。指定できる値は "AGX-016", "AGX-015", "AGX-014", "AGX-010", "XGA-2", "XGA-1" のいずれかで す。AGX ベンダの一部はチップの上にステッカーを貼っていますが、一 般的には、VLB ボードの場合にはこれは多分 AGX-015 で、ISA ボード の場合には多分 AGX-014 でしょう。 Hercules Graphite Power Pro と Spider Black Widow Plus は AGX-016 チップセットを使っています。 一般的には、AGX-0{14,15,16} シリーズの古いリビジョンのものは問題 を起こさないようです(AGX-014 のアクセラレーション無しの線描画の 性能が低いことは除きます)。 注意:何らかのテストを行っているのは AGX-016, AGX-015, AGX-014, XGA-2 だけです。開発の大部分は AGX-015 ベースでメモリ 2MB の Hercules Graphite VL PRO (HG720) で行い、以前のリリースの場合に はテスタのほとんどは AGX-014 ベースのメモリ 1MB の Hercules Graphite (HG210) を使っていました。 筆者が持っている AGX-010 に関するわずかなドキュメントは、XGA ア ーキテクチャのクローンに追加の設定用レジスタをいくつか追加した チップについてのドキュメントです。XGA RAMDAC 制御レジスタと拡張 VGA RAMDAC 制御レジスタのどちらを使うかは決まっていません。3.1.1 より後はデフォルトで VGA 制御レジスタを使うようになりました が、XGA RAMDAC パラメータを使えば XGA 制御レジスタを強制的に使う こともできます。XGA セクションで説明されている設定パラメータと同 様のパラメータを使って、I/O やメモリアドレスに関する AGX のデ フォルト値を上書きすることができます。 VideoRam: 指定しなければ検出が行われます。このオプションを指定すると、サー バの起動が少し速くなります。 チューニング用オプション: バス I/O インタフェース: "8_bit_bus" 強制的に 8 ビット I/O バスにします。 "wait_state", "no_wait_state" CPU のアクセス待ち状態の設定とクリアを行います。デフォルト 値は POST 設定です。 "fifo_conserv" AGX-015 と AGX-016 において、メモリ I/O バッファを無効にし ます。これは MS-Windows のドライバのデフォルトの動作です。 「タイミングがきわどい」一部の VLB システムでは、このオプ ションが必要です。このサーバに対するデフォルトの動作では、 バッファを無効にします。 "fifo_moderate" AGX-015/016 のメモリ I/O バッファを有効にします。 "fifo_aggressive" AGX-016 の特大バッファを有効にします。どちらのオプションを 使った場合も、画面にゴミが残ってしまうことがあります。デ フォルトでは無効になっています。良いテスト方法は、xbench や x11perf の点線のテストであり、ランダムな点が描画される 用であれば fifo_conserv の設定が必要です。今のところ、バッ ファを有効にして正しく動作したボードは報告されていません。 メモリのタイミング: デフォルト値の POST 設定で良いはずです。 "vram_delay_latch", "vram delay_ras", "vram_extend_ras"" VRAM のタイミングに関 するオプション "slow_vram", "slow_dram"" VRAM のタイミングに関するオプションを全てセッ トします。 "med_dram" VRAM のラッチ遅延操作をセットし、他のオプションをクリアし ます。 "fast_vram", "fast_dram"" VRAM のタイミングに関するオプションを全てクリ アします。POST 設定をクリアするために VRAM のオプションを 直接指定するならば、このオプションを指定しなければなりませ ん。 デバッグ用: 一般的には必要無いはずです: "noaccel" (AGX,XGA) フォントキャッシュを無効にします。 "crtc_delay" (AGX) XGA モードを強制的に CRTC 遅延にします。 "engine_delay" AGX-015 専用? 追加の VLB 待ち状態を加えます。 "vram_128", "vram_256" VRAM 遷移周波数を設定します。128Kx8 の VRAM の場合は vram_128 です。デフォルトでは、このビットは POST 設定から ずっと変化しません。 "refresh_20", "refresh_25" スクリーンのリフレッシュ動作の間のクロックのサイクル数で す。デフォルトでは、このビットは POST 設定からずっと変化し ません。 "screen_refresh" AGX-016 において、ブランク無しのインターバル間の画面リフ レッシュを無効にします。デフォルトでは、これらはずっと有効 になったままです。 "vlb_a", "vlb_b" VLB トランザクションのタイプです。デフォルトでは、このビッ トは POST 値からずっと変化しません。 仮想解像度: 現在のサーバは仮想的な画面幅にどんな値でも指定できるようになりま した。しかし実際に使える CTRC のライン幅は、グラフィックスエンジ ンの使用中には制限されますし、チップのリビジョンにも依存します。 使用するメモリの量を決めるのは仮想画面の幅ではなく、CRTC のライ ン幅です。現在のサーバは未使用の CTRC のラインのメモリは全く利用 しません。CTRC のライン幅は以下の規則によって決まります: AGX-014 : 512, 1024, 2048 (AGX-010 も同じ) AGX-015 : 512, 1024, 1280, 2048 AGX-016 : 512, 640, 800, 1024, 1280, 2048 XGA,AGX-010 : 512, 640, 800, 1024, 1280, 1152, 2048 仮想解像度が物理解像度よりずっと大きい場合に、画面をパンすると縞が 出ることを筆者は経験しました。マウスを少し動かすと縞は無くなりま す。 Hercules のマニュアルによると、この現象は MS-Windows 用のドラ イバでも起こるそうです。 このサーバは少なくとも 64KB の作業領域を必要とします。フォント キャッシュや大きな作業領域が必要ならばメモリを追加すると良いでしょ う。 AGX の Clocks 値: クロック値の自動検出がサポートされていますが、当然ながらいつもの 警告と免責事項は当てはまります。検出を行うと、モニタの許容範囲を 越える周波数がモニタにかかることがあります。したがって、万全を期 すならば、検出を行う間にはモニタの電源を切っておくとよいでしょ う。 一度クロック値を調べると、その値を XF86Config に書き込むことがで きます。こうすると、それ以降のサーバ実行時にはクロック値の検出は 不要になり、起動が速くなります。クロックの検出を行うに は、-probeonly オプションを付けて X サーバを実行する必要がありま す。表示されるクロック値はハードウェアの入力クロック値であ り、8bpp の直接クロッキング RAMDAC モードにおけるピクセルクロッ ク値に一致します。サーバは、現在の色の深さで利用できる RAMDAC の モードに合わせて適切な掛け算や割り算を行います。利用可能なピクセ ルクロック値は起動メッセージ中に表示されるでしょう。 メモリ 2MB の Hercules Graphites で "herc-dual-dac" という RAMDAC 指定を行った場合、古いバージョンのサーバは倍にした値やゼ ロにした値を含む追加のクロックを 16 個生成しました。これらの値は 現在は必要ないので、全てのクロック値が利用可能であることを確認す るためにクロック値の再検出や再入力を行うべきです。 チップセットが AGX-015 であり、ICS1494M 9251-516 クロックチップ を積んだ 2MB の Hercules Graphite VL Pro では以下のクロック値が 検出されました: 25.18 28.80 32.70 36.00 40.00 45.00 50.40 64.70 70.10 76.10 80.60 86.30 90.40 95.90 100.70 109.40 Hercules によると実際の値は以下のようになります: 25.175 28.322 32.512 36.000 40.00 44.90 50.35 65.00 70.00 75.00 80.00 85.00 90.00 95.00 100.0 108.0 XF86Config で "normal", "bt481", "herc_small_dac" のいずれかを RAM- DAC に指定し、お使いのクロックチップがこれに一致する場合、これらの 値がクロック表示で使われます。 クロックの検出では、最初のクロック値が 25.175MHz であることを想定 し、残りの値を求める際にはこの値を使います。2 番目の値が 28.322MHz でない場合、ウォーニングが出力されます。ウォーニングが出力された場 合には、他の方法で検証を加えることなしに検出されたクロック値を使っ てはいけません。 AGX-014 やそれ以降の AGX の場合、外部クロック選択の行だけが使われま す。これはビデオボードのクロックチップの値に対応するクロック値を示 します。 AGX-010 の場合、最初の 8 つのクロック値には標準の XGA 内部クロック 選択が使われ、次の 8 つのクロック値は AGX 独自の拡張に基づいて決め られます。 XGA-1 の場合にはクロック値は 8 つだけしか使用できませ ん。XGA-2 はプログラマブルクロックを使うので、クロック値やクロック チップ行は必要ありません。 許される最大のピクセルクロック値は一般的には 85MHz ですが、一部の RAMDAC はもっと高い値をサポートしています。いずれにしても、RAMDAC については調べておくべきです。AGX ベースのボードで使われている RAMDAC の一部は、バージョンによってはサーバが想定しているよりも低い 値しか出せません。ですから、レートを調べてその値を越えないようにし なければなりません。 モード: Mach8 と違う点を 1 つ指摘しておくと、AGX の CTRC は水平同期の開 始が水平ブランクの開始と一致するのを好みません(垂直同期も同じ問 題を持っているかもしれないので、もう少しテストする必要がありま す)。インタレースモードと +/-sync フラグがサポートされています が、テストはほとんど行われていません。インタレースモードの場合、 行数が必ず奇数になるようにしてください。 現在はダブルスキャンモードがサポートされていますが、サポートされ ている最小のクロック値は一般に 25MHz です。したがって、400x300 より小さい解像度はほとんどのモニタでサポートされていないことが多 いでしょう。ダブルスキャンモードのタイミングを作る際には、垂直の タイミングは見かけの解像度にします。例えば、400x300 の場合タイミ ングは 600 行でなく300 行を記述します。 例: Hercules HG720(メモリ 2MB の VLB AGX-015 で BT481 と AT&T20C5050 RAMDAC を積んでいます)用に、筆者は XF86Config の "Device" セク ションを以下のような設定にしています: Section "Device" Identifier "HG720" VendorName "Hercules" BoardName "Graphite VL Pro" Chipset "AGX-015" Clocks 25.2 28.3 32.5 36.0 40.0 45.0 50.4 65.0 70.00 75.00 80.00 85.00 90.00 95.00 100.0 108.0 Videoram 2048 RamDac "herc_dual_dac" Option "dac_8_bit" Option "no_wait_state" EndSection Spider Black Widow Plus (メモリ 2MB の VLB AGX-016 で Sierra SC15021 RAMDAC を積んでいます)用の設定は以下です: Section "Device" Identifier "SBWP" VendorName "Spider" BoardName "Black Widow Plus" Chipset "AGX-016" Clocks 25.2 28.3 39.9 72.2 50.0 76.9 36.1 44.8 89.0 119.8 79.9 31.5 110.0 64.9 74.9 94.9 Videoram 2048 RamDac "SC15025" Option "dac_8_bit" Option "no_wait_state" EndSection 6. XGA の設定 このサーバでは XGA-2 互換のボード(別名 XGA-NI)のサポートに関するテスト も行われています。XGA-1 のサポートにおける主要な問題はクロック値の検出 が動作するかどうかです。現時点ではボードの構成の検出は制限されていて、 詳細な設定は手動で行う必要があります。 デフォルトでは、ISA バスの POS 登録が実行されます。XGA の Instance 番 号が指定された場合、検出の範囲は少し狭まります。上書きを行ったり検出を 無効にするためには、XF86Config ファイルの Device セクションで Instance 番号の最小値、COPbase 値、MEMbase 値を XGA カードに対して指定しなけれ ばなりません。MCA の検出はサポートされていません。 Instance nn XGA のインスタンス番号(0-7)。 IObase nnnn XGA の汎用制御レジスタの I/O アドレス。標準値とデフォルト値は 0x21i0 です(i はインスタンス番号です)。 MEMbase nnnn XGA の表示メモリアドレス(XGA のコプロセッサがビデオメモリに対し て使うアドレスです)。リニアメモリマッピングをサポートしているボ ードでは、これはシステムメモリにおけるリニアアパーチャのアドレス にもなります。 POS レジスタ 4 のビット 7-1 はXGA の表示メモリアドレスの ビット 31-25 の内容です。表示メモリアドレスのビット 24-22 は XGA のイン スタンス番号です。このサーバは XGA のリニアアパーチャを使わない ので、 POS レジスタ 4 の ビット 0 は使われません。しかし、コプロ セッサにはこれに関する設定を行わなければなりません。 AGX-01[456] の表示メモリアドレスは固定されています。 COPbase nnnnnn グラフィックスエンジンのメモリマップト制御レジスタです。 通常は次のようになります: 0xC1C00 + (ext_mem_addr * 0x2000) + (instance * 0x80) ここで、ext_mem_addr は POS レジスタ 2 の上位 4 ビット(サーバは 0-16 は 0 であるものとします)です。 AGX-01[456] チップは 0xB1F00(デフォルト値)と 0xD1F00 をサポート しています。 BIOSbase nnnnnn XGA BIOS のアドレス(VGA BIOS のアドレスではありません)。COPbase の代わりとして指定することができます。 通常は次のようになります: 0xC0000 + (ext_mem_addr * 0x2000) ここで、ext_mem_addr は POS レジスタ 2 の上位 4 ビット(サーバは 0-16 は 0 であるものとします)です。 VGAbase nnnn サーバ使う 64KB のビデオメモリアドレスのデフォルト値である 0xA0000 を上書きするために使うことができます。指定することができ る値は 0xA0000 と 0xB0000 だけです。Linux を使っている場 合、0xB0000 を指定すると、VGA のテキストモードが復元できなくなり ます。 AGX-01[456] もデフォルト値は 0xA0000 です。 POSbase nnnn 別の POS レジスタ検出アドレスのベース値を、ISA のデフォルト値で ある 0x100 から変えるために使うことができます。 EISA の場 合、VESA VXE の標準値は 0xzC80 です(z はスロット番号です)。 値をゼロにすると POS レジスタの検出が行われなくなります(MCA の場 合にはこの指定が必要です)。 DACspeed nnnn XGA-2 のピクセルクロック値に関するサーバのデフォルトの最大値であ る 80MHz を上書きするために使うことができます。この最大値は 90MHz まで上げることができますし、低い値にすることもできます。 POS レジスタの値を決める別の方法としては、ビデオボードに付属しているは ずの設定/診断プログラムを使う方法がありますし、ジャンパの値から決める こともたぶんできます。 XGA-2 には 90MHz まで使えるプログラマブルクロックがありますが、 1024x768 の解像度では、テストに使った CatsEye/XGA-2 (IBM のコプロセッ サと INMOS RAMDAC/シリアライザが載っています)で安定な表示が行える最大 値は一般的に 72MHz です。クロック値を高くすると画面の上辺と左辺の表示 がおかしくなることがあります。このような影響は、垂直・水平のブランク間 隔を増やしたり、クロック値を少し変えることで無くせる場合もあります。 80MHz を越えるクロック値では、数分動作した後にチップが同期を無くすこと を筆者は確認しました。したがって、XGA-2 のピクセルクロックとしては、 80MHz がデフォルトの制限値になっています。実際の制限値に関する仕様書は 筆者は持っていませんし、XGA チップセットはたくさんあるので、リフレッ シュレートの最大値を決める際にはボードのマニュアルに書かれているモード を参考にすべきです。XGA-2 でプログラマブルクロックを使うように指定した 場合には、クロック値やクロックチップのパラメータは必要ありません。 XGA-2 に対しては 8bpp と 16bpp がサポートされています。 XGA-1 カードの場合、クロック値は AGX チップと同様に指定しなければなり ません。クロックの検出がうまく動作するかどうかは分かりません。XGA-1 チップには 16bpp をサポートしているものもあるかもしれません。 $XFree86: xc/programs/Xserver/hw/xfree86/doc/Japanese/README.agx,v 1.1.2.2 1999/11/26 15:23:14 hohndel Exp $ $XConsortium: agx.sgml /main/9 1996/10/19 18:03:50 kaleb $