C H A P T E R  5

Using Sun XVR-1200 Graphics Accelerator Features

This chapter provides Sun XVR-1200 graphics accelerator feature information.


Streaming Methods

There are three methods described in this section for streaming video from which to choose with the Sun XVR-1200 graphics accelerator. This section lists the options:

The following section, Setting Up Streaming Methods, describes how to set up these streaming methods.


Setting Up Streaming Methods

When there are two Sun XVR-1200 graphics accelerators in a system, they are numbered from 0 and by ones (0, 1, 2, 3, ,...)

Block diagram showing frame buffer Stream A and Stream B output to monitors with different resolutions.

Setting Up Single Video Output (Default)

This enables the first DVI-I port 1 output only. This is the default the system uses if no fbconfig commands have been given, or after fbconfig -dev jfb0 -defaults.

To set up single video output, do the following:

1. If enabled, disable doublewide mode.

This disables doublewide mode, but maximizes sample density. Use -defaults to get the maximum sample size of 16. Type:

host% fbconfig -dev jfb0 -defaults

2. Set the desired screen resolution. Type:

host% fbconfig -dev jfb0 -res 1280x1024x76

To find all possible Sun XVR-1200 graphics accelerator resolutions, type:

host% fbconfig -res \?

Setting Up Two Video Streams Over One Large Frame Buffer

This enables two monitor support without the use of Xinerama software. This means that the Sun XVR-1200 graphics accelerator creates one wide (or tall) frame buffer, displayed across two screens.

To set up two video streams over one frame buffer, do the following:

1. Enable both streams, sharing a single frame buffer. Type:

host% fbconfig -dev jfb0 -doublewide enable

-offset xval yval

This is only implemented in -doublewide and -doublehigh modes. For
-doublewide, xval is used to position the rightmost stream. Negative is left (overlaps with the left stream). For -doublehigh, the yval is used to position the bottom stream. Negative is up (overlaps with top stream). The default is [0, 0].

2. Set the desired screen resolution. Type:

host% fbconfig -dev jfb0 -res 1280x1024x76

Setting Up Two Independent Video Streams

This allows independent resolution and sample density for each stream.



Note - This streaming method is not supported in Xinerama on a single board. X window system and Sun OpenGL for Solaris performance may be noticeably degraded in this mode.

Set up two video streams over one large frame buffer whenever possible for a dual stream configuration. See Setting Up Two Video Streams Over One Large Frame Buffer.



To set up two independent video streams, do the following:

1. To enable both streams, both devices /dev/fbs/jfb0a and /dev/fbs/jfb0b must appear in the /etc/dt/config/Xservers file.

As superuser, modify the Xservers file. For example:

# cd /etc/dt/config
# vi + Xservers
:0 Local local_uid@console root /usr/openwin/bin/Xsun -dev /dev/fbs/jfb0a -dev /dev/fbs/jfb0b

2. Select an independent screen resolution (and sample density, if desired) for each frame buffer. Type:

host% fbconfig -dev jfb0a -res 1280x1024x76
host% fbconfig -dev jfb0b -res 1152x900x66


Dynamic Multisample Antialiasing

Multisampling (full-scene dynamic multisample antialiasing) removes the jagged edges on 3D data. An image is sampled at a higher resolution than the screen, typically four to 16 samples per pixel. This method yields improved images, but at the price of possibly increased render time.

The Sun XVR-1200 graphics accelerator has 128 Mbytes of memory for the frame buffer so that the image can be multisampled at up to 16 samples per pixel in a single pass, depending on the resolution. The higher number of samples per pixel, the better the image quality but the longer the rendering time (and the more memory is consumed). Depending on the screen resolution (TABLE 1-1), the number of samples per pixel, or sample density, can be increased to improve image quality.

To invoke multisampling, use the fbconfig command -multisample and -samples options. You can enable multisample mode for all Sun OpenGL for Solaris applications.

fbconfig controls frame buffer memory consumption (at the time the X window system starts).

Enabling Multisampling for All Sun OpenGL for Solaris Applications

single-step bulletUse fbconfig to enable all Sun OpenGL for Solaris application windows for multisampling.

host% fbconfig -dev jfb0 -multisample forceon

This enables multisampling for all Sun OpenGL for Solaris applications.

Multisampling

Multisample allocation occurs when the system is started or restarted. The configuration samples-per-pixel parameter specifies the depth that is pre-allocated. TABLE 5-1 describes the fbconfig -multisample options.

