robert_ancellRAOF, did you have any luck with xmir working?02:17
RAOFrobert_ancell: I believe it should now; let me check again.02:17
RAOFUnless launchpad has *once again* foiled me.02:22
robert_ancellRAOF, the package did update for me, but still fails to connect to mir02:24
RAOFOk launchpad. Let's see what you've got for me...02:25
dufluOne _million_ bugs (pinky to mouth)02:27
robert_ancellthomi, was CI supposed to work for lp:lightdm/1.6?02:44
robert_ancell(two MPs, no checking done)02:45
racarrI think02:45
racarrI might try and port kmscon02:45
racarrit seems surprisingly hard02:46
thomirobert_ancell: no, I thought we decided that it wasn't worth it - but I can add it to the "things to do in Oakland for mir people" list, if you like :)02:46
robert_ancellthomi, it's nice to have, but not a high priority02:48
thomiyeah that's what I figured02:49
racarrI just want to point out https://code.launchpad.net/~robertcarr/platform-api/mirclient/+merge/160217 to the southern hemisphere :)02:54
RAOFracarr: Port kmscon? Why?02:56
dufluWhy not port anything you can? :)02:56
racarrRAOF: I just want a working terminal emulator02:56
racarrkterm isn't qt502:57
racarrthis qml terminal emulator seems quirky02:57
RAOFDoes kmscon have all the various affordances we expect in a decent terminal emulator? Unicode? Colour?02:58
* RAOF goes to see why the new new build of xf86-video-intel doesn't XMir properly02:59
racarrit seems to03:03
RAOFGrr. Who changed the libmirclient API? :)03:05
racarrwho didn't!03:19
robert_ancellRAOF, any idea on XMir? So you also don't have XMir working on -intel?04:30
RAOFrobert_ancell: So, cascade of failures.04:45
RAOFrobert_ancell: The autobuilt xf86-video-intel defaulted to the SNA acceleration architecture, which I haven't yet patched for XMir.04:47
RAOFOnce I'd fought launchpad to get a build that defaults to UXA, someone had gone and remove mir_surface_create() from libmirclient, so XMir now doesn't work.04:47
=== rsalveti_ is now known as rsalveti
RAOFBoth of these should now be fixed, and you're waiting for 1.13.3-0ubuntu6+xmir2 to appear in the PPA.04:48
robert_ancellRAOF, ok, cool04:48
RAOFthomi: Hey, while you're at it, could you get the tests to spin up an XMir server? :)04:49
thomiRAOF: send me an email with the details and I'll look into it at oakland... or bug me about it in oakland :)04:49
RAOFMost assuredly!04:50
robert_ancellthomi, is there a convention for raising QA issues? Should we open bugs on LP projects and assign them to you?04:51
thomirobert_ancell: it rather depends on the issue. There's no project that deals with infrastructure issues, for example04:51
thomiand (thankfully) I'm not having to teach you guys how to write unit tests, so I've not had to actually touch the mir codebase yet04:52
thomiI guess if we think we need a process to stop things getting forgotten about we should figure out what the best approach is04:52
thomimy problem right now is that my time is split between mir and autopilot, and autopilot is consuming close to 90% of my waking hours04:53
robert_ancellthomi, you can we awake for 190% of the time right?04:53
thomiI tried that once, it did not go well04:54
RAOFOk ladies and gentlemen: A brief bit of client architecture handwaving.05:14
RAOFI'd like to implement n-buffering so that I can implement eglSwapInterval(0) so that the benchmarks we run can be minimally useful.05:14
RAOFThere are two broad approaches here - the client always has exactly one buffer, or the compositor always has exactly one buffer.05:15
RAOFIn the former you give out multiple buffers to the client library, and the client library is responsible for handling "do I block" and "what is the next buffer to draw to".05:17
RAOFIn the latter the server only ever hands out one buffer to the client library at a time, the client library always blocks on IPC, and the server is responsible for "what is the next buffer to draw to"05:18
RAOFThe former will have less IPC overhead, and will result in higher benchmark numbers, but the IPC overhead won't be significant for non-benchmark clients anyway.05:22
RAOFYou know what? email.05:23
robert_ancellRAOF, yeah, email works for big stuff :)05:25
tvossRAOF, ping05:42
RAOFtvoss: Pongity pong.05:42
robert_ancellRAOF, well, X doesn't quit anymore. But it does sit at 100% CPU and never generates a ready signal05:47
robert_ancellRAOF, short ML post from you...05:48
RAOFThe rest is coming soon.05:48
RAOFrobert_ancell: That's odd. Mine got all the way to showing the root weave and not responding to input because I didn't run it as root.05:48
RAOFrobert_ancell: To be clear - you get as far as the root weave, yes?05:49
robert_ancellRAOF, no, black screen05:50
robert_ancellRAOF, doesn't appear to be anything exciting in the X log http://paste.ubuntu.com/5594738/05:50
robert_ancellRAOF, lightdm log, though also shows nothing except for it waiting for the ready signal http://paste.ubuntu.com/5594740/05:51
robert_ancellbut perhaps the command line flags passed to it might indicate something05:51
RAOFLet me see about this locally.05:54
RAOFrobert_ancell: Everything works fine here.05:58
robert_ancellRAOF, :(05:58
robert_ancellHow are you launching it?05:59
RAOFXorg :7 -mir 5 -retro -verbose 705:59
RAOFOooh! *That's* why VT switching sometimes takes minutes!06:00
RAOFxf86-video-ati is totally freaked out that I've turned off the radeon on this laptop.06:00
mlankhorstoooh I'm freaked outttt where is my card? where is my card?06:01
RAOFActually, it looks like it's also confusing radeon.ko, which is being amazed that it can't execute the ATOM BIOS.06:02
mlankhorsthow does it even find a valid bios, then?06:04
RAOFPresumably it's cached the bios from boot?06:04
RAOFThe card was on at boot, and got switcheroo'd off.06:05
robert_ancellRAOF, ok, will look into that tomorrow06:05
robert_ancellbye all06:05
RAOFrobert_ancell: 'night!06:05
=== mmrazik is now known as mmrazik|afk
=== mmrazik|afk is now known as mmrazik
kdubhello, status, mp-ed hwc 1.0 support, working on display logging today15:03
alan_ghello, status, getting laptop in sync with current dev environment15:13
kdubquiet day on the channel16:05
alan_gkdub:I'm here if you need to talk16:06
racarralan_g: Do you have any idea with demo-shell?16:33
racarrI dont have any besides using a weak_ptr somewhere but I don'tknow where is appropriate16:33
alan_gracarr: I've not been thinking about it today (got distracted elsewhere)16:34
racarrMaybe EventFilterChain holds weak references16:34
racarrto each EventFilter16:34
alan_gracarr: since demo-shell tends to kill leave me with a blank screen I can't get out of I've been disinclined to play16:36
racarrcompared to regular mir binary?16:36
racarrvince vt changes things are weird16:36
racarrI have to kill it, then switch to X16:37
racarrto get a screen back16:37
alan_gracarr: I can do that with mir, but not with demo-shell16:37
racarrwell I just fixed the crash properly16:37
alan_gracarr: I gather you agree about the "owner loop"? Or have I missed something?16:40
racarrim just anxious to push things a long16:41
racarrbut I don't know how to fix it16:41
racarrbesides with a weak_ptr16:41
racarrWe are going to have these everywhere16:42
racarrunless we introduce a new pattern16:42
alan_gracarr: weak (or dumb) pointers can certainly break the loop16:42
racarri.e. the compositing strategy draws a software cursor so it becomes the cursor listener and needs to notify the compositor ofdamage16:42
racarralan_g: Yeahhh everything still goes in a circle though ;)16:43
racarrI wish there were something better16:43
alan_gthere are solutions - e.g. a "RegisterMe" member variable that registers a callback in the constructor and deregisters in the destructor.16:44
alan_g(The registered back-pointer can be a raw pointer, as its guaranteed to point to a live object)16:45
alan_gThe thing is that smart_ptr is being used in places where ownership isn't involved.16:46
alan_gBut my head isn't yet clear on where the fixes are needed16:46
racarrMost ui frameworks would use16:47
racarra signalling pattern to break this16:48
racarri.e. rather than ApplicationSwitcher becoming the EventFilter, application switcher16:48
racarris allowed to see the KeybindingEventFilter16:48
racarrand registers a callback or whatever16:48
racarrthe EventFilter keeps with weak reference, or the signal is expected to be disconnected on shutdown16:49
alan_gIf it's blocking you then using weak pointers in EventFilters ought to be enough for now16:52
racarralan_g: I will propose I think. the thing is it's blocking software cursor16:52
racarrwhich has the same problem16:52
racarrand over andover16:52
racarr(propose with weak ptrs that is)16:53
racarryou all are in for some excellent weather next week if things continue :)16:57
alan_gWhere we are working? Or out of the window?16:59
racarralan_g: ...hmm good point16:59
racarrthough when the day ends at 617:00
racarrstill an hour and a half of time to have a beer in the sunshine!17:00
alan_gWe'll need to find a good beer location17:01
racarrHehe one night you should come to city beer, which is a store/pub type thing in  San Francisco (close to a bart though, about 25 minute travel from hotel)17:02
racarrthat is all local beers from the bay area17:02
racarrnearly 100 I would say17:02
racarr*embarassingly excited to be the local at conference for once*17:04
alan_gYou'll be writing the guidebook then?17:04
alan_gAnyway, I've had enough for the day. I'll start looking into managing back pointers tomorrow. (And finish getting laptop to behave.)17:06
=== alan_g is now known as alan_g|sun
racarralan_g|sun: I'm working on it, it's called "The Great American Novel: A software engineers guide to life in San Francisco" ;)17:12
racarrnot really i'd read that though17:12
racarrenjoy :) tty tomorrow17:12
=== mmrazik is now known as mmrazik|afk
bschaeferracarr, hello! Is this what you had in mind when moving some enums over to the mir_toolkit/event.h?17:37
bschaeferwhich then makes this easier: http://paste.ubuntu.com/5596127/17:39
racarrbschaefer: https://code.launchpad.net/~robertcarr/mir/add-event-action-defines/+merge/16022417:51
racarrso yes!17:51
bschaeferwell awesome, beat me to it!17:51
bschaeferracarr, did you want to type def them? Though it shouldn't be needed...17:52
bschaeferracarr, nevermind, I see you've commented on that part :)17:53
racarrbschaefer: We also need the modifiers17:57
racarrbut in adding them would like to add something using them17:58
racarrso either demo shell after it lands (alt tab instead of tab) or17:58
racarrmaybe just tests that17:58
racarrKEY_SHIFT comes out as mir_meta_flag_shift or hwatever its called17:58
bschaeferright, tests for thest shouldn't be to bad if you can mock motion events and tests they line up with the correct enum (for a unit test)17:58
bschaeferracarr, also, what about button state?17:59
* bschaefer also wonders if the input platform is subject to change from android18:01
racarrbschaefer: button state too I guess18:04
bschaeferracarr, well I suppose a lot of this can be talked about next week, but im more concerned about a changing input platform :(18:05
racarrmore likely is the increasingly forked18:05
racarrdroidinput loses the android name18:05
racarrits unlikely right! The abstraction exists18:05
racarrbut more as a consequence of writing testable well isolated object oriented code18:06
racarrthan an intention to replace the input backend18:06
racarrbut eventually once all the flags are in place, etc. and everything is defined ina  mir_ namespace18:06
racarrthat hides all the ANDROID* and android* and integer guessing stuff18:06
racarryou could swap it out!18:06
bschaeferoo yeah, I was just wonder about the enum ordering if the input is different as we can't control how they order their actions :)18:07
bschaeferor I suppose if its forked we can :)18:07
bschaeferright, and changing the enums (onces they are in place) will make that easy18:07
racarrwell if you are integrating any input stack you control in to the mir server you can have it emit events over the wire that look like MirEvent in terms of enums, etc18:08
racarrand the worst case is some kind of marshalling, i.e. conversion18:08
bschaeferright, I was thinking of sort of mapping to ensure a mir_motion_action_down is always 018:08
bschaeferfor the action, but that can be done under the hood for the event.action I suppose (if it ever gets to that point)18:08
bschaeferwell that answers my question thanks :)18:09
racarrToo much sun?18:17
racarrI think the EventFilterChain holding each filter by weak reference is satisfactory in that case and actually18:20
racarrthe software cursor case I was giving was something entirely different18:20
racarrit's already strange that the software cursor renderer has to subclass the compositing strategy18:20
racarri.e. reimplement all the drawing18:21
racarrjust to draw an overlay18:21
racarrso there should be like18:21
racarrthe_overlay_renderer() which is passed a change_callback like18:21
=== kdub is now known as kdub^lunch
=== kdub^lunch is now known as kdub
racarrkdub: https://code.launchpad.net/~robertcarr/mir/weakify-event-filters/+merge/160497 is aimed at the circular dependency20:47
racarrindemo shell20:47
kdubcool, will look it over soon20:53
racarrThanks :)20:56
racarrnow to untangle the software cursor one. I think I can do something more satisfactory than just a weak_ptr here with some work on the rendering interfaces20:56
racarrMorning robert_ancell  :)21:02
bschaeferracarr, an interesting bug im getting up a mouse released events. That button state is == 0 :(, no matter which key is being released21:06
bschaefera log: http://paste.ubuntu.com/5596683/21:06
bschaeferracarr, if you can point me close to some of the mir code I can dig through it :)21:07
robert_ancellracarr, hello21:15
racarrHi :)21:15
racarrbschaefer: Hmm21:16
racarrI'm not sure exactly where the culprit is! I mean one way to start is to write21:16
racarra failing integration test with the fixtures in tests/integration-tests/input/android/test_android_input_manager21:17
racarrusing the event_filter, rather than an actual server with clients21:17
bschaeferracarr, cool, Ill look into getting a failing test21:17
racarryou use the fake event hub to21:17
racarrsynthesize events21:17
bschaeferyeah, I saw some fake MouseDown tests, but none for Up21:17
racarrTEST_F(AndroidInputManagerAndEventFilterDispatcherSetup, manager_dispatches_button_events_to_filter)21:17
racarrdoes the kind of thing you need21:18
bschaefersweet, thanks!21:18
racarrbut maybe write a new test rather than just expand it :)21:18
racarrfeel free to bug me about the APIs, etc :)21:18
bschaeferalright :)21:18
bschaeferracarr, I might have done the test a bit wrong, but it shows the button state always being zero:http://paste.ubuntu.com/5596922/22:43
=== Quintasan_ is now known as Quintasan
racarrbschaefer: Yay! tests. Ok. Give me just 20-30 minutes to wrap something up and I will22:53
bschaeferracarr, alright, thanks!22:53
racarrrobert_ancell: The overlay renderer is for the software cursor.23:38
racarrit could be a surface but I think it is less conceptually clear as it introduces a lot of23:38
racarrother stuff, i.e. it has to be kept on top (double triple on top)23:38
racarrand the way surfaces are rendered has to change23:38
robert_ancellracarr, yeah, was just wondering if there were strong reasons like the hardware needs to know the difference23:39
* kdub has thought about overlays too23:39
robert_ancellAlso wasn't sure if you might need more than one overlay and then it becomes better to use surfaces with an overlay flag23:39
racarrHmm no no strong reasons like hardware in this case.23:40
racarrI think if you want more than one "overlay"23:40
racarryou implement that in your overlay renderer23:40
racarrthe idea is just this is a point for a shell to render, after mir has finished rendering the entire surface stack23:42
racarrI think this is almost definitely how you want to do things like debugging visualizations23:42
racarrwith software cursor I considered another approach too...23:43
racarrthe shell could implement the_renderables, to contain a surfacestack, andfor_each first does for_each on the surfacestack then emits a renderable for the cursor23:43
racarrbut the renderable interface23:43
racarrisn't really prepared to draw anything besides23:43
racarra surface...23:43
racarrmostly due to the way textures are managed.23:44
kdubracarr, with the overlay manager23:54
kdubhow do we coordinate the overlay with the surface stack?23:54
kdubi guess i'm thinking in the more complex world of using the hwc with multiple layers to do overlays23:55
racarrkdub: I don't know yet23:59
racarrI would guess those are in the surface stack and maybe not "overlays" in this sense ovf overlay23:59
racarrright like, a video overlay isnt an overlay in this sense of overlay23:59
kdubyes, and that's sort of what i'm thinking about23:59

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