/srv/irclogs.ubuntu.com/2014/06/25/#ubuntu-mir.txt

racarr_wow new chromium worked on the first try00:51
racarr_that never happens :p00:52
racarr_it seems a little more responsivice perhaps...but it was never bad00:52
RAOFOh, great.02:42
RAOFLooks like glibc's now using Haswell's fancy lock elision instructions.02:43
RAOFMaking valgrind confusinated.02:47
racarr_just read alittle about the implementation03:16
racarr_that is really...fancy03:16
racarr_if someone told me to implement that I would probably just cry03:17
RAOFracarr_: Oh, re: vsync conversation above - we can pull whatever vsync related information you need out of drm.03:26
racarr_:) cool03:27
racarr_ill doa littlestudy of how chromiumis usingit and see what we should expose03:28
RAOFracarr_: Specifically, the infrastructure to support GLX_sync_control is there, so we can get the frame time and such.03:28
* RAOF goes babywards03:28
racarr_:) ttyl03:29
RAOFSo, um... how does this _ever_ fail to leak?05:59
RAOFOk, new question.06:01
RAOFWhy does is the leak only *fatal* on *some* of the CI infrastructure?06:01
RAOFtvoss: Good morning!06:02
tvossRAOF, good morning :)06:02
=== chihchun_afk is now known as chihchun
=== tvoss is now known as tvoss|test
=== tvoss|test is now known as tvoss
=== alan_g is now known as alan_g|afk
=== alan_g|afk is now known as alan_g
=== tvoss is now known as tvoss|test
=== tvoss|test is now known as tvoss
anpokalf__: will you have time to look at the input-sender again today?09:43
alf__anpok: sure09:48
anpoknot urgent, but is anybody else also affected by: https://bugs.launchpad.net/mir/+bug/129461010:04
ubot5Ubuntu bug 1294610 in Mir "client attaching to nested server seems to freeze the VT" [Undecided,New]10:04
greybackHi folks, a preliminary review for https://code.launchpad.net/~dandrader/mir/expose-android-input/+merge/224335 would be appreciated10:09
anpokoh the ci failure looks interesting - will propose a synchronous timer destruction then.10:33
alan_gIn other news: "The Library Evolution Working Group (LEWG) voted to base the Networking TS on Boost.ASIO."10:44
anpokgood timing10:45
anpokbut there wasnt really an alternative, was there?10:46
alan_gIt is a massive change in direction. (But probably a rational one.)10:50
=== alan_g is now known as alan_g|lunch
=== renato_ is now known as Guest60599
=== chihchun is now known as chihchun_afk
=== alan_g|lunch is now known as alan_g
=== mterry_ is now known as mterry
=== dandrader is now known as dandrader|afk
=== chihchun_afk is now known as chihchun
=== olli_ is now known as olli
=== dandrader|afk is now known as dandrader
anpokalan_g: wrt to https://code.launchpad.net/~alan-griffiths/mir/fix-1334287/+merge/224457/comments/538943 I want to use the action queue to sequentialize the timer callbacks and the canceling operations.. then either cancel happens before asio decides to schedule the timer or the other way round, and synchronous_server_action waits till the canceling completes..15:49
anpokso in the bad case, the callback is called during cancel waits that the server action queue executes the actual cancel operation15:51
anpokbut i just messed up my solution .. need to clear my head .. and look again what I missed.. or if you want to look I could push it somewhere..15:52
alan_ganpok: ack - I'm halfway through fixing my fix, so I won't look right now. Tomorrow am?15:53
anpokyes15:57
kgunndavmor2: is there any way you could perform some smoke testing on silo20 ? this is the same silo you tested 2 days ago....15:58
kgunnwe had some packaging isssues, so mostly just a rebuild15:58
kgunnbut we'd like to get some external eyes on it15:58
davmor2kgunn: I can have a look after I'm just trying to trace an issue currently.15:58
kgunnrsalveti: ^ if you would like to help with testing silo20 that'd be awesome (its the display blank policy move from powerd to usc)15:59
dandraderis anyone working on getting unity-system-compositor updated against latest lp:mir/devel?16:22
dandraderI mean unity-system-compositor/devel-mir-next16:23
=== dandrader is now known as dandrader|lunch
rsalvetikgunn: I tested it already, also replied to that thread giving +116:24
kgunnrsalveti: thanks!16:24
kgunndandrader|lunch: i think alf__ might have been, but got sucked into a regression/critical bug investigation16:25
alf__kgunn: dandrader|lunch: exactly16:25
davmor2kgunn: I'm off early today but when I get back I'll give you a ping with my results16:26
kgunndandrader|lunch: dednick needs it too...if i can get someone on it today i will16:27
kgunnalf__: btw, any update on that bug ?16:27
alf__kgunn: not yet, I am trying to track what is going through all the layers16:27
kdub_which bug?16:27
alf__kdub_: https://bugs.launchpad.net/mir/+bug/133263216:29
ubot5Ubuntu bug 1332632 in gallery-app "can't display toolbar after dismissing it" [Critical,In progress]16:29
kdub_kgunn, I've fixed up usc locally here for my overlay work, maybe I s hould dust it up and propose16:34
kgunnkdub_: yeah, please do16:35
alf__kdub_: problem with usc is that it overrides the scene and returns renderables manually. However with the new changes it can't do that (it doesn't know how to create a SceneElement)16:36
kdub_alf__, i just wrote a SceneElement impl there16:37
kdub_that forwards the renderable along16:37
alf__kdub_: For some reason it wants to only expose surfaces from two sessions (current and next). I was thinking that instead of customizing the scene it could hide the unneeded session.16:37
kdub_alf__, yes, that seems the better approach16:38
alf__kdub_: problem is that the new SceneElement doesn't properly handle visibility events16:38
alf__kdub_: (i guess, unless you managed to do it somehow :))16:38
kdub_right, I was just realizing the visibility events in my branch wouldn't work16:38
alf__kdub_: well, if you have cycles to work on it great, otherwise I am going to pick it up again after I am done with this bug16:40
kdub_alf__, okay16:40
kdub_kgunn, so it seems my usc branch was only sufficient for testing out overlay stuff, not for landing16:41
kgunnalf__: kdub_ ack16:48
AlbertAalf__: I believe it does the current and next16:48
AlbertAalf__: so that with the split greeter16:48
AlbertAalf__: alpha transitions can be done16:49
AlbertAalf__: if you hide it, then it will just show a black screen as you slide off the greeter16:49
kdub_AlbertA, is the sliding not moving the surface?16:50
alf__AlbertA: I was thinking of hiding every other surface/session besides current and next16:50
AlbertAkdub_: no because this is under nested, they are essentially fullscreen sessions16:51
kdub_oh, and alpha channel is just arranged to look like its moving16:51
AlbertAkdub_: right16:51
AlbertAalf__: oh ok16:51
kdub_so... potential optimization16:51
alf__AlbertA: ...so then the default SceneElementSequence would be what USC wants (hopefully)16:52
kgunnmterry: ^16:52
mterrymmm, ok...16:53
AlbertAkdub_: right I mean for performance reasons... if the animation could be done in USC then that would be better since you wouldn't need alpha blending then16:53
AlbertAkdub_: it would just be surface movement16:53
kdub_right16:53
* alan_g thinks it is time to get "nested" back under test16:57
kdub_indeed16:58
alan_gSomething to do tomorrow.16:59
=== alan_g is now known as alan_g|EOD
=== dandrader|lunch is now known as dandrader
Davmor3kgunn: So this working okay18:30
AlbertADavmor3: you mean landing-020 looks ok?18:34
racarr_im still stuck on how to get change notifications to the compositor for cursor-is-a-renderable18:42
racarr_and I am starting to wonder if maybe cursor is a surface18:42
racarr_but NOT a frontend::Surface18:42
racarr_the thing is scene::Surface would have to lose inheritance of frontend::Surface18:43
racarr_then you add like a18:43
racarr_...ClientSurface : scene::Surface, frontend::Surface18:44
racarr_BasicSurface : ClientSurface (:/, basic surface is really just like clientsurfaceimpl)18:44
racarr_scene::Surface : input::Surface, SurfaceBufferAccess18:44
racarr_CursorSurface : scene::Surface18:45
racarr_the problem with Cursor : Renderable18:46
racarr_is you need an add_observer API18:46
racarr_but its desirable not to have RenderableObserver as...basically a parallel class to18:47
anpokracarr_:  a SceneElement maybe?18:47
racarr_SurfaceObserver18:47
anpokwith a Renderable inside?18:47
racarr_but you cant just promote surfaceobserver to renderableobserver18:47
racarr_because18:47
racarr_ms::Surface is NOT18:47
racarr_a renderable18:47
racarr_so then the shell wouldn't have add_observer18:47
racarr_anpok: Yes, that part is fine18:48
racarr_the problem is, the way the compositor gets18:48
racarr_notifications is by seeing18:48
anpokif the scene changed18:48
racarr_Observer::surface_added(ms::Surface)18:48
anpoki see18:48
racarr_and calling ms::Surface->add_observer18:48
racarr_so if its not a surface observers wont work18:48
anpokthat is correct as long as there are only surfaces in a scene18:48
anpokscene::Surface that is18:49
racarr_but surface is NOT a renderable (it produces renderable snapshots)18:49
racarr_so you cant just make it Renderable::add_observer18:49
racarr_yes18:49
racarr_so either somehow I need to untangle that18:49
anpokyes18:49
racarr_or! make18:49
racarr_the Cursor a surface.18:49
racarr_but its pretty clearly NOT a frontend::Surface18:49
racarr_so that hierarchy would have to be untangled18:49
anpokand untangling the hierachy is close to untangling scene / surface / renderable18:52
racarr_Mm18:52
anpokand i think the latter is the one we are aiming for in the long run?18:52
anpokbut dont listen to me i am prone to prefere big changes18:53
racarr_i am just worried it will get so big18:54
racarr_that I will spend a week18:54
racarr_porting all the client code and test code and stuff18:54
racarr_to new interfaces18:54
racarr_and then...um18:54
racarr_it will be wrong for some reason lol18:55
racarr_because im still not confident18:55
racarr_I kind of like this18:58
racarr_um18:58
racarr_scene::Surface : input::Surface, SurfaceBufferAccess { ... add/remove_observer... }18:58
racarr_i.e. what the two views of the scene require.18:59
racarr_and Client(/Application?)Surface : scene::Surface, frontend::Surface18:59
racarr_trying to figure out how much churn its going to cause...who uses implicit cast...from scene::Surface to frontend::Surface or uses the frontend::Surface methods in scene::Surface.19:00
racarr_i.e. the shell primarily deals with scene::Surface...19:03
racarr_and you dont want the shell to have to dynamic_cast<frontend::Surface>19:03
racarr_but the shell does want to call things like mf::Surface::configure(attrib, val)19:03
racarr_so you end up needing those methods on scene::Surface anyway19:03
racarr_which. means the cursor has to implement them, but shouldn't19:04
racarr_potentially the shell could work in terms of19:04
racarr_ClientSurface.19:04
racarr_Window : scene::Surface, frontend::Surface?19:04
anpokthe shell might want to add other things to the scene19:04
racarr_...just throwing that one out there :p19:04
anpoknot just the cursor.. or surfaces.. i think some form of type detection will be necessary as soon as it turns into a tree19:05
racarr_maybe on the view sides19:05
racarr_but if on the client side, i.e. shell code manipulating surfaces19:06
racarr_all the code looks like19:06
racarr_i.e. the wm code19:06
racarr_"cast to frontend surface/cient surface/whatever, if it is one do stuff, if not return"19:06
racarr_then that cant be right19:06
anpokhm what is wm code?19:07
racarr_ill be honest I kind of miss mir::shell::Surface19:07
racarr_anpok: Wiondow management code19:07
anpokyeah, but what is it? Raof mentioned in malta ... that you would probably have the tree of things that you want to traverse to insert new items or manipulate them.. dispatch input .. draw.. and another set of things which represents the clients and the attached surfaces..19:08
racarr_what is it in what sense?19:09
racarr_I mean its unity-mir19:09
racarr_but I feel like thats not what you are asking lol19:09
anpok:)19:09
racarr_but right there is this19:09
racarr_well there could be19:09
racarr_this shell side view of the scene v.19:09
racarr_the compositor side view.19:10
racarr_but I guess we sort of had something like that and it was wildly unpopular and took a lot of time to consolidate19:10
anpokI think that the view part looks like what you said above .. traverse and figure out the type of elements.. and I think the WM code will interact with actual windows/surfaces partially ignoring the graph  in many cases19:10
anpokah19:10
racarr_hmm..19:11
racarr_I have a whole other tree of thought19:12
racarr_as a potential fix for the cursor...but im not sure19:12
racarr_how promising it is19:12
racarr_that maybe, rather than the compositor observe and then ask for renderable lists on changes19:12
racarr_the compositor is given the renderable list.19:13
greybackdoes cursor really have to be part of scene? It might better belong in a layer on top all for itself19:13
AlbertAummm I seem to remember alan pragmatically suggesting just sending the renderables + cursor19:13
AlbertAa while ago19:13
racarr_sending the renderables + cursor?19:13
racarr_greyback: In this branch so far it is in a special layer in the surface stack19:13
AlbertAright to the compositor19:13
racarr_greyback: The point is its in the "RenderableList" that the compositor sees19:13
AlbertAwhich can then always put it on top, etc...19:14
racarr_Oh in the sense of sending them v. the surface stack asking for them19:14
greybackracarr_: sure I get that. But since you're struggling to incorporate cursor into the scene, perhaps it doesn't belong there at all19:14
AlbertAracarr_: basically cursor would not be in RenderableList19:15
AlbertAbut separate19:15
AlbertAit seemed to make sense at the time (a few months ago)19:15
racarr_but then how do you know19:15
racarr_when to ask for it?19:15
racarr_when its changed19:16
AlbertAat the same time as when the renderables are obtained19:16
racarr_but thats in response to callbacks from SurfaceObserver19:16
racarr_you could add like19:16
racarr_ms::Observer::cursor_moved()19:17
AlbertAyeah that would make sense to me19:17
racarr_but its starting to feel kind of clumsy at that point I think...why am I dealing with the cursor so seperately?19:17
AlbertAbecause it's not a surface? lol19:18
racarr_everything except mesa with hardware cursor, literally just treats it like any other renderable19:18
racarr_but19:18
racarr_the compositor doesnt consume surfaces19:18
racarr_it consumes19:18
racarr_renderables19:18
racarr_it just uses surfaces to know when19:18
racarr_renderables are ready to be consumed19:18
racarr_is the problem19:18
AlbertAtrue...I guess it depends on who is in charge19:18
AlbertAof the z-policy19:18
AlbertAI guess scene is19:18
AlbertAnot compositor19:18
AlbertAso yeah it would make sense for it to be in the renderablesList19:19
racarr_render list generalizes nicer to19:19
racarr_touch spot visualization as well19:19
racarr_than cursor_moved() which starts to become19:19
racarr_increasingly nebulous19:19
AlbertAyep yep19:20
racarr_maybe...ms::Observer is the wrong interface for the compositor19:20
AlbertAso is the issue that right now you would have to work the cursor into surfacestack?19:21
racarr_well, that part isn't so bad19:21
racarr_there I am specializing it, the surface stack has a cursor built in (or perhaps you add/remove_input_visualization(mg::Renderable))19:21
racarr_and they show up in generate_renderable_list19:21
racarr_but not input::for_each, etc19:21
racarr_the problem is just about the notifications really19:22
racarr_because, the compositor receives surface_added(ms::Surface) and uses that to install19:22
AlbertAoh I see...19:22
AlbertAlike if only the cursor moves19:22
racarr_a SurfaceObserver19:22
racarr_yeah19:22
racarr_and then. the SurfaceObserver interface cant be changed19:23
racarr_to RenderableObserver i.e. renderable_added(mg::Renderable), etc19:23
racarr_because Unity-Mir uses it19:23
racarr_and mir::scene::Surface is NOT a renderable19:23
racarr_it just generates one19:23
AlbertAso what about a generic notification in Scene::Observer19:24
AlbertAlike scene_changed...19:24
AlbertAso that it's just opaque enough19:25
racarr_AlbertA: That's kind of...what im close to giving up and trying...but thats going to make it really hard to implement19:25
racarr_partial updates right19:25
racarr_because...what could you do19:25
racarr_keep around a copy of the old render list19:25
racarr_then generate a new one19:25
racarr_and diff them?!19:25
racarr_it's kind of painful19:26
AlbertAyou mean partial updates by the compositor? or just a general observer19:26
racarr_by the compositor19:26
racarr_i.e. the cursor is moving around just paint19:27
racarr_tiny regions19:27
AlbertAummm but that's not our compositor architecture19:27
AlbertAwe do full frame updates19:27
AlbertAI mean I envision19:28
racarr_I guess I thought we were going to make it smarter and that was part of hte motivation19:28
AlbertAonce we have a tree19:28
racarr_behind19:28
racarr_ms::Observer19:28
racarr_vs the old19:28
racarr_std::function<void()> notify_change19:29
AlbertAevery change we optimize drawing on the current tree...19:29
AlbertAbut not damage based composition19:29
racarr_maybe...19:30
racarr_hmm so with the generic notification19:30
racarr_how do prevent double draw.19:30
racarr_i.e. surface_changed also generates scene_changed19:30
racarr_or is it not really a19:30
racarr_"generic" notification but rather like19:31
racarr_"scene_changed_in_a_way_the_other_callbacks_dont_represent"19:31
racarr_or19:31
AlbertAright19:31
racarr_does the19:31
racarr_compositor just use19:31
racarr_scene_changed19:31
racarr_and ignore the19:31
racarr_sort of damaged based ones19:31
racarr_SO MANY OPTIONS SO LOW BLOOD SUGAR19:31
AlbertAyeah...good points19:32
racarr_haha ok lunch...then I think I am going to come back and get something pumped out with the generic callback..19:35
AlbertAbut doesn't SurfaceObserver kinda have the same issue right now? I mean if an observer was listening to say orientation_set_to and transformation_set_to19:35
racarr_thanks AlbertA anpok :)19:35
racarr_AlbertA: ?19:35
racarr_oh19:35
racarr_yes19:35
AlbertAI mean right now they all get collapsed to one notification19:35
racarr_but they should be intelligent19:35
racarr_for example the cursor controller one is19:35
racarr_and doesnt19:35
racarr_collapse on19:35
racarr_surface attribc change, orientation, etc19:36
racarr_because those by themselves19:36
racarr_arent enough to19:36
racarr_change the actual position19:36
=== chihchun is now known as chihchun_afk
=== dandrader is now known as dandrader|afk
=== dandrader|afk is now known as dandrader
dandraderkgunn, alf__: FYI: I've started updating unity-system-compositor/devel-mir-next to latest lp:mir/devel myself as this is blocking me anyway22:47
kgunnack22:49
racarr_[       OK ] TestTouchspotVisualizations.touch_is_given_to_touchspot_visualizer (12 ms)23:59
racarr_whee23:59
racarr_I made...a dumb mistake in all of this23:59
RAOFHeh23:59
racarr_in that...once I figured out cursor is a renderable...I started thinking about the interface23:59
racarr_I would want for touchspots23:59
racarr_and realized that23:59
racarr_it was exactly the same as the interface that I thought of exposing23:59
racarr_as a temporary solution23:59
racarr_tounblock thomi23:59

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