-multisample [available | disable | forceon]

TABLE 5-1 Multisample Options

Option

Description

available

Multisample is possible but is selected on a per application basis. A fixed numbers of samples is used per pixel.

disable

No multisample is possible. disable is the default.

forceon

Multisampling for all Sun OpenGL for Solaris windows. A fixed number of samples is used per pixel. forceon is the default. (force is an acceptable abbreviation for this option.)


Sample Density

The -samples option specifies the number of samples per pixel to allocate when multisample is not set to disable. The available -sample sizes are 1, 2, 4, 8, or 16.

-samples [1 | 2 | 4 | 8 | 16 | adaptive]

The maximum sample size is 16 samples per pixel. Using -samples 16, the sample size is automatically allocated based on the frame buffer memory and video resources available to the stream as the window system starts up. Though the allowable choices are 1 to 16, a very high sample density can be allocated only at low resolution. See Disabling Multisampling.

The adaptive option is the default setting for -samples. When you use the -samples adaptive option, two samples are preallocated per pixel (extra samples are then assigned to pixels that need it).

See TABLE 1-1 for a list of how many samples per pixel are supported at various maximum 3D resolutions. The TABLE 1-1 heading "Dual screen" refers to doublewide or doublehigh displays.

3. Log out, then log back in to restart the X window system for the changes to take effect.

Default Color Depth

Use the -defdepth option to set the default depth (bits per pixel) on the device. Possible values are 8 or 24.

-defdepth 8 | 24

Log out of the current window system session and log back in for the change to take effect. Any depth setting in the Xserver command line takes precedence over what is set using fbconfig. The default is 8.

Disabling Multisampling

When you disable multisampling, no multisample rendering is possible. Only one sample per pixel is allocated, despite any -samples option value.

1. To disable multisampling, type:

host% fbconfig -dev jfb0 -multisample disable

2. Log out, then log back in.


Checking Device Configuration

Use fbconfig to check the X window system (-propt) and Sun XVR-1200 graphics accelerator (-prconf) device configuration values.

The fbconfig -propt option displays the values of all options (for the specified device) saved in the OWconfig file. These are the values the X window system will use the next time it starts on that device:

host% fbconfig -dev jfb0 -propt
 
--- OpenWindows Configuration for /dev/fbs/jfb0 ---
 
OWconfig: machine
Video Mode: 1920x1200x60
Accum: Enabled (allocate an accumulation buffer if possible)
 
Multisample Information:
   Multisample Mode: Disabled (multisample visuals will not be available)
   Samples Per Pixel: N/A (multisampling disabled)
 
Screen Information:
   DoubleWide: Disabled
   DoubleHigh: Disabled
   Output Configuration: Direct
   Offset/Overlap: [0, 0]
 
Visual Information:
   Default Visual: Non-Linear Normal Visual
   Visual Ordering: Linear Visuals are last
   Gamma Correction Value: 2.22
   Gamma Correction Table: Available
   Fake8 rendering: disabled
   Default Visual Depth (defdepth): 8

fbconfig -prconf option displays the current Sun XVR-1200 graphics accelerator device configuration. If certain values (for example, resolution and sample density) differ from those displayed in -propt, it is because those values have been configured since the X window system started.

host% fbconfig -dev jfb0 -prconf
 
--- Hardware Configuration for /dev/fbs/jfb0 ---
 
Type: XVR-1200
Sun Serial Number: 3753101012803
Hardware Revision: -02 rev50
Manufacture Date: Tue Jan 28 13:15:52 2003
PROM Information: @(#)jfb.fth 1.8 02/10/18 SMI
 
Monitor/Resolution Information:
   EDID Data: Available - EDID version 1 revision 3
   Monitor type: Sun P/N 365-16981 S/N 02190012336
   Current resolution setting: 1920x1200x60
Monitor possible resolutions: 1024x768x60, 1024x768x70, 1024x768x75, 
   1152x900x66, 1280x1024x60, 1280x1024x75, 1280x1024x76, 640x480x60, 
   1920x1200x60, 1920x1200x60_240T, 1600x1200x60, 800x600x75, 
   1920x1080x60
 
Framelock Configuration:
   Slave Mode: Disabled
 
Memory Information:
   Total Video Memory: 134217728
   Video Memory Used: 18677760
   Total Texture Memory: 268435456
   Texture Memory Used: 0
   Total Display List Memory: 33554432