/srv/irclogs.ubuntu.com/2014/11/18/#ubuntu-mir.txt

=== chihchun_afk is now known as chihchun
dufluRAOF: EOD merge proposals then? :)07:21
dufluAll the proposals07:21
=== mlankhor1t is now known as mlankhorst
=== chihchun is now known as chihchun_afk
=== chihchun_afk is now known as chihchun
mlankhorstduflu: you know the mesa side better right?09:21
duflumlankhorst: Better than Android at least09:22
mlankhorstI'm playing around with XMir, and I have sw rendering working09:23
mlankhorstbut my egl knowledge is lacking, how can I get glamor working, possibly with multiple windows? (in case of rootless xmir)09:23
duflumlankhorst: I'm not sure it ever did. RAOF would know what's missing. I think something was09:25
mlankhorstwas thinking of using some egl calls instead of raw mir in a couple of places09:25
duflumlankhorst: Yes, Mir likes you to use egl09:26
mlankhorstoh.. some interacting with eglCreateWindowSurface might work09:27
duflumlankhorst: 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_ganpok_: not currently - I was hoping you or racarr would get to it first.09:38
duflualan_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 symbols09:40
alan_gduflu: it is intentional09:40
anpok_instead of table entries09:40
duflualan_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 something09:41
dufluI'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 there09:41
alan_gduflu: yes, there's a spike here: https://code.launchpad.net/~alan-griffiths/qtmir/migrate-to-mir-Server-API/+merge/24045109:42
alan_gand here: https://code.launchpad.net/~alan-griffiths/unity-system-compositor/migrate-to-mir-Server-API/+merge/24056609:42
duflualan_g: It might be more instructive for me to see how you convert demo-shell...?09:44
dufluIf I wait for that instead of trying myself09:44
alan_gduflu: basic shell has been converted if that's of use09:44
dufluI think basic shell was too basic to answer my questions but will look again09:45
alan_g(And minimal, but that's not useful for this)09:45
duflualan_g: I think I need to learn how your design protects the ABI first09:46
alan_gNo vtab index changes, no implementation changes, fewer customization points09:47
dufluI do wonder if it's helpful that we distinguish between "shell" and "server". I think "shell" is just a server with customized behaviour09:47
alan_gMir handles a number of concerns that are of no direct interest to the shell (IPC, graphics and input drivers, ...)09:51
duflualan_g: Yeah I can see some line...09:51
duflualan_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 instead09:53
alan_gI'm not following, can you give an example?09:54
duflualan_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 shell09:56
dufluI think that feature is misplaced, and it's something I'm working on directly right now... so need to figure it out09:56
dufluAgreed however that most of Server is indeed server stuff and not shell09:57
alan_gYou just have to tell the server which placement class to use09:58
duflualan_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 concern09:59
dufluThe server should send all policy queries (e.g. placement) to the shell to decide09:59
duflualan_g: Maybe we need a function of Server to "set_shell(Shell ..)" to begin with?10:00
alan_gduflu: 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
duflualan_g: Absolutely, it scales better and fits peoples' mental models. Instantiating N different policy classes is a nightmare10:01
dufluI'm trying to improve on it10:01
dufluAlso, what you think is PolicyX might need to talk to PolicyY and PolicyZ (e.g. state settings depend on current type)10:02
dufluSo, one class can do that trivially with much less effort and coupling10:03
alan_gI disagree, but you can define your interface simply by subclassing all the existing ones10:03
duflualan_g: I'm handwaiving again and it's after hours. I'll try and do a prototype and see if it improves things at all10:03
* alan_g waves goodbye10:04
alan_gHave a good evening10:04
duflualan_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" class10:07
dufluAnd then logical cleanups should follow10:07
=== dandrader is now known as dandrader|afk
alan_ganpok_: if you have a design that plays nicely with mir::Server that will help my migration task10: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_ganpok_: we have more-or-less the same question with the graphics. The existing stub graphics platform doesn't (yet) allow customization for testing scenarios10:56
=== Trevinho_ is now known as Trevinho
mlankhorsthow much effort would be it to use client-side allocation for mir-mesa?11:36
anpok_u need that for glamor?11:57
greybackis there a mir_demo_client which prints out the frame rate any more?12:28
=== alan_g is now known as alan_g|lunch
mlankhorstanpok_: hm I just found a way around it using some internal glamor copy thing12:39
mlankhorstbut now I need the stride for the fd that was passed by mir12:39
mlankhorstoh oops, it exists ;P12:41
mlankhorstyay, glamory eyes that work12:42
alf_greyback: You can set MIR_CLIENT_PERF_REPORT=log for any client now12:44
greybackalf_: ah ok, thanks!12:44
mlankhorstyay, 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
mlankhorstI seem to get some minor visual glitches, not sure where they're coming from13:16
mlankhorstand 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
mlankhorstalf_: you were the one that helped me debug nested mir right?14:43
alf_mlankhorst: could be, I don't remember14: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
Trevinhorobert_ancell: hi22:55
robert_ancellTrevinho, hi22:55
Trevinhorobert_ancell: today I gave a look at the new gdkgl thing... and I've made an implementation for gdkmir...22:56
robert_ancellTrevinho, cool. I had a look yesterday too but it seemed non-trivial :)22:56
Trevinhorobert_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
Trevinhorobert_ancell: things work... *but*...22:56
robert_ancellIt would be better in git.gnome.org as a wip/mir-gl22:57
Trevinhook, cool22:57
Trevinhorobert_ancell: as you can see http://people.ubuntu.com/~3v1n0/gdkgl-mir-ok.avi22:57
Trevinhoit does the job22:57
robert_ancellTrevinho, nice work!22:57
Trevinhorobert_ancell: thanks :).. but here (radeon) not when using eglSwapBuffersWithDamageEXT it has some problems22:58
Trevinhorobert_ancell: see http://people.ubuntu.com/~3v1n0/gdkgl-mir-bad1.avi22:58
Trevinhorobert_ancell: it's like there's a corruption somewhere22:58
robert_ancellYou'll have to ask the Mir guys about that one22:59
Trevinhorobert_ancell: yes, that's also why I'm here...22:59
robert_ancellRAOF, hah, timing!22:59
TrevinhoRAOF: hi... (speaking of the devil...)22:59
Trevinho:D22:59
robert_ancell<robert_ancell> You'll have to ask the Mir guys about that one23: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-mir23:00
Trevinhoor maybe not :P23:00
Trevinhorobert_ancell: anyway, how dow we want to track it? should I also open a bug on bugzilla?23:01
Trevinhorobert_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, bbl23:07
RAOFrobert_ancell, Trevinho: You rang?23:28
TrevinhoRAOF: yep...23:29
Trevinhoit's for this https://www.youtube.com/watch?v=xQyfvEvQ_G023:29
TrevinhoRAOF: that's gdkgl support in mir... I've been working on it few hours and got mostly working... But....23:30
Trevinhoall 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
TrevinhoRAOF: 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
RAOFHm. That .avi quite effectively freezes my session.23:35
racarrhaha23:35
TrevinhoRAOF: ops... try with vlc, or mplayer... mencoder did it23:35
* RAOF suspects gstreamer's vaapi support; the intel drivers seem to be a bit flaky on Vivid.23:36
RAOFTrevinho: Anyway, while I think we implement SwapBuffersWithDamage we don't actually do anything with the damage.23:36
RAOFAhem.23:36
RAOFDANCING MENUBAR!23:36
RAOF(Care of unity-panel-service bouncing, it seems)23:37
* Trevinho might be involved on that as well :P23:37
TrevinhoRAOF: 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 troubles23:38
RAOFHm. That crazy vid looks like you're only drawing every second frame.23:41
TrevinhoRAOF: yes,m it looks like that23:42
TrevinhoRAOF: if you see http://people.ubuntu.com/~3v1n0/gdkgl-mir-bad2.avi23:42
TrevinhoRAOF: there it's even different.. it only draws when something changes on the screen,23:42
TrevinhoRAOF: you can't see the mouse cursor, but I was just moving the cursor over the gtk widgets to make them change state23:43
Trevinhoand thus to make the ui redraw23:43
RAOFHm.23:48
TrevinhoRAOF: 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 update23:52
Trevinho(it's like the very first frame swapping with the new ones)23:52
RAOFHm. Could you shoot me the code?23:53
RAOFI can have a look.23:53
TrevinhoRAOF: ah you maybe misseed my link before... it's at https://github.com/3v1n0/gtk/blob/wip/mir-gdkgl/gdk/mir/gdkmirglcontext.c#L14623:54
RAOFI probably did; thanks to unstable session :)23:54
Trevinhono worries23:54
racarrtransition scheme in place for event 2.0...semantics worked out for pointer ev v. touch event implementation of key event finished23:58
racarrthink I am 4-5 hours of work from having the transition path to propose :)23:58
racarrbut not today :(23:58
TrevinhoRAOF: 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 rendering23:59

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