C H A P T E R  27

Graphics Frame Buffer Test (gfbtest)

gfbtest verifies the functionality of the Graphics frame buffer (GFB).

gfbtest can detect and adapt to the video modes of Sun XV-1000 Model D256 Graphics Accelerator and Sun XV-1000 Model S64 Graphics Accelerator. SunXV-1000 Model D256 Graphics Accelerator has 256 MB of Texture Memory and 72 MB of video memory. Sun XV-1000 Model S64 Graphics Accelerator has 36 MB Texture Memory and 256 MB Video Memory.

All gfbtest tests can run in several screen resolutions such as standard, stereo, and high resolution. In stereo mode, all tests write into the right and left eyes unless you specify otherwise. Use the fbconfig -dev <device-name> -prconf command to display the configuration of the frame buffer you want to test. You can interrupt gfbtest using Control-C. Turn off all other keyboard input if CDE is running on the unit being tested. Test accuracy is checked using a checksum algorithm. Possible locations of failing pixels are identified, as well as the likely failing FRU.



Note - gfbtest is only available in 64-bit mode.





caution icon

Caution - Do not run any other application or screen saver program that uses the GFB accelerator port while running gfbtest. These programs cause SunVTS to return incorrect errors.




gfbtest Test Requirements

Disable all screen savers before testing any graphics device. Type xset s off at a UNIX prompt to disable the Solaris screen saver. Disable the Power Management software if it is running. For full instructions on testing frame buffers, see "Testing Frame Buffers" on page 9.

gfbtest requires approximately 26 MB of disk space in the /tmp directory to extract its working files. If this space is not available, the diagnostic will fail and report warning and error messages, indicating a lack of disk space. To start SunVTS with vtsui , but without vtsk , you must add the host name to xhost as:

xhost + <hostname>


gfbtest Options

To reach the dialog box below, right-click on the test name in the System Map and select Test Parameter Options. If you do not see this test in the System Map, you might need to expand the collapsed groups, or your system may not include the device appropriate to this test. Refer to the SunVTS User's Guide for more details. By default, all tests are enabled except the stereo test.

FIGURE 27-1 gfbtest Test Parameter Options Dialog Box

TABLE 27-1 gfbtest Options

gfbtest Options

Description

3DRAM Test

The 3DRAM test thoroughly tests the video memory in the GFB using 512-bit reads and writes. 3DRAM makes a full screen pass, consisting of a write and a read to each pixel location, for each access mode on the list below. You can use either random data or specify data at the command line. A second pass is made with the one's complement of the data used in the first pass so that each memory location is tested with both a zero and a one.

Errors in this subtest are attributed to the 3DRAM. A failing chip is indicated by (X, Y) locations and device-specific "U" numbers:

  • SFB Stencil 8

  • SFB WID 16

  • FB RGBAZ 64 - Buffer A

  • SFB RGBAZ 64 - Buffer B

3DRAM Logic Test

3DRAM Logic test provides logical functionality to the GFB. The following services are tested:

  • 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 tests each function separately with a series of SFB64 writes. A total of 16 writes are made for each different test case with Y coordinate values varying from 0 to 30 in increments of 2 pixels. This dotted column organization provides page thrashing and block flashing in all screen resolutions. For each operation, all possible combinations are tested.

For example: ROP RGB new==old has three possible values.

new < old, new == old, and new > old.

gfbtest tests each of these cases.

Errors in this subtest are attributed to the 3DRAM.

XChip Test

X Chip registers are tested using simple read/write patterns to determine if there are any bad bits. This includes all LUTs. gfbtest ensures that data is actually being read from the RAMDAC and not being supplied by the driver. Next, the RAMDAC Signature Register captures the pixels going to the screen. This test determines that all of the different data paths within the RAMDAC are functioning properly. The following modes are tested:

  • 24-bit true color from A

  • 24-bit true linear color from A

  • 24-bit direct color from A

  • 24-bit true color from B

  • 24-bit true linear color from B

  • 24-bit direct color from B

  • 8-bit pseudo color (from each plane in RGB) from A

  • 8-bit pseudo color (from each plane in RGB) from B

  • 8-bit non-linear grayscale (from each plane in RGB) from A

  • 8-bit non-linear grayscale (from each plane in RGB) from B

  • 8-bit linear grayscale (from each plane in XRGB) from A

  • 8-bit linear grayscale (from each plane in XRGB) from B

  • 8-bit overlay pseudo color (from buffer A, X plane)

Errors in this test are attributed to the RAMDAC.

Cafe Test

This test will do non-destructive testing of cafe memory (RDRAM) and cafe. The errors in this test are attributed to the cafe and its memory.

Texture Memory Test

Texture memory test tests out all the of the texture memory by writing the data pattern selected (random, 0s, 1s, 5s or 0xAs). By default Random data is selected. The data is written using block writes and read back using block reads.This test automatically detects if the board has 64 MB or 256MB of texture memory and tests it accordingly.

Errors in this test are attributed to texture memory and texture memory subsystem.

Rendering Pipeline Test

Each primitive is tested thoroughly by exercising the following:

  • Simple Triangles

  • 2d primitives

  • 3d Primitives (like Triangles, 3d lines etc.)

  • Vertex Processor

