PDA

View Full Version : fglrx multi-monitor configuration?


Porter
03-27-2009, 08:51 AM
I've got a weird one for you guys... I hope you can help me figure this one out!

System:I'm running the latest Catalyst 9.4 (fglrx 8.6) from the repos on Ubuntu 9.04, on an RS780 (HD3200) which is integrated into my ASRock motherboard. There are two monitor outputs, VGA and DVI. I need to have them both operational (cloned) because for some reason the motherboard uses the only the VGA output for BIOS and POST display (which is frustrating) and I need to have access to those even though I am using the DVI output for my primary use.


With fglrx:With the standard vanilla xorg.conf created by aticonfig --initial, my DVI output does not work and I cannot enable it in Catalyst Control Panel. It does not appear as an option, only the VGA output is shown.


With radeon (open source):This is a bit odd to me, because when I use the latest open source (radeon) driver, I get proper cloned output live from both outputs simultaneously without having to configure anything. And that's with a nearly blank xorg.conf.


Manual config?I would start creating multiple Monitor configuration sections in xorg.conf to try to kludge it with fglrx manually, but I remember the ATI staff on here mentioning specifically that fglrx ignores xorg.conf and does all of its configuration in amdpcsdb... so it seems like the driver should automatically detect the outputs and make them available? I thought that manual configuration in xorg.conf was improper procedure nowadays.


How should I go about configuring this correctly and efficiently for simultaneous (cloned) output? I would like to avoid having multiple instances of X running if at all possible.

Thanks in advance for any help that you can provide!

bridgman
03-27-2009, 11:21 AM
AFAIK the BIOS should POST on whatever display is connected. Sounds like the BIOS or mobo thinks you have a VGA display connected even when you only plug in a DVI display. Is there any chance you have VGA connected but turned off ? If so then the BIOS might detect the analog load and post to the monitor even if was switched off.

Porter
03-27-2009, 02:10 PM
AFAIK the BIOS should POST on whatever display is connected. Sounds like the BIOS or mobo thinks you have a VGA display connected even when you only plug in a DVI display. Is there any chance you have VGA connected but turned off ? If so then the BIOS might detect the analog load and post to the monitor even if was switched off.
Unfortunately, it does this even with nothing connected to the VGA port. From what I've been able to gather, it's some sort of glitch in the ASRock VBIOS code that doesn't allow native use of the DVI port.

The ASRock support folks were actually quite spectacularly unhelpful and rude... here's their response to my original inquiry, and my exchange with them:
Dear ASRock Costumer,
The onboard video output DVI does not work as Primary Display adapter as you mention you want to display BIOS screen,therefore under this environment does not apply lower resolution .
Since the model of ASRock comes with (analog)regular VGA this is the primary display onboard adapter;therefore the DVI is secundary display under windows environment.
The ASRock model does not have any option to select DVI output as primary adapter default.

ASRock SupportDear ASRock Support,

I can accept not having BIOS display on the output. The problem is that it will not display ANY low-resolution output. Including the Windows recovery console (command line). Why will it not output VESA 640x480 at 60hz? EDID reports the mode as available and I do not have the problem with any other card on this monitor using DVI.

Thank you,
Jason PorterDear aSRock Costumer,
If you do accept the configuration of the motherboard ,please contact your vendor and return it.
Since the model is designed to work with the configuration I already explained before.

ASRock Support

As you can see, they basically blew me off in a rude fashion. I suspect the root cause is that their onboard RS780 implementation is not properly configured in VBIOS. With any luck, it's probably some trivial oversight in the code.

Do you know of a way to dump the VBIOS code to examine it? Or can I provide it to you guys for fglrx (or AtomBIOS) development?



And in the meantime, should I go through the exercise of manually configuring the outputs in xorg.conf? Or should I not need to do that?

Thanks again!

bridgman
03-27-2009, 02:16 PM
That's kinda wierd; any chance there are two GPUs on the board ?

