How to disable my APU and use the GPU (AMD Radeon) open source driver instead?

5,278

I only found a way to activate it dynamically when needed; this answer is a rewording/restructuring of my two previous answers here and here --- these were more oriented on the temperature sensors on the ATI card so I think it's worthwhile to post this answer here.

In recent (3.13+) kernel the discrete driver is normally disabled:

[:~/Pictures/2014] 1 % sudo cat /sys/kernel/debug/vgaswitcheroo/switch
0:DIS: :DynOff:0000:01:00.0
1:IGD:+:Pwr:0000:00:02.0

...but ready to start when needed. To enable the offloading of graphical tasks to the discrete card, you have to enable it before:

  1. List the graphic providers:

    xrandr --listproviders
    

    which gives:

    Providers: number : 2
    Provider 0: id: 0x79 cap: 0xb, Source Output, Sink Output, Sink Offload crtcs: 2 outputs: 4 associated providers: 0 name:Intel
    Provider 1: id: 0x53 cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 4 outputs: 0 associated providers: 0 name:radeon
    

    ...and sometime duplicate entries with the same id. Make a note of the id hexadecimal codes and

  2. activate them:

    xrandr --setprovideroffloadsink 0x53 0x79 
    

    (you have to substitute the codes of the ATI and Intel providers, in that order --- at least I think)

Now you can activate the card for a graphical application by setting the DRI_PRIME environment variable. For example by opening another windows and starting glxgears in it:

DRI_PRIME=1 glxgears -info

and check again while the above is running, you should have:

[:~/Pictures/2014] % sudo cat /sys/kernel/debug/vgaswitcheroo/switch
0:DIS: :DynPwr:0000:01:00.0
1:IGD:+:Pwr:0000:00:02.0

which means that the card is ON.

A lot of info is from this Arch forum entry and this Arch doc page (hat off to Arch for the quality of documentation and for having it up-to-date...).

Share:
5,278
Muhammad Gelbana
Author by

Muhammad Gelbana

Updated on September 18, 2022

Comments

  • Muhammad Gelbana
    Muhammad Gelbana over 1 year

    I'm using Ubuntu 1410 (Kernel v3.13)

    #uname -r
    3.13.0-27-generic
    

    I've been trying to disable the APU (i.e. Intel's graphics software driver) and use the GPU (i.e. Xorg open source driver for Radeon) instead. But I failed.

    From all the links I visited I only found out that the GPU has been disabled (i.e. DynOff)

    #sudo cat /sys/kernel/debug/vgaswitcheroo/switch
    [sudo] password for mgelbana: 
    0:IGD:+:Pwr:0000:00:02.0
    1:DIS: :DynOff:0000:01:00.0
    

    DIS: Discrete graphics card

    IGD: Integrated graphics card

    I've also enabled radeon's dynamic power management (DPM) in the kernel parameters (i.e. radeon.dpm=1)

    GRUB_CMDLINE_LINUX_DEFAULT="drm.debug=0xe plymouth:debug radeon.dpm=1"
    

    To know which driver is currently working, I open Ubuntu's Settings > Details and check the following information in the Overview section:

    Graphics: Intel® Ivybridge Mobile
    

    So how can I enable the open source Radeon driver ?

  • Muhammad Gelbana
    Muhammad Gelbana over 9 years
    None of these commands worked as expected. Thanks anyway.
  • Muhammad Gelbana
    Muhammad Gelbana over 8 years
    Now that I've upgraded to 15.10, it works :)
  • Abbas Gadhia
    Abbas Gadhia over 5 years
    @MuhammadGelbana nice to see you here as well. saw you earlier in the calcite mailing list :)