Yesterday I decided to learn how to switch between my low power usage GPU and my discrete GPU in my laptop using Prime. I started by running this command: xrandr --listproviders.

I got the following result:

Providers: number : 2
Provider 0: id: 0x75 cap: 0x9, Source Output, Sink Offload crtcs: 3 outputs: 3 associated providers: 1 name:AMD Radeon R6 Graphics @ pci:0000:00:01.0
Provider 1: id: 0x3f cap: 0x4, Source Offload crtcs: 0 outputs: 0 associated providers: 1 name:AMD Radeon (TM) R7 M360 @ pci:0000:03:00.0

I then ran this command to switch to my discrete GPU: xrandr

--setprovideroffloadsink 1 0.

This resulted in the following result to my GPU with this command DRI_PRIME=1 glxinfo | grep "OpenGL renderer":

OpenGL renderer string: AMD Radeon (TM) R7 M360 (AMD ICELAND / DRM 3.18.0 / 4.13.8-041308-generic, LLVM 5.0.0)

Now however when I attempt to switch back to using my low powered Radeon R6 with xrandr --setprovideroffloadsink 0 1 I get:

X Error of failed request:  BadValue (integer parameter out of range for operation)
  Major opcode of failed request:  140 (RANDR)
  Minor opcode of failed request:  34 (RRSetProviderOffloadSink)
  Value in failed request:  0x75
  Serial number of failed request:  16
  Current serial number in output stream:  17

I should mention I am logging into the GNOME session using Xorg on Ubuntu 17.10. I would love to be able to switch back to my R6 so any help is much appreciated.

  • what you should be doing is xrandr --setprovideroffloadsink 0 1 once, then add DRI_PRIME=1 to the command you want to run with the second GPU. You can also choose "Launch using Dedicated Graphics Card" in the right-click menu of any app in the app list. – Tooniis Sep 25 at 13:16

I never used --setprovideroffloadsink. I just prepend DRI_PRIME=1 to the program that I want to use with my dGPU. It always worked fine.

You can check your GPU usage with radeontop to see if it is really used. Though I have hybrid graphics with Intel+AMD. I do not know what radeontop shows with 2 AMD GPUs.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.