/srv/irclogs.ubuntu.com/2013/07/15/#ubuntu-mir.txt

RAOFHm. I wonder how hard it would be to get a mir_surface_swap_buffers with a MSC/SBC tag.04:24
=== jono is now known as Guest74174
tvoss_good morning :)06:00
duflutvoss_: Morning06:01
tvoss_duflu, hey, happy Monday :)06:06
duflutvoss_: Let's hope so06:06
dholbachgood morning06:44
RAOFthomi: Can we fix unity-system-compositor in the mir-team PPA to not always be a revision behind Mir?06:47
RAOFthomi: It looks like the unity-system-compositor source upload happens at about the same time as the Mir upload, which means it's always building against a Mir that's about to become obsolete.06:47
tvoss_dholbach, good morning :)06:48
dholbachhi tvoss_06:48
=== didrocks1 is now known as didrocks
RAOFHm. I wonder if I can get hacky composite-bypass in XMir today...08:20
dufluRAOF: Today? Isn't it the evening for you?08:29
* duflu edges closer to insanity08:33
mlankhorstmorning08:40
alan_ggreyback: are you still unhappy with lp:~robertcarr/mir/implement-client-credentials? (It has changed a lot.)08:43
greybackalan_g: ah we're waiting for my approval too. racarr said he cannot do what I wanted immediately, so for now it will do. I'll approve08:44
greybackalan_g: you can top-level approve now. Thanks08:46
alan_ggreyback: I don't need your approval, but it is polite to ask in case there's an issue08:46
greybackalan_g: it is indeed. Thank you :)08:46
alan_ggreyback: yw08:46
RAOFduflu: It is, but it's almost done.08:51
tvoss_RAOF, just did an upgrade, all good so far. This is intel switched to the sna accel arch, right?08:55
duflutvoss_:  SNA was turned on since raring. We turned it off in Mir driver builds tho08:57
mlankhorstbut I fixed sna for intel, dno if raof enabled it yet or not08:58
mlankhorsts/intel/mir/08:58
tvoss_mlankhorst, I *think* so :)08:59
=== alan_g is now known as alan_g|physio
tvoss_mlankhorst, the updated radeon driver should fix two of the critical bugs on mir, right?09:00
mlankhorstprobably09:05
mlankhorsttheoretically it should create the surface parameters in the same way as mesa09:06
mlankhorstwhich should satisfy tiling constraints etc09:06
tvoss_ack09:06
duflualf_: Turning off MultiAcquisitionBackBufferStrategy in the synchronous case seems to solve all my problems. Now tell me why that's a bad idea... :)09:12
alf_duflu: because it's needed to support multiple buffer consumers while minimizing buffer "loss" (a window placed between multiple screens, taking snapshots etc)09:15
alf_duflu: however, that's for normal windows, fullscreen bypassed windows probably don't need this09:16
alf_duflu: hmm, perhaps they need the snapshot part, but I don't believe it's critical for XMir09:18
duflualf_: I'm tempted to push the logic of MultiAcquisitionBackBufferStrategy into the spin swapper. Just wondering why that's a bad idea...09:19
dufluOh. It's a bad idea because the reference to the buffer I have right now only exists when bypass is turned on09:20
duflu:P09:20
alf_duflu: how would that help you?09:21
duflualf_: I mean I have to hold the buffer explicitly for DRM from before page flip n till after page flip n+109:22
duflu... else tearing09:22
alf_duflu: can't you do that in the bypass compositing strategy?09:23
duflualf_: Yes, it could be held in the compositor or display buffer. Which one is a minor detail09:23
alf_duflu: we are already enforcing a related policy in the existing compositing strategy: we are holding the buffer until after the swapbuffers09:25
alf_duflu: (I mean the window buffers)09:26
duflualf_: That's not sufficient for bypass. You have to hold the buffer for _two_ page flips09:26
alf_duflu: sure, I just mean that enforcing this in the bypass compositing strategy is a reasonable option, since we are already doing something related in the existing strategy.09:29
duflualf_: There are many such things I need to clean up and find a nicer home for. I will review them all before proposing anything09:29
alf_duflu: ok09:29
duflualf_: But before then, I need to solve this deadlock09:30
duflu4 days with no progress is depressing09:30
duflualf_: BTW you would be my best friend if you merged the swapper classes into a single one. It's very overcomplicated spreading a well-known buffer rotation algorithm between 3+ classes09:34
alf_duflu: Which classes are you referring to?09:34
duflualf_: SwitchingBundle, BufferSwapper{Multi,Spin}, MultiAcquisitionBackBufferStrategy09:35
dufluThat's four classes for a relatively simple switchable rotation algorithm09:36
dufluI strongly suspect if it was simplified to one then I could get over this issue. But I'm not sure yet so won't jump the gun09:40
alf_duflu: The problem with merging into one class is that we will create an overcomplicated class. Each layer is simple/testable enough on its own and builds off the layer below: the BufferSwapperMulti/Spin classes are the core swapping algorithms, the SwitchingBundle allows switching between the swapping algorithms at runtime, the MultiAcquisitionBackBufferStratey allows multiple consumers while minimizing buffer loss. Putting everything in one09:43
duflualf_: I would almost do it myself to prove you wrong. :)09:44
dufluIt's a simple well-known algorithm used in the industry. There's no need to spread it over so many classes09:45
dufluUsing a single class would in fact simplify things a lot09:45
alf_duflu: it's not spreaded, the core is in BufferSwapperMulti/Spin classes, everything else is extra09:46
dufluOK, I'll drop the idea. I can't really prove my point unless I do it, and that would take too much effort right now09:47
alf_duflu: in any case, I would be happy to be proven wrong if the result is actually better :)09:48
duflualf_: My first preference is to propose small diffs. So I won't be rewriting it if I can help it09:48
duflualf_: I need to cook dinner. In the mean time, could you please look at MultiAcquisitionBackBufferStrategy and tell me if you think you can imagine a more elegant approach than the "partly_released" flag?10:03
dufluI think that might help10:03
alf_duflu: what's the problem with that (so it can guide my thoughts)?10:06
duflualf_: The flag is never set... because I always have at least one shared_ptr owning the TemporaryCompositorBuffer10:06
duflu... and because the flag is never set, compositor_release never happens.10:09
duflu... and because compositor_release never happens, the client runs out of buffers (hangs)10:10
=== alan_g|physio is now known as alan_g
=== hikiko is now known as hikiko|lunch
=== pete-woods1 is now known as pete-woods
=== alan_g is now known as alan_g|lunch
=== 17SAC504O is now known as tvoss
=== alan_g|lunch is now known as alan_g
alan_gtvoss: ping13:35
kgunnbregma: just checking in, do you need any help  ?13:46
bregmakgunn, armhf build MP is up and ready for review14:13
kgunnbregma: \o/ hell yeah!14:14
bregmaif didrocks could take a look that would be especially useful, I suppose14:14
didrocksbregma: I'm more than busy right now, but I'll try having a look today14:15
=== alan_g is now known as alan_g|tea
=== hikiko|lunch is now known as hikiko
hikikooups :p i forgot the lunch a few hours... :p14:26
=== alan_g|tea is now known as alan_g
alan_gbregma: do you know if the input tests are still hanging on the armhf build? (I tried a fix at -c847 - but as I can't reproduced the failure locally...)14:49
hikikoalf_, I saw your branch for android where you separate the display and the display buffer, do you think it's necessary to do the same in the nested mir?14:50
bregmaalan_g, I have never had the input tests hang on my N7, but I can kick off a test run to check (it'll take 2 hours or so)14:50
hikikobecause atm I use 1 class that inherits from both the display and the displaybuffer classes14:51
alan_gbregma: I have the impression it only happens on the build farm14:51
alan_gs/happens/happened/14:51
alf_hikiko: yes, you need to do it because the Display and DisplayBuffer interfaces will soon become incompatible14:52
hikiko:s14:52
hikikook14:52
bregmaalan_g, sounds likely, expecially if it depdends on underlying OS support14:52
alan_ghikiko: if you get your code landed first, then it won't be your problem. ;)14:53
hikikoI ll get your android changes as a reference then, thanx alf_14:53
hikikowhat do you mean?14:53
alan_ghikiko: if your code is on trunk when alf_  tries to change the interfaces, then he'll have to adapt your code, not you.14:54
hikikohehe :) I am not done yet I need a few more days, so I guess better to separate it now... alf_ has an mp already from what I've seen :)14:55
kgunnalan_g: thanks so much for looking at bregma's mp!14:55
alan_gkgunn: np14:57
kgunnhikiko: alf_ i'll leave it to you guys to coordinate interface changes & landings...but multumonitor takes prioirty, e.g. try not to slow it down15:01
hikikosure kgunn :)15:03
didrocksbregma: do you have a handy link?15:21
bregmadidrocks, https://code.launchpad.net/~bregma/mir/lp-1195265/+merge/17447815:22
racarrMorning15:26
didrocksbregma: if you: +ifeq ($(DEB_HOST_ARCH),powerpc)15:28
didrocksbregma: please reenable arch: any in debian/control15:28
greybackracarr: hey, when you've spun up, can we have a quick chat?15:46
racarrgreyback: Morning! Yeah15:50
greybackracarr: cool, let me know when's good for you15:51
racarrgreyback: Now is good want to start a hangout while I find my phone?15:51
greybackracarr: ok, am on it15:51
kgunndidrocks: what needs to happen next? shouldn't we be able to enter universe (once bregma's mp is merged)16:13
didrockskgunn: I think we told with olli_ that we're going to use the ppa for some days16:15
didrocksand then decide of Thursday16:15
didrocksI would hope bregma is just going to fix the small query I have and then approve so that I can try a first daily to the next ppa tomorrow16:15
kgunndidrocks: thanks, sounds like a plan....good to be one step closer :)16:16
didrockskgunn: same here :)16:16
greybackracarr: oh another thing I need: a good way to know that a surface was destroyed. I tried subclassing SurfaceBuilder - but that gives me a mir::frontend::Surface, which is private member of mir::shell::Surface - so I cannot seek for it in a list of surfaces16:22
racarrgreyback: ok. it can probably just go on the_session_listener16:26
greybackracarr: sounds ok to me16:26
mterrykdub, poke about ~mterry/mir/session-for-surface branch, if you wanted to chat about where the need is coming from16:31
kdubmterry, sure16:31
mterrykdub, so my goal is to allow u-s-c to have the greeter stay on top of other sessions (and be transparent at will to expose the next session)16:32
mterrykdub, the plan was for lightdm to name the greeter session in a way that u-s-c can know16:33
mterrykdub, then u-s-c would override the surface builder, and any surface that belongs to the greeter session could be marked with a different depth16:33
mterrykdub, I'm open to other ways, this was just the way robert ancell recommended16:33
kdubmterry, i guess I just see that our surface stack has a weak ability to control what's in it16:34
kduband would guess that expanding that SurfaceStack functionality would be more scalable in the long term16:34
racarrmterry: I am working on a solution for that for unity which is better too16:36
racarrwell16:36
racarrmaybe it's slightly different16:36
racarrI hope to have a good answer for matching the things up soon though  without the session16:38
racarrunity 8 also needs surface->session eventually though16:38
racarri.e. you click to raise a surface which application becomes active16:38
racarrerr16:38
racarrsurface->session16:38
kdubracarr, right... a restructuring of msh:: is needed16:39
racarrkdub: Maybe. I was just thinking simple. The surface needs a reference to it's session ;) the msh::Surface at least16:41
kdubwhere does the shell want to access a surface, and then get a session? shouldn't it be accessing the surfaces through the session?16:43
kdubrather, what's the case that the shell has a surface without knowing the session?16:43
racarrhad a mild trip over16:46
racarrmodem power cord16:46
racarrXD16:46
racarrum, so like click to focus right16:46
racarryouve clicked somewhere, the shell got an event16:46
mterrykdub, I seem to have lost connection  :-/16:46
mterrynot sure what you saw from me, but I last sent " or at least, one way he thought it would be doable"16:46
racarrit wants to focus the surface underneath16:46
racarrbut it needs to know which application is now focused to update the launcher16:47
kdubracarr, the shell gets an event from where in the system?16:47
racarrsay mi::EventFilter::handle_event16:48
racarrI mean any number of cases16:48
racarrlets go with that one XD16:49
racarror maybe it's not exactly there,16:49
racarrmaybe there is some new cllback lter like16:49
racarrmi::EventFilter::handle_event_before_dispatching_to(Event, Surface)16:49
racarrwhich would be ideal for this kind of thing (now you ust say, raise_surface ,focus surface, whatever)16:50
racarrbut it doesn't make sense to iterate through all the sessions here16:50
racarrbut you still need to focus the application someho16:50
kdubwhy wouldn't we have mi::EventFilter::handle_event_before_dispatching_to(Event, Session)16:50
didrocksbregma: do you mind sending me a "ack" by email once your branch is merged please? that would win me some time :)16:53
racarrkdub: How would you know16:54
racarrwhat session16:54
bregmadidrocks, sure16:54
racarris targeted16:54
racarrsessions don't have16:54
racarrgeometry16:54
didrocksthanks! :)16:54
racarror anything16:54
racarror necessarily a strict depth ordering16:54
racarrright I can stack a indow inbetween two other windows16:54
racarrof the gimp16:54
racarrso to pick the event16:54
racarryou hve to iterate by surfaces16:54
racarrand then find the session16:55
racarrit seems clumsy to find the surface and then search16:55
racarrfor the session16:55
kdubracarr, i don't have the problem-context quite so strongly, but my first vague sense of what's going on is we're trying to work around ms::SurfaceStack's limitations16:56
racarrthere are a bunch of cases16:56
racarrI think16:56
racarrthat is more what mterry's problem is16:57
racarrbut I am saying the surface->session assosciation16:57
racarris required anyway16:57
kduba bit tricky to talk about, but17:03
kdubif whatever needs that association would talk in terms of sessions, then it wouldn't17:03
kdubracarr, i guess I'm just a bit unsure what our data structure surrounding our 'group of surfaces' reflects17:05
kdubor rather, what its evolved into17:06
alan_gracarr: kdub: I'm about to disappear (EOD), but there is a difference between being able to find the "owning" session for a surface and the surface knowing its owner. Is that where you differ?17:07
=== alan_g is now known as alan_g|EOD
racarrit could be by assosciation17:14
racarrbut I don't see why there is a problem with the surace having a reference to the session really17:15
racarrit's only a 'circular dependency' in the same way17:15
racarra circularly linked list is17:15
racarrXD17:15
kdubracarr, i might not have an objection either, its just kinda dawning on me that some of our data structures could be better17:17
kdubracarr, like, take msh::ApplicationSession17:19
kdubmsh::ApplicationSession : public msh::Session17:19
racarrMm17:21
racarrthat doesn't mean much besides17:21
racarrmsh::Session : public msh::SessionInterface17:21
kdubwell, the full chain is msh::ApplicationSession : public msh::Session : public mf::Session17:21
kdubso we kinda tie msh::ApplicationSession to frontend concepts17:22
kdubwhen maybe what we want is a session that is more independent of ipc concepts?17:22
racarrmaybe17:22
racarrim actually struggling to figure out17:22
racarrwhy msh::ApplicationSession exists17:22
kdublike, a grouping of surfaces by input association, as well as a grouping of surfaces by ipc association17:22
racarrhmm17:23
racarrsurfaces aren't grouped by input necessarily though17:23
racarrI mean I think that's what 'Session' is17:23
racarrit's the IPC grouping17:23
racarrnot in particular the IPC grouping, that's just a detail17:23
racarrbut it's the 'client' grouping17:23
kdubwell, i think that's where the problem might be though?17:24
kdublike, for graphics, obviously, we associate them so the compositor can make sense of them17:24
kdubin ms::SurfaceStack17:24
kduband we group the surfaces by IPC connection in msh::Session17:24
kdubi'm kinda picking up on another association we want them to have17:25
kduband that we're splicing that association into the already existing associations?17:25
racarrI'm not sure.17:26
kdubyeah, i guess i'm not sure either17:27
racarrthere is definitely17:27
racarrsomething different than IPC connection17:27
racarrmore akin, to client, or owner that is useful17:27
racarrfor example, how does the shell recognize it's own surfaces to manipulate them17:27
racarrhow do you tell any two surfaces apart :p17:27
kdubright17:28
kdublike, msh::Session should keep its IPC based roots, but perhaps the shell wants to keep its own groupings of surfaces17:28
kduband the default grouping is simply the ipc grouping17:28
racarrwhat kind of other groupings?17:29
kdublike for instance :) when we were talking about sending events to surfaces and needing to know the ipc session associated with that17:30
racarrIsnt that the IPC grouping?17:30
kdubi guess i'm unsure17:32
racarrI think it is...there probably are other groupings though17:33
racarrlike it's not clear where we would model workspaces atm17:33
racarrstages as well17:33
kdubright17:34
kdubi mean, i think that once we decouple a surface from the IPC portions, making the shell will be much more pleasant experience :)17:35
kdubat least more pleasant than overriding our factories so surface associations can be injected i guess17:36
racarrMm17:37
racarrI guess for this particular case, probably the DepthId should be in msh::SurfaceCreationParameters17:38
racarrso you don't have to overrie the factory17:38
racarrthen it's super reasonable to extend the interface17:38
racarrmsh::PlacementStrategy::Place(Session, SurfaceParameters)17:39
kdubah, ok17:39
racarri.e. the shell places a surfce for a session17:39
racarrbut I think it will come up again later aha17:39
kdubit will, its our central data structure, really17:39
tvossracarr, why would the depthid need to be in the surfacecreationparameters?18:21
racarrtvoss: Wellllllllllll18:38
racarrit's about where18:38
racarrit's assigned and how18:38
racarrthe shell can match up which surface gets what18:38
racarrpotentially through associating with the session18:38
tvossracarr, I would expect that it is not exposed to anyone creating a surface, as a lot of information is needed to determine the depth18:39
racarrwell it would just be part of the surface creation parameters on the server, so its not expoed over IPC18:39
racarrbut the_shell_placement_strategy18:39
racarrhas the opportunity to add DepthId18:40
tvossracarr, what is a depthid?18:40
racarrtvoss: Actually there isn't a lot of information, DepthId needs a better name ;)18:40
racarrhaha18:40
racarrsame line of thought18:40
racarrAll it means is if there are two u rfaces with DepthID X and Y18:40
racarrand X>Y then X is always on top of Y18:40
racarrwhen X=Y they stack in the order they are put in and can be reordered18:40
tvossracarr, why isn't that the absolute depth in z?18:41
racarrtvoss: Because it's easier this way18:41
racarrthe surface gets18:41
racarrDepthId{1}18:41
tvossracarr, not sure why? z establishes a total order18:41
racarrthe shell surface*18:41
racarrthe application surfaces all get DepthId{0}18:41
racarrthen you can talk about raising an application to the top18:41
racarror reordering them or whatever18:41
racarrwithout18:41
racarrhaving to worry about the fact that the shell is on top18:41
tvosshmmm, sounds like a slice to me18:43
racarrIt's more of a primitive form of18:43
racarrnested surface stacks or something18:44
racarressentially each DepthId is it's own 'stack'18:44
tvossit's not really nested, it's more like banded18:44
tvossa part of a depth-spectrum18:45
racarr"primtiive form" :p18:45
tvossor how about a bucket? we are essentially using it as a rough indicator to discretize the continuous z axis, right?18:46
racarrI don't entirely follow ;)18:47
racarrI don't know. I don't like thinking in terms of 'Z axis'18:47
racarrbecause it doesn't behave like the 'X and Y axis'18:48
racarrbut, yes, it's to break that up18:49
tvosswell, what you basically say is: you have a bucket of surfaces that belong to the shell18:49
racarrbut also to provide the shell an API to control such.18:49
tvosssure @control18:50
* kdub just likes normal z ordering, with the shell having fine grained control over how all the surfaces mix in the SurfaceStack18:51
tvosskdub, +1, what use case does the banding solve racarr?18:52
racarrwhat use case does Z ordering solve?18:52
racarrI would say it's the more general API that leaves a lot more room for 'user error'18:53
racarrso it needs a motivation18:53
racarrrather than the other way around18:53
tvossracarr, but depth is the natural representation and the natural order that we are after here, isn't it?18:53
racarrMaybe.18:54
racarrI don't know.18:55
racarrbut then what do we do, the shell assigns each surface a depth ID, or18:55
tvossracarr, do you have any case in mind that is difficult to solve without the notion of buckets?18:55
racarrjust inr esponse to everything that happens18:55
kdubi think once we start evolving SurfaceStack18:55
racarrreorders all the surfaces relative18:55
kdubwe'll see that the depthid goes away18:55
racarrI think that's18:55
racarrdifficult...18:55
racarrtvoss: Without the notion of buckets? What do you mean?18:56
racarr*shrug* DepthID should probably go away, but I would hope in favor of real hierarchal layers18:56
tvosswhat use-case would break with depth-ordering only?18:56
racarrerr, well I think both can support the use cases we need.18:57
racarrbut I think the code that results in the shell18:57
racarrfrom having the shell mnually specify/manage Z order is painful18:57
racarrI mean what does it do? everytime a surface is created or destroyed walks the surface stack and reorders things relatively according to some state and rules (i.e. shell surface goes on top of all the application surfaces, which go on top of the desktop layer, oh but the shell surface goes under the OSK layer...)18:59
racarrI think it's more declarative with the DepthId's, or some sort of layer concept19:00
racarreven on the desktop, with weird WM stuff like always on top, always on bottom, etc19:00
racarryou can represent those as sort of 'statically stacked' layers19:01
racarrthat applications move between19:01
racarr*shrug*19:01
tvossracarr, need to think about it19:01
racarrHaha I feel like I am arguing against a proposal but I am not sure what the proposal is or why I am arguing19:01
racarrtvoss: Would appreciate thought on it, yes19:02
racarrrobert_ancell's thought is that the shell should provide like a sort function to the SurfaceStack implementation19:02
racarrand just control Z order that way19:03
racarrbut I guess my intutition is that the implementation of this function becomes messy.19:03
racarrHand wavy, sorry :)19:04
racarrI mean, I guess I think19:05
olli_:)19:05
racarrrender(SurfaceStack) should really be a function of State(SurfaceStack)19:05
* kdub smells tightly coupled notions19:05
racarrwhereas if you have some surface sorting object19:05
racarrits going to need state from all over the system19:05
tvossracarr, well, if you compose the function implementation in a sane way, it should be a good primary interface to provide aa sorting interface19:05
racarrI think that sane implementation19:06
racarrends up being a stack19:06
racarrof stacks19:06
tvossin that I do agree, you gradually refine your sorting criterion until you end with "pure" depth19:06
racarrand the shell creates this object19:07
racarrand sends messages to it like filter_object->set_depth_for_shell_surface(above_application_surfaces)19:07
racarrso it seems like19:07
racarrnice unctionality for the surface stack to provide19:07
racarrdirectly19:07
racarrerr s/filter/sort19:07
tvossbut it would in turn require the surface stack to know a lot about the notion of shell vs. app surfaces19:08
racarrwell19:09
racarrI dunno ;) I don't think it's a lot to know19:09
racarrin the phone case, it's enough for some object the shell implements higher up19:09
tvoss@phone case: but that's a special case of the general problem, isn't it?19:09
racarrto assign DepthId{0} to app surfaces and DepthId{1} to shell surfaces19:09
racarryeah but I think its the same on the desktop it's just19:09
racarrmore difficult to enumerate, but I mean its like19:10
racarrthere is a Desktop Layer, an Always on Bottom Application La yer, and Application Layer, etc.19:10
tvossI don't think we should engrave that notion into the SurfaceStack19:10
racarrso instead you think there should be some shell component19:12
racarrthat listens like "new surface created"19:12
racarrand searches the surface stack19:12
racarrfor the right spot to put it in?19:12
racarrOr this sort function approach19:12
racarror something else?19:13
tvossracarr, I would think that it might make sense to collect the operations that the stack needs to support fast19:16
tvossracarr, an interesting thought: a surface role could be interpreted as a depth id, too19:16
racarrthat19:17
racarris kind of a hope :)19:17
racarrbut I don't think we ever found an exact set of roles that matches up19:17
racarrto stacking19:17
racarrMPT was trying19:17
racarrremember the big picture witht he layer and the drawing of the eye19:17
tvosshmmm, I think our recent addition of an input method role could help there19:17
tvossyup19:17
racarrI think one of the counterexamples was or example some input methods are system model and some input method are window/application/entry field modal or whatever19:18
racarrI think19:18
racarryou can define the stacking like19:18
racarra sorting of roles first19:19
racarri.e. application role is a layer under shell role is a layer under input method etc19:19
tvosswell, I would start over with sorting by app instances, where I consider the shell an app instance, too19:19
racarrif you also allow each err19:19
racarr"band" or whatever19:19
racarrto have19:19
racarra modality layer19:19
racarron top of it19:19
tvosshmmm, let's reverse the question: given a surface stack layer, how can we test if the stacking is correct?19:20
racarrwhat do you mean layer here?19:21
tvossremov ethe layer :)19:22
tvossjust surface stack19:22
racarrok19:22
racarrwell. I dunno, I mean,19:22
racarreach form factor shell19:22
racarrhas some set of invariants19:22
racarri.e. dash is above all applications19:22
racarrmostly recently used application is above the one before it19:22
racarretc19:22
tvosshmmm, that means that the first order is always "most interesting" in decreasing order, right?19:24
tvossunder the assumption that the shell is always most interesting to the user as the primary system interface, and most recently used is equivalent to most interesting application19:24
racarryeah19:25
racarrI mean it's a statement about19:25
racarrwho gets visibility19:25
racarrwhen screen space is contested19:25
racarrmore than a "Z order"19:25
tvossokay, so assume that we would reorder the list of apps (again, shell included) as opposed to the surfaces, then every surface would receive a base "layer" according to the apps's index in the list, right?19:26
tvossper stack it's a per role ordering then19:27
tvossbut again a most interesting order, too19:28
tvossso yeah, I do agree that the absolute z order that is finally calculated is only a result of all of these steps19:28
racarrI'm not sure it's ok to19:29
racarrassume apps, stck together19:29
tvosswith the constraint of minimally intrusive z position changes19:29
racarri.e. I would expect to be able to stack a window from another app19:29
racarrbetween my 3 gimp windows19:29
tvosss/stack/bucket/band19:29
tvossfor that,we need the constraint of minimal z order changes19:29
tvossor better z coordinate changes19:29
tvossyou only really change z in the end if you detect a conflict between the semantics and the actual position19:30
racarrright19:30
tvossthat's why I think that defining the verification algorithm should solve most of the problem already19:30
racarrI dunno19:33
racarrthat doesn't clarify it for me19:33
racarrI mean, one option from that perspective19:33
racarris to provide an API the shell implements19:33
racarrbool obscures(Surface1, Surface2)19:33
racarrwhich is just the verification algorithm19:33
racarrand you call it19:33
racarrN^2 times19:33
racarrbut it's pretty clear that's not correct19:33
tvossit might be correct but inefficient19:33
racarrsure19:34
racarrby correct I mean, the correct code to put in a header file that gives us the best probability of a bug free performant shipping shell19:34
tvosshah, I think we want a stable sort19:34
tvossas the stack is always partially sorted19:35
racarrI think the thing with the sort plugin approach19:35
tvossby definition19:35
racarris...well..19:36
racarrthe first part is my opinion19:36
racarrthat I don't think you want to recompute the sort each time you query the order19:36
racarrand then given that, you go on to cache is in this object, etc19:36
racarrbut now to keep your cache valid19:36
racarrthis object has to listen to signals from the rest of the system19:36
racarri.e. surface destroyed, surface created, etc19:36
tvossyou only want to resort if something changes ...19:36
racarrso it's an object that gets messages like19:36
racarrsurface destroyed, surface created19:36
racarrand maintains the orders the surfaces stack in19:37
tvossyup19:37
racarrso why isn't it ust the19:37
racarrsurface stack19:37
racarrbecause it has the same interface19:37
tvossokay, bed time :)19:37
tvossI'll keep it spinning19:38
racarrhaha no fair19:38
racarrok sleep well!19:38
racarrsee you19:38
racarrlunch for me19:38
thomimorning19:59
racarrMorning!20:11
olli_kgunn, are Chris' bug part of that list20:31
kgunnolli_: yes20:31
kgunnolli_: well...may i clarify what you mean ?20:32
kgunnolli_: e.g. radeon pixelated rendering...yes20:32
kgunnit is part of the list20:32
olli_the ones he is tagging20:32
olli_iow are there bugs yet from him?20:32
olli_robert_ancell, RAOF, kgunn if someone wanted to get a better understanding of the xmir-x-drivers, who should be on the call?20:51
olli_RAOF?20:51
olli_anybody else?20:51
robert_ancellolli_, RAOF is the expert, he might know if the other X devs in Canonical might know too20:53
kgunnolli_: i think RAOF primarily...shared the same with hlh20:53
olli_robert_ancell, thx20:54
kgunnolli_: robert_ancell maybe mlankhorst ?20:54
olli_kgunn, like it when you are ahead of me ;)20:54
robert_ancellkgunn, yes, I was thinking so too, but I don't know how much he knows20:54
kgunnolli_: wrt ChrisG's "bugs"...so far, there has been a bug present, i haven't heard of any complaints from him that didn't already have a bug...but i will circle back for an inquisition20:55
olli_kgunn, are the existing ones tagged20:55
* olli_ wants to look at a list and see it turn "fix released" 20:55
olli_robert_ancell, I suggested a meeting to include RAOF20:55
olli_in a compatible tz20:56
olli_well, at a NZ tz compatible time20:56
olli_robert_ancell, kgunn, jfyi... our window in the cert lab closes on ~Thu this week20:56
kgunnolli_: wrt bugs that are actually being fixed....yes, there might be some cleanup to be done20:56
robert_ancellolli_, ack20:56
olli_and /me is very eager to get results and I think you should be too :)20:56
olli_kgunn, I think any bug that hits Chris should be tagged20:57
olli_not sure how to parse your last statement20:57
olli_:)20:57
kgunnolli_: i am sure its me :)...when you say "tagged" how ? what specifically do you mean ?20:58
olli_kgunn, in LP you can add an arbitrary string to a bug20:58
olli_i.e. what didrocks did for distro release20:58
olli_I think we should have a similar tag for bugs that bother chris20:58
olli_so we can make sure (via a simple query on that tag) that he is not blocked20:59
olli_otherwise I see a team sprint in LEX for everybody on the horizon - as we all want these numbers ;)20:59
olli_don't we?20:59
* robotfuel waves at olli_21:01
olli_ah21:01
kgunnolli_: got it21:01
olli_ /nick robotfuel reboot_robot21:01
olli_scnr21:01
robotfuelolli_: kgunn here is the first bug, https://bugs.launchpad.net/xmir/+bug/1201565 I used needed-for-lab because launchpad didn't accept it with underscores.21:17
ubot5Ubuntu bug 1201565 in XMir "unity doesn't run in xmir session " [Undecided,New]21:17
kgunnrobotfuel: would it be possible to run the same machine / config in bug#1201565 just with the modification of commented out #type=unity in the /etc/lightdm/lightdm.conf.d/10-unity-system-compositor.conf file21:33
robotfuelkgunn: yes21:33
kgunnrobotfuel: thanks....assuming this might be the kind of thing the team would do when they get access21:34
robert_ancellRAOF, Can you look at the comment I made on the X log in https://bugs.launchpad.net/xmir/+bug/1201565 and see if that indicates a problem?21:35
ubot5Ubuntu bug 1201565 in XMir "unity doesn't run in xmir session " [Undecided,Incomplete]21:35
robert_ancellactually, I'll just assign it to you - it's got to be either X or Unity failing21:36
robert_ancellracarr, did you see the build failure in https://code.launchpad.net/~robertcarr/mir/notify-surface-destruction/+merge/174834? Missing a file?21:50
racarrrobert_ancell: ;) man I even remember hte exact details of creating that file and not doing M-x vc-register...21:51
racarrthanks haha21:51
racarrpushed a rev21:53
robert_ancellracarr, also, https://code.launchpad.net/~robertcarr/mir/simplify-depth-assignment/+merge/174872 has a merge conflict21:55
racarrrobert_ancell: Just pushed the merge :)21:56
kdubRAOF, if we update the mir_client_library.h, that breaks xmir, right?22:02
kdubracarr, would you object to moving the client side event handler thread to the connection?22:13
kdubracarr, nevermind :)22:20
olli_hey guys22:53
olli_have you heard of Chromiums project Ozone?22:53
olli_https://plus.google.com/100132233764003563318/posts22:53
olli_puts Mir right next to Wayland as "alternative window system"22:54
olli_good job everybody :)22:54
olli_kgunn, ^23:06
kdubolli_, yay23:06
RAOFkdub: If you touch things in mir_client_library.h that xmir uses, yes.23:38
kdubRAOF, so it would probably be better if all the  client-api-facing changes for multimonitor configuration land at once...23:42
kdubjust to minimize the amount of disruption23:43
RAOFkdub: As long as you're only *adding* ABI it's fine.23:43
kdubright... ~kdub/mir/display-grouping is a change, but after that, it should be just adding ABI23:44
kdubspecifically, a change to the display info direct-query function23:44
kdubrobert_ancell, that MP changes the protobuf protocol too, I guess that verison number should be bumped too23:51
robert_ancellkdub, just commenting on that23:51
kdubi guess i'll bump the soversion23:53
robert_ancellkdub, those protobuf changes mean an old libmirclient would break against the new libmirserver23:54
kdubyes23:54
RAOFDo we have any way of checking that?23:54
RAOFI mean, at the moment it's still (just!) reasonable to abort with an error message.23:55
RAOFOn a similar note, do we have any infrastructure for extensions?23:56
robert_ancellRAOF, checking protobuf changes?23:56
robert_ancellRAOF, no to extensions23:57
robert_ancell(in that we have no infrastructure)23:57
RAOFrobert_ancell: Either checking protobuf changes or checking the protocol version the client expects.23:57
RAOFHrmph. Unity-system-compositor will want a (temporary) API for setting the position of the hw cursor.23:58
robert_ancellRAOF, if we use protocol buffers correctly we shouldn't need that, though it would be nice so we can log it. We don't check backwards compatibility because we only have the latest version of the lib on trunk23:58
robert_ancellRAOF, racarr just landed a patch for cursor support in u-s-c23:59

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