PDA

View Full Version : Separate screens with xrandr


bitnick
07-11-2009, 02:46 PM
I have a TFT monitor (VGA-0) and an LCD TV (DVI-0) connected to my Radeon X800 card.

I would like to work on my TFT monitor while showing movies on the TV. So I want a "full-screen" 1280x1024 resolution on the monitor, and a different screen (is this the correct term under X?) with a "full-screen" 1360x768 resolution on DVI-0, where mplayer can run in full-screen mode. (I don't want dual-head/two keyboards and mice, but the same keyboard input for both, and I don't necessarily need mouse input for the TV screen at all.)

How do I set this up?

I run (gentoo packages) xf86-video-ati-6.12.1-r1, xorg-server-1.5.3-r6 (RandR version 1.2).

Neither man radeon nor man xrandr mentions this setup, as far as I can see. And googling for this is almost pointless given how much these things have changed during the last year or so - there's just too much obsolete info to sort through. (The info I have managed to find only covers using a large virtual desktop with the different monitors displaying different parts of it.)

xrandr --help shows options -display and --screen, but with no indications on how to use them.

The situation I have right now is both monitors display the same screen, which presents some problems. I can get mplayer to overlay on the TV using -adapter 1, but full screen mode centers the picture as if the resolution was 1280x1024, not 1360x768 (so the picture appears much too low on the TV). Also, since the monintors display the same thing I cannot do other things on the monitor while running the movie on the TV.

Help, please?

agd5f
07-11-2009, 02:53 PM
See this page for how to configure dualhead with xrandr:
http://wiki.debian.org/XStrikeForce/HowToRandR12

Note, you will probably need to add a Virtual line to your xorg.conf to configure a large enough desktop for dualhead. The gui display tools in most recent distros will also work.

bitnick
07-11-2009, 05:02 PM
Yes, I've seen those instructions, and by following them I get the effect I don't want, with a desktop that's too large for any of the monitors:

xrandr --output DVI-0 --mode 1360x768
xrandr --output DVI-0 --below VGA-0

works, but then I lose the menu bar on my desktop on VGA-0. With DVI-0 --leftof VGA-0 the TV screen instead gets too large vertically, which makes e.g. mplayer fullscreen centering not work.

How do I get each monitor to display its own fullscreen desktops? (Or the first monitor displaying a desktop and the second one just being empty?) The important thing is that both monitors must display a desktop that is correctly sized for that monitor's resolution.

(This must be one of the most common usage scenarios, right?)

bridgman
07-11-2009, 05:58 PM
I think that is what's called zaphod mode, not sure what the current level of support is.

madman2k
07-11-2009, 05:59 PM
(This must be one of the most common usage scenarios, right?)
works for me(tm) with the gui thingy which comes with Ubuntu.(Gnome)
dont know what you have to hack into the console in order to get the same effect. You could probably look at the source... :D

highlandsun
07-11-2009, 08:46 PM
Part of the problem may be in the player program. On my ubuntu 9.04 laptop I have 1400x1050 on my LCD; first I have to use xrandr set load-detection on to enable the S-Video output. Then I can use the Gnome Display tool to enable the S-Video and put it to the right of the main screen. If I run ffplay in fullscreen mode, it tries to use both screens, half of the image appears on the LCD and a corner appears on the S-Video. If I use totem, it uses the screen where its window was running. So if I had it started on the LCD, it uses just the LCD. If I start it from the S-Video, it only uses that. Which is pretty much the behavior I want it to have. Too bad totem's codecs are slower and drop frames compared to ffplay.

Something else that's kinda puzzling, xrandr only enables 800x600 mode on my S-Video port. I'm pretty sure in much older distros I was able to use 1024x768 on it, but I can't add-mode for that now, it always fails. I haven't tried 640x480 on it yet, would expect that to have no problems...

slacker
07-12-2009, 03:10 AM
(Or the first monitor displaying a desktop and the second one just being empty?)

I use this all the times I watch a movie.
part of my script:


EXTERNAL_OUTPUT="VGA-0"
INTERNAL_OUTPUT="LVDS"
EXTERNAL_LOCATION="left"
"xrandr --output $INTERNAL_OUTPUT --auto"
"xrandr --output $EXTERNAL_OUTPUT --auto $EXTERNAL_LOCATION"

