Bugzilla – Bug 5190
Support Multi-Head in "nv" driver.
Last modified: 2007-05-30 15:35:34 UTC
The "nv" driver should support Multi-Head operation.
Using a Quadro NVS 280, trial and error suggests the "nv" driver doesn't
support using both heads at once and Google and Bugzilladiving appear to
Some incompetent groping about the source suggests it does know how to work
with both heads, just not both at the same time; which I take to mean that
it's possible (if not necessarily practical) to implement.
In my case dual-head on this card is what's keeping me on the proprietary
driver, so a way out would be very welcome. :-)
the xorg nv driver does not currently support dualhead. IIRC, the xorg driver
knows enough to get single head working correctly when the crtcs are mapped
oddly, but that's it. the open source beos nv driver supports it however. It
should be possible to port the needed changes over to get the xorg nv driver to
support it. Patches welcome :)
Apparently, this document:
claims that one can simply do what Chips 69030 driver does (the code doesn't
look complicated at all) and dual head with the same card should be possible.
The only problems is: how does one determine if one card actually has two heads
(in Chips 69030 case that's easy - it is that particular card)? Is that what
pNv->twoHeads flag is all about (I don't think so, but I have no idea what I'm
talking about anyway :-)? Or does it have to do with CRTCs?
Any hints welcome...
(In reply to comment #2)
> Apparently, this document:
> claims that one can simply do what Chips 69030 driver does (the code doesn't
> look complicated at all) and dual head with the same card should be possible.
> The only problems is: how does one determine if one card actually has two heads
> (in Chips 69030 case that's easy - it is that particular card)? Is that what
> pNv->twoHeads flag is all about (I don't think so, but I have no idea what I'm
> talking about anyway :-)? Or does it have to do with CRTCs?
> Any hints welcome...
that's basically correct as far as the non-chip specific code is concerned, but
that's the easy part. The hard part is figuring out how to program the two
crtcs and map the outputs, then divide it up such that the two instances of the
driver will work together properly (e.g. regsiters that have to be written in a
particular order, registers that are used by both crtcs, etc.). I find it is
often easier to get one instance of the driver to set up both crtcs, then work
on dividing it up to work with multiple instances.
As far as detecting whether a chip is capable of multiple heads or not, you
really have to know before hand which chips support dualhead and which do not.
In the case of the chips driver only the 69030 chip supports dualhead, for r128
chips only the m3 and m4 variants support dualhead. I suspect the twoHeads flag
does exactly that. Since the driver doesn't support dualhead, I think the flag
is used to make sure the crtc in use is mapped to the correct output.
Thanks for the info Alex. It does appear to be much more complicated then I
anticipated... Nevertheless (and although I never tried any X programming) I'll
try to find something that relates to this issue in BE sources (if you know
which files to pick, please feel free to point them out).
Also, if there is NVidia folks out there that would like to teach us how to/do
this in the open source driver, now is the time ;-)
As far as I can see, BE source for NVidia stuff should be here:
(In reply to comment #5)
> As far as I can see, BE source for NVidia stuff should be here:
beos driver also supports 3D:
*** Bug 5672 has been marked as a duplicate of this bug. ***
*** Bug 3174 has been marked as a duplicate of this bug. ***
Any chance that even if dual-head support is a while off, the driver could run
in single head mode rather than producing a corrupted display?
Reasons for this:
1. More obvious troubleshooting; with two displays plugged in and only one
working it is more apparent that the problem is dual-head related.
2. It seems that even if the NVidia driver is used, if a graphical boot sequence
is used e.g. RedHat's rhgb, the nv driver corruption will affect the system even
after the nvidia module has been loaded (RedHat bugzilla 218416
Sorry about the phenomenal bug spam, guys. Adding xorg-team@ to the QA contact so bugs don't get lost in future.
*** Bug 8458 has been marked as a duplicate of this bug. ***
The nv driver will support dual head via RandR 1.2 eventually for G80-based
cards, but we can't implement it for earlier cards. Sorry! Marking WONTFIX.
*** Bug 11107 has been marked as a duplicate of this bug. ***