[01:55] <robert_ancell> RAOF, are you adding that .symbols file to libmirclient? If too busy, I can do it
[01:55] <RAOF> robert_ancell: Yeah, I am in the background.
[01:56] <RAOF> Turns out that it's a little bit more complicated, because we accidentally export about 100KB worth of C++ symbols too.
[01:56] <robert_ancell> RAOF, time for symbol filter..
[01:57] <RAOF> Time for -fvisibility=hidden.
[01:57] <RAOF> It should also significantly reduce our startup time.
[01:57] <robert_ancell> nice
[01:58] <robert_ancell> RAOF, in the background?
[01:58] <RAOF> It builds while I do other things :)
[01:59] <robert_ancell> k
[02:01] <duflu> RAOF: That's the fun part about C++ symbols. Often their name lengths far exceed their code size :)
[03:02] <duflu> Is 60 degrees at idle good? :P
[03:19] <robert_ancell> RAOF, those SNA changes you made - are they on https://github.com/RAOF/xserver?
[03:20] <RAOF> robert_ancell: No, they're on lp:~raof/mir/xf86-video-intel-vladmir
[03:20] <robert_ancell> RAOF, aha
[03:20] <RAOF> Because Intel is too cool to use an acceleration architecture that lives in the xserver tree :)
[03:22] <robert_ancell> RAOF, that branch doesn't seem to exist
[03:22] <robert_ancell> is it private?
[03:22] <RAOF> Shouldn't be?
[03:22] <RAOF> Ah, sorry.
[03:22] <robert_ancell> oh ~mir-team?
[03:22] <RAOF> lp:~mir-team/mir/xf86-video-intel-vladmir
[03:23] <robert_ancell> I just read our own documentation :)
[03:23] <RAOF> :P
[03:25] <robert_ancell> RAOF, btw, is there a reason why it isn't lp:~mir-team/xserver-xorg-video-intel/vladmir?
[03:25] <RAOF> Not really. Does that project exist, though?+
[03:26] <robert_ancell> RAOF, yes
[03:26] <robert_ancell> and lp:~mir-team/nouveau/vladmir
[03:26] <RAOF> Then the answer is probably “because at one point that branch was private”
[03:26] <robert_ancell> I thought so
[03:26] <robert_ancell> and lp:~mir-team/xserver-xorg-driver-ati/vladmir
[03:27] <robert_ancell> for bonus inconsistency in source package naming
[03:27] <robert_ancell> upstream naming rather
[03:27] <RAOF> Well, none of those projects have the actual upstream name :)
[03:27] <RAOF> Upstream they're xf86-video-{ati,intel,nouveau}
[03:27] <robert_ancell> RAOF, yeah, sad eh?
[03:28] <RAOF> Would you prefer it if the canonical repositories were under the various projects?
[03:28] <robert_ancell> RAOF, well, look. You registered nouveau :)
[03:28] <RAOF> I can't remember why :)
[03:29] <robert_ancell> RAOF, it confuses me slightly, but it doesn't really matter
[03:33] <duflu> Am I imagining things, but did saucy's power usage drop significantly when it moved to 3.10?
[03:33] <duflu> -but +or
[03:35] <duflu> Oh, that actually wasn't recent
[05:29] <tvoss> RAOF, ping
[05:29] <RAOF> tvoss: Pong
[05:53]  * duflu does the no-more-deadlocks dance
[06:18]  * RAOF goes to get milk
[07:14] <hikiko> hi :)
[07:15] <hikiko> question: I wonder how could I check in which platform mir runs (to see for example which type of buffers I will need) without using ifdef
[07:16] <duflu> hikiko: Not sure. But I have been wondering much the same. I would say it should be a function of the platform to produce (factory) its own buffers. This would eventually be owned by a "graphics driver" which would take over platform roles
[07:18] <dholbach> good morning
[07:18] <duflu> Morning dholbach
[07:19] <hikiko> duflu, you mean a factory in each native platform isn't it? and the nested one will just use it?
[07:20] <hikiko> I mean: buffer interface that is implemented by android and gbm separately
[07:20] <duflu> hikiko: I think I mean the "platform" should be a portable interface to operate on the interfaces to platform-specific objects, like buffers
[07:20] <duflu> Yes
[07:20] <duflu> But that's just what I think. Not necessarily how it works now
[07:21] <hikiko> :) it doesn't sound a bad idea :)
[07:21] <hikiko> I'll try it!
[07:21] <RAOF> hikiko: There's also mir_surface_get_platform_type
[07:21] <hikiko> yes
[07:21] <hikiko> but to use this
[07:22] <hikiko> I need to have a client platform isn't it?
[07:22] <alf_> hikiko: I guess the first question is why do you need to explicitly know on which platform you on.
[07:22] <dholbach> hi duflu
[07:22] <hikiko> +i saw at tests/unit-tests/client/test_client_platform.cpp that we use ifdef to call it
[07:23] <hikiko> alf_, yes I do because I will use native buffers
[07:23] <duflu> alf_: That's my point. There should be a (portable) interface always available to give you what you want. If not already at lower-level classes then at least implemented per platform
[07:24] <alf_> hikiko: where/how are you going to use native buffers?
[07:24] <alf_> hikiko: (I am trying to understand your scenario better)
[07:26] <hikiko> hmm... I needed gbm in my last branch because nested mir was a different platform
[07:26] <hikiko> but I see what you mean
[07:26] <hikiko> maybe this time (runtime) I won't need to do anything
[07:27] <hikiko> since I will create both a native platform (- initializes gbm, drm creates devices etc) and the nested one
[07:28] <hikiko> ok, I ll check if I need it first :>
[07:30] <hikiko> (thanks all)
[07:43] <RAOF> New laptop should be shipping soon... shipping sooooooon!
[07:43] <tvoss> RAOF, \o/
[07:43] <mlankhorst> or will it?! dun dun duun
[07:44] <tvoss> RAOF, disabling semaphores seems to work
[07:44] <RAOF> Yay for year-old i915 bugs!
[07:45] <tvoss> RAOF, but it means a degradation in terms of throughput and morre cpu load
[08:11] <RAOF> Man, why don't we just default to clang everywhere?
[08:13] <mlankhorst> because clang doesn't compile a linux kernel
[08:40] <alf_> alan_g: The scenegraph is probably the proper way to handle a lot surface properties. However, unless we make it a priority, we will just continue to scatter more surface bits and pieces around the code base... Not sure how it ties with our current xmir and mobile priorities.
[08:41] <alan_g> alf_: I was just discussing that with tvoss
[08:41] <tvoss> alf_, alan_g seems like we should have a discussion about that topic with the team
[08:44] <alan_g> alf_: tvoss: quick hangout to discuss how we schedule this discussion?
[08:44] <tvoss> alan_g, on another call right now
[08:45] <alan_g> np later today?
[08:46] <tvoss> alan_g, sure
[09:00] <duflu> I would have imagined only the shell would have a scene graph. I don't understand why you would have one accessible inside libmirserver... ?
[09:01] <RAOF> We need something approximating a scenegraph to actually draw, though.
[09:02] <duflu> Yes, but what gets drawn in what order is all up to the shell. I guess the server code hasn't quite reached that level of clarity yet
[09:02] <duflu> ... so some of it is scattered around the server
[09:02] <tvoss> duflu, largely due to us not having a scenegraph in place
[09:03] <duflu> tvoss: Yes, I guess. Just saying it should eventually live in the shell only. Not Mir
[09:03] <tvoss> duflu, but Mir at least needs to know how to talk to it, with the shell being able to inject the actual implementation
[09:04] <duflu> tvoss: Most of it... no. If we aspire to the shell "being" the compositor, then any properties that affect composition would be stored in the shell's scene graph
[09:04] <alan_g> Mir needs to be able to query the scenegraph without trips into javascript
[09:04] <duflu> What? Javascript? Where?
[09:05] <tvoss> duflu, the shell
[09:05] <tvoss> duflu, is written in QML
[09:05] <duflu> Oh. Right. That's sillyness on behalf of the shell
[09:05] <duflu> Hmm
[09:05] <tvoss> duflu, at a future point we want the shell to do the actual compositing
[09:06] <tvoss> duflu, however, right now, that's not the case and we need to make that we do not scatter functionality across the system that would better fit into a consistent scenegraph model
[09:06] <tvoss> if that moves to the shell over time, awesome
[09:08] <tvoss> duflu, not entirely sure why you think that doing the shell is in qml, though
[09:09] <duflu> tvoss: At least part of the Unity8 shell is C++ already though. We don't have to wait for the distant future to put shell things in the shell
[09:10] <tvoss> duflu, fair, but I'm not confident that we have the resources available right now to implement the actual compositing in the unity-mir glue layer
[09:10] <tvoss> duflu, from my pov, having a concept of a scenegraph hammered down helps us in the short and in the long term
[09:11] <duflu> tvoss: Is it just like shell-specific surface properties we need storage for?
[09:12] <tvoss> duflu, nope, it's really a bigger problem we need to solve as the current (very naive) surface stack is not capable of holding the information and providing the operations we really want
[09:12] <duflu> tvoss: That's my concern. The assumption that the scene graph is a stack is a very bad assumption. That's an implementation detail that is shell-specific
[09:13] <duflu> I fear hard-coding more inflexible assumptions into the server
[09:13] <tvoss> duflu, a stack is only the final view assembled from the scenegraph, in that I do agree
[09:13] <alan_g> duflu: that's the problem we're trying to solve
[09:14] <duflu> tvoss, alan_g: Alright. I guess part of the generalization will involve rejigging the "stack" as used in input too
[09:15] <tvoss> duflu, yup
[09:15] <duflu> Since it's not always a stack
[09:15] <alan_g> ack
[09:15] <duflu> Unfortunately a few of us did point this out before that code landed
[09:15] <duflu> But at least we have something working I guess
[09:15] <tvoss> duflu, and I think there were compelling reasons to land it nevertheless, iirc for bootstrapping purposes
[09:16] <duflu> Yep
[09:17] <duflu> I think I just talked myself into having a general scene graph interface in the server
[09:17] <duflu> Good idea
[09:17] <alan_g> We already discussed that we'd be here, doing this, in Oakland - it isn't a surprise
[09:22] <RAOF> Ok. Let's see if swapbuffers+bypass works...
[09:22] <duflu> RAOF: I hope you're not talking about my branch. Still working on it
[09:23] <duflu> Though I did get over the deadlock today... and now find a theoretical reason why it should not work as well as it is...
[09:24] <RAOF> No, I'm talking about the XMir side - having SwapBuffers actually wait to swap the buffers, and handing out the Mir buffer to fullscreen GLX clients.
[09:25] <duflu> RAOF: Oh, so XMir is now a regular client?
[09:26] <RAOF> No?
[09:26] <RAOF> Well, yes, but it doesn't use EGL.
[09:26] <duflu> RAOF: Nevermind. Resolving the confusion I have right now is not required. Happy hacking
[09:30] <RAOF> Eh, it's building.
[09:30] <RAOF> I've got time to resolve confusion if you like :)
[09:41] <didrocks> RAOF: still around? do you mind listing me the binary packages I should install from xmir and mesa?
[09:41] <RAOF> didrocks: Sure, after I have collected pizza!
[09:41] <didrocks> :)
[09:41] <didrocks> thanks!
[10:04]  * tvoss does not like gmail telling me that I have 666 unread mails
[10:06] <alf_> tvoss: it would be even more interesting/disturbing if it automatically redirected you to https://www.youtube.com/watch?v=jsmcDLDw9iw :)
[10:10] <duflu> alf_: And even more so for https://www.youtube.com/watch?v=2EdWwEMSyuY
[10:11] <alf_> duflu: :)
[10:17] <RAOF> didrocks:
[10:18] <didrocks> RAOF: wrong copy/paste? :p
[10:18] <RAOF> didrocks: Yo! Do you need all the binaries, or can I assume the apt resolver is in effect?
[10:19] <didrocks> RAOF: no, it's whitelisting, so we need all the binary packages we need to install
[10:20] <didrocks> RAOF: to prevent uncontrolled transitions :)
[10:20] <RAOF> Ok.
[10:21] <RAOF> So what we want is the list of all the binary packages built by the relevant source packages, right?
[10:23] <RAOF> didrocks: That's a *big* list.
[10:23] <didrocks> RAOF: all the binary packages from xmir and mesa that we need to install by default, yep :)
[10:23] <RAOF> Ah, just the ones that need to be installed by default?
[10:24] <didrocks> RAOF: right, the one we need and are tested :)
[10:24] <didrocks> as we are running the unity tests, I think all xmir/mesa is involved at some point (with the patches for xmir/mir)
[10:25] <didrocks> RAOF: my list right now is: unity-system-compositor libmirprotobuf0 libmirserver0 libmirclient1 lightdm liblightdm-gobject-1-0 unity-greeter
[10:25] <RAOF> libegl1-mesa
[10:27] <didrocks> this is quite short for a long list :p
[10:27] <RAOF> libegl1-mesa-drivers libgbm1 libgl1-mesa-dri libgl1-mesa-glx libglapi-mesa libgles2-mesa xserver-common xserver-xorg-core
[10:28] <RAOF> xserver-xorg-video-ati xserver-xorg-video-radeon xserver-xorg-video-intel xserver-xorg-video-nouveau
[10:28] <didrocks> RAOF: sounds like reasonable, adding them!
[10:29] <didrocks> RAOF: thanks! will try that soon :)
[11:01]  * RAOF is confused. How does xf86-video-intel load, when it *should* be trying to resolve symbols that don't exist in xmir?
[11:02] <alan_g> RAOF: they're marked "load on use?"
[11:03] <RAOF> They *should* be used.
[11:03]  * alan_g gives up - ask the link loader where it resolves them
[11:04] <RAOF> LD_DEBUG= to the rescue!
[11:24]  * alan_g finds his brain can't focus on any more MP reviews
[11:29] <didrocks> RAOF: seems you forgot libegl1-mesa :) I'm adding it
[12:48] <alf_> alan_g|lunch: what do you think about ViewableArea::view_area() -> DisplayGeometry::geometry() or DisplayLayout::layout()
[12:49] <alf_> alan_g|lunch: that is "geom::Rectangles DisplayGeometry::geometry()"
[12:53] <alan_g> alf_: I don't think "geometry()" tells anyone what it does
[12:53] <alf_> alan_g: get() ?
[12:54] <alf_> alan_g: get_current_geometry()?
[12:54] <alan_g> visible_region()
[12:54] <alf_> alan_g: or are you referring to the term geometry itself?
[12:55] <alan_g> I think the word is too generic
[13:03] <alan_g> layout() is a bit better, but to me would imply that it includes information about which outputs are where
[13:03] <kgunn> alan_g: alf_ ...just my 2 cents +1 on visible_region vs geom....or you could even say region_to_be_displayed
[13:14] <alf_> alan_g: kgunn: I think we need to take a step back with this + "tell don't ask"... I am looking at the code that uses ViewableArea and I think the interface we need is actually something like DisplayRegionBoundaries::place_point(p) and ::place_rect(r), i.e. find the closest position of point or rect so that they are within Display boundaries
[13:14] <alan_g> alf_: I was wondering about that approach
[13:15] <alf_> alan_g: SessionMediator is one exception to this, but it needs DisplayConfiguration (not just a collection of rectangles) anyway
[13:16] <alf_> alan_g: so it doesn't really count, the other is the ability to make something fullscreen, like msh::ConsumingPlacementStrategy does, but we can "tell" our object to do that too
[13:18] <alf_> alan_g: however, I don't know if there are future needs that will make the whole approach too restrictive and we would be better off just giving out all the information anyway...
[13:19] <alan_g> alf_: IME giving out all the information introduces unnecessary coupling
[13:22] <alan_g> Can we make something line void DisplayGeometry::change_to_fullscreen(blah&) work now?
[13:23] <alf_> alan_g: (assuming blah==Rectangle) yes
[13:23] <alan_g> alf_: I didn't know it would be SomeSurfaceInfoHolder ;)
[13:24] <alan_g> *if it
[13:33] <alf_> alan_g: I will go with this approach, i.e., DisplayBoundaries::bound_point() ::bound_rect() ::make_fullscreen() (and perhaps also ::fit_rect() which resizes the rectangle to fit instead of moving it to be within bounds, but I will check what the current consumers need)
[13:34] <alf_> alan_g: (names are tentative, I am open to suggestions)
[13:37] <alan_g> alf_: is "bound" a term of art here? "To bound" can be "to bounce"
[13:38] <alan_g> restrict_point(Point&) et alia?
[13:38] <alf_> alan_g: I used it as: verb (used with object)
[13:38] <alf_> 5.
[13:38] <alf_> to limit by or as if by bounds; keep within limits or confines.
[13:40] <alan_g> confine_point() sounds good
[13:40] <alf_> alan_g: agreed
[13:41] <alan_g> fit_rect() => clip(Rectangle&)?
[13:42] <alf_> alan_g: Yes, much better!
[13:57] <alf_> alan_g: The other point is that it seems fitting to have a mi::InputBoundaries and a msh::SurfaceBoundaries interface, implemented by an mg::DisplayBoundaries concrete class
[14:00] <alan_g> alf_: is there an OutputBoundaries lurking sonewhere?
[14:04] <alf_> alan_g: (assuming OutputBoundaries is for a single screen/output), conceptually it could be there, but I don't see a consumer for it at this point. It's the same as the DisplayBuffer/ViewableArea case we discussed last week.
[14:05] <alan_g> alf_: ack - it just seemed symmetric
[14:12] <olli_> tvoss, robotfuel has some results to look at, have a min to spare
[14:13]  * alf_ really needs to create a vim snippet/template for an abstract base class
[14:13] <tvoss> olli_, sure
[14:14]  * alf_ decides that there is no better time than right now to do it...
[14:37] <mhall119> kgunn: can you clear something up for me?  Does XMir require xorg drivers for the hardware it'll run on, or does it only need Mir drivers for the hardware it will run on?
[14:57] <kgunn> mhall119: yes :)
[14:58] <kgunn> remember xmir is still the x stack....with x apps rendering into backbuffers....then the sys-compositor takes those as inputs rendered out into the frontbuffer
[14:58] <mhall119> kgunn: "yes" doesn't work for an "A or B?" question :P
[15:00] <mhall119> kgunn: right, but if I'm running XMir on, say, a Tegra shipset, does it need Tegra XOrg drivers, or just a Tegra Mir system-compositor driver?
[15:01] <tvoss> mhall119, right now it still needs Xorg drivers
[15:02] <mhall119> ok
[15:02] <kgunn> mhall119: tegra ?
[15:02] <mhall119> nVidia's mobile SoC
[15:02] <kgunn> right
[15:02] <kgunn> just questioning whether or not there are xorg drivers for that
[15:03] <kgunn> might be android drivers
[15:03] <kgunn> :)
[15:03] <mhall119> there are android drivers, yes
[15:03] <mhall119> so if there are Android drivers, but not Xorg drivers, then we can't run XMir on it?
[15:03] <kgunn> mhall119: right...
[15:04] <mhall119> why is that?  I thought XMir would abstract the specific hardware from Xorg
[15:04] <kgunn> that was what i was getting at questioning your mix of tegra w x
[15:04] <racarr> Morning
[15:04] <mhall119> kgunn: I'm discussing XMir with someone on G+, just want to have my facts straight
[15:05] <racarr> greyback: Was reading your email at the coffee shop ,didn't entirely process yet
[15:05] <racarr> but maybe this is the case for the
[15:05] <racarr> EventFilter
[15:05] <racarr> ?
[15:05] <kgunn> mhall119: well...think of it this way....xmir/u-s-c is sort of rerouting what the x stack thinks is going into a fb....into a input buffer of the compositor
[15:05] <kgunn> the x stack itself is still using gl drivers for the app renderings
[15:05] <greyback> racarr: could be. I'd like some guidance please
[15:06] <kgunn> mhall119: ....to answer your question tho, xmir & android are mutually exclusive topics
[15:06] <racarr> greyback: Thats my theory let me catch up on email and give it a solid read
[15:06] <racarr> if you install an event_filter via server configuration
[15:06] <racarr> it gets all events, and ut returns true/false from a callback
[15:06] <racarr> to handle
[15:07] <mhall119> kgunn: hmmm, so apps get a buffer from XMir, but then use the hardware-specific Xorg driver to draw into that buffer?
[15:07] <kgunn> mhall119: yes
[15:08] <mhall119> ok, I think I understand now
[15:08] <greyback> racarr: okay. And I can direct all those events to a surface of my choice?
[15:08] <mhall119> kgunn: so XMir doesn't provide the GL drawing methods in a hardware-abstracted way?
[15:09] <kgunn> mhall119: well...i guess that is where i get nit-picky
[15:09] <kgunn> the drawing methods are provided by opengles
[15:09] <racarr> greyback: No hmm, this is just like you can consume them
[15:10] <kgunn> drivers are specific against the soc (cpu & gpu)
[15:10] <racarr> or let them go to first surface
[15:10] <racarr> they would have otherwise gotten to
[15:10] <racarr> I can add some sort of targetting filter
[15:10] <racarr> there are some hooks in android
[15:13] <greyback> racarr: you see what I need though? Do let me know what I need to do.
[15:14] <kgunn> mhall119: make sense ?
[15:14] <racarr> greyback: I don't yet but I'm sure I will by 830 XD
[15:14] <greyback> racarr: no prob. Thanks!
[15:15] <mhall119> kgunn: not entirely, but that's probably my fault :)
[15:15] <kgunn> mhall119: no, keep poking until we get there
[15:17] <mhall119> kgunn: so is XMir a non-hardware-specific-hardware-driver like vesa, or is it just a frame-buffer-provider that still need an accompanying hardware-specific-harware-driver?
[15:18] <mhall119> pardon the gratuitous use of hyphens
[15:18] <kgunn> mhall119: :)
[15:19] <racarr> mhall119: As I understand it it' a new 'DIX' i.e. Device Independent X, plu changes to the hardware specific drivers (very small basically just replacing one buffer allocation function)
[15:20] <kgunn> mhall119: right ^
[15:21] <kgunn> mhall119: one thing i might have left out...compiz is still there
[15:21] <kgunn> so you are still fully composing all the windows in x....so when it hits the u-s-c, its just 1 frame
[15:21] <racarr> duflu: smspillaz: compiz4ever
[15:21] <racarr> greyback: I'm awake now XD
[15:22] <mhall119> so my current stack is Intel GPU -> intel Xorg driver -> Xorg Xserver
[15:22] <kgunn> ...when i say 1 frame, i mean 1 composed view...
[15:22] <mhall119> if I start using XMir, where will it fit into that stack?
[15:22] <racarr> greyback: I think, conceptually the EventFilter is what we want
[15:22] <racarr> greyback: The only difficulty with the EventFilter is getting the events in to Qt...
[15:22] <tvoss> mhall119, xorg == xmir -> usc
[15:23] <kgunn> mhall119: i think maybe the bit that escapes a lot of people....even tho you say "gpu/xorg driver"....
[15:23] <kgunn> there are multiple clients here
[15:23] <kgunn> the app (maybe), compiz & usc/mir
[15:25] <racarr> greyback: Basically I see two approaches but don't understand how to fit them both with Qt, so you should help :) um
[15:26] <mhall119> tvoss: not sure what you meant by that
[15:26] <racarr> ok so possibility 1 is you install an mi::EventFilter.
[15:26] <racarr> it always gets all events, so you recognize the gestures there, and just chop out the events you want
[15:26] <kgunn> mhall119: xmir is xorg with a patch on top
[15:26] <racarr> this can be extended over time, to support reinjecting/targeting events etc
[15:26] <kgunn> that racarr described in scrollback
[15:27] <racarr> though I'm not sure anything is needed for the simpel gestures (only foro ptimization later like the cancellation stuff)
[15:27] <mhall119> kgunn: ok, so it's not just a driver for Xorg, it's a whole modified server?
[15:27] <racarr> can also be easily extended with like:
[15:27] <tvoss> mhall119, for the 13.10 stack it is the following flow of rendering: x app -> xorg(which is xmir) -> usc (which is a minimal shell on top of Mir) -> screen
[15:27] <racarr> filter_event_beore_dispatching_to(target, event)
[15:27] <kgunn> mhall119: sort of....(you make it sound ominous, when its not :)
[15:27] <kgunn> mhall119: so yeah...
[15:27] <racarr> greyback: The problem here, is Event is a MirEvent passed
[15:27] <tvoss> mhall119, it's a minimally patched Xserver exposing hooks to the x drivers to be able to render to Mir buffers
[15:27] <racarr> to this callback
[15:27] <racarr> on the C++ side
[15:28] <racarr> and I am not sure what you can do with that
[15:28] <racarr> maybe you can use some QPA functions
[15:28] <racarr> to inject it somewhere
[15:28] <kgunn> mhall119: what tvoss said....which is what i meant by "rerouting" x compiz output to mir input buffers instead of the fb
[15:29] <kgunn> plubming
[15:29] <mhall119> ok, so we modify each of the Xorg drivers too, I didn't realize that
[15:29] <tvoss> mhall119, the links to the modified drivers are here: http://unity.ubuntu.com/mir/building_source_for_pc.html
[15:30] <mhall119> thanks, I think that was the part I was missing
[15:30] <racarr> greyback: The other bit is we cn add support for creating windows with 'monitor' channels
[15:31] <racarr> so you can create an invisible window that always gets all events
[15:31] <racarr> and get things in to Qt that way
[15:31] <racarr> kind o ugly but works I uppose
[15:31] <racarr> and how the input setup works on SF afaict
[15:32] <tvoss> racarr, I would vote against having this input trap setup
[15:32] <racarr> tvoss: Me too XD
[15:33] <racarr> the event filter way, or some variant down that lines is the only scalable way
[15:33] <racarr> as opposed to using the
[15:33] <racarr> client input delivery mechanism
[15:33] <racarr> because eventually to do better/fater gesture recognition
[15:33] <racarr> the shell might want to replay events, or do that event cancellation stuff we talked about, etc.
[16:00] <kdub> alan_g, updated surface-owns-render-info to separate size_and_position()
[16:00]  * alan_g finds his brain can't focus on any more MP reviews
[16:05] <kdub> ok :)
[16:06] <kdub> i guess technically its able to be top-approved, anyone else want to take a look?
[16:14] <racarr> alan_g: alf_: Want to avoid another day of iteration, but having a little trouble with client-focus-notifications
[16:14] <racarr> What is reasonable behavior for ~Clog?
[16:14] <racarr> unclog shouldn't throw? or ~Clog should...catch it and abort?
[16:14] <alan_g> assert on failure
[16:14] <racarr> should ust clog/unclog assert
[16:14] <racarr> directly?
[16:15] <racarr> first thought was just have the dtors assert
[16:16] <alan_g> racarr: It is a precondition failure to unclog when not clogged so asserting seems right to me
[16:17] <racarr> ok
[16:18] <racarr> I am never really sure when to assert ;)
[16:18] <racarr> my style used to be to assert everything I thought was assertable
[16:18] <racarr> but that tends to lead to trouble so now I never use it
[16:19] <alf_> alan_g: racarr: We had some dicussion before, but I don't remember if we reached a conclusion about using C assert() (=assert_if_not_ndebug()) vs a new assert (=always assert) function. Does anyone remember?
 style assert is fine for a precondition failure - as detecting the problem isn't a post-condition
