Q: What is DRI, DRM, DDX?
A: DRM stands for Direct Rendering Modules and is the kernel modules installed
by the drm-kmod port. These provide support for the DRI (Direct Rendering
Infrastructure) in XFree86 4.0 to provide fast, secure hardware 3d acceleration.
Sometimes "DRI" is used to refer to the entire DRI system (X Server DDX, DRM, client
DRI modules), sometimes the userland parts, or sometimes just for the client 3d modules
(/usr/X11R6/lib/modules/dri/*_dri.so) which are loaded by programs linked with libGL.
The DDX is the card-specific module (/usr/X11R6/lib/modules/drivers/*.o) in the X Server
that provides 2d support and infrastructure for the client side part of the DRI.
Q: I followed the instructions, but any 3d program I run is really
slow. What's wrong?
A: Well, it means something (almost anything) was wrong with
your configuration. Go through the Troubleshooting
page, and email me if you can't figure out the problem with that.
Q: When I try to load the modules, I get "can't load /usr/local/lib/drm/r128.ko:
Exec format error" or something similar.
A: This highly useful (grumble) error message actually means that a symbol
from the module wasn't resolved. This is usually because of missing module
dependencies. In theory the module would pay attention
to its dependencies and autoload agp or linux as necessary, but at
least on -stable it doesn't. Add the module lines mentioned in the kernel
section of the Install page.
Q: Does the 3dfx driver need AGP? Does it help to have AGP loaded?
A: No. The 3dfx driver never uses AGP, even if you have
an AGP card. It may be possible that with a lot of work glide could
be updated to support AGP, but at the moment it doesn't, and I don't
expect gains to be significant.
Q: When I try to run a Glide program, it complains about SST not
being found or fails in some other way.
A: The Glide used for the DRI is not the same Glide that
was used for Glide applications. The DRI Glide library does not support being used
except by the DRI and traditional Glide libraries cannot be used under XFree86-4. If you
installed the DRI glide from ports/graphics/glide3, remove it and use ports/x11-servers/driglide
Q: When I start X with the DRI enabled, the machine just reboots
A: You probably have -stable before 4.6 and an AMD processor and are experiencing
one of a couple of problems with AMD or VIA chipsets. Update to 4.6-stable.
Q: When I enable DRI, I get a sig11 from X, and the log includes
a line like "Symbol vbeFree from module /usr/X11R6/lib/modules/drivers/mga_drv.o
A: For some unknown reason, sometimes the drivers aren't
automatically picking up all the dependencies they need. It can usually
be fixed by adding more Load lines to the Modules section of XF86Config,
like the ones below. For a list of modules that you might be interested
in for fixing this, look in /usr/X11R6/lib/modules. To find a specific
symbol, the nm command should help. I think I have still seen
this error on -stable with 4.2.0.
Q: When I unload the modules my system panics.
A: It's fixed in -current and DRI CVS, but hasn't been backported to
Q: I installed XFree86 4.2.0 and now my system crashes when I
start with DRI enabled.
A: You need drm-kmod-0.9.6, available in ports. It fixes a (stupid) bug I made
in the earlier drm-kmod ports.
Q: With my ATI card and DRI enabled, I often get these errors in my
system log: "error: [drm:radeon_cp_indirect] *ERROR* process 97092 using
buffer owned by 0"
A: This is a bug in the DRI where the X Server is using buffers the kernel
thinks is unused. Luckily it doesn't cause any problems besides some
log messages, and a little graphical mess for some people. Fixed in DRI CVS.
Q: I have the agp module loaded, but when I
load the DRM it complains that agp was not available.
A: There is a problem with the AGP code in FreeBSD where if the module is
loaded after boot time it won't work. Instead, include it in your kernel config
(device agp) or add agp_load="YES" to your /boot/loader.conf