C H A P T E R  27

Expert3D Frame Buffer Test (ifbtest)


ifbtest Description

The 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 Multiple Frame Buffers.


ifbtest Test Preparation

Perform one of the following procedures prior to performing ifbtest to ensure that the test runs as smoothly as possible.


procedure icon  To Run ifbtest in a Window System

1. Turn Power Management off, if it is enabled. The following is an alternate way to turn Power Management off. Change allowFBPM=1 to allowFBPM=0 in
/platform/sun4u/kernal/drv/ifb.conf file.

2. Ensure that no other program is running that might modify the screen during the test.

3. Ensure that you have permission to lock the X server. ifbtest is designed to lock the X server during testing to prevent screen changes.

4. The JDS login window should not be displayed during testing.

5. Verify that the window system is only running on one Expert3D frame buffer.


procedure icon  To Run ifbtest From the Command Line

1. Turn Power Management off, if it is enabled. The following is an alternate way to turn Power Management off. Change allowFBPM=1 to allowFBPM=0 in
/platform/sun4u/kernal/drv/ifb.conf file.

2. Ensure that no other program is running that might modify the screen during the test.

3. Ensure that the Expert3D frame buffer being tested is not the console device. Console messages might modify the screen.


ifbtest Options

To reach the following dialog box, 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 might 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 27-1 ifbtest Test Parameter Options Dialog Box

Screenshot of the ifbtest Test Parameter Options dialog box


 


TABLE 27-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 disturbs user operation. For this reason, ifbtest is only available in Offline Functional test mode.


TABLE 27-2 ifbtest Supported Test Modes

Test Mode

Description

Functional

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 27-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.