第 28 章 グラフィックスフレームバッファーテスト (gfbtest)
gfbtest は、グラフィックスフレームバッファー (GFB) の機能を検証するテストです。
gfbtest は、2 種類のグラフィックスアクセラレータ (Sun XV-1000 モデル D256 と Sun XV-1000 モデル S64) のビデオモードを検出し、該当するモードに適応できます。SunXV-1000 モデル D256 グラフィックスアクセラレータは 256 MB のテクスチャーメモリーと 72 MB のビデオメモリー、 Sun XV-1000 モデル S64 グラフィックスアクセラレータは 36 MB のテクスチャーメモリーと 256 MB のビデオメモリーをそれぞれ備えています。
gfbtest のすべてのテストは、数種類の画面解像度 (標準、立体、高解像度など) で実行できます。立体モードでは、特に指定しないかぎり、すべてのテストは左目用と右目用に書き込みが行われます。テストするフレームバッファーの構成情報を表示するには、fbconfig
-dev <device-name> -prconf コマンドを使用します。gfbtest の実行は、Control-C を押して中断できます。テスト対象のマシンで OPEN LOOK や CDE が動作している場合には、その他のキーボード入力はすべてオフにしてください。テストの正確さは、検査合計アルゴリズムを使用して検査されます。エラーの可能性のあるピクセルの位置が、障害が発生している可能性のある FRU とともに特定されます。
注 -
gfbtest は 64 ビットモードのみで有効です。
注意 -
gfbtest の実行中には、GFB アクセラレータポートを使用するスクリーンセーバープログラムやその他のアプリケーションプログラムを実行しないでください。そのようなプログラムを実行すると、SunVTS は不正なエラー情報を戻します。
注 - 複数のモニターにわたって OpenWindows を実行しないでください。テストが失敗する原因になります。
gfbtest テストの条件
グラフィックスデバイスをテストする前に、すべてのスクリーンセーバーを無効にしてください。スクリーンセーバーを終了させるには、UNIX のプロンプトで xset s off と入力します。電源管理ソフトウェアが動作している場合には、無効にしてください。フレームバッファーテストの詳しい方法については、9 ページの「フレームバッファーのテスト」を参照してください。
gfbtest では、作業ファイルを一時的に格納するため、/tmp ディレクトリに約 26 MB の空き領域が必要です。空き領域が足りないと診断は失敗し、空き領域の不足を示す警告メッセージとエラーメッセージが表示されます。vtsk ではなく vtsui を使って SunVTS を起動するには、次のように xhost にホスト名を指定する必要があります。
gfbtest のオプション
ダイアログボックスを表示するには、システムマップにあるテスト名を右クリックし、Test Parameter Options を選択します。このテスト名がシステムマップに表示されない場合は、グループツリーを展開すると表示される場合があります。展開しても表示されない場合には、このテストに合ったデバイスがシステムに含まれていない可能性があります。詳細は、『SunVTS 4.6 ユーザーマニュアル』を参照してください。デフォルトでは、Stereo テストを除くすべてのテストが有効です。
図 28-1 gfbtest のテストパラメタオプションダイアログボックス
表 28-1
gfbtest のオプション
オプション
|
説明
|
3DRAM テスト
|
3DRAM は、512 ビットの読み取りと書き込みを使用して、GFB のビデオメモリーを厳密にテストします。3DRAM は、次に一覧するアクセスモードごとに、各ピクセル位置に書き込みと読み取りを実行してスクリーン全体を走査します。使用されるデータはランダムに生成されますが、コマンド行で明示的に指定することも可能です。各メモリー位置のテストは 2 回の走査で構成され、2 度目の走査では最初の走査に使用されたデータの 1 の補数が使用されます。したがって、すべてのメモリー位置が 0 と 1 の両方でテストされます。
このサブテストでエラーが発生した場合には 3DRAM に問題があります。不良チップが見つかると、その位置 (X,Y) とデバイス固有の「U」番号が示されます。
-
SFB Stencil 8
-
SFB WID 16
-
FB RGBAZ 64 - バッファー A
-
SFB RGBAZ 64 - バッファー B
|
3DRAM Logic テスト
|
3DRAM Logic は、GFB に論理機能を提供するテストです。次の各サービスがテストされます。
-
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
gfbtest は一連の SFB64 書き込みによって、各機能を個別にテストします。Y 座標値を 0 〜 30 ピクセルの範囲内で 2 ピクセルずつ増やしながら、テストケースごとに 16 回の書き込みを実行します。この点線内の構成では、すべての画面解像度でページスラッシュとブロックフラッシュが実行できます。それぞれのケースごとに、考えられるすべての組み合わせがテストされます。
たとえば、 ROP
RGB 新 == 旧には 3 通りの値、すなわち
新 < 旧、新 == 旧、新 > 旧がありえます。
gfbtest ではこれらの値がすべてテストされます。
このサブテストでエラーが発生した場合には 3DRAM に問題があります。
|
XChip テスト
|
単純な読み取りと書き込みのパターンを使って X Chip レジスタをテストし、不良ビットの有無を調べます。これにはすべての LUT が含まれます。gfbtest では、データは確実に実際の 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 ビットのオーバーレイ擬似カラー
このサブテストでエラーが発生した場合には、RAMDAC に問題があります。
|
Cafe テスト
|
Cafe メモリー (RDRAM) と Cafe のテストです。メモリーの内容を破壊することはありません。このテストでエラーが発生した場合には、Cafe とそのメモリーに問題があります。
|
Texture Memory テスト
|
選択されたデータパターン (ランダム、0、1、5、または 0xA の配列) の書き込みによって、すべてのテクスチャーメモリーをテストします。デフォルトでは、ランダムデータが選択されます。このデータがブロック書き込みで書き込まれ、さらにブロック読み取りで読み取られます。このテストでは、ボードに搭載されているテクスチャーメモリーのサイズ (64 MB または 256MB) が自動検出され、この結果に応じてテストが実施されます。
このテストでエラーが発生した場合には、テクスチャーメモリーとそのサブシステムに問題があります。
|
Rendering Pipeline テスト
|
次の要素を使用して、各基本式が厳密にテストされます。
-
単純な三角形
-
2D 基本式
-
3D 基本式 (三角形、3D 直線など)
-
頂点プロセッサ
このサブテストでエラーが発生した場合には、FBC3 に問題があります。
|
Texture Pipeline テスト
|
このテストでは、テスト対象のテクスチャー適用済み基本式を描画します。
-
2D テクスチャー縮小フィルタ
-
2D テクスチャー拡大フィルタ
-
3D テクスチャー縮小フィルタ
-
3D テクスチャー拡大フィルタ
-
テクスチャー環境
-
Filter4 と鮮明化フィルタ
-
異方性フィルタ
このサブテストでエラーが発生した場合には、FBC3 に問題があります。
|
Fragment Processor テスト
|
GFB のフラグメントプロセッサ制御 (FPC) レジスタで選択された次のオプションを実行するサブテストです。
-
補助クリッピング (加色と減色)
-
深さの待ち行列化
-
アルファブレンド
-
ビューポートクリップ (2D と 3D)
-
領域パターン (透明と不透明)
このサブテストでエラーが発生した場合には、FBC3 に問題があります。
|
Lighting テスト
|
GFB フロートと光源設定マイクロコードを検査します。GFB がハードウェアで対応できる最大光源数 (32) でオブジェクトを照らします。描画された画像の検査合計を生成し、既知の正常なシステムで描画された同じ画像の検査合計と比較します。
このサブテストでエラーが発生した場合には、Cafe、マイクロコード、および RDRAM に問題があります。
|
Super Sampling テスト
|
スーパーサンプリングフィルタのテストです。オフスクリーンメモリーに画像を描画して、スーパーサンプリングフィルタでフィルタ処理した後、その結果をスクリーンビデオメモリーにコピーします。
このサブテストでエラーが発生した場合には、FBC3 と 3DRAM に問題があります。
|
Mesh Buffer テスト
|
メッシュバッファーのテストです。メッシュバッファーをセットアップし、それを使って三角形を描画します。
このサブテストでエラーが発生した場合には、メッシュバッファーに問題があります。
|
Clip Trap テスト
|
クリップ領域と交差する三角形を描画して、クリップトラップ機能をテストします。この三角形がクリップ領域を超えたときにクリップトラップが Cafe に送信され、 Cafe でトラップの処理が実行されます。
このテストでエラーが発生した場合には、Cafe とマイクロコードに問題があります。
|
Context Switching テスト
|
マイクロコードのコンテキスト切り替え機能をテストします。
このテストでエラーが発生した場合には、Cafe、RDRAM、およびマイクロコードのいずれか、またはすべてに問題があります。
|
Mixed Primitives テスト
|
ソースと設定のさまざまな組み合わせを使用して各種の基本式を描画し、GFB 上の FBC3、Cafe、マイクロコード、SDRAM、および 3DRAM の各チップをすべて検査します。このテストでは、GFB の処理負荷への耐性が調べられます。
このテストでエラーが発生した場合には、FBC3、Cafe、マイクロコード、SDRAM、RDRAM、3DRAM のいずれか、またはすべてのチップに問題があります。
|
Picking テスト
|
3DRAM のピック検出ロジックを検査します。We pick detect ウィンドウが定義され、そのウィンドウへの書き込みがピックされること、およびウィンドウの外部への書き込みがピックされないことが確認されます。このテストは、それぞれの 3DRAM ごとに 1 回実行されます。
このテストでエラーが発生した場合には、3DRAM に問題があります。
|
Stereo テスト
|
立体テストは、右目と左目の画像が異なる立体モードでオブジェクトを表示します。立体メガネを掛けて画面を見ながら表示される指示に従い、適切に動作しているかどうかを確認します。モニターの種類が 76 MHz の 1280 × 1024 ではない場合は警告メッセージが表示され、テストは実行されません。
このメッセージの表示や SunVTS の情報ログへの出力を回避するには、テストパラメタオプションダイアログボックスで Stereo テストを無効にします。このテストはモニターを一時的に立体モードに切り換え、立体画像を描画し、(RAMDAC シグニチャー取り込みレジスタを使用して) 立体画像のシグニチャー解析を行います。立体画像が 5 秒間表示された後、モニターは元の解像度に戻ります。
このテストでエラーが発生した場合には、X チップに問題があります。
|
gfbtest テストのモード
グラフィックテストではフレームバッファーとの間でデータの読み書きが実行されるため、テスト中にはユーザー側の操作が妨げられます。そのため、gfbtest テストを実行できるのは、オフラインの機能テストモードだけです。
表 28-2
gfbtest テストのモード
テストモード
|
サポート
|
説明
|
接続テスト
|
×
|
サポートされていません。
|
機能テスト
(オフライン)
|
○
|
すべてのテストを実行できます。
|
gfbtest のコマンド行構文
/opt/SUNWvts/bin/sparcv9/gfbtest 標準引数 -o dev=デバイス名,
S=サブテスト番号,F=サブテストのループ回数,B=テストのループ回数,
P=テストパターン
表 28-3
gfbtest のコマンド行構文
引数
|
説明
|
dev=デバイス名
|
デバイス名には、テスト対象のデバイスを /dev/fbs を基準とした相対パス名で指定します。
デフォルト値は gfb0 です。
|
S=サブテスト番号
|
サブテスト番号には、実行するサブテストのテスト番号を指定します。サブテストには、次に挙げる種類があります。サブテスト番号を加算することによって、複数のサブテストを実行することもできます。たとえば n=0x3 と指定すると、テスト 1 とテスト 2 の両方が実行されます。また、n=0x180 と指定した場合には、テスト 0x080 とテスト 0x0100 の両方が実行されます。先頭のゼロは省略してもかまいません。
-
n - 0x00001
Video Memory 3DRAM
-
n - 0x00002
3DRAM Logic
-
n - 0x00004
X Chip
-
n - 0x00008
Cafe
-
n - 0x00010
Texture Memory SDRAM
-
n - 0x00020
Rendering Pipeline
-
n - 0x00040
Texturing Pipeline
-
n - 0x00080
Fragment Processor
-
n - 0x00100
Lighting
-
n - 0x00200
Super Sampling
-
n - 0x00400
Mesh Buffer
-
n - 0x00800
Clip Trap
-
n - 0x01000 Context
Switching
-
n - 0x02000
Mixed Primitives
-
n - 0x04000
Picking
-
n - 0x08000
Stereo
|
F=サブテストのループ回数
|
各サブテストの繰り返し回数を指定します。
デフォルトは 1 回です。
|
B=テストのループ回数
|
この引数で指定した回数だけ繰り返されると、テストはパスしたことになります。
デフォルトは 1 回です。
|
P=テストパターン
|
テストパターン番号を指定します。デフォルトは r (ランダムパターン) です。
このほか、0 (0x0000000)、3 (0x3333333)、5 (0x5555555)、または 9 (0x9999999) も指定できます。
|
注 - 同じテストをループさせる場合には、詳細モードは無効になります。複数のパラメタはコンマで区切って指定します。(例: gfbtest
-o dev=gfb1,S=0x9,B=2)
注 - 64 ビットのテストは、sparcv9 サブディレクトリに格納されています (/opt/SUNWvts/bin/sparcv9/テスト名)。このディレクトリにテストが存在しない場合は、そのテストは、32 ビットのテストとしてだけ実行することができます。詳細は、「32 ビットテストと 64 ビットテスト」を参照してください。
注 -
gfbtest が返すエラーは特定できません(障害が発生した構成要素を特定することはできません)。エラーが発生した場合は、GFB 全体が現場交換可能ユニット(FRU)となります。