View previous topic :: View next topic |
Author |
Message |
Aquous l33t

Joined: 08 Jan 2011 Posts: 700
|
Posted: Tue Mar 31, 2015 8:38 pm Post subject: xrandr provider stuff providing problems (extreme lag) |
|
|
Hi guys,
Situation:
- Fully up-to-date ~amd64 system.
- Primary GPU: NVIDIA 8600 GT, connected over PCIe. Configured as primary in BIOS. Connected over VGA to my main monitor.
- Secondary GPU: AMD Radeon HD 5450, connected over PCI. Configured as secondary in BIOS. Connected over HDMI to my TV.
- Of course, I can only use the open-source drivers. I'm on kernel 3.19.3 with the relevant mesa drivers set to gallium. I am not using any xorg.conf.
(I know this is absolutely non-ideal in so many ways, but this is what we have to work with. Note that everything works perfectly fine on Windows 7, meaning that my problems are definitely software- (or, of course, user- )related.)
The problem: with a separate X server per card/monitor (those are equivalent given my set-up), everything works just fine. When attempting to use the xrandr provider code to combine both monitors into a single desktop (=within a single X server!), the system becomes EXTREMELY slow and is unusable.
Given that the provider stuff is extremely poorly documented, I'll just provide a log of what I've tried so far. In an attempt to isolate the problem, all of this is run under an X server running only openbox, with no wallpaper enabled, meaning that literally nothing is rendered from login onward except for my xterm window.
Code: | $ xrandr --listproviders
Providers: number : 2
Provider 0: id: 0xa5 cap: 0x7, Source Output, Sink Output, Source Offload crtcs: 2 outputs: 2 associated providers: 0 name:nouveau
Provider 1: id: 0x56 cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 4 outputs: 3 associated providers: 0 name:radeon |
Everything is looking good so far. Now let's attempt to have the radeon GPU drive itself:
Code: | $ xrandr --setprovideroutputsource radeon radeon
Screen 0: minimum 320 x 200, current 1920 x 1080, maximum 8192 x 8192
VGA-2 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 480mm x 270mm
1920x1080 60.00*+
1680x1050 59.95
1400x1050 59.98
1600x900 59.98
1280x1024 75.02 60.02
1440x900 59.89
1280x800 59.81
1152x864 75.00
1280x720 59.97
1024x768 75.08 60.00
832x624 74.55
800x600 75.00 60.32 56.25
640x480 75.00 60.00
720x400 70.08
DVI-I-2 disconnected (normal left inverted right x axis y axis) |
Hmm... looks like that didn't work. My X session appears to be hosed now, since the radeon card has just simply vanished:
Code: | $ xrandr --listproviders
Providers: number : 1
Provider 0: id: 0xa5 cap: 0x7, Source Output, Sink Output, Source Offload crtcs: 2 outputs: 2 associated providers: 0 name:nouveau
$ xrandr --setprovideroutputsourcer nouveau radeon
Could not find provider with name radeon |
Restart X, try again:
Code: | $ xrandr --listproviders
Providers: number : 2
Provider 0: id: 0xa5 cap: 0x7, Source Output, Sink Output, Source Offload crtcs: 2 outputs: 2 associated providers: 0 name:nouveau
Provider 1: id: 0x56 cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 4 outputs: 3 associated providers: 0 name:radeon |
Looks like nouveau is the primary provider. Since radeon apparently can't drive itself, let's see what happens if we hook it up to the primary provider instead.
Code: | $ xrandr --setprovideroutputsource radeon nouveau
$ xrandr
Screen 0: minimum 320 x 200, current 1920 x 1080, maximum 8192 x 8192
VGA-2 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 480mm x 270mm
1920x1080 60.00*+
1680x1050 59.95
1400x1050 59.98
1600x900 59.98
1280x1024 75.02 60.02
1440x900 59.89
1280x800 59.81
1152x864 75.00
1280x720 59.97
1024x768 75.08 60.00
832x624 74.55
800x600 75.00 60.32 56.25
640x480 75.00 60.00
720x400 70.08
DVI-I-2 disconnected (normal left inverted right x axis y axis)
HDMI-1-0 connected (normal left inverted right x axis y axis)
1280x720 60.00 + 50.00 59.94
1920x1080i 60.00 50.00 59.94
720x576 50.00
720x480 60.00 59.94
640x480 60.00 59.94
DVI-1-0 disconnected (normal left inverted right x axis y axis)
VGA-1-0 disconnected (normal left inverted right x axis y axis)
640x480 (0x60) 25.200MHz
h: width 640 start 656 end 752 total 800 skew 0 clock 31.50KHz
v: height 480 start 490 end 492 total 525 clock 60.00Hz |
Success! Both monitors are visible, so both cards are known to the X server now. Let's actually enable the radeon card:
Code: | $ xrandr --output HDMI-1-0 --right-of VGA-2 --preferred |
Now is where the problem comes in: at this point, everything appears to work, unless any window is dragged even one pixel off of the first (nvidia) monitor into the second one (radeon). (Recall that this test was run in openbox without a wallpaper, meaning that literally nothing had been rendered by the radeon card yet up to that very first window; my xterm was, of course, on the nvidia monitor. Once the radeon card has to receive any input everything becomes DOG slow; the system appears to advance a single frame once every six seconds or so, and I have to (painstakingly) SSH in and kill the X server.
I have no idea what is going on, except for the fact that it is a Linux-specific software problem. The same configuration works perfectly fine in Windows 7, accelerated and all.
Can anyone throw me a bone here? Any X gurus on the forums?
(The Xorg logs don't show anything interesting, nor does dmesg ) |
|
Back to top |
|
 |
Aquous l33t

Joined: 08 Jan 2011 Posts: 700
|
Posted: Wed May 06, 2015 2:57 pm Post subject: |
|
|
Humble bump... I'm aware the problem might be too obscure for anyone to be able to help me, but in that case, what should I do then? |
|
Back to top |
|
 |
Roman_Gruber Advocate

Joined: 03 Oct 2006 Posts: 3806 Location: Austro Bavaria
|
Posted: Wed May 06, 2015 3:09 pm Post subject: |
|
|
My only advise would be to aim for a setup with identical GPU brands.
I discussed such a topic ages ago here and what i researched is that
2x nvidia gpus
2x amd gpus
work the best but teh mixture does not because of the binary drivesr or the open source counterpart.
your nvidia-gpu seems to be older as my 9800m gts and therefore you need the 340.6 nvidia drivers and 2 nvidia-gpus.
considering the age of your hardware I recommned that you sell one of your gpus and buy another cheap gpu on teh second hand market.
i may recommend getting 2xnvida gpus and using the 340.6 drivers. please be aware that you may aim for a similar card!
Yes, it is kinda a workaround but considering that those gpu brands do not like buyers to crossbuy cards you should stick to one brand of gpus usually.
I know nvidia works afaik. No idea about AMD and therefore no recommendation for AMD |
|
Back to top |
|
 |
el muchacho Tux's lil' helper

Joined: 26 Mar 2015 Posts: 78
|
Posted: Thu May 07, 2015 8:41 am Post subject: |
|
|
Hello,
I've had something similar also not identical (I don't have nVidia).
With my ATI GPUs, running with the open-source drivers, my dual-screen would be unusable because of the lags.
The solution for me was to move to the official ATI driver. |
|
Back to top |
|
 |
Aquous l33t

Joined: 08 Jan 2011 Posts: 700
|
Posted: Fri May 08, 2015 8:28 pm Post subject: |
|
|
el muchacho wrote: | Hello,
I've had something similar also not identical (I don't have nVidia).
With my ATI GPUs, running with the open-source drivers, my dual-screen would be unusable because of the lags.
The solution for me was to move to the official ATI driver. |
Thank you! This is very helpful... shows I'm not going crazy and that it's not a complex inter-vendor GPU issue, but just a problem with AMD GPUs in general.
Unfortunately, switching to the proprietary drivers is not an option for me, given that the new libgl abi allowing for cross-vendor libgl implementations to coexist on the same system is not ready yet... Time to file a bug report? (unless someone knows a way to make proprietary AMD + NVIDIA coexist in one and the same X server?)
As a stupid workaround I can use the open source drivers run a second X server with a second session run from a second display manager (since systemd broke running startx directly ) driving my TV, so I can at least use my TV, but I obviously do not particularly like that solution! |
|
Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|