How to disable Hardware Acceleration in Linux?

36,761

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.

Share:
36,761

Related videos on Youtube

Rui F Ribeiro
Author by

Rui F Ribeiro

Updated on September 18, 2022

Comments

  • Rui F Ribeiro
    Rui F Ribeiro almost 2 years

    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: [email protected]
           GLX Renderer: GeForce GT 630M/PCIe/SSE2 GLX Version: 4.5.0 NVIDIA 384.90 Direct Rendering: Yes
    
    • Zip
      Zip over 6 years
      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.
    • Admin
      Admin over 6 years
      @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.
    • Zip
      Zip over 6 years
      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...
  • Ivan Talalaev
    Ivan Talalaev over 5 years
    That approach not working unfortunately on xubuntu 18, do you know how to do the same on modern xorg?
  • mviereck
    mviereck over 5 years
    @IvanTalalaev Try to also disable extensions DRI2 and DRI3.
  • Ivan Talalaev
    Ivan Talalaev over 5 years
    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?
  • mviereck
    mviereck over 5 years
    @IvanTalalaev The file looks correct. Change its name to 90-disable-gpu.conf to make sure it is applied as the last one. Maybe another config overwrites it.
  • mviereck
    mviereck over 5 years
    @IvanTalalaev Output of xdpyinfo | head -n 60 shows you enabled X extensions.
  • Ivan Talalaev
    Ivan Talalaev over 5 years
    many thanks for your reply! Definitely xdpyinfo shows that GLX, DRI2 and DRI3 still loaded, that means 90-disable-gpu.conf not loaded or probably not working. I dig over documentation and realized that Disable should be replaced with off, and all should be probably placed in ServerLayout section but that doesn't work either. Mind if I drop you a line outside stackexchange?
  • Ivan Talalaev
    Ivan Talalaev over 5 years
    I have a few questions about x11docker as well actually)
  • Ivan Talalaev
    Ivan Talalaev over 5 years
  • Mio Rin
    Mio Rin over 5 years
    @IvanTalalaev you put the file in the incorrect directory. It needs to be in /etc/X11/xorg.conf.d/. /usr/share is not for local system configuration files.
  • Mio Rin
    Mio Rin over 5 years
    Please read man xorg.conf to see why changes to /usr/share/X11/xorg.conf.d/ do not work.
  • Ivan Talalaev
    Ivan Talalaev over 5 years
    @Mioriin could you give more meaningful comment rather than "read smth to understand why it doesn't work"
  • Ivan Talalaev
    Ivan Talalaev over 5 years
    @Mioriin from man xorg.conf i.imgur.com/UYOfSys.png
  • Mio Rin
    Mio Rin over 5 years
    /usr/share is reserved for package defaults and files in there should not be tampered with, in order to maintain at least one version of a default configuration to fallback to when tinkering. If you need a file from there, copy (or recreate) it to one of the other locations.
  • latj
    latj over 5 years
    I have the same issue as @IvanTalalaev and there is no /etc/X11/xorg.conf.d directory on my ubuntu 16 installation.
  • mviereck
    mviereck over 5 years
    @latj You can create directory /etc/X11/xorg.conf.d yourself. Xorg will regard it.