=== chihchun_afk is now known as chihchun | ||
duflu | RAOF: EOD merge proposals then? :) | 07:21 |
---|---|---|
duflu | All the proposals | 07:21 |
=== mlankhor1t is now known as mlankhorst | ||
=== chihchun is now known as chihchun_afk | ||
=== chihchun_afk is now known as chihchun | ||
mlankhorst | duflu: you know the mesa side better right? | 09:21 |
duflu | mlankhorst: Better than Android at least | 09:22 |
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:23 |
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:25 |
duflu | mlankhorst: Yes, Mir likes you to use egl | 09:26 |
mlankhorst | oh.. some interacting with eglCreateWindowSurface might work | 09:27 |
duflu | mlankhorst: Yeah see mir's examples/ | 09:27 |
anpok_ | alan_g: are you currently working on exposing something like the fake-event-hub, for acceptance testing? | 09:37 |
alan_g | anpok_: not currently - I was hoping you or racarr would get to it first. | 09:38 |
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:40 |
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:41 |
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:42 |
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:44 |
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:45 |
duflu | alan_g: I think I need to learn how your design protects the ABI first | 09:46 |
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:47 |
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:51 |
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:53 |
alan_g | I'm not following, can you give an example? | 09:54 |
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:56 |
duflu | Agreed however that most of Server is indeed server stuff and not shell | 09:57 |
alan_g | You just have to tell the server which placement class to use | 09:58 |
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 | 09:59 |
duflu | alan_g: Maybe we need a function of Server to "set_shell(Shell ..)" to begin with? | 10:00 |
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:01 |
duflu | Also, what you think is PolicyX might need to talk to PolicyY and PolicyZ (e.g. state settings depend on current type) | 10:02 |
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:03 |
* alan_g waves goodbye | 10:04 | |
alan_g | Have a good evening | 10:04 |
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:07 |
=== dandrader is now known as dandrader|afk | ||
alan_g | anpok_: if you have a design that plays nicely with mir::Server that will help my migration task | 10:12 |
=== dandrader|afk is now known as dandrader | ||
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:54 |
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 | 10:56 |
=== Trevinho_ is now known as Trevinho | ||
mlankhorst | how much effort would be it to use client-side allocation for mir-mesa? | 11:36 |
anpok_ | u need that for glamor? | 11:57 |
greyback | is there a mir_demo_client which prints out the frame rate any more? | 12:28 |
=== alan_g is now known as alan_g|lunch | ||
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:39 |
mlankhorst | oh oops, it exists ;P | 12:41 |
mlankhorst | yay, glamory eyes that work | 12:42 |
alf_ | greyback: You can set MIR_CLIENT_PERF_REPORT=log for any client now | 12:44 |
greyback | alf_: ah ok, thanks! | 12:44 |
mlankhorst | yay, xeyes on glamor working \o/ | 12:48 |
=== dandrader is now known as dandrader|afk | ||
alf_ | mlankhorst: great! | 13:10 |
anpok_ | mlankhorst: yay for xeyes! | 13:11 |
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 :/ | 13:16 |
=== alan_g|lunch is now known as alan_g | ||
=== dandrader|afk is now known as dandrader | ||
mlankhorst | alf_: you were the one that helped me debug nested mir right? | 14:43 |
alf_ | mlankhorst: could be, I don't remember | 14:47 |
alf_ | mlankhorst: Is there something I could help with? | 14:55 |
=== 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 | ||
Trevinho | robert_ancell: hi | 22:55 |
robert_ancell | Trevinho, hi | 22:55 |
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:56 |
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:57 |
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:58 |
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 | 22:59 |
robert_ancell | <robert_ancell> You'll have to ask the Mir guys about that one | 23:00 |
robert_ancell | <Trevinho> 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:00 |
Trevinho | robert_ancell: anyway, how dow we want to track it? should I also open a bug on bugzilla? | 23:01 |
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:05 |
* robert_ancell_ -> lunch, bbl | 23:07 | |
RAOF | robert_ancell, Trevinho: You rang? | 23:28 |
Trevinho | RAOF: yep... | 23:29 |
Trevinho | it's for this https://www.youtube.com/watch?v=xQyfvEvQ_G0 | 23:29 |
Trevinho | RAOF: that's gdkgl support in mir... I've been working on it few hours and got mostly working... But.... | 23:30 |
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:31 |
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:32 |
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:35 |
* 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:36 |
RAOF | (Care of unity-panel-service bouncing, it seems) | 23:37 |
* Trevinho might be involved on that as well :P | 23:37 | |
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:38 |
RAOF | Hm. That crazy vid looks like you're only drawing every second frame. | 23:41 |
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:42 |
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:43 |
RAOF | Hm. | 23:48 |
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:52 |
RAOF | Hm. Could you shoot me the code? | 23:53 |
RAOF | I can have a look. | 23:53 |
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:54 |
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:58 |
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 | 23:59 |
Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!