Bug 971 - Crownbay BSP fails to load AIGLX
Summary: Crownbay BSP fails to load AIGLX
Status: RESOLVED FIXED
Alias: None
Product: BSPs
Classification: Build System, Metadata & Runtime
Component: bsps-configuration (show other bugs)
Version: 1.0
Hardware: Other x86
: Medium normal
Target Milestone: 1.1
Assignee: Tom Zanussi
QA Contact:
URL:
Whiteboard: laverne with same binaries and master...
Depends on:
Blocks:
 
Reported: 2011-04-12 07:43 UTC by Marc Ferland
Modified: 2011-08-27 16:35 UTC (History)
4 users (show)

See Also:
OS type for building Yocto: ---
Type of Regression: ---
Verified:
Documentation change: ---


Attachments
Xorg log file (bernard) (23.92 KB, text/plain)
2011-04-12 07:44 UTC, Marc Ferland
no flags Details
Xorg log file (laverne) (24.50 KB, text/plain)
2011-04-12 07:45 UTC, Marc Ferland
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Marc Ferland 2011-04-12 07:43:11 UTC
The BSP image for Crownbay (bernard) reports the following when loading the EMGD driver:

(EE) AIGLX error: emgd exports no DRI extension
(EE) AIGLX: reverting to software rendering
(II) AIGLX: Screen 0 is not DRI capable
(EE) AIGLX error: dlopen of /usr/lib/dri/swrast_dri.so failed (/usr/lib/dri/swrast_dri.so: cannot open shared object file: No such file or directory)
(EE) GLX: could not load software renderer
(II) GLX: no usable GL providers found for screen 0

while on laverne I get:

(II) AIGLX: enabled GLX_MESA_copy_sub_buffer
(II) AIGLX: enabled GLX_SGI_make_current_read
(II) AIGLX: GLX_EXT_texture_from_pixmap backed by buffer objects
(II) AIGLX: enabled GLX_SGI_swap_control and GLX_MESA_swap_control
(II) AIGLX: Loaded and initialized /usr/lib/dri/emgd_dri.so
(II) GLX: Initialized DRI2 GL provider for screen 0

These are from the hddimg files distributed on the web site.

I also tried a "fresh" build of crownbay (bernard) on my machine and I'm getting the same error as above from AIGLX.
Comment 1 Marc Ferland 2011-04-12 07:44:28 UTC
Created attachment 137 [details]
Xorg log file (bernard)

Adding Xorg log file.
Comment 2 Marc Ferland 2011-04-12 07:45:14 UTC
Created attachment 138 [details]
Xorg log file (laverne)

Adding Xorg log file (laverne).
Comment 3 Marc Ferland 2011-04-12 08:07:05 UTC
This new message is also appearing in bernard:
...
drmOpenByBusid: Interface 1.4 failed, trying 1.1
...
Comment 4 Darren Hart 2011-04-14 15:34:12 UTC
Tom, this looks like a bug fix appropriate to 1.1 to me. Would you agree?
Comment 5 Tom Zanussi 2011-04-15 09:04:26 UTC
swrast_dri.so should be pulled in by the latest mesa (7.10).  Probably adding a PREFERRED_VERSION for mesa-7.10 in the crownbay recipe should fix it.  I can try to reproduce and fix this, or you can, Darren if you want.

BTW, we did test glxgears before shipping, so things should basically work if the right stuff gets pulled in.
Comment 6 Darren Hart 2011-04-15 09:56:49 UTC
I'm performing test builds now.
Comment 7 Darren Hart 2011-04-15 16:56:00 UTC
Having trouble building, the emgd-bin .so files can't be found. I tried the crownbay-bernard-5.0 BSP, it didn't have them either. What is the proper way to build the crownbay BSP with emgd graphics?
Comment 8 Darren Hart 2011-04-29 15:50:26 UTC
So the problem as I understand it is:

(EE) AIGLX error: emgd exports no DRI extension
(EE) AIGLX: reverting to software rendering
(II) AIGLX: Screen 0 is not DRI capable
(EE) AIGLX error: dlopen of /usr/lib/dri/swrast_dri.so failed (/usr/lib/dri/swrast_dri.so: cannot open shared object file: No such file or directory)
(EE) GLX: could not load software renderer

But the reason it is looking for swrast_dri.so is because the the emgd driver is not exporting a DRI extension and it is reverting to software rendering. Having it not find swrast_dri.so is a secondary problem I think, the primary problem being that emgd is not find a  DRI extension. In laverne, the AIGLX log read more like this:

