C H A P T E R  6

Suntrademark XVR-4000 Graphics Accelerator Test (zulutest)

The zulutest does functional testing of the Suntrademark XVR-4000 graphics accelerator device. zulutest detects and adapts to the video modes of Sun XVR-4000. All zulutest tests can be performed 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 zulutest using Control-C. Turn off all other keyboard input if the CDE user interface is running on the unit being tested. Test accuracy is checked using a checksum algorithm. Possible locations of failing pixels are identified, in addition to the failing FRU.

zulutest is only available in 64-bit mode.

caution icon

Caution - Do not run any 3D graphics applications screen lock or screen saver programs that uses the Sun XVR-4000 graphics accelerator port while running zulutest. This combination causes SunVTS to return incorrect errors.

zulutest Test Requirements

Disable all screen locks and 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, please refer to the Testing Frame Buffers of the SunVTS 5.1 Test Reference Manual.

To start SunVTS with the vtsui, and without the vtsk, you must add the host name to xhost as follows: xhost + host_name

Using zulutest Without X-Windows

If you perform zulutest on a system that was powered on without running X-Windows, you must bring up X-Windows on the Sun XVR-4000 Graphics Accelerator device under test and kill the X-Windows process before performing zulutest. Otherwise, the Convolve subtest will fail, and other subtests may also fail.

Note - You must enable multisampling with the fbconfig command before performing the following workaround. To perform zulutest with X-Windows (CDE) the following workaround is not necessary.


To bring up X-Windows on the Sun XVR-4000 Graphics Accelerator device under test, enter the following command:

/usr/openwin/bin/Xsun -dev /dev/fbs/device_name &

It takes 30 to 45 seconds before Xsun comes up. To kill the Xsun process, enter the following command:

pkill -KILL Xsun

Once the Xsun process is killed, the zulutest can be performed without the incorrect subtest errors.

The Sun XVR-4000 Graphics Accelerator cannot perform video read back in Interlaced and Stereo modes because the Convolve subtest cannot keep up.

For zulutest to be able to perform the Convolve subtest, multisampling must be enabled.

zulutest 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 zulutest options are enabled except for the Stereo test.

FIGURE 6-1 zulutest Test Parameter Options Dialog Box

Screenshot of the afbtest Test Parameter Options dialog box.

TABLE 6-1 zulutest Options

zulutest Options


3DRAM test

The 3DRAM test thoroughly tests the video memory in the Sun XVR-4000 graphics accelerator 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. Asecond 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 in the following access modes:

  • SFB Stencil 8

  • SFB WID 16

  • FB RGBAZ 64 - Buffer A

  • SFB RGBAZ 64 - Buffer B

3DRAM Logic test

The 3DRAM Logic test provides logical functionality to the Sun XVR-4000 graphics accelerator. 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

Each function is tested 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, in ROP RGB new==old there are three possible values: new < old, new == old, and new > old. Each of these cases are tested. Errors in this subtest are attributed to the 3DRAM.

Cafe test

This test will do non-destructive testing of the Cafe memory (RDRAM) and Cafe.

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.

Errors in this test are attributed to the Texture Memory and the Texture Memory subsystem.

Rendering Pipeline test

Each primitive is tested thoroughly by exercising the following:

  • Simple Triangles

  • 2d primitives

  • 3d Primitives (such as Triangles, 3d lines etc.)

  • Vertex Processor

Errors in this test are attributed to the pipelines of the Sun XVR-4000 graphics accelerator and/or 3DRAM.

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 the pipelines of the Sun XVR-4000 graphics accelerator and/or 3DRAM.

Fragment Processor test

Fragment Processor test, a subtest, exercises the fragment pipe of each pipeline of the XVR-4000's.

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 and/or 3DRAM.

Lighting test

The Lighting test exercises Cafe and lighting microcode. This test lights an object with maximum number of lights that XVR-4000 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, FBC3 and RD RAMs.

Convolve test

Convolve test tests the Convolve chips functionality (convolution filters, Color look up tables and Gamma look up tables) along with the video read back functionality of convolves and master chip. This sub test renders an image which is made up of lines drawn radial. Then a block in the center of the image is super sampled and video read back is initiated. Once the video read back data is available to the zulutest, zulutest will generate checksum and compares with the checksum generated on known good system.Errors in this subtest can be attributed to FBC3, 3DRAM, Convolve, Master.

Stereo test

Currently, this sub test is not active. 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 in the Parameter Options dialog box. This test temporarily switches the monitor into Stereo mode, renders a Stereo image and after displaying the image for five seconds, restores the monitor to its previous resolution.

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

TABLE 6-2 zulutest Supported Test Modes

Test Mode



Runs the full set of tests.

zulutest Command-Line Syntax

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

TABLE 6-3 zulutest Command-Line Syntax




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


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 Cafe

  • n--0x00008 Texture Memory SDRAM

  • n--0x00010 Rendering Pipeline

  • n--0x00020 Texturing Pipeline

  • n--0x00040 Fragment Pipeline

  • n--0x00080 Lighting

  • n--0x00100 Convolve

  • n--0x00200 Stereo

More than one subtest can be selected by ORing their subtest numbers. Example: n = 0x00011 indicates 3DRAM and Rendering Pipeline tests. A hex number must start with 0x, decimal numbers are also acceptable. [n = 0xff]

If looping on a test, the verbose mode is disabled.

F=n : Number of times to repeat each subtest [n = 1].

B=n : Number of times to repeat test loop before passing [n = 1].

P=pattern : test pattern - r for random, 0 for 0x00000000, 3 for 0x33333333, 5 for 0x55555555, or 9 for 0x9999999. [pattern=r]


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


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


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 - 64-bit tests are located in the sparcv9 subdirectory
/opt/SUNWvts/bin/sparcv9/testname, or the relative path to which you installed SunVTS. 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 the "32-Bit and 64-Bit Tests" section of the SunVTS 5.1 Test Reference Manual (816-5145-10).

Note - Errors returned by zulutest 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 Sun XVR-4000 graphics accelerator.