laptop is 1280x800, external is 1920x1080, both work at full res.

duby229
07-12-2009, 10:42 AM
I think that is what's called zaphod mode, not sure what the current level of support is.

Yes your right. This is the configuration that I use my monitors in, and right now xrandr doesnt support it.

To setup a zaphod style configuration you have to do it in your xorg.conf. Here is an example.....


Section "ServerLayout"
Identifier "X.org Configured"
Screen 0 "Screen0" 0 0
Screen 1 "Screen1" Leftof "Screen0"
InputDevice "Mouse0" "CorePointer"
InputDevice "Keyboard0" "CoreKeyboard"
EndSection

Section "Files"
ModulePath "/usr/lib64/xorg/modules"
FontPath "/usr/share/fonts/misc/"
FontPath "/usr/share/fonts/TTF/"
FontPath "/usr/share/fonts/OTF"
FontPath "/usr/share/fonts/Type1/"
FontPath "/usr/share/fonts/100dpi/"
FontPath "/usr/share/fonts/75dpi/"
EndSection

Section "Module"
Load "ddc"
Load "vbe"
Load "GLcore"
Load "bitmap"
Load "dri"
Load "xtrap"
Load "extmod"
Load "record"
Load "glx"
Load "dbe"
Load "freetype"
EndSection

Section "InputDevice"
Identifier "Keyboard0"
Driver "kbd"
EndSection

Section "InputDevice"
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/input/mice"
Option "ZAxisMapping" "4 5 6 7"
EndSection

Section "ServerFlags"
# Option "AIGLX" "true"
Option "AllowEmptyInput" "false"
EndSection

Section "Extensions"
# Option "Composite" "true"
# Option "DAMAGE" "true"
# Option "RENDER" "true"
EndSection

Section "Monitor"
Identifier "Monitor0"
Option "DPMS"
Option "Monitor-DVI-0" "Monitor0"
Option "PreferredMode" "1280x800@75"
EndSection

Section "Monitor"
Identifier "Monitor1"
Option "DPMS"
Option "Monitor-DVI-1" "Monitor1"
Option "PreferredMode" "1360x768@60"
EndSection

Section "Device"
Identifier "Card0"
Driver "radeon"
Option "AccelMethod" "EXA"
Option "EnablePageFlip" "true
Option "TripleBuffer" "true"
Option "DMAForXv" "true"
# Option "DynamicClocks" "on"
Option "EXAVSync" "on"
BusID "PCI:1:0:0"
EndSection

Section "Device"
Identifier "Card1"
Driver "radeon"
Option "AccelMethod" "EXA"
Option "EnablePageFlip" "true"
Option "TripleBuffer" "true"
Option "DMAForXv" "true"
# Option "DynamicClocks" "on"
Option "EXAVSync" "on"
BusID "PCI:2:0:0"
EndSection

Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
SubSection "Display"
Viewport 0 0
Depth 24
EndSubSection
EndSection

Section "Screen"
Identifier "Screen1"
Device "Card1"
Monitor "Monitor1"
SubSection "Display"
Viewport 0 0
Depth 24
EndSubSection
EndSection

Section "DRI"
Mode 0666
EndSection


I've commented somethings out that work perfectly fine with one monitor, but dont work with two. You'll have to modify it a bit to make it work with your system

1: The BusID in the device sections, that'll need to be changed to match your system.
2: Under the monitor sections, if one of your outputs is on VGA-0 then that'll need to be updated..
3: The resolutions set in the monitor sections. Make those what you want them to be.
4: Then you ma not need all the modules that I have set to load. So if you see any modules that you dont need you can remove some. Also this goes for fonts. If you see some fonts you wont use then you get remove them too
5: And then lastly in the ServerLayout section you'll notice that I have Screen1 LeftOf Screen0. You can also make that RightOf TopOf or BottomOf

agd5f
07-12-2009, 07:28 PM
Something else that's kinda puzzling, xrandr only enables 800x600 mode on my S-Video port. I'm pretty sure in much older distros I was able to use 1024x768 on it, but I can't add-mode for that now, it always fails. I haven't tried 640x480 on it yet, would expect that to have no problems...

800x600 is all that has ever been supported for tv-out on r1xx-r3xx cards. No other modes have been implemented yet.

