Sun フレームバッファー使用の手引き

第 8 章 Expert3D グラフィックスアクセラレータ

この章では、Expert3D グラフィックスアクセラレータの画面解像度を、モニターの種類に合わせて変更する方法について説明します。後半では、Expert3D の内部および外部コネクタとその用途を説明します。


注 -

Expert3D-Lite ソフトウェアパッケージおよび設定ユーティリティーは Expert3Dのものと同じです。


Expert3D グラフィックスアクセラレータは、高い解像度とパフォーマンスを持ち、ハードウェアテクスチャーマッピングを可能にするグラフィックスアクセラレータです。Expert 3D システムでは、ダブルバッファーと Z バッファーの場合最大 1920 x 1200、立体表示の場合最大 1280 x 1024 の画面解像度をサポートします。


注 -

ifb は、Expert3D グラフィックスアクセラレータのUNIX デバイス名です。


設定ユーティリティー

Expert3D グラフィックスアクセラレータには、fbconfig と SUNWifb_config の 2 つの設定ユーティリティーがあります。

fbconfig ユーティリティー

fbconfig ユーティリティーは一般的なコマンド行インタフェースのツールで、フレームバッファーの属性を表示および設定できます。fbconfig は、Expert3D のほか、Creator3D と Elite3D の設定にも使えます。

fbconfig ユーティリティーでは次のことができます。

詳細は fbconfig のマニュアルページを参照してください。

SUNWifb_config ユーティリティー

SUNWifb_config ユーティリティーは、Expert3D 固有のユーティリティーです。他のフレームバッファーの設定には使えません。SUNWifb_config ユーティリティーによって、以下の指定が可能です。

詳細は、SUNWifb_config のマニュアルページを参照してください。

デフォルトの画面解像度

通常 Expet3D はインストール時に、接続されたモニターに対応する適切な解像度とリフレッシュレートを自動的に設定します。ただし、サン以外のモニターが接続されている場合、解像度が適切に設定されないことがあります。

表 8-1 に、モニター ID センスコードに対応するデフォルトの画面解像度を示します。

表 8-1 Expert3D グラフィックアクセラレータのモニターセンスコード

コード 

画面解像度 

1152 x 900、66 Hz 

1152 x 900、76 Hz 

1024 x 768、60 Hz 

サン以外のモニターなど、Expert3D のシステムがモニターの種類を判断できない場合は、1152 x 900、66 Hz の解像度をデフォルトとします。

サポートする画面解像度

表 8-2 に、Expert3D がサポートする画面解像度を示します。画面解像度を下記の設定に変更するには、fbconfig またはSUNWifb_config ユーティリティーを使ってください。

表 8-2 Expert3D がサポートする画面解像度

画面解像度 

垂直リフレッシュレート 

説明 

ビデオモード形式 

シンボリック名 

1920 x 1200 

75 Hz 

ノンインタレース 

1920x1200x75

1920 x 1200 

70 Hz 

ノンインタレース 

1920x1200x70

 

1920 x 1080 

76 Hz 

ノンインタレース 

1920x1080x76

 

1920 x 1080 

72 Hz 

ノンインタレース 

1920x1080x72

 

1792 x 1344 

75 Hz 

ノンインタレース 

1792x1344x75

 

1600 x 1280 

76 Hz 

ノンインタレース 

1600x1280x76

1600 x 1000 

76 Hz 

ノンインタレース 

1600x1000x76

 

1600 x 1000 

66 Hz 

ノンインタレース 

1600x1000x66

 

1440 x 900 

76 Hz 

ノンインタレース 

1440x900x76

 

1280 x 1024 

112 Hz 

立体表示、ノンインタレース、56 Hz フィールドレート 

1280x1024x112s

 

1280 x 1024 

85 Hz 

ノンインタレース 

1280x1024x85

 

1280 x 800 

76 Hz 

ノンインタレース 

1280x800x76

1280

1280 x 1024 

67 Hz 

ノンインタレース 

1280x1024x67

1280 x 1024 

60 Hz 

ノンインタレース 

1280x1024x60

 

1280 x 800 

76 Hz 

ノンインタレース - Creator 

1280x800x76

1152 x 900 

76 Hz 

ノンインタレース 

1152x900x76

1152

1152 x 900 

66 Hz 

ノンインタレース 

1152x900x66

 

1024 x 768 

77 Hz 

ノンインタレース 

1024x768x77

 

1024 x 768 

