第 2 章 Sun Elite3D テスト (afbtest)
afbtest は、SunTM Elite3D (AFB: Advanced Frame Buffer) の機能を検査します。
afbtest は、Sun Elite3D のビデオモードを検出して、適応させることができます。標準のグラフィックスモードだけではなく、任意のモードですべてのテストを実行することができます。特に指定がないかぎり、立体モードでは、すべてのテストで左目用と右目用に書き込みが行われます。
afbtest は、Control-C を使用して中断することができます。テストされるユニットで OpenWindows が動作している場合は、その他のキーボード入力を行わないでください。
テストの精度は、検査合計アルゴリズムを使用して検査されます。視覚的に確認するために、不良ピクセルの位置は明るい黄緑色で表示されます。
![注意 -](/docs/dcommon/dsc/images/sol/caution.gif)
注意 -
afbtest の実行中は、Sun Elite3D のアクセラレータポートを使用するスクリーンセーバープログラムや、その他アプリケーションプログラムを実行しないでください。他のアプリケーションと共に実行すると、SunVTS によって誤ったエラーが返されます。
afbtest テストの条件
グラフィックス装置のテストは、すべてのスクリーンセーバーを無効にしてから行ってください。これを行うには、UNIX® プロンプトに対して、xset s off と入力します。
フレームバッファーのテストに関する詳細は、「フレームバッファーのテスト」を参照してください。
afbtest は、作業ファイル用に、/tmp ディレクトリに約 29 MB のディスク容量を必要とします。この容量がディスクにない場合は、診断は失敗し、ディスク容量の不足を示す警告メッセージとエラーメッセージが表示されます。
注 -
afbtest の実行中に、複数のモニターにまたがって OpenWindows を実行しないでください。実行した場合は、エラーメッセージが返されます。
afbtest のオプション
ダイアログボックスを表示するには、システムマップにあるテスト名を右クリックして、Test Parameter Options を選択します。システムマップにこのテスト名が表示されない場合は、グループツリーを展開すると表示される場合があります。展開しても表示されない場合は、このテストに合ったデバイスがシステムに含まれていない可能性があります。詳細は、『SunVTS 4.5 ユーザーマニュアル』を参照してください。
デフォルトでは、すべてのテストが有効になっています。
図 2-1 afbtest のテストパラメタオプションダイアログボックス
表 2-1
afbtest のテストオプション
オプション
|
説明
|
3DRAM test
|
3DRAM テストは、512 ビットの読み取りと書き込みを使用して AFB のビデオメモリーを徹底的にテストします。3DRAM は、以下の一覧にあるアクセスモードごとに、各ピクセル位置への書き込みと読み取り 1 回ずつからなるフルスクリーンパスを生成します。使用されるデータはランダムになるか、ユーザーが明示的に指定することができます。各メモリー位置がゼロと 1 の両方でテストされるように、2 回目のパスでは、最初のパスで使用されたデータの 1 の補数が使用されます。
このサブテストでエラーが発生した場合は、原因は 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 test
|
DRAM ロジックテストは AFB に論理機能を提供して、以下のサービスをテストします。
-
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 つがそれぞれテストされます。
各機能の 5 回のパスが生成されます。各パスは、SFB32-A、SFB32-B、SFB32-C、SFB64-AC、SFB64-BC の異なる 5 つの AFB アドレス空間に書き込みます。テストは SFB64 書き込みを使用するため、SFB32 アドレス空間に書き込むパスは、一度に 2 ピクセルを書き込みます。
すべての 3DRAM チップが必ずテストされるようにしてください。このサブテストでエラーが発生した場合は、原因は 3DRAM にあります。
|
RAMDAC test
|
簡単な読み取りと書き込みのパターンを使用して RAMDAC レジスタをテストして、不良ビットがあるかどうかを判定します。これにはすべての LUT (4 つの CLUT、PWLUT、OWLUT) が含まれます。afbtest は、データが RAMDAC から実際に読み取られており、ドライバによって供給されていないことを確認します。
AFB の RAMDAC は、SEP8 または Combined モードで動作することができます。RAMDAC テストは RAMDAC のモードを検出して、そのモードでの RAMDAC 出力をテストします。RAMDAC シグニチャーレジスタは、画面に出力されるピクセルを取り込みます。このテストは、RAMDAC 内のさまざまなデータパスのすべてが正しく機能しているかどうかを判定します。
データパターンは、すべてのデータパス (すなわち、すべての CLUT、PWLUT、OWLUTS) がテストされるように設計されています。画面には、カーソルも表示されます。
このテストでエラーが発生した場合は、原因は RAMDAC にあります。
|
Microcode test
|
有効な各浮動小数点演算マイクロコードについて検査合計を生成、比較して、すべての検査合計値が等しいかどうかを確認します。
このテストでエラーが発生した場合は、原因はマイクロコード PROM とマイクロコード SRAM にあります。
|
Rendering Pipeline test
|
FFB のスタンドアロン診断用に開発された描画パイプラインテストを使用したテストです。さまざまな資源と各種設定を使用して、各基本式が徹底的にテストされます。
-
ドット
-
平滑化されたドット
-
4 つの線分描画基本式すべてを使用した線分
-
三角形
-
多角形
-
矩形
-
フォント
このテストでエラーが発生した場合は、原因は描画チップにあります。
|
Fast Fill/Vertical Scroll test
|
高速充填・垂直スクロール基本式は、画面タイプに依存するため、描画パイプラインテストとは分かれています。画面タイプごとに 3 つの異なるテストがあります。各テストは、ブロックモードとページモードの両方の fast fill を使用します。
このテストでエラーが発生した場合は、原因は描画チップにあります。
|
Pixel Process test
|
サブテストであるこのテストは、AFB のピクセルプロセッサ制御 (PPC) レジスタによって選択されたオプションを実行します。
-
補助クリッピング (加色と減色)
-
深さの待ち行列化
-
アルファブレンド
-
ビューポートクリップ (2D と 3D)
-
領域パターン (透明と不透明)
このテストでエラーが発生した場合は、原因は描画チップにあります。
|
AFB Dots test
|
AFB のスタンドアロン診断用に開発された AFB 基本式テストを使用したテストです。さまざまな資源と各種設定を使用して、AFB ドットが徹底的にテストされます。
このテストでエラーが発生した場合は、原因はコマンドチップと描画チップにあります。
|
AFB Lines test
|
AFB のスタンドアロン診断用に開発された AFB 基本式テストを使用したテストです。さまざまな資源と各種設定を使用して、AFB 線分が徹底的にテストされます。
-
ぎざぎざの線分
-
平滑化された線分
-
パターンを持つ線分
-
ブレゼンハム線分
-
線分と三角形で描かれた幅広の線分
このテストでエラーが発生した場合は、原因はコマンドチップと描画チップにあります。
|
AFB Triangles test
|
AFB のスタンドアロン診断用に開発された AFB 基本式テストを使用したテストです。さまざまな資源と各種設定を使用して、AFB 三角形が徹底的にテストされます。
-
右および左回りに描かれた三角形
-
縞で描かれた三角形
-
独立した三角形
-
星印で描かれた三角形
-
面法線を持つ三角形
このテストでエラーが発生した場合は、原因はコマンドチップと描画チップにあります。
|
Lighting test
|
AFB のフロートおよび光源設定マイクロコードを検査します。AFB がハードウェアで扱うことができる、最大の光源数 (32) でオブジェクトを照らします。描画されたイメージの検査合計を生成し、既知の正常なシステムで描画された同じイメージの検査合計と比較します。
このサブテストでエラーが発生した場合は、原因はフロート SRAM とマイクロコード SRAM にあります。
|
Texture Processor test
|
AFB のテクスチャーピクセルプロセッサ制御 (TPPC) レジスタの各種オプションをテストします。
-
テクスチャー最小化
-
テクスチャー最大化
-
ブレンド
-
転写
-
変調
このテストでエラーが発生した場合は、原因は描画チップにあります。
|
AFB Mix test
|
ソースと設定のさまざまな組み合わせを使用して各種基本式を描画することによって、AFB のすべての描画チップ、フロートチップ、マイクロコードチップ、3DRAM チップ、3DRAM チップを検査します。このテストは、AFB を酷使することを目的としています。
このテストでエラーが発生した場合は、原因は、描画チップ、フロートチップ、マイクロコードチップ、3DRAM チップにあります。
|
Picking test
|
3DRAM のピック検出ロジックを検査します。ピック検出ウィンドウを定義し、そのウィンドウへの書き込みがピックされ、ウィンドウ外部への書き込みがピックされないことを確認します。3DRAM ごとに 1 回のテストが行われます。
このテストでエラーが発生した場合は、原因は 3DRAM にあります。
|
Arbitration test
|
サブテストであるこのテストは、ダイレクトポートを介して読み取りと書き込みを行っている間に、オブジェクトをアクセラレータポートに連続的に描画します。シングルバッファー構成では、別のプロセスが X 平面で DFB 読み取り・書き込みを行っている間に、画像が RGB 平面に描画されます。ダブルバッファー構成では、別のプロセスが A 平面で 32 ビットの DFB 読み取り・書き込みを行っている間に、画像が B バッファーの 32 平面すべてに描画されます。このサブテストは、描画処理とウィンドウ操作が並行して行われる状態をシミュレートします。
このテストでエラーが発生した場合は、原因は DFB と SFB のコンテクストスイッチングにあります。
|
Stereo test
|
立体テストは、右目と左目の画像が異なる立体モードでオブジェクトを表示します。立体メガネをかけて画面を見ながら表示される指示に従うことによって、適切に動作しているかどうかを確認することができます。モニターの種類が 76 MHz の 1280 × 1024 ではない場合は、警告メッセージが表示され、テストは実行されません。このメッセージが表示されたり、SunVTS の情報ログに書き込まれたりしないようにするには、テストパラメタオプションダイアログボックスの立体テストを無効にします。立体解像度は、サンのプレミアムカラーモニターでのみサポートしています。このテストは、モニターを一時的に立体モードに切り換え、立体画像を描画し、(RAMDAC シグニチャー取り込みレジスタを使用して) 立体画像のシグニチャー解析を行います。画像を 5 秒間表示した後、モニターを以前の解像度に復元します。
このテストでエラーが発生した場合は、原因は RAMDAC にあります。
|
UART test
|
UART0 と UART1 の両方をテストします。最初に、不正なビットがないかどうかを決定するために、単純な読み込み・書き込みパターンを使用して UART メモリーがテストされます。次に、データが UART0/1 に書き込まれ、書き込まれたデータはポーリングモードで内部ループバックを使用して読み込まれます。読み込まれたデータは、書き込まれたデータと検証されます。
このテストでエラーが発生した場合は、原因は UART とその SRAM メモリーチップにあります。
|
afbtest のテストモード
グラフィックテストの性格上、グラフィックテスト中にフレームバッファーを読み書きすると、ユーザーの作業の障害になることがあります。このため、afbtest テストは、オフラインの機能テストモードでのみ使用することができます。
表 2-2
afbtest のテストモード
テストモード
|
サポート
|
説明
|
接続テスト
|
×
|
サポートされていません。
|
機能テスト
(オフライン)
|
○
|
すべてのテストを実行できます。
|
afbtest のコマンド行構文
/opt/SUNWvts/bin/afbtest 標準引数 -o dev=デバイス名, S=サブテスト番号,F=サブテストのループ回数,B=テストのループ回数,P=テストパターン
表 2-3
afbtest のコマンド行構文
引数
|
説明
|
dev=デバイス名
|
/dev/fbs; を基準に、テストするデバイス名の相対パス名を指定します。デフォルトは afb0 です。
|
S=サブテスト番号
|
実行するサブテスト名のテスト番号を指定します。以下から選択してください。サブテスト番号を加算することによって、複数のサブテストを実行することができます。たとえば n=0x3 では、テスト 1 とテスト 2 の両方が実行されます。n=0x180 では、テスト 0x080 と 0x0100 の両方が実行されます。先行ゼロは必要ありません。
-
n-0x00001 3DRAM
-
n-0x00002 3DRAM
Logic
-
n-0x00004 RAMDAC
-
n-0x00008 Micro
code
-
n-0x00010 Rendering
Pipeline
-
n-0x00020 FastFill/Vertical
Scroll
-
n-0x00040 Pixel
Processor
-
n-0x00080 AFB
Dots
-
n-0x00100 AFB
Lines
-
n-0x00200 AFB
Triangles
-
n-0x00400 Lighting
-
n-0x00800 Texture
Processor
-
n-0x02000 AFB
Mix Test
-
n-0x04000 Picking
-
n-0x08000 Arbitration
-
n-0x10000 Stereo
-
n-0x40000
UART
|
F=サブテストのループ回数
|
各サブテストを繰り返す回数を指定します。デフォルトは 1 回です。
|
B=テストのループ回数
|
テストループを繰り返す回数を指定します。この回数繰り返されると、テストはパスしたことになります。デフォルトは 1 回です。
|
P=テストパターン
|
テストパターン番号を指定します。デフォルトは、ランダムパターンを示す r です。0(0x0000000)、3(0x3333333)、5(0x5555555)、9(0x9999999) を指定することもできます。
|
注 - 64 ビットのテストは、sparcv9 サブディレクトリに格納されています (/opt/SUNWvts/bin/sparcv9/テスト名)。このディレクトリにテストが存在しない場合は、そのテストは、32 ビットのテストとしてだけ実行することができます。詳細は、「32 ビットテストと 64 ビットテスト」を参照してください。
注 -
afbtest が返すエラーは特定できません(障害が発生した構成要素を特定することはできません)。エラーが発生した場合は、AFB 全体が現場交換可能ユニット(FRU)となります。