(II) AIGLX: enabled GLX_MESA_copy_sub_buffer
(II) AIGLX: enabled GLX_SGI_make_current_read
(II) AIGLX: GLX_EXT_texture_from_pixmap backed by buffer objects
(II) AIGLX: enabled GLX_SGI_swap_control and GLX_MESA_swap_control
(II) AIGLX: Loaded and initialized /usr/lib/dri/emgd_dri.so
(II) GLX: Initialized DRI2 GL provider for screen 0

The emgd_dri.so library does exist in the bernard build, which it would find if the DRI extension was exported. Do I have this right?
Comment 9 Darren Hart 2011-04-29 15:51:03 UTC
(I was able to build poky-image-sato with the EULA'd crownbay-bernard-5.0 image from yoctoproject.org)
Comment 10 Marc Ferland 2011-04-29 16:02:00 UTC
(In reply to comment #8)
> So the problem as I understand it is:
> 
> (EE) AIGLX error: emgd exports no DRI extension
> (EE) AIGLX: reverting to software rendering
> (II) AIGLX: Screen 0 is not DRI capable
> (EE) AIGLX error: dlopen of /usr/lib/dri/swrast_dri.so failed
> (/usr/lib/dri/swrast_dri.so: cannot open shared object file: No such file or
> directory)
> (EE) GLX: could not load software renderer
> 
> But the reason it is looking for swrast_dri.so is because the the emgd driver
> is not exporting a DRI extension and it is reverting to software rendering.
> Having it not find swrast_dri.so is a secondary problem I think, the primary
> problem being that emgd is not find a  DRI extension. In laverne, the AIGLX log
> read more like this:
> 
> (II) AIGLX: enabled GLX_MESA_copy_sub_buffer
> (II) AIGLX: enabled GLX_SGI_make_current_read
> (II) AIGLX: GLX_EXT_texture_from_pixmap backed by buffer objects
> (II) AIGLX: enabled GLX_SGI_swap_control and GLX_MESA_swap_control
> (II) AIGLX: Loaded and initialized /usr/lib/dri/emgd_dri.so
> (II) GLX: Initialized DRI2 GL provider for screen 0
> 
> The emgd_dri.so library does exist in the bernard build, which it would find if
> the DRI extension was exported. Do I have this right?

I think you're right. Even if the software rasterizer was indeed present, it wouldn't be that useful. The problem is really that no _accelerated_ OpenGL providers exists in bernard.
Comment 11 Darren Hart 2011-04-29 21:25:13 UTC
(In reply to comment #5)
> swrast_dri.so should be pulled in by the latest mesa (7.10).  Probably adding a
> PREFERRED_VERSION for mesa-7.10 in the crownbay recipe should fix it.  I can
> try to reproduce and fix this, or you can, Darren if you want.
> 
> BTW, we did test glxgears before shipping, so things should basically work if
> the right stuff gets pulled in.

As it turns out, mesa-dri_7.10 is built and the work dir has swrast_dri.so, but it isn't installed to the final root image.
Comment 12 Tom Zanussi 2011-05-11 12:42:34 UTC
I compared the kernel .configs between laverne and bernard and didn't see any difference, so the change must be due so some other graphics package.

Switching back to mesa 7.8 didn't fix the problem.

Switching to emgd 1.6.1 and 1.9.3 xserver doesn't show a problem:

[3765742.291] (II) AIGLX: enabled GLX_MESA_copy_sub_buffer
[3765742.291] (II) AIGLX: enabled GLX_INTEL_swap_event
[3765742.291] (II) AIGLX: enabled GLX_SGI_make_current_read
[3765742.291] (II) AIGLX: GLX_EXT_texture_from_pixmap backed by buffer objects
[3765742.291] (II) AIGLX: Loaded and initialized /usr/lib/dri/emgd_dri.so
[3765742.291] (II) GLX: Initialized DRI2 GL provider for screen 0

Though it does show the warning:

[3765742.254] drmOpenByBusid: Interface 1.4 failed, trying 1.1

which apparently is not important for this bug.
Comment 13 Tom Zanussi 2011-08-26 07:54:01 UTC
Switching the bernard kernel into the laverne image, everything is fine.
Comment 14 Tom Zanussi 2011-08-27 16:35:38 UTC
Fixed by meta-intel/bernard commit 651ca742a0ba5a1bbc216914195f79b644e48b30

Output from Xorg.0.log:

(II) AIGLX: enabled GLX_MESA_copy_sub_buffer
(II) AIGLX: enabled GLX_SGI_make_current_read
(II) AIGLX: GLX_EXT_texture_from_pixmap backed by buffer objects
(II) AIGLX: enabled GLX_SGI_swap_control and GLX_MESA_swap_control
(II) AIGLX: Loaded and initialized /usr/lib/dri/emgd_dri.so
(II) GLX: Initialized DRI2 GL provider for screen 0

Also successfully ran glxgears and got expected output from glxinfo.