1

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 ?

1 Answers1

1

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...).

Rmano
  • 31,947