bitnick
07-15-2009, 11:11 AM
The problem seems to be with my window manager (xfce4-4.6). Its display settings applet only recognises one screen. I took a peek at the code and randr-1.2 functionality seems not to be implemented (a lot of code is there but it is ifdef'ed out). So my guess is the WM reports the wrong screen size to mplayer/other applications.

duby229> I'll try your setup as soon as I can. Right now I have some trouble with DRM not recognising my card after a kernel upgrade... :mad:

bitnick
07-15-2009, 02:39 PM
Yep, I can get Zaphod mode with this setup:

Section "ServerLayout"
Identifier "X.org Configured"
Screen 0 "Screen0" 0 0
Screen 1 "Screen1" Rightof "Screen0"
EndSection

Section "ServerFlags"
Option "AutoAddDevices" "true"
Option "AutoEnableDevices" "true"
Option "AllowEmptyInput" "true"
EndSection

Section "Files"
ModulePath "/usr/lib64/xorg/modules"
FontPath "/usr/share/fonts/misc/"
FontPath "/usr/share/fonts/TTF/"
FontPath "/usr/share/fonts/OTF"
FontPath "/usr/share/fonts/Type1/"
FontPath "/usr/share/fonts/100dpi/"
FontPath "/usr/share/fonts/75dpi/"
EndSection

Section "Module"
Load "extmod"
Load "xtrap"
Load "glx"
Load "dri"
Load "record"
Load "dbe"
EndSection

Section "Monitor"
#DisplaySize 540 350 # mm
Identifier "Monitor0"
VendorName "HWP"
ModelName "HP LP2475w"
HorizSync 30.0 - 94.0
VertRefresh 48.0 - 85.0
Option "DPMS"
EndSection

Section "Monitor"
Identifier "Monitor1"
VendorName "PHL"
ModelName "200WP"
Option "DPMS"
EndSection

Section "Device"
### Available Driver options are:-
### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
### <string>: "String", <freq>: "<f> Hz/kHz/MHz"
### [arg]: arg optional
#Option "NoAccel" # [<bool>]
#Option "SWcursor" # [<bool>]
#Option "Dac6Bit" # [<bool>]
#Option "Dac8Bit" # [<bool>]
#Option "BusType" # [<str>]
#Option "CPPIOMode" # [<bool>]
#Option "CPusecTimeout" # <i>
#Option "AGPMode" # <i>
#Option "AGPFastWrite" # [<bool>]
#Option "AGPSize" # <i>
#Option "GARTSize" # <i>
#Option "RingSize" # <i>
#Option "BufferSize" # <i>
#Option "EnableDepthMoves" # [<bool>]
#Option "EnablePageFlip" # [<bool>]
#Option "NoBackBuffer" # [<bool>]
#Option "DMAForXv" # [<bool>]
#Option "FBTexPercent" # <i>
#Option "DepthBits" # <i>
#Option "PCIAPERSize" # <i>
#Option "AccelDFS" # [<bool>]
#Option "IgnoreEDID" # [<bool>]
#Option "DisplayPriority" # [<str>]
#Option "PanelSize" # [<str>]
#Option "ForceMinDotClock" # <freq>
#Option "ColorTiling" # [<bool>]
#Option "VideoKey" # <i>
#Option "RageTheatreCrystal" # <i>
#Option "RageTheatreTunerPort" # <i>
#Option "RageTheatreCompositePort" # <i>
#Option "RageTheatreSVideoPort" # <i>
#Option "TunerType" # <i>
#Option "RageTheatreMicrocPath" # <str>
#Option "RageTheatreMicrocType" # <str>
#Option "ScalerWidth" # <i>
#Option "RenderAccel" # [<bool>]
#Option "SubPixelOrder" # [<str>]
#Option "ShowCache" # [<bool>]
Option "DynamicClocks" "true"
#Option "VGAAccess" # [<bool>]
#Option "ReverseDDC" # [<bool>]
#Option "LVDSProbePLL" # [<bool>]
Option "AccelMethod" "EXA"
#Option "DRI" # [<bool>]
#Option "ConnectorTable" # <str>
#Option "DefaultConnectorTable" # [<bool>]
#Option "DefaultTMDSPLL" # [<bool>]
#Option "TVDACLoadDetect" # [<bool>]
#Option "ForceTVOut" # [<bool>]
#Option "TVStandard" # <str>
#Option "IgnoreLidStatus" # [<bool>]
#Option "DefaultTVDACAdj" # [<bool>]
#Option "Int10" # [<bool>]
#Option "EXAVSync" # [<bool>]
#Option "ATOMTVOut" # [<bool>]
#Option "R4xxATOM" # [<bool>]
Identifier "Card0"
Driver "radeon"
VendorName "ATI Technologies Inc"
BoardName "Radeon HD 3870"
BusID "PCI:1:0:0"
Screen 0
EndSection

Section "Device"
Identifier "Card1"
Driver "radeon"
VendorName "ATI Technologies Inc"
BoardName "Radeon HD 3870"
BusID "PCI:1:0:0"
Screen 1
EndSection

Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
SubSection "Display"
Viewport 0 0
Depth 1
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 4
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 8
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 15
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 16
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 24
EndSubSection
EndSection

Section "Screen"
Identifier "Screen1"
Device "Card1"
Monitor "Monitor1"
SubSection "Display"
Viewport 0 0
Depth 24
EndSubSection
EndSection

mplayer output is controlled by setting the DISPLAY environment variable. 'DISPLAY=:0.1 mplayer ...' gives output on the second screen.

However, DRI is not supported in this mode - from Xorg.0.log: "(WW) RADEON(0): Direct Rendering Disabled -- Zaphod Dual-head configuration is not working with DRI at present. Please use the xrandr 1.2 if you want Dual-head with DRI."

This means I also got no xv adaptors, which means no HW scaling of video (there's no overlay on R600). And even my Core2 Duo chokes on full-screen video without HW scaling. :(

So I guess the only option is to make xfce4/wait for xfce4 to become aware of randr type dual-screen? Or is there any hope of getting full support for multiple X Screens with the radeon driver, incl DRI? After all, the "multiple separate screen" approach is what I really want.

Edit: Actually, it seems xrandr-1.2 dual screen mode is equivalent to Zaphod mode if only the WM handles it correctly. So perhaps Zaphod support should not be a priority after all. Is Zaphod mode "officially" deprecated? What says the radeon developers?

agd5f
07-15-2009, 03:28 PM
Edit: Actually, it seems xrandr-1.2 dual screen mode is equivalent to Zaphod mode if only the WM handles it correctly. So perhaps Zaphod support should not be a priority after all. Is Zaphod mode "officially" deprecated? What says the radeon developers?

It's not well maintained at the moment. It's tested every now and then, but the xserver side breaks more often than the driver side since it's not used much. zaphod should be possible with kms and will be much easier to implement.

bitnick
07-15-2009, 04:39 PM
What would be the benefits of Zaphod mode compared to xrandr multi-screen? I guess what I'm asking is: why support several different ways to do the same thing?

agd5f
07-15-2009, 05:02 PM
What would be the benefits of Zaphod mode compared to xrandr multi-screen? I guess what I'm asking is: why support several different ways to do the same thing?

I don't personally have much use for zaphod, but some people like it. The difference is that with zaphod each head is and independent screen (:0.0 and :0.1). It only becomes one big desktop spanning multiple displays if you run xinerama. In that case it's just like xrandr, but inferior.

rohcQaH
07-15-2009, 05:43 PM
The difference is that with zaphod each head is and independent screen (:0.0 and :0.1).
..and as such each screen can run a different colour depth and each screen's applications can vsync to the correct output.

mostly useful when your outputs aren't next to each other, i.e. running a monitor and a tv/projector.

bitnick
07-15-2009, 08:06 PM
Does anyone run anything other than 24 bit colour depth today?

Different xrandr outputs can already have different vertical refresh rates. How is application vsync to different xrandr outputs implemented today?

agd5f
07-15-2009, 11:53 PM
Does anyone run anything other than 24 bit colour depth today?

Different xrandr outputs can already have different vertical refresh rates. How is application vsync to different xrandr outputs implemented today?

For textured Xv we sync to whichever head more of the video is on, for clone modes, we choose the first crtc. The anti-tearing stuff only works when the dri is enabled, so it won't work with zaphod mode.

adamk
07-16-2009, 06:08 AM
So I guess the only option is to make xfce4/wait for xfce4 to become aware of randr type dual-screen?


xfce4 already does, and has for quite a while.

Adam

bitnick
07-16-2009, 06:46 PM
Ehm... no? ;)

It handles zaphod mode correctly: the display-settings dialog, accessible through Xfce Menu->Settings->Display, shows two screens and lists their resoutions and frequency correctly. The menu bars are the correct size on Screen 0, and no menu is visible on Screen 1. Apps fullscreen to the correct resolution and position on the different screens.

Running xrandr dual-screen however, menu bars stretch over the full virtual desktop (so are partly invisible if the monitors are different resolutions). The display-settings dialog shows only one screen, and its resolution seem to be set to the same as the resolution of smallest of the connected monitors. Apps full-screen to the wrong resolution and position.

Looking at the code (xfce4-settings-4.6.1):

main.c:/* not available yet */
#undef HAS_RANDR_ONE_POINT_TWO


xfce-randr.c: /* TODO: load defaults */
randr->mode[n] = 0;
randr->rotation[n] = 0;
randr->status[n] = XFCE_OUTPUT_STATUS_NONE;(this is in xfce_randr_new() which is responsible for filling in data structures that keep info on screens, their modes etc, if I understand the code correctly.)

Much randr-aware code seems to be in place, but it is not finished, and it does not work correctly today using the functions and structures in "xfce-randr-legacy".

adamk
07-16-2009, 07:36 PM
Ehm... Yes.

You can't configure separate xrandr controlled monitors using the xfce4 settings manager (which is fine with me, I configure it statically in xorg.conf), but xfce4 definitely handles window position, panel position, and window maximization properly when using xrandr (at least if you configure the xfwm4 source with the --enable-xinerama option).

http://68.45.151.98/xfce-xrandr.png

Notice how the panels extend across the top and bottom of only the first monitor (and I can move it to another monitor by right clicking on the panel and selecting "Customize"). Maximizing a window maximizes it to just the monitor it was on.

This, of course, assumes that Xorg conveys the correct monitor information via the XINERAMA extension.


[ adamk@sorrow - ~ ]: xdpyinfo -ext XINERAMA | grep head
head #0: 1280x1024 @ 0,0
head #1: 1280x1024 @ 1280,0


EDIT:

Here's another screenshot, with different resolutions, one panel on one monitor, the other panel on the other monitor:

http://68.45.151.98/xfce-xrandr2.jpg


[ adamk@sorrow - ~ ]: xdpyinfo -ext XINERAMA | grep head
head #0: 1280x1024 @ 0,0
head #1: 1600x1200 @ 1280,0


xfce4 handles window placement and maximization flawlessly, just as gnome and KDE do.

bitnick
07-16-2009, 08:46 PM
Are you involved in xfce4 development? I'm wondering if anybody's working on the "todo" parts concerning xrandr-1.2 in xfce4, and/or what the plans are for direct, non-XINERAMA support for xrandr multi-head in xfce4.

If I understood agd5f correctly, XINERAMA was really meant to be used to get an extended desktop with zaphod mode, but some googling tells me it is also used on top of xrandr to report desktop size and configuration to the WM. But it is meant to be replaced completely by the xrandr API?

Anyway, with only one monitor attached:
$ xdpyinfo -ext XINERAMA
XINERAMA extension not supported by xdpyinfo
...
number of extensions: 30
...
XINERAMA
$ xdpyinfo -ext XINERAMA | grep head
returns nothing.

So that might be the problem. How do I get the x server to report monitor info via XINERAMA?

(BTW, I'm happy using the xrandr tool to configure the outputs, i.e. I don't really need to use the xfce4 settings manager, but xfce4 still need to be aware of the current setup, of course.)

agd5f
07-16-2009, 09:41 PM
There's two parts to xinerama, one is the muxer that allows you to use multiple heads as one big screen, the other is the screen geometry hints (how big heads are and how they are oriented). xrandr uses the second to expose the output topology so window managers and desktop environments will do the right thing WRT window placement.

bitnick
07-16-2009, 11:10 PM
Well, after recompiling xdpyinfo, mplayer, gtk+ and xscreensaver with the xinerama use flag set - things work differently, at least.

Xfce4 now insist that my main monitor is the smallest one, the one connected on DVI-1. As long as I use this monitor --right-of DVI-0, everything actually works, except that the menu bars end up on the wrong monitor (the smaller DVI-1 one).

If I run xrandr --output DVI-1 --left-of DVI-0, I get the menu on the bigger monitor, but the sizes of the different monitors get mixed up, so that the menu hangs in the air on the bigger monitor, and the background and apps that are fullscreened on the smaller monitor is scaled to the bigger monitor's resolution.

$ xrandr --output DVI-1 --right-of DVI-0
$ xdpyinfo -ext XINERAMA | grep head
head #0: 1680x1050 @ 1920,0
head #1: 1920x1200 @ 0,0
$ xrandr --output DVI-1 --left-of DVI-0
$ xdpyinfo -ext XINERAMA | grep head
head #0: 1680x1050 @ 0,0
head #1: 1920x1200 @ 1680,0

Any ideas? I guess I'd like xdpyinfo to report:
head #0: 1920x1200 @ 0,0
head #1: 1680x1050 @ 1920,0

i.e. the head numbers should be switched.

duby229
07-17-2009, 07:25 AM
If you want the headas switched then I think all you'll have to do is swap where they plug in.

bitnick
07-18-2009, 04:27 AM
That would work on the computer I've been testing this on - it's got two DVI outputs - but the computer to which I want to connect the TV has one DVI and one VGA connector, which makes switching the connectors more of a problem...

Chewi
10-10-2009, 06:56 AM
I was told that I'd need KMS for Zaphod to work. I have a Radeon 4670. I just gave it try with linux-next, xorg-server 1.6.4 and the git versions of mesa, libdrm and xf86-video-ati. I tried tinkering with the config (and checked against various examples on the web) but one of the monitors always gets no signal. After reading around a bit, I decided to see if I could do without Zaphod. I encountered several problems.

First of all, it seems that xf86-video-ati swaps the DVI outputs on my card from how fglrx does it. I don't really care and maybe this is well known but I thought I should mention it.

Secondly, nomatter how I tried to swap things around in various parts of the config, the monitor defined as "LeftOf" would always act as the primary one. By this, I mean the gdm login and my main XFCE desktop appears on that monitor. I want it to be the other way round.

Fullscreen apps like Neverball always appear on the primary monitor, regardless of which monitor I start them from. I guess this doesn't surprise me but I want to be able to run fullscreen apps on the other one. Is there actually any way to do this without Zaphod, short of messing around with Xephyr?

MythTV stretches itself across both monitors! It's supposed to support Xinerama and it actually seems to be aware of two different screens in the config but it still stretches itself across both regardless. When it starts, it actually says something like "Total desktop dim: 3200x1080, with 1 screen[s]". It seems to be as confused as I am.

I'd really appreciate some help with this. Tell me what configs to try and what logs to attach. Or maybe I should be looking at xorg 7.5 and/or xorg-server 1.7?

mtippett
10-10-2009, 11:04 AM
There are few caveats, so I have some clarify questions to ask first.

1) Do you want to have windows move between the two outputs? (This indicates dual-head or randr based setup).

