/srv/irclogs.ubuntu.com/2013/08/21/#ubuntu-mir.txt

kgunnrobert_ancell: yep...i'm getting the same change in perf you see with glmark200:00
bschaeferoo i see, yup :), i've still a lot to learn the graphics stack....00:01
robert_ancellkgunn, cool, hopefully duflu can also reproduce00:01
RAOF !!!00:04
RAOFOk, it's really mirclient leaking.00:05
RAOFracarr: Can you see anything obviously wrong with http://paste.ubuntu.com/6008432/ ?00:07
RAOFOr, alternatively, bschaefer - can *you* see anything obviously wrong with http://paste.ubuntu.com/6008432/ ?00:07
* bschaefer looks00:08
bschaeferRAOF, well I don't see the surfaces getting cleaned up, but it could happen after the while loop00:09
bschaefer+ line 53-54 has a small tabbing issue00:09
RAOFThere's nothing obviously crazy about the EGL usage, though?00:10
RAOFBecause with that patch, mir_demo_client_accelerated quickly runs out of fds.00:10
bschaeferlots of make current calls00:10
RAOFIf I was aiming for efficiency I'd have spun off a pair of render threads ;)00:11
racarrRAOF:      gl_animation.init_gl();00:11
racarrdoesn't make sense anymore00:11
racarror does it00:11
RAOFI think it does; AFAIK it only affects the current context.00:12
RAOFAnd both surfaces are on rendered to from that context00:12
bschaeferRAOF, that would speed thing up ... but cant you just swap surfaces?00:12
* bschaefer isn't to familiar with egl apps00:13
racarrRAOF: Yeah00:13
racarrok nothing obviously rong00:13
racarrhats happening?00:14
RAOFIt leaks the fds received from Mir.00:14
RAOFSo, if you kill it after a while, it's got > 1024 open fds.00:14
racarragh00:14
RAOFThis only happens for clients with multiple surfaces.00:14
bschaefero yeah its in an infinite loop...00:14
RAOFSuch as... XMir with two heads.00:15
bschaefererr I don't see anything being cleaned up00:15
rsalvetilet me past again as it seems I got disconnected00:15
rsalveti<rsalveti> kgunn: so there are quite many intrusive changes comparing 4.2.2 with 4.2.1, not trivial to find what is the issue in there00:15
rsalveti<rsalveti> I noticed it was also giving a enomem in logcat, which is fixed with the latest kernel driver (which I tested locally)00:15
rsalveti<rsalveti> but unfortunately still getting a black screen00:15
rsalveti<rsalveti> I suspect it's something mir is not yet doing by default when handling the hwcompositor from android00:15
RAOFbschaefer: eglSwapBuffers will call mir_surface_swap_buffers internally, which should clean up the fds.00:15
rsalveti<rsalveti> as it works just fine with surfaceflinger, even when it gives the enomem error (which seems to happen when setting up the overlay for fb2)00:15
rsalveti<rsalveti> as this seems a bit critical, I'd vote to just change the branch of the qcom display git repo to be based on phablet-10.1, which was the previous branch used00:15
rsalveti<rsalveti> that would get it to work again, but it'd be good to get someone involved at this later on as well, so we can use the right branch00:15
rsalveti<rsalveti> guess kdub would probably have a better idea about what is going on there00:15
rsalveti<rsalveti> what do you think?00:15
rsalveti<rsalveti> racarr: ^?00:15
bschaeferRAOF, oo i see, but if it get cleaned up on eglSwapBuffers, shouldn't it be getting cleaned up each time?00:17
RAOFbschaefer: Yes indeed; this is the bug ☺00:18
bschaeferRAOF, o :), I remember those memory leaks that were dealing with multiple surfaces but I was thinking it was something else :)00:18
RAOF:)00:18
bschaeferrather, I was looking for what was wrong with the egl calls00:18
RAOFYeah, I just wanted a quick sanity check that the test wasn't doing something that's not meant to work.00:28
racarrrsalveti: I agree00:29
rsalvetiracarr: will do a clean build and will update the bug00:29
racarrIt ould be good to get it working, land unity 8, and we can investigate after FF00:29
racarrwe even have a sprint coming up :)00:29
kgunnrsalveti: totally...and kdub will be back Sept 200:31
robert_ancellkgunn, what resolution did you do the openarena benchmarks on? I'm not getting any significant change at 800x60001:05
bschaeferkgunn, i get 30-60 fps on ATI01:22
bschaeferRAOF, also just realized I cant gdb the mir ... my laptop has a fried gpu/motherboard soo i don't have a second machine to ssh in...01:26
bschaeferyay01:26
RAOFbschaefer: :(01:26
bschaeferRAOF, ill try to barrow the ATI machine from QA tomorrow and dig into it01:27
bschaeferas hopefully I can get a card that can reproduce this problem...01:27
bschaeferor if thomi has one I can use right now...01:28
bschaeferthomi, ping :)01:28
bschaeferduflu, i also have a question for you about a problem im running into when trying to do software rendering with SDL 1.201:31
duflubschaefer, yes?01:32
bschaeferduflu, sooo something strange is happening only for 1.2 framebuffers: http://imgur.com/a/0S012#001:32
bschaeferduflu, each time it attempts to draw more then 1 rectangle, it starts hmm01:32
bschaeferits hard to explain, but each from it doesn't seem be apply the mask when its bliting?01:32
bschaefer(if that makes sense), so when im redrawing an the smily face it draws it with the black screen, then the gradient and the 2nd redraw01:33
bschaefercausing a bunch of flashing01:33
bschaeferduflu, and the only way around it is to redraw the entire screen vs just the place that is being updated01:34
bschaeferredrawing the entire screen == copying the entire SDL screen over to mirs region01:36
RAOFbschaefer: Are you taking into account the age of the buffer?01:36
bschaeferRAOF, hmm im not sure how you would take that into account?01:37
RAOFbschaefer: Well, if you try to only copy updates you'll need to track what is in the buffer you get (ie: via the .age field).01:38
RAOFbschaefer: Because what you drew last frame *will not* be in the buffer you receive.01:38
bschaeferRAOF, oo...but whats strange this same logic works with SDL 2.0...but I think things could be handled differently...01:38
* bschaefer pastebins the function01:39
bschaeferhttp://paste.ubuntu.com/6008647/01:39
duflubschaefer: Yes what RAOF said. You _can_not_ make assumptions that your previous frame, or even n-2 is the one you get back. You either have to redraw everything or use the "age" field to calculate how old the buffer you're updating is01:40
bschaeferRAOF, as that could be the problem, as it seems like its missing what was put into the last frame01:40
bschaeferthat is very interesting! I didn't actually know about the age of buffers...so there could well very be a bug in my 2.0 code as well01:41
duflubschaefer: The assumption probably broke recently as Mir now defaults to triple buffering01:41
RAOFAlthough even with double buffering you'd get incorrect rendering.01:41
RAOFBut differently incorrect rendering :)01:41
bschaeferduflu, well i haven't tested it in a bit, i need to test it with new mir (ie. look at the cursor)01:41
dufluYes, unless you consider "age"01:41
duflubschaefer: Yeah your Mir is clearly very old from that cursor. Much has changed01:42
bschaeferim assuming its fairly simple to calculate how old the buffer is?01:42
duflubschaefer: It's an integer :)01:42
bschaeferduflu, yup, I just haven't found time to poke someone about it01:42
bschaeferduflu, haha01:42
bschaeferwell01:42
RAOFYou don't need to (and cannot) calculate it. You pull it out of MirNativeBuffer01:42
bschaeferRAOF, i've not looked over the new API changes, but IIRC all I could get was a MirGraphicsRegion?01:43
dufluRight. You don't calculate age. But based on age you will need to calculate your changes01:43
RAOFSee http://www.khronos.org/registry/egl/extensions/EXT/EGL_EXT_buffer_age.txt for the semantics.01:43
bschaeferawesome, so if the age is to old, i my need to do a redraw01:44
dufluI think in many cases calculating age-based changes is infeasibly complex. Better to redraw everything.01:44
* bschaefer reads link01:44
bschaeferduflu, i've noticed no problems with redrawing the screen (performance wise)01:44
bschaefervs redrawing rectangles around the screen01:44
bschaeferim sure there are cause... i mean you have to touch all the pixels vs just select few01:45
duflubschaefer: Yeah, though "copies" are slow. And should usually be avoided01:45
duflubschaefer: Though if you're using software buffers and Mir, then you have little choice but to copy. See: demo_client_fingerpaint01:45
bschaeferduflu, o awesome, yeah, i have to copy all the changes over to a mir region ie. the whole screen :(01:46
bschaefer(awesome about the example)01:46
bschaeferyou always seem to have so many useful ones!01:46
duflubschaefer: That's the intention. Though the practical use isn't obvious to everyone when I propose a new example :)01:46
bschaeferduflu, haha, its practical time seems to always show up :)01:47
bschaeferRAOF, thanks for the link! Age now makes more sense :)01:48
bschaefer0 == no back buffer so that'll be a good thing to check01:48
RAOF0 == no current buffer content01:49
bschaeferduflu, RAOF thanks! I think I can actually make some progress on that problem now...01:49
* duflu wonders if age is still accurate. Where do we set it?01:49
bschaeferRAOF, which means the last buffer has been drawn and freed?01:49
RAOFduflu: In ClientBufferDepository01:49
duflubschaefer: We don't free buffers right now. They get recycled eventually. But they could be freed in theory01:50
RAOFbschaefer: Which means you've got a shiny new buffer; it doesn't really imply anything more than that. Mir is free to send you a new buffer each frame, or to recycle.01:50
RAOFIn practice your first 3 swaps will return buffers with age == 0, as we're triple-buffeering.01:50
bschaefercool, I was think if the age was > 0 then we should redraw the screen01:50
dufluRAOF: Right so not affected by SwitchingBundle changes?01:50
bschaeferthinking*01:51
bschaefererr...well in this case redraw, as something odd is happing in sdl 1.2 as far as I can tell...01:51
bschaeferas the some logic I had is handle fine in 2.0, but ill need to look some more01:52
thomibschaefer: hey01:52
thomibschaefer: you're looking for a machine?01:52
bschaeferthomi, correct! An ati one preferable one with a card  less then 700001:52
bschaeferthomi, I can also poke Chris about it tomorrow morning01:53
thomibschaefer: how about a radeon 5750?01:53
bschaeferas its near my EOD (or a bit over)01:53
bschaeferthomi, that would be perfect01:53
thomibschaefer: well, if you'd rather do it tomorrow....01:54
bschaeferthomi, yeah, Ill wait till tomorrow, i really should eat something :)01:54
thomibschaefer: OK01:54
thomibschaefer: well, we have a 5750 in the mir test pool01:54
bschaeferthomi, thanks!01:54
thomiso speak with Chris Gagnon and I'm sure he can hook you up01:54
bschaefercool, that should be easy to snag tomorrow then01:54
bschaeferhopefully :)01:55
thomiheh01:55
* bschaefer heads out for the night01:56
bschaeferRAOF, duflu thanks again!01:57
dufluRAOF: What swapinterval does XMir use?01:57
duflubschaefer, no problem01:57
RAOFduflu: Whatever's the default. Presumably 1?02:03
dufluRAOF: Yep02:03
* RAOF goes to make coffee, then will finish augmenting the acceptance tests so that they can expose fd leaks.02:05
dufluCoffee instead of lunch? Almost as good as coffee instead of dinner02:06
robert_ancellduflu, have you seen the testing results for bypass?02:08
duflurobert_ancell: Only one brief email02:08
robert_ancellduflu, can you try glmark2 and see if you get the ~50% framerate when using bypass?02:08
RAOFCoffee *before* lunch :)02:09
duflurobert_ancell: That sounds very wrong... Umm it will take me a while to get to a point where I have glmark2 and Mir and bypass on the same machine again02:09
duflurobert_ancell: For what driver?02:09
robert_ancellduflu, there is a PPA - ppa:mir-team/qa-testing02:09
robert_ancellduflu, intel for me, I think kgunn is intel too02:10
duflurobert_ancell: That's really wrong. Intel has been nothing but sped up for me02:10
dufluHmm02:10
robert_ancellduflu, kgunn is also getting a slowdown with openarena, but I can't reproduce that02:10
duflurobert_ancell: You're using XMir though? I have only tested native Mir clients so far02:11
robert_ancellduflu, I tested XMir and vanilla X02:11
robert_ancellfor phoronix. For glmark2 I tested XMir from archive vs XMir with bypass02:11
robert_ancellI'm going to run phoronix with XMir from archive now02:12
robert_ancellbrb02:12
duflurobert_ancell: What Mir revision is this all based on. Obviously it *requires* the switch branch to be in there too02:15
duflu?02:16
robert_ancellduflu, this is lp:~vanvugt/mir/bypass02:16
duflurobert_ancell: You used it as is or did some merging?02:16
robert_ancellas is02:16
dufluCool02:16
robert_ancellThe first build last night seemed to do bad things (TM) but since rebuilding this morning with the switch branch changes it seems to be working better02:17
* robert_ancell runs a benchmark, be back soon02:17
duflurobert_ancell: I don't understand. How is the switch branch optional? It's been merged into the bypass branch for a long time.02:19
RAOFWoot! Acceptance test now fails, and for the right reason!02:20
=== chihchun_afk is now known as chihchun
robert_ancellduflu, the switch branch isn't optional02:27
duflurobert_ancell: Right. Just trying to verify that we're not trying to merge bypass into a slightly old mir branch. Which will succeed, but with stuttuer/freeze bugs02:28
robert_ancellduflu, oh, I mean the old package was lp:~vanvugt/mir/bypass rev 927, the one this morning is lp:~vanvugt/mir/bypass rev 93002:29
robert_ancellI'm not doing any merging, just debuild from the branch02:30
* robert_ancell -> more benchmarking02:30
duflurobert_ancell: Functionally that should be OK. It's been feature complete without known bugs for at least 7 days02:32
dufluI just lost a few days panicking about nouveau and radeon, which turned out are slightly broken but OK in kernel 3.1102:32
dufluRAOF: Right, so XMir is an EGL/GLES client with default swap interval?02:37
RAOFIt's a raw gbm client with default swap interval.02:37
* duflu wonders if that matters02:37
RAOFYou keep asking if it's an EGL client, and it keeps not being one :)02:38
dufluRAOF: I forget. I also thought you had made changes....02:38
RAOFXMir is not going to be an EGL client for the forseeable future.02:38
dufluRAOF: Right, but even as a GBM client it never uses buffers outside of the standard swapping semantics, surely?02:39
RAOFCorrect.02:39
RAOFCertainly not before 13.10, and it'll probably keep a not-EGL-client mode indefinitely.02:39
dufluRAOF: Yeah, it's only important that it's a hardware surface02:39
RAOFAnd it only interacts with Mir through mir_surface_swap_buffers02:40
* duflu also wonders if and how X unredirected windows might conflict with bypass02:40
kgunnrobert_ancell: so when you run phoronix on standalone X (but with xmir bypass "in the system") what kind of fps you get with open arena ?02:41
dufluAll - If you know how to build lp:mir then please test bypass that way without X first. It sounds like the issue is XMir-specific02:41
dufluAlthough if you're using nouveau/radeon then the drivers have issues too02:42
kgunnduflu: do you mean using some libmirclient ? or do you mean build it as the base for my running xmir ?02:42
duflukgunn: I mean native Mir clients. Test without X/XMir first02:42
dufluSo we can focus on "why is XMir different"?02:43
duflu-"?  +?"02:43
dufluI'm mostly concerned about intel. Intel should be flawless and if not then there's definitely a bug02:44
kgunnduflu: sure...so i'm gonna branch trunk, then merge vanvugt/mir/bypass on top...then build02:44
kgunnwhich mir demo client to run ?02:45
duflukgunn: Needs to be a hardware surface and fullscreen, so eglplasma/egltriangle with: -f02:45
dufluAnd "-n" to test maximum frame rates02:46
kgunnack02:50
kgunnRAOF: dare i ask...how are you feeling about xmir multimon ? like...ready to build a ppa? or close ? or days away ?02:51
dufluIt could also be "what's different about unredirected X windows inside XMir?"02:51
dufluRAOF: Unredirected fullscreen windows in Compiz will generate zero damage. I imagine that could be a problem?...02:58
RAOFkgunn: Ish03:02
RAOFbaby annacx!03:02
kgunngood greif...i'm hating verizon fios today....kb/s what the hell03:03
rsalvetiracarr: kgunn: tvoss_: updated bug 121169403:04
ubot5bug 1211694 in Mir "Black screen on Nexus4" [High,Confirmed] https://launchpad.net/bugs/121169403:04
duflursalveti: Can you add package details and a Fix Committed to the top?03:07
rsalvetiduflu: there's no package involved, just part of the android build03:07
rsalvetididn't want to add as fix commited because this is actually just a workaround03:07
rsalvetilet me update the title03:07
duflursalveti: Maybe also affects "phablet project" whatever that is?03:08
=== sam113101 is now known as sam113101_afk
=== sam113101_afk is now known as sam113101
rsalvetiduflu: I'm not sure this is an android issue, as surface flinger works just fine03:08
rsalveticould be something missing in mir itself03:08
duflursalveti: Yeah fair point. But even a workaround being committed somewhere should show up as Fix Committed to /some/ project03:09
rsalvetiyup, agreed, but we're not yet using the android package in ubuntu03:09
rsalvetiwhich we should hopefully move later this week03:09
rsalvetithat would have the LP:# link and fix commited03:10
rsalvetibut I can add a bugtask to our touch-images at least03:10
rsalvetiso we can have it recorded someshow03:10
rsalveti*somehow03:10
RAOFduflu: Unredirected fullscreen windows will generate fullscreen damage on SwapBuffers03:11
rsalvetiduflu: done03:11
RAOFkgunn: The read side of xmir multimon works, the write side exposes a bug in mirclient when a client has multiple surfaces, the write side needs alf's surface bind-to-output branch to land before it'll work properly, and I need to work out why the write side doesn't cause Mir to actually change modes.03:13
RAOFkgunn: All in all, reasonably close, at least for a first test.03:13
RAOFkgunn: PPA-able by my EOD tomorrow would seem like a reasonable prediction.03:14
duflursalveti: Cool thanks03:14
dufluRAOF: Sounds right. you mean on "glXSwapBuffers"?03:15
RAOFduflu: Yes, ish. Actually I mean “on DRI2SwapBuffers”, but that's how the client would call it.03:15
dufluRAOF: Sounds good in theory. I need to set up for more practical XMir testing...03:16
=== sam113101 is now known as kline_afk
=== kline_afk is now known as sam113101
kgunnrsalveti: thanks for the work...and to me, yes its a workaround & effectively they broke behavioral compatibility03:23
kgunnrsalveti: as you say, its a matter of bug fixing when kdub returns to "update" to the new changes from android03:23
kgunnwe're effectively the client they don't know they have...and don't care :)03:24
kgunnthey being google03:24
kgunnRAOF: that's an exciting prediction (i hope it holds better than other predictions we've been making ;)03:25
RAOF03:25
* duflu struggles to remember everything he used to use every day to test compiz03:26
kgunnum...sorry for the lag, so branched trunk, merged bypass branch on top...went to build, but fails looking for egl/egl.h ?03:29
kgunnring any bells03:29
duflukgunn: doc/building_source_for_pc.md03:30
duflukgunn: AKA http://unity.ubuntu.com/mir/building_source_for_pc.html03:30
kgunnfollowing that....but might've f'd up my system from ealier (like mesa-dev uninstalled...)03:32
RAOFOh, yeah. That's why. The server side of ClientBufferTracker is session-local, rather than surface-local.03:36
duflurobert_ancell: I get nothing but /more speed/ from glmark2 using the bypass PPA. It just works. And this is a machine I haven't tested it on before03:36
* duflu will have to install openarena03:36
dufluFragging for science, once again03:37
dufluAnnoying and satisfying. OpenArena under bypass works flawlessly03:50
kgunnduflu: which ppa ? qa-testing ?04:05
duflukgunn: Yep. Boosts performance in everything for me04:06
dufluAnd that's on a machine I've never tested bypass on04:06
dufluRoughly speaking, the bypass PPA puts performance halfway between standard saucy/XMir and legacy X04:07
dufluWhich is what we expected, pending more optimizations in XMir04:08
dufluBut in the grand scheme of things, it's unimportant. Native mir clients on a native Mir server are a whole new ballgame04:09
kgunnduflu: sure....just wondering aloud, possible diff it works well for you but no one else...got any funky xorg.conf there ?04:10
kgunnsorry my simple test taking so long...un-f'ing my machine...04:10
duflukgunn: It's just a thinkpad with saucy I'm testing no customizations04:13
dufluOh, wait. I do have a xorg.conf. Will have to delete that and retest :/04:14
kgunnduflu: hmm...considering reimaging my machien04:14
kgunnwondering is robert, olli and i were totally clean now...04:14
kgunnbut gagnon would've definitely been clean on the lexington machines...hmm04:15
robert_ancellkgunn, openarena is showing no performance hit on my system and an improvement over XMir without bypass. It just seems to be glmark04:15
robert_ancellresults in https://code.launchpad.net/~vanvugt/mir/bypass/+merge/18100304:16
kgunnrobert_ancell: that sounds good04:16
kgunnok..i'm building successfully now...officially un-f'd04:18
dufluThat's odd. I get a significant improvement in glmark2.04:19
kgunnrobert_ancell: i'm gonna try qa-testing on this machine...i know its state very well....not sure i completely trust where my 2nd one was when i started...04:21
robert_ancellduflu, I'll retest to confirm04:21
robert_ancellthomi, do you know what jenkins job is building unity-greeter into ppa:mir-team/staging?04:26
duflurobert_ancell: Also remember bypass can only work at your *native* monitor resolution04:26
robert_ancellduflu, for XMir you're always at the native resolution right?04:27
thomirobert_ancell: I can check, one second04:27
duflurobert_ancell: Yeah should be actually04:27
robert_ancellbrb04:29
robert_ancellduflu, yeah, re-running glmark tests doesn't show such a significant change. Though the numbers are all over the place so I don't know how reliable a benchmark it is04:39
kgunnrobert_ancell: ok...so i'm on qa-testing on my well known machine....glmark2 numbers look insane like 2K fps04:43
kgunnopenarena....looks pretty sane04:44
kgunnhaven't compared in detail...but its not crawling at 10fps04:44
robert_ancellkgunn, ok, so we're just seeing bad numbers from olli and robotfuel now?04:44
kgunnrobotfuel never tried the second ppa04:44
kgunnunsure about olli04:44
kgunn...altho he had kernel stuff going on04:45
kgunnon a side note...i'm seeing some visual artifacts that looks like cache management sync issues04:46
thomirobert_ancell: to answer your question, unity-greeter is configured for autolanding, so there's a bunch of jobs that dput to the PPA04:46
thomirobert_ancell: not sure why you were asking?04:46
robert_ancellthomi, just looking at broken builds and builds for raring04:47
robert_ancellthomi, unless there was a particular reason for that it should probably only do saucy builds04:47
thomirobert_ancell: hmm, i agree04:48
duflurobert_ancell: glmark2 results are very stable. I have used them for long term comparisons over months and now years04:48
thomirobert_ancell: I can't see why it would be doing raring builds04:48
* duflu heads off to lunch04:49
robert_ancellthomi, the package is old, I'll just delete the raring one and perhaps nothing will repopulate it04:49
thomirobert_ancell: yeah, that would be my guess04:49
robert_ancellthomi, the other thing is the saucy version is out of date - so perhaps the autolanding config was removed entirely?04:51
thomirobert_ancell: we're still talking about unity-greeter?04:52
robert_ancellthomi, yes04:52
robert_ancellhttps://launchpad.net/~mir-team/+archive/staging/+packages04:52
thomirobert_ancell: it's still configured, let me check the jenkins jobs04:52
robert_ancellbecause trunk says 13.10.204:52
thomirobert_ancell: in debian/changelog?04:53
robert_ancellthomi, yes04:53
thomithat's a separate process04:53
thomilanding into the PPA is one thing, landing into distro is another04:54
thomidebian/changelog only gets updated when you land into distro04:54
thomithe last landing into the PPA was on the 13th of aug, and was to land this branch: bzr+ssh://ps-jenkins@bazaar.launchpad.net/~dbarth/unity-greeter/remote-login-only04:54
robert_ancellthomi, but it should have been rebuilt once the bzr branch was updated to rev 95004:54
robert_ancellstaging is rev 94104:55
thomirobert_ancell: hmmm, I just noticed this: http://10.97.2.10:8080/job/unity-greeter-autolanding/3/console04:56
thomirobert_ancell: does debian/changelog have UNRELEASED perhaps?04:56
robert_ancellnope04:56
thomihmmm04:58
RAOFWhy doesn't C++ do automatic tuple unpacking?04:58
robert_ancellthomi, the thing is there's packages like unity-greeter, unity-greeter-session-broadcast, unity-notifications that have nothing to do with Mir in there. They probably should be going to another PPA04:58
thomiso both unity-greeter and unity-greeter-session-broadcast are currently configured to land in that PPA04:59
thomiif you have a different PPA you'd like to nominate, I can configure that04:59
robert_ancellI'd say make a unity-greeter staging PPA05:00
robert_ancellI'll do that05:00
robert_ancellthomi, redirect them to ppa:unity-greeter-team/staging05:01
kgunnduflu: ok...finally...in addition...i tested trunk+bypass native mir, eglplasma demo getting ~70fps05:01
thomiok, will CC you in the email to francis05:01
robert_ancellkgunn, is that good?05:02
kgunndunno05:03
robert_ancellkgunn, is eglplasma from glmark or phoronix?05:03
kgunnmir demo client (full screen, unlocked from vsync)05:03
kgunnguess i need a baseline...which means a rebuild...ug05:04
kgunnoh...wait...nvmd...its in main, yea!05:04
robert_ancellkgunn, why are you rebuilding? Why not use PPA versions?05:04
kgunnat duflu 's request05:04
robert_ancellkgunn, are you trying a variation on lp:vanvugt/mir/bypass?05:05
kgunnjust native client vs xmir05:05
robert_ancellthomi, one last thing - do you know why/how unity-notifications is getting into the staging PPA?05:07
robert_ancellthomi, it also seems out of date05:08
robert_ancellI might just delete it and see if anyone makes a noise05:08
RAOFMan, how many _Surface_ classes do we have?05:08
thomirobert_ancell: it's not configured to autoland there05:08
thomiperhaps it once awas05:08
kgunnyo dawg i heard you like surfaces05:08
thomi*was05:08
robert_ancellRAOF, would you like some more?05:08
robert_ancellthomi, ok, it's gone now.05:09
* RAOF is indeed adding one more.05:09
kgunnoh the irony05:09
robert_ancellthomi, do you want/need the raring and quantal versions of runbench in there?05:10
thomirobert_ancell: not any more05:11
robert_ancellthomi, gone05:11
robert_ancellI'm also going to delete the raring version of glmark05:11
robert_ancellhope no-one wanted that05:11
kgunndude raring's dead05:12
robert_ancellstaging PPA actually looks useful again - latest versions of mir and u-s-c, experimental builds of SDL and runbench05:12
robert_ancellyou could almost actually use if IF we had a stable ABI between u-s-c and mir05:13
thomirobert_ancell: erp, forgot to CC you in, but I've sent those upstream-merger configuration tweaks off to francis05:13
tvoss_robert_ancell, kgunn good morning05:13
robert_ancelland it's all saucy05:13
robert_ancelltvoss_, hello05:13
thomihello tvoss_05:13
tvoss_robert_ancell, kgunn so what is the status on bypass?05:13
kgunntvoss_: so it is05:13
robert_ancellthomi, ok, cool. I'll just stomp on any packages that end up in the PPA in the meantime :)05:13
kgunntvoss_: can you try ppa:mir-team/qa-testing ?05:14
kgunnfirst we had some bumps...i think i had a dodgey setup05:14
kgunnand not sure what robert's story is05:14
kgunnboth of us seeing good perf now05:14
kgunnduflu worked right off the bat05:14
tvoss_robert_ancell, what is the qa testing ppa build against?05:15
kgunnwe missed gagnon before robert rebuilt it05:15
robert_ancelltvoss_, it's lp:~vanvugt/mir/bypass + u-s-c trunk05:15
kgunnolli has a naff kernel situtation....05:15
robert_ancellI rebuilt it with the changes duflu made while I was sleeping05:15
tvoss_robert_ancell, kgunn I tested it yesterday on the ati machine with expected results and all being fine05:16
tvoss_kgunn, what means a naff kernel situation?05:16
robert_ancellI was seeing bad glmark2 numbers, but good phoronix numbers. The glmark2 tests are working now, so I'm not putting too much faith in them being valid05:16
kgunntvoss_: from his conversation with leann ", I am on a x220 and have experienced hard locks when running >3.10.0-6."05:17
kgunnso 3.11 is kind of a prob for him..05:17
tvoss_kgunn, true but I wouldn't think that that is the actual issue05:19
tvoss_robert_ancell, bad numbers in terms of?05:19
robert_ancelltvoss_, ftp05:19
robert_ancellfps05:19
robert_ancellrather05:19
tvoss_robert_ancell, I think it's not bypass causing those numbers, glmark2 is slower without bypass, at least for me05:19
robert_ancelltvoss_, yeah, that's what duflu was seeing too05:20
tvoss_robert_ancell, kgunn so which ppa has the bypass mir and usc now?05:20
robert_ancelltvoss_, ppa:mir-team/qa-testing05:20
kgunnduflu: just last bit o' data...mir native egl plasma was 50fps w/o bypass...bypass was 70fps...so bueno05:22
kgunnwhich is kinda irrelevant now...but...anyway05:23
duflukgunn, I've come to realize eglplasma is a bad test for /some/ GPUs because the excessive shader calculations often limit the framerate before anything else05:43
dufluSo best test is: egltriangle -n -f05:43
dufluWhy am I the only one in the hangout?06:00
robert_ancellracarr, tvoss, kgunn, meeting06:02
robert_ancellhikiko, meeting06:03
kgunnrobert_ancell: grabbing a water....06:04
robert_ancellkgunn, wasn't actually expecting you to make it!06:04
tvossrobert_ancell, kgunn coming06:05
kgunnduflu: egltriangle w/o bypass ~173 fps, w/bypass 264 fps06:09
dufluWoo06:09
duflu50% increase is better than my best observed benefit of 25% so far06:12
=== jono is now known as Guest36288
dufluEveryone always seems so down when we say goodbye06:32
dufluI'm sure there's a song about that06:32
racarrduflu: I was thinking the same thing!06:32
racarrvery somber feeling ending06:32
alf__RAOF: MirConnection::validate_user_display_config() is the function I was referring to06:32
hikikoI have a completely irrelevant question: where is lexington? I found at about 4 lexingtons...06:32
dufluhikiko: Boston06:33
RAOFalf__: Ta.06:33
duflu(?)06:33
alf__hikiko: Lexington, MA06:33
racarrDoes anyone06:33
racarrneed help with anything06:33
racarrI am pretty aake06:33
hikiko:D06:33
racarrawake*06:33
RAOF:)06:33
racarrlol06:33
dufluracarr: Go sleep. It's the right time :)06:33
RAOFracarr: I'll soon have something for you to review if you want.06:33
racarrRAOF: okk we will see if I get tired :)06:35
robert_ancellRAOF, You said there were two Mir patches needing to land for XMir+MM right? https://code.launchpad.net/~afrantzis/mir/place-surface-in-output/+merge/181051 and ?06:36
RAOFrobert_ancell: And this "don't leak fds" branch that I'm just finishing.06:36
robert_ancellRAOF, is it pushed yet?06:36
RAOFNo06:37
robert_ancellRAOF, then with git branch of xserver we're done?06:37
RAOFAnd the various drivers, yes. Modulo fixes.06:38
robert_ancellRAOF, but the drivers are all in saucy right?06:38
RAOFNo, not that work with the git branch of xserver.06:38
duflukgunn: You commented in the wrong MP :)06:38
robert_ancellRAOF, ah, which drivers?06:38
kgunnduflu: oh crap....too many tabs06:38
robert_ancellRAOF, I'm thinking I'm going to stuff this up uploading to a PPA... Perhaps you'll have to do it06:39
RAOFrobert_ancell: The ones that I haven't pushed yet, because I was still testing & ensuring I don't need to break XMir API again ;)06:39
RAOFrobert_ancell: Yeah, I'm happy to do the push to a PPA.06:39
duflukgunn, robert_ancel: I notice that OpenArena is very erratic with its results. Better to use glmark206:39
duflurobert_ancell ^06:39
robert_ancellduflu, the opposite of me!06:40
RAOFalf__: I kind of feel like the place-surface-in-output could do with having the last entry of MirSurfaceParameters be a variable-length array of optional attributes. Having every client set the "I don't care where this goes" flag seems smelly.06:40
dufluHmm06:40
kgunnduflu: i've noticd the opposite06:40
dufluMaybe I need to use a longer timedem06:40
duflu+o06:40
alf__RAOF: well, ideally the whole surface parameter list would be a variable-lenght array ala EGL06:42
* duflu votes for that06:42
dufluor va_list even06:43
RAOFalf__, duflu: Almost. I think it's reasonable to mandate width, height.06:43
dufluRAOF: Not when things are resizable later06:43
dufluRAOF: Perhaps just buffer_usage06:43
RAOFThat is truly immutable.06:43
RAOFBut still, reasonable defaults say "hardware"06:43
dufluOh, actually, resizable means we could vary buffer usage too :)06:43
dufluHeh. You /could/ switch between software and hardware rendering between frames once we have buffer resize/reallocation06:45
robert_ancellRAOF, ok, you can push XMir+MM changes to ppa:mir-team/qa-testing2. Then we need to merge the bypass stuff into that, then we can copy to ppa:mir-team/system-compositor-testing06:45
dholbachgood morning06:45
RAOFrobert_ancell: And that should be the XMir stuff that's actually expected to work, right?06:46
robert_ancellRAOF, I think ideally we'd just push in what we have now, then update it when it's ready for testing06:46
RAOFOk.06:46
robert_ancellNo-one should be pulling from that PPA until we give the signal06:46
RAOFOk. I'll do so shortly.06:47
alf__RAOF: if you feel strongly about changing surface params to be a variable-length array now (or perhaps the last element) I have no objections, and I actually prefer it, but no time to do it :/06:47
dufluMorning dholbach06:47
dholbachhi duflu06:47
RAOFalf__: Yeah, FF sucks :)06:47
dufluAdd it to the list of things we would like to do "next ABI"06:47
RAOFalf__: I think I'll see how much effort it is. While we're breaking ABI...06:48
* robert_ancell hears the ABI floodgates open06:48
* RAOF dislikes the way mock testing makes tests sensitive to internal details they shouldn't be insensitive to.06:49
duflurobert_ancell: If and when we branch, and it's clear which branch we can safely change such things in, it will be easier for everyone06:49
dufluRAOF: +106:49
robert_ancellRAOF, +106:49
dufluMocking is useful definitely, but that's a big disadvantage06:50
robert_ancellduflu, branch?06:50
duflurobert_ancell: I mean, when we branch Mir for 14.04 then we can break ABIs (for a while)06:50
alf__robert_ancell: What's the process for breaking ABI after FF? Is it allowed? More difficult?06:50
dufluOr rather, when a maintenance branch for 13.10 slits from lp:mir06:51
duflu*splits06:51
robert_ancellduflu, well, unfortunately there's not really any good time to break ABI - because each Ubuntu development release is meant to be stable we can't break anything linking against libmirserver06:51
duflurobert_ancell: I know. But the goal is to make changes which then lead to fewer changes in future06:51
RAOFWe can reasonably break A*B*I pretty frequently before feature freeze.06:52
duflu"one" goal...06:52
RAOFIt's more troublesome to break API.06:52
robert_ancellRAOF, only because we're carefully rebuilding everything that depends on libmirserver06:52
robert_ancellWe wont have that luxury forever06:52
RAOFOh, that's because we don't currently ensure libmirserver's ABI *at all*06:53
RAOFOnce we ensure that *each upload* doesn't change ABI we could pretty happily change ABI once a month or so.06:53
RAOFFor the first couple of months of Ubuntu development, at least :)06:53
dufluSurely we can always make ABI/API changes somewhere. It just might be in a branch that doesn't get released for multiple cycles :/06:54
robert_ancellRAOF, oh yes, exactly. As long as we bump the SONAME when we do06:54
RAOFRight.06:55
didrocksas long as you bump SONAME and handle the transition, no issue from here :)06:55
robert_ancellRAOF, so as I see it we can't *break* ABI, but we can *change* ABI.06:55
RAOFWe can *add* ABI at will, yes.06:56
robert_ancellTo me breaking ABI means changing it without changing the soname thus potentially breaking all the dependent applications06:56
RAOFWe could also *break* ABI at reasonable intervals; once a month isn't too excessive. But that is once our SONAME actually means something.06:57
robert_ancellI think we have different breaks06:57
RAOFrobert_ancell: Ah, whereas I'm going from "you increment the SOVERSION each time you break ABI"06:57
robert_ancellyep :)06:57
RAOFYeah, you can never break ABI without also changing SONAME06:57
duflutsdgeos: Morning. Nexus4 is fixed, apparently. Or worked around.06:57
RAOFs/can never/should never/06:57
robert_ancellRAOF, I think you have the correct lingo06:58
robert_ancellalf__, does that answer your question?06:58
robert_ancellalf__, in short, it's much the same as now, except we need to bump soname if MPs change the interface06:58
alf__robert_ancell: ok07:00
didrocksand you need to rebuild the rdepends07:00
mlankhorstg'morning!07:00
RAOFmlankhorst: g'day07:00
didrocks(so making a MP bumping the build-dep version normally)07:00
robert_ancellalf__, and what didrocks said07:00
RAOFBut the rebuilding-the-rdepends step is not time-critical.07:00
didrocksRAOF: well, it needs to be done in the following hours07:01
didrocksRAOF: as Mir is on top of the stack, everything will be blocked in proposed07:01
didrocksbecause Mir won't go from proposed -> release pocket07:01
didrocks(as long as all rdepends are not rebuilt)07:01
RAOFdidrocks: Really? That seems unnecessarily aggressive.07:01
didrocksRAOF: it's what britney is forcing us07:02
didrockswe don't create NBS package07:02
didrocks(which is the package with the previous ABI)07:02
RAOFAh, ok. That's quite agressive :)07:02
didrocksRAOF: yeah, basically we don't have anymore libfoo1 and libfoo207:02
didrocksin the release pocket together07:03
mlankhorstwell mesa 9.2 is ready for testing :P07:03
didrocks(apart if we have 2 sources of course)07:03
mlankhorstI should probably kill off the xorg-server in the ppa now07:03
RAOFdidrocks: Including *all* rdepends, such as things in universe?07:03
RAOFThat's going to get really annoying should things start supporting Mir.07:04
didrocksRAOF: yeah, everything in the archive07:04
didrocksRAOF: I guess the fundation team got fed up to ping people to help cleaning NBS07:05
didrocksat least, for dailies, it's quite easy, we can "force rebuild" some components07:05
didrocksit will prepare the changelog07:05
didrocksrebuild it07:05
didrockstest it and upload it07:05
didrocksso it's just some "push button"07:05
alf__RAOF: so, I guess having non-API/ABI breaking mechanisms (like the variable parameter list) becomes even more important...07:06
didrocksmore annoying for things outside dailies, indeed07:06
didrocksyeah, padding and so on is useful07:06
RAOFalf__: Yeah :)07:06
didrocksI guess you all know the KDE C++ ABI handling page :)07:06
duflu?07:06
* RAOF doesn't07:06
RAOFMy working assumption is “C++ does not have a stable ABI”07:07
didrockshttp://techbase.kde.org/Policies/Binary_Compatibility_Issues_With_C++07:07
didrocksthere are various links and pages with technics on their wiki07:07
dufludidrocks: Oh, I knew the details. Just never seen that page07:08
didrocksduflu: it's a good reference, didn't find anything more concise (if you have a link, that would be helpful ;))07:08
didrocksABI in C++ is so easy to break contrary to C07:08
dufludidrocks: No, it's all learned from experience, supporting C++ ABIs over many years07:09
didrocksduflu: just the way you are telling it make sound painful ;)07:10
tsdgeosduflu: yeah saw that, going to flash the phone now and see if it hit the reease yet07:10
duflutsdgeos: Not sure what image if any has the fix yet07:10
didrocksfix in Mir?07:11
duflu-fix +workaround07:11
dufludidrocks: No workaround/fix to the phablet image07:11
tsdgeosdidrocks: in the android side07:11
didrocksah ok07:11
tsdgeosduflu: nothing is lost by trying :D07:11
didrockskgunn: come on!07:11
didrocksrobert_ancell: kgunn: first run on ati -> fail :/07:11
didrocksMirv: FYI ^07:12
didrocksMirv: deprovisionning ati as well…07:12
didrockslet's freeze the state of this fdfdsoifdsjfs machine07:12
duflumlankhorst: I have noticed with nouveau (and radeon) that flooding one GL client starves others. This is a big problem when "others" includes the display server. Are you aware of such problems?07:13
mlankhorstduflu: sync to vblank helps :-)07:13
duflumlankhorst: Yes it certainly does help. But many people run benchmarks without sync07:13
mlankhorstand a bit of frame throttling07:13
dufluIn fact, sleep(10ms) helps too07:14
duflumlankhorst: Just seems like nouveau and radeon might have very conservative locking07:14
dufluWhich limits concurrency07:14
mlankhorstduflu: well benchmarks are weird, card just wants to execute things as fast as possible and has set up some time slices, but it cannot context switch during execution07:14
dufluOh. I didn't think about the GPU being a platform with its own timeslices07:15
didrockstvoss_: around?07:15
tvoss_didrocks, ack07:15
duflumlankhorst: Not sure how intel avoids such things. Strategic yields?07:15
mlankhorstusually command buffers are all about setting up state and then firing it off by flipping the switch. during the execution of  that switch it cannot switch, and it tries to be 'fair', but if there are no other commands running most of the time it will just dedicate itself entirely to that single command stream :P07:15
mlankhorstduflu: single command buffer I guess07:16
* duflu didn't think to try std::this_thread::yield() when testing GPUs07:16
mlankhorstthere's some stuff not figured out, it might be possible to give certain command buffers higher priority but that requires an abi change07:19
RAOFmlankhorst: Not thinking of writing a deadline scheduler for nouveau? :)07:19
duflumlankhorst: Is process priority used?07:19
mlankhorstduflu: nah it's dark magic :P07:20
dufluExcellent07:20
mlankhorstNot sure how it works tbh07:20
Mirvouch :(07:20
mlankhorstthere's a lot of nvidia hw not understood yet07:20
mlankhorstbut as kepler support has shown  you don't really need to for rendering basic 3d :P07:21
mlankhorst(3d support was working before 2d was)07:21
* robert_ancell -> EOD07:30
dufluDear Nvidia: Where are your docs?07:31
tvoss_duflu, RAOF mlankhorst need your help07:32
duflutvoss_?07:32
RAOFWhat's up?07:32
mlankhorstnah lol07:32
duflumlankhorst: Surely life would be less exciting if it was as simple as being documented07:33
mlankhorstI don't even think there is a per fifo time slice adjustment07:33
mlankhorstbesides bypass will support a lot of issues07:34
duflumlankhorst: I will try inserting some strategic yield calls next time I'm playing with nouveau or radeon. Since I found success with sleeping a few millisec07:41
duflutvoss_: On it now, in fact07:43
tvoss_duflu, we have unity not starting with compiz trying to load the core plugin07:47
tvoss_didrocks, ^07:47
didrocksthe first run stuck on opengl though07:48
duflutvoss_: "core" is not a real plugin. "core" is unity's main really. It can't fail to load07:48
dufluSorry, "core" is compiz's main07:48
alan_ghikiko: how's it coming along?08:07
dufluRAOF: drm_auth_magic... is that called repeatedly or only once?08:07
hikikohi alan_g08:09
hikikoI just started :) didn't do much, I was arranging my trip, no problems yet :)08:10
dufluhikiko: At least I *hope* it's the one near Boston :)08:12
alan_ghikiko: as you're not in deep yet could you review https://code.launchpad.net/~alan-griffiths/mir/a-surface-for-each-output/+merge/181095?08:15
alan_galf__: @place-surface-in-output do you want to react to ra's comment, or shall I top-approve?08:15
alan_gduflu: +108:15
hikikosure alan_g! (pulling)08:15
dufluRAOF: Never mind. Logs answered that question08:16
alf__alan_g: looking08:19
dufluping RAOF08:32
duflualf__, do you have any understanding of xmir_auth_drm_magic ?08:35
alf__duflu: some08:35
alf__duflu: oh, do you mean the specific xmir implementation?08:35
duflualf__: I mean the context in which it is called, not the Mir implementation08:35
duflualf__: Is it called for multiple screens/threads?08:36
dufluBecause it looks like it... and also the client API looks unsafe to use in such a way08:36
alf__duflu: I don't know the context details, sorry08:40
duflualf__, Can you explain the high-level purpose for me?08:41
alf__duflu: It is a mechanism to allow clients to perform some privileged DRM operations (to authenticate them).08:44
duflualf__, OK thanks. Any idea which project/branch calls the function? I can't find it yet08:44
duflualf__, Nevermind. Found it in the hardware-specific xorg drivers08:47
* RAOF spots the blatantly obvious logic error in his patch.08:49
RAOFduflu: Pong.08:49
RAOFduflu: X is resolutely single-threaded.08:49
dufluRAOF: Hmm, I'm suspicious of the reuse/concurrency of xmir_auth_drm_magic. Is it once per screen/monitor/GPU?08:50
RAOFduflu: There *is* some SIGIO madness possible, but that will never cause DRI2Authenticate, which is the only place that calls xmir_auth_drm_magic, to be reentrant.08:50
RAOFWe call xmir_auth_drm_magic once per client DRI2Authenticate request.08:51
alf__duflu: (for some background: the idea is that the client asks DRM for a magic cookie with drmGetMagic(), and then sends it to the DRM master, which marks it as authenticated with drmAuthMagic(). After this, the client is considered authenticated by DRM and can perform some privileged ops.)08:51
dufluRAOF: I mean MirConnection::drm_auth_magic() looks very un-threadsafe. And we seem to be requiring that multiple calls to it work in close succession08:51
RAOFduflu: But never twice at once, because we mir_wait_for() it.08:52
dufluRAOF: OK, so in theory only one thread08:52
RAOFThe only threads in the X server are the ones libmirclient imposes.08:52
RAOFAnd xmir proxies all of those callbacks to the X mainloop, via the madness of xmir_thread_proxy.08:53
smspillazRAOF: this design pattern feels very ... familiar09:29
* smspillaz looks at GdkMirEventListener09:30
smspillazyep, familiar09:30
smspillazjust dealing with the pain that is the gmain.c09:30
RAOFYeah, we should totally have a generic to-event-loop-fd handler.09:30
smspillazRAOF: I think what there really needs to be is some kind of kernel system call that can listener on fds and pthread conditions at the same time09:31
smspillazkevents doesn't count09:31
smspillazwakeup pipes are just ... awkward09:32
alan_galf__: Quick Q: as  client I request a change to the display config...when the change succeeds do I get a change notification?09:32
katietvoss_, or anyone else, I'm writing up the bit about focus stealing, and want to know how Mir handles the focus queue.. is there still an idea of a focus queue?09:35
katietvoss_, mpt has another idea, of a  probably-opening-a-window flag09:35
tvoss_katie, haven't heard of that before09:35
katiethe example is slow opening attachments in  Thunderbird09:36
katietvoss_, the attachment can request to be focussed, but if it takes a long time, and the user focusses something else, the attachment can't steal focus09:36
RAOFkatie: That was roughly equivalent to desrt's “You hand out an obfuscated timestamp on start” idea, right? I remember mpt and him being in violent agreement in Bluefin.09:39
katieRAOF, yes, that was the discussion09:40
RAOFWe should totally get desrt to implement that. 'Twas a good idea.09:42
katieRAOF, have you heard any discussion since?09:42
RAOFkatie: No09:42
RAOFThat's likely to be the shell's purview. Although maybe it should be ours.09:43
tvoss_katie, RAOF I think we need something on two levels09:43
tvoss_katie, will have lunch, with you after that09:43
katietvoss_, ok :)09:43
=== tvoss_ is now known as tvoss|lunch
dufluRAOF: Is it normal to xmir_auth_drm_magic multiple times per Screen?10:14
RAOFYes.10:14
RAOFduflu: It will be called each time a client calls DRI2Authenticate, which every GL client will call at startup.10:15
=== hikiko is now known as hikiko|lunch
alf__alan_g: sorry, missed the ping... no because you change only your session's config as things are now. You only receive events for hardware changes.10:51
tvoss|lunchRAOF, duflu ping10:51
duflutvoss|lunch: pong10:51
=== tvoss|lunch is now known as tvoss_
tvoss_duflu, RAOF I'm pretty sure the issue arises from the radeon kernel module giving up after some time10:52
tvoss_duflu, RAOF at least on the daily release machine10:52
duflutvoss_: Sounds like it. But I don't know why that would make the Mir socket code suddenly fail; message goes in one end and never received at the other10:53
alan_galf__: thanks (the answer was quick enough - I haven't started on that bit yet)10:53
tvoss_duflu, are we really sure that the message goes in? I'm unsure that that is the case10:53
tvoss_duflu, plus: didrocks and me have seen some weird behavior for waitpid as well10:54
tvoss_duflu, which hints towards a deeper issue somewhere10:54
duflutvoss_: Yes, line 65: http://paste.ubuntu.com/5981035/10:54
duflutvoss_: waitpid?!10:54
tvoss_duflu, not related to mir, but when compiz is started10:54
tvoss_duflu, that only indicates that the request is sent @pastebin10:55
duflutvoss_: Oh, yes, I gave didrocks a fix for that.10:55
didrocksduflu: a fix?10:55
didrocksduflu: you mean the unity_support_test?10:56
didrocks(to remove from compiz)10:56
dufludidrocks: Yes, externalizing the script10:56
didrocksduflu: already done for 2 weeks10:56
didrocksduflu: as pinged you back, didn't change a thing10:56
dufludidrocks: Cool10:56
didrocksso not what tvoss_ saw10:57
dufludidrocks: But that should also involve removing any waitpid call from compiz10:57
didrocksjust told, the code which stuck on waitpid didn't invoke unity_support_test as we don't have the call anymore10:57
duflutvoss_: didrocks says the waitpid call does not exist any more... ?10:58
didrocksduflu: I did say that we saw a waitpid10:58
didrocksbut it's not on unity_support_test10:58
dufluOh. Strange10:58
didrocksas this code is removed10:58
tvoss_duflu, yeah, I think we are seeing symptoms of the kernel being in a weird state ... cannot prove that, though10:59
dufluI think it will take me some days yet to understand the Mir socket code. And it's not definitely clear that's the problem.... I'm debugging from heresay still11:00
tvoss_duflu, I really don't think we have a problem there11:01
tvoss_anyway, let's just make sure we keep releasing11:01
dufluOK, I'm out of ideas. The mind is fried and the stomach empty. Till next time...11:02
RAOFIf anyone is in the mood for a review, https://code.launchpad.net/~raof/mir/fix-multi-surface-buffer-tracking/+merge/18125911:04
alan_gRAOF: alf__ - I've a couple of MPs depending on place-surface-in-output - are you still discussing changes? Or can we land it?11:19
alf__alan_g: RAOF: I am OK with it landing as is and changing the API again in a future MP (hopefully before the freeze).11:23
alan_galf__: RAOF - then I'll top approve11:27
=== alan_g is now known as alan_g|afk
=== hikiko|lunch is now known as hikiko
=== alan_g|afk is now known as alan_g|lunch
smspillazhmm12:18
smspillazmir seems to be sending mir_surface_hover_leave and mir_surface_hover_enter whenver a button is pressed or released respectively12:18
smspillazis that a bug or a feature?12:19
smspillazsending such events confuses gtk12:19
smspillaz(which think that the pointer is no longer over the surface once a button is pressed)12:19
smspillazbut we have to track enter and leave event to figure out which surface the pointer actually *is* over12:20
smspillazs/leave/exit/12:21
=== alan_g|lunch is now known as alan_g
alan_gsmspillaz: that sounds like a bug - but I'm surprised that RAOF hasn't come across it.12:54
kgunntvoss_: you've got to be kidding... :-|12:58
tvoss_kgunn, why is that?13:00
kgunntvoss_: ati back...13:01
tvoss_kgunn, well, didrocks and me have been looking into it for hours, it turns out rebooting the physical machine fixes it. I'm still inclined to push it towards the driver/kernel as we were seeing a massive slow-down even for vanilla x13:02
didrockskgunn: look at the emails on ue-leads13:02
kgunntvoss_: is that vanilla x (meaning w/o u-s-c ever being installed once ?)13:02
kgunntvoss_: ack...will get coffee and read mail13:03
tvoss_kgunn, yeah, all good, so have a coffee13:03
kgunn;)13:03
* kgunn won't really understand anything until he has coffee13:03
hikikoalan_g: ping13:38
alan_ghikiko: how's it coming along?13:38
hikikowell, I have some issuesd13:38
hikikoI started from create_buffer_allocator which is the exception called right now13:39
alan_gyes?13:39
hikikobut it seems that I have to do more than this because atm if I run nested mir13:39
hikikoI13:39
hikiko"grab"13:39
hikikothe drm device13:40
hikikoand then even if I kill all mir instances13:40
hikikoI can't switch tty, go to X etc13:40
hikikoI can only reboot using ssh13:40
hikikoI guess I have to do some trick at the drm initialization but I am still looking at it13:42
hikikoif you have any ideas...13:42
alan_ghikiko: what did you do in the original spike?13:42
hikikoyou mean the very first branch?13:43
alan_gI mean lp:~hikiko/mir/mir.nested-gbm13:44
hikikoI didn't have that problem there13:44
hikikobecause the nested platform13:44
katie_hi tvoss_13:45
alan_ghikiko: are there not two issues? drm and keyboard input?13:45
hikikowasn't dependant of the native gbm platform, it was implementing the Platform and it was just using the gbm buffers instead of the mir buffers13:45
hikikoI don't know alan_g13:46
hikikoI don't know how to debug actually because I don't have a tty, what do you do in a similar case?13:46
hikikomaybe I have to start gdb on a screen13:46
hikikoand grab it when I ssh13:46
hikikoresume*13:47
alan_ghikiko: you can stop the nested Mir grabbing input with "--enable-input off" (like it does in the test)13:47
alan_gThat should avoid problems with VT switching13:49
alan_gI don't know what's needed for drm13:50
tvoss_didrocks, got a daily-realease question fo ryou13:50
hikikoI'll try alan_g thanks13:50
didrockstvoss_: sure13:50
tvoss_didrocks, let's assume the platform api links in something like boost, then the symbols are picked up by the dh machinery, but I don't want to expose them ... what is the default approach?13:51
didrockstvoss_: it's more a gcc question in fact :) normally the boost symbols are not exposed but your API13:52
didrocksyou don't leak them, right?13:52
tvoss_didrocks, nope, but they show up when compiling the package13:52
alan_ghikiko: why are you trying to run a nested mir and not using the test framework?13:53
didrockstvoss_: do you use -fvisibility=hidden?13:53
tvoss_didrocks, nope13:53
tvoss_could do that ...13:53
didrockstvoss_: there was a good gcc wiki page, hold on13:53
didrockstvoss_: here is it: http://gcc.gnu.org/wiki/Visibility13:53
hikikoalan_g: --enable-input off didn't help13:54
tvoss_didrocks, I know -fvisibility,will tackle in then in lp:~thomas-voss/platform-api/location-service13:54
didrocksgreat :)13:54
hikikobut ok I'll find something :)13:54
alan_ghikiko: The current "nested" code doesn't do anything with drm does it? This is something you're adding?13:57
smspillazalan_g: tvoss_: know where I'd go to find the code responsible for sending button down events ?13:57
tvoss_smspillaz, with you in a few ...13:58
tvoss_smspillaz, you interested in the actual handover to clients?13:58
smspillaztvoss_: just where button down events are generated in the server13:58
smspillazI imagine that's probably where the problem I'm having lies13:58
hikikoalan_g: I think it does13:58
smspillaztvoss_: context: the server sends surface_hover_enter and surface_hover_leave on button up / down events which tends to confuse gtk+ a lot13:59
smspillaz(because it thinks the pointer is no longer in the surface at the time of the button event)13:59
tvoss_smspillaz, let me have a look13:59
smspillazcheers14:00
smspillazI'll keep poking around too, though I've not found anything yet14:00
tvoss_cheers katie :)14:00
hikikoalan_g: http://bazaar.launchpad.net/~hikiko/mir/mir.create-buffer-allocator/revision/99014:01
hikikohere is what I did14:01
hikikoto have it working14:01
hikikoso now it initializes the drm/gbm in the gbmplatform constructor14:01
hikikowhat I can do is to pass an option in case we are nested and change <something I don't know yet> to not grab the devic14:02
hikikoe14:02
alan_ghikiko: This is code you've added. The current code doesn't do anything with drm.14:05
alan_gBy including GBMPlatform in NativeGBMPlatform you're trying to be the host system14:06
smspillaztvoss_: ah, I think the problem is in the android input stack14:06
smspillaztvoss_: hover_enter/hover_exit doesn't really map completely to the traditional X11 EnterNotify/LeaveNotify14:07
tvoss_smspillaz, that might well be, it is the entity doing the actuall processing14:07
smspillazthe latter is to do with the cursor position, the former is probably to do with the touch "clicking" state14:07
tvoss_smspillaz, ah, got it: so hover_leave on button click actually makes sense14:07
alan_ghikiko: I don't think you should be implementing NativeGBMPlatform using GBMPlatform14:07
smspillaztvoss_: except not for gtk+ ;-)14:08
tvoss_smspillaz, as it actually leaves hovering state when clicking the button ...14:08
hikikoalan_g: the problem is that I cant use the enable_shared_from_this otherwise14:08
hikikoI have to either inherit Platform14:08
hikikoor GBMPlatform14:08
smspillaztvoss_: are mouse events handled like touch events at the moment ?14:08
tvoss_smspillaz, hmmm ... let me think ... so what you want is. hover_enter and then button_clicked?14:08
tvoss_smspillaz, I'm pretty sure, yes14:08
smspillaztvoss_: no, what I need is something similar to X11's EnterNotify/LeaveNotify14:09
tvoss_smspillaz, we run qt with a special "translate touch to mouse events"14:09
alan_genable_shared_from_this is evil - why would you want to use it?14:09
smspillazwhich is generated whenever a cursor enters and leaves a surface (geometrically)14:09
hikikobecause we have it in every create_buffer_allocator so I guessed that it does some sort of magic we need :)14:10
hikikodo you think I should remove it alan_g ?14:10
tvoss_smspillaz, okay ... so you don't receive these events right now? or what is the actual problem? sorry, if I missed the description :/14:10
smspillaztvoss_: so at the moment in gtk+ I'm treating hover_enter/hover_exit as if it had exactly the same semantics as EnterNotify/LeaveNotify14:11
smspillazeg, whenever some "input device" is hovering over a surface (in this case, the cursor)14:11
alan_ghikiko: Well, I've not looked in detail at that code - so it might be useful.14:11
smspillazgtk+ uses that to determine which window the pointer is currently in side of14:11
smspillaz*inside of14:11
smspillazon button press mir does something like14:11
smspillazhover_exit -> button_down -> button_up -> hover_enter14:12
smspillazwhich confuses gtk+ because by the time it gets button_down it thinks there is no longer a cursor in the surface14:12
smspillaz(arguably, this is something stupid about gtk+ and I had to work around it in compiz too for a different reason)14:12
tvoss_smspillaz, okay, so I think it is actually correct to send hover_exit in case of a button click ... as it really indicates that the hover state ended ;)14:13
hikikoalan_g: no prob I ll try a few tricks and tell yu if I made any progress at the meeting14:13
alan_gBut, even if it is needed, I don't see why you'd use the GBMPlatform implementation. As I said yesterday, copy the code you need from there and we can refactor later.14:13
tvoss_smspillaz, for a work-around: why not ignore hover_exit?14:13
smspillaztvoss_: I can't14:13
smspillaztvoss_: gtk+ needs that in order to determine when a cursor is no longer inside a surface14:14
smspillazwell ... I'll revise that statement. Maybe I can just ignore hover_exit. But I'm not so sure what it'll break subtly14:14
alan_ghikiko: this is what kills your VT switching: 216    auto vt = std::make_shared<mgg::LinuxVirtualTerminal>(real_fops, options->get("vt", 0), report);14:15
tvoss_smspillaz, hmm, I'm thinking, that means you only want to pass on LeaveNotify to gtk iff hover_exit has happened and a subsequent event is not button clicked, right?14:15
hikikoalan_g: then I need to have the Platform14:15
smspillaztvoss_: yes (although implementing it like that would be very clunky)14:16
tvoss_smspillaz, agreed14:16
smspillaztvoss_: what I really need is for the server to send me something like EnterNotify and LeaveNotify, and only when the actual cursor itself goes into and out of a surface (geometrically)14:16
alan_ghikiko: only because GBMBufferAllocator isn't quite as you need it14:17
smspillaztvoss_: though I think the broader problem here is that pointer input and touch input are amalgamated into a "motion" concept and it doesn't really work all that well14:17
smspillaz(which was probably inherented from android)14:18
alan_ghikiko: AFAICS all it really needs is a GBMDevice - but it takes a std::shared_ptr<GBMPlatform> to have access to it14:18
hikikothen I have to do it exactly like in the first spike (there wasnt vt etc there)14:19
hikikobut in that case14:20
hikikoI still need to have a public Platform14:20
alan_ghikiko: Could you check that GBMBufferAllocator doesn't really need the GBMPlatform? And if I'm right MP a change that just gives it the device?14:20
alan_gWhy do you need a public Platform?14:21
hikikoit doesnt14:21
hikikoalan_g: only to use enable_shared_from_this14:21
hikikoif we don't need it14:21
hikikothen I don14:21
hikikot need the platform14:22
alan_ghikiko: If you can first change GBMBufferAllocator to just take the device then the rest becomes easy.14:23
tvoss_smspillaz, I have put it on the list14:24
hikikothat shouldn't be difficult alan_g I ll try14:24
alan_ghikiko: If GBMBufferAllocator doesn't really need the GBMPlatform MP a change that just gives it the device.14:25
smspillaztvoss_: cheers :)14:25
hikikoalan_g it doesn't I didn't use the GBMPlatform in my first branch14:26
hikikoso, I will try it14:26
alan_ghikiko: :)14:27
=== alan_g is now known as alan_g|tea
=== alan_g|tea is now known as alan_g
ricmmtvoss_:15:02
tvoss_ricmm, ?15:03
ricmmalan_g: greyback15:03
ricmmwe believe there is a problem with commit 982, it breaks some behaviour we were using before15:03
ricmmtwo issues:15:03
ricmm1. the_input_configurator() is called many times in the_surface_stack_model() before we hold a ref to it in displayServer15:03
ricmmthis results in many objects, and a wrong input initialization later due to that15:04
hikikobye people :)15:04
ricmmhttp://paste.ubuntu.com/6008216/ sorts that issue, with help from racarr15:04
ricmm2. client apps stopped working in our shell after 982, the we were failing to create a eglSurfaceWindow on the nativeWindow returned by mir15:05
ricmmmoving the_graphics_platform() around shows breakage in the creation of native windows, makes me think we are perhaps hitting a similar thing as with the input configurator? spurious instantiations15:06
ricmmand therefore different objects used to create other configs, in contrast with the one stored in the DisplayServer itself15:06
ricmmwe create stuff in this order in unity-mir http://paste.ubuntu.com/6010579/15:07
ricmmboth the stack() and the builder() poke into the_graphics_platform() before it has been stored in the DisplayServer, perhaps theres a hole there somewhere15:08
ricmmok thats it :) ping me when you are around15:08
alan_gricmm: looking...15:15
alan_gricmm: OK, so the problem stems from your ShellServerConfiguration holding state for itself rather than reacting as a builder for DisplayServer. Which means that it relies on the DefaultServerConfiguration holding state.15:23
alan_gAnd -c 982 broke that assumption15:24
ricmmso, not hold refs to anything but instead dynamically return out objects in the overriden methods?15:26
ricmmour*15:26
ricmmalan_g: maybe this is right for the_graphics_platform(), but is it also right for the_surface_stack_model()? the spurious objects are only valid within the lambda's context15:27
ricmmit happens even if I dont manually call into it15:27
ricmmso perhaps that one does need to hold an internal ref to *one* the_input_configuration()15:28
alan_gricmm: If that makes sense in the rest of your code. Otherwise, you could hold your own std::shared_ptr<input::InputConfiguration> input_configuration;15:28
greybackalan_g: in order to use Qt signal/slot mechanism,  the receiver needs a pointer to the object emitting the signal. I don't see how I can get that through this design15:29
alan_gThe way DefaultServerConfiguration works is that it keeps a weak pointer to objects it constructs - so if anyone is holding them the same one is returned15:29
alan_gBut if no-one holds it then it can be destoyed.15:30
alan_ggreyback: I understand that you need to control object lifetime - it is just that DefaultServerConfiguration shouldn't have been doing that.15:32
ricmmalan_g: so a quick solution would be to store std::shared_ptr<> for the_graphics_platform()15:34
alan_gI'd guess that the minimal fix would be to have a std::shared_ptr<input::InputConfiguration> input_configuration; member in ShellServerConfiguration and initialize it first. But that would extend its life beyond that of the server object (which can also cause problems).15:35
ricmmand that should ensure consistency in the ones returned across all config and then in the DisplayServer builder15:35
ricmmright, for the input_config I was using the ref internal to the_input_configuration() lambda15:35
ricmmbut it should be the same result15:36
alan_gOops I meant virtual std::shared_ptr<graphics::Platform>  graphics_platform;15:36
alan_gricmm: yeah, but that one goes out of scope - so if nothing holds it...15:37
ricmmtrue, but for some reason it works15:37
ricmmI'll try holding both objects15:38
ricmmhow dangerous is it to hold these beyond the lifetime of the DisplayServer object?15:38
ricmmI dont think we do any direct access to them15:38
ricmmonly during construction of the config, so should be fine15:38
ricmmwill use the config methods to get the objects anyways, not really our refs15:39
ricmmgreyback: sounds good for a try?15:39
alan_gricmm: I was finding problems when an exception was propagated from the DisplayServer constructor.15:39
greybackalan_g: so objects constructed by DefaultServerConfiguration can be destroyed at any time. Can those objects be created & destroyed repeatedly?15:39
greybackricmm: should do yes.15:40
ricmmI think they wont be destroyed *before* the DisplayServer's life ends15:40
ricmmas long as we hold the refs15:40
alan_ggreyback: What should be happening is they exist for as long as the DisplayServer is using them15:40
ricmmafter, I dont know. but we dont really need any direct access on input_config and graphics_plat15:40
ricmmI think the question here is does the DisplayServer exist until the compositor/server process dies?15:42
alan_gBut before -c 982 the input_configuration was held on the configuration object instead15:42
greybackricmm: exactly my question15:42
alan_gWhen the DisplayServer is destroyed everything should be closed down15:43
alan_g(But you could write a program that then created a new one)15:43
tsdgeosricmm: when you have a minute i have a question regarding how/where to wrap url-dispatcher in platform api. I'll be eod'ing soon though, so maybe you prefer me to send an email?15:43
ricmmalan_g: sounds good enough for a normal shell15:47
ricmmtsdgeos: please send an email, sorry if I'm unresponsive15:47
ricmmreally busy15:47
tsdgeosricmm: ok, will do15:47
ricmmthanks15:47
tsdgeosricmm: also commented on your unity-mir MR15:48
tsdgeosricmm: there's a few nitpicks you are free to ignore, but the singleshot signal seemed a bit dangerous15:48
tsdgeoss/signal/timer15:48
alan_gricmm: have you got what you need? (For now)15:49
ricmmlooks like, we'll do a test and let you know15:50
ricmmalan_g: thanks for the help15:50
alan_gsorry for breaking your code15:50
smspillazdoes mir have an inbuilt screenshot functionality?16:06
smspillazeg, a keybinding to dump an image to the disk?16:06
greybacksmspillaz: it has API for screenshotting, not tied into anything tho16:08
smspillazlol16:08
=== chihchun is now known as chihchun_afk
ollikgunn, alan_g do you guys know if the fix for input showing up on VTs has hit trunk yet? (iirc it's the switch branch)16:47
ollitvoss_, ^16:47
alan_golli: the switch branch has landed. Do you have a bug id?16:48
ollialan_g, xubuntu is just curious if it's in archive yet16:48
ollialan_g, is that part of the 0.0.9+13.10.20130821-0ubuntu1 release from today16:48
racarrMorning16:54
alan_golli: switch was in -c 948 - today's release was 989. But I don't know if it has anything to do with input on VTs16:54
ollialan_g, ok, so maybe I am wrong16:55
ollilet me rephrase16:55
ollido we still see input on VTs in todays release or is that fixed meanwhile16:55
alan_golli: I can't find the bug you mean, I don't know if it is fixed16:58
ollialan_g, ok, don't have a bug id16:58
olliwas one of the prominent ones... where a password entered in U7 would show up in clear text on VT16:59
ollipassword and other text16:59
kgunnolli: i saw it 100% before...i think it got fixed early last week...let me test (after our meeting :)17:00
racarrI think the same thing but don't have time to test at this exact instantg17:00
=== alan_g is now known as alan_g|EOD
forestpiskieolli: this is what I'm seeing - not that bug http://imgur.com/cPAmyNC,irF8k6K,DCfJ9j0#017:07
forestpiskieolli - forestpiskie is elfy17:07
olliforestpiskie, ack17:08
ollikgunn, tvoss_^17:08
racarrSo what's going on with n4?17:09
racarrolli: Do you still need someone to test this VT input thing?17:19
olliracarr, no17:20
racarrOh :p17:21
racarrwell I did anyway it's totally fixed17:21
robert_ancellracarr, Just waiting on duflu for https://code.launchpad.net/~robertcarr/mir/client-focus-notifications/+merge/180903?20:35
robert_ancellI asked alf yesterday, so if he hasn't said anything to you I think we take him as abstain20:37
racarrrobert_ancell: He is only listed as pending because20:44
racarrhe reviewed it like a month ago20:44
racarrand it was resubmitted20:44
racarr...4 times20:44
robert_ancellracarr, do you know if duflu has any remaining concerns? Otherwise you should just land it20:44
racarrrobert_ancell: I don't know.20:49
racarrI think there are some things he doesn't like which range from "unclear to adress" to "likely to lead to more needs fixing from Alan" :p20:49
racarrrobert_ancell: I'm landing it :p20:51
thomirobert_ancell: the upstream-merger changes you requested were deployed earlier today, just FYI22:02
robert_ancellthomi, awesome, thanks22:02
robert_ancellthomi, I notice there's a u-s-c raring build from 47 mins ago - was that change missed or did it happen just after that build?22:03
robert_ancellhttps://launchpad.net/~mir-team/+archive/staging22:03
thomirobert_ancell: that shouldn't have happenbed, WTF is going on !?22:03
thomirobert_ancell: ahhhh, I see22:05
thomiit's landing from a totally different stack22:05
thomiI'll talk to Francis about that now22:05
thomirobert_ancell: we still want it built, but just for saucy, right?22:08
robert_ancellthomi, yes22:08
thomirobert_ancell: ok, config change made: https://code.launchpad.net/~thomir/cupstream2distro-config/u-s-c-saucy/+merge/18142022:11
robert_ancellthomi, thanks!22:12
thomiany time22:12
robert_ancellracarr, did you notice the autolanding failed for the client focus notification branch?22:18
thomirobert_ancell: change deployed, shouldn't get any more darn raring builds22:18
robert_ancellRAOF, are you still working on that fd MP for mir?22:58
RAOFrobert_ancell: Yeah; looks like it failed jenkins.22:59
robert_ancellRAOF, which branch?  lp:~raof/mir/fix-multi-surface-buffer-tracking?23:00
RAOFrobert_ancell: Yeah, that one.23:05
=== mhall119_ is now known as mhall119

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