C H A P T E R  30

Expert3D Frame Buffer Test (ifbtest)

ifbtest verifies the functionality of the Expert3D frame buffer.

ifbtest can detect and adapt to many video modes of the Expert3D frame buffer. All tests can run at a resolution of 1024x768 or higher.

You can interrupt ifbtest using Control-C.

Test accuracy is checked using direct image comparison against compressed images. Failed pixel locations are printed as error messages.



caution icon

Caution - Do not run any other application or screen saver program that uses the Expert3D accelerator port while running ifbtest. This combination causes SunVTS to return incorrect errors.




ifbtest Test Requirements

Disable all screen savers before testing any graphics device. To disable the Solaris screen saver, type the following at a UNIX prompt:

# xset s off

To turn Power Management off, type the following at a UNIX prompt:

# xset -dpms

The display resolution must be 1024x768 or higher (the standard resolution). To change resolution, go to a UNIX prompt and type:

# fbconfig -res 1280x1024x76

For full instructions on testing frame buffers, see Testing Frame Buffers .

Preparation for ifbtest

You should complete a few steps in advance to ensure that ifbtest runs as smoothly as possible.

If you are running ifbtest in a window system (such as CDE):

If you are not running ifbtest in a window system:


ifbtest 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 ifbtest options are enabled.

FIGURE 30-1 ifbtest Test Parameter Options Dialog Box

TABLE 30-1 ifbtest Options

ifbtest Options

Description

Frame Buffer Memory test

Thoroughly tests the Expert3D video memory by using read and write requests. Tests for shorts or failed connections on the data bus by writing the following values to every address:

  • 0xFFFFFFFF

  • 0xFFFF0000

  • 0x0000FFFF

  • 0xFF00FF00

  • 0x00FF00FF

  • 0xF0F0F0F0

  • 0x0F0F0F0F

  • 0xCCCCCCCC

  • 0x33333333

  • 0xAAAAAAAA

  • 0x55555555

Tests for shorts or failed connections on the address bus by writing the offset of each memory location to each location and reading them back. This may also catch speed-related problems due to the volume of read/writes.

Errors in the test are reported as an error in a particular address, not attributed to a specific chip. To help distinguish bit-related errors, the errors are summarized to list which bits had at least one error in the test.

This test shows on the screen as random pixels.

Texture Memory test

This test is identical in process to the frame buffer memory test (above). Since this test produces no visible effect, rectangles are drawn in rows across the screen to show progress.

Display List Memory test

This test is identical in process to the frame buffer memory and texture memory tests (above), and is applied to direct burst memory.

This test takes little time and no progress is displayed.

Geometry Engine test

Loads diagnostic microcode into the geometry engine and confirms that the processor operates correctly. This is a pass/fail test.

This test takes little time and no progress is displayed.

Rasterization test

Renders many primitives with minimal fragment processing, to test the rasterization of the primitives.

The primitives used are:

  • Dots

  • Anti-aliased dots

  • Lines using all for line-drawing primitives

  • Anti-aliased lines using all for line-drawing primitives

  • Triangles, Quads, and Polygons in point, line, and fill modes

  • Rectangles

This tests for the following rasterization attributes:

  • pixel coverage

  • constant value registers for color, Z, and stencil

  • interpolation of color, Z, and texture coordinates along lines and spans in polygons

  • texture map sampling

Resulting images are compared against stored images. Errors indicate which operation type and value was being tested, and the coordinate of the failed pixel.

Pixel Processor test

Tries the various pixel processing operators using a variety of fragment values. This tests the following fragment processing operations:

  • Depth Buffering

  • Blending

  • Alpha Test

  • Color Test

  • Color Clamp

  • Logic Operations

  • Color Matrix and Bias

  • Color Table

  • Control Planes

  • Fast Clear

  • Stencil

  • Scissor Clipping

  • Desktop Clipping

  • Mask Clipping

  • Write Masks

  • Window Origin

  • Fog

  • Pixel Texture

  • Accumulation Buffer

  • Pixel Buffers

Resulting images are compared against stored images. Errors indicate which operation type and value was being tested and the coordinate of the failed pixel.



ifbtest 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, ifbtest is only available in Offline Functional test mode.

TABLE 30-2 ifbtest Test Modes

Test Mode

Supported?

Description

Connection

No

Not supported.

Functional

(Offline)

Yes

Runs the full set of tests.



ifbtest Command-Line Syntax

/opt/SUNWvts/bin/ifbtest standard_arguments -o dev= device_name , fbmem= E(nable)/D(isable) ,texmem= E/D ,dlmem= E/D ,geomeng= E/D , rasterization= E/D ,pixelproc= E/D ,subtest_repeat= number , test_repeat= number

TABLE 30-3 ifbtest 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 . There is no default.

fbmem= E/D

Enables or disables the frame buffer memory test.

texmem= E/D

Enables or disables the texture memory test.

dlmem= E/D

Enables or disables the display list memory test.

geomeng= E/D

Enables or disables the geometry engine test.

rasterization= E/D

Enables or disables the rasterization test.

pixelproc= E/D

Enables or disables the pixel processing test.

subtest_repeat= number

Defines the number of times to repeat each subtest. The default is 1.

test_repeat= number

Defines the number of times to repeat a test loop before passing. The default is 1.




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.