75 Hz 

ノンインタレース 

1024x768x75

 

1024 x 768 

70 Hz 

ノンインタレース 

1152x900x70

 

1024 x 768 

60 Hz 

SVGA 

1024x768x60

svga

960 x 680  

112 Hz 

立体表示、ノンインタレース、56 Hz フィールドレート 

960x680x112

stereo

960 x 680  

108 Hz 

立体表示、ノンインタレース、54 Hz フィールドレート 

960x680x108

 

768 x 575 

50 Hz 

インタレース - PAL 

768X575x50i

pal

640 x 480  

60 Hz 

インタレース - NTSC 

640x480x60i

ntsc

640 x 480  

60 Hz 

ノンインタレース 

640x480x60

 

画面解像度を変更する (-res)

Expert3D がサポートする解像度と接続されているモニターを確認する
  1. SUNWifb_config コマンドを以下のように入力します。


    /usr/lib/fbconfig/SUNWifb_config -res ¥?
    

特定の解像度をモニターがサポートしているかどうかを確認するために、画面解像度を一時的に変更することができます。


注意 - 注意 -

ウィンドウシステムの実行中に、画面解像度を変更しないでください。画面表示に異常が発生する場合があります。


画面解像度を一時的に変更する
  1. SUNWifb_config コマンドを以下のように入力します。


    /usr/lib/fbconfig/SUNWifb_config -res video-mode try

    ビデオモードのオプションについては表 8-2 の「ビデオモード形式」と「シンボリック名」の欄を参照してください。ビデオモードを確認し、そのビデオモードを使用する場合は、5 秒以内に y と入力してください。

画面解像度を立体表示に変更する
  1. 以下のように入力します。


    /usr/lib/fbconfig/SUNWifb_config -res stereo

上記の例では、次回に Xsun を実行したときの画面解像度を、960 x 680、112 Hz の立体表示に変更します。

画像表示形式リストを変更する

SUNWifb_config コマンドを使用して、X サーバーの画像表示形式リストの順序を変更することができます。表 8-3 に示すSUNWifb_config オプションを使用して、特定のデバイスに合わせて参照された画像の表示形式リストを設定してください。

表 8-3 SUNWifb_config の画像フラグのデフォルトの設定

名称  

値 

デフォルト 

linearorder

first/last

last

deflinear

true/false

false

overlayorder

first/last

last

defoverlay

true/false

false

expvis

enable/disable

enable

sov

enable/disable

enable

画像表示形式リストの順序を変更する (-linearorder-overlayorder)

デフォルトでは、非リニア画像は、画像表示形式リスト上でリニア画像より前に表示されます。SUNWifb_config コマンドを使用して、画像表示形式リストの順序を変更することができます。

3D アプリケーションの多くはリニア画像を使用しますが、特定の 3D アプリケーションでは、XSolarisGetVisualGamma (3) を使用するリニア画像を検索しないで、リストに最初に表示される 24 ビットトゥルーカラーを使用します。このようなアプリケーションを、正しい画像表示形式で動作させるには、リストの並べ換えが必要です。-linearorder オプションを使用して、リニア 24 ビットトゥルーカラーが最初に表示されるように指定してください。

画像表示形式リストの並べ換えは、ウィンドウシステムの再起動時に有効となります。

  1. リストの順序を変更する場合は、-linearorder オプションの 1 つを指定して SUNWifb_config コマンドを入力します。


    /usr/lib/fbconfig/SUNWifb_config -linearorder first

デフォルトでは、 8 ビット疑似カラーアンダーレイ画像は、画面表示形式リスト上で 8 ビット疑似カラーオーバーレイ画像より前に表示されます。SUNWifb_config コマンドを使用して、画像表示形式リストの順序を変更することができます。

8 ビット疑似カラーオーバーレイ画像を使うアプリケーションによっては、画面表示形式リスト上で最初に検索された 8 ビット疑似カラー画像を使うものがあります。これらのアプリケーションが正しい画像で動作するようにするには、-overlayorder オプションを使い、8 ビット疑似カラーオーバーレイ画像が 1 番目の 8 ビット疑似カラー画像として検知されるようにします。

画像表示形式リストの並べ換えは、ウィンドウシステムの再起動時に有効となります。

  1. リストの順序を変更する場合は、 overlayorder オプションの 1 つを指定して SUNWifb_config コマンドを入力します。


    /usr/lib/fbconfig/SUNWifb_config -overlayorder first

