Summary: | Support Multi-Head in "nv" driver. | ||
---|---|---|---|
Product: | xorg | Reporter: | Terje Bless <link> |
Component: | Driver/nVidia (open) | Assignee: | Xorg Project Team <xorg-team> |
Status: | RESOLVED WONTFIX | QA Contact: | Xorg Project Team <xorg-team> |
Severity: | enhancement | ||
Priority: | high | CC: | alexdeucher, Bernd.Bartmann, bjohnson, bojan, drewelmore, gajownik, lance, M.Schouten, rodrigo, sebastian, wguy4biz |
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
Whiteboard: | |||
i915 platform: | i915 features: |
Description
Terje Bless
2005-11-29 12:42:10 UTC
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: http://xorg.freedesktop.org/wiki/DriverDevelopment 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: > > http://xorg.freedesktop.org/wiki/DriverDevelopment > > 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: http://svn.berlios.de/viewcvs/haiku/haiku/trunk/src/add-ons/accelerants/nvidia/ http://svn.berlios.de/viewcvs/haiku/haiku/trunk/src/add-ons/kernel/drivers/graphics/nvidia/ (In reply to comment #5) > As far as I can see, BE source for NVidia stuff should be here: > > http://svn.berlios.de/viewcvs/haiku/haiku/trunk/src/add-ons/accelerants/nvidia/ > http://svn.berlios.de/viewcvs/haiku/haiku/trunk/src/add-ons/kernel/drivers/graphics/nvidia/ more info: http://www.bebits.com/app/3636 http://www.bebits.com/app/1401 beos driver also supports 3D: http://www.bebits.com/app/4129 *** 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 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=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. *** |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.