GPU and Feature Tables
Overview
There are a set of configuration files in the Second Life install folder that control the default settings and overrides for various graphics chips on different platforms:
- gpu_table.txt - assigns a "class" to a graphics chip
- feature_table(_linux/_mac/_xp).txt - defines specific features to be enabled or disabled by default based on a variety of conditions
GPU Table
The GPU table is uniform for all platforms and contains a list of regular expressions that match GPU names reported by graphics drivers to a specific chip or category of chips. Each entry is of the format:
<recognizer name> <regular expression> <class> <supported>
These fields are defined as:
- recognizer name - a human readable identifier for that chip
- regular expression - a regular expression used to match driver reported names
- class - a simplistic categorization of the chip's capabilities (see below)
- supported - 0 or 1, indicating unsupported or supported. If a name reported by the driver cannot be matched to a regular expression in the table, it is assumed to be unsupported
GPU Class
There are currently four classes of GPU:
- Class 0 - low power or obsolete hardware, defaults to "low" detail.
- Class 1 - Low power or "economy" hardware, defaults to "mid" detail.
- Class 2 - Mid-range or "mainstream" hardware, defaults to "high" detail.
- Class 3 - High-end or "enthusiast" hardware, default to "high" detail.
Issues
Since it is impractical to test every graphics chip in the wild today, many chips will be improperly categorized, and some will be missing outright. This is particularly problematic with new chips. Often, when upgrading your graphics hardware to the latest and greatest, the gpu_table will not contain an entry for your new (and very capable) hardware, which will cause your graphics settings to default to "low." It's also important to note that the order of declaration of regular expressions matters. Strings are checked top to bottom in the table, and checking stops as soon as the first match is found. Therefore, it is important to put more general regular expressions lower in the list than more specific ones.
Feature Table
The feature table contains a list of settings to apply on various conditions. At startup, if the client is being run for the first time or the "version" number at the top of the feature table is greater than the version number of the previous session, the viewer will run through this list and apply the specified settings based on the configuration of the machine. The table is divided into "list" sections that each contain a set of settings (as defined in "settings.xml") and their suggested values, as well as whether or not the "feature" denoted by that setting is available. This controls whether or not certain preferences will be disabled in the UI and allows for fine control over different settings based on a variety of factors, such as installed graphics chip, GL version, amount of available memory, etc.
Platform Specific Tables
- featuretable.txt -- used for Windows 7 and Windows Vista
- featuretable_xp.txt -- used for Windows XP
- featuretable_linux.txt -- used for Linux
- featuretable_mac.txt -- used for OSX