DRI missing!

Mike A. Harris mharris at redhat.com
Fri Oct 10 18:52:33 UTC 2003


On Fri, 10 Oct 2003, Elton Woo wrote:

>> XFree86 does not, and has never supported DRI on any Nvidia video
>> hardware.  You will never have the DRI extension for any Nvidia
>> card using any video driver with XFree86.  The only way to get 3D
>> acceleration with the Nvidia hardware you have is to use Nvidia's
>> proprietary video drivers (which do not use DRI, but use their
>> own method of doing direct rendering), or to use some other 3rd
>> party proprietary driver.
>
>... pardon my ignorance, Mike, but I've noticed this same error
>message when some screensavers are invoked. The instructions
>for installing the nVidia drivers, mention *removing* the reference 
>to DRI in  /etc/X11/SF86Config. Correct?

What error message?  What exactly is producing the error message?  
The X server in it's log file?  The screensaver(s)?  What?  Be 
specific.

As I said before, Nvidia *does not* use DRI period.  If you are
loading the DRI module in your X server config, which is the
default in all of our OS releases, then you need to comment out
that line in your config file if you're using Nvidia's drivers as
they do not use DRI, and it may or may not conflict with their
driver:

Change:
	Load "dri"
to:
	#Load "dri"

What that line does, is determines wether or not the X server 
will load the DRI X extension module.  It does NOT "enable DRI".  
It loads the DRI module, so that the X server has DRI extension 
support in case you are using a piece of hardware which the 
XFree86 supplied drivers support DRI on.  So for example, you can 
use a cirrus logic card with the "cirrus" driver, and have Load 
"dri" in your config file, and you do _not_ get DRI support for 
Cirrus Logic.  However, if the Cirrus Logic driver had DRI 
support in it, then having Load "dri" in the config file would 
provide the X server with the ability to allow you to use Cirrus 
DRI.

That's just an example to attempt to explain the DRI module.  
The only time the DRI module is needed, is if you are using a
video card and video driver which *does* support DRI, and you 
wish to use the DRI support of that driver.  If you do not want 
to use DRI, or DRI is not supported by the video driver you are 
using for the particular card you are using, the "Load dri" line 
will not give you DRI support, but it will not harm anything 
either.  Think of it like loading the iptables kernel module at 
boot time, but not using it.  Your kernel now has the ability to 
allow you to use the iptables command to set firewall rules.  
You don't need to actually use the iptables command nor set up a 
firewall, but your kernel has that ability.  Well, loading the 
DRI module into the X server allows your X server to have the 
ability to use DRI enabled video drivers.  It doesn't require 
that you do use them though.

For the case of the Nvidia module requiring you not load the DRI 
module, this is analogous to you deciding you want to use 
"ipchains" for a firewall instead.  So your kernel has iptables 
module loaded, and you're not using it. You want to use 
"ipchains" instead, and can't load the ipchains module because 
iptables and ipchains can not co-exist, and they provide similar 
functionality.

Well, the Nvidia binary modules do more or less the same thing.  
They provide their own kernel module, and their own XFree86 
modules which talk to their kernel module.  The interfaces used 
are proprietary to Nvidia, and are not DRI nor are they 
compatible with DRI.  So they recommend you comment out the DRI 
module in the same way one would recommend you unload iptables if 
you want to use ipchains instead.

I've went into the level of detail I have, because a _lot_ of 
people ask about this all of the time, and DRI/DRM and related 
stuff is quite complicated, so it is perfectly understandable 
that there will be some confusion about it.  I hope I've helped 
some of you to at least understand the XFree86 X server DRI 
module and wether or not you should load it, etc.  ;o)

Take care,
TTYL


-- 
Mike A. Harris     ftp://people.redhat.com/mharris
OS Systems Engineer - XFree86 maintainer - Red Hat





More information about the test mailing list