Bug Report xcomposite performs 10x worse on proprietary drivers

Franc[e]sco

New Member
I've been using OBS to record osu! (a rhythm game I run though wine) on Ubuntu 15.04 using the xcomposite window capture feature of obs-studio.

On the open-source radeon drivers it's fine and it doesn't the game's performance too much (the game drops from 2500+ fps to 1000-1500 while recording, which is acceptable).

However, if I switch to the proprietary AMD drivers (fglrx-updates) and try to do the same thing, I notice that the game seems to get capped at around 100 fps as soon as I add the xcomposite window capture, even if I'm not recording. Hiding the preview doesn't help. Using monitor capture works fine but it affects performance about 50% more than xcomposite, and playing with less than 1000 fps is very bad, so that's not really an option. Plus, when I'm livestreaming I'd like to alt tab out of the game without people seeing what I'm doing.

I'd like to be able to use the proprietary drivers because while the open-source ones perform just as good, their performance degrades over time and I'd have to reboot every day for optimal performance.
At the moment, I'm testing the open source drivers once again but with xorg-edgers to see if it fixes the performance degradation.

Log (ignore the bad window errors, I was switching windows around): https://gist.github.com/7473328495e46a959396

I'm not sure whether this affects all games so here's the steps to reproduce it with my specific game on Ubuntu 15.04:
  • go to Additional Drivers and install fglrx-updates
  • reboot
  • Code:
    sudo add-apt-repository ppa:pipelight/stable
    sudo apt-get update
    sudo apt-get install --install-recommends wine-staging
    sudo apt-get install wine-staging-compat
    sudo apt-get install winetricks
  • Code:
    WINEPREFIX=~/.wine WINEARCH=win32 winecfg
    and close it
  • Code:
    WINEPREFIX=~/.wine WINEARCH=win32 winetricks -q dotnet45 corefonts
    wget 'https://m1.ppy.sh/r/osu!install.exe' --no-check-certificate
    WINEPREFIX=~/.wine WINEARCH=win32 wine 'osu!install.exe'
  • switch release stream to cutting-edge in the options as soon as osu starts and restart when required, then close the game
  • Code:
    WINEPREFIX=~/.wine WINEARCH=win32 wine '~/.wine/drive_c/users/<your username>/Local Settings/Application Data/osu!/osu!.exe'
  • enable "Show FPS Counter" in the options
  • set frame limiter to unlimited in the options
  • open OBS
  • add a window capture (xcomposite) and select osu!cuttingedge. you will have to tick "switch blue and red" for proper color
  • watch as the frame time in the bottom right immediately drops to around 10ms (100 fps)
 
Last edited:

Franc[e]sco

New Member
my current solution is to use open-source drivers (with xorg-edgers they don't have any performance degradation), but be aware that obs has huge issues on the proprietary drivers
 

ThePooN

New Member
Hey, guess what!
I'm playing osu! and recording/streaming with obs-studio on Linux too!

I just read this reddit thread, and apparently, we need to wait for Wayland to gain performances. Seems like you're on Ubuntu and they unfortunately don't really support this project.
I'm using the nVidia proprietary drivers with GTX980 and i7 3770, I can perform 1080p@60fps recording, but unfortunately there are some frame drops probably because of X. It isn't as smooth as when I'm playing. However, increasing OBS/X priority in htop seems to have some effect, but it's still not enough.

Yesterday, I got a lot of performance issues when streaming 2 different VLC windows (with 60fps streams). I even switched to 720p@30fps because 60fps was just useless!
https://www.youtube.com/watch?v=okB294uowGQ
Here the level isn't that high, so it is still watchable. But this is clearly <30fps and I couldn't bear watching some AR10.3 DT plays with that low framerate!
 
Top