デフォルトの画像表示形式を変更する (-deflinear-defoverlay)

画面のデフォルトの画像表示形式は、8 ビット疑似カラーオーバーレイ画像です。デフォルトの画像表示形式は SUNWifb_config コマンドを使用して、リニアアンダーレイ画像またはオーバーレイ画像のいずれかに変更することができます。

  1. デフォルトの画像表示形式をリニア画像にする場合は、SUNWifb_config コマンドを以下のように指定します。


    /usr/lib/fbconfig/SUNWifb_config -deflinear true

  1. デフォルトの画像表示形式をオーバーレイ画像にする場合は、SUNWifb_config コマンドを以下のように指定します。


    /usr/lib/fbconfig/SUNWifb_config -defoverlay true


    注意 - 注意 -

    リニアオーバーレイ画像は存在しないため、-deflinear true-defoverlay true を同時に指定した場合は、結果は不定となります。



    注意 - 注意 -

    画像表示形式の順序オプション (overlayorderlinearorder) は、デフォルト画像表示形式オプション (defoverlaydeflinear)とは異なります。たとえば、オーバーレイ画像表示形式のグループをリストの始めに移動させても、その画像表示形式が自動的にデフォルトとなるわけではありません。特定のアプリケーションでは、変更した画像表示形式の順序がデフォルトになるものとみなし、デフォルトの画像表示形式で生成したカラーマップと、リストで最初にあった 8 ビット疑似カラー画像を一致させようとして、「BADMATCH」 X エラーを起こす場合があります。


OpenGL の画像表示形式に変更する (-expvis)

Solaris では、OpenGL 拡張画像表示形式をサポートします。拡張画像表示形式では、8 ビット疑似カラー、24 ビットトゥルーカラー (リニアおよび非リニア) 、24 ビットダイレクトカラー、8 ビット疑似カラーオーバーレイの 5 種類の画像グループは、同じ画像タイプの単一画像インスタンスから、複数画像インスタンスに拡張されます。同じ画像グループの異なるインスタンスは (単一バッファーかダブルバッファー機能、または単一画像か立体画像機能、あるいは両方の組み合わせといった)、異なる GLX 機能を表します。画像インスタンスの数は、X サーバーが開始された画像モードが単一画像か立体画像かによって異なります。

OpenGL の画像表示形式 (拡張画像表示形式)を有効にする
  1. 以下のように入力します。


    /usr/lib/fbconfig/SUNWifb_config -expvis enable

SERVER_OVERLAY_VISUALS 属性に変更する (-sov)

SERVER_OVERLAY_VISUALS は、画像 ID、透過タイプ、透過値、画面のサーバーオーバーレイ画像 (SOV : server overlay visusals) を含むルートウィンドウの属性の 1 つです。 SUNWifb_config コマンドを使用して、この属性を有効としたり、透過サーバーオーバーレイ画像表示形式の参照先の指定を切り替えることができます。

SERVER_OVERLAY_PROPERTY のアドバタイズと SOV のエクスポートを設定する
  1. 以下のように入力します。


    /usr/lib/fbconfig/SUNWifb_config -sov enable

ガンマ補正を設定する (-g-gfile)

ガンマ補正を設定するには、ガンマ補正値またはガンマ補正テーブルが保存されたファイルを指定します。

-g オプションを使用して、指定されたガンマ値に基づくガンマテーブルエントリを設定します。ガンマ値 2.22 はリニアガンマ補正を表し、Expert3D 製品での固定値に一致します。この値は画面ごとの値なので、リニア画像と補正の対象となるガンマ値はすべてこの値を使用します。

値を使用してガンマ補正を設定する
  1. 以下のように入力します。


    SUNWifb_config -g 2.22

-gfile オプションは、0 から 255 までの 3 桁から成る 256 個の整数を含んだファイルから、ガンマテーブルエントリを明示的に設定します。この形式は、改行で区切られた 3 つの整数となります。各行はテーブル中のエントリとして使用される RGB 値を含んでいます。この値は画面ごとの値なので、リニア画像と補正の対象となるガンマ値はすべてこの値を使用します。

ファイルを使用してガンマ補正を設定する
  1. 以下のように入力します。


    SUNWifb_config -gfile filename

拡張オーバーレイを選択する (-extovl)

