=== chihchun_afk is now known as chihchun [03:04] RAOF: Bug 1253507 is now on trusty too :( [03:04] bug 1253507 in Mir "The following tests FAILED: 134 - unit-tests.UdevWrapperTest.* (OTHER_FAULT)" [Critical,Triaged] https://launchpad.net/bugs/1253507 === duflu_ is now known as duflu [03:47] duflu: You can't run the unit-tests bare. [03:47] RAOF: Yes you can. Always have. How else do you run a specific test you're working on? Or under valgrind? [03:48] duflu: If you don't want to run ‘make test’, you'll need to run “umockdev-run bin/unit-tests” [03:48] Or export LD_PRELOAD, of course. [03:48] RAOF: We need to fix that then. All the tests binaries need to be self-contained [03:49] This has been - or *should* have been - the case for some time. We've had umockdev tests in tree for ages. [03:49] Hmm. Although I see the problem :S [03:49] RAOF: Perhaps make the tests smarter so they don't try stuff that will fail if the environment is wrong [03:50] I could do that, yes. [03:50] Because tests "expected to fail" is just going to trip people up, repeatedly [03:52] They're not expected to fail; they're expected to succeed, and do in the correct environment. [03:52] Hm. Looks like you can't programatically skip gtest tests. [03:53] Wow I just heard that all australlians that develop an opinion on https://code.launchpad.net/~robertcarr/mir/consolidate-default-shell-part-1/+merge/195870 get a cookie at the sprint [03:54] Everyone is talking about it. [03:54] oh man wish I could a cookie. but I'm not australian :( [03:54] Yeahhhh...sorry [03:54] I don't make the rules [03:55] rules are important. but I bet there's some lucky australian who'll get a cookie! [03:56] and just maybe his wildest IPC fantasies will come true. [03:56] Good afternoon RAOF :p [03:56] racarr: :) [03:57] racarr: Can't eat cookies :S [03:58] duflu: Hmm I don't know what your IPC fantasies are either. [04:01] racarr: The description makes sense to me; bonus points are available for proceedurally generating the DefaultShell, of course :) [04:02] racarr: I'll form a more informed opinion over time :) [04:03] duflu: Would you accept tests that fail with a more-correct error message when the environment is wrong? [04:13] RAOF: Not really. It would be a significant loss to not be able to run "unit-tests" any more. But if you can do an error message then you can if(){} around the failing tests too. Although instructing gtest to disable them would be nicer [04:14] duflu: You *can* still run unit-tests. [04:14] You just need to run “umockdev-run bin/unit-tests” [04:15] Unless you restrict the tests you run to tests which don't need umockdev, in which case you should still be able to run unadorned bin/unit-tests [04:24] RAOF: There are solutions out there. I'm really just asking that it not be me who implements one because I'm the only person who cares right now [04:28] duflu: I'm just trying to get a sense of what parameters you think a solution must have. [04:29] Hm. I wonder if we could just link the unittests to the umockdev SO rather than libudev... [04:32] Sounds like another option. [04:32] And so is lunch... [04:38] RAOF: I think any discussionsabout the IPC,etc will have to wait for the sprint so in the mean time I am just trying to change the way we think about "shell" [04:39] racarr: Oh, yeah. Absolutely. === chihchun is now known as chihchun_afk [04:51] duflu: https://code.launchpad.net/~raof/mir/fix-1253876/+merge/196222 is first part of fix. [05:40] duflu: GAH! Does lp-propose not work? I ran bzr lp-propose lp:~mir-team/mir/development-branch, which should target the right thing? [05:40] RAOF: Apparently not (?!) === chihchun_afk is now known as chihchun [05:54] * RAOF should really learn more OpenGL [06:00] RAOF: It's actually much more fun leanring OpenGL than ES :P [06:00] *learning [06:00] More fixed function, less shaders for everything? :) [06:01] RAOF: Yes... as in OpenGL complements your C algorithm. You just write C and emit vertices etc when it suits you [06:02] Also there's much less setup and voodoo that ES necessitates with shaders [06:03] Whoever designed GL was clever. Whoever designed ES was so desperate to solve hardware-specific performance issues that they forgot to keep the awesomeness of GL [06:04] Umm, I mean OpenGL. Technically "GL" is an SGI thing that predates it [09:32] Why is cmake so stupid? It's building the executable before a library that the executable depends on! https://jenkins.qa.ubuntu.com/job/mir-android-trusty-i386-build/258/console [10:03] * duflu reconsiders the wisdom of the past few days work. Maybe it's the wrong approach. [10:04] And now I have to host dinner :S [11:42] alf_: Can you confirm that I've not missed something? The call to frame_posted() would work just as well after secure_client_buffer() wouldn't it? [11:44] alan_g: looking [11:46] alan_g: From what I can see it shouldn't make any difference. [11:46] alan_g: Are you seeing anything strange? [11:46] alf_: thanks [11:47] No, just wanted to shuffle stuff and wanted to double check [11:49] alan_g: hmm, on second though, it will change the timings a bit, since we won't necessarilly recomposite until after the client has got its buffer (will may block for a bit) [11:49] thought [11:49] will->which [11:52] alan_g: thinking whether this could actually block the system completely [11:52] alf_: it does change ordering slightly, but I *can't see* that it can cause blocking. [12:10] alan_g: (after some thought) yes, it seems it would be ok [12:11] alan_g: alf_: hi folks, can you remind me of something: when using run_mir(config, clientInit) - is Mir server ready to accept incoming connections when clientInit is called? Or it only works as clientInit is an internal client, and so I must use the ServerStatusListener for when external clients can reliably connect? [12:12] greyback: you need to use ServerStatusListener [12:12] alf_: ok [12:12] greyback: Mir is initialized, but run() hasn't been called [12:13] alan_g: alf_: thanks! [12:19] * alan_g wonders whether to build on start-cleanup-of-ownership-of-client-buffers when it has a "Disapprove" vote === chihchun is now known as chihchun_afk [13:05] alan_g: +1 on SIGSTOP being a strange choice. Made it particularly annoying to test, run it and it stopped itself === greyback is now known as greyback|lunch [14:14] alan_g: alf_ i'm gonna eat bkfst real quick...but this morning, i suppose its time to queue up dev-branch merge to trunk ?? just checking make sure there's nothing to wait on ... [14:15] kgunn: nothing essential. Anything "in flight" is a nice to have though. ;) [14:15] kgunn: nothing special on my side... shmem buffers are getting close, but are not urgent [14:16] what's the easiest way for unity8-mir to grab a screen shot (ie. which mirserver API it should use)? [14:18] dandrader: I would say override the renderer, and read from the framebuffer (glReadPixels) after rendering is done [14:19] dandrader: override => decorate [14:20] alf_, ok. thanks. should I lock any resource explicitly or will it just work? [14:21] dandrader: no, during rendering the renderer is in complete control of the framebuffer (well, the back buffer to be exact, since we are double buffering) [14:21] ok [14:22] dandrader: hmm, actually now that I think about it this won't work with the current compositor structure [14:23] alf_, oh, what should I do then? [14:24] dandrader: you could implement/override the overlay renderer, which is called after all normal rendering is done and do glReadPixels from there [14:25] dandrader: but I am not sure what the future holds for the overlay renderer, it seems it's not needed in general === pete-woods is now known as pete-woods|late- === pete-woods|late- is now known as pete-woods|lunch === dandrader is now known as dandrader|lunch === greyback|lunch is now known as greyback [15:20] alan_g: alf_ ...was just about to do the version update...noticed this https://code.launchpad.net/~vanvugt/mir/version-0.1.2/+merge/196050 [15:21] mind approving ? [15:21] kgunn: no objection [15:22] or...guess i can...sorry to bother.. [15:22] was thinking something else.... [15:23] There are worse wastes of time [15:24] he just confused me with the todo in changelog...but i totally get it now....epiphany [15:36] dandrader|lunch: ping [15:36] racarr: ping === alan_g is now known as alan_g|tea === pete-woods|lunch is now known as pete-woods === dandrader|lunch is now known as dandrader [15:40] ricmm, pong [15:41] dandrader: I see you as the author of http://bazaar.launchpad.net/~mir-team/mir/development-branch/revision/1193#3rd_party/android-input/android/frameworks/base/services/input/InputReader.cpp [15:42] racarr and duflu as reviewers [15:42] that branch breaks input on all devices after 16 touches on the screen [15:42] ricmm, you need newest qtubuntu [15:42] sure it could be patched in qtubuntu [15:42] but is there a reason for the count not to reset? [15:43] why not hold an internal count for your tracking purposes, instead of changing the android API [15:44] just trying to understand the reason of the pointer id increasing across gesture boundaries [15:45] ricmm, "Have touch ids remain valid for some time after its touches have physically ended, so one can still refer to a touch that has already ended." [15:45] ricmm, and qtubuntu was making wrong assumptions about touch id values [15:45] in what way? [15:46] ricmm, check the patch there [15:46] ricmm, is has an explanation [15:46] ricmm, besides, we forked android-input code so that we could modify it to fit our needs [15:46] thats not an explanation, thats you saying you are changing the android API [15:46] but sure [15:46] does this qtubuntu change work with the SF plugin? [15:47] ricmm, yes [15:47] alright === alan_g|tea is now known as alan_g [15:52] dandrader: for my own awareness, what are they being used for after the touch ends? [15:52] a tap near the edge of a screen [15:53] ricmm, the edge gesture recognition won't know it's not an edge gesture until the touch has already ended [15:54] ricmm, and so it has to reject a touch after its end [15:54] got it [17:11] anyone around be able to tell me is mir::graphics::Buffer::id() simply the gl texture id? [17:12] greyback: It used to be a generated number - I doubt it changed [17:13] alan_g: ok, thanks [17:19] alan_g: good togo [17:20] kgunn: I assume that means "Approve"? ;) [17:21] alan_g: yep...i can do that too [17:21] uno momento [17:21] kgunn: just vote (no need to top-approve yet) === dandrader is now known as dandrader|afk [17:48] alan_g, with the surface/scene cleanup, have you given any thought yet to ms::SurfaceStack? [17:49] i'm trying to come up with a good interface for overlays, and if SurfaceStack is changing, I might hit conflicts [17:49] kdub: only to the extent that the interfaces it needs to support are getting clearer [17:50] kdub: I'm fiddling with client buffers for the next couple of days [17:51] ah, okay [17:52] the system of filters and iterating over the stack seems pretty okay for the purposes of sorting out overlays [17:53] kdub: maybe but it is wrong beyond that [17:54] let me sketch why... [17:55] we should only be locking the stuff composited by the current compositing pass (think multiple concurrent monitors and hidden surfaces) [17:55] So there ought to be a filter pass that selects what will be composited and leaves it locked [17:56] And then a compositing pass over the locked stuff [17:57] And we should get rid of the lock()/unlock() of everything [17:57] So if there's any of that which fits well with your needs... [17:58] yes, that makes sense [17:59] so the first filter would trim away surfaces that we know won't appear on the screen, and secures them for render [17:59] and then the 'overlay filter' would go through and sort out which of those need GL composition [17:59] and then we would do a composition pass, (GL + overlay), and then post [18:00] okay, sounds good [18:00] fuck yeah, I finally have Qt SG compositing Mir surfaces [18:01] kdub: yes. I've not thought through all the details. (Was chatting to duflu about it a couple of weeks back) [18:01] greyback: sounds interesting [18:01] i think too that the bypass logic should be buried deeper than the compositor [18:02] all the compositor needs to know for bypass AND overlays is which layers need GL composition === dandrader|afk is now known as dandrader [18:02] in the bypass case, no gl composition at all, in the overlay case, some gl composition [18:02] kdub: I have the feeling that it becomes a special case of ... yeah exactly [18:05] bypass is really just using any suitable surface as the fb [18:05] cool, sounds like we're on the same page [18:05] and then though, the hardware cursor becomes an overlay that gbm can do [18:05] and mc:: doesn't know 'this is the cursor' [18:06] I hadn't though that through, but it sounds plausible [18:07] yeah [18:07] i get an hour of overlap with duflu, will chat with him about it on monday [18:08] since its already tomorrow in australia [18:08] ack [18:08] It is already weekend here. ;) === alan_g is now known as alan_g|EOW [18:08] i know, every friday, i'm like 'i'm the last one that gets a weekend :(' [18:08] but every sunday, i'm like 'i'm the last one still on the weekend :)' [18:09] racarr can probably relate [18:09] greyback, well done! [18:09] But the last to get up on a Monday morning [18:09] Kaleo: ta [18:10] greyback, with the gnex or nexus4? [18:10] greyback: I'll be very interested in how and any issues you ran into. (But not until next week) [18:10] kdub: working on nexus4, framerate bad, but same with mir_demo_server_shell, so think it a problem [18:11] alan_g|EOW: a few things I had to hack into Mir, but not much to get it working [18:11] Bye all! Have a good one. [18:11] greyback, ah, okay... i don't really know why you're seeing that [18:12] kdub: yep, weird alright [18:12] greyback, but i was spiking on overlays [18:13] kdub: as I said in the mail, I'm not asking for help, was just an FYI [18:13] greyback, right [18:13] it's just weird tho :) [18:14] greyback, so does that use mir's ms::SurfaceStack? or does it do something else [18:16] really, I think we can boil the communication we need with the GL compositor down to [18:16] kdub: it doesn't rely on SurfaceStack - but this is just iteration 1. I get the surfaces from the SessionListener events [18:16] greyback, ah, okay [18:18] kdub: this is an early prototype, so that's not a permanent decision or anything. Was just most convenient [18:18] greyback, right [18:19] greyback, i think as long as qt's renderer can skip some surfaces, we can work bypass and overlays into the render pass [18:19] kdub: when a surface is created by Mir, I wrap it with a QQuickItem (so that it can be used in QML). That QQuickItem then can specify the texture to be used in the scenegraph engine [18:19] without the compositor having to know about bypass or overlays [18:19] +1 that's my thinking too [18:19] and not hard to do [18:19] okay, cool [18:20] what I think will be most tricky is deciding /when/ can use bypass/overlays [18:20] greyback, right, but as long as mir can understand the intended composition [18:21] it can decide, based on the hardware, and the platform, what would be best [18:21] right [18:41] hey guys, I know there's a screenshot script for some of the nexus devices running Mir, but are there plans to build in a more reliable way of getting screenshots and screenrecordings from Mir? [18:44] mhall119, well, I just started on a task for providing a way for autopilot to get screenshots [18:45] mhall119, something along the lines of unity8 exposing a d-bus method to be called for that. [18:46] could that be extended to do recordings too? [18:46] .. or vnc? [18:47] mhall119, the task is about just screenshots. Which is what autopilot folks are asking for [18:49] does it return the screenshot over dbus, or just trigger it with dbus and then access it via the filesystem (or some other method)? [18:49] mhall119, I think it will just a filename will be exchanged... [18:50] ok, so in theory it could do something similar for video [18:51] mhall119, I don't know. I have absolutely no experience with screencasts [18:52] ok [18:54] eow [18:56] alf_: you still on ? [18:57] kdub: or racarr could one of you sanity review https://code.launchpad.net/~mir-team/mir/v0.1.2/+merge/196359 [18:57] kgunn: being able to record an app in-use on a device with Mir is something app developers are going to want, what do I need to do to get this on your radar/roadmap? [18:57] okay [18:57] kgunn, what do you mean by sanity review? :) [18:58] kdub: meaning...review and approve...it should just be dev going to trunk [18:58] kdub: so mainly the debian bits [18:58] version [18:58] s [18:58] okay [18:58] mhall119: well...its interesting [18:58] mhall119: trouble is [18:58] mhall119: we don't want to just let apps read from the fb [18:58] its kinda anti-security [18:59] an app could certainly read from its own back buffer before it gets composited [19:01] kgunn: users are going to want vnc or nx or something similar [19:04] sarnold: mhall119 please bring up monday when tvoss is back..i'm well aware but we need something that's cohesive with our security story...and things like "my random remote desktop app" just might not work..we might have to have a signing process or something.... [19:04] mdeslaur: ^ thots ? [19:04] bbiab [19:05] capturing a video or a screenshot is definitely a privileged operation [19:06] we want to make sure that the user is able to control that, not confined applications [19:06] having it live in unity is the right place [19:06] and we can enforce both access to the dbus call to trigger it, and to the file storage location once it's written out [19:07] heh, I _do_ want to confine the vncd .. :) [19:08] sarnold: yes, the design should allow for trusted apps, such as a vnc daemon, or an alternative keyboard [19:08] by "confined applications", I meant "arbitrary untrusted confined application" [19:08] okay, good :) [19:09] ie: not stuff from the app store [19:19] kgunn: will so [19:20] kgunn: my assumption is that an app would need permission to request a screen recording, or use the content hub to request it without app permissions, then it will be given access to read from a local socket or something [19:20] or what mdeslaur said, if I had bothered to finish reading the scrollback before commenting :) [19:21] but yes, no arbitrary access to the FB [20:46] rafalm_: ping [20:46] crap, wrong person [20:46] racarr: ping [20:58] ricmm: Pong [21:00] racarr: is the msh::Session for the server expected to be null? [21:00] you set it to null when creating the surface for the shell in papi [21:00] just wondering if thats expected [21:00] Yes. [21:00] ok [21:00] though maybe its an abuse of API so its possible not everyone knew about this [21:00] and some code might expect it [21:01] I wrote some code expecting it and it blew up in my face [21:01] but I went around it [21:01] heh [21:03] Thanks for bringing that up actually its a good point to consider in the shell refactoring thread [21:03] its weird that a session is the sort of the only way to create a fully functioning surface but the shell doesn't have one [21:04] yup