第 24 章 高速フレームバッファーテスト (ffbtest)
ffbtest は、高速フレームバッファー (FFB) の機能を検査します。
ffbtest は、シングルバッファーまたはダブルバッファー版の高速フレームバッファーのビデオモードを検出し、そのモードに適応することができます。すべてのテストは、標準、立体、高解像度などのいくつかの画面解像度で実行することができます。立体モードでは、特に指定しないかぎり、すべてのテストは左目用と右目用に書き込みが行われます。ffbtest はまた、FFB、FFB2、FFB2+ の高速フレームバッファー構成にも対応しています。テストするフレームバッファーの構成情報を表示するには、ffbconfig
-prconf コマンドを使用します。
ffbtest は、Control-C を使用して中断することができます。テストされるユニットで OpenWindows が動作している場合は、その他のキーボード入力を行わないでください。
テストの正確さは、検査合計アルゴリズムを使用して検査されます。エラーの可能性のあるピクセル位置は、障害が発生している可能性のある FRU とともに視覚的に示されます。
注意 -
ffbtest を実行している間は、FFB アクセラレータポートを使用する他のアプリケーションやスクリーンセーバーを実行しないでください。これらのプログラムを実行すると、SunVTS から誤ったエラーが返されます。
注 - 複数のモニターにまたがって OpenWindows を実行しないでください。
ffbtest テストの条件
グラフィックスデバイスをテストする場合は、あらかじめスクリーンセーバーを終了させておいてください。スクリーンセーバーを終了させるには、UNIX のプロンプトで xset s off と入力します。電源管理ソフトウェアを実行している場合は、無効にしてください。
フレームバッファーのテストに関する詳細は、「フレームバッファーのテスト」を参照してください。
ffbtest は、作業用ファイルとして /tmp ディレクトリに約 7 MB のディスク容量を必要とします。この容量がディスクにないと、診断は失敗し、ディスク容量の不足を示す警告メッセージとエラーメッセージが表示されます。
vtsk ではなく、vtsui を使用して SunVTS を起動するには、xhost + ホスト名というように xhost にホスト名を指定する必要があります。
ffbtestのオプション
ダイアログボックスを表示するには、システムマップにあるテスト名を右クリックし、Test Parameter Options を選択します。システムマップにこのテスト名が表示されない場合は、グループツリーを展開すると表示される場合があります。展開しても表示されない場合は、このテストに合ったデバイスがシステムに含まれていない可能性があります。詳細は、『SunVTS 4.2 ユーザーマニュアル』を参照してください。
図 24-1 ffbtest のテストパラメタオプションダイアログボックス
デフォルトでは、Stereo テストを除くすべてのテストが有効です。
表 24-1
ffbtest のオプション
オプション
|
説明
|
3DRAM
|
3DRAM は、512 ビットの読み取りと書き込みを使用して、FFB のビデオメモリーをテストします。3DRAM は、以下の一覧にあるアクセスモードごとに、各ピクセル位置への書き込みと読み取りからなるフルスクリーンパスを生成します。使用されるデータは、ランダムになるか、ユーザーがコマンド行から指定することができます。2 回目のパスは、最初のパスで使用されたデータの 1 の補数で生成されるため、各メモリー位置は 0 と 1 の両方でテストされます。シングルバッファーの FFB では、一部のパスが省略されます。
このサブテストでエラーが発生した場合は、原因は 3DRAM にあります。不良チップは、(X,Y) 位置とデバイス固有の「U」番号によって示されます。
-
DFB8R、DFB8G、DFB8B、DFB8X-バッファー A
-
DFB24-バッファー A
-
DFB32-バッファー A
-
SFB8R、SFB8G、SFB8B、SFB8X-バッファー A
-
SFB8R、SFB8G、SFB8B、SFB8X-バッファー B
(ダブルバッファーのみ)
-
SFB32-バッファー A
-
SFB32-バッファー B (ダブルバッファーのみ)
-
SFB32-バッファー C (ダブルバッファーのみ)
-
SFB64-バッファー A および C (ダブルバッファーのみ)
-
SFB64-バッファー B および C (ダブルバッファーのみ)
|
3DRAM Logic
|
3DRAM ロジックは、FFB に論理機能を提供します。以下のサービスがテストされます。
-
Compare Controls-Match AB
-
Compare Controls-Magnitude AB
-
Compare Controls-Match C (ダブルバッファーのみ)
-
Compare Controls-Magnitude C (ダブルバッファーのみ)
-
Match Mask-AB
-
Magnitude Mask-AB
-
Match Mask-C (ダブルバッファーのみ)
-
Magnitude Mask-C (ダブルバッファーのみ)
-
Raster Operations-RGB
-
Raster Operations-X
-
Raster Operations-YZ (ダブルバッファーのみ)
-
Plane Mask-RGB
-
Plane Mask-X
-
Plane Mask-Y
-
Plane Mask-Z
-
Group Enable-R, G, B, X
-
Group Enable-Y, Z (ダブルバッファーのみ)
各機能は、一連の SFB64 書き込みを使用して個々にテストされます。Y 座標値を 0 から 30 まで 2 ピクセルずつ増分しながら、異なるテストケースごとに合計 16 回の書き込みが行われます。この点線の構成は、すべての画面解像度でページスラッシュとブロックフラッシュを提供します。ケースごとに、考えられるすべての組み合わせがテストされます。たとえば、ROP
RGB 新 == 旧では、新 < 旧、新 == 旧、新 > 旧の 3 つの値があり、これら 3 つのケースがそれぞれテストされます。
|
3DRAM Logic
(続き)
|
各機能の 5 回のパスが生成されます。各パスは、SFB32-A、SFB32-B、SFB32-C、SFB64-AC、SFB64-BC の異なる 5 つの FFB アドレス空間に書き込みます。テストは SFB64 書き込みを使用するため、SFB32 アドレス空間に書き込むパスは、一度に 2 ピクセルを書き込みます。
FFB2+ ボードの場合は、その新しいステンシルおよびパスイン機能に対するテストも行われます (ボードが DBZ の場合)。
すべての 3DRAM チップが必ずテストされるようにしてください。このサブテストでエラーが発生した場合は、原因は 3DRAM にあります。
|
RAMDAC
|
不良ビットがあるかどうかを判断するために、簡単な読み取りと書き込みのパターンを使用して RAMDAC レジスタをテストします。これにはすべての LUT が含まれます。ffbtest は、データが RAMDAC から実際に読み取られており、ドライバによって供給されていないことを確認します。
次に、RAMDAC シグニチャーレジスタは、画面に出力されるピクセルを取り込みます。このテストは、RAMDAC 内のさまざまなデータパスのすべてが正しく機能しているかどうかを判定します。
|
RAMDAC
(続き)
|
テストされるモードは以下のとおりです。
-
A からの 24 ビットのトゥルーカラー
-
A からの 24 ビットのトゥルーリニアカラー
-
A からの 24 ビットのダイレクトカラー
-
B からの 24 ビットのトゥルーカラー (ダブルバッファーのみ)
-
B からの 24 ビットのトゥルーリニアカラー
-
B からの 24 ビットのダイレクトカラー (ダブルバッファーのみ)
-
A からの (RGB の各平面からの) 8 ビットの擬似カラー
-
B からの (RGB の各平面からの) 8 ビットの擬似カラー (ダブルバッファーのみ)
-
A からの (RGB の各平面からの) 8 ビットの非リニアグレースケール
-
B からの (RGB の各平面からの) 8 ビットの非リニアグレースケール (ダブルバッファーのみ)
-
A からの (XRGB の各平面からの) 8 ビットのリニアグレースケール
-
B からの (XRGB の各平面からの) 8 ビットのリニアグレースケール (ダブルバッファーのみ)
-
(バッファー A、X 平面からの) 8 ビットのオーバーレイ擬似カラーバッファーのみ)
シングルバッファー構成では、合計 11 タイプの異なるウィンドウが画面に表示され、ダブルバッファー構成では 22 タイプのウィンドウが表示されます。カーソルも画面に表示されます。
FFB2+ ボードでの RAMDAC は、3 つのモード (SEP8、SEP4、Combined) をサポートします。このテストでは、RAMDAC のタイプを検出し、CLUT の増分、WLUT の増分や追加のオーバーレイといった、元からある機能および追加機能を検証します。
このテストでエラーが発生した場合は、原因は RAMDAC にあります。
|
Rendering Pipeline
|
描画パイプラインは、FFB のスタンドアロン診断用に開発された描画パイプラインテストを使用します。
さまざまな資源と各種設定で、各基本式が徹底的にテストされます。
-
ドット
-
平滑化されたドット
-
4 つの線分描画基本式すべてを使用した線分
-
三角形
-
多角形
-
矩形
-
フォント
このテストでエラーが発生した場合は、原因は FBC にあります。
|
Fast Fill/Vertical Scroll
|
高速充填・垂直スクロール基本式は、画面タイプに依存するため、描画パイプラインテストとは分かれています。画面タイプごとに 3 つの異なるテストがあります。各テストは、ブロックモードとページモードの両方の fistful を使用します。
このテストでエラーが発生した場合は、原因は FBC にあります。
|
Pixel Process
|
サブテストであるピクセルプロセッサは、FFB のピクセルプロセッサ制御 (PPC) レジスタに選択されたオプションを実行します。
-
補助クリッピング (加色と減色)
-
深さの待ち行列化
-
アルファブレンド
-
ビューポートクリップ (2D と 3D)
-
領域パターン (透明と不透明)
このテストでエラーが発生した場合は、原因は FBC にあります。
|
Picking
|
ピッキングは、3DRAM のピック検出ロジックを検査します。ピック検出ウィンドウを定義し、そのウィンドウへの書き込みがピックされ、ウィンドウ外部への書き込みがピックされないことを確認します。3DRAM ごとに 1 回のテストが行われます。
このテストでエラーが発生した場合は、原因は 3DRAM にあります。
|
Arbitration
|
調停サブテストは、ダイレクトポートを介して読み取りと書き込みを行っている間に、オブジェクトをアクセラレータポートに連続的に描画します。シングルバッファー構成では、別のプロセスが X 平面で DFB 読み取り・書き込みを行っている間に、絵が RGB 平面に描画されます。ダブルバッファー構成では、別のプロセスが A 平面で 32 ビットの DFB 読み取り・書き込みを行っている間に、絵が B バッファーの 32 平面すべてに描画されます。このサブテストは、描画処理とウィンドウ操作が並行して行われる状態をシミュレートします。
このテストでエラーが発生した場合は、原因は FBC にあります。
|
Stereo
|
立体は、右目と左目の画像が異なる立体モードでオブジェクトを表示します。立体メガネを掛けて画面を見ながら表示される指示に従い、適切に動作しているかどうかを確認します。モニターのタイプが 76 MHz で 1280 × 1024 ではない場合は、エラーメッセージが表示され、テストは実行されません。エラーメッセージが表示されないようにするには、テストオプションメニューの立体テストを無効にします。サンのプレミアムカラーモニターだけが、立体解像度をサポートしています。
このテストは、モニターを一時的に立体モードに切り換え、立体画像を描画し、(RAMDAC シグニチャー取り込みレジスタを使用して) 立体画像のシグニチャー解析を行います。画像を 5 秒間表示した後、モニターを以前の解像度に復元します。
このテストでエラーが発生した場合は、原因は RAMDAC にあります。
注-SunVTS の実行でコンソールに縦の線が現れた場合は、その原因は、ffbtest の立体テストにあると考えられます。画面解像度を標準から立体に変更し、再び標準に戻すとき、FFB
ハードウェアにはタイムクリティカルな期間が存在します。このときシステムの負荷が大きかったり、すべての SunVTS テストを実行していたりすると、画面解像度を変更しているときに FFB デバイスドライバの実行が中断されて、FB ASIC と RAMDAC の同期がとれなくなり、FFB 画面が異常な表示になることがあります。この問題は、システムを停止させる原因になることもあります。このような表示上の問題が発生しないように、ffbtest 立体テストは、他の SunVTS テストと同時に行わないでください。
このテストは、立体モニターと立体メガネがある場合にのみ行う必要があるテストなので、デフォルトでは無効になっています。
|
ffbtest のテストモード
グラフィックテストの性格上、グラフィックテスト中にフレームバッファーを読み書きすると、ユーザーの作業の障害になることがあります。このテストは、オフラインの機能テスト (Functional Test) モードでのみ使用することができます。
表 24-2
ffbtest のテストモード
テストモード
|
サポート
|
説明
|
接続テスト
|
×
|
サポートされていません。
|
機能テストモード
(オフライン)
|
○
|
ffbtest は、シングル (SFB) 版およびダブルバッファー (DBZ) 版両方の高速フレームバッファーボードを検査します。
|
機能テスト
(オンライン)
|
×
|
サポートされていません。
|
ストレスモード(Stress Mode)
|
○
|
ストレスモードでは、検査中に作成されるランダムテストジェネレータを使用してテスト対象のフレームバッファーができるかぎり酷使されます。既知のシードから始めてランダム属性のランダム基本式が生成され、既知の正常なシステムにあるものと同じであるかチェックされます。テストは 10 回繰り返され、その都度、ランダム画像が前の画像上にオーバーレイされます。
FFB2 + ボードに対して、ストレスモードを使用することはできません。
|
ffbtest のコマンド行構文
/opt/SUNWvts/bin/ffbtest 標準引数 -o dev=デバイス名, S=サブテスト番号,
F=サブテストループ,B=テストループ回数,P=テストパターン
表 24-3
ffbtest のコマンド行構文
引数
|
説明
|
dev=デバイス名
|
テストするデバイスの相対パス名 (/dev/fbs を指し示す) を指定します。デフォルトは ffb0 です。
|
S=サブテスト番号
|
実行するサブテストのテスト番号を指定します。以下のサブテストから選択します。サブテスト番号を加算すると、複数のサブテストを実行することができます。たとえば、n=0x3 はテスト 1 とテスト 2 の両方を実行し、n=0x180 は、テスト 0x080 とテスト 0x0100 の両方を実行します。先行ゼロを付ける必要はありません。
-
n=0x00001 3DRAM
-
n=0x00002 3DRAM ロジック
-
n=0x00004 RAMDAC
-
n=0x00008 描画パイプライン
-
n=0x00010 高速充填・垂直スクロール
-
n=0x00020 ピクセルプロセッサ
-
n=0x00040 ピッキング
-
n=0x00080 調停
-
n=0x00100 立体
サブテスト番号の論理和をとると、複数のテストを選択することができます。たとえば、n = 0x00009 は、3DRAM テストと描画パイプラインテストを選択します。16 進数の前には 0x を付ける必要がありますが、10 進数で指定することもできます。
|
F=サブテストループ回数
|
各サブテストを繰り返す回数を指定します。デフォルトは 1 です。
|
B=テストループ回数
|
合格に必要なテストループの繰り返し回数を指定します。デフォルトは 1 です。
|
P=テストパターン
|
テストパターン番号を指定します。デフォルトは、ランダムパターンを意味する r です。
0 (0x0000000)、3 (0x3333333)、5 (0x5555555)、
9 (0x9999999) を選択することができます。
|
注 - 64 ビットのテストは、sparcv9 サブディレクトリに格納されています (/opt/SUNWvts/bin/sparcv9/テスト名)。このディレクトリにテストが存在しない場合は、そのテストは、32 ビットのテストとしてだけ実行することができます。詳細は、「32 ビットテストと 64 ビットテスト」を参照してください。