=== chihchun_afk is now known as chihchun [07:21] RAOF: EOD merge proposals then? :) [07:21] All the proposals === mlankhor1t is now known as mlankhorst === chihchun is now known as chihchun_afk === chihchun_afk is now known as chihchun [09:21] duflu: you know the mesa side better right? [09:22] mlankhorst: Better than Android at least [09:23] I'm playing around with XMir, and I have sw rendering working [09:23] but my egl knowledge is lacking, how can I get glamor working, possibly with multiple windows? (in case of rootless xmir) [09:25] mlankhorst: I'm not sure it ever did. RAOF would know what's missing. I think something was [09:25] was thinking of using some egl calls instead of raw mir in a couple of places [09:26] mlankhorst: Yes, Mir likes you to use egl [09:27] oh.. some interacting with eglCreateWindowSurface might work [09:27] mlankhorst: Yeah see mir's examples/ [09:37] alan_g: are you currently working on exposing something like the fake-event-hub, for acceptance testing? [09:38] anpok_: not currently - I was hoping you or racarr would get to it first. [09:40] alan_g: Is it intentional that Server does not have virtual methods? That's not what I thought it would be... [09:40] duflu: for abi stability .. to have those as symbols [09:40] duflu: it is intentional [09:40] instead of table entries [09:41] alan_g: So a "Shell" would contain a "Server" then? [09:41] ok.. just rememberd your recent change there and thought you might be starting something [09:41] I'm confused because Server has shell methods... [09:41] alan_g: I am about to form a mir replacement of what EventHub does using the stuff RAOF added there [09:42] duflu: yes, there's a spike here: https://code.launchpad.net/~alan-griffiths/qtmir/migrate-to-mir-Server-API/+merge/240451 [09:42] and here: https://code.launchpad.net/~alan-griffiths/unity-system-compositor/migrate-to-mir-Server-API/+merge/240566 [09:44] alan_g: It might be more instructive for me to see how you convert demo-shell...? [09:44] If I wait for that instead of trying myself [09:44] duflu: basic shell has been converted if that's of use [09:45] I think basic shell was too basic to answer my questions but will look again [09:45] (And minimal, but that's not useful for this) [09:46] alan_g: I think I need to learn how your design protects the ABI first [09:47] No vtab index changes, no implementation changes, fewer customization points [09:47] 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] Mir handles a number of concerns that are of no direct interest to the shell (IPC, graphics and input drivers, ...) [09:51] alan_g: Yeah I can see some line... [09:53] 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] I'm not following, can you give an example? [09:56] 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] 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] Agreed however that most of Server is indeed server stuff and not shell [09:58] You just have to tell the server which placement class to use [09:59] 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] The server should send all policy queries (e.g. placement) to the shell to decide [10:00] alan_g: Maybe we need a function of Server to "set_shell(Shell ..)" to begin with? [10:01] 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] alan_g: Absolutely, it scales better and fits peoples' mental models. Instantiating N different policy classes is a nightmare [10:01] I'm trying to improve on it [10:02] Also, what you think is PolicyX might need to talk to PolicyY and PolicyZ (e.g. state settings depend on current type) [10:03] So, one class can do that trivially with much less effort and coupling [10:03] I disagree, but you can define your interface simply by subclassing all the existing ones [10:03] 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] Have a good evening [10:07] 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] And then logical cleanups should follow === dandrader is now known as dandrader|afk [10:12] anpok_: if you have a design that plays nicely with mir::Server that will help my migration task === dandrader|afk is now known as dandrader [10:54] 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] 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 === Trevinho_ is now known as Trevinho [11:36] how much effort would be it to use client-side allocation for mir-mesa? [11:57] u need that for glamor? [12:28] is there a mir_demo_client which prints out the frame rate any more? === alan_g is now known as alan_g|lunch [12:39] anpok_: hm I just found a way around it using some internal glamor copy thing [12:39] but now I need the stride for the fd that was passed by mir [12:41] oh oops, it exists ;P [12:42] yay, glamory eyes that work [12:44] greyback: You can set MIR_CLIENT_PERF_REPORT=log for any client now [12:44] alf_: ah ok, thanks! [12:48] yay, xeyes on glamor working \o/ === dandrader is now known as dandrader|afk [13:10] mlankhorst: great! [13:11] mlankhorst: yay for xeyes! [13:16] I seem to get some minor visual glitches, not sure where they're coming from [13:16] and they're probably gone if I invalidate the entire screen each time, looks like some stale damage :/ === alan_g|lunch is now known as alan_g === dandrader|afk is now known as dandrader [14:43] alf_: you were the one that helped me debug nested mir right? [14:47] mlankhorst: could be, I don't remember [14:55] mlankhorst: Is there something I could help with? === cyphermox_ is now known as cyphermox === chihchun is now known as chihchun_afk === chihchun_afk is now known as chihchun === alan_g is now known as alan_g|EOD === chihchun is now known as chihchun_afk [22:55] robert_ancell: hi [22:55] Trevinho, hi [22:56] robert_ancell: today I gave a look at the new gdkgl thing... and I've made an implementation for gdkmir... [22:56] Trevinho, cool. I had a look yesterday too but it seemed non-trivial :) [22:56] 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] robert_ancell: things work... *but*... [22:57] It would be better in git.gnome.org as a wip/mir-gl [22:57] ok, cool [22:57] robert_ancell: as you can see http://people.ubuntu.com/~3v1n0/gdkgl-mir-ok.avi [22:57] it does the job [22:57] Trevinho, nice work! [22:58] robert_ancell: thanks :).. but here (radeon) not when using eglSwapBuffersWithDamageEXT it has some problems [22:58] robert_ancell: see http://people.ubuntu.com/~3v1n0/gdkgl-mir-bad1.avi [22:58] robert_ancell: it's like there's a corruption somewhere [22:59] You'll have to ask the Mir guys about that one [22:59] robert_ancell: yes, that's also why I'm here... [22:59] RAOF, hah, timing! [22:59] RAOF: hi... (speaking of the devil...) [22:59] :D [23:00] You'll have to ask the Mir guys about that one [23:00] robert_ancell: yes, that's also why I'm here... [23:00] --> RAOF (~RAOF@ppp105-211.static.internode.on.net) has joined #ubuntu-mir [23:00] or maybe not :P [23:01] robert_ancell: anyway, how dow we want to track it? should I also open a bug on bugzilla? [23:05] 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] robert_ancell, Trevinho: You rang? [23:29] RAOF: yep... [23:29] it's for this https://www.youtube.com/watch?v=xQyfvEvQ_G0 [23:30] RAOF: that's gdkgl support in mir... I've been working on it few hours and got mostly working... But.... [23:31] 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] 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] Hm. That .avi quite effectively freezes my session. [23:35] haha [23:35] 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] Trevinho: Anyway, while I think we implement SwapBuffersWithDamage we don't actually do anything with the damage. [23:36] Ahem. [23:36] DANCING MENUBAR! [23:37] (Care of unity-panel-service bouncing, it seems) [23:37] * Trevinho might be involved on that as well :P [23:38] 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] Hm. That crazy vid looks like you're only drawing every second frame. [23:42] RAOF: yes,m it looks like that [23:42] RAOF: if you see http://people.ubuntu.com/~3v1n0/gdkgl-mir-bad2.avi [23:42] RAOF: there it's even different.. it only draws when something changes on the screen, [23:43] 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] and thus to make the ui redraw [23:48] Hm. [23:52] 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] (it's like the very first frame swapping with the new ones) [23:53] Hm. Could you shoot me the code? [23:53] I can have a look. [23:54] 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] I probably did; thanks to unstable session :) [23:54] no worries [23:58] transition scheme in place for event 2.0...semantics worked out for pointer ev v. touch event implementation of key event finished [23:58] think I am 4-5 hours of work from having the transition path to propose :) [23:58] but not today :( [23:59] 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