/srv/irclogs.ubuntu.com/2013/11/22/#ubuntu-mir.txt

=== chihchun_afk is now known as chihchun
duflu_RAOF: Bug 1253507 is now on trusty too :(03:04
ubot5bug 1253507 in Mir "The following tests FAILED: 134 - unit-tests.UdevWrapperTest.* (OTHER_FAULT)" [Critical,Triaged] https://launchpad.net/bugs/125350703:04
=== duflu_ is now known as duflu
RAOFduflu: You can't run the unit-tests bare.03:47
dufluRAOF: Yes you can. Always have. How else do you run a specific test you're working on? Or under valgrind?03:47
RAOFduflu: If you don't want to run ‘make test’, you'll need to run “umockdev-run bin/unit-tests”03:48
RAOFOr export LD_PRELOAD, of course.03:48
dufluRAOF: We need to fix that then. All the tests binaries need to be self-contained03:48
RAOFThis has been - or *should* have been - the case for some time. We've had umockdev tests in tree for ages.03:49
dufluHmm. Although I see the problem :S03:49
dufluRAOF: Perhaps make the tests smarter so they don't try stuff that will fail if the environment is wrong03:49
RAOFI could do that, yes.03:50
dufluBecause tests "expected to fail" is just going to trip people up, repeatedly03:50
RAOFThey're not expected to fail; they're expected to succeed, and do in the correct environment.03:52
RAOFHm. Looks like you can't programatically skip gtest tests.03:52
racarrWow 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 sprint03:53
racarrEveryone is talking about it.03:54
sarnoldoh man wish I could a cookie. but I'm not australian :(03:54
racarrYeahhhh...sorry03:54
racarrI don't make the rules03:54
sarnoldrules are important. but I bet there's some lucky australian who'll get a cookie!03:55
racarrand just maybe his wildest IPC fantasies will come true.03:56
racarrGood afternoon RAOF :p03:56
RAOFracarr: :)03:56
dufluracarr: Can't eat cookies :S03:57
racarrduflu: Hmm I don't know what your IPC fantasies are either.03:58
RAOFracarr: The description makes sense to me; bonus points are available for proceedurally generating the DefaultShell, of course :)04:01
RAOFracarr: I'll form a more informed opinion over time :)04:02
RAOFduflu: Would you accept tests that fail with a more-correct error message when the environment is wrong?04:03
dufluRAOF: 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 nicer04:13
RAOFduflu: You *can* still run unit-tests.04:14
RAOFYou just need to run “umockdev-run bin/unit-tests”04:14
RAOFUnless 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-tests04:15
dufluRAOF: 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 now04:24
RAOFduflu: I'm just trying to get a sense of what parameters you think a solution must have.04:28
RAOFHm. I wonder if we could just link the unittests to the umockdev SO rather than libudev...04:29
dufluSounds like another option.04:32
dufluAnd so is lunch...04:32
racarrRAOF: 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:38
RAOFracarr: Oh, yeah. Absolutely.04:39
=== chihchun is now known as chihchun_afk
RAOFduflu: https://code.launchpad.net/~raof/mir/fix-1253876/+merge/196222 is first part of fix.04:51
RAOFduflu: 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
dufluRAOF: Apparently not (?!)05:40
=== chihchun_afk is now known as chihchun
* RAOF should really learn more OpenGL05:54
dufluRAOF: It's actually much more fun leanring OpenGL than ES :P06:00
duflu*learning06:00
RAOFMore fixed function, less shaders for everything? :)06:00
dufluRAOF: Yes... as in OpenGL complements your C algorithm. You just write C and emit vertices etc when it suits you06:01
dufluAlso there's much less setup and voodoo that ES necessitates with shaders06:02
dufluWhoever designed GL was clever. Whoever designed ES was so desperate to solve hardware-specific performance issues that they forgot to keep the awesomeness of GL06:03
dufluUmm, I mean OpenGL. Technically "GL" is an SGI thing that predates it06:04
alf_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/console09:32
* duflu reconsiders the wisdom of the past few days work. Maybe it's the wrong approach.10:03
dufluAnd now I have to host dinner :S10:04
alan_galf_: 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:42
alf_alan_g: looking11:44
alf_alan_g: From what I can see it shouldn't make any difference.11:46
alf_alan_g: Are you seeing anything strange?11:46
alan_galf_: thanks11:46
alan_gNo, just wanted to shuffle stuff and wanted to double check11:47
alf_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
alf_thought11:49
alf_will->which11:49
alf_alan_g: thinking whether this could actually block the system completely11:52
alan_galf_: it does change ordering slightly, but I *can't see* that it can cause blocking.11:52
alf_alan_g: (after some thought) yes, it seems it would be ok12:10
greybackalan_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:11
alf_greyback: you need to use ServerStatusListener12:12
greybackalf_: ok12:12
alan_ggreyback: Mir is initialized, but run() hasn't been called12:12
greybackalan_g: alf_: thanks!12:13
* alan_g wonders whether to build on start-cleanup-of-ownership-of-client-buffers when it has a "Disapprove" vote12:19
=== chihchun is now known as chihchun_afk
greybackalan_g: +1 on SIGSTOP being a strange choice. Made it particularly annoying to test, run it and it stopped itself13:05
=== greyback is now known as greyback|lunch
kgunnalan_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:14
alan_gkgunn: nothing essential. Anything "in flight" is a nice to have though. ;)14:15
alf_kgunn: nothing special on my side... shmem buffers are getting close, but are not urgent14:15
dandraderwhat's the easiest way for unity8-mir to grab a screen shot (ie. which mirserver API it should use)?14:16
alf_dandrader: I would say override the renderer, and read from the framebuffer (glReadPixels) after rendering is done14:18
alf_dandrader: override => decorate14:19
dandraderalf_, ok. thanks. should I lock any resource explicitly or will it just work?14:20
alf_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
dandraderok14:21
alf_dandrader: hmm, actually now that I think about it this won't work with the current compositor structure14:22
dandraderalf_, oh, what should I do then?14:23
alf_dandrader: you could implement/override the overlay renderer, which is called after all normal rendering is done and do glReadPixels from there14:24
alf_dandrader: but I am not sure what the future holds for the overlay renderer, it seems it's not needed in general14:25
=== 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
kgunnalan_g: alf_ ...was just about to do the version update...noticed this https://code.launchpad.net/~vanvugt/mir/version-0.1.2/+merge/19605015:20
kgunnmind approving ?15:21
alan_gkgunn: no objection15:21
kgunnor...guess i can...sorry to bother..15:22
kgunnwas thinking something else....15:22
alan_gThere are worse wastes of time15:23
kgunnhe just confused me with the todo in changelog...but i totally get it now....epiphany15:24
ricmmdandrader|lunch: ping15:36
ricmmracarr: ping15:36
=== 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
dandraderricmm, pong15:40
ricmmdandrader: 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.cpp15:41
ricmmracarr and duflu as reviewers15:42
ricmmthat branch breaks input on all devices after 16 touches on the screen15:42
dandraderricmm, you need newest qtubuntu15:42
ricmmsure it could be patched in qtubuntu15:42
ricmmbut is there a reason for the count not to reset?15:42
ricmmwhy not hold an internal count for your tracking purposes, instead of changing the android API15:43
ricmmjust trying to understand the reason of the pointer id increasing across gesture boundaries15:44
dandraderricmm, "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
dandraderricmm, and qtubuntu was making wrong assumptions about touch id values15:45
ricmmin what way?15:45
dandraderricmm, check the patch there15:46
dandraderricmm, is has an explanation15:46
dandraderricmm, besides, we forked android-input code so that we could modify it to fit our needs15:46
ricmmthats not an explanation, thats you saying you are changing the android API15:46
ricmmbut sure15:46
ricmmdoes this qtubuntu change work with the SF plugin?15:46
dandraderricmm, yes15:47
ricmmalright15:47
=== alan_g|tea is now known as alan_g
ricmmdandrader: for my own awareness, what are they being used for after the touch ends?15:52
dandradera tap near the edge of a screen15:52
dandraderricmm,  the edge gesture recognition won't know it's not an edge gesture until the touch has already ended15:53
dandraderricmm, and so it has to reject a touch after its end15:54
ricmmgot it15:54
greybackanyone around be able to tell me is mir::graphics::Buffer::id() simply the gl texture id?17:11
alan_ggreyback: It used to be a generated number - I doubt it changed17:12
greybackalan_g: ok, thanks17:13
kgunnalan_g: good togo17:19
alan_gkgunn: I assume that means "Approve"? ;)17:20
kgunnalan_g: yep...i can do that too17:21
kgunnuno momento17:21
alan_gkgunn: just vote (no need to top-approve yet)17:21
=== dandrader is now known as dandrader|afk
kdubalan_g, with the surface/scene cleanup, have you given any thought yet to ms::SurfaceStack?17:48
kdubi'm trying to come up with a good interface for overlays, and if SurfaceStack is changing, I might hit conflicts17:49
alan_gkdub: only to the extent that the interfaces it needs to support are getting clearer17:49
alan_gkdub: I'm fiddling with client buffers for the next couple of days17:50
kdubah, okay17:51
kdubthe system of filters and iterating over the stack seems pretty okay for the purposes of sorting out overlays17:52
alan_gkdub: maybe but it is wrong beyond that17:53
alan_glet me sketch why...17:54
alan_gwe should only be locking the stuff composited by the current compositing pass (think multiple concurrent monitors and hidden surfaces)17:55
alan_gSo there ought to be a filter pass that selects what will be composited and leaves it locked17:55
alan_gAnd then a compositing pass over the locked stuff17:56
alan_gAnd we should get rid of the lock()/unlock() of everything17:57
alan_gSo if there's any of that which fits well with your needs...17:57
kdubyes, that makes sense17:58
kdubso the first filter would trim away surfaces that we know won't appear on the screen, and secures them for render17:59
kduband then the 'overlay filter' would go through and sort out which of those need GL composition17:59
kduband then we would do a composition pass, (GL + overlay), and then post17:59
kdubokay, sounds good18:00
greybackfuck yeah, I finally have Qt SG compositing Mir surfaces18:00
alan_gkdub: yes. I've not thought through all the details. (Was chatting to duflu about it a couple of weeks back)18:01
alan_ggreyback: sounds interesting18:01
kdubi think too that the bypass logic should be buried deeper than the compositor18:01
kduball the compositor needs to know for bypass AND overlays is which layers need GL composition18:02
=== dandrader|afk is now known as dandrader
kdubin the bypass case, no gl composition at all, in the overlay case, some gl composition18:02
alan_gkdub: I have the feeling that it becomes a special case of ... yeah exactly18:02
alan_gbypass is really just using any suitable surface as the fb18:05
kdubcool, sounds like we're on the same page18:05
kduband then though, the hardware cursor becomes an overlay that gbm can do18:05
kduband mc:: doesn't know 'this is the cursor'18:05
alan_gI hadn't though that through, but it sounds plausible18:06
kdubyeah18:07
kdubi get an hour of overlap with duflu, will chat with him about it on monday18:07
kdubsince its already tomorrow in australia18:08
alan_gack18:08
alan_gIt is already weekend here. ;)18:08
=== alan_g is now known as alan_g|EOW
kdubi know, every friday, i'm like 'i'm the last one that gets a weekend :('18:08
kdubbut every sunday, i'm like 'i'm the last one still on the weekend :)'18:08
kdubracarr can probably relate18:09
Kaleogreyback, well done!18:09
alan_g|EOWBut the last to get up on a Monday morning18:09
greybackKaleo: ta18:09
kdubgreyback, with the gnex or nexus4?18:10
alan_g|EOWgreyback: I'll be very interested in how and any issues you ran into. (But not until next week)18:10
greybackkdub: working on nexus4, framerate bad, but same with mir_demo_server_shell, so think it a problem18:10
greybackalan_g|EOW: a few things I had to hack into Mir, but not much to get it working18:11
alan_g|EOWBye all! Have a good one.18:11
kdubgreyback, ah, okay...  i don't really know why you're seeing that18:11
greybackkdub: yep, weird alright18:12
kdubgreyback, but i was spiking on overlays18:12
greybackkdub: as I said in the mail, I'm not asking for help, was just an FYI18:13
kdubgreyback, right18:13
greybackit's just weird tho :)18:13
kdubgreyback, so does that use mir's ms::SurfaceStack? or does it do something else18:14
kdubreally, I think we can boil the communication we need with the GL compositor down to18:16
greybackkdub: it doesn't rely on SurfaceStack - but this is just iteration 1. I get the surfaces from the SessionListener events18:16
kdubgreyback, ah, okay18:16
greybackkdub: this is an early prototype, so that's not a permanent decision or anything. Was just most convenient18:18
kdubgreyback, right18:18
kdubgreyback, i think as long as qt's renderer can skip some surfaces, we can work bypass and overlays into the render pass18:19
greybackkdub: 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 engine18:19
kdubwithout the compositor having to know about bypass or overlays18:19
greyback+1 that's my thinking too18:19
greybackand not hard to do18:19
kdubokay, cool18:19
greybackwhat I think will be most tricky is deciding /when/ can use bypass/overlays18:20
kdubgreyback, right, but as long as mir can understand the intended composition18:20
kdubit can decide, based on the hardware, and the platform, what would be best18:21
greybackright18:21
mhall119hey 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:41
dandradermhall119, well, I just started on a task for providing a way for autopilot to get screenshots18:44
dandradermhall119, something along the lines of unity8 exposing a d-bus method to be called for that.18:45
mhall119could that be extended to do recordings too?18:46
sarnold.. or vnc?18:46
dandradermhall119, the task is about just screenshots. Which is what autopilot folks are asking for18:47
mhall119does 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
dandradermhall119, I think it will just a filename will be exchanged...18:49
mhall119ok, so in theory it could do something similar for video18:50
dandradermhall119, I don't know. I have absolutely no experience with screencasts18:51
mhall119ok18:52
dandradereow18:54
kgunnalf_: you still on  ?18:56
kgunnkdub: or racarr could one of you sanity review https://code.launchpad.net/~mir-team/mir/v0.1.2/+merge/19635918:57
mhall119kgunn: 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
kdubokay18:57
kdubkgunn, what do you mean by sanity review? :)18:57
kgunnkdub: meaning...review and approve...it should just be dev going to trunk18:58
kgunnkdub: so mainly the debian bits18:58
kgunnversion18:58
kgunns18:58
kdubokay18:58
kgunnmhall119: well...its interesting18:58
kgunnmhall119: trouble is18:58
kgunnmhall119: we don't want to just let apps read from the fb18:58
kgunnits kinda anti-security18:58
kgunnan app could certainly read from its own back buffer before it gets composited18:59
sarnoldkgunn: users are going to want vnc or nx or something similar19:01
kgunnsarnold: 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
kgunnmdeslaur: ^ thots ?19:04
kgunnbbiab19:04
mdeslaurcapturing a video or a screenshot is definitely a privileged operation19:05
mdeslaurwe want to make sure that the user is able to control that, not confined applications19:06
mdeslaurhaving it live in unity is the right place19:06
mdeslaurand we can enforce both access to the dbus call to trigger it, and to the file storage location once it's written out19:06
sarnoldheh, I _do_ want to confine the vncd .. :)19:07
mdeslaursarnold: yes, the design should allow for trusted apps, such as a vnc daemon, or an alternative keyboard19:08
mdeslaurby "confined applications", I meant "arbitrary untrusted confined application"19:08
sarnoldokay, good :)19:08
mdeslaurie: not stuff from the app store19:09
mhall119kgunn: will so19:19
mhall119kgunn: 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 something19:20
mhall119or what mdeslaur said, if I had bothered to finish reading the scrollback before commenting :)19:20
mhall119but yes, no arbitrary access to the FB19:21
ricmmrafalm_: ping20:46
ricmmcrap, wrong person20:46
ricmmracarr: ping20:46
racarrricmm: Pong20:58
ricmmracarr: is the msh::Session for the server expected to be null?21:00
ricmmyou set it to null when creating the surface for the shell in papi21:00
ricmmjust wondering if thats expected21:00
racarrYes.21:00
ricmmok21:00
racarrthough maybe its an abuse of API so its possible not everyone knew about this21:00
racarrand some code might expect it21:00
ricmmI wrote some code expecting it and it blew up in my face21:01
ricmmbut I went around it21:01
ricmmheh21:01
racarrThanks for bringing that up actually its a good point to consider in the shell refactoring thread21:03
racarrits weird that a session is the sort of the only way to create a fully functioning surface but the shell doesn't have one21:03
ricmmyup21:04

Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!