拡張オーバーレイモードを有効にすると、Expert3D システムを拡張オーバーレイ機能に切り替えます。拡張オーバーレイモードでは、256 色オーバーレイとハードウェアによって高速化されたサーバーオーバーレイ画像が使えるようになります。アンダーレイの Window ID の上限は、以前の 32 から 64 に上がり、新しく 3 つのオーバーレイ WID が使えます。

拡張オーバーレイモードを選択する
  1. 以下のように入力します。


    SUNWifb_config -extovl enable

複数モニターの設定

複数のフレームバッファーを使うには、 /usr/dt/config にある Xservers ファイルを修正する必要があります。Expert3D デバイスは、ここで ifbx ことして定義されます (たとえば、Expert3D デバイスが 2 つある場合、ifb0ifb1 と定義されます)。

  1. スーパーユーザーとして /usr/dt/config/Xservers ファイルを開きます。


    # cd /usr/dt/config
    # vi Xservers
    

  2. 使用するフレームバッファーのデバイスロケーションをファイルに追加します。

    以下の例では、Creator カード 1 個と Expert3D カード 2 個を使用する場合の Xservers の設定を示します。


    :0 Local local_uid@console root /usr/openwin/bin/Xsun :0 -dev /dev/fbs/ffb0 
    
    -dev /dev/fbs/ifb1 -dev /dev/fbs/ifb0 -nobanner

    1 台のシステムで複数の Expert3D カードを設定する方法については、「マルチビューポート」を参照してください。

Expert3D カードをデフォルトのコンソールとして定義する

複数モニターのシステムでは、いずれかのモニターをデフォルトのコンソールとして指定できます。以下では、Expert3D カードをデフォルトのコンソールディスプレイとして設定する方法を示します。

  1. OpenBoot のプロンプトで、以下のように入力します。


    ok show_displays
    

    以下の例のように使用できるフレームバッファーが表示されます (Expert3D の場合)。


    a) /PCI@@l1, 2000/SUNW,Expert3D@1
    b) /PCI@@l5, 2000/SUNW,afb@1
    q) NO SELECTION

    以下の例のように使用できるフレームバッファーが表示されます (Expert3D-Lite の場合)。:


    a) /pci@1f,0/SUNW,m64@13
    b) /pci@1f,0/pci@5/SUNW,Expert3D@1
    q) NO SELECTION 
    Enter Selection, q to quit: b
    /pci@1f,0/pci@5/SUNW,Expert3D@1 has been selected.
    Type ^Y ( Control-Y ) to insert it in the command line. 
    e.g. ok nvalias mydev ^Y 
        for creating devalias mydev for 
    /pci@1f,0/pci@5/SUNW,Expert3D@1
    ok nvalias myscreen /pci@1f,0/pci@5/SUNW,Expert3D@1
    ok setenv output-device myscreen
    output-device =       myscreen
  2. コンソールとして使いたいデバイスのオプションを選択します。

    たとえば、上の例で Expert3D デバイスをコンソールとして指定する場合は、a を選択します。

  3. 選択したデバイスをコンソールデバイスとして設定します。

    OpenBoot プロンプトで、以下のように入力します。


    ok setenv output-device <Control-Y> <ENTER>
    ok reset
    

Expert3D システム用のコマンドをエイリアスとして登録しておくと、今後の OpenBoot コマンドを簡略化できます。show-displays コマンドで Expert3D デバイスをメニューから選択した後に、以下のように入力します。


ok nvalias screen1 <Control-Y>
ok nvstore

次に以下のように入力し、エイリアスが正しく設定されたことを確認します。


ok devaliases

以上の操作が終わると、Expert3D デバイスを screen1 として参照できるようになります。


ok setenv output-device screen1

Expert3D の外部コネクタ

Expert3D ボードには、内部入出力コネクタと外部入出力コネクタの両方があります。内部コネクタはマルチビューイングに、外部コネクタは外部の画像との同期化とステレオに使います。 図 8-1 は、外部入出力コネクタを示します。

図 8-1 Expert3D の外部コネクタ

Graphic

Expert3D-Lite グラフィックスカードには外部ビデオ同期ポートがありません。Expert3D-Lite のキットには DB15 から13W3 への変換用モニタアダプターケーブルが同梱されています。 図 8-2 は、外部入出力コネクタを示します。

図 8-2 Expert3D-Lite の外部入出力コネクタ

Graphic

ステレオコネクタ

ステレオコネクタを使用して、 Expert3D グラフィックスアクセラレータに立体視ゴーグルを接続できます。ステレオコネクタは、図 8-3 に示すように7 ピンの DIN コネクタです。