When they talk about "primary and secondary adapters" that usually implies either two GPUs or one GPU configured in multifunction mode (where it appears as two GPUs each with one display controller rather than one GPU with two display controllers), but I didn't think multifunction wes available with 780.

I have heard about a couple of mobos which have both 780 and onboard 3450, any chance you have one of those and vga is connected to 780 while DVI is connected to 3450 ? What is the exact model number of your mobo ?

Porter
03-27-2009, 02:57 PM
That's kinda wierd; any chance there are two GPUs on the board ?

When they talk about "primary and secondary adapters" that usually implies either two GPUs or one GPU configured in multifunction mode (where it appears as two GPUs each with one display controller rather than one GPU with two display controllers), but I didn't think multifunction wes available with 780.

I have heard about a couple of mobos which have both 780 and onboard 3450, any chance you have one of those and vga is connected to 780 while DVI is connected to 3450 ? What is the exact model number of your mobo ?

The radeon driver sees it as a single display device with two outputs, and uses them both. The fglrx driver sees it as a single display device with only a VGA output.

I don't believe there is a 3450 on there... I've never seen anything like that reported in any of the logs, though I could be wrong. I can post my Xorg.0.log from both drivers if you need more info.

The board is an ASRock A780GXE/128M (http://www.asrock.com/mb/overview.asp?Model=A780GXE/128M). The specs indicate:Integrated AMD Radeon HD 3200 graphics
- DX10 class iGPU, Pixel Shader 4.0
- Max. shared memory 512MB
- Integrated 128MB side port memory for iGPU
- Dual VGA Output: Support DVI-D and D-Sub ports by independent display controllers
- Supports HDCP function with DVI-D port
- Supports Full HD 1080p Blu-ray (BD) / HD-DVD playback
- Supports ATI™ CrossFire™ and Hybrid CrossFireX™

Porter
03-27-2009, 03:11 PM
I'm not home to get a fresh one for you, but I happened to have an older Xorg.0.log file here from the system we're discussing, I'm not sure if it's relevant. I was using the radeon driver (6.10.0 maybe?) on Ubuntu 8.10 at the time, this is from January I guess.

Here are the lines for the device:(--) PCI:*(0@1:5:0) ATI Technologies Inc Radeon HD 3200 Graphics rev 0, Mem @ 0xd0000000/0, 0xf9ef0000/0, 0xf9d00000/0, I/O @ 0x0000c000/0
(II) Primary Device is: PCI 01@00:05:0
(--) RADEON(0): Chipset: "ATI Radeon HD 3200 Graphics" (ChipID = 0x9610)
And here is the output relating to the VBIOS:
(II) RADEON(0): Primary V_BIOS segment is: 0xc000
(II) RADEON(0): ATOM BIOS detected
(II) RADEON(0): ATOM BIOS Rom:
SubsystemVendorID: 0x1002 SubsystemID: 0x1002
IOBaseAddress: 0xc000
Filename: K10DX10DP_D_
BIOS Bootup Message:

ASROCK RS780 VBIOS 082

(II) RADEON(0): Framebuffer space used by Firmware (kb): 16
(II) RADEON(0): Start of VRAM area used by Firmware: 0x17ffc000
(II) RADEON(0): AtomBIOS requests 16kB of VRAM scratch space
(II) RADEON(0): AtomBIOS VRAM scratch base: 0x17ffc000
(II) RADEON(0): Cannot get VRAM scratch space. Allocating in main memory instead
And here are the lines relating to the two different video outputs:(II) RADEON(0): Output VGA-0 using monitor section Configured Monitor
(II) RADEON(0): I2C bus "VGA-0" initialized.
(II) RADEON(0): Output DVI-0 has no monitor section
(II) RADEON(0): I2C bus "DVI-0" initialized.
(II) RADEON(0): Port0:
Monitor -- AUTO
Connector -- VGA
DAC Type -- Primary
TMDS Type -- None
DDC Type -- 0x7e40
(II) RADEON(0): Port1:
Monitor -- AUTO
Connector -- DVI-D
DAC Type -- None
TMDS Type -- LVTMA
DDC Type -- 0x7e50
(II) RADEON(0): I2C device "VGA-0:ddc2" registered at address 0xA0.
(II) RADEON(0): I2C device "VGA-0:ddc2" removed.
(II) RADEON(0): Output: VGA-0, Detected Monitor Type: 0
Dac detection success
finished output detect: 0
(II) RADEON(0): I2C device "DVI-0:ddc2" registered at address 0xA0.
(II) RADEON(0): Output: DVI-0, Detected Monitor Type: 3

I'm not sure if that helps at all. I will get current logs when I get home.

bridgman
03-27-2009, 03:20 PM
Yeah, seems like a conventional motherboard alright. Strange...

Porter
03-27-2009, 03:29 PM
Yeah, seems like a conventional motherboard alright. Strange...

Weird, eh? I'll get the log this evening under fglrx and see what it shows. Catalyst Control Center doesn't recognize a second (DVI) output as existing, I'm not sure if that's related to the xorg.conf configuration or something going on with the hardware.

Any ideas on the DVI not functioning as a native (driverless) display output? I would absolutely love it if it's something in the VBIOS that could be fixed.

Porter
03-28-2009, 08:06 AM
Here is the current fglrx log for you, this is on the Catalyst "9.4" build in Ubuntu Jaunty. The lines are in the right order inside each section below but they are from selected areas of the log and many lines have been removed, these are obviously not the complete outputs. Let me know if you want the full, properly sequential Xorg.0.log instead.

Here are the lines for the device... note the multiple "instances" found by fglrx:[ 0.143503] (--) PCI:*(0@1:5:0) ATI Technologies Inc Radeon HD 3200 Graphics rev 0, Mem @ 0xd0000000/268435456, 0xf9ef0000/65536, 0xf9d00000/1048576, I/O @ 0x0000c000/256
[ 0.501139] (II) Primary Device is: PCI 01@00:05:0
[ 0.501155] (WW) Falling back to old probe method for fglrx
[ 0.501164] (II) ATI Proprietary Linux Driver Version Identifier:8.60.40
[ 0.501170] (II) ATI Proprietary Linux Driver Release Identifier: 8.60.4
[ 0.501178] (II) ATI Proprietary Linux Driver Build Date: Mar 14 2009 21:45:25
[ 0.537471] (II) Loading PCS database from /etc/ati/amdpcsdb
[ 0.537502] (WW) This ATI Proprietary Linux Driver does not guarantee support of video driver ABI higher than 2.0
[ 0.537508] (WW) Video driver ABI version of the X server is 5.0
[ 0.538681] (--) Chipset Supported AMD Graphics Processor (0x9610) found
[ 0.538730] (WW) fglrx: No matching Device section for instance (BusID PCI:0@0:17:0) found
[ 0.538744] (WW) fglrx: No matching Device section for instance (BusID PCI:0@0:18:0) found
[ 0.538753] (WW) fglrx: No matching Device section for instance (BusID PCI:0@0:18:1) found
[ 0.538779] (WW) fglrx: No matching Device section for instance (BusID PCI:0@0:18:2) found
[ 0.538788] (WW) fglrx: No matching Device section for instance (BusID PCI:0@0:19:0) found
[ 0.538797] (WW) fglrx: No matching Device section for instance (BusID PCI:0@0:19:1) found
[ 0.538806] (WW) fglrx: No matching Device section for instance (BusID PCI:0@0:19:2) found
[ 0.538815] (WW) fglrx: No matching Device section for instance (BusID PCI:0@0:20:0) found
[ 0.538824] (WW) fglrx: No matching Device section for instance (BusID PCI:0@0:20:1) found
[ 0.538833] (WW) fglrx: No matching Device section for instance (BusID PCI:0@0:20:2) found
[ 0.538842] (WW) fglrx: No matching Device section for instance (BusID PCI:0@0:20:3) found
[ 0.538851] (WW) fglrx: No matching Device section for instance (BusID PCI:0@0:20:4) found
[ 0.538860] (WW) fglrx: No matching Device section for instance (BusID PCI:0@0:20:5) found
[ 0.555335] (II) fglrx(0): pEnt->device->identifier=0x9e2ae48

And here is the output relating to the VBIOS:[ 0.626763] (--) fglrx(0): Chipset: "ATI Radeon HD 3200 Graphics" (Chipset = 0x9610)
[ 0.626770] (--) fglrx(0): (PciSubVendor = 0x1849, PciSubDevice = 0x9610)
[ 0.626778] (--) fglrx(0): board vendor info: third party graphics adapter - NOT original ATI
[ 0.626784] (--) fglrx(0): Linear framebuffer (phys) at 0xd0000000
[ 0.626790] (--) fglrx(0): MMIO registers at 0xf9ef0000
[ 0.626797] (--) fglrx(0): I/O port at 0x0000c000
[ 0.626803] (==) fglrx(0): ROM-BIOS at 0x000c0000

[ 0.713981] (II) fglrx(0): Primary V_BIOS segment is: 0xc000
[ 0.770165] (II) fglrx(0): VESA BIOS detected
[ 0.770176] (II) fglrx(0): VESA VBE Version 3.0
[ 0.770182] (II) fglrx(0): VESA VBE Total Mem: 16384 kB
[ 0.770192] (II) fglrx(0): VESA VBE OEM: ATI ATOMBIOS
[ 0.770199] (II) fglrx(0): VESA VBE OEM Software Rev: 10.82
[ 0.770205] (II) fglrx(0): VESA VBE OEM Vendor: (C) 1988-2005, ATI Technologies Inc.
[ 0.770213] (II) fglrx(0): VESA VBE OEM Product: RS780
[ 0.770220] (II) fglrx(0): VESA VBE OEM Product Rev: 01.00
[ 0.794678] (II) fglrx(0): ATI Video BIOS revision 9 or later detected
[ 0.794700] (II) fglrx(0): UMA/SP interleave mode is enabled in the BIOS
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is 11, (OK)
drmOpenByBusid: Searching for BusID PCI:1:5:0
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is 11, (OK)
drmOpenByBusid: drmOpenMinor returns 11
drmOpenByBusid: drmGetBusid reports PCI:1:5:0
[ 0.796309] (II) fglrx(0): Using PCI BAR mapping for frame buffer over 4GB on non-PAE i386 kernel
[ 0.796322] (II) fglrx(0): Using adapter: 1:5.0.
[ 0.806727] (--) fglrx(0): Video RAM: 393216 kByte, Type: DDR2
[ 0.806758] (II) fglrx(0): [FB] MC range(MCFBBase = 0xc0000000, MCFBSize = 0x18000000)
[ 0.806784] (II) fglrx(0): PCIE card detected
[ 0.806811] (--) fglrx(0): Using per-process page tables (PPPT) as GART.
[ 0.806817] (WW) fglrx(0): board is an unknown third party board, chipset is supported

And here are the lines relating to the video outputs:[ 0.588926] (II) Setting vga for screen 0.
[ 0.605419] (II) fglrx(0): PCI bus 1 card 5 func 0
[ 0.620004] (II) fglrx(0): Creating default Display subsection in Screen section
"Default Screen" for depth/fbbpp 24/32
[ 0.620028] (**) fglrx(0): Depth 24, [ 0.620033] (--) framebuffer bpp 32
[ 0.620043] (II) fglrx(0): Pixel depth = 24 bits stored in 4 bytes (32 bpp pixmaps)
[ 0.620053] (==) fglrx(0): Default visual is TrueColor
[ 0.626592] (II) fglrx(0): 10BitPixelFormat disabled by default
[ 0.626609] (==) fglrx(0): RGB weight 888
[ 0.626615] (II) fglrx(0): Using 8 bits per RGB (8 bit DAC)
[ 0.626637] (==) fglrx(0): Gamma Correction for I is 0x06419064
[ 0.626650] (==) fglrx(0): Gamma Correction for II is 0x06419064
[ 0.626663] (==) fglrx(0): Buffer Tiling is ON
[ 1.625208] (II) fglrx(0): ***Display: ConnectedDisplayTypes=0x00000001, disabled=0x00000000
[ 1.625225] (II) fglrx(0): Connected Display1: CRT on primary DAC [crt1]
[ 1.638903] (II) fglrx(0): Display1 EDID data ---------------------------
[ 1.639342] (II) fglrx(0): End of Display1 EDID data --------------------
[ 1.641101] (WW) fglrx(0): Only one display is connnected,so single mode is enabled
[ 1.707227] (II) fglrx(0): Primary Controller - CRT on primary DAC


Any ideas?

DeX77
03-29-2009, 06:44 AM
That's kinda wierd; any chance there are two GPUs on the board ?

When they talk about "primary and secondary adapters" that usually implies either two GPUs or one GPU configured in multifunction mode (where it appears as two GPUs each with one display controller rather than one GPU with two display controllers), but I didn't think multifunction wes available with 780.
[..]

I know this is somewhat OT for this thread, but for me this implies that for some adapters its possible to configure them somehow for multifunction mode?
Does this mean that they would appear as two completely different VGA Controller in lspci?

This would be very interesting in terms of multiseat support :)

bridgman
03-29-2009, 10:55 AM
AFAIK most of the boards that were shipped in the last several years were configured for multifunction support by default. I suspect the drivers simply ignore the second adapter and use both display controllers on the first adapter.

Porter
03-29-2009, 11:13 AM
Any idea on how I should proceed, bridgman?

Based on the log I posted, should I try creating independent Monitor sections in xorg.conf, or is that a fool's errand?

Thanks!

bridgman
03-29-2009, 11:43 AM
Not sure yet. There probably is a valid technical issue behind what the ASRock support guys are saying but right now I don't have any idea what it is. I'll try to hook up with the BIOS team next week and see if they have any ideas.

Since they are talking about primary and secondary adapter (but there's only one GPU) one possibility is something related to multifunction mode but I didn't think that normally limited which video outputs you could use. The only other possibility that comes to mind is some kind of video switching hardware (multiplexing a video output from the chip) which isn't initialized at power-up and which needs special code to operate.

You can dump out the BIOS image with the rhd_dump utility included in the radeonhd source tree. I think you have to build it yourself though. There's also a BIOS disassembler tool that formats and displays the contents of the AtomBIOS command and data tables; you can check Matthias's blog (emmes.livejournal.com) for more info.

Porter
03-29-2009, 12:31 PM
Excellent, thanks for the info!

Porter
03-30-2009, 12:03 PM
Oh, quick question... do you have to actually be running the radeonhd driver to use the rhd_dump (conntest) utility, or can it be compiled separately and run correctly on a system running the fglrx or radeon driver?

I'd like to avoid hosing the system (or inadvertently corrupting the VBIOS) if I can avoid it. I'll shoot a question to Matthias as well.

bridgman
03-30-2009, 12:21 PM
I don't think you need to be running radeonhd; in fact it's best if you aren't running X at all AFAIK.

Porter
04-09-2009, 09:18 AM
I solved it. :mad:


Turns out it was a "perfect storm" of weird behavior between my monitor and the integrated HD3200.

The Westinghouse 37" monitor turns out to have bad EDID data, but only on the DVI connection. Through DVI it reports the same EDID as through the VGA connector, i.e. analog rather than digital. Through HDMI it reports itself correctly (digital). Apparently this was an error in production, they literally just flashed the wrong EDID data to the wrong input section somehow.

Since the display reports itself as analog via EDID, the GPU shuts off the digital side of the DVI port and outputs analog only via DVI, I guess to save power or reduce EMI or something. Since the display's DVI input is DVI-D only, it displays nothing when this happens.

Behavior when attached to the HDMI input on the display from the DVI port on the PC (using an adapter) is flawless. It reports itself correctly, displays a great image at all times, etc.

So now I'm beating my head against the wall with the display manufacturer trying to explain to their (entirely non-technical) tech support staff what the problem is with the display. Somebody shoot me.