ConfigurationOptions

Common Configuration Options

Below you find detailed descriptions of common configuration options. Along with the documentation of each option you find the name and the numeric option values to be used if you edit the configuration file in a text editor.

Performance Options

TCL mode (Transformation, Clipping, Lighting)

This option defines whether a hardware TCL-unit is used and how the implementation uses it. Four settings are supported:

The default setting is 3 which results in best performance. If you experience rendering errors try a lower setting and report a bug, stating which setting results in what kind of rendering problems.

Note: One well known problem is "depth fighting" observed in e.g. Tux Racer. We believe that the application is broken in this case. Set tcl_mode to 0 (Software) as a workaround.

Note 2: As usual before reporting a bug please make sure that it is not a known problem.

Frame Throttling

This option defines what happens, if the application submits rendering commands faster than the graphics engine can execute them. Without limitations the graphics engine could be several seconds behind the application's command stream. In an interactive application this is not acceptable. Imagine a simulation in which you turn the steering wheel and it takes one second before your car reacts. Therefore the application is forced to wait if it gets more than one frame ahead of the graphics engine. This waiting can be done in three different ways:

The default setting (Software IRQs) should be fine for most users. Usleeps can reduce the frame rate. Busy waiting doesn't reduce the frame rate but wastes CPU cycles in busy waiting loops (as the name indicates).

Synchronization with vertical refresh (swap intervals)

Synchronization with the vertical refresh can avoid visual "tearing" with fast motion. At the same time it limits the frame rate to (a fraction of) the vertical refresh rate. Applications can set a "swap interval" which means that buffer swaps occur no earlier than n vertical blanks after the previous swap. With this option you can disable swap intervals, choose a default swap interval of 0 or 1 or you can force the application to always wait for a vertical blank on every buffer swap:

Image Quality Options

Texture color depth

This option influences the choice of the internal texture format based on the application-supplied texture data and the application's preference for the interal texture format.

The first three settings affect the choice only if the application doesn't specify an internal texture color depth. The default setting 0 will prefer the same color depth as the frame buffer. The last setting forces 16 bit internal color depth even if the application requests a higher color depth.

There is a trade-off between image quality and performance here. A higher color depth means higher demands for memory size and bandwidth. Low texture color depth is most noticable if your application has textures with smooth gradients on them.

Default color reduction method

On a 16 bit frame buffer color reduction can take place in different ways. Colors can be rounded or truncated which means that if there is no perfect match for the desired color you will see a color that comes more or less close to it. This leads to visible edges in smooth gradients. The alternative color dithering can lead to large improvements of the visual quality. However, it may also introduce noise or a visible dithering pattern. The best choice may depend on the application.

Round or truncate colors

If colors are rounded then this option decides how the displayed color is chosen if there is no perfect match for the desired color.

Truncate will round each color component to the closest value that is still lower than the desired value. Round will choose the closest available value.

Color dithering

If colors are dithered then this option chooses the dithering algorithm.

The default setting 0 tries to compensate the rounding error of one pixel by biasing the rounding of the next pixel in the row. This may lead to a slightly noisy image and may introduce visible vertical patterns. Setting 1 is a variation that resets the error at the beginning of each new row. However, this setting looks broken on my Radeon 7500. Setting 2 uses a static pattern of rounding biases. This avoids the noise observed with setting 0 but the static pattern can be annoying espcially with low resolutions.