図 8-3 Expert3D のステレオコネクタ

Graphic

表 8-4 にステレオケーブルの信号を示します。

表 8-4 Expert3D ステレオコネクタの信号

ピン 

説明 

接地 

5.0V (ヒューズ付き、300mA まで供給、1.0A 上限) 

+12V (ヒューズ付き、300mA まで供給、1.0A 上限) 

STEREO 信号 

接続なし 

接続なし 

接続なし 

ステレオ信号は、図 8-4に示すように、左右の立体シャッタの切り替え周期が 50 パーセントデューティーの、TTL レベルの信号です。

図 8-4 Expert3D のステレオ信号

Graphic


注 -

Expet3D グラフィックアクセラレータのステレオケーブルと立体視ゴーグルについての詳細は、導入先にお問い合わせください。


ビデオ同期ポート (Expert3D のみ)

ビデオ同期ポートは、ディスプレイシステムが垂直リフレッシュレートをロックしようとする際の定期信号を Expert3D ボードに入力するインタフェースです。このポートは 75 オーム BNC のオスのコネクタを使っています。このポートに接続するには、メスの BNC コネクタが付いた 75 オームの同軸ケーブルが必要です。

ビデオ同期ポートは次のフォーマットをサポートします。

マルチビューポート

図 8-5 の J1 および J2 に示される、Expert3D カードの内部のマルチビュー入力ポートおよびマルチビュー出力ポートは、Expert3D カードから他のカードへケーブル接続をする際に使います。これらのポートはシステムのシャーシ内からのみ接続できます。

図 8-5 Expert3Dのマルチビュー入力コネクタとマルチビュー出力コネクタ

Graphic

複数の Expert3D カードの設定

マルチビューを使用する場合、Expert3D カードは 2 つまでしかフレームロックできません。2 つの Expert3D カードがマルチビューに使われている場合、片方がマスターとして割り当てられ、もう一方がスレーブとして割り当てられます。

フレームロックを使って 2 つの Expert3D カードをマルチビュー用に設定するには、以下のようにします。

  1. システムのマスターとして割り当てる Expert3D カードを選択します。

    システムの起動またはコンソールヘッドとして使っている Expert3D カードをマスターとして割り当てることも 1 つの方法です。

  2. システムにインストールされているすべての Expert3D カードが、マスターモードの Expert3D カードと同じ画面解像度に設定されていることを確認します。

    マスターモードのカードと異なる画面解像度に設定されている Expert3D カードがある場合は、解像度がマスターと同じになるよう変更します。

    SUNWifb_config ユーティリティーを使って、Expert3D カードの解像度を調べられます。たとえば、以下のように入力します。


    % /usr/lib/fbconfig/SUNWifb_config -dev /dev/fbs/ifb0 -prconf
    

    この操作をすべての Expert3D カードに対して実行します。

    SUNWifb_config ユーティリティーに Expert3D カードの現在の解像度や、カードがマスターかスレーブかなどの情報が表示されます。

    Expert3D カードの解像度を変更する場合は、 SUNWifb_configユーティリティーを使って以下の例のように入力します。


    % /usr/lib/fbconfig/SUNWifb_config -dev /dev/fbs/ifb1 -res ¥
    
              1280x1024x76 now nocheck
    

  3. フレームロックマルチビューケーブルを各 Expert3D カードに接続します。

    図 8-5を参照してください。

    1. マルチビューフレームロックケーブルのアセンブリの上部を、Expert3D カードのマルチビュー出力コネクタ J2 に接続します。

    2. マルチビューフレームロックケーブルの反対側をスレーブの Expert3D カードのマルチビュー入力コネクタ J1 に接続します。

  4. マスターの Expert3D カードのディスプレイウィンドウで、他の Expert3D カードをスレーブモードに設定します。

    SUNWifb_config ユーティリティーで以下のように入力します。


    % /usr/lib/fbconfig/SUNWifb_config -dev /dev/fbs/ifb1 -slave on
    

    複数のカードの設定を変更する場合、カード毎に別々に設定を行ってください。

以上の設定が終わると、システムでフレームロックとバッファースワップ同期用のソフトウェアアプリケーションを使えるようになります。

Expert3D カードをスレーブモードからマスターモードに戻すには、以下のいずれかの操作を実行します。

複数のカードの設定を変更する場合、カード毎に別々に設定を行ってください。