Hi all, the work on the new configuration infrastructure has come quite far in the last months but has got very little testing so far. I attached a short HOWTO document about how to obtain, install and test the config-0-0-1-branch, either from CVS or binary snapshots.
The following drivers support the new configuration infrastructure: mga, r128, r200, radeon. You may be disappointed by the little number of options escpecially in the mga and r128 drivers. One reason is that many old boolean options were summarized in a few enumeration options. The number of options is expected to grow after the branch has been merged. Also more drivers are going to adopt the new configuration system. However, before we feel confident enough to merge the branch we need more feedback. So please test it, your feedback is very welcome. Best regards, Felix ------------ __\|/__ ___ ___ ------------------------- Felix ___\_e -_/___/ __\___/ __\_____ You can do anything, Kühling (_____\Ä/____/ /_____/ /________) just not everything [EMAIL PROTECTED] \___/ \___/ U at the same time.
DRI config-0-0-1-branch HOWTO Felix Kühling (fxkuehl at gmx dot de) 30 September 2003 ============================= 1 Introduction 2 Obtaining and Installation 2.1 CVS 2.2 Snapshots 3 Testing and Trouble-Shooting 3.1 Testing the Installation 3.1.1 The driver supports configuration 3.1.2 xdriinfo is installed correctly and libGL.so was updated 3.2 Example Configurations 4 Graphical Configuration Appendix A: Example Configuration File ----------------------------------------------------------------------- 1 Introduction -------------- On the config-0-0-1-branch the development of a new configuration infrastructure for DRI is taking place. It introduces a consistent mechanism for configuring all DRI drivers using a XML-based configuration file and an interface for configuration GUIs to find out about the configuration options of installed drivers. Option descriptions are available in multiple languages, german and english so far. A first graphical configuration tool written in Python and Gtk+ is also available. This document is a brief guide how to obtain, install and test the config-0-0-1-branch. A technical design document can be found at http://user.cs.tu-berlin.de/~felixyz/dri/dri_config_design_rev4.html 2 Obtaining and Installation ---------------------------- 2.1 CVS You can download the source code via anonymous CVS and compile it yourself. Checkout the source code from the config-0-0-1-branch on dri.freedesktop.org: cvs -z3 -d:pserver:[EMAIL PROTECTED]:/cvs/dri login cvs -z3 -d:pserver:[EMAIL PROTECTED]:/cvs/dri co -r config-0-0-1-branch xc See http://dri.freedesktop.org/Software/DRIanoncvs for more details. Compile and install the source. See http://dri.sourceforge.net/doc/DRIcompile.html for details. If you changed the ProjectRoot directory in xc/config/cf/host.def make sure that $ProjectRoot/bin is in your $PATH. 2.2 Snapshots There are now binary snapshots of the config-0-0-1-branch for linux in http://dri.sourceforge.net/snapshots/bleeding-edge/: mga-config-*-linux.i386.tar.bz2 r200-config-*-linux.i386.tar.bz2 radeon-config-*-linux.i386.tar.bz2 rage128-config-*-linux.i386.tar.bz2 The other drivers don't support the new configuration infrastructure yet. To install a snapshot unpack the archive and run the contained install.sh script as root: tar -xjf <driver>-config-<date>-linux.i386.tar.bz2 cd dripkg ./install.sh Follow the instructions on the screen. You also need to install xdriinfo somewhere in your binary search path, e.g. /usr/local/bin. It can be downloaded bzip2 compressed from http://dri.sourceforge.net/snapshots/extras/xdriinfo.bz2. 3 Testing and Trouble-Shooting ------------------------------ 3.1 Testing the Installation 3.1.1 The driver supports configuration Run LIBGL_DEBUG=true glxinfo Among other messages you should see error messages that /etc/drirc and $HOME/.drirc were not found e.g.: libGL error: Can't open configuration file /etc/drirc: No such file or directory. libGL error: Can't open configuration file /home/felix/.drirc: No such file or directory. These messages are harmless but they indicate that the driver actually supports configuration. 3.1.2 xdriinfo is installed correctly and libGL.so was updated Run xdriinfo You should see a list of all screens on your display with their DRI driver names e.g.: Screen 0: radeon Run xdriinfo options <yourdriver> You should see a XML-document that describes the options supported by your driver. This document is primarily intended to inform configuration GUIs about available options. 3.2 Example Configurations In the appendix you find an example configuration file that lists all current options of all drivers with their default values. You can install it in $HOME/.drirc and start changing the configuration from there. You can make sections in the configuration file that refer only to one specific application. This is done by adding an "executable" attribute to the application element. Example: <driconf> <device driver="radeon" screen="0"> <application name="all"> <!-- This section applies to all applications. --> </application> <application name="all" executable="tuxracer"> <!-- This section applies only to tuxracer. It overrides options from earlier application sections. --> <option name="tcl_mode" value="0"/> </application> </device> </driconf> In this example tuxracer will run with software TCL. All other applications use the default setting, full hardware TCL. 4 Graphical Configuration ------------------------- There is also a graphical configuration tool written in Python with the Gtk+ toolkit. You can download it from http://fxk.de.vu/projects_cur_en.html. It contains its own installation instructions. Appendix A: Example Configuration File -------------------------------------- <driconf> <device driver="radeon"> <application name="all"> <!-- Debugging --> <!-- Disable 3D acceleration: bool [false] --> <option name="no_rast" value="false"/> <!-- Performance --> <!-- TCL mode (Transformation, Clipping, Lighting): enum {0:3} [3] --> <!-- 0: Software --> <!-- 1: TCL stage in MESA pipeline --> <!-- 2: Bypass MESA's pipeline --> <!-- 3: Bypass MESA's pipeline with state-based code generation --> <option name="tcl_mode" value="3"/> <!-- Frame throttling: enum {0:2} [2] --> <!-- 0: Busy waiting --> <!-- 1: Usleeps --> <!-- 2: Software interrupts --> <option name="fthrottle_mode" value="2"/> <!-- Synchronization with vertical refresh (swap intervals): enum {0:3} [2] --> <!-- 0: Never, FPS rulez! --> <!-- 1: Application preference, default interval 0 --> <!-- 2: Application preference, default interval 1 --> <!-- 3: Application preference, always synchronize with refresh --> <option name="vblank_mode" value="2"/> </application> </device> <device driver="r200"> <application name="all"> <!-- Debugging --> <!-- Disable 3D acceleration: bool [false] --> <option name="no_rast" value="false"/> <!-- Performance --> <!-- TCL mode (Transformation, Clipping, Lighting): enum {0:3} [3] --> <!-- 0: Software --> <!-- 1: TCL stage in MESA pipeline --> <!-- 2: Bypass MESA's pipeline --> <!-- 3: Bypass MESA's pipeline with state-based code generation --> <option name="tcl_mode" value="3"/> <!-- Frame throttling: enum {0:2} [2] --> <!-- 0: Busy waiting --> <!-- 1: Usleeps --> <!-- 2: Software interrupts --> <option name="fthrottle_mode" value="2"/> <!-- Synchronization with vertical refresh (swap intervals): enum {0:3} [2] --> <!-- 0: Never, FPS rulez! --> <!-- 1: Application preference, default interval 0 --> <!-- 2: Application preference, default interval 1 --> <!-- 3: Application preference, always synchronize with refresh --> <option name="vblank_mode" value="2"/> </application> </device> <device driver="r128"> <application name="all"> <!-- Performance --> <!-- Synchronization with vertical refresh (swap intervals): enum {0:3} [2] --> <!-- 0: Never, FPS rulez! --> <!-- 1: Application preference, default interval 0 --> <!-- 2: Application preference, default interval 1 --> <!-- 3: Application preference, always synchronize with refresh --> <option name="vblank_mode" value="2"/> </application> </device> <device driver="mga"> <application name="all"> <!-- Performance --> <!-- Synchronization with vertical refresh (swap intervals): enum {0:3} [2] --> <!-- 0: Never, FPS rulez! --> <!-- 1: Application preference, default interval 0 --> <!-- 2: Application preference, default interval 1 --> <!-- 3: Application preference, always synchronize with refresh --> <option name="vblank_mode" value="2"/> </application> </device> </driconf>