2) How particular are you on the use of a particular player? (This indicates if you are willing to put up with quirks or issues or just want to find something that works).

Fundamentally, there are *many* *many* caveats with the software and multiple screens at the moment. And so you need put up with some quirks.

Chewi
10-10-2009, 11:15 AM
1) Not really. I didn't have this with fglrx and I don't really need it. It would be nice to have though.

2) MythTV is very important to me, I record and watch almost all my TV with it.

I'm having another go now. Will try Xephyr shortly. There's another issue that I forgot to mention. My second monitor is actually a TV capable of 1920x1080. My primary monitor is only capable of 1280x1024. When I set a virtual desktop size of 3200x1080, my bottom XFCE panel does correctly sit at the bottom of the screen (it's not cut off) but auto-hide is broken because when I move my mouse to the bottom, it doesn't appear. I have to make it always show. Maybe this is an XFCE bug but this is another reason why I'd prefer proper Zaphod mode.

Chewi
10-10-2009, 11:45 AM
I see this in the Xorg.0.log when I try Zaphod mode. Does this mean it's confusing my analogue TV out port (which isn't connected) with my two DVI ports? What can I do about that?

(EE) RADEON(1): reusing fd for second head
(II) RADEON(1): Output DIN using monitor section DVI-0
(II) RADEON(1): Output DIN disconnected
(WW) RADEON(1): No outputs definitely connected, trying again...
(II) RADEON(1): Output DIN disconnected
(WW) RADEON(1): Unable to find initial modes

