7

How can I turn off Hardware Acceleration in Linux, also known as Direct Rendering. I wish to turn this off, as it messes with some applications like OBS Studio which can't handle capturing of hardware acceleration on other applications since it's enabled for the entire system. Certain apps can turn it on and off, but can't do this for desktop and other apps.

When adding a source to capture from in OBS it just shows a blank capture image, for example if I wanted to record my desktop, it'll just show it as a blank capture input. Doesn't work if I want to capture web browser like Google Chrome, unless it's a single window with no tabs, and hardware acceleration is turned off in it's settings.

Graphics:  Card-1: Intel 3rd Gen Core processor Graphics Controller bus-ID: 00:02.0
       Card-2: NVIDIA GF108M [GeForce GT 630M] bus-ID: 01:00.0
       Display Server: X.Org 1.15.1 driver: nvidia Resolution: 1366x768@60.0hz
       GLX Renderer: GeForce GT 630M/PCIe/SSE2 GLX Version: 4.5.0 NVIDIA 384.90 Direct Rendering: Yes
3
  • Try asking about a specific scenario, not something general like this. Like broadcasting a chrome window through X and OBS on some distribution with some video card and some module. Also refer to where you've set which setting off exactly. This helps people understand your setup.
    – Zip
    Dec 3, 2017 at 18:10
  • @Zip Maybe you didn't read the question before properly and understand it. Check and try again, I have asked about a specific scenario, and that is to disable Hardware Acceleration for the whole system not just parts of it just for few applications.
    – user91679
    Dec 3, 2017 at 18:57
  • Well, I did not explain myself appropriately. Applications will individually access hardware resources directly through the modules or through libs generally. I don't think there is a system wide simple switch for that. Anyway you don't mention your distro nor which drivers you're using, which may influence the answer. You seem to have issues with a very particular obs setup that may have an easier solution than what you asked, with the bonus that you may keep acceleration on for other stuff. Just ignore this from me if you disagree though, to keep comments clean...
    – Zip
    Dec 3, 2017 at 19:21

2 Answers 2

11

You can configure Xorg to disable OpenGL / GLX.

For a first try, you can run a second X session: switch to tty2, log in and type:

startx -- :2 vt2 -extension GLX

To permanently disable hardware acceleration, create a file:

/etc/X11/xorg.conf.d/disable-gpu.conf

with the the content:

Section "Extensions"
    Option "GLX" "Disable"
EndSection

Note that Xwayland in Wayland compositors like Gnome3-Wayland will ignore settings in xorg.conf.d.

16
  • That approach not working unfortunately on xubuntu 18, do you know how to do the same on modern xorg? Oct 11, 2018 at 6:00
  • @IvanTalalaev Try to also disable extensions DRI2 and DRI3.
    – mviereck
    Oct 11, 2018 at 9:21
  • thanks, but that doesn't work either. Let me clarify: in my system I have xorg.conf.d in /usr/share/X11/ I placed there disable-gpu.conf file with required disable lines as depicted on image i.imgur.com/QKHzz6l.png that is right? Oct 11, 2018 at 9:42
  • 2
    @IvanTalalaev Output of xdpyinfo | head -n 60 shows you enabled X extensions.
    – mviereck
    Oct 11, 2018 at 10:10
  • 1
    I have the same issue as @IvanTalalaev and there is no /etc/X11/xorg.conf.d directory on my ubuntu 16 installation.
    – latj
    Nov 1, 2018 at 21:03
1

The solution above didn't work for me. It caused an error on boot to the effect of unw_get_proc_name failed. I don't know if this happened for anyone else, but I found a different solution.

I modified /usr/share/X11/xorg.conf.d/10-nvidia.conf. For me, the file contained the following pre-edit:

Section "OutputClass"
    Identifier "nvidia"
    MatchDriver "nvidia-drm"
    Driver "nvidia"
    Option "AllowEmptyInitialConfiguration"
    Option "Accel" "off"
    ModulePath "/usr/lib/x86_64-linux-gnu/nvidia/xorg"
EndSection

I added a line below Option "AllowEmptyInitialConfiguration": Option "Accel" "off". Using this modification instead of the solution above, my system booted and nvidia-smi didn't show Xorg anymore.

Hope this helps somebody.

1
  • This solution also removed from GPU memory sddm process and some other minor, freeing 600MB memory. On modern CPU user interface is as fast as on acceleration, thanks!
    – PeterM
    May 5 at 3:56

You must log in to answer this question.