TwinViewXineramaInfoOrder question

Since I doubt nvidia will ever allow an option to disable vsync via modprobeoption (to get old disabled by default behavior) and will never fix the multi GPU vsync forced on bug with XGL (works fine with a single card) I decided to go from a 2 video card setup to a single card now that I can drive 4 inputs off a single card and a single graphics card is now feasible.

So I have three monitors. One uses 2x 1920x2400 for 3840x2400, one is 3840x2160 (HDMI) and the other is 2560x1600. I want the middle monitor (HDMI-0 @ 3840x2400) to be the primary monitor.

Everything works as expected with except left most monitor is primary (instead of middle monitor):

Option      "metamodes" "DFP-3: 1920x2400 +0+0, DFP-4: 1920x2400 +1920+0, HDMI-0: 3840x2160_30 +3840+0, DFP-0: 2560x1600 +7680+280"
Option     "TwinViewXineramaInfoOverride" "3840x2400+0+0, 3840x2160+3840+0, 2560x1600+7680+280"

Now I tried using some negative values to have the middle monitor at +0+0 but that did not work as expected. Unfortunately I already packed up the video cards for RMA as this machine is at work and I can’t test this until next week.

My question is in order to get the middle monitor as the primary monitor (the one with all the desktop icons on) is TwinViewXineramaInfoOrder the option I need or do I need to make the middle monitor be positioned at 0x0?

The xinerama override is used for 2x 1920x2400 to show as one monitor to xinerama. How can I make the middle monitor the primary monitor?

Before they were separate screens with actual xinerama which worked correctly.

I think you would use this option to specify the primary display. So in your case:

Option “TwinViewXineramaInfoOverrideOrder” “HDMI-0”

should suffice.

My question was more about TwinViewXineramaInfoOrder and if it can be used to set the primary display more than anything else and not about TwinViewXineramaInfoOverride which I am already using and does not take display options like you put.

I’m sorry I meant to type “TwinViewXineramaInfoOrder”.

nvidiaXineramaInfoOrder is what you want to look at. With recent drivers, you can also use the “Primary” option in the “Monitor” section of xorg.conf. See http://http.download.nvidia.com/XFree86/Linux-x86/325.15/README/xrandrextension.html#randr-monitor-options for more details.

So TwinViewXineramaInfoOrder unfortunately can’t be used with TwinViewXineramaInfoOverrid which isn’t totally surprising.

I am having a bear of a problem geting thins how I want though. I need TwinViewXineramaInfoOverride as two if the displays are really one…

Left monitor (3840x2400):
DFP-2 (1920x2400), DFP-3 (1920x2400)

Middle (3840x2160) – Primary
DFP-1 (3840x2160)

Right monitor (2560x1600)
DFP-0 (2560x1600)

So what metamodes and xinerama info override do I use to acheive this?

If I use:

Option    "ConnectedMonitor" "DFP-3, DFP-2, DFP-1, DFP-0"
     Option     "metamodes" "DFP-3: 1920x2400 +0+0, DFP-2: 1920x2400 +1920+0, DFP-1: 3840x2160_30 +3840+0,  DFP-0: 2560x1600 +7680x280"
     Option     "TwinViewXineramaInfoOverride" "3840x2400+0+0, 3840x2160+3840+0, 2560x1600+7680+280"
     Option     "TwinViewXineramaInfoOrder" "DFP-1, DFP-2, DFP-3, DFP-0"

Gives me almost exactly what I want except the left most monitor is the primary monitor and I want the middle most monitor to be the primary.

I already have the display virtual size set to 10240 2400 so I can use negative offsets and changing it to be:

 Option     "metamodes" "DFP-3: 1920x2400 -3840+0, DFP-2: 1920x2400 -1920+0, DFP-1: 3840x2160_30 +0+0,  DFP-0: 2560x1600 +3840x280"

Does not do this. In fact it does something really weird…

It makes it so the primary monitor is now DFP-0 (and DFP-1 is to the left of it) and DFP-2/3 are to the right of DFP-0.

Does it help if you just change the order of the TwinViewXineramaInfoOverride string without changing anything else?

Option     "TwinViewXineramaInfoOverride" "3840x2160+3840+0, 3840x2400+0+0, 2560x1600+7680+280"

Also, which monitor does “xrandr --query” list as the primary one, and does changing it with “xrandr --output --primary” help?