Bug 76840

Summary: HybridGraphics: Kernel driver in use: radeon but adapter not listed
Product: DRI Reporter: Michael Eagle <xanto>
Component: DRM/RadeonAssignee: Default DRI bug account <dri-devel>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: medium    
Version: XOrg git   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
xorg.conf , Xorg.0.log - intel device, Xorg.0.log - radeon device, Xorg.1.log intel device, lspci , dmesg, inxi, glxinfo, xrandr, fglrx Xorg.1.log
none
crash
none
crashimg2
none
crashimg3 none

Description Michael Eagle 2014-03-31 14:40:00 UTC
Created attachment 96665 [details]
xorg.conf , Xorg.0.log - intel device, Xorg.0.log - radeon device, Xorg.1.log intel device, lspci , dmesg, inxi, glxinfo, xrandr, fglrx Xorg.1.log

Hello,

I'm using a Dell Inspiron Laptop Model 3537 with latest manufacturer BIOS update and firmware-addon-dell installed.

Hardware consists of an Intel i5-4200U (HD4400) + AMD Radeon HD 8670M.

I've tried latest Linux Mint Live/Install ISO, but xserver won't start unless I unload radeon module.

After latest software stack upgrade (kernel 3.14 + oibaf ppa https://launchpad.net/~oibaf/+archive/graphics-drivers [mesa10.2-git, ati-1.7.3-git]), 

system boots fine, dmesg seems fine:

dmesg  | egrep "radeon|drm"
[    2.448474] [drm] Initialized drm 1.1.0 20060810
[    2.478265] [drm] Memory usable by graphics device = 2048M
[    2.478273] fb: conflicting fb hw usage inteldrmfb vs VESA VGA - removing generic driver
[    2.496049] [drm] radeon kernel modesetting enabled.
[    2.496127] radeon 0000:03:00.0: enabling device (0006 -> 0007)
[    2.525982] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[    2.525983] [drm] Driver supports precise vblank timestamp query.
[    2.655140] fbcon: inteldrmfb (fb0) is primary device
[    4.169021] [drm] Enabling RC6 states: RC6 on, RC6p off, RC6pp off
[    4.173215] i915 0000:00:02.0: fb0: inteldrmfb frame buffer device
[    4.176558] [drm] Initialized i915 1.6.0 20080730 for 0000:00:02.0 on minor 0
[    4.176955] [drm] initializing kernel modesetting (HAINAN 0x1002:0x6660 0x1028:0x05EA).
[    4.177008] [drm] register mmio base: 0xC0500000
[    4.177009] [drm] register mmio size: 262144
[    4.538007] radeon 0000:03:00.0: VRAM: 1024M 0x0000000000000000 - 0x000000003FFFFFFF (1024M used)
[    4.538009] radeon 0000:03:00.0: GTT: 1024M 0x0000000040000000 - 0x000000007FFFFFFF
[    4.538010] [drm] Detected VRAM RAM=1024M, BAR=256M
[    4.538011] [drm] RAM width 64bits DDR
[    4.538115] [drm] radeon: 1024M of VRAM memory ready
[    4.538116] [drm] radeon: 1024M of GTT memory ready.
[    4.538129] [drm] Loading HAINAN Microcode
[    4.538241] [drm] Internal thermal controller without fan control
[    4.538304] [drm] probing gen 2 caps for device 8086:9c18 = 5323c42/0
[    4.546378] [drm] radeon: dpm initialized
[    4.546382] [drm] GART: num cpu pages 262144, num gpu pages 262144
[    4.547031] [drm] probing gen 2 caps for device 8086:9c18 = 5323c42/0
[    4.547036] [drm] PCIE gen 2 link speeds already enabled
[    4.548758] [drm] PCIE GART of 1024M enabled (table at 0x0000000000040000).
[    4.548860] radeon 0000:03:00.0: WB enabled
[    4.548863] radeon 0000:03:00.0: fence driver on ring 0 use gpu addr 0x0000000040000c00 and cpu addr 0xffff880035ab0c00
[    4.548865] radeon 0000:03:00.0: fence driver on ring 1 use gpu addr 0x0000000040000c04 and cpu addr 0xffff880035ab0c04
[    4.548866] radeon 0000:03:00.0: fence driver on ring 2 use gpu addr 0x0000000040000c08 and cpu addr 0xffff880035ab0c08
[    4.548867] radeon 0000:03:00.0: fence driver on ring 3 use gpu addr 0x0000000040000c0c and cpu addr 0xffff880035ab0c0c
[    4.548869] radeon 0000:03:00.0: fence driver on ring 4 use gpu addr 0x0000000040000c10 and cpu addr 0xffff880035ab0c10
[    4.548871] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[    4.548871] [drm] Driver supports precise vblank timestamp query.
[    4.548895] radeon 0000:03:00.0: irq 63 for MSI/MSI-X
[    4.548906] radeon 0000:03:00.0: radeon: using MSI.
[    4.548930] [drm] radeon: irq initialized.
[    4.745915] [drm] ring test on 0 succeeded in 1 usecs
[    4.745921] [drm] ring test on 1 succeeded in 1 usecs
[    4.745926] [drm] ring test on 2 succeeded in 1 usecs
[    4.745988] [drm] ring test on 3 succeeded in 2 usecs
[    4.745996] [drm] ring test on 4 succeeded in 1 usecs
[    4.747414] [drm] ib test on ring 0 succeeded in 0 usecs
[    4.747443] [drm] ib test on ring 1 succeeded in 0 usecs
[    4.747467] [drm] ib test on ring 2 succeeded in 0 usecs
[    4.747489] [drm] ib test on ring 3 succeeded in 0 usecs
[    4.747513] [drm] ib test on ring 4 succeeded in 1 usecs
[    4.747825] [drm] Radeon Display Connectors
[    4.747835] radeon 0000:03:00.0: No connectors reported connected with modes
[    4.747837] [drm] Cannot find any crtc or sizes - going 1024x768
[    4.750180] [drm] fb mappable at 0xA1250000
[    4.750181] [drm] vram apper at 0xA0000000
[    4.750182] [drm] size 3145728
[    4.750183] [drm] fb depth is 24
[    4.750184] [drm]    pitch is 4096
[    4.750269] radeon 0000:03:00.0: fb1: radeondrmfb frame buffer device
[    4.751709] [drm] Initialized radeon 2.37.0 20080528 for 0000:03:00.0 on minor 1



However, xrandr, inxi and glxinfo (noone except lspci) won't show the radeon device.

Starting X with device configured as radeon, crashes with the error

(EE) no screens found(EE) 

LIBGL_DEBUG=verbose DRI_PRIME=0 glxgears
libGL: OpenDriver: trying /usr/lib/x86_64-linux-gnu/dri/tls/i965_dri.so
libGL: OpenDriver: trying /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
libGL: Can't open configuration file /root/.drirc: No such file or directory.
libGL: Can't open configuration file /root/.drirc: No such file or directory.
Running synchronized to the vertical refresh.  The framerate should be
approximately the same as the monitor refresh rate.
305 frames in 5.0 seconds = 60.952 FPS
301 frames in 5.0 seconds = 60.000 FPS



LIBGL_DEBUG=verbose DRI_PRIME=1 glxgears
libGL: OpenDriver: trying /usr/lib/x86_64-linux-gnu/dri/tls/i965_dri.so
libGL: OpenDriver: trying /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
libGL: Can't open configuration file /root/.drirc: No such file or directory.
libGL: Can't open configuration file /root/.drirc: No such file or directory.
Running synchronized to the vertical refresh.  The framerate should be
approximately the same as the monitor refresh rate.
36463 frames in 5.0 seconds = 7292.515 FPS
35941 frames in 5.0 seconds = 7188.027 FPS
35969 frames in 5.0 seconds = 7193.778 FPS
35990 frames in 5.0 seconds = 7197.914 FPS
36353 frames in 5.0 seconds = 7270.465 FPS
36544 frames in 5.0 seconds = 7308.674 FPS
36281 frames in 5.0 seconds = 7256.154 FPS


mike-g337 tmp # DRI_PRIME=0 glxinfo  | grep 'OpenGL render'
OpenGL renderer string: Mesa DRI Intel(R) Haswell Mobile 
mike-g337 tmp # DRI_PRIME=1 glxinfo  | grep 'OpenGL render'
OpenGL renderer string: Mesa DRI Intel(R) Haswell Mobile 


Attached is a file containing:

xorg.conf
Xorg.0.log - intel device
Xorg.0.log - radeon device
Xorg.1.log intel device
lspci -kvvv
dmesg
inxi -G
glxinfo
xrandr --listproviders
fglrx Xorg.1.log


Hope it helps.

Thank you in advance,
Mike.
Comment 1 Alex Deucher 2014-03-31 14:51:21 UTC
There are no displays connected to the radeon card.  You can only use it for rendering, not display.  You need to set up the radeon card to be used as an offload sink.  Additionally, you need to be sunning a compositor.

xrandr --listproviders
xrandr --setprovideroffloadsink radeon Intel
Comment 2 Michael Eagle 2014-03-31 14:58:48 UTC
And how can I --setprovideroffloadsink if 
xrandr --listproviders

only shows Intel device?
Comment 3 Alex Deucher 2014-03-31 15:00:35 UTC
Remove your xorg.conf and try again.
Comment 4 Michael Eagle 2014-03-31 15:27:44 UTC
Created attachment 96671 [details]
crash
Comment 5 Michael Eagle 2014-03-31 15:28:26 UTC
Created attachment 96672 [details]
crashimg2
Comment 6 Michael Eagle 2014-03-31 15:28:52 UTC
Created attachment 96673 [details]
crashimg3
Comment 7 Michael Eagle 2014-03-31 15:32:14 UTC
Sorry, seems like the comment I entered just vanished,

So, without my xorg conf, X server crashes with the following:

	(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: "/var/log/Xorg.0.log", Time: Mon Mar 31 18:11:05 2014
(==) Using system config directory "/usr/share/X11/xorg.conf.d"
Initializing built-in extension Generic Event Extension
Initializing built-in extension SHAPE
Initializing built-in extension MIT-SHM
Initializing built-in extension XInputExtension
Initializing built-in extension XTEST
Initializing built-in extension BIG-REQUESTS
Initializing built-in extension SYNC
Initializing built-in extension XKEYBOARD
Initializing built-in extension XC-MISC
Initializing built-in extension SECURITY
Initializing built-in extension XINERAMA
Initializing built-in extension XFIXES
Initializing built-in extension RENDER
Initializing built-in extension RANDR
Initializing built-in extension COMPOSITE
Initializing built-in extension DAMAGE
Initializing built-in extension MIT-SCREEN-SAVER
Initializing built-in extension DOUBLE-BUFFER
Initializing built-in extension RECORD
Initializing built-in extension DPMS
Initializing built-in extension X-Resource
Initializing built-in extension XVideo
Initializing built-in extension XVideo-MotionCompensation
Initializing built-in extension SELinux
Initializing built-in extension XFree86-VidModeExtension
Initializing built-in extension XFree86-DGA
Initializing built-in extension XFree86-DRI
Initializing built-in extension DRI2
Loading extension GLX
(II) [KMS] Kernel modesetting enabled.
X: ../../../../include/privates.h:123: dixGetPrivateAddr: Assertion `key->initialized' failed.


If I restart mdm once again or if I execute, startx. Then the system hangs, and I can't access any VTYs but I can reboot with CTRL + Alt + del.

However, if I rmmod the radeon driver and then modprobe it once again. I get kernel panic, and I could only reboot from the powerbutton.

Attached images from above represents crash backtrace messages after modprobe fails.

Hope it helps,

Thank you.
Comment 8 Michael Eagle 2014-04-04 19:15:26 UTC
Hello,

I upgraded my kernel with latest ubuntu mainline
Linux mike-g337 3.14.0-999-generic #201404040227 SMP Fri Apr 4 06:28:24 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

and also webstack from oibaf-ppa:

Upgrade: libg3dvl-mesa:amd64 (10.2~git1404021931.0f641b~gd~s, 10.2~git1404040730.4fa58a~gd~s), xserver-xorg-video-intel:amd64 (2.99.911+git1404021930.baef22~gd~s, 2.99.911+git1404031930.f05658~gd~s), xserver-xorg-video-ati:amd64 (7.3.99+git1404021930.ed0cfb~gd~s, 7.3.99+git1404022026.ed0cfb~gd~s), xserver-xorg-video-radeon:amd64 (7.3.99+git1404021930.ed0cfb~gd~s, 7.3.99+git1404022026.ed0cfb~gd~s), mesa-common-dev:amd64 (10.2~git1404021931.0f641b~gd~s, 10.2~git1404040730.4fa58a~gd~s)

and now, xrandr --listproviders shows the desired output:

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

DRI_PRIME, also works

mike-g337 mike # DRI_PRIME=0 glxinfo  | grep 'OpenGL'
OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) Haswell Mobile 
OpenGL core profile version string: 3.3 (Core Profile) Mesa 10.2.0-devel
OpenGL core profile shading language version string: 3.30
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 3.0 Mesa 10.2.0-devel
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
OpenGL extensions:
mike-g337 mike # DRI_PRIME=1 glxinfo  | grep 'OpenGL'
OpenGL vendor string: X.Org
OpenGL renderer string: Gallium 0.4 on AMD HAINAN
OpenGL core profile version string: 3.1 (Core Profile) Mesa 10.2.0-devel
OpenGL core profile shading language version string: 1.40
OpenGL core profile context flags: (none)
OpenGL core profile extensions:
OpenGL version  string: 3.0 Mesa 10.2.0-devel
OpenGL shading languagew, version string: 1.30
OpenGL context flags: (none)
OpenGL extensions

Now because radeon is active, I can not remove the module from within X anymore: 
rmmod radeon
Error: Module radeon is in use

DRI_PRIME=1 glxgears also works, I don't have any game to test now, But, everything is fine in your opinion ?


And also, perhaps I shouldn't do this, but if I run:
 DRI_PRIME=2 glxinfo  | grep 'OpenGL'
X server crashes with the following backtrace (it wasn't crashing before): 

[   913.503] (EE) 
[   913.503] (EE) Backtrace:
[   913.503] (EE) 0: /usr/bin/X (xorg_backtrace+0x3d) [0x7fae2101cfdd]
[   913.503] (EE) 1: /usr/bin/X (0x7fae20e7a000+0x1a6d49) [0x7fae21020d49]
[   913.503] (EE) 2: /lib/x86_64-linux-gnu/libpthread.so.0 (0x7fae1ff7a000+0xfbb0) [0x7fae1ff89bb0]
[   913.503] (EE) 3: /usr/bin/X (DRI2Connect+0x5f) [0x7fae20ff0a7f]
[   913.503] (EE) 4: /usr/bin/X (0x7fae20e7a000+0x1776dc) [0x7fae20ff16dc]
[   913.503] (EE) 5: /usr/bin/X (0x7fae20e7a000+0x5525e) [0x7fae20ecf25e]
[   913.503] (EE) 6: /usr/bin/X (0x7fae20e7a000+0x447ba) [0x7fae20ebe7ba]
[   913.503] (EE) 7: /lib/x86_64-linux-gnu/libc.so.6 (__libc_start_main+0xf5) [0x7fae1ebb5de5]
[   913.503] (EE) 8: /usr/bin/X (0x7fae20e7a000+0x44aff) [0x7fae20ebeaff]
[   913.503] (EE) 
[   913.503] (EE) Segmentation fault at address 0x0
[   913.503] (EE) 
Fatal server error:
[   913.503] (EE) Caught signal 11 (Segmentation fault). Server aborting
[   913.503] (EE) 
[   913.503] (EE) 
Please consult the The X.Org Foundation support 
         at http://wiki.x.org
 for help. 
[   913.503] (EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information.
[   913.503] (EE) 
[   913.503] (II) AIGLX: Suspending AIGLX clients for VT switch
[   913.521] (EE) Server terminated with error (1). Closing log file.

Thank you,
Cheers Mike.
Comment 9 Michael Eagle 2015-11-20 16:09:29 UTC
Issue is fixed now with fedora 23.

Packages:
kernel 4.4.0-0.rc1.git
mesa-libwayland-egl-11.1.0-0.devel.34.292df19.fc23.x86_64
mesa-libglapi-11.1.0-0.devel.34.292df19.fc23.i686
mesa-libxatracker-11.1.0-0.devel.34.292df19.fc23.x86_64
mesa-libEGL-11.1.0-0.devel.34.292df19.fc23.i686
mesa-libgbm-11.1.0-0.devel.34.292df19.fc23.x86_64
mesa-libgbm-11.1.0-0.devel.34.292df19.fc23.i686
mesa-libEGL-11.1.0-0.devel.34.292df19.fc23.x86_64
mesa-libOSMesa-11.1.0-0.devel.34.292df19.fc23.x86_64
mesa-libGLU-9.0.0-9.fc23.x86_64
mesa-libGL-11.1.0-0.devel.34.292df19.fc23.i686
mesa-libglapi-11.1.0-0.devel.34.292df19.fc23.x86_64
mesa-filesystem-11.1.0-0.devel.34.292df19.fc23.x86_64
mesa-dri-drivers-11.1.0-0.devel.34.292df19.fc23.x86_64
mesa-libGLES-11.1.0-0.devel.34.292df19.fc23.x86_64
mesa-dri-drivers-11.1.0-0.devel.34.292df19.fc23.i686
mesa-filesystem-11.1.0-0.devel.34.292df19.fc23.i686
mesa-libGL-11.1.0-0.devel.34.292df19.fc23.x86_64
xorg-x11-drv-ati-7.6.99-1.20151115gitdfb5277.fc23.x86_64
xorg-x11-server-Xorg-1.18.0-2.fc23.x86_64
xorg-x11-drv-intel-2.99.917-16.20150729.fc23.x86_64
llvm-libs-3.7.0-1.fc23.i686
llvm-libs-3.7.0-1.fc23.x86_64

now, inxi -G shows both adapters:
Graphics:  Card-1: Intel Haswell-ULT Integrated Graphics Controller
           Card-2: Advanced Micro Devices [AMD/ATI] Sun XT [Radeon HD 8670A/8670M/8690M / R5 M330]
           Display Server: X.org 1.18.0 drivers: ati,radeon,intel (unloaded: fbdev,vesa)
           tty size: 211x49 Advanced Data: N/A for root


xrandr --listproviders
Providers: number : 3
Provider 0: id: 0x78 cap: 0xb, Source Output, Sink Output, Sink Offload crtcs: 4 outputs: 5 associated providers: 2 name:Intel
Provider 1: id: 0x4f cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 0 outputs: 0 associated providers: 2 name:radeon
Provider 2: id: 0x4f cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 0 outputs: 0 associated providers: 2 name:radeon


glxinfo  | grep 'OpenGL renderer\|Mesa'
client glx vendor string: Mesa Project and SGI
OpenGL renderer string: Mesa DRI Intel(R) Haswell Mobile 
OpenGL core profile version string: 3.3 (Core Profile) Mesa 11.1.0-devel
OpenGL version string: 3.0 Mesa 11.1.0-devel
OpenGL ES profile version string: OpenGL ES 3.0 Mesa 11.1.0-devel

DRI_PRIME=1 glxinfo  | grep 'OpenGL renderer\|Mesa'
client glx vendor string: Mesa Project and SGI
OpenGL renderer string: Gallium 0.4 on AMD HAINAN (DRM 2.43.0, LLVM 3.7.0)
OpenGL core profile version string: 4.1 (Core Profile) Mesa 11.1.0-devel
OpenGL version string: 3.0 Mesa 11.1.0-devel
OpenGL ES profile version string: OpenGL ES 3.0 Mesa 11.1.0-devel


I can also instruct steam to use my secondary adapter to render games.
DRI_PRIME=1 steam

Thank you to all the people involved into solving this!

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.