Errors in this test are attributed to the FBC3.

Texture Pipeline Test

This test renders textured primitives to test

  • 2d texture Minification filtering

  • 2d texture Magnification filtering

  • 3d texture Minification filtering

  • 3d texture Magnification filtering

  • texture environment

  • Filter4 and sharpen filters

  • anisotropic filter

Errors in this test are attributed to FBC3.

Fragment Processor Test

Fragment Processor, a subtest, exercises the following options selected by the GFB's Fragment Processor Control (FPC) register:

  • Auxiliary clipping (additive and subtractive)

  • Depth cueing

  • Alpha blend

  • Viewport clip (2D and 3D)

  • Area pattern (transparent and opaque)

Errors in this test are attributed to the FBC3.

Lighting Test

The Lighting test exercises GFB float and lighting microcode. This test lights an object with maximum number of lights (32) that GFB can handle in hardware. A checksum is generated for the rendered image and compared with the checksum generated for the same image on a known good system.

Errors in this test are attributed to the Cafe, Microcode and RD RAMs.

Super Sampling Test

This test will test the super sampling filtering. A picture is drawn into off screen memory, then it is filtered through the super sample filter and copied into on screen video memory.

The errors in this test are attributed to FBC3 and 3DRAMs.

Mesh Buffer Test

This test exercises the mesh buffer by setting up the mesh buffer and rendering triangles by using mesh buffer.

Errors in this test are attributed to mesh buffer.

Clip Trap Test

Clip trap feature is tested by drawing triangles which cross the clip region. When the triangle falls beyond clip region, a clip trap is sent to cafe. Then, Cafe services the clip trap.

The errors in this test are attributed to cafe and microcode.

Context Switching Test

This test tests the microcode context switching capabilities.

Errors in this test are attributed to Cafe, RDRAMs and/or Microcode.

Mixed Primitives Test

The GFB Mix test draws different primitives with variety combinations of sources and configurations, exercising all the FBC3, Cafe, Microcode, SDRAM and 3DRAM chips on GFB. This test is to stress the GFB.

Errors in this test are attributed to FBC3, CAFE, Microcode, SDRAM, RDRAM and/or 3DRAM Chips.

Picking Test

The Picking test exercises the pick detect login of the 3DRAM. A pick detect window is defined and the test verifies that writes to the window are picked, and writes outside the window are not picked. The test is repeated once for each 3DRAM.

Errors in this test are attributed to the 3DRAM.

Stereo Test

Stereo test displays an object in stereo mode with different images for the right and left eye. You can verify proper operation by looking at the screen with stereo glasses and following the instructions displayed. If the monitor type is not 1280x1024 at 76MHz, this test prints a warning message and does not execute.

To prevent this message from being displayed or written to the SunVTS information log, disable the stereo test in the Test Parameter Options dialog box. This test temporarily switches the monitor into stereo mode, renders a stereo image, performs a signature analysis on the stereo image (using the RAMDAC signature capture register), and after displaying the image for five seconds, restores the monitor to its previous resolution.

Errors in this test are attributed to the X Chip.



gfbtest Test Modes

Due to the nature of graphic tests, reading data from, or writing data to the frame buffer during graphic tests will disturb user operation. For this reason, gfbtest is only available in offline Functional test mode.

TABLE 27-2 gfbtest Test Modes

Test Mode

Supported?

Description

Connection

No

Not supported

Functional (Offline)

Yes

Runs the full set of tests



gfbtest Command Line Syntax

/opt/SUNWvts/bin/sparcv9/gfbtest standard_arguments -o dev= device_name , S= subtest_number ,F= #_of_subtest_loops ,B= #_of_test_loops ,P= test_pattern

TABLE 27-3 gfbtest Command-Line Syntax

Argument

Description

dev= device_name

device_name is the relative path name of the device being tested with respect to /dev/fbs .

The default is gfb0 .

S= subtest_number

subtest_number is the test number of the subtest to be run. Select from the subtests below. You can run multiple subtests by adding the subtest numbers together. For example, n=0x3 runs both test 1 and test 2; n=0x180 runs both test 0x080 and test 0x0100 . You do not need the leading zeros.

  • 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= #_of_subtest_loops

The number of times to repeat each subtest.

The default is 1.

B= #_of_test_loops

The number of times to repeat a test loop before passing.

The default is 1.

P= test_pattern

The test pattern number. The default is r , for random patterns.

You may also choose 0 for 0x0000000 , 3 for 0x3333333, 5 for 0x5555555 , or 9 for 0x9999999 .




Note Note - If looping on a test, the verbose mode is disabled. Separate multiple parameters with commas. Example: gfbtest -o dev=gfb1,S=0x9,B=2





Note Note - 64-bit tests are located in the sparcv9 subdirectory: /opt/SUNWvts/bin/sparcv9/testname. If the test is not present in this directory, then it may only be available as a 32-bit test. For more information refer to 32-Bit and 64-Bit Tests.





Note Note - Errors returned by gfbtest are nonspecific: It is not possible to determine which component caused a failure. In all error conditions, the field replaceable unit (FRU) is the entire GFB.