ユーザ向けの情報 S3 ViRGE, ViRGE/DX, ViRGE/GX, ViRGE/GX2, ViRGE/MX, ViRGE/VX, Trio3D, Trio3D/2X, Savage3D, Savage4 The XFree86 Project Inc. 2 August 1999 The X Japanese Documentation Project 12 September 1999 ____________________________________________________________ 目次 1. サポートしているハードウェア 2. XF86_S3V サーバ 2.1 機能: 2.2 既知の制限事項 2.3 設定: 2.3.1 カーソル: 3. XF86_SVGA サーバ 3.1 機能 3.2 Savage 系チップのサポートにおける既知の制限 (s3_savage ドライバ) 3.3 s3_virge ドライバの既知の制限 3.4 設定 3.5 LCD 用設定のヒント (S3 ViRGE/MX) 4. 作者 4.1 XF86_S3V サーバ 4.2 XF86_SVGA ViRGE ドライバ 5. 日本語訳について ______________________________________________________________________ 1. サポートしているハードウェア XFree86 リリース 3.3.2 から、ViRGE 系のチップをサポートするサーバは2つ になりました。XF86_S3V サーバは S3 ViRGE (86C325), ViRGE/DX (86C375), ViRGE/GX (86C385), ViRGE/VX (86C988) チップをサポートする専用サーバで す。現在はこれらのサーバは使わない方がいいでしょう。既にサポートが活発 に行われなくなったからです。 上記の ViRGE 系チップセットは XF86_SVGA サーバでもサポートされていま す。このサーバには XAA アクセラレーションアーキテクチャを利用した ViRGE ドライバが含まれており、XFree86 3.3.6 では ViRGE/GX2 (86C357), ViRGE/MX (86C260), Trio3D (86C365), Trio3D/2X (86C362), Savage3D (86C391), Savage4 (86C396/86C397), Savage2000 チップもサポートしていま す。 以降のセクションでは ViRGE のサポートについて詳しく説明します。2つのサ ーバについての説明があることに注意してください。XF86_S3V は ViRGE 専用 のサーバであり、最初に作られたものです。新しいアクセラレーションアーキ テクチャのサポートが XF86_SVGA サーバに入っており、これが s3_virge ド ライバを使っています。それぞれに長所と短所があります。 2. XF86_S3V サーバ 3.3.1 以降、S3V サーバは細かい点がいくつか変更されています。使ってみれ ば、ViRGE サーバはどの色の深さでも安定していることが分かるでしょう。こ のサーバは 1 bpp と 32bpp のピックスマップフォーマットをサポートしてい ます。この修正は、初期バージョンの S3V サーバにおいて、xanim や Netscape といったクライアントで起こっていた問題に対処するものです。こ のサーバがテストされているカードは、2MB と 4MB のDRAM を積んだ ViRGE カード、ViRGE/DX 4M, ViRGE/VX 8M (4M VRAM/4M DRAM), 220MHz の ViRGE/VX カード(1600x1200 で 8/15/16bpp まで使える 2MB VRAM を積んだもの)です。 注意: このドライバは比較的新しいものであり、全てが期待通りに動くとは限 りません。マシンをクラッシュさせることは無いはずですが、ビデオ表示がお かしくなったり、行が欠けたりすることはあるかもしれません。問題が見つか れば、どんなものであっても XFree86@Xfree86.org までお知らせください。 その際には、適切なバグレポート用紙を使ってください。 2.1. 機能: o S3 ViRGE, ViRGE/DX, ViRGE/GX, ViRGE/VX ビデオアダプタの基本サポート o リニアフレームバッファの使用 o ビデオカードのメモリによって決まる最大の解像度までの解像度を使うこ とができるはずです(メモリが 4M のカードでは、8/16bpp で 1600x1200, 24/32bpp で 1280x1024)。 o 8, 15, 16, 24, 32 bpp のピクセルを使うことができるはずです。 o 32 bpp は 24bpp へ変換されるように実装されています。 2.2. 既知の制限事項 o ViRGE/VX では 外部 RAMDAC はサポートされていません。 o VL バスのカードはサポートされていません。 o 複数スクリーンモードはサポートされていません。 o ドライバはリニアアドレッシングでしか動作しません。 o 24/32 bpp の場合、点線のうち簡単なもののいくつかのアクセラレーショ ンは実装されていますが、sloped dash や double dash は実線を使って描 画されます。 o 最新のチップセットはサポートされていません。 o もはや活発にはメンテナンスされていません。 2.3. 設定: このサーバは RAM のサイズ、RAMDAC, ClockChip を自動検出します。わざわ ざ "Device" セクションを設定する必要はありません。"nolinear" オプショ ンはサポートされていません。 2.3.1. カーソル: o デフォルトではハードウェアカーソルを使います。オプション指定は必要 ありません。 o "sw_cursor" を指定すると、ソフトウェアカーソルに切り替わります。 3. XF86_SVGA サーバ 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 までお知らせください。連絡の際には適切なバグレポー ト用紙を使ってください。 3.1. 機能 o PCI ハードウェア、ViRGE, ViRGE/DX, ViRGE/GX, ViRGE/GX2, ViRGE/MX, ViRGE/VX, Trio3D, Savage 系をサポートしています。 o 8bpp, 15/16bpp, 24bpp, 32bpp をサポートしています。 o 仮想端末切替えはうまく動作しているようです。どの色の深さでも、表示 が乱れるという報告は受けていません。 o アクセラレーションはかなり良くできています(スクリーンからスクリーン へのコピー、長方形の塗りつぶし、CPUからスクリーンへの色展開、モノク ロとカラーでの 8x8 パターンによる塗りつぶし)。XAA のルーチンが最適 化されているので、現在の色展開の速度はアクセラレーション付き S3 ViRGE 専用サーバよりもかなり高速です。 o 32bpp におけるアクセラレーションは限定されています。 ScreenToScreen bitblit と solid rectangle だけがサポートされています。 ViRGE 自体 に 32bpp でのアクセラレーション機能がないため、グラフィックスエンジ ンを 16bpp モードで使用しています。 o 全てのモードでハードウェアカーソルがサポートされています。 3.2. Savage 系チップのサポートにおける既知の制限 (s3_savage ドライバ) Savage3D と Savage4 向けの Savage 系チップ用ドライバは、XFree86-3.3.5 のリリースの直前に S3 が XFree86 に寄付しました。このドライバは XFree86 の設計の原則と目的に違反している部分がいくつかありますが、需要 が非常に大きいので、XFree86-3.3.5 に含めることに決めました。 3.3.6 で はいくらか書き直しが行われ、非 BIOS モードのために昔に戻したコードが 入っています。 3.3. s3_virge ドライバの既知の制限 o ViRGE/VX では外部 RAMDAC はサポートされていません。 o VL バスのカードはサポートされていません。 o ダブルスキャンモードはサポートされていません。 o このドライバはリニアアドレッシングでしか動作しません。 o 線や多角形ではまだアクセラレーションは使えません(ただし、XAA は一部 のアクセラレーションをサポートしています)。 o バーストコマンドインタフェース(BCI, Burst Command Interface)のサポ ートと 32bpp のサポートは、Trio3D 用には実装されていません。 o 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 3.4. 設定 ViRGE SVGA ドライバは XF86Config のオプションの多くをサポートしていま す。このオプションを使って、PCI の動作をチューンしたり、性能を向上させ ることができます。 メモリ用のオプション: o "slow_edodram" を指定すると ViRGE は2サイクルの EDO モードに切り替 わります。ViRGE でピクセルが崩れる場合には、このオプションを試して ください。このオプションを使用すると、性能は大幅に悪くなります。 o "early_ras_precharge" と "late_ras_precharge" はメモリのタイミング を変更するもので、一部のカードでのピクセルが崩れる問題を解決するこ とができます。デフォルトの動作は BIOS が決定しますが、普通は "late_ras_precharge" です。 o "set_mclk value" は、ビデオメモリのクロックレートを 'value' に設定 します(単位は MHz)。カードの性能はメモリのクロック数に直接比例する ので、このオプションで性能を向上させることができます。BIOS が行った カードの設定はサーバの起動時に表示されます。「安物」のカードでは S3 のデフォルト値である 50MHz がよく使われます。メモリの方がこれより速 いことも多く、そのようなカードでは 60 MHz や 65MHz でもうまく動作し ます(最近の /DX や /GX カードにはもっと速くてもよいものがありま す)。S3 が公式にサポートしているのは MCLK 値が 50MHz の場合だけなの で、XFree86 はこの仕様を越えるような使い方はお勧めしません。 ***注 意: このオプションは "Option" キーワードより後に置いてはいけません! アクセラレーションとグラフィックエンジン用のオプション: o "noaccel" はアクセラレーションを全て無効にします。 "fifo_aggressive", "fifo_moderate", "fifo_conservative" は、ピクセ ルの FIFO が内部メモリバスを占有して、自身を塗りつぶし直すときの閾 値の設定を変更します。この閾値を小さく取るほど、カードのアクセラレ ーション性能は向上します。まず最も速い設定("aggressive")を試し、ピ クセルが崩れるようならば遅い設定にするとよいでしょう。最適な設定を 決めるのはたぶんドットクロック値と色の深さです。これらのオプション のどれかを設定すると、性能向上に繋がるような他のメモリ設定も変更さ れます。したがって、少なくとも "fifo_conservative" (チップのデフォ ルト設定を使う)を使わなければなりません。 PCI 用オプション: o "pci_burst_on" を指定すると、PCI のバーストモードが有効になります。 このオプションは「欠陥のある」一部の PCI チップセット以外では動作す るはずで、性能を向上させます。 o "pci_retry" を指定すると、ドライバは PCI の Retry を信用して ViRGE のレジスタのプログラムを行うことができるようになります。このオプ ションを動作させるには、"pci_burst_on" は有効になっていなければなり ません。このオプションを使うと性能が向上します(特に小さい fill/blit の場合)。その理由は、ドライバがコマンドを送る前に ViRGE に問い合わ せを行って、コマンド実行が可能なことを確かめる必要がなくなるからで す。このオプションは最近のほとんどの PCI チップセットで動作するはず です。起こり得る副作用としては、PCI バス上での DMA 操作(例: サウン ドカードやフロッピードライブ)との干渉が考えられます。 カーソル用のオプション: o "hw_cursor" ハードウェアカーソルを有効にします。 色の深さに関するオプションと制限事項: o ViRGE の場合、8bpp で 80MHz 以上のクロックであるとピクセルの多重化 が行われます。 o 15bpp はサポートされています。サーバのオプションに "-bpp 15" を指定 してください。 o 24bpp は STREAMS エンジンを利用してサポートされています。 o 32bpp でも STREAMS エンジンが使われます。しかし、ViRGE は 32bpp を 「ネイティブ」にはサポートしていないので、アクセラレーションはかな り制限されています。 o 24bpp でも 32bpp でもインタレースモードはサポートされていません。 o 32bpp 時の画面幅は 1024 ピクセル未満に制限されています。 (十分なメ モリがあっても 1024x768 は使用できません。) これは ViRGE チップのハ ードウェア的な制限です。 3.5. LCD 用設定のヒント (S3 ViRGE/MX) LCD がアクティブならば、CRT 出力は常に 1024x768 (または、LCD の「物理 的」サイズ)で行われます。画面の小さいモードの場合は、デバイスのセク ションでオプション "lcd_center" を指定しない限り、LCD に収まるようにズ ーム表示が行われます。 この物理サイズ(例: 1024x768)のモードに対応するピクセルクロック値につい ては、以下のことが成り立ちます。 o ピクセルクロック値は、設定ファイル(のデバイスのセクション)で、例え ば `Set_LCDClk 70' のように明示的に指定できます。(この結果、LCD が 有効の時には全てのモードにおいてピクセルクロック値が 70 MHz になり ます。) o このモードにおけるディスプレイのサイズが物理的な LCD のサイズと同じ ならば、ピクセルクロック値はモード行の「最初の」モードから取得され ます。 o 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' を押します。これにより、モード切 替えのたびにいちいちキーボードの数値部分を有効または無効にすることが避 けられます。 4. 作者 4.1. XF86_S3V サーバ Harald Koenig および o Kevin Brosius Cobra@compuserve.com o Berry Dijk berry_dijk@tasking.nl o Dirk Hohndel hohndel@XFree86.Org o Huver Hu huver@amgraf.com o Dirk Vangestel gesteld@sh.bel.alcatel.be 4.2. XF86_SVGA ViRGE ドライバ Sebastien Marineau および o Harald Koenig o Kevin Brosius Cobra@compuserve.com o Sebastian Kloska kloska@mpimp-golm.mpg.de o Alok Ladsariya alok@XFree86.Org o Dirk Hohndel hohndel@XFree86.Org $XFree86: xc/programs/Xserver/hw/xfree86/doc/Japanese/README.S3V,v 1.1.2.3 1999/12/28 12:13:49 hohndel Exp $ 5. 日本語訳について 日本語訳は X Japanese Documentation Project が行いました (翻訳: 藤原輝 嘉 , 校正: 金田浩 司 )。 問題点の指摘やご意見は藤原まで御連絡ください。原文の著作権は XFree86 プロジェクト社にあり、日本語訳の著作権は X Japanese Documentation Project にあります。