The current driver for Matrox G400 and G200 is provided by the "Utah" Accelerated X Open Source group, hosted at http://glx.on.openprojects.net/. This driver offers a bunch of options, and is still under development. There are several components, some of them optional, which are installed in your system: the X server, the GLX module, the GL library, AGP devices, or DMA configuration. We do not install any of these components, and at the moment provide only a GL library with the game. We also use only agpgart and avoid both newagp and DMA, both of which have stricter system requirements. The source to generate the matching GLX and devices for the GL libraries we shipped is provided below. In all likelihood, we will replace them soon with a more current snapshot, following internal tests. We hope that the following instructions will aide you in deciding which configuration to use.
For further information see the FAQ at http://utah-glx.sourceforge.net/faq.html. There is also a guide for setting things up for Quake3 (test version), at http://www.execpc.com/~tz/linglxqs.txt.
GLX for Matrox has no special requirements, as long as you use a recent XF86_SVGA-3.3.5 server for your distribution.
The "Utah" GLX requires a snapshot of the Mesa sources for compilation. See our Mesa page for references.
You will then need the GLX source itself, and, if you intend to use AGP support, the source for a AGP related device. If you intend to use a DMA configuration (which might require changing your LILO boot parameters), please consult the "Utah GLX" pages at http://utah-glx.sourceforge.net/. The "Utah" GLX team is in the process of replacing the agpgart device with newagp (which requires you to upgrade your system to a recent, unstable kernel), again, please consult their documentation and mailing list archives. Currently, we offer assistance for the agpgart solution only.
You can download the GLX source snapshot glx-src-991121.tar.gz we are testing our games with. There will be more recent snapshots in the future, pending internal testing. You can obtain daily, but usually untested snapshots from the CVS or pre-packed at http://utah-glx.sourceforge.net/download.html, in particular http://matroxusers.com/driver/linux.html. Matrox' site at http://www.matrox.com/mga/drivers/3rd_party/glx.htm also offer untested daily snapshots.
If you intend to use DMA, or newagp, or if you are using a kernel that has AGP/GART support already, please skip this section.
Unpack glx-src-991121.tar.gz in a directory of your choice. Do
cd glx-src-991121 cd gartto get into the AGP/GART device directory. Check the Makefile.loki and add SMP support, and/or remove MODVERSIONS, depending on your kernel configuration. We tested with 2.2.13 kernels, a recent stable kernel should work. Use uname -r to find out what kernel you are using. To compile the module, just domake -f Makefile.loki agpgart.oYou should now have an agpgart.o file. As root, docp agpgart.o /lib/modules/[kernel_version]/misc/where [kernel version] is the output of uname -r. You might also want to add the following line to your module configuration file, e.g. /etc/conf.modules.alias char-major-174 agpgartNext, you will have to create the device in /dev/. Please domake -f Makefile.loki /dev/gart ls -l /dev/gartThe result should be something like this (be sure to check permissions):crw-rw-rw- 1 root root 174, 0 Nov 18 16:51 /dev/gartNow you can load the module:/sbin/insmod agpgart.o /sbin/lsmodand you should get something like this output:Module Size Used by agpgart 6096 0 (unused)To test your device:make -f Makefile.loki testgart ./testgartand the result would be something likeGart size: 64 Allocated 64 megs of GART memory MemoryBenchmark: 187 mb/s MemoryBenchmark: 191 mb/s MemoryBenchmark: 191 mb/s Average speed: 189 mb/s Testing data integrity : passed.Congratulations, you have working AGP/GART support now.Step 4: Install GLX/GL
In the directory where you unpacked glx-src-991121.tar.gz, do
cd glx-src-991121 cd glxThe "Utah" GLX comes with a very convenient configuration setup. Please to check whether you have the necessary tools installed on your system, e.g.automake --version autoconf --version libtool --versionThen, for the AGP GART configuration we describe here, use./configure --with-mesa=[mesa-3.2-src] --enable-agp makewhere [mesa-3.2-src] is the location of the Mesa 3.2 source snapshot you obtained. Once the compilation is finished, use make install to install the GL library and GLX module in your system.Next, check your XF86_Config file (usually located in /etc/X11/ and/or /usr/X11R6/lib/X11/) for an entry like
Section "Module" Load "glx.so" EndSectionYou will have to restart your X server, as the GLX module is only loaded at startup. As soon as the X server is up again, doxdpyinfo | grep -i glx xpyinfo | moreto check whether the GLX extension is now listed as supported:number of extensions: 20 ... GLX ...Finally, you should copy the new GL into the local directory of the games that support direct loading of a driver.cp libGL/libGL.so.1.0 /usr/local/games/quake3/libMesaMatroxGL.so.3.2.991125 cp libGL/libGL.so.1.0 /usr/local/games/HereticII/gl_drivers/libMesaMatrox.soTo force using the new GL driver, specify it from the commandline, e.g./usr/local/games/quake/quake3 +set r_gldriver libMesaMatroxGL.so.3.2.991125 //usr/local/games/HereticII/heretic2 +set gl_driver libMesaMatrox.soYou will need a patched version of HereticII due to dynamic linkage requirements of GL/GLX combos, and you should make sure to use the Quake3 point release.Step 5: Alternatives
Matrox has announced a DRI-only driver to be released in 2000.
Step 6: Troubleshooting
If by any means possible, please check the game output to the console. Please look for the output of GL_VERSION, GL_RENDERER and GL_VENDOR on the console. You could also try the news://news.lokigames.com/loki.games.* newsgroups for advice.