=== duflu_ is now known as duflu [06:54] Back in 30ish [08:53] alf_: I've got a workman turning up in the next few minutes - I might be a little late for greyback's meeting [08:53] alan_g: ok [08:54] greyback: : I've got a workman turning up in the next few minutes - I might be a little late for your meeting [08:55] alan_g: no worries === alan_g is now known as alan_g|afk === Cimi_ is now known as Cimi === alan_g|afk is now known as alan_g === Guest90581 is now known as w00t [10:48] alan_g: alf_: so emulator is mostly working now. There is functional adb and networking. So far it attempts to boot into "mir" mode. [10:48] I've made sure to compile all android container unstripped (so debug symbols are intact) [10:49] xnox: I am missing some context here :) [10:50] attempting to start unity8 results in a segmentation fault, trying to run it under gdb only says that stack is corrupt =/ [10:50] alf_: so I want to ask for help bringing up mir / any graphical output on the emulator =) [10:51] xnox: which emulator is that? [10:51] alf_: sometime back kgunn recommended you or alan_g as UK time people, who can help out with it. [10:51] xnox: what emulator? [10:51] alf_: it's android-emulator packaged to run Ubuntu Touch. So it boots unflipped/read-only system image, with an android container. [10:51] alan_g: alf_: https://wiki.ubuntu.com/Touch/Emulator [10:52] also i've been posting about on ubuntu-touch. [10:52] it's a QEMU based ARM virtualised machine, running linux-goldfish kernel with android container and everything mostly the same as normal android device. [10:52] (apart from well, not displaying mir) [10:54] xnox: so, what happens if you try running e.g. mir_demo_server_basic? [10:54] xnox: you can try running Mir on its own to see what's going on [10:54] alan_g: You beat me to it! :) [10:55] alf_: is it a race? [10:57] alan_g: No, but we had a photo-finish nonetheless ;) [10:58] root@ubuntu-phablet:/# mir_demo_server_basic [10:58] bash: mir_demo_server_basic: command not found [10:59] (this is running Ubuntu Touch rootfs, should be similar to mako/maguro tarballs et.al.) [10:59] its in a separate package [11:02] xnox: can you install mir-demos? Or do you need to build it? [11:03] alan_g: i can, but it's very slow. I might repack a tarball and relaunch it. [11:04] * alan_g thinks Mir won't work unless it is installed [11:17] same as before: [11:17] root@ubuntu-phablet:/# mir_demo_server_basic [11:17] __pthread_gettid -2 [11:17] Segmentation fault [11:17] which is similar to running unity8 et. al. [11:18] http://paste.ubuntu.com/6340712/ [11:25] alan_g: alf_: if you could figure out what's broke, i'd be happy to fix it both in android, ubuntu and emulator. But at the moment i'm not sure what's wrong, as pretty much everything else is working. [11:26] a BT like that always makes me suspect hybris [11:26] and i don't usually work on graphics at all. [11:26] debug symbols might help with the BT [11:27] what happens if you try run "mir_demo_server_basic --display-report log" [11:28] That might give a clue as to how quickly it segfaults [11:28] xnox: +1 debug symbols might help with the BT [11:40] alan_g: same output. [11:40] alan_g: so it's something fundamental =/ [11:41] xnox: ack [11:45] alan_g: alf_: on android side in logcat i see that it's loading up EGL emulation, there is also GLES_android, GLESv1_CM and GLESv2 available. [11:47] xnox: I wonder if running under valgrind could give you more clues === dandrader is now known as dandrader|afk === dandrader|afk is now known as dandrader === greyback is now known as greyback|lunch === alan_g is now known as alan_g|lunch === greyback|lunch is now known as greyback === alan_g|lunch is now known as alan_g === dandrader is now known as dandrader|lunch === mpt_ is now known as mpt === brainwash_ is now known as brainwash === dandrader|lunch is now known as dandrader [16:29] kdub: ping [16:29] hello rsalveti [16:32] kdub: hey, so we were debugging the nexus 7 (tegra 3) issue yesterday, and we basically believe our code path might not be doing what the driver expects us to do [16:32] the crash happens in pthread_mutex_lock [16:33] rsalveti, 'our code path', meaning in hybris or mir? [16:33] and the lock is basically a pointer, unitialized [16:33] kdub: mir, by the way we're using the hwcomposer/gralloc [16:33] the first time it uses that pointer is already when trying the lock [16:34] so we believe we might be skipping a call or step that initializes that value internally [16:35] rsalveti, i don't know of something that surfaceflinger does that we're skipping [16:35] which function call into hybris has the problem? [16:36] kdub: the pthread_mutex_lock [16:36] kdub: the mutex pointer is not initialized, so just garbage [16:36] that's why when we try to access it, it crashes [16:37] I'm not sure yet that this is hybris specific at this point [16:37] right, but do we know the last function call mir makes? [16:37] do we have any sort of test cases/tools for hwcomposer/gralloc? [16:37] just the mir tests === alan_g is now known as alan_g|afk [16:38] mir_demo_standalone_render_to_fb should just drive the display [16:38] kdub: right, let me see, the crash happens with mir_demo_server [16:38] but it will have the same problem as the server [16:38] kdub: right [16:38] kdub: let me try to get a better backtrace [16:38] kdub: but the issue, iirc, was that it was coming from gralloc [16:39] which is just a blob, making it harder to get the full trace [16:39] right [16:39] i mean, it could be some dumb thing like... [16:40] on nvidia you have to open {gralloc, fb, hwc} in some specific order [16:40] kdub: yeah === alan_g|afk is now known as alan_g [16:45] how do I switch to hardware cursor when running xmir? === dandrader is now known as dandrader|bbl [17:34] i always like how the interface you couldn't quite get right at 6pm makes a lot more sense at 10am the next day [17:35] kdub: that's after you've realised how to write the test. Right? [17:45] alan_g, yeah, you still have to decide what sort of things you want the test to test [17:46] kdub: well if you don't know what "works" looks like it is hard to get the interface right [17:56] kdub: yeah, mir_demo_standalone_render_to_fb crashes the same way [18:47] kdub: do you have a n7 around? [19:12] kdub: I'm checking render_to_fb.cpp, but it seems the the buffer itself is null [19:13] which could be the reason for the mutex garbage content [19:18] yes, but when you say buffer, you mean, mir's buffer class? === dandrader|bbl is now known as dandrader [19:56] kdub: crashing in src/server/graphics/android/hwc10_device.cpp -> hwc_device->set(hwc_device.get(), 1, &contents); [20:07] rsalveti, hmm [20:07] i have to tinker with that then [20:07] i'm actually working on improving that part of the code at the moment, maybe i'll find somehting [20:10] kdub: any ideas which we could try? [20:12] rsalveti, perhaps the list that's submitted there 'contents' isn't formed the way the driver expects it [20:12] hard to so how its malformed without tinkering with it though [21:09] kdub: so, when we set HWC_SKIP_LAYER at the hwcompositor layer, it doesn't crash [21:10] kdub: nothing in the screen, as expected, but the gl path and such is working as expected at least [21:20] rsalveti, thats good new news [21:21] kdub: so it might be something related with the hw layers [21:22] rsalveti, yes, it looks like it is