[00:38] 0.6.1 ppa ready in silo 4... This is a mir only landing (no ABI breaks)... Here are the instructions for testing... http://pastebin.ubuntu.com/8049567/ === chihchun_afk is now known as chihchun [02:50] camako: A landing without ABI breaks?!?! [02:50] *choirs of angels sing* [02:58] I'm sure we have broken something... Just not the ABIs :-) [03:01] "Didn' [03:02] t break the ABI. Diodn't break the ABI. There may be a few bad commits. But I didn't break the ABI" to the tune of https://www.youtube.com/watch?v=3TY8vLI4buo [03:02] ...that's all... [03:02] :p [03:14] :-) "There ain't no bugs in Mir" would work too... [03:23] Anyone else notice how stable the "8" in libmirclient8 is? :) [03:26] libmirclient has the luxury of C to keep in stable. But C++ can be just as stable... we're just not there yet. I suspect we could still move a bunch of headers out of include/ and into src/ so they don't contribute to any ABIs any more [03:30] camako: In exciting news, I think I've got the "butter" branch where I want it. Seems to improve the usability of the phone quite nicely [03:32] duflu, sounds good.. Folks can start reviewing, then [03:32] I had to sacrifice a little bit of lag to get scrolling up from 48Hz to 60Hz, but it feels nicer now [03:33] Still, much less laggy than the phone is right now [03:34] duflu, nice! I think you can empirically tell the difference, right? Any caveats? [03:35] camako: Yes, it's all based on human eyes now. No caveats any more, just improvement :) [03:36] ok good... let's hope for a smooth review :-)... If you can generate some before and after numbers, it'd help the review process [03:36] You may also find MIR_CLIENT_INPUT_RECEIVER_REPORT now mentions negative lag for some input events. This is correct, because they're predicted a few milliseconds into the future [03:36] hah interesting [03:38] hey I saw you marked some 0.7.0 targeted bugs as "Fix released"... I had done some too.... thanks for that... [03:39] duflu: I think...there are a few problems [03:39] with the branch, but im not 100% finished studying yet [03:39] but I think, if you look at [03:39] droidinput::MotionEvent and [03:40] the way historical pointer coordinates are added [03:40] where 1 event will include [03:40] multiple pointer coordinate samples over time [03:40] I think the likely effect of the branch is to [03:41] Hmmm this failed twice now if anybody wants to take a look : https://code.launchpad.net/~mir-team/mir/0.6/+merge/230879/comments/561324 [03:41] drop half of pointer samples [03:41] hence why you see [03:41] something close to 50 fps (half the 100hz input rate of most touch screens) [03:41] and then I have no clue where the 60hz is coming from. but may be close to coincidental from the 48hz because of the frame time tweaking [03:42] the idea with the resampling is [03:42] because of the mixed refresh rate of the monitor and the input device [03:42] sometimes you will get [03:42] frames where you have two touch samples [03:42] which, say in the case of a scroll, means a greater scroll [03:43] racarr: That was true for the old branch. The new one has consumeBatches=true and a sample window that moves every 16ms. Hence 60Hz [03:43] per frame [03:44] racarr: So essentially you have all the raw events from during the frame contributing to a single prediction, single cooked event [03:45] Devices seem to vary a lot. Nexus4 produces events at 96Hz whereas my mouse is 125Hz [03:45] no [03:45] its multiple interpolated pointer samples [03:45] in one event [03:45] and we are ignoring all [03:45] except the last [03:45] racarr: OK, if you've got a practical suggestion for improvement that works please put it in the review [03:46] duflu: I am still studying like I said...just wanted to fill you in one what I had learned [03:46] duflu: The thing is...ok so if you imagine a scroll [03:46] then you can think of say, the displacement, which on a given frame, i.e. how far it drags behind [03:46] the finger [03:47] so the way your branch is configuring things, is lowering [03:47] the minimum value of the displacement (i.e. the latency) [03:47] on the other hand, butter on android, intentionally suffers [03:47] 1 frame latency in order to be able to [03:48] resample the 100hz display smoothly to frame time, such to [03:48] minimize the CHANGE in the displacement [03:48] which is like jerk, or some such. [03:49] racarr: Yes, I realized I had to suffer one extra frame of latency to make the batch size sufficiently big for a nice experience. [03:49] That's the big change in yesterday's version [03:50] The new version does indeed minimize the change in displacement (slightly higher latency but smoother scrolling) [03:52] I think it's dropping most touch samples though -.- [03:53] racarr: The raw samples are all used in InputConsumer to affect the resampled curve. Where is the "drop"? [03:53] duflu: http://developer.android.com/reference/android/view/MotionEvent.html [03:53] For efficiency, motion events with ACTION_MOVE may batch together multiple movement samples within a single object. The most current pointer coordinates are available using getX(int) and getY(int). Earlier coordinates within the batch are accessed using getHistoricalX(int, int) and getHistoricalY(int, int). The coordinates are "historical" only insofar as they are older than the current coordinates in the batch; however, they ar [03:53] its [03:53] interpolate [03:53] not extrapolate :) [03:54] the drop is [03:54] clients want 100hz or so of touch samples for computing [03:54] acceleration, like the device has [03:55] racarr: I can see some clients might want a configurable option to get the raw event stream. But are you saying that the cooked event stream should be faster than the frame interval? [03:56] That's a nice ideal, but I'm not sure InputConsumer works that way..? [03:56] I'm pretty sure it does ;) [03:56] I mean thats how we are using it the only problem is [03:56] we are literally ignoring the historical pointer coords. [03:57] which would give us [03:57] the 100hz rate [03:57] I think we would find if we enabled the 100hz rate without [03:57] proper frame timing [03:57] the jerk would come back [03:57] because we would have the problem where [03:57] you get multiple events per frame [03:58] racarr: I'm still a bit confused. I would really like to get a higher cooked event rate. If you know how to do it without the experience degrading (for me it mostly means no resampling benefit) then please point out the required code changes [03:59] I think the answer is use the historical coordinates + real frame timing :) but [03:59] It's easy to deliver events to clients faster. But so far that always means a worse looking experience [03:59] im still trying to figure it out completely [04:00] racarr: I would love to get a merge proposal for any improvements to try out [04:01] Although I might ignore that branch for the week now. Not enough time left to dive back in. It usually sucks me in for days at a time of obsessive testing [04:03] :) ill have something next week [04:04] im going to try and work up a test that lets you pick a [04:04] refresh rate and an input streaming rate [04:04] and then simulates a smooth scroll [04:04] and measures [04:04] the displacement from "ideal scroll" [04:04] and then we can automatically test various [04:04] parameters, etc. [04:04] I mean obviously still some manual testing will be required but [04:05] it should give us a nice method to be sure we are making things better [04:05] Yeah, some trustworthy automation would be good. I've developed a distrust of the input latency metrics we have right now [04:07] Kind of like the bogus "render time" argument :) [04:07] We need to work on building more reliable metrics [04:09] Yeah...its hard :( lol [04:09] android and ios arent exactly jumping to publish their [04:09] tips and tricks on accelerating [04:09] your input stack [04:09] hahaha [04:10] *pictures cosmo magazine at grocery store checkout: 10 tips and tricks for accelerating your input stack* [04:10] Bah. Our CI fails in the most inscrutable way. The thing passes the tests _locally_, damnit. [04:11] * duflu needs to fix up and get his client perf report branch for review. That makes a good start [05:58] Why is cmake such unmitigated garbage?! [06:01] RAOF: Because it's an evil conspiracy to annoy you [06:01] DMake is better [06:01] And EMake will solve everything [06:03] * duflu misses pure GNU make. Unfortunately it's too sharp an instrument that people constantly cut themselves on it [06:03] Or just mess it up === greyback__ is now known as greyback === dandrader is now known as dandrader|afk === dandrader|afk is now known as dandrader === alan_g is now known as alan_g|lunch === alan_g|lunch is now known as alan_g === willcooke_ is now known as willcooke [13:23] alan_g, I'm thinking about: https://code.launchpad.net/~kdub/mir/testable-surface-tracking/+merge/230814/comments/561452 [13:24] kdub: not clear? Sorry [13:24] well, no, clear enough [13:24] I guess i'm just thinking about testing now [13:25] and how SessionMediator test is really somewhat of an integration test [13:25] or rather, if we did hoist the SessionSurfaceTracker, it would be more of an integration test [13:26] of two objects composed together [13:26] and am wondering if you thought that was wrong-headed thinking === chihchun is now known as chihchun_afk [13:26] Not so - it would simply not test their interaction [13:27] And I don't think we need to require that interaction [13:29] Analogy: "vector" gets tested. Vector gets used in cache. We don't test that cache uses vector a specific way. Just that it works. [13:29] alan_g, hmm, okay [13:30] I'll keep thinking about it, but it seems reasonable [13:30] and a good, small way to shift my own thinking about tests [13:30] thanks [13:30] yw [13:31] And the comment doesn't say the MP is wrong, just suggests that it could be an interface too far. [13:32] sure, I'm beginning to think that too === cyphermox__ is now known as cyphermox === dandrader_ is now known as dandrader [16:17] hi guys, can anyone help me to start mir/lightdm on ubuntu touch? (http://paste.ubuntu.com/8054602/ the log) [16:19] mibofra: that's not a very useful log, what has /var/log/lightdm/unity-system-compositor.log ? [16:19] Hmm "[+1.16s] DEBUG: Process 25466 terminated with signal 11" - a segfault doesn't look promising [16:20] mibofra: what device are you testing it on? [16:21] greyback_, http://paste.ubuntu.com/8054953/ [16:21] on a samsung galaxy s3 (i9300) [16:21] but anyway maybe I've to explain my setup xD [16:22] mibofra: I suggest for initial debugging, you install the "mir-demos" package and try out mir_demo_server_basic and see if it crashes or not. If it does crash, we'd appreciate a backtrace [16:23] ok anyway [16:25] greyback_, I've a strage setup. I've used to have a debian bootstrapped and chrooted on android (cyanogenomd). With debian I could start the X server (after stopped surfaceflinger), and I could use X and it worked fine, so I've decide to try with ubuntu touch [16:25] in the same way [16:25] mibofra: interesting! [16:25] I can start pulseaudio, ping, traceroute, use apt, start dbus and more, but I can't start lightdm [16:26] greyback_, my goal is to use chroot to use android as layer to support the hw [16:26] Good morning [16:27] more or less if it will work in this way any arm7 device with android is supported by ubuntu touch [16:28] and because android and the bootstrapped system share /dev /sys /proc ecc as I can see a device from chroot, if for example I use xboxdrv on ubuntu chrooted I can use the device on android for example [16:28] but the only obstacle is lightdm that won't start xD [16:29] (because debian with X is great, but unity fits better the smartphone that's why I wanted to try this possibility) [16:30] sure. unity-system-compositor is crashing for you, which most likely means mir is crashing for some reason [16:30] greyback_, anyway let's try the dem [16:31] *demo [16:31] you could try running the mir integration tests to just validate the android-driver working [16:32] I've launched mir_demo_server_basic without options, but I can't see anything, but I don't receive errors and the applications continue to run [16:32] *continues [16:34] greyback_, kgunn lightdm launches also [+0.81s] DEBUG: Session pid=26012: Running command /usr/sbin/ubuntu-touch-lightdm-session ubuntu-touch-session . If I launch it I receive this: http://paste.ubuntu.com/8055058/ [16:34] but I can't see anything [16:35] (note the upstart bridge, I'm into chroot so I can't use upstart or init or similar) [16:35] mibofra: mir_demo_server_basic runs a basic mir server - it has nothing to draw yet. With it running, execute mir_demo_client_flicker or something else [16:35] ok [16:36] kgunn: how does one run the integration tests? [16:36] I don't even know where they live [16:36] greyback_: i've only ever run them in a build dir from a local native build [16:37] uh... [16:38] * kgunn goes digging [16:39] greyback_, I receive something like this and continuing http://paste.ubuntu.com/8055089/ [16:39] but I can't still see anything [16:39] apt-get install mir-test-tools [16:39] ./mir_unit_tests [16:39] ./mir_integration_tests [16:39] ./mir_acceptance_tests [16:39] *I hope it uses the framebuffer (/dev/fb0 or /dev/grapichs/fb0) as X [16:40] AndroidBufferIntegration.* [16:40] Tests basic gralloc (gpu buffer allocation HAL) usage [16:40] AndroidInternalClient.* [16:40] tests that the unity8 surface can establish an EGL context [16:40] AndroidGPUDisplay.* [16:40] Tests that the primary and fallback display HAL works, and can render with OpenGLES. [16:40] TestClientIPCRender.* [16:40] tests that the client can receive buffers over IPC and draw to them with software and OpenGLES. [16:40] mibofra: the integration & acceptance tests are the interesting ones ^ [16:41] ok [16:41] can probably skip the unit tests [16:41] kdub: ^ still accurate ? [16:42] mibofra, you wanna stop unity8 and lightdm [16:42] kgunn, yes [16:42] before starting basic server [16:42] camako, they are not started [16:42] camako: it wasn't even running for him [16:42] camako: i think he's on a weird setup...like he's in android, chroot'd into starting ubuntu [16:42] but he's got SF stopped [16:43] * kgunn wonders if stopping sf is enough to release the hw ? [16:43] kgunn: if server_basic doesn't exit with an error it probably is [16:44] yeah...and he got x to work in his chroot [16:45] it should be [16:49] http://paste.ubuntu.com/8055122/ mir_unit_tests , http://paste.ubuntu.com/8055134/ mir_integration_tests , http://paste.ubuntu.com/8055170/ mir_acceptance_tests but I'm not really sure if the tests were finished. [16:49] (or it was only my impression as there were not other output) [16:50] kgunn greyback_ [16:55] (there isn't a way to start unity8 on Xorg, right? just to know) [17:09] A working draft of a symbol map for libmirserver is a good place to end the week. lp:~alan-griffiths/mir/initial-symbol-map-for-libmirserver === alan_g is now known as alan_g|EOW [17:17] kgunn, there is a config file for mir like xorg.conf for x ? [17:19] No, there are a few options [17:20] you can see mir_demo_server_basic --help for example [17:20] ok [17:20] probably nothing that makes it work on a device where it doesnt [17:21] racarr, just to know how much it is configurable [17:22] racarr, anyway a demo works [17:22] mir_demo_standalone_render_to_fb [17:22] kgunn [17:23] I can see something on the phone [17:23] those are the builtin opions for default components.. you can override pretty much everything through the mirserver api [17:23] ok [17:23] mir_demo_standalone_render_to_fb writes on the framebuffer, right? [17:24] cool you see something, and yeah [17:25] kgunn, so can I force mir (with lightdm) to write on the framebuffer? [17:26] uhm with mir_demo_standalone_input_filter I can have inputs form the touchscreen and more [17:26] mibofra: what do you mean force ? [17:26] so it works more or less [17:27] mibofra: hm that example uses egl/glesv2 and draws some stuff.. [17:27] kgunn, use the framebuffer unaccelerated [17:27] it is similar to a mirserver drawing with egl/glesv2 [17:27] it is accelerated [17:28] anpok, I think it's using the software rendering [17:29] mibofra: no, i thot that test just writes to frame buffer directly rather than going via hwc [17:29] with mir on android there's really no sw rendering afaik [17:29] kdub ^ sw rendering on mir on android ? [17:32] kgunn, the matter is that the drivers are loaded, android use the hw rendering, but I think X or other wants another drivers to work (for mali400 gpu there are the drivers for x) [17:37] mibofra: Mir has no support for software rendering via writing to /dev/fb like your X drivers are working [17:38] almost certainly you are using the android drivers [17:38] if the demo works [17:38] ok [17:38] racarr, the demo works [17:38] what about running demo_server_basic and one of the clients? e.g. mir_demo_client_fingerpaint [17:39] yeah, writing to the fb directly wont work [17:39] well, lets just say its not the path thats supported :) === cyphermox_ is now known as cyphermox [17:42] with mir_demo_client_fingerpaint I don't receive any output on the screen, but the executable doesn't give to me errors and it doesn't quit [17:42] *if I don't stop it [17:43] have you tried mir_demo_standalone_render_to_fb? [17:43] kdub, it works [17:44] oh great [17:44] thats the tricky part [17:55] ok I'm going to have dinner [17:55] see you later guys [18:02] :) === _morphis is now known as morphis [18:37] re-hi xD [18:38] Lunch! [19:32] kdub, racarr kgunn just for curiosity I've installed also xorg and lxde, in a glxgears test, debian used to do 60fps more or less, ubuntu touch 91 :D [19:32] anyway [19:33] 1|root@m0:/root # glxinfo -display :0 | grep OpenGL [19:33] OpenGL vendor string: Mesa Project [19:33] OpenGL renderer string: Software Rasterizer [19:33] OpenGL version string: 2.1 Mesa 10.2.5 [19:33] OpenGL shading language version string: 1.20 [19:38] \o/ [19:38] what device are you using? [19:39] a samsung galaxy s3 [19:39] the gpu is a mali 400 [19:40] yep good to hear [19:54] uhm kgunn I get something useful (I think) [19:55] kgunn, racarr, kdub http://paste.ubuntu.com/8056495/ [19:55] mibofra, you have to use upstart [19:55] "service lightdm restart" [19:56] as the phablet user [19:56] kdub, I've tried but it doesn't work [19:56] kdub, it's set to autologin with phablet user [19:56] just running like that won't work, as it has to be started with certain arguments [19:57] ok but that's lightdm : http://paste.ubuntu.com/8056507/ [19:57] kdub [19:57] well, the X server shouldn't be starting at all [19:57] don't know what might be going wrong there though [19:59] mibofra: is there no unity-system-compositor.log in /var/log/lightdm/ ? [19:59] kdub, the x server start on the framebuffer [19:59] anpok, yep but it isn't very useful [20:00] anpok, it's this http://paste.ubuntu.com/8056543/ [20:01] (anyway, if you have anything more important to I can leave :) , just I won't to disturb) [20:01] *I don't want disturb [20:02] (xchat autocorrect xD fantastic) [20:03] you could pretend being lightdm .. by calling unity-system-compositor with --from-dm-fd 0 --to-dm-fd 1 if you want to debug that [20:05] anpok, in fact I don't pretend the problem it's light xD [20:05] but I've to use light to launch it, that's the poin [20:05] *point [20:05] why is that a problem? [20:09] anpok, it isn't a problem, I like also the startx approach, so I don't have to use a display manager to run the display server. But mir is really all the package display manager + libraries + greeter [20:16] mir provides the libraries for that. [20:21] anyway some demos works anpok kdub like the framebuffer one [20:22] some like mir_demo_client_eglflash go in segfault [20:22] mibofra: try launching mir_demo_server_shell --file /tmp/somwhere ... then mir_demo_client_eglfingerpaint -m /tmp/somewhere [20:22] mibofra, the framebuffer one drives the display via HWC [20:23] not the /dev/fb0 [20:23] kdub, I've understood [20:25] anpok, I can find the mir_demo_client_fingerpaint not the egl one [20:25] oops [20:25] typo [20:25] ah ok [20:27] anpok, anyway I launch a test like this one and I don't receive errors or similar, only the binary that keeps running without output on the screen [20:27] oh [20:28] eh anpok , the only demo that works with an output on the screen is mir_demo_standalone_render_to_fb at the moment [20:36] mibofra: to solve that you need a few hours out of kdub or AlbertA [20:36] fantastic xD [20:37] anpok, and if they want [20:46] mibofra, try [20:46] ./mir_demo_server_basic --launch-client "./mir_demo_client_egltriangle" [20:51] ok [20:52] kdub, sh: 1: ./mir_demo_client_egltriangle: not found [20:52] probably in /usr/bin [20:52] ah lol ok don't worry [20:53] yes I didn't see the point kdub sorry [20:53] kdub, Current active output is 720x1280 +0+0 [20:53] Server supports 3 of 6 surface pixel formats. Using format: 2 [20:53] Surface 0 DPI [20:53] but I don't see anything [20:53] okay, so something is locking up probably [20:55] try adding --msg-processor-report log to the end and pastebinning the out [20:57] kdub, --msg-processor-report on/1 or similar? [20:58] only adding the option I get the help. [20:58] with --msg-processor-report 1 or on I get segfault [20:58] has to be "log" [20:59] kdub, yep I've noticed now that on the help [21:00] kdub, http://paste.ubuntu.com/8057321/ [21:00] hmm, so the client's blocking [21:00] could you pastebin /system/bin/logcat? [21:01] kdub, I can do a better thing, if you have netstat I can send you the logcat output in realtime [21:01] if you want [21:04] netstat lol, kdub I wanted to mean netcat [21:05] mibofra, lets just stick with pastebin, dont know that one [21:05] kdub, ok [21:07] kdub, I've passed logcat output to pastebinit [21:07] let's wait until it finishes [21:08] (I hope it will finish) [21:09] kdub, anyway I've stopped any service can lock hw, like the media manager, zygote, surfaceflinger, audioflinger and drm [21:09] it wont finish [21:09] *of the android system [21:09] kdub, I'm pasting [21:17] kdub, http://paste.ubuntu.com/8057442/ [21:18] cool, no errors [21:21] does [21:22] ./mir_integration_tests --gtest_filter="TestClientIPCRender.*" [21:22] kdub, a thing, I've the executables in /usr/bin and /usr/bin is in the path [21:22] so you can omit the ./ [21:24] kdub, http://paste.ubuntu.com/8057461/ [21:24] interesting, the client rendering is working too [21:25] not sure what's blocking then [21:26] kdub, http://paste.ubuntu.com/8055122/ mir_unit_tests , http://paste.ubuntu.com/8055134/ mir_integration_tests , http://paste.ubuntu.com/8055170/ mir_acceptance_tests but I'm not really sure if the tests were finished. [21:26] tests I've done some hours ago [21:27] no, the integration tests don't finish for some reason [21:27] and the MultiThreadedCompositor test is hanging [21:28] kdub, I've send a ctrl+c after a while because I thought they were frozen [21:28] but I can repeat the test and I can wait them finish [21:28] *tests [21:48] ah kdub yep the integration tests were aborted but I've not aborted them [22:35] good night kdub and thanks [22:35] see you [22:36] good night everyone and thanks too [22:37] I forgot whether my question was answered or not, so... Does Mesa need patches for XMir to work from the Oibaf PPA? [22:40] Nothing_Much: First time hearing about the oibaf ppa so can't be sure [22:40] if Mir works but XMir does not Mesa will not need additional patching [22:40] The DDX drivers, i.e. xserver-xorg-video-intel [22:40] do require a patch and if xmir isnt working but mir is [22:40] thats a good guess