[16:24] <racarr> Speaking of assert...
[16:24] <racarr> has anyone ever looked in to the problem of
[16:24] <racarr> restarting mir without killing clients?
[16:25] <alan_g> Not to my knowledge
[16:27] <racarr> Lets do that and then assert everything ;)
[16:27] <racarr> hmm. I wonder how large of a chunk of work that would be/if its interesting now
[17:40] <racarr> alf_: Hey. I am thinking of tackling
[17:41] <racarr> ...omg copy paste doesn't work anymore
[17:41] <racarr> https://bugs.launchpad.net/mir/+bug/1193222
[17:41] <racarr> and just wanted to make sure you hadn't started on the assosciated GBM platform changes or
[17:41] <racarr> well see if you had any thoughts :)
[18:11] <kdub> racarr, wasn't there some plan for power management external to mir or something?
[18:12] <racarr> kdub: Well, yes this is interesting :p on converged/the phone
[18:13] <racarr> the pln is just mir needs to expose methods out of the graphics platform
[18:13] <racarr> and unity provides
[18:13] <racarr> some DBus API
[18:13] <racarr> or some such
[18:13] <racarr> but...xmir needs to be able to request display on/off
[18:14] <kdub> but i'd imagine it would make that request to different places
[18:14] <racarr> and well...I dunno if we want to hook xmir up to USC via DBus...so it seems to make more sense to have it in the client API
[18:14] <racarr> what do you mean?
[18:14] <kdub> specifically, pause mir
[18:14] <kdub> turn screen brightness off somewhere else
[18:15] <kdub> or at least I thought that was the plan :)
[18:15] <racarr> there is more
[18:15] <racarr> than screen brightness
[18:15] <racarr> there is backlight control
[18:15] <kdub> sure
[18:15] <racarr> but then also setting the zero mode
[18:15] <racarr> on the CRTC
[18:15] <racarr> 'turns it off'
[18:15] <racarr> that is the pause mir step I guess
[18:15] <kdub> right, i was being vague :)
[18:15] <racarr> because if there is no CRTC everything grinds to a halt until pages start flipping again
[18:16] <racarr> mm
[18:16] <racarr> I do nt think everything actually grinds to a halt now
[18:16] <kdub> racarr, swapinterval 0 clients would keep going
[18:16] <racarr> but it will ;)
[18:16] <racarr> yeah
[18:18] <kdub> i get confused when new feature requests are made via bugs :-/
[18:18] <racarr> "Screen fails to sleep"
[18:18] <racarr> is a bug version XD
[18:18] <racarr> I wonder if xmir clients are
[18:18] <racarr> prepared for the aggressive kind of
[18:19] <racarr> power management we want to do
[18:19] <kdub> "mir won't fit on a 3.5 floppy"
[18:19] <racarr> i.e. I am using my X11 music player, the screensaver comes on, display goes off, we pause mir
[18:19] <racarr> is my
[18:19] <racarr> silly ingle threaded X11 music player going to
[18:19] <racarr> start blocking?
[18:20] <racarr> on some X calls
[18:20] <racarr> and will it still keep playing music if so
[18:21] <kdub> racarr, i'd guess that that's parallelized in X clients too
[18:22] <racarr> my...
[18:22] <racarr> thought is that it isnt :p
[18:22] <racarr> but I am not sure if pausing mir actually makes anything block for X clients
[18:22] <kdub> yeah, thikning back to past experiences...
[18:22]  * kdub doesn't know
[18:23] <racarr> I'm almost certain most GTK apps wouldn't respond well
[18:23] <racarr> to some X/GL calls just blocking forever
[18:23] <racarr> *shrugs*
[18:23] <racarr> *adds to list of things to harass RAOF about*
[19:02] <racarr> Lunch
[19:52] <racrr> RAOF: Ping?
[19:55] <tvoss|dinner> racrr, you are missing an a
[19:57] <racarr> tvoss|dinner: I tried to fit that statement to about 10 scenarios
[19:57] <racarr> before realizing what you meant XD
[19:58] <tvoss|dinner> ;)
[20:13] <Wellark> hi guys! will XMir work on VirtualBox?
[20:13] <Wellark> as accelerated, not sw rendering.
[20:16] <racarr> Wellark: This isn't a support channel. Go away!
[20:17] <racarr> :p jk hi antti
[20:17] <racarr> Wellark: I don't understand the entire virtual box stack
[20:17] <racarr> but I think not yet
[20:17] <Wellark> racarr: well the thing is
[20:18] <racarr> They expose DRM (i.e. KMS)
[20:18] <racarr> I'm not sure if they expose GBM though, and at the least some small modifications will be needed to the X driver
[20:18] <Wellark> that virtualbox is *the* solution people use to run ubuntu on windows and on older releases of ubuntu (let's say 12.04 host)
[20:19] <Wellark> naturally there are others too
[20:19] <Wellark> but virtualbox seems to be very popular
[20:19] <Wellark> I would even say most, but I don't have the data
[20:20] <Wellark> and then there are people like me who run multiple VM's in virtualbox to be able to easily test stuff and fear of breakage
[20:21] <racarr> mm, I don't know the data either but that sounds true
[20:21] <racarr> I think it's on everyones radar, there is a work item for it somewhere but
[20:21] <Wellark> so, 13.10 will have the fallback X so that most probably works with the available virtualbox 3d drivers
[20:21] <racarr> I think in 13.10 fallback for virtualized
[20:21] <racarr> yeah
[20:21] <racarr> is acceptable
[20:22] <Wellark> then of course this is no good for me (now I'm being selfish) when I have to develop unity8 code that requires Mir
[20:22] <Wellark> and at the moment I don't have any HW that can actually run Mir
[20:22] <Wellark> so I'm a bit concerned
[20:22] <Wellark> and I'm probably not the only one
[20:23] <racarr> ati or nvidia with no free driver support?
[20:23] <racarr> :(
[20:23] <Wellark> well, I have an exotic AMD card
[20:24] <Wellark> last time I checked it didn't work that well with open drivers
[20:24] <Wellark> and also my primary desktop machine is running 12.04 and I've been doing all my development up until now with VMs
[20:25] <Wellark> but in essense not being able to run Mir inside any VM is quite troubleling
[20:27] <Wellark> but we will see
[20:27] <racarr> I see your point.
[20:28] <olli_> kgunn, are you on didrocks' 5 items?
[20:28] <racarr> I'll mention it to people and maybe try taking a look out of curiosity. There's a possibility maybe it actually can be made to work pretty quickly
[20:28] <kgunn> olli_: literally
[20:28] <kgunn> i'm actually wrestling with his #5
[20:29] <racarr> but if it's substantial there probably isn't time for it right now
[20:29] <kgunn> cause i didn't think libmirserver i/f wa an issue
[20:29] <kgunn> (i mean its still moving....due to shell)
[20:29] <kgunn> its libmirclient, which is controlled
[20:29] <Wellark> racarr: that would be nice. I know we all have a full plate right now so generating additional work items is not something to be taken lightly
[20:30] <Wellark> racarr: but as I said, not supporting any VM might handicap the development flow for people that need to develop on top of Mir, but not Mir it self
[20:31] <Wellark> and by 14.04 also the users need/want to run Ubuntu on VM's for whatever reason
[20:32] <racarr> Of course
[20:32] <Wellark> like currently, we have Mac users running ubuntu in a VM, we have windows user running ubuntu in VM and then we have ubuntu users running ubuntu in a VM :)
[20:32] <Wellark> racarr: anyway, thanks! :)
[20:32] <Wellark> and good night
[20:33] <olli_> kgunn, thx
[20:33] <racarr> Night! Hope all is well.
[20:33] <racarr> See you in the bar around 13.10 ;)
[20:33] <olli_> bregma, any progress on the privacy notice in the installer?
[20:33] <Wellark> racarr: or in your dreams at night ;)
[20:34] <racarr> STop reading my diary
[20:52] <bregma> olli_, I'm working on an MP for Ubiquity as suggested by cjwatson
[20:52] <olli_> bregma, cool, thx
[20:53] <olli_> bregma, will take it off my todo
[20:53] <xnox> bregma: to work on top of Mir? =)
[20:53] <xnox> bregma: nice.
[20:53] <xnox> bregma: if you need any help join #ubuntu-installer and just ask. A small bunch of us idle there and respond rather quickly to all crazy things about ubiquity.
[20:54] <bregma> xnox, I'll be there if there are problems, but mean time I'm happy just hacking
[20:56] <xnox> bregma: good luck =)
[21:31] <kgunn> bregma: thomi thinks you can may already have access to build...but you can get direction from #launchpad-ops
[21:32] <thomi> bregma: what specifically are you looking for access to? The PPA builders, or the CI/autoland infrastructure?
[21:40] <bregma> thomi, the fails didrocks sees look like they are in a PPA https://launchpadlibrarian.net/145088439/buildlog_ubuntu-saucy-armhf.mir_0.0.7%2B13.10.20130716ubuntu.unity.next-0ubuntu1_FAILEDTOBUILD.txt.gz
[21:40] <thomi> bregma: yeah, you need to ask in #launchpad-ops
[21:40] <thomi> bregma: I don't fancy your chances though
[21:41] <bregma> indeed
[21:50] <olli_> bregma, bschaefer do you guys know how to best disable accessibility in Saucy
[21:51] <bregma> um, install it?
[21:51] <olli_> robotfuel is having issues
[21:51] <olli_> bregma, disabling it
[21:51] <olli_> did you mean deinstall?
[21:51] <bschaefer> thats what I would think as well, as unity *shouldn't* depend on it...
[21:52] <bregma>  it was humour -- accessibility in Unity has always been a to-do
[21:52] <bregma> is this a problem with Super-Spacebar?
[21:53] <robotfuel> this is what I think should work  sudo -u ubuntu gconftool-2 --set --type bool /desktop/gnome/interface/accessibility false
[21:53] <olli_> robotfuel, I like the idea of uninstalling it
[21:53] <olli_> seems very safe
[21:53] <robotfuel> I tried that, but everything depends on it
[21:53] <bschaefer> :'(
[21:53] <bschaefer> does setting that to false help?
[21:54] <olli_> bregma, it's messing with mir benchmarks
[21:56] <robotfuel> I have tests running now with that set to false, but I won't know for a bit
[21:57] <bregma> which aspect of a11y is interfering with mir?
[21:59] <olli_> robotfuel, dpkg -L at-spi2-core | xargs rm :)
[21:59] <olli_> *cough*
[22:01] <robotfuel> bregma: it's not mir, it's the gui-toolkits benchmark is crashing because of accessibility
[22:03] <robotfuel> olli_: if setting to false doesn't help I'll do that. a distupgrade might pull in a new version of at-spi2-core, so I'd have to run that after every time I install packages to be safe
[22:16] <olli_> robotfuel, do we need the at deamon to shut down?
[22:16] <olli_> discussing with slangasek in ubuntu-devel
[22:20] <olli_> robotfuel, can we disable the test for now and file this as a bug?
[22:20] <olli_> but move on with the over benchmarks?
[22:21] <robotfuel> olli_: yes, if it fails I'll just continue with other tests manually so we get results today
[22:22] <olli_> robotfuel, infinity just suggested to remove /etc/xdg/autostart/at-spi-dbus-bus.desktop
[22:23] <olli_> kgunn, ^ fyi
[22:25] <robotfuel> olli_: ack, I am adding that to the preseed and distupgrade scripts now.
[22:25] <robotfuel> olli_: thanks :)
[22:25] <olli_> robert_ancell, are we using upstart user sessions in S
[22:26] <robert_ancell> olli_, based on top, yes
[22:26] <robert_ancell> olli_, upstart keeps using 100% CPU in my session :(
[22:26] <robert_ancell> that's how I noticed the change had gone through
[22:29] <olli_> robert_ancell, maybe I have a wrong understanding of upstart user sessions
[22:29] <olli_> mind explaingin user session real quick
[22:29] <olli_> I was just trying to judge from my ps afx output
[22:45] <racarr> til: 1.  Don't try and run mir with electric ence under GDB a second consecutive time
[22:45] <racarr> your entire system will hang again :(
[22:51] <bschaefer> racarr, have you tried a third time?
[22:51]  * bschaefer heres 3 is some sort of lucky number
[22:51] <bschaefer> hears*
[22:57] <racarr> bschaefer: I'm thinking about it ;)
[22:58] <bschaefer> :)
[22:58] <racarr> I mean right now all I have is a speculaative theory that electric fence causes my system to hang
[22:58] <racarr> psuedoscience
[22:58] <bschaefer> are you talking about a literal electric fence you are working under?
[22:58] <bschaefer> cause that sounds unsafe
[22:58] <racarr> no haha
[22:58] <racarr> its a library you LD_PRELOAD
[22:58] <racarr> that wraps malloc and free to catch many
[22:59] <racarr> memory errors
[22:59] <racarr> with an early segfault (rather than due to corruption lately)
[22:59] <bschaefer> o nice, somewhat like valgrind?
[22:59] <racarr> Yes. Catches a subset of valgrind errors
[22:59] <racarr> but with much smaller performance penalty
[22:59] <racarr> its great :)
[22:59] <bschaefer> awesome, yeah valgrind gets hard to run at times....as it take forever to run the problem
[22:59] <bschaefer> program*
[23:00]  * olli_ pictures racarr sitting on a powerpole, in a yoga pose, hacking mir
[23:00] <bschaefer> haha
[23:03] <racarr> olli_: San Francisco is full of powerpole coworking spaces.
[23:42] <racarr> robert_ancell: The good news is mir_stress now runs indefinitely
[23:43] <robert_ancell> racarr, just updating to trunk?
[23:43] <racarr> the bad news is I cant work out how the 'race' I fixed could present itsel except in memory corruption
[23:43] <racarr> robert_ancell: No, the way it presented to me was
[23:44] <racarr> an exception from SessionContainer::remove_session, "Invalid Session" meaning that the session had already been removed
[23:44] <racarr> this was from ~SessionMediator, so when I investigated the logs I found that
[23:44] <racarr> I was getting         report->session_error(session->name(), __PRETTY_FUNCTION__, "connection dropped without disconnect");
[23:45] <racarr> but also a call to disconnect earlier (which completes, right prior to this exception throwing)
[23:46] <racarr> anyway, I initially thought that maybe ~SessionMediator was
[23:46] <racarr> being called from another thread, while the thread in ::disconnect was waiting, inbetween executing shell->close_session(session) and session.reset()
[23:47] <racarr> so I guarded that and
[23:47] <racarr> everything fixed itself
[23:48] <racarr> except, actually ~SessionMediator is being called from the same thread as far as I can tell in the logs
[23:48] <racarr> so that lock shouldn't matter, but fixes things which seems to imply
[23:48] <racarr> frontend may be misdirecting messages
[23:48] <racarr> due to some sort of corruption
[23:49] <robert_ancell> racarr, does the guard make sense without knowing the problem?
[23:50] <racarr> robert_ancell: Not really
[23:50] <robert_ancell> racarr, :(
[23:50] <racarr> I think it's likely that as soon as a few bits change, the problem will present itself again
[23:50] <racarr> so im going to dig a little deeper, and if I dont find anything
[23:50] <racarr> put up what I have so far


[16:39] <wraiden> Hello :)
[18:56] <wraiden> *reading job_emit_event*
[19:00] <Keybuk> wraiden: good luck
[19:00] <Keybuk> the last person who went in there never came out
[19:20] <wraiden> hehe
[19:20] <wraiden> i think i have found the point to add the alias handling
[19:21] <Keybuk> it would be in there, yes
[19:21] <wraiden> i think i move the environment construction into an helper as i have to construkt the environment for the job event itself and all aliases that might be set...
[19:22] <wraiden> or is it possibe to overwrite the JOB in an already constructed environment ?
[19:22] <wraiden> that would make it very easy *G*
[19:23] <Keybuk> yeah, you can keep setting JOB to overwrite it
[19:23] <Keybuk> see environ.c
[19:23] <wraiden> and it will hold its position as the first env var on the event?
[19:24] <Keybuk> yes
[19:25] <Keybuk> see environ_add()
[19:25] <Keybuk> (provided you go through that function, of course)
[19:26] <Keybuk> environ_set() calls environ_add() fwiw
[19:26] <wraiden> nice and handy *g*
[19:38] <wraiden> where does the code actualy block until all jobs that hook into a blocking event are processed?
[19:42] <Keybuk> the code doesn't block per-se
[19:43] <Keybuk> job_change_state sets job->blocker to the return value of job_emit_event
[19:43] <Keybuk> and doesn't change state to the next one, so ends
[19:44] <Keybuk> event_finished() is what, when an event reaches zero blockers, calls job_change_state to unblock the job
[19:45] <wraiden> if i implement the aliases as multiple independent blocking events...
[19:45] <wraiden> then i have to check if no other alias event is still blocking
[19:45] <wraiden> mhm
[19:52] <Keybuk> interesting
[19:52] <Keybuk> yeah you may have to extend things
[20:01] <wraiden> if i understand the code right than i can add multiple blocking events to the main jobs event->blocking