Hybrid graphics - "radeon" driver unloaded, "modesetting" loaded?

Lennert Van Alboom lennert at vanalboom.org
Thu Feb 4 11:05:40 CET 2016

Hello. I've got a HP Elitebook 850g1 with hybrid graphics:

	$ lspci | grep VGA
	00:02.0 VGA compatible controller: Intel Corporation Haswell-ULT Integrated Graphics Controller (rev 0b)
	03:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Mars [Radeon HD 8730M] (rev ff)

    $ sudo cat /sys/kernel/debug/vgaswitcheroo/switch 
    1:DIS-Audio: :Off:0000:03:00.1
    2:DIS: :DynOff:0000:03:00.0

I'm running Debian (sid, x86_64) with kernel 4.4.0-trunk-amd64 (same happens with the 4.3.0-1-amd64 kernel) and Xorg 1:7.7+13 (1.18.0).
I'm having an odd issue where Xorg loads the correct "radeon" driver, but after a split second, unloads it again and loads "modesetting":

	[    13.688] (II) config/udev: removing GPU device /sys/devices/pci0000:00/0000:00:1c.4/0000:03:00.0/drm/card1 /dev/dri/card1
	[    13.688] xf86: remove device 1 /sys/devices/pci0000:00/0000:00:1c.4/0000:03:00.0/drm/card1
	[    13.693] (II) UnloadModule: "radeon"
	[    13.693] (II) UnloadSubModule: "fb"
	[    13.693] (II) Unloading fb
	[    13.693] (II) UnloadSubModule: "glamoregl"
	[    13.693] (II) Unloading glamoregl
	[    13.693] (II) config/udev: Adding drm device (/dev/dri/card1)
	[    13.693] (II) xfree86: Adding drm device (/dev/dri/card1)
	[    13.693] (II) LoadModule: "modesetting"
	[    13.693] (II) Loading /usr/lib/xorg/modules/drivers/modesetting_drv.so

Full Xorg log at http://ziff.soleus.nu/Xorg.0.log.txt. I don't have a xorg.conf, and no snippets in xorg.conf.d either.

This results in two providers in xrandr, Intel and modesetting (as opposed to radeon, as I had before):

	$ xrandr --listproviders
	Providers: number : 2
	Provider 0: id: 0x7d cap: 0xb, Source Output, Sink Output, Sink Offload crtcs: 4 outputs: 6 associated providers: 0 name:Intel
	Provider 1: id: 0x140 cap: 0x3, Source Output, Sink Output crtcs: 2 outputs: 2 associated providers: 0 name:modesetting

I can't set an offload sink:

	$ xrandr --setprovideroffloadsink modesetting Intel
	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:  0x140
	Serial number of failed request:  16
	Current serial number in output stream:  17

And, I suppose this is normal because of the above, DRI_PRIME doesn't do much:

	$ glxinfo | grep "OpenGL renderer"
	OpenGL renderer string: Mesa DRI Intel(R) Haswell Mobile 
	$ DRI_PRIME=1 glxinfo | grep "OpenGL renderer"
	OpenGL renderer string: Mesa DRI Intel(R) Haswell Mobile 

Strangely enough, the /sys device link for "card1", as mentioned in the Xorg log, still points to the "correct" ATI device:

	$ ls -l /sys/class/drm/card1/device
	lrwxrwxrwx 1 root root 0 Feb  3 21:14 /sys/class/drm/card1/device -> ../../../0000:03:00.0

I'm a bit stumped here. How can I get my radeon device back in the xrandr providers and working via DRI_PRIME?


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://lists.x.org/archives/xorg-driver-ati/attachments/20160204/b57ba7e6/attachment.sig>

More information about the xorg-driver-ati mailing list