Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
xrandr provider stuff providing problems (extreme lag)
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Desktop Environments
View previous topic :: View next topic  
Author Message
Aquous
l33t
l33t


Joined: 08 Jan 2011
Posts: 700

PostPosted: Tue Mar 31, 2015 8:38 pm    Post subject: xrandr provider stuff providing problems (extreme lag) Reply with quote

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
View user's profile Send private message
Aquous
l33t
l33t


Joined: 08 Jan 2011
Posts: 700

PostPosted: Wed May 06, 2015 2:57 pm    Post subject: Reply with quote

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
View user's profile Send private message
Roman_Gruber
Advocate
Advocate


Joined: 03 Oct 2006
Posts: 3806
Location: Austro Bavaria

PostPosted: Wed May 06, 2015 3:09 pm    Post subject: Reply with quote

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
View user's profile Send private message
el muchacho
Tux's lil' helper
Tux's lil' helper


Joined: 26 Mar 2015
Posts: 77

PostPosted: Thu May 07, 2015 8:41 am    Post subject: Reply with quote

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
View user's profile Send private message
Aquous
l33t
l33t


Joined: 08 Jan 2011
Posts: 700

PostPosted: Fri May 08, 2015 8:28 pm    Post subject: Reply with quote

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 :evil: ) driving my TV, so I can at least use my TV, but I obviously do not particularly like that solution!
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Desktop Environments All times are GMT
Page 1 of 1

 
Jump to:  
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