/srv/irclogs.ubuntu.com/2013/10/01/#ubuntu-mir.txt

* robert_ancell -> lunch00:06
sarnolddoes anyone know the reasoning behind the piles of these compile warnings? http://paste.ubuntu.com/6177885/01:20
sarnoldI would have thought that "const typet" and "typet const" would have been interchangable, but g++ is complaining that  const std::shared_ptr< msh::DisplayLayout > is different than std::shared_ptr< shell::DisplayLayout >01:22
sarnoldsigh, moment... const std::shared_ptr< msh::DisplayLayout >   and  std::shared_ptr< shell::DisplayLayout > const01:22
duflusarnold: I agree they look the same :/  Make sure you're using gcc 4.8 or later...?01:38
sarnoldduflu: this appears to be gcc-4.8_4.8.1-10ubuntu401:40
duflusarnold: Oh, I see. You probably have not aliased "msh". Replace it with "mir::shell"01:41
sarnoldduflu: this is in the standard fullscreen_placement_strategy.cpp file, "namespace msh = mir::shell;01:43
dufluDon't know then01:44
sarnolddrat :)01:44
sarnoldsrc/client/gbm/* is full of similar looking warnings..01:44
bschaeferduflu, hey, i've a question, what does fullscreen mean to mir atm?01:46
bschaeferie. if we want to take a window and make it full screen (say its 1080x768 surface on a 1600x900 screen)01:47
bschaefers/window/surface01:47
duflubschaefer: The fullscreen state is "set" but not used. Our demos "fullscreen" just by setting the window size manually. The two are not wired up yet01:48
bschaeferduflu, will there be an API for this? To turn the active surface fullscreen?01:48
duflubschaefer: Yes it exists, but does not affect surface size at all yet ... mir_wait_for(mir_surface_set_state(surface, mir_surface_state_fullscreen));01:49
bschaeferduflu, awesome, I didn't see that when I was digging through the API :)01:50
bschaeferI saw I could make the server fullscreen, by an option, but that caused some problems (crashes)01:51
duflubschaefer: Yes I agree it's confusing but you can see the function in  include/client/mir_toolkit/mir_client_library.h and the args in include/shared/mir_toolkit/common.h01:51
bschaeferduflu, yeah I missed this: shared/mir_toolkit/common.h:65:    mir_surface_state_fullscreen, along with the set state01:52
bschaeferthat'll fix up my problem where im not sure what to do when asked to make the window fullscreen :)01:52
duflubschaefer: It will still do nothing for now.  :)01:53
bschaeferduflu, but when it does, I should be safe :)01:53
bschaeferduflu, O yeah, about that scroll V/H bug you made01:54
* bschaefer digs it up01:54
dufluThat comes under the heading of "surface resizing not implemented yet"01:54
bschaeferhttps://bugs.launchpad.net/mir/+bug/123308901:54
ubot5Ubuntu bug 1233089 in Mir "MirMotionEvent can't tell which direction the mouse wheel is scrolling" [Undecided,New]01:54
bschaeferduflu, Cool, hopefully when its implemented that API will stay somewhat the same01:54
duflubschaefer: You have a solution for scrolling?01:55
bschaeferduflu, So I had that scroll direction implemented, but we talked that this should be handled differently, as one big problem was the event queue was being overflowed01:55
bschaeferduflu, Yeah I did, then we talked about it in Denmark, and we reverted it01:55
bschaeferhttps://code.launchpad.net/~brandontschaefer/mir/mir-vscroll-hscroll-event-data01:56
duflubschaefer: Cool, please link relevant stuff and comment01:56
bschaeferduflu, i've done, but its reverted, let me make a new branch and get that back in :)01:56
bschaeferIt was another problem I needed to address in my own project01:56
duflubschaefer: I didn't start working on Mir until many months after Denmark... ?!01:56
bschaeferduflu, hmm I swear that was Denmark ... but now that I think about it it was Okalnd01:57
bschaeferOakland*01:57
dufluYeah about then. I started immediately after01:57
dufluOh01:57
dufluOops01:57
dufluNo01:57
bschaeferto many places with small rooms with out windows01:57
dufluI had started by then01:57
sarnoldhehe01:58
dufluIt was San Mateo. Yeah :)01:58
bschaeferCool :), yeah it was more about the responsibility of what mir should be doing01:58
bschaeferduflu, It was a bit ago, soo Im now forgetting the complete reason...01:59
dufluWhere am I now? :S02:01
bschaeferduflu, O yeah, you mentioned it should be the toolkit that is responsible for it02:01
bschaeferhttps://code.launchpad.net/~brandontschaefer/mir/remove-vscroll-hscroll-events/+merge/16228402:01
duflubschaefer: I have no opinion on the solution until I get to reviewing it :)02:01
bschaeferduflu, well let me propose the old solution I had, then when a correct one comes around we can drop it :)02:02
bschaeferduflu, https://code.launchpad.net/~brandontschaefer/mir/lp.1233089-fix-v-h-scroll/+merge/18849802:09
bschaeferso a MirMotionEvent motion; can get the v/h scroll info by:  motion.pointer_coordinates[0].hscroll/motion.pointer_coordinates[0].vscroll02:10
bschaeferduflu, though...this will break the ABI :(02:12
duflubschaefer: Possibly... That's actually less important for the server right now. But changing the structure size for clients could be a problem.02:15
duflubschaefer: Fortunately we have a few unused fields in MirMotionEvent to steal bytes from ;)02:15
thomirobert_ancell: know anything about the ubuntu_platform_api_mirclient library implementation?02:15
bschaeferduflu, well if I can steal 2 then this will work :), I could also use a union and only need to steal 102:16
thomior, alternatively, know anyone who's awake right now who does?02:16
robert_ancellthomi, not really02:16
robert_ancellracarr, ^ ?02:16
bschaeferas it can only be a vscroll xor hscroll02:16
=== jhodapp is now known as jhodapp|afk
bschaeferthough a union would not look very pretty :(02:18
duflubschaefer: It's generalized for any device (including those which don't exist yet) so perhaps don't assume XOR02:19
bschaeferduflu, very true!02:19
bschaeferduflu, We could also hold off on this bug until something else that needs to break any structures anywhere to merge this in with that?02:24
bschaeferduflu, as Im assuming the ABI will have to be broken again at some point...02:24
duflubschaefer: I hope that time comes... it's a matter of project planning02:24
bschaeferduflu, Right, and letting those who use Mir know when its coming I would think02:25
bschaeferduflu, think again, I don't know what: touch_major; touch_minor are for in the motion struct02:25
bschaefers/think/then*02:25
duflubschaefer: Yes there's a lot of copy/paste from Android. Hence bug 117536202:26
ubot5bug 1175362 in Mir "MirMotionEvent fields lack documentation" [Medium,Triaged] https://launchpad.net/bugs/117536202:26
bschaeferThats a good bug :), the v/hscroll bits where in there at that point haha02:27
sarnoldduflu: thanks for the help :)02:36
duflurobert_ancell, kgunn: Should we add bug 1227739 to the phone priorities?02:36
ubot5bug 1227739 in Mir "Mir continues to render application surface even when the indicator surface is on top" [High,Triaged] https://launchpad.net/bugs/122773902:36
duflu(cos I know how to solve that one :)02:36
robert_ancellduflu, looking02:36
thomiracarr: ping?02:36
duflusarnold: No problem02:36
kgunnthomi: maybe ricmm02:37
thomiricmm: awake?02:37
thomikgunn: so I've gotten it to the point where I think it should work, but I get a segfault instead :-/02:37
robert_ancellduflu, I agree with kgunn here - it's just an optimization so it doesn't need solving until we have all the other phone v1 features done02:38
kgunnduflu: of course...if its done prior...its gravy02:38
robert_ancellmmm gravy02:39
dufluGravy's full of wheat :/02:39
thomiheh, will you look at that. segfault comes from libmirclient3 :-(02:40
kgunnduflu: gluten free icing ?02:43
kgunnthomi: do you need some help02:44
kgunnfrom mir team02:44
duflukgunn: Surprisingly icing sugar is also often flour :/02:44
thomikgunn: my plan at the moment is to clean this up and push it, then send you an email02:44
thomikgunn: it doesn't look like anyone who understands the platform API is awake, so...02:44
robert_ancellthomi, do you have a WIP MP?03:04
thomirobert_ancell: really soon...03:04
thomirobert_ancell: just doing packaging changes now. Branch is at lp:~thomir/python-ubuntu-platform-api/add-mir-pkg03:04
thomirobert_ancell: will make a MP once the packaging stuff works03:04
=== chihchun_afk is now known as chihchun
thomirobert_ancell: Mp created: https://code.launchpad.net/~thomir/python-ubuntu-platform-api/add-mir-pkg/+merge/18850303:20
kgunnduflu: gotta ur nexus4 back yet ?03:20
duflukgunn: I expect it would have only just arrived there. Expect about another week :P03:20
robert_ancellthomi, the segfault is in libmirclient or libmirserver?03:21
kgunnthomi: is there a "here's how you run AP tests on the phone" wiki03:21
thomilibmirclient303:21
kgunnduflu: bummer03:21
duflukgunn: So I reverted to Nexus7. Not quite usable for Mir but much better than expected03:21
kgunnduflu: shocking really03:21
duflu... as in there's only one bug AFAIK03:21
thomikgunn: I don't think there's a wiki page. I believe most people still use the 'phablet-test-run' script03:22
thomikgunn: just doing some research for you. I believe you can run 'phablet-click-test-setup' to download all the test cases03:23
thomiand then 'phablet-test-run unity8' for example to run that test suite03:23
duflukgunn: Tracking says it arrived Sydney on Friday03:26
dufluAlthough the Australian Play Store still shows (discounted) Nexus 4 in stock03:28
dufluCan we assume all touch surfaces are full screen right now? Or do they exclude the notification bar?03:42
duflu-touch +phone03:42
bschaeferduflu, hey, one more question :). If I set mir_surface_state_fullscreen, then when its toggle off of fullscreen should the state be set to: mir_surface_state_restored?04:12
bschaeferor possibly unknown?04:12
duflubschaefer: A floating window will usually be "restored" I think04:12
bschaeferduflu, hmm so thats more or less the default state of a surface?04:13
* bschaefer should have just checked the source for the default state :)04:13
bschaeferduflu, Looks like: mir_surface_state_unknown; is getting set on the creation of a MirSurface04:14
* bschaefer finds that to be a strange state name...unknown...04:14
duflubschaefer: Tis correct. The state is stored in the server and the client considers the state unknown till it receives the first notification of what the state is04:15
duflubschaefer: The server won't send such a notification unless you change it I think... ?04:16
bschaeferduflu, so when we want to set the state back to default, unknow it is! Sounds good, just wasn't the first thing I thought it was doing...04:16
duflubschaefer: That will probably fail. I think restored is a more sane default04:16
bschaeferduflu, O, that makes sense as well :)04:17
duflubschaefer: Oh. I vaguely recall that setting unknown is know you force the server to tell you the real value. Just wait_for the set and then get the value04:19
duflu-know +how04:19
duflu!?04:19
bschaeferduflu, well my goal is to set fullscreen when asked, thats simple04:19
bschaeferthe thing is once fullscreen gets toggled off, the state will still be fullscreen, so i was just wanting to go back to default in a sense04:20
bschaeferduflu, Should I be setting the state on creation?04:20
bschaeferduflu, Im also not sure if these things are even hammered out yet :)04:21
bschaeferduflu, You're correct, if the state is unknown, then the surface gets configured when asked what the state is:04:24
bschaeferhttp://paste.ubuntu.com/6178269/04:24
duflubschaefer: Restored is a safe bet. "Restore" means "please put the surface back how it was before fullscreen/maximize.04:29
duflu"04:29
bschaeferduflu, yeah, that sounds good, I just got curious on how unknown was handled :). Thanks! I should head off for the night04:29
bschaeferduflu, have a good rest of your day!04:30
duflubschaefer: I don't think I intended "unknown" to be used by clients04:30
duflu...04:30
dufluGood night04:30
bschaefer:), well at lease it doesn't look like it should be used haha04:30
budgeeholla mirs08:05
budgeeIs Mir perhaps the reason I cannot get synergyc to connect to another synergys?08:06
budgeesynergyc is running on a 13.10 machine with Mir08:06
budgeeand synergys is running on 13.0408:07
mlankhorstversion difference I guess?08:21
mlankhorstsynergy has a debug mode that might help08:21
alf_alan_g: The question is whether we should treat send failures as critical errors and close the connection, or rely on getting an error next time we try to read from the socket (as is done now). The latest version of socket-messenger-race keeps the current behavior and doesn't propagate the send errors further.08:37
alan_galf_: until recently ProtobufMessageProcessor::dispatch() handled write errors by dropping the connection. I think we should reinstate that.08:39
alan_gIt changed as a side-effect of suppressing a lack of error handling when sending unsolicited events to the client.08:40
alf_alan_g: I agree, and also make sendmsg() (for FDs) failures throw too. Does the client handle such events properly now?08:41
alan_galf_: I've a rework of the client -side code sitting on a branch that does handle stuff correctly. Not sure about trunk08:42
duflualan_g: Not immediately required, but if you come across any documentation for asio that's actually readable (unlike the official docs) then please let us all know?... It seems very black magic08:42
alan_gduflu: I was moaning about the same thing in Boston08:43
duflualan_g: My concern is that it seems like only one of us (you?) has ever figured out how it works. And that's detrimental to our maintenance efforts08:44
alan_gduflu: I share your concern (and I don't have it figured out yet)08:48
* alan_g thinks that if he ever does figure it out an article would be a good idea.08:49
* duflu gets out the pen an paper; finds 12 server-side "surface" classes and counting :P10:00
duflugreyback: Unity8 on Mir ... forgive my ignorance but is that finally multi-surface? And are app surfaces usually fullscreen on the phone?10:04
greybackduflu: shell is single surface at the moment, work in underway to change that though. Yes app surfaces are usually fullscreen10:05
duflugreyback: So the shell gets lowered or always-on-top-but-hidden?10:05
greybackduflu: always on top, marks itself transparent to hide10:06
greybacks/marks/makes/10:06
duflugreyback: Argh. OK... so that's using Mir's hidden attribute?10:06
greybackduflu: sorry no, it just makes its surface transparent, so surface underneath is visible10:07
duflugreyback: Oh. That will pose a problem to my occlusion testing I guess.... unless... the whole surface has alpha==0 ?10:07
greybackIt does not tough the visible/hidden attribute10:07
greybackduflu: no, say if launcher out, the launcher bit is fully opaque, but the rest of the shell surface is transparent10:09
duflugreyback: Eeek. So I can't do occlusion testing on that. I guess I need to wait for Unity changes10:10
duflugreyback: Unless there's a definitive way to identify when the top (shell) surface and launcher is hidden?10:10
greybackduflu: sorry for my ignorance how, but what is occlusion testing?10:11
duflugreyback: Finding out what's hidden to optimize rendering10:11
duflugreyback: Final question before I go: Can I tell from Mir that the launcher is hidden by the shell surface state somehow?10:12
greybackduflu: I see. Shell is doing complex things, so there's no easy way for outsider to determine what parts of the surface is opaque and not10:13
duflugreyback: Well, I'm looking from inside the server, not outside. But still, will need something more efficient than testing every pixel of the surface for opacity10:13
dufluThat's OK, I've found more things that need cleaning up and moving around before any of that10:14
greybackduflu: you could watch the input areas that the shell surface defines. Generally if it has an input area, that area is not-transparent10:14
duflugreyback: Interesting heuristic but not reliable. At least not on non-touch platforms10:15
greybackbut that's the only way I can think mir is even aware of what shell is doing10:15
greybackyep, I've nothing better to suggest, sorry10:15
duflugreyback: OK, keep me posted on changes to the shell surface implementation?10:15
dufluTime to make dinner!10:15
greybackduflu: sure, but I expect it to be after the 1.0 release10:15
duflugreyback: Yep10:15
greybackbon appetit10:16
=== alan_g is now known as alan_g|afk
=== hikiko is now known as hikiko|lunch
=== alan_g|afk is now known as alan_g
davmor2kgunn: well that is my plan of using mir all day out of the window,  no sound on received calls or sms,  I'm just going to compare that with SF but I can't understand why mir would stop that10:49
* ricmm was making calls on Mir yesterday10:51
ricmmtheres is no reason for Mir to block any kind of sound, something else in your setup is probably triggering it10:51
ricmmperhaps something triggered by the Mir selector, but certainly not the shell itself10:51
davmor2ricmm: it's okay it dead on sf too apparently there was an issue that is/has been resolved and I might just need a new image and then I can start again10:53
ricmmperfecto11:02
davmor2ricmm: apparently it is an issue with the infographics stuff so it effects anything it touches, so no camera sms or phone by the look of it :(11:06
ricmmwow11:19
=== chihchun is now known as chihchun_afk
davmor2ricmm: ah usermetrics sorry, the bit that infographics gets it's info from :)11:24
=== hikiko|lunch is now known as hikiko
=== jhodapp|afk is now known as jhodapp
kgunnmornin greyback, need any help ?12:31
greybackkgunn: not yet, am not out of ideas just yet12:32
=== chihchun_afk is now known as chihchun
=== chihchun is now known as chihchun_afk
Saviqracarr, ping13:28
kgunntjaalton: mlankhorst hey do you guys know anything about potential open source driver roadmaps, primarily when/if opengl4 would be supported?13:29
mlankhorstwhen we get around to it, if someone gets around to it :P13:30
tjaaltonkgunn: http://www.x.org/videos/XDC2013/ian_romanick_mesa_update.avi that should tell, iirc13:30
tjaaltonmaybe next year13:31
mlankhorstsarnold:  might know better than me, tbh13:31
mlankhorstsarvatt*13:31
tjaaltonhttp://www.youtube.com/watch?v=Lk20sLDI1eE&feature=youtu.be13:33
tjaaltonbetter link13:33
greybackalan_g: what does this error imply:   what():  bind: Address already in use13:43
=== dandrader is now known as dandrader|afk
=== dandrader|afk is now known as dandrader
ricmmkgunn: ping14:07
kgunnricmm: pong14:08
ricmmkgunn: hey kevin, about the autopilot stuff... Mir blows up internally when the hwc is in a blanked state upon starting14:08
ricmmthats not really the shell's fault, the Mir code needs to account for this case14:08
ricmmbring the hwc to a clean slate etc14:08
kgunngreyback: oh crap... alan_g is out this afternoon dealing with a speeding ticket i think14:08
ricmmit is possible that unity8 will crash unexpectedly at some point while the screen is blanked14:08
kgunnalf_: ^ can you help greyback14:08
ricmmin which case Mir needs to make sure it can account for a startup with a hwc in any state14:09
ricmmthe only case unity8 can protect is the oen where it has been explicity asked to quit itself14:09
ricmmone*14:09
alf_greyback: perhaps some left-over mir socket file?14:10
ricmmits usually the left over /tmp/mir_socket yea14:10
kgunnricmm: hmmm....wonder if that's because of some discussion i saw yesterday about AP stuff, creating some objects out of order...14:10
ricmmgreyback: you sure its not there?14:10
ricmmkgunn: its not APs fault, nor the shell14:10
kgunnricmm: i'm not saying it is14:10
greybackricmm: I get this when running shell through AP, so need to figure out why14:11
ricmmgreyback: only through AP?14:11
kgunnricmm: i'm saying that you're right in that we may need to put in some safety code for a new order of things14:11
greybackricmm: yep, I can run manually14:11
alf_greyback: can you run in gdb and get a backtrace?14:11
ricmmgreyback: just strace it, you'll see the failing syscall()14:11
ricmmkgunn: indeed, we need some protection when initializing the hwc to make sure it is reset to an unblanked state14:12
ricmmkgunn: technically spurious ->blank() or ->unblank() calls shouldnt fail, according to API14:12
ricmmbut robert's code is catching it somewhere14:12
ricmmim sure he can sort it in miutes14:12
kgunnricmm: well...that is semiCo code :)14:13
kgunnricmm: yeah...we have mir stand up in 45 minutes14:13
kgunnkdub always makes it... racarr is a sometimes...14:13
ricmmkgunn: I could join and explain if you want14:16
kgunnricmm: sounds great14:16
kgunnwill invite14:16
ricmmperfect14:16
didrockskgunn: oh, just a note, when you merge from the dev branch to trunk, please use a better and more detailed commit message "merge from latests dev branch" isn't very informative :)14:18
kgunndidrocks: ack....i can populate with aggregate commit14:19
didrockskgunn: yeah, seems to be the right strategy ;)14:19
* kgunn still claims victory for not breaking build :)14:19
om26erThe performance of Mir on Nexus 4 was on par with SF a few weeks ago, what changed? Is there a bug report somewhere ?14:41
om26erdavmor2, maybe you know ? ^14:42
davmor2om26er: I don't have mako I have maguro which is slower anyway.14:46
davmor2om26er: I took some basic videos yesterday and posted them here showing that mir was slower.  I was going to run with mir all day today but then I get no notifications about calls and messages so need to get image 75 first.14:48
om26erdavmor2, is 75 coming soon ?14:49
davmor2om26er: as soon as all the bits required have built which isn't happening currently14:49
kgunnkdub: alf_ racarr hikiko ricmm standup15:02
=== dandrader is now known as dandrader|lunch
hikikojoining kgunn15:05
hikikogoodbye!15:29
ricmmkdub: ping15:38
kdubpong15:38
ricmmkdub: http://paste.ubuntu.com/6180049/15:38
ricmmyou can see the last working blocking pread() on the vsync fd in line 115:38
ricmmreturns in line 7 with valid data15:38
ricmmline 8's returns immediately with empty data15:39
kduboff the top of my head15:39
ricmmand then its spuriously happening like that consuming the full CPU where that thread schedules15:39
kdubthat looks like the vsync signal that is polled for, which surfaceflinger uses to trigger its own composition, and sends that signal on to the clients15:40
kdubwe should probably disable/enable that signal on a blank15:40
ricmmyou dont use that signal at all?15:40
kduband i'll think about disabling it, we're getting vsync from the commit fences right now15:40
kdubright15:40
ricmmoh then by all means disable it15:40
ricmmas it wakes the thread on vsync15:41
kdubyeah, disabling it makes more sense15:41
ricmmnot costly, but then it causes this crap15:41
kdubi might re-enable it for performance logging or something at some point though15:41
ricmmis it easy to disable?15:41
kdubyeah, easy15:41
* ricmm likes these answers15:41
ricmmtell me how I can test :)15:41
ricmmkdub: why are we polling for the signal anyways? or is that the hwc polling it15:43
ricmmif its unused for anything in Mir I mean15:43
kdubwe used to use it to get vsync15:43
ricmmah ok15:43
kduband hwc10 still does15:43
ricmmmaguro is 1.0 ?15:43
kdubright15:43
ricmmhmm15:43
ricmmI havent tested this breakage in maguro, although in maguro we dont blank15:44
ricmmwe just suspend15:44
ricmmwhich in turn turns the hwc off and gpu, etc15:44
kdubricmm, http://bazaar.launchpad.net/~mir-team/mir/development-branch/view/head:/src/server/graphics/android/hwc_common_device.cpp#L6815:44
ricmmI guess it will blow up maguro if you remove it, which we dont wanr15:44
kdubturn that last argument from a 1 to a 015:45
kdubor just delete lines 68-7615:45
ricmmok15:45
kgunnalf_: i'd ask duflu...since he's not on, do you know if raof/duflu actually fixed the radeon corrupt render issue ?16:00
kgunnalf_: having a hard time deciphering bug correspondence16:01
kdubandroid display creation needs some cleanup16:07
alf_kgunn: the radeon issue we were seeing during the sprint (vertical black lines) has been fixed: https://bugs.launchpad.net/ubuntu/+source/xorg-server/+bug/121881516:08
ubot5Ubuntu bug 1218815 in xserver-xorg-video-ati (Ubuntu) "[radeon] Graphic glitches and screen corruption (vertical lines) on XMir surfaces only" [Critical,Fix released]16:08
alf_kgunn: however, there seems to be a new radeon glitch: https://bugs.launchpad.net/mir/+bug/123354516:08
ubot5Ubuntu bug 1233545 in mir (Ubuntu) "Screen corruption on radeon chipset" [Critical,New]16:08
kgunnalf_: thanks...arg, marked invalid for xmir...that's why16:08
kgunnalf_: yeah...saw that :)16:08
alan_ggreyback: @"bind: Address already in use" - the socket filename is already being used16:14
mterryHello!  I'm looking at a bug with unity8-on-Mir where a frame or two of the dash can be seen before the greeter appears on screen-turn-on.  I'm told that the Mir compositor stops accepting frames when the screen is blanked.  But it seems that Mir is shutting down frames sooner than unity8 can respond to the screen-blank event and thus can't prepare the screen.  :(  Any hints?16:14
mterryracarr, alan_g: ^ ?16:15
alan_gmterry: not anything I'm familiar with. Sorry16:16
ricmmkdub: seems to be doing the same16:17
ricmmI still get the VSYNC pollers16:17
ricmmperhaps they are enabled by default, what I did was remove the code16:18
* ricmm readds16:18
ricmmkdub: http://androidxref.com/4.2.2_r1/xref/hardware/libhardware/include/hardware/hwcomposer.h#33716:23
kdubyeah, we're doing that wrong16:24
* mterry has to run for lunch, but will be back16:24
kdubricmm, try setting to zero16:28
kdubreally, that thread looks like its started in registerProcs16:28
ricmmkdub: so should I first disable in the eventControl before registering the thread with registerProcs?16:30
ricmmperhaps it doesnt disable on the fly16:30
ricmmkdub: neg this is how SF does it so should be fine16:31
kdubjust reading through the code for that thread16:31
kdubit should be able to be disabled on the fly16:32
kduband it should start off16:32
ricmmwell I still see the pread()s16:33
ricmmis it possible that what is disabled is the event delivery through vsync() ?16:33
ricmmyet it still polls internally16:33
kdubit should be waiting on a condition variable here https://github.com/CyanogenMod/android_hardware_qcom_display/blob/cm-10.1/libhwcomposer/hwc_vsync.cpp#L9616:37
=== dandrader|lunch is now known as dandrader
kdubalf_, do gbm buffers have fences?16:59
kdubjust wondering if mg::BufferBasic should have fence-related functions, or if that's just an android think17:00
kdubthing17:00
=== alan_g is now known as alan_g|EOD
mterryBack.  Still curious if anyone knows much about Mir compositing as the screen blanks17:10
ricmmkdub: im at a loss here, im clearly disabling it17:30
ricmmcondition is zero'd in the qcom hwcomposer17:31
ricmmso that thread should block on it17:31
kdubbut its still not blocking? strange17:31
ricmmyea17:31
ricmmwe shouldn't be reaching the pread at all17:31
bschaeferracarr, ping17:32
mterrykdub, I see you in bzr log for some HWC stuff.  Do you know much about how Mir handles blanking/unblanking the screen?  Specifically, is there an opportunity for the shell to change the screen before Mir stops accepting new frames upon a blank event?17:32
ricmmmterry: the blanking is requested by the shell, so yes the shell knows when its going to unblank17:33
ricmmexactly what are you trying to do?17:33
mterryricmm, requested by shell?  Not powerd?17:33
mterryricmm, I'm looking at a bug with unity8-on-Mir where a frame or two of the dash can be seen before the greeter appears on screen-turn-on.  It seems that Mir is shutting down frames sooner than unity8 can respond to the screen-blank event and thus can't prepare the screen17:33
kdubwell, i think powerd talks dbus to the shell, and the shell commands mir what to do17:34
kdubif i understand17:34
ricmmmterry: powerd -> DBus to shell -> shell out to Mir to blank17:35
ricmmyup17:35
mterrykdub, interesting... ideally what I'd really like to happen is "blank screen; display something on that screen; have Mir stop accepting new frames"17:35
mterryricmm, kdub: OK, will look in shell code for where we do that.  May help me figure a workaround17:35
ricmmAFAIK hwcomposer blanking means the composer stops accepting frames, as well17:35
ricmmso whatever you want in place needs to be there before the blanking happens17:36
ricmmbecause also when we return to powerd, it will try to suspend (stop some pipelines, more weird behaviour(17:36
kdubwell, we stop the composition pass, which in effect, stalls the clients17:36
mterryricmm, seems like a jarring experience for user.  Ideally they see dash -> black -> greeter17:36
kdubso seems we could display a fade (or whatever design wants) to black17:37
kdubthen blank17:37
kdubthen turn on, and start rendering a fade from black (or whatever)17:37
ricmmI would believe that would be communication between shell and greeter17:38
ricmmshell can hide, draw greeter and blank17:38
ricmmit all happens rather quickly anyways17:38
racarrbschaefer: Pong17:41
bschaeferracarr, hey, sooo it looks like we want v/hscroll back into mir again :(17:41
bschaeferracarr, problem, is we break the size of the event structure mp:17:41
bschaeferhttps://code.launchpad.net/~brandontschaefer/mir/lp.1233089-fix-v-h-scroll/+merge/18866617:41
bschaeferracarr, and was wondering if you have any preference to which event info we could remove to make room for v/h scroll info :)17:42
mterryOK, yup.  I see chain now.  powerd calls com.canonical.Unity.Screen.setScreenPowerMode (defined in unity-mir) which calls Mir's configure_output17:42
bschaeferracarr, i also need to fix that branch up...some extra stuff got into it?17:43
racarrbschaefer: I don't think...at least first thought17:43
racarrthat we should remove another event17:43
racarrto make room for v/h scroll17:43
racarrsounds like eventually you have to break ABI twice17:43
racarri.e. will we want it back later17:43
bschaeferracarr, true, thats another option :)17:43
racarrjust a big confusion17:43
racarretc17:43
bschaeferyeah17:43
racarrso I would rather just bump mir client ABI but maybe17:44
bschaeferi can fix up the branch and wait for the next ABI break to go in17:44
racarrits really not opssible anymore17:44
racarryeah I think that would be good unless its a rush17:44
bschaefermissing that event info causes some things to not work, but not a rush17:44
mterrygreyback, so I'm looking at sequence on screen-blanking.  unity-mir receives a request from powerd to blank, then it asks Mir.  Is it reasonable to add a unity-mir signal to shell that it is about to blank, "better get any frames that you want in now"?17:47
=== jhodapp is now known as jhodapp|lunch
mterrygreyback, maybe in Unity.Application...?17:49
greybackmterry: maybe? So you want shell to be able to delay the screen blank?17:49
mterrygreyback, I don't know about delay, but I'd like to prepare the screen for wake-up, so that user doesn't see a frame of the dash upon wakeup before the greeter can appear17:50
racarrkgunn: When can we break mirclient ABI again?17:50
mterryracarr,  :)17:51
racarrI have an idea17:52
racarrre: mterry and greyback17:52
greybackmterry: sure, I understand the problem. But how to make sure we've the right frame ready isn't obvious to me. I thought the easiest solution is for Mir's compositor to allow shell to push a few more frames after the screen has blanked...17:52
racarrThe problem is, the client tries to swap buffers after17:52
racarrthe screen blanks17:52
racarrwhich blocks, because it cant get a new buffer, because the compositor can't display its buffer17:53
racarrits old buffer17:53
mterrygreyback, well, we could also squeeze in a frame before blanking, same diff?  I don't know if we do it right before blanking if user would see it before screen goes dark or not17:53
racarrso basically the problem is that there are these 1 or 217:53
racarrbuffers in flight, 1 held by the client17:53
racarrwhich it wants to swap17:53
racarrand potentially the last one held by the compositor which it may have not gotten a chance to render yet17:54
greybackracarr: could we just empty the Buffer ring for shell?17:54
racarryes, that's what I am getting at17:54
racarrjust cancel all the buffers, so after screen unblank17:54
greybackyep, sounds ok to me17:54
racarrthe first swap buffers wont display anything/perhaps its some sort of error17:54
racarrand then you get a buffer back, and get a chance to draw a frame17:55
racarryeah :D17:55
racarrOk17:57
racarrI can't immediately work on that...17:57
greybackso we'd need to somehow get to the SwitchingBundle for the shell, and call compositor_buffer on it a few times?17:57
ricmmif you have no time to work on it right away, why dont we just block unity-mir blanking until the shell says "cool"17:59
ricmmI can see it being just a few lines of code17:59
racarrgreyback: I think maybe we can use "drop_frames"17:59
racarrit should be internal to the graphics backend though17:59
greybackracarr: sure18:00
greybackmterry: yeah, that's probably the quickest option: to unity-mir add a signal this is emittedwhen powerd asks for blanking. In unity8, connect to that signal, have the greeter slide in18:00
greybackmterry: then also to unity-mir add an invokable method which actually does the blanking. Then call that function from QML after greeter slide-in animation complete18:01
greybackso at least the pre-blank and post-blank visuals will be identical18:01
mterrygreyback: I plan to drop the slide-in animation when blanking18:01
mterrygreyback, so should be immediate18:02
racarrbut then there is just18:02
racarrone frame before you blank18:02
racarrthat is wrong18:02
greybackmterry: but then we've the problem again. There'll be some old pre-blank frames in the shell's buffer of frames, which will only be rendered after screen unblanked18:02
greybackMir does triple buffering for apps, so every app has up to 3 frames ready at any one time18:03
mterrygreyback, heh, you mean by making the greeter show faster, I'm making it worse?  :)18:03
greybacks/apps/clients/18:03
mterrygreyback, guh, seems like the empty-queue method is the right way18:04
mterrygreyback, but that's not going to happen soon you don't think?18:04
racarrI mean I can probably get to it by thursday18:04
racarrI just mean I cant do it right now18:04
mterryracarr, I don't think this is AAA priority18:04
ricmmits not AAA priority18:05
mterryracarr, it is marked for v1freeze, but doesn't need to be fixed today18:05
racarrok18:05
ricmmwait a sec18:05
mterryracarr, for tracking purposes, bug is 123356418:05
racarrill mention it at the weekly meeting to confirm the approach18:05
greybackracarr: yeah, good idea18:05
ricmmif it will be the Mir way, then it needs to happen ASAP, because Mir has a long turnaround and it usually breaks other things18:05
racarrand hopefully do it on thursday18:05
ricmmif its shell it can wait as its higher level and simpler18:06
racarrmir ;)18:06
greybackracarr: let us know if the other Mir guys approve of it or not18:06
racarrok18:06
racarrit made it in to the .org file :)18:07
mterryracarr, to ricmm's point, do you know if there will be enough time afterward to land well?  When are you guys planning last drop?18:07
racarr"last drop" -> *chills up spine*18:07
racarrI...honestly don't know18:07
racarrkgunn: ^?18:07
mterryracarr, thanks btw for offering to do the work.  I've got the unity8 side of this, but would not be able to do Mir side in any reasonable timeframe18:09
ricmmkdub: my bad in the end18:16
ricmmdisabling it does work fine18:16
ricmmsorry18:16
racarrmterry: No worries18:17
racarrmy current delegation is to be a unity<->mir bug fairy and work on the mirserver API inbetween :)18:17
kdubricmm, no problem, i'll mp a fix that disables that signal18:18
ricmmkdub: thank you, make sure it doesnt break maguro18:24
=== jhodapp|lunch is now known as jhodapp
racarr[ RUN      ] TestClientInput.clients_receive_injected_input_per_norm18:59
racarr[       OK ] TestClientInput.clients_receive_injected_input_per_norm (17 ms)18:59
racarrand they like it too.18:59
racarrlots of mechanical event conversion code to write + tests before motion events make it through18:59
racarrbut got the inject to handle mechanism established19:00
davmor2kgunn: image 75 is finally with us, So I'll give mir a hammering tonight and tomorrow am and let you know what I find :)19:00
kgunnmterry: racarr as to last code drop - well Oct 10 is supposed to be the cut off19:01
racarrnot that anyone is counting right?!?!19:02
racarr>< ok thanks19:02
thomikgunn: ping?19:05
thomiactualkly, nvm. read my email19:07
kgunnthomi: :)19:07
thomithis is such a mess. to make matters worse, I'm pretty sure I'm getting sick :-/19:07
kgunnracarr: mterry it seems we almost need a compositor flush command ?19:11
kgunnif i understand the scrollback correctly19:11
racarryeah19:19
=== dandrader is now known as dandrader|afk
=== popey_ is now known as popey
=== dandrader|afk is now known as dandrader
=== kdub is now known as kdublunch
=== kdublunch is now known as kdub
davmor2_kgunn: I had to stop running mir after an hour animation ground to a standstill.  Are there any logs or info that would be useful to diagnosing why and I'll try again20:48
kgunndavmor2_: anything in var/crash ?20:49
davmor2_kgunn: hud service crash maliit crash and a couple of others.20:53
davmor2_kgunn: I'll clear it down though then run some more tests, also hud didn't work under mir but is under sf.  I'll run top and look at crash reports and grab some logs tomorrow it's getting late now :-)20:57
kgunndavmor2_: yep...knew about the hud...20:57
kgunndavmor2_: do you know how to unwind a crash file ?....have to download symbols20:58
kgunnrun apport backtrace or some such....i'll try to find the wiki...20:58
kgunnbut getting slammed in another channel atm20:58
davmor2_kgunn no rush dude I'm calling it a night just ping me or mail me on dave.morley@canonical.com  I'll be testing in the morning now any way :-)21:00
kgunnracarr: ping21:01
=== davmor2_ is now known as davmor2
racarrkgunn: pong21:02
kgunnracarr: in unity...we think we might be screwwed on AP test enabling21:03
kgunnthomi was just pointing out21:03
kgunnthat AP is built to just launch apps w/o shell21:04
kgunnbut i don't think that's possible (atm)21:04
kgunnracarr: ^ ?21:04
racarrpart of the plan with21:04
racarrthis idea that only the shell would launch apps/it would verify the PIDs21:04
racarrwere that 1. The shell would grow a dbus interface for launching apps21:04
racarr2. upstart could be used directly by things that want to launch apps21:05
racarrand unity recognizes the PID from upstart and matches them21:05
racarrI don't believe 2 is implemented21:05
thomiracarr: is 1. implemented?21:05
racarrNo, but it seems like it could be quickly21:05
racarrI mean, to unblock things21:05
thomiok. We need it in like.... 30 minutes... doable?21:05
racarrunity-mir could have an environment variable21:06
racarrUNITY_MIR_DISABLE_SESSION_AUTHORIZER21:06
racarrfor test runs21:06
racarrthat's doable in 30 minutes :p21:06
racarrgod you guys scared me21:06
kgunnracarr: thanks...if you could....21:06
racarrI thought it was just like "none of the tests work"21:06
kgunnracarr: you have no idea21:07
racarryeah will do it right now!21:07
thomiracarr: so.. we'd need to export that before unity8 started?21:07
thomicos that runs inside upstart, so we'd need some upstart hacks as well21:07
thomiracarr: ?21:10
thomiI guess this also means that we can no longer run apps without the shell running?21:11
racarrthomi: https://code.launchpad.net/~robertcarr/unity-mir/disable-authorizer-env/+merge/18871721:11
racarryes21:11
thomidandrader: veebers - you guys should probably read this conversation: ^^21:11
thomiracarr: yes to which question?21:12
racarryes we need to export it before unity 8 starts21:13
racarrI don't know how upstart environments work21:14
racarrpresumably, as this is a required in 30 minutes solution, upstart can echo UNITY_MIR_DISABLE_SESSION_AUTHORIZER=1 to /etc/some/file/that/i/dont/know/the/name/of21:14
racarrand restart unity :p21:15
racarrerr21:15
racarrupstart can echo, I mean21:15
racarrautopilot can echo21:15
kgunnveebers: ^ AP can echo ?21:17
veeberskgunn: yep, it can shell out or write a file etc.21:18
veebersI'm just reading the backlog to get context21:19
kgunnracarr: https://plus.google.com/hangouts/_/16ed3d4ac7bbdd50e109aaabbce63c149b8fb526?authuser=1&hl=en21:23
racarrbrt21:25
racarrill brb whole system performance21:26
racarris awful21:26
racarrneed to restart X21:26
kgunnthomi: so racarr is free ?21:42
kgunn...or we still need the UNITY_MIR_DISABLE_SESSION_AUTHORIZER=1 to /etc/some/file/that/i/dont/know/the/name/of21:42
racarrseems unnnecessary because21:43
thomikgunn: We probabyl won't need that21:43
racarrthey have this desktop file hint workaround thing21:43
thomibut lets keep it around, just inc ase21:43
thomithanks for that though racarr :)21:43
racarrok, leaving for space burning man, see you guys in a month.21:43
kgunn:))21:43
racarr...:p21:43
racarrback to input injection21:45
racarr80% done21:45
racarrreversing the lexicon and the assosciated tests is turning out to be really tedious21:46
Saviqracarr, btw, bug #1233245 - known issue?22:01
ubot5`bug 1233245 in unity8 (Ubuntu) "Volume up/down keys not working with Mir" [High,Incomplete] https://launchpad.net/bugs/123324522:01
racarrSaviq: new to me22:01
Saviqracarr, we're not getting any VolumeUp / VolumeDown keys - neither when there's an app in focus or not22:02
Saviqracarr, also, the fact that if you try starting unity8 when screen is blank results in "cannot unblank screen" and then you need to reboot, otherwise "address already in use" happens?22:02
racarrsecond one sounds like a stale unity 8 process is lingering22:03
racarrnot sure what is supposed to happen when multiple procsses try and useHWC22:03
racarrfirst one...I think ugh22:03
racarrthere may be an issue with unity8 actually getting key events because of the way its input areas work22:03
racarrits pretty unlikely that it would have key focus...22:03
racarrI guess, the first step would be to ensure mir_demo_server_input_filter produces key events on volume up/down but im almost certain it does (it certainly used to)22:04
racarrthen to ensure a normal Qt client can receive them22:04
racarrand if so then the shell just isn't getting focus22:04
racarrbut maybe they are getting lost in the Qt keymapping (As an example) which isn't tested much because OSK shortcircuits it22:05
racarrSaviq: probably the absolute first thing to try is run unity8 with MIR_SERVER_INPUT_REPORT=log and MIR_SERVER_LEGACY_INPUT_REPORT=log22:05
racarrand see how far the events get22:05
racarrill start updating my phone ;)22:05
racarrbut I can't spend a bunch of time on it right now, I need to power through this input injection thing22:06
racarrso we can get the HUD going22:06
Saviqracarr, yeah, k22:06
racarrmzanetti: Needs another hour or two of work before it can land but this should work: https://bugs.launchpad.net/mir/+bug/123337822:24
ubot5`Ubuntu bug 1233378 in Mir "Unity requires input injection API from Mir " [Undecided,In progress]22:24
racarrrtt22:24
racarrerr22:24
racarrhttps://code.launchpad.net/~robertcarr/mir/input-injecter-api/+merge/18874322:24
sarnoldhrm, what does the #ifdef ANDROID _really_ mean here, and why does ANDROID platform not have std::make_shared? http://paste.ubuntu.com/6181654/22:56
racarrsarnold: IT means is mir built with MIR_PLATFORM=android, i.e. are we using the android graphics drivers23:03
racarrandroid does have make_shared, the code is a little tricky to parse, on android it is returning a new instance23:03
racarrof the MirNativeBuffer object23:03
racarron not android (GBM or nested) it is returning an empty shared pointer (null) of type MirNativeBuffer23:03
racarr"returning a new..." -> "returning a pointer to a newly allocated instance"23:04
sarnoldracarr: thanks :)23:07
thomiracarr: still awake?23:45
thomikgunn: the next issue seems to be input related - the autopilot input emulators don't have any effect on the launched applications.23:46
thomias in, we try and tap on a button, and nothing happens23:46
thomipython23:47
thomidammit, wrong window again23:47
thomirobert_ancell: who else can I ping about this?23:49
racarrthomi: oi23:52
thomioh, you are awake :)23:52
thomiracarr: so.. any time I try and use the UInput touch driver that autopilot has, a big fat nothing happens on the screen23:52
racarrok that is supposed to be synthetic udev devices right?23:53
thomiyes, essentially it's a user-space udev driver23:53
racarrIt should work, so the first step is really to get MIR_SERVER_INPUT_REPORT=log and MIR_SERVER_LEGACY_INPUT_REPORT=log23:54
racarrthen we should be able to see if the devices are loaded/recognized23:54
racarrand what happens23:54
thomiso, I should set those before starting unity8, and then paste you the unity8 log file?23:54
thomiI suspect the problem is that the udev device node only gets created when autopilot creates the touch device, which is long after the shell has started23:55
thomidoes that sound plausible?23:55
racarrabout pasting the log file and startying unity8: Yes :D lets get stderr and stdout23:55
racarrabout the theory: It's plausible but device adding/removing should work23:55
thomiOK, I'll do that now23:56
racarrcool23:57
racarrwe should have a MIR_DUMP_EVERYTHING_THAT_MAYHAPS_BE_USEFUL_FOR_DEBUGGING23:57

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