Opened 14 years ago

Closed 14 years ago

#4052 closed bug (fixed)

Dual head video not working with GeForce FX5200 AGP

Reported by: someguy Owned by: rudolfc
Priority: normal Milestone: R1
Component: Drivers/Graphics/nVidia Version: R1/pre-alpha1
Keywords: Cc:
Blocked By: Blocking:
Platform: x86


I have an FX5200 with 2 analog outputs and two LDC displays (1280 x 1024). When booted in BeOS R5, both displays operate as expected in dual head mode. When booted in Haiku R31342, one display is black while the other works fine. The dual head configure application (from bebits) does not believe the card is even capable of dual head operation when booted into Haiku.

I have a GeForce 8400 GS with one analog and one digital output, and I get the same behavior.

I'm very willing to help debug the issue, just let me know what I need to do to help.

Attachments (1)

syslog (176.2 KB ) - added by someguy 14 years ago.

Download all attachments as: .zip

Change History (15)

comment:1 by scottmc, 14 years ago

Can you post the output of listdev, that might give some useful info. Also the syslog may be helpful as well.

by someguy, 14 years ago

Attachment: syslog added


comment:2 by someguy, 14 years ago

Here is the listdev output:

device Serial bus controller (SMBus) [c|5|0]

vendor 8086: Intel Corporation device 2443: 82801BA/BAM SMBus Controller

device Serial bus controller (USB Controller, UHCI) [c|3|0]

vendor 8086: Intel Corporation device 2442: 82801BA/BAM USB Controller #1

device Mass storage controller (IDE interface) [1|1|80]

vendor 8086: Intel Corporation device 244b: 82801BA IDE U100 Controller

device Bridge (ISA bridge) [6|1|0]

vendor 8086: Intel Corporation device 2440: 82801BA ISA Bridge (LPC)

device Input device controller [9|80|0]

vendor 1102: Creative Labs device 7002: SB Live! Game Port

device Multimedia controller (Multimedia audio controller) [4|1|0]

vendor 1102: Creative Labs device 0002: SB Live! EMU10k1

device Network controller (Ethernet controller) [2|0|0]

vendor 10b7: 3Com Corporation device 9200: 3c905C-TX/TX-M [Tornado]

device Serial bus controller (FireWire (IEEE 1394), OHCI) [c|0|10]

vendor 104c: Texas Instruments device 8020: TSB12LV26 IEEE-1394 Controller (Link)

device Bridge (PCI bridge, Normal decode) [6|4|0]

vendor 8086: Intel Corporation device 244e: 82801 PCI Bridge

device Display controller (VGA compatible controller, VGA controller) [3|0|0]

vendor 10de: nVidia Corporation device 0322: NV34 [GeForce FX 5200]

device Bridge (PCI bridge, Normal decode) [6|4|0]

vendor 8086: Intel Corporation device 1131: 82815 815 Chipset AGP Bridge

device Bridge (Host bridge) [6|0|0]

vendor 8086: Intel Corporation device 1130: 82815 815 Chipset Host Bridge and Memory Controller Hub

comment:3 by stippi, 14 years ago

The problem may be something else and maybe it's not very hard to fix. The Dualhead stuff was implemented by encoding some additional options in the flags argument for a screen mode (IIRC). Similarly, the Dualhead configuration utility detected graphics cards which supported the additional flags in some way. I don't remember how that worked. In any case, the Haiku Screen preflet actually inherited some or even all of that code. It's supposed to display more options when it detects a graphics card capable of the dual head configurations. I believe all of this may have not been properly tested when changes were done on the preflet and functinoality may have been lost along the way. So the first thing I'd do is trace through the Haiku Screen preflet code to see why you don't see dual head controls for your card. And once that is figured out, the app_server may need to be adjusted to properly store and restore the screen mode flags where the dual head configuration is encoded. If the Dualhead utility from BeBits contains some additional code for NVidia boards, then IMHO it should be integrated into the Haiku Screen preflet, or the Radeon and NVidia drivers should be changed so support the same API. It's a long time ago that I looked, but I believe this may already be the case.

comment:4 by someguy, 14 years ago

I glanced at the screen perflet code and it looks to specifically handle only Radeon graphics cards for multimon support. There's some "danger will Ronbinson" messages to this effect surrounding the multimon.x files as well.

I changed Dualhead Setup by commenting out the check for dual head support so that the buttons were active/selectable. It was unable to put the displays in dual head mode (though it certainly tried).

comment:5 by rudolfc, 14 years ago

Hi guys,

I am aware of this problem. Actually, AFAIK, Haiku uses Thomas his method with is entireley different from what I have in my driver and the Dualhead Setup util. Thomas once explained it to me at BG but I still have to have a look at it.

Since back then BeOS R5 is phased out more or less, so I think maybe it's time to modify my driver to work like the radeon one as far as is possible. OTOH: Why can old programs nolonger set modes??? It should have worked as far as I know...

For instance the GFX benchmark program I use has the same problem: it works OK apart from the modesetting stuff. Apparantly modesetting is not compatible to R5/dano.



comment:6 by stippi, 14 years ago

Mode setting is not supposed to be broken, so maybe it's something worth looking into before looking at any other issues with this. To be honest, though, I don't want to take the time to do that right now.

comment:7 by rudolfc, 14 years ago

OK, good to know it should indeed work. When I have time I'll probably look since I need dualhead support to test some driver aspects. This will probably be in four weeks or so... ;-)

Of course if someone else has time I'd love to see old app modesetting fixed..



BTW Someguy: GF8xxx and later are not supported by the nvidia driver so dualhead will not work either. (just vesa mode). GF8xxx and later support will come in a new driver I expect.

comment:8 by axeld, 14 years ago

The hack Thomas introduced for dual head is only a temporary solution that will be removed sooner or later (probably: later :-), so if you want to add support for it, it's not wasted time either). The plan is to make the accelerant API multi-head capable. I wanted to start playing with the intel driver to create an API for this (or maybe just an API extension, if possible).

In any case, I think it's more convenient to have only one driver per card, and deal with the multi-head stuff only in the accelerant. Maybe via cloning the accelerant for each head which would allow to pull this off with only minimal API changes.

comment:9 by rudolfc, 14 years ago


For the app_server this would mean handling two heads on one card would be the same as handling two different cards. Correct? That's what I would love to see as well.. :-)

A long time ago I already starting pulling things 'apart' in the driver and I still hav e this in the back of my head when doing updates.



comment:10 by excaliber, 14 years ago

I have a similar problem with a GeForce 6200 AGP. It has one digital and one analog output.

With hrev31402 on first boot with both displays connected, after the boot screen the analog output turns off and the digital is black with an out of range error. With one display connected (digital or analog) the nvidia driver loads and works properly. Rebooting and connecting the second display again, the analog turns off like before and the digital now uses the vesa driver.

comment:11 by rudolfc, 14 years ago

Hi there someguy,

Please also see ticket #4052 for status updates on dualhead support/bebits dualhead setup program working. Dualhead setup now partially works, and you can set dualhead if you select another resolution first and then switch back to the one you want, while enabling dualhead. Over here I now have two screens on for the first time on Haiku :-)



comment:12 by rudolfc, 14 years ago

Hmm, I am axperiencing a deja-vu ;-)

I mean ticket #4144..


comment:13 by someguy, 14 years ago

This is great! I got it to work by just using dual head setup on 31876.

comment:14 by rudolfc, 14 years ago

Resolution: fixed
Status: newclosed


Since R32212 BScreen mode.flags handling is fixed. DualheadSetup now works as expected. Closing ticket.



Note: See TracTickets for help on using tickets.