Chewi
10-10-2009, 12:33 PM
Okay I created a monitor section called DIN, which it's now picking up for that. I've told it to ignore it. Still getting one monitor blank though. If I try to set a mode on the blank monitor, xrandr tells me "cannot find crtc for output DVI-0". Interestingly, the DIN output shows up in xrandr when I'm not trying Zaphod but not when I am trying it, regardless of whether I've set "Ignore" or not.

mtippett
10-10-2009, 02:41 PM
1) Not really. I didn't have this with fglrx and I don't really need it. It would be nice to have though.

2) MythTV is very important to me, I record and watch almost all my TV with it.

I'm having another go now. Will try Xephyr shortly. There's another issue that I forgot to mention. My second monitor is actually a TV capable of 1920x1080. My primary monitor is only capable of 1280x1024. When I set a virtual desktop size of 3200x1080, my bottom XFCE panel does correctly sit at the bottom of the screen (it's not cut off) but auto-hide is broken because when I move my mouse to the bottom, it doesn't appear. I have to make it always show. Maybe this is an XFCE bug but this is another reason why I'd prefer proper Zaphod mode.

Okay,

The two fundamental modes that you can use are

1) multi-head/single-GPU - called Zaphod (but increasingly incorrect with the AMD >2 display cards coming out).

