[07:21] <duflu> RAOF: EOD merge proposals then? :)
[07:21] <duflu> All the proposals
[09:21] <mlankhorst> duflu: you know the mesa side better right?
[09:22] <duflu> mlankhorst: Better than Android at least
[09:23] <mlankhorst> I'm playing around with XMir, and I have sw rendering working
[09:23] <mlankhorst> but my egl knowledge is lacking, how can I get glamor working, possibly with multiple windows? (in case of rootless xmir)
[09:25] <duflu> mlankhorst: I'm not sure it ever did. RAOF would know what's missing. I think something was
[09:25] <mlankhorst> was thinking of using some egl calls instead of raw mir in a couple of places
[09:26] <duflu> mlankhorst: Yes, Mir likes you to use egl
[09:27] <mlankhorst> oh.. some interacting with eglCreateWindowSurface might work
[09:27] <duflu> mlankhorst: Yeah see mir's examples/
[09:37] <anpok_> alan_g: are you currently working on exposing something like the fake-event-hub, for acceptance testing?
[09:38] <alan_g> anpok_: not currently - I was hoping you or racarr would get to it first.
[09:40] <duflu> alan_g: Is it intentional that Server does not have virtual methods? That's not what I thought it would be...
[09:40] <anpok_> duflu: for abi stability .. to have those as symbols
[09:40] <alan_g> duflu: it is intentional
[09:40] <anpok_> instead of table entries
[09:41] <duflu> alan_g: So a "Shell" would contain a "Server" then?
[09:41] <anpok_> ok.. just rememberd your recent change there and thought you might be starting something
[09:41] <duflu> I'm confused because Server has shell methods...
[09:41] <anpok_> alan_g: I am about to form a mir replacement of what EventHub does using the stuff RAOF added there
[09:42] <alan_g> duflu: yes, there's a spike here: https://code.launchpad.net/~alan-griffiths/qtmir/migrate-to-mir-Server-API/+merge/240451
[09:42] <alan_g> and here: https://code.launchpad.net/~alan-griffiths/unity-system-compositor/migrate-to-mir-Server-API/+merge/240566
[09:44] <duflu> alan_g: It might be more instructive for me to see how you convert demo-shell...?
[09:44] <duflu> If I wait for that instead of trying myself
[09:44] <alan_g> duflu: basic shell has been converted if that's of use
[09:45] <duflu> I think basic shell was too basic to answer my questions but will look again
[09:45] <alan_g> (And minimal, but that's not useful for this)
[09:46] <duflu> alan_g: I think I need to learn how your design protects the ABI first
[09:47] <alan_g> No vtab index changes, no implementation changes, fewer customization points
[09:47] <duflu> I do wonder if it's helpful that we distinguish between "shell" and "server". I think "shell" is just a server with customized behaviour
[09:51] <alan_g> Mir handles a number of concerns that are of no direct interest to the shell (IPC, graphics and input drivers, ...)
[09:51] <duflu> alan_g: Yeah I can see some line...
[09:53] <duflu> alan_g: Consider however Server.override_the_placement_strategy() -- it's a shell feature so if Shell can't inherit from Server then functions like that need to move into some generic Shell class instead
[09:54] <alan_g> I'm not following, can you give an example?
[09:56] <duflu> alan_g: "placement strategy" is a shell feature. It changes according to which shell you're using. So in the end I think placement behaviour needs to be a feature of a shell class, somewhere. The issue is you can't make a shell class that inherits from Server so it would have to contain a Server. But then you still have "placement strategy" in the server and not the shell
[09:56] <duflu> I think that feature is misplaced, and it's something I'm working on directly right now... so need to figure it out
[09:57] <duflu> Agreed however that most of Server is indeed server stuff and not shell
[09:58] <alan_g> You just have to tell the server which placement class to use
[09:59] <duflu> alan_g: I think you will find when there exists a Shell class separate to Server then the server no longer cares about placement strategy. It's entirely a shell concern
[09:59] <duflu> The server should send all policy queries (e.g. placement) to the shell to decide
[10:00] <duflu> alan_g: Maybe we need a function of Server to "set_shell(Shell ..)" to begin with?
[10:01] <alan_g> duflu: your saying all queries should be answered by one shell interface, what I see is have is specific queries being answered by specific shell interfaces.
[10:01] <duflu> alan_g: Absolutely, it scales better and fits peoples' mental models. Instantiating N different policy classes is a nightmare
[10:01] <duflu> I'm trying to improve on it
[10:02] <duflu> Also, what you think is PolicyX might need to talk to PolicyY and PolicyZ (e.g. state settings depend on current type)
[10:03] <duflu> So, one class can do that trivially with much less effort and coupling
[10:03] <alan_g> I disagree, but you can define your interface simply by subclassing all the existing ones
[10:03] <duflu> alan_g: I'm handwaiving again and it's after hours. I'll try and do a prototype and see if it improves things at all
[10:04]  * alan_g waves goodbye
[10:04] <alan_g> Have a good evening
[10:07] <duflu> alan_g: I think a good example to think about is how to eliminate the poorly-named "WindowManager" in demo-shell. I think that should just become a more capable "DemoShell" class
[10:07] <duflu> And then logical cleanups should follow
[10:12] <alan_g> anpok_: if you have a design that plays nicely with mir::Server that will help my migration task
[10:54] <anpok_> alan_g: not sure yet.. whether we want a testing-(input)platform with an interface to create fake devices and emit user input or just some sort of always available interface to inject devices and events..
[10:56] <alan_g> anpok_: we have more-or-less the same question with the graphics. The existing stub graphics platform doesn't (yet) allow customization for testing scenarios
[11:36] <mlankhorst> how much effort would be it to use client-side allocation for mir-mesa?
[11:57] <anpok_> u need that for glamor?
[12:28] <greyback> is there a mir_demo_client which prints out the frame rate any more?
[12:39] <mlankhorst> anpok_: hm I just found a way around it using some internal glamor copy thing
[12:39] <mlankhorst> but now I need the stride for the fd that was passed by mir
[12:41] <mlankhorst> oh oops, it exists ;P
[12:42] <mlankhorst> yay, glamory eyes that work
[12:44] <alf_> greyback: You can set MIR_CLIENT_PERF_REPORT=log for any client now
[12:44] <greyback> alf_: ah ok, thanks!
[12:48] <mlankhorst> yay, xeyes on glamor working \o/
[13:10] <alf_> mlankhorst: great!
[13:11] <anpok_> mlankhorst: yay for xeyes!
[13:16] <mlankhorst> I seem to get some minor visual glitches, not sure where they're coming from
[13:16] <mlankhorst> and they're probably gone if I invalidate the entire screen each time, looks like some stale damage :/
[14:43] <mlankhorst> alf_: you were the one that helped me debug nested mir right?
[14:47] <alf_> mlankhorst: could be, I don't remember
[14:55] <alf_> mlankhorst: Is there something I could help with?
[22:55] <Trevinho> robert_ancell: hi
[22:55] <robert_ancell> Trevinho, hi
[22:56] <Trevinho> robert_ancell: today I gave a look at the new gdkgl thing... and I've made an implementation for gdkmir...
[22:56] <robert_ancell> Trevinho, cool. I had a look yesterday too but it seemed non-trivial :)
[22:56] <Trevinho> robert_ancell: I've pushed it at https://github.com/3v1n0/gtk/compare/wip/mir-gdkgl for now, but I might move that to a new branch in git.gnome if you prefer...
[22:56] <Trevinho> robert_ancell: things work... *but*...
[22:57] <robert_ancell> It would be better in git.gnome.org as a wip/mir-gl
[22:57] <Trevinho> ok, cool
[22:57] <Trevinho> robert_ancell: as you can see http://people.ubuntu.com/~3v1n0/gdkgl-mir-ok.avi
[22:57] <Trevinho> it does the job
[22:57] <robert_ancell> Trevinho, nice work!
[22:58] <Trevinho> robert_ancell: thanks :).. but here (radeon) not when using eglSwapBuffersWithDamageEXT it has some problems
[22:58] <Trevinho> robert_ancell: see http://people.ubuntu.com/~3v1n0/gdkgl-mir-bad1.avi
[22:58] <Trevinho> robert_ancell: it's like there's a corruption somewhere
[22:59] <robert_ancell> You'll have to ask the Mir guys about that one
[22:59] <Trevinho> robert_ancell: yes, that's also why I'm here...
[22:59] <robert_ancell> RAOF, hah, timing!
[22:59] <Trevinho> RAOF: hi... (speaking of the devil...)
[22:59] <Trevinho> :D
 You'll have to ask the Mir guys about that one
 robert_ancell: yes, that's also why I'm here...
