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

=== thomi_ is now known as thomi
duflukdub_: Around?02:32
=== chihchun_afk is now known as chihchun
alan_gRAOF: you say "Breaks/Replaces" should work, sil2100 and mterry both say Conficts/Replaces/Provides should work. Any reason for the difference?08:35
duflualf_: Sanity check: After eglSwapBuffers, you can trash your texture data right?09:16
dufluI always thought so09:16
alf_duflu: yes for normal textures, for EGLImage backed textures the situation is not clear in the specs, but we have always assumed the same09:22
duflualf_: Yeah I think more things would blow up if the data was still required after swapbuffers09:22
dufluAh Friday afternoon... the best time to tackle complex problems09:24
dufluproviding you don't need to have a Friday evening09:24
sil2100alf_: hello! Are you familiar with qtubuntu codebase?10:29
alf_sil2100: I've browsed it, but I wouldn't say I am familiar with it.10:30
alf_sil2100: what's up?10:30
=== chihchun is now known as chihchun_afk
sil2100alf_: we're trying to identify the source of a recent crash in qmlscene that's most likely caused by qtubuntu and since ricmm doesn't seem to be around right now we're looking for someone that could help in the identification here10:34
alf_sil2100: I can take a look in ~1h, where do I get information?10:36
sil2100alf_: thanks! The bug is here https://bugs.launchpad.net/ubuntu-app-launch/+bug/132914110:37
ubot5Ubuntu bug 1329141 in Ubuntu Application Launcher "qmlscene crashed while running test_can_launch_multiple_applications" [Critical,Confirmed]10:37
sil2100It might be hard to pin-pointing, but maybe at least you could have a look and check if it's not anything obvious10:37
alf_sil2100: The crash as retraced in https://bugs.launchpad.net/ubuntu/+bug/1340571 , is caused by qtubuntu for some reason not being able to create a server connection. It's not a real crash caused by some programming error (at least not at the crash site).10:59
ubot5Ubuntu bug 1329141 in Ubuntu Application Launcher "duplicate for #1340571 qmlscene crashed while running test_can_launch_multiple_applications" [Critical,Confirmed]10:59
=== jibel_ is now known as jibel
=== renato is now known as Guest57300
=== Guest57300 is now known as renato__
kdub_racarr__, (when you're up) or dandrader, what do you think about this branch? lp:~vanvugt/mir/fastlog13:55
kdub_(changing the input logging for mir)13:55
* kdub_ approved, but then again I don't use that log very often :)13:55
* dandrader looks13:56
alan_gAlbertA: alf_ kdub_ Anyone think we need more discussion of this: https://code.launchpad.net/~vanvugt/mir/server-ABI-24/+merge/22713714:28
kdub_alan_g, I approved, didnt see a problem14:33
alan_gkdub_: thanks (I didn't either)14:33
AlbertAalan_g: seems like the usual course of action so +114:39
racarr__Morning :)14:44
greybackracarr__: hey, have you any more comments on qtmir QPA plugin?14:45
racarr__greyback: Don't think so!14:46
greybackracarr__: ok great, thank you for looking into it14:50
racarr__np :)14:54
=== dandrader is now known as dandrader|afk
alf_racarr__: standup?15:05
=== dandrader|afk is now known as dandrader
racarr__alf_: Sorry was breakfasting...15:21
alf_racarr__: no worries, I have a question for you15:21
racarr__nothing exciting from me...been doing some reviews and a little side work and working on cursor renderable15:21
racarr__small hang up in cursor renderable...the15:22
racarr__well it would be nice to be able to creat ean EGL image from the cursor buffer15:22
racarr__to unify the software path15:22
racarr__but you caont because there is no "DRIImage" for the dumb bos15:22
racarr__alf_: Yeah?15:22
alf_racarr__: I was looking into https://bugs.launchpad.net/mir/+bug/1344024 and traced the problem in our ConsumingPlacementStrategy15:23
ubot5Ubuntu bug 1344024 in Mir "Clients cannot create surfaces when the screen is off" [High,In progress]15:23
racarr__oh sounds right15:24
alf_racarr__: when a screen (or the only screen) is off, the strategy will return size=(0,0)15:24
alf_racarr__: I was wondering if we should have a more reasonable strategy as default. Is someone relying on current ConsumingPlacementStrategy behavior?15:25
racarr__alf_: I don't think so no...it's kind of a hangover15:26
racarr__I mean the strategy is reasonable right? size to outputs15:26
racarr__presumably the problem is something like15:26
racarr__using output.current_mode_index15:26
alf_racarr__: Currently, if the client has asked for a particular size, we clip that the size of the output it's in. The problem is that if there are not outputs the new size will be (0,0) which is consistent, but fails15:30
alf_racarr__: But taking a step back, I don't think we should be resizing the surface (by default) if the client has explicitly asked for a particular size.15:30
alf_racarr__: Orthogonally to the above, we are currently using available display buffers to find the available outputs (and we don't create a display buffer for a screen that's off), so perhaps we should switch to DisplayConfiguration and take into account all "used" outputs (regardless of their power state)15:35
racarr__alf_: Note about display configuration v. display buffers definitely seems right15:51
racarr__resizing the surface...I dunno15:51
racarr__I guess maybe we shouldnt by default15:51
racarr__its15:51
racarr__the unity behavior15:52
racarr__but there is no reason to have it15:52
racarr__in the mir tree15:52
alf_racarr__: well, the client can get all the information about the display configuration, so if it asks for a particular size the we should respect that (in the default impl., a proper shell is another story)15:53
alf_racarr__: although, I guess since the client can't place the surfaces exactly this is less useful15:55
racarr__mm15:57
racarr__I think it makes sense to remove from mir...no sense in the model now for having it as15:57
racarr__a random bit of behavior15:57
alf_racarr__: currently ConsumingPlacementStrategy has three subpolicies: 1. if the client has asked to be placed in a particular output (output_id is valid) => place it there16:00
alf_racarr__: 2. if the client has asked for a particular size => clip the surface to the size of the output it is in16:00
alf_racarr__: 3. if the client has asked for 0 size => make it fullscreen in the output it is in16:02
racarr__yes16:02
racarr__carefully designed to justify an elaborate series of cucumber tests16:02
racarr__lol16:02
racarr__um16:02
racarr__I don't think any of the behaviors make sense for us to have16:03
racarr__I mean maybe in demo-shell or something16:03
racarr__but they are all shell-mediated right16:03
racarr__even asking to be placed in a particular output16:03
racarr__its the kind of thing where the shell says, eh, no thanks.16:03
racarr__so I am not sure there is a point in having the default strategy impl if each shell is going to write its own16:04
alf_racarr__: we should at least have a null implementation to allow the source to build :)16:08
alf_racarr__: (and run the tests)16:08
alf_racarr__: But I think something that includes only (1) would make sense as a default16:08
racarr__Yeah I was wondering if it should have 1 but16:10
alan_gracarr__: does it make sense to move the other behaviours to the examples?16:10
racarr__it should probably be in demo shell16:10
alf_racarr__: plus just placing all surfaces at 0,0 with the size they have requested, a size of 0,0 being an error16:10
racarr__why have (1) in tree if every shell16:10
racarr__is expected to override16:10
racarr__the placement strategy16:10
alf_racarr__: well USC doesn't (currently) need to override it16:11
racarr__presumably it will at some point though16:11
alf_racarr__: yes, probably when we want to make it smarter about multiple monitors16:12
alf_racarr__: I am inclined to include (1) in the default just because it's explicitly provided in the client API16:13
alan_gIt is good to have a default that is sensible enough for a hypothetical developer to use until they need to change it. (Like what we have with USC now)16:13
racarr__I was thinking about that16:13
racarr__but then16:13
racarr__surface states are provided in the client API too16:13
racarr__right? so what is16:13
racarr__the conceptual difference between the output-id placement behavior16:13
racarr__and mir_surface_state_fullscreen leading to your surface becoming fullscreen16:14
alf_racarr__: one difference is that the client can fake fullscreen size (it can get the display config), whereas it has not control of placement outside the output_id API.16:18
alf_racarr__: Another point is: let's say that we don't support output_id, a client gives us an output_id, what do we do?16:19
alf_racarr__: do we place that where we want and lie to the client, or do with error out?16:20
alf_racarr__: s/do with/do we/16:20
racarr__alf_: But the null impl never runs16:22
racarr__so place it whever you want :p16:22
racarr__demo shell should certainly16:23
racarr__support 1.16:23
alf_racarr__: the problem is that output_id is supposed to provide a kind of guarantee (in my mind at least) that the output will be placed where the client told it to.16:24
alf_racarr__: and a null default impl. breaks that guarantee16:25
racarr__only a kind of guarantee because16:26
racarr__the shell can always say16:26
racarr__no thats ridiculous im not placing you on that monitor16:26
alf_racarr__: then I think the output_id param is not useful if it's only a hint16:27
alf_racarr__: Imagine XMir running and wanting to place the screen surface in a particular screen16:27
racarr__Presumably the shell policy would be yes that something like XMir could always16:28
racarr__specify output_id16:28
racarr__whereas...maybe apps cant?16:28
alf_racarr__: The API should give it that guarantee (with conforming implementations, of course), XMir shouldn't care about what's running beneath it. So I think that the mir server either supports output_id and places the surface properly, or it doesn't and errors.16:30
alf_racarr__: and sure that could be a policy in the shell depending on the client16:31
racarr__it's not really much of a guarantee16:31
racarr__I man the shell16:31
racarr__mean*16:31
racarr__could respect output_id16:31
racarr__and then16:32
racarr__resize you and put you on another monitor16:32
alf_racarr__: but treating it either as a guarantee or as a hint depending on the client is inconsistent16:32
alf_racarr__: but the client asked for that particular id, not "fullscreen on any monitor you like"16:33
racarr__maybe it should be an error if its not permitted and people who16:34
racarr__don't really care about the actual physical setup of the displays (i.e. xmir because of monitor configuration I guess)16:34
racarr__shouldn't use output_id16:34
racarr__maybe this is imaginary but I have the thought that the answer isnt to always16:35
racarr__support it from the client16:35
racarr__i.e. should my phone app be able to open fullscreen on the external monitor16:35
racarr__may be a permission or something16:35
alf_racarr__: I guess I don't mind an almost-null implementation, as long as it errors out if an output id is provided ("I cannot provide that guarantee").16:36
racarr__I still think its a weird guarantee16:36
racarr__what if you request an output-id and the user16:36
racarr__moves you16:37
racarr__is that an error?16:37
racarr__probably not so is there some additional constraint like its only for certain surface types which are not movable by the user16:38
racarr__but even then what happens when the monitor dissapears or something16:38
racarr__so what the guarantee just becomes16:39
racarr__if you provide an output-id you will be fullscreen on that output for some non zero amount of time16:39
racarr__but then how can the client16:39
racarr__use the guarantee?16:40
racarr__because the time could be arbitrarily small16:40
alf_racarr__: user move: fair point, monitor disappears: if the client cares about a particular id, it probably means it selected that based on the current display config, and it should monitor display config changes and adapts16:40
racarr__hmm thats an interesting problem how do16:41
racarr__ok so it could be for only non user movable windows16:41
racarr__like say XMir, perhaps some presentation windows, etc16:41
racarr__and then, when the outputs dissapear16:42
racarr__you could add something that like16:42
racarr__until a new output_id is assigned or16:42
racarr__the output is cleared16:42
racarr__the surface just dissapears16:42
racarr__i.e. isn't on screen16:42
racarr__and that makes the guarantee a little stronger16:42
alf_racarr__: I think that's reasonable, the client should react quickly anyway16:42
racarr__I am thinking about like16:42
racarr__to prevent flicker16:42
racarr__i.e. monitors 1 2 316:43
racarr__client with output id 316:43
racarr__monitor 3 unplugs16:43
racarr__shell places16:43
racarr__on 116:43
racarr__client receives display configuration16:43
racarr__change16:43
racarr__places on 216:43
racarr__but then you can make the guarantee if setting the output-id is successful16:44
racarr__then if a surface appears16:45
racarr__it will appear on that output16:45
racarr__and then, still perhaps sometimes its dissalowed16:45
racarr__im not sure16:45
racarr__i.e. things like can phone apps open on the external display16:46
alf_racarr__: another point is that if output_id is a guarantee you can cater for both 1. clients that really need to be placed in that id otherwise they don't work properly (XMir) 2. clients that would like to be placed in that output id, but it's not critical (they can try with output_id, fallback to without output_id)16:49
alf_racarr__: anyway, food for thought :)16:49
alf_racarr__: enjoy your day an weekend!16:49
alf_all: ^^16:49
mzanettithanks alf_ :) you too16:50
racarr__alf_: :) Cheers. Happy friday16:50
=== dandrader is now known as dandrader|lunch
=== dandrader|lunch is now known as dandrader
=== dandrader is now known as dandrader|afk
=== dandrader|afk is now known as dandrader
bschaeferracarr__, hey, was just getting to the doing the SDL2 cursor stuff. 2 have come up that I don't see in mir (not sure if they are really needed anyway):21:32
bschaeferSDL_SYSTEM_CURSOR_NO and SDL_SYSTEM_CURSOR_CROSSHAIR21:32
* bschaefer gets the x11 equivalent21:32
bschaeferXC_pirate and XC_tcross21:33
racarr__XC_pirate oO21:33
racarr__ill hvet o look in to that one21:33
racarr__will add crosshair to the branch though21:33
racarr__thanks :D21:33
bschaeferracarr__, nice :), thank you!21:33
racarr__brb though21:33
bschaeferracarr__, yeah the pirate, is just a cross, like on a treasure map21:34
bschaefererr...weird, pirate does not show up like that in xlib manual...weird...21:36
bschaeferstrange...:     case SDL_SYSTEM_CURSOR_NO:        shape = XC_pirate; break;21:37

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