This mode leaves you with two X heads, :0.0 and :0.1 which are more or less independent universes. With fglrx, you can do "aticonfig --initial=dual-head" and it should just light up.

2) RANDR 1.2

This mode gives you two viewports over a single surface and the ability to size and position independently. Benefit is configurability, disadvantage is application support. If you are using a RANDR 1.3 capable distribution, you can also set "--primary" to provide a hint to gnome-panel et al about which monitor is your "center of the universe".

Disadvantage here is that applications are mostly naive when it comes to multi-monitor modes. They may listen to the xinerama extension and place things intelligently, they may not. This goes right up and down the stack.

With fglrx, the only caveat here is that you need to set the virtual size to the max bounding square of a desktop that you care about. Then layouts should work.

If you go with this mode, you are likely to get quirks with apps, and to resolve those quirks you probably need to work upstream with the apps to get it going how you would like it.

Regards,

Matthew

Chewi
10-10-2009, 03:21 PM
Sorry but I do know all that. I've been saying that I can't get Zaphod mode to work with xf86-video-ati. I gave xrandr a try because it seems to be enough for most people but evidently not for me.

mtippett
10-10-2009, 05:22 PM
Sorry but I do know all that. I've been saying that I can't get Zaphod mode to work with xf86-video-ati. I gave xrandr a try because it seems to be enough for most people but evidently not for me.