[23:00] <robert_ancell> --> RAOF (~RAOF@ppp105-211.static.internode.on.net) has joined #ubuntu-mir
[23:00] <Trevinho> or maybe not :P
[23:01] <Trevinho> robert_ancell: anyway, how dow we want to track it? should I also open a bug on bugzilla?
[23:05] <Trevinho> robert_ancell_: also I pushed a backend for cogl, that should then make also clutter working (not sure what will be the future of these, but we still need them I guess)
[23:07]  * robert_ancell_ -> lunch, bbl
[23:28] <RAOF> robert_ancell, Trevinho: You rang?
[23:29] <Trevinho> RAOF: yep...
[23:29] <Trevinho> it's for this https://www.youtube.com/watch?v=xQyfvEvQ_G0
[23:30] <Trevinho> RAOF: that's gdkgl support in mir... I've been working on it few hours and got mostly working... But....
[23:31] <Trevinho> all you see there happens when using an eglSwapBuffer call... when instead using eglSwapBuffersWithDamage, I get some corruption (like you can see at http://people.ubuntu.com/~3v1n0/gdkgl-mir-bad1.avi)
[23:32] <Trevinho> RAOF: basically if this if: https://github.com/3v1n0/gtk/blob/wip/mir-gdkgl/gdk/mir/gdkmirglcontext.c#L146 is false it works, otherwise it seems that it swaps garbage...
[23:35] <RAOF> Hm. That .avi quite effectively freezes my session.
[23:35] <racarr> haha
[23:35] <Trevinho> RAOF: ops... try with vlc, or mplayer... mencoder did it
[23:36]  * RAOF suspects gstreamer's vaapi support; the intel drivers seem to be a bit flaky on Vivid.
[23:36] <RAOF> Trevinho: Anyway, while I think we implement SwapBuffersWithDamage we don't actually do anything with the damage.
[23:36] <RAOF> Ahem.
[23:36] <RAOF> DANCING MENUBAR!
[23:37] <RAOF> (Care of unity-panel-service bouncing, it seems)
[23:37]  * Trevinho might be involved on that as well :P
[23:38] <Trevinho> RAOF: mh, I'm not sure whether it's fully using it (it looked the case when I tried), but I've also made a cogl backend and it uses SwapBuffersWithDamage... And I didn't see these troubles
[23:41] <RAOF> Hm. That crazy vid looks like you're only drawing every second frame.
[23:42] <Trevinho> RAOF: yes,m it looks like that
[23:42] <Trevinho> RAOF: if you see http://people.ubuntu.com/~3v1n0/gdkgl-mir-bad2.avi
[23:42] <Trevinho> RAOF: there it's even different.. it only draws when something changes on the screen,
[23:43] <Trevinho> RAOF: you can't see the mouse cursor, but I was just moving the cursor over the gtk widgets to make them change state
[23:43] <Trevinho> and thus to make the ui redraw
[23:48] <RAOF> Hm.
[23:52] <Trevinho> RAOF: in some other cases it happens that the surface seems to swap between a the new state and a very old one... So, every few ms you see the old look of the window and then the new one... While the old one doesn't seem to update
[23:52] <Trevinho> (it's like the very first frame swapping with the new ones)
[23:53] <RAOF> Hm. Could you shoot me the code?
[23:53] <RAOF> I can have a look.
[23:54] <Trevinho> RAOF: ah you maybe misseed my link before... it's at https://github.com/3v1n0/gtk/blob/wip/mir-gdkgl/gdk/mir/gdkmirglcontext.c#L146
[23:54] <RAOF> I probably did; thanks to unstable session :)
[23:54] <Trevinho> no worries
[23:58] <racarr> transition scheme in place for event 2.0...semantics worked out for pointer ev v. touch event implementation of key event finished
[23:58] <racarr> think I am 4-5 hours of work from having the transition path to propose :)
[23:58] <racarr> but not today :(
[23:59] <Trevinho> RAOF: basically at the point I linked you, if using the simple eglBufferSwap works, but I'm not sure it's still perferct in terms of rendering