Gotham crash when entering Settings
#1
Hi all,

I built my own XBMC with the help of Buildroot, I'm currently trying to bump XBMC's version to Gotham, and I have a crash.
I build fine using the latests rpi-userland code along with XBMC's tag 13.0-Gotham.

Everything goes smoothly until I get to the Settings menu, or if a folder gets its icon displayed (don't know If I'm really clear here), it crashes with this message:

assertion failure:/path/to/rpi-userland_source/interface/khronos/egl/egl_client_surface.c:331:egl_surface_create():width > 0 && height > 0

After digging and bisecting XBMC's code, I got this bit of information:
Starting from the tag 12.3-Frodo where everything is working fine.
I reach 53b958aa26bd53553323bf52b0488f71ea6f6f7b and I get this assert when XBMC starts, so I can't do anything.

At this changeset af8a18a1afd09266fc71a63d28274cc31afdbd8f it works again fine apart from the menu settings (and maybe other menu, I did not try other menu). When I enter this menu, XBMC crash with this assert.

After some digging, I found that it seemed to came from:

xbmc/cores/omxplayer/OMXImage.cpp in the function 'void COMXImage::CreateContext()' where the egl function 'eglCreatePbufferSurface' is called.

When I looked at the code of 'eglCreatePbufferSurface' in interface/khronos/egl/egl_client.c, I noticed that width and height are initialized with a value of 0. And it doesn't seems to be changed anywhere. So when egl_surface_create() gets called, the assert is thrown.

If I set width and height to 1 as their initial value, it's working, but this seems really hackish and I'm pretty sure the bug is in XBMC and not in the rpi-userland's code.

Here's a debug.log leading to the crash: http://xbmclogs.com/show.php?id=209516

I'd really like to find that one, it's been a full day that I'm looking at it, but I'm really clueless at what's going on.

Thanks a lot !
Reply
#2
The assert here:
interface/khronos/egl/egl_client_surface.c:331

is not valid for the pseudo-surface and context created by xbmc to allow texture uploads from a different thread.
A zero sized surface is okay.

In a release build, then the asserts will be removed and you won't see this.
I've just pushed this change to userland tree.
Reply
#3
Thanks a lot ! That will make my life much easier Smile.
Reply

Logout Mark Read Team Forum Stats Members Help
Gotham crash when entering Settings0