I understand, since you indicate you have a Radeon HD 4xxx, you can at least confirm behaviour as described above with fglrx. I can attest that there has been a lot of work on the multi-head/randr usage recently on the fglrx side.

Regards,

Matthew

Chewi
10-10-2009, 05:35 PM
fglrx has worked well for me in this respect for a long time now but I still have the usual problems like instability and video tearing. I am very keen to make the transition to the open drivers.

agd5f
10-12-2009, 11:06 AM
zaphod mode does not work with acceleration on xf86-video-ati. If you want accel and multi-head, you need to use xrandr.

Chewi
10-12-2009, 11:59 AM
You said this back in April so I was under the impression it would work now?

It's a fairly complex fix. The problem is the current drm system only supports a single master, so you could probably get the dri working with one head. For zaphod with dri on all heads, you'll need the latest kms/mm drm and such. Fedora 11 has the necessary bits. In the meantime you could use something like xephyr to simulate zaphod over randr dualhead.

agd5f
10-12-2009, 12:06 PM
You said this back in April so I was under the impression it would work now?

It might work with kms, but I haven't tried it.

Chewi
10-12-2009, 12:10 PM
I was using KMS. I guess I should file a bug report? I was actually about to before you replied.

agd5f
10-12-2009, 12:13 PM
I was using KMS. I guess I should file a bug report? I was actually about to before you replied.

yes, please do.

Chewi
10-31-2009, 06:14 PM
The bug report is at http://bugs.freedesktop.org/24523.