|Summary:||Zaphod mode broken on Radeon 4670|
|Product:||xorg||Reporter:||James Le Cuirot <chewi>|
|Component:||Driver/Radeon||Assignee:||xf86-video-ati maintainers <xorg-driver-ati>|
|Status:||RESOLVED FIXED||QA Contact:||Xorg Project Team <xorg-team>|
|i915 platform:||i915 features:|
Description James Le Cuirot 2009-10-14 06:33:37 UTC
Before I go on, it's worth mentioning that there seems to be confusion about which DVI output on my card maps to which xrandr output. I've found that that I have to insert them the opposite way to how I have them for fglrx before it even starts making sense. The only way I can really tell for sure which output has been assigned to which monitor is by checking the output of xrandr before and after changing resolution. If I don't swap the outputs, xrandr assigns the resolutions for my TV (such as 1920x1080) to my regular monitor (which can only do 1280x1024) and vice-versa. This seems like a driver bug to me. It even happens in non-Zaphod mode but since it's Zaphod mode I'm interested in and since non-Zaphod mode still works in spite of this, I'm lumping this comment in with my wider Zaphod mode issue. The main scenario I'm trying is Zaphod mode with KMS and DRI enabled. My TV (the secondary monitor) shows the GDM login but my regular monitor (the primary monitor) gets no signal. The output from xrandr still shows both monitors as connected but if I try to enable DVI-0, I get "cannot find crtc for output DVI-0". It might be worth noting that it shows nothing about the DIN output, yet it appears as disconnected in the list when not in Zaphod mode. What's also interesting is that I have to add a monitor section for DIN, otherwise I get a message like "Output DIN using monitor section DVI-0", which clearly isn't right. I don't have to do this in non-Zaphod mode though. In that case, it says "Output DIN has no monitor section". I tried disabling DRI with 'Option "DRI" "off"' but strangely it seemed to have no effect. According to the log, DRI was enabled anyway. I then tried with KMS disabled. The first time, the machine spontaneously restarted and the second time, it just froze. :| All this was tested with the git versions of mesa, libdrm, xf86-video-ati and linux-next-20091013, which had the latest from drm-next that day.
Comment 2 James Le Cuirot 2009-10-14 06:35:21 UTC
Created attachment 30396 [details] xorg.conf.ati.zaphod
Comment 3 James Le Cuirot 2009-10-14 06:35:47 UTC
Created attachment 30397 [details] Xorg.zaphod.log
Comment 4 James Le Cuirot 2009-10-14 06:38:09 UTC
Created attachment 30398 [details] xorg.conf.ati.xrandr For contrast, here's the non-Zaphod version of my xorg.conf. I want the TV to be left of the monitor but when I do that, the TV ends up being the primary output. By that, I mean GDM and my main XFCE desktop appear on that output. Hence, I've used RightOf instead of LeftOf here. This could also be related.
Comment 5 James Le Cuirot 2009-10-14 06:38:47 UTC
Created attachment 30399 [details] Xorg.xrandr.log The non-Zaphod log, again for contrast.
Comment 6 James Le Cuirot 2009-10-20 14:16:23 UTC
Created attachment 30594 [details] vbios.rom The video BIOS is often requested in bugs like these so here it is. This has been obtained while running with fglrx but I don't think that matters, right?
Comment 7 James Le Cuirot 2009-10-31 16:13:03 UTC
Had another go today with linux-next-20091030. No change.
Comment 8 James Le Cuirot 2009-12-02 16:22:03 UTC
Tried again with linux-next-20091202 merged with the latest from drm-radeon-testing. Not much change. :( Unfortunately I can only test with xorg-server 1.6 for now because fglrx doesn't support 1.7 and downgrading on Gentoo is painful.
Comment 9 James Le Cuirot 2009-12-03 16:31:25 UTC
Just tried with 1.7 anyway. Still no joy.
Comment 10 cxo 2010-01-26 13:48:44 UTC
I have a similar problem. Trying to set separate X-screens in the xorg.conf causes the box to lockup. Actually, i cant even restart X without the machine locking up when two screens are connected. I have 2x19" screens, each 1280x1024. I can only manage to get 1x 2560x1024 screen instead of 2x (1280x1024) screens. HD4870, Ubuntu-9.10 x86_64 with latest linux,drm,mesa,xf86-video-ati
Comment 11 James Le Cuirot 2010-01-26 13:57:52 UTC
If it locks up even when not attempting Zaphod mode (e.g. no xorg.conf at all) then you probably have a different issue. If it's only with Zaphod mode then welcome aboard. I was told by Alex Deucher on the Phoronix forums that Zaphod mode basically just picks the first two outputs it finds and there is no way to control which ones it uses. I said that there is enough information in xorg.conf for it to make an intelligent decision but he said that this is something I'd need to code up myself. I've been meaning to look into it but it hasn't been a priority lately.
Comment 12 James Le Cuirot 2010-02-20 05:23:12 UTC
Created attachment 33445 [details] [review] 0001-radeon-reworked-zaphod-mode.patch I recently dug into the code and made some discoveries. A discussion with Alex Deucher then led to him creating a new ZaphodHeads option. However this doesn't work for me and seems over-complex. I believe it is unnecessary to have a driver-specific option since all the information is already there. I have therefore created my own patch, which works for me. I've also tested that xrandr mode still works. This assumes that commit 579cdcf9b4e38c791a497b747a055fc0a07d8dd6 has already been reverted.
Comment 13 Alex Deucher 2010-02-23 10:19:44 UTC
Should be fixed now in xf86-video-ati git master.
Comment 14 James Le Cuirot 2010-02-26 13:51:28 UTC
It's now working perfectly. :)