/srv/irclogs.ubuntu.com/2013/03/26/#ubuntu-mir.txt

RAOFracarr: Your mesa fails to build against trunk; but for an obvious reason that I'll just fix up.00:07
racarrRAOF: thanks...sorry I have mild00:12
racarrbranches inside branches schizophrenia the last 2 weeks00:12
racarr*motions to chalkboard filled with diagrams*00:13
racarrIt's all wheels inside wheels...ive seen it....*twitch*00:13
RAOFracarr: Good, that (finally) works. Thanks!00:25
* RAOF has a pleasing, but somewhat banded, plasma flying across his display.00:25
* kdub noticed the bandedness too00:31
RAOFMy guess is that it's not using a full 8-bit colour range, but whatever.00:33
racarrRAOF: If you merge receive-input-in-client you can quit the plasma with the q key!00:56
racarrits a revolution in user interaction00:56
racarr;)00:56
racarrthanks for testing and fixing :)00:56
RAOFShould land in the PPA next time jenkins scans the branches.00:58
RAOFracarr: Got any idea how you'll handle keymaps? :)01:01
RAOFracarr: Do we have to poll() every 10ms for input?01:14
* duflu hopes that's a joke01:16
* duflu afk01:16
racarrRAOF: No there should be a comment there...01:16
racarrmaybe I didn't push everything yet01:16
racarrthere just needs to be a way to interrupt it so we can use a longer poll time without making shutdown slow (or the test times become huge)01:17
racarri.e. a wake fd01:17
racarrit might that a droidinput::Looper should be used but01:17
racarrneed to sync up with Alan on that in the morning...01:17
RAOFIf you expected there to be a comment about the poll(), then you haven't pushed everything :)01:17
racarrRAOF: As for keymaps, currently it is using the android keymap files+format01:18
racarrthough only Generic is available :)01:18
racarrI think we will replace it01:18
racarrwith libxkb01:18
racarrits pretty well abstracted, in that its just part of the InputReaderPolicy01:18
racarrpushed more changes :) but probably just containing that comment that I just explained01:18
robert_ancellRAOF, I'm thinking that that Mir on X wont be ready by 13.05. Does that sounds right to you (you have a bp item though eleni is working on it right?)?02:57
RAOFrobert_ancell: Correct, eleni is working on it.02:59
RAOFI think it could be ready for 13.05 if it's a priority.02:59
robert_ancellRAOF, I'll reassign the item then02:59
robert_ancellIt's a very nice to have, but not essential03:00
robert_ancellRAOF, there are two items right, SDL on Mir then X on SDL on Mir right?03:01
RAOFNo, just Mir on SDL.03:01
* robert_ancell gets confused with order03:02
robert_ancellyep, that sounds more like it03:02
robert_ancellRAOF, so we already have SDL on X, so mir on sdl = mir on X?03:02
RAOFCorrect.03:02
robert_ancelland that was easier than mir on X?03:02
RAOFEleni's just using SDL as the toolkit for Mir-on-X03:02
dufluIt should be equally easy to make Mir on native X after that. The boiler-plate for an X Window and GLX setup isn't that big.03:03
duflusmspillaz: Bored with uni already?03:11
tvossRAOF, ping06:12
RAOFtvoss: Yo!06:12
tvossRAOF, ninjaaron asked about libxkb yesterday, too. Will ping him today, he seemed to know a lot about it06:14
tvossRAOF, perhaps we can get some help06:14
RAOFtvoss: I presume everyone's referring to libxkbcommon?06:14
RAOFWhich we should totally use.06:14
tvossRAOF, yup :) libxkbcommon it is06:15
* tvoss is too lazy to type common, no tab completion :)06:15
RAOFGrr, GMock.06:24
tvossRAOF, what did you do? can I help? :)06:25
RAOFVerifying that a destructor is called is unnecessarily annoying.06:25
RAOFOr: verifying that a destructor is called in a couple of tests, and not caring in most of them, is unnecessarily annoying.06:26
tvossRAOF, okay06:26
tvossRAOF, an existing test?06:26
RAOFtvoss: Cleaning up in https://code.launchpad.net/~raof/mir/buffer-age-misc-cleanups/+merge/15516406:27
tvossRAOF, looking06:29
dufluHmm, I hope we don't end up with XKB (extension) semantics in using libxbkcommon. That was a major problem for Compiz and not something I'd like to see happen in Mir06:32
tvossduflu, the general idea is that we reuse the existing keymapping solution without pulling in all of the atom handling06:33
RAOFduflu: I don't believe it mandates xkb06:33
* RAOF -> baby06:34
duflutvoss: Twas only the grab behaviour that was wrong I think. And we're trying to avoid that right now AFAIK06:34
tvossduflu, yup06:34
* duflu wonders how many times the words "Android" and "#include <X11/" need to appear in the Mir source before it's "too much"06:38
duflutvoss: Can you point me to the design principle/reasoning/rationale for separating the protobuf from protobuf.wire?06:55
dufluor /pattern06:56
tvossduflu, not sure what you mean?06:56
duflutvoss: There are two layers of protocol. There must be a good reason why it's done that way06:56
tvossduflu, from what I see on trunk, the wire protocol deals with the actual rpc, while the protobuf definition defines the actual types and services that we expose06:59
RAOFduflu: AFAIK "#include <X11/" is nowhere in the Mir source?06:59
duflutvoss: Yeah I can see that. But I don't yet understand why we need to abstract an abstraction (wrap protobuf in protobuf). I need to understand more of the "why"07:00
dufluRAOF: Not yet, but potentially when we use libxkbcommon :)07:00
duflu-need + want07:00
tvossduflu, can you check with alan_g please? I remember there was a reason ... but I'm otp right now :)07:01
dufluKay07:01
RAOFduflu: There's no X11/ in libxkbcommon :)07:06
dufluWhee, small win07:10
* duflu thinks this looks like a hack: /usr/include/xkbcommon/xkbcommon.h07:17
dufluOne designed for Weston?07:17
tvossduflu, hack in what respect?07:20
duflutvoss: The name "xkb..." and yet it has no dependency on *XKB* stuff under X11/. Seems a bit backwards. Thought that could be resolved simply with better naming07:21
tvossduflu, that's a good point actually. While reading through the library I though about a name along the lines of libkeymap :)07:22
RAOFWooo!08:13
RAOFI win the “work around annoying bits of gmock” award.08:13
tvossRAOF, \o/08:36
=== alan_g is now known as alan_g|afk
=== AlanChicken is now known as AlanBell
=== alan_g|afk is now known as alan_g
dufluArgh. I hate it when Europe wakes up. No offence :)09:17
smspillazRAOF: the re-entrancy rule strikes again ?11:24
=== mmrazik is now known as mmrazik|lunch
=== mmrazik|lunch is now known as mmrazik
=== cjohnston_ is now known as cjohnston
=== alan_g is now known as alan_g|lunch
=== alan_g|lunch is now known as alan_g
=== Saviq_ is now known as Saviq
=== alf___ is now known as alf_
kdubmorning15:05
tvosskdub, good morning :)15:06
UbuPhilluphi15:07
kgunnkdub: ping15:14
racarr_Morning15:15
tvossracarr_, good morning :)15:17
kdubkgunn, pong15:20
alan_gracarr_: Morning. Looking into the Looper thing. Is definitely a difference in behaviour, not worked out why yet.15:27
racarr_alan_g: Thanks :)15:27
racarr_I am wondering, how it was supposed to work as it stands, as it seems like the deadline timer is unused?15:27
racarr_(Wondering if there is some bit of boost asio I do not understand)15:28
alan_gracarr_: is all asio magic to me - tvoss seems to understand (or have a bit more experience of) this stuff15:29
tvossalan_g, racarr_ can you point me to the bit that is not working?15:29
alan_gtvoss: the bit racarr_ is referring to is Looper::pollOnce(int timeoutMillis) with timeoutMillis > 015:31
racarr_tvoss: It works with the android::Looper implementation but not with our boost::asio based implementation :)15:32
racarr_it's all described in here https://code.launchpad.net/~robertcarr/mir/receive-input-in-client/+merge/15536815:32
racarr_"Currently this is failing to work with MIR_INPUT_USE_ANDROID_TYPES=false ...."15:32
tvossalan_g, racarr_ looking ...15:32
racarr_three items I could take up15:52
tvossracarr_, on the Looper issue15:53
racarr_1. SW cursor (seems hard to land)/pointer input 2. Back to inprocess EGL 3. Clean up qtubuntu mir branch15:53
racarr_tvoss: Oh?!15:53
tvossracarr_, at your items: I would focus on inprocess EGL15:54
racarr_Ok. makes sense15:56
racarr_actually depending on how it is structured that might all live in Qt ubuntu now that prepare-for-inprocess-egl has landed15:57
tvossracarr_, what's the magic cmake option to enable compiling the Looper relying on boost?15:59
=== jono is now known as Guest461
racarr_tvoss: MIR_INPUT_USE_ANDROID_TYPES=false15:59
racarr_which is the default15:59
racarr_should use the looper coming from 3rd-party/android-deps/bla/bla (with the boost implementation in header file)16:00
tvossracarr_, ack16:00
* alf_ is starting to get really tired of gcc ICEs16:13
racarr_alf_: I know what you mean...16:13
tvossracarr_, can you give http://pastebin.ubuntu.com/5649723/16:13
tvossa spin?16:13
racarr_alf_: At some point last week I wrote like 900 lines of new code...then -> ICE....I wanted to cry!16:14
racarr_alf_: SOme bug report implied it may be fixed upstream I am thinking of building my own G++16:14
racarr_tvoss: Trying :)16:16
tvossracarr_, cool16:16
racarr_tvoss: alan_g: It's strange...changes to Looper.h wont actually trigger16:16
alf_racarr_: my current methodology is to build with clang, so I can get an idea of what the problem is16:16
racarr_recompile of android-input16:16
racarr_always have to make clean16:16
racarr_alf_: Ah...that's a better idea than crying16:16
alf_racarr_: :)16:17
alan_gracarr_: that's because CMake's dependency tracing doesn't track #include MACRO16:17
racarr_tvoss: Still the same.16:17
racarr_alan_g: ah....16:17
alan_gJust delete a few files in 3rd_party/...16:18
tvossracarr_, then I need to look a bit deeper16:18
=== mmrazik is now known as mmrazik|otp
racarr_tvoss: googling around people kind of implied16:18
racarr_the only way to do this with asio is in the timer callback16:19
racarr_you have to cancel the work.16:19
racarr_then there is going about resetting the io service and16:19
racarr_readding the async_read...and I dunno16:19
racarr_not sure asio is the right fit here16:19
racarr_tvoss: A thought..."woken" needs to be reset right16:21
racarr_i.e. around l585 if (woken.load())16:21
alan_gracarr_: it doesn't seem at all easy. Am proposing a fix branch16:23
kdubalf_, could you give another look? https://code.launchpad.net/~mir-team/mir/consolidate-crossbuild-scripts/+merge/15476216:23
racarr_it doesn't help though16:23
alf_kdub: sure16:23
racarr_alan_g: Yeah...it's really complex to how it should be :/16:23
racarr_I think run_one should take a timeout ;)16:23
alan_gracarr_: Agreed16:24
alan_gracarr_: https://code.launchpad.net/~alan-griffiths/mir/receive-input-in-client-patch/+merge/15554916:25
alf_kdub: @l.78, the line is not wrapped. Other than that looks good.16:26
racarr_alan_g: It looks like there is some confusion in this branch? extra changes etc16:27
alan_gBugger - that has some trunc changes tpp16:27
alan_gBugger - that has some trunc changes too16:27
racarr_:)16:27
kdubalf_, sorry, got lost in some merges... fixed now16:28
alf_kdub: also, is lp:~kdub/mir/ndk-rewrite the best place to get information from for creating a chroot, or is lp:mir enough now?16:29
kdubalf_, after that branch, just lp:mir16:30
kdubi'll delete that branch, and send out a mail on the mailing list16:30
alf_kdub: so, we should update at l.65 ?16:30
kdubalf_, yes :/ i corrected that, but that got lost in my merge mixup too16:31
kdubfixed16:31
alan_gracarr_: I hope that fixes it16:32
alan_g(At least it looks like I intended)16:34
racarr_alan_g: Oh good idea at line 31016:34
racarr_(test name change)16:34
alan_gracarr_: np16:35
alf_kdub: thanks, approved16:35
racarr_testing now16:35
racarr_alan_g: All works16:36
racarr_going to merge your branch in to mine and push16:37
racarr_alan_g: tvoss: Thanks both :)16:37
=== mmrazik|otp is now known as mmrazik
racarr_I wonder if the InputReceiverThread on the client side should be/use an android::Looper16:39
alan_gracarr_: hopefully we'll soon be confident to delete the ANDROID_TYPES=on option (and the code to support it)16:39
racarr_Mm16:39
racarr_Currently it is using a little mini select loop but it needs optimization (diff l598)16:39
=== alan_g is now known as alan_g|afk
racarr_*really happy to finally being close to landing an end to end test for input*16:49
racarr_it's easy to move fast there now :)16:50
tvossracarr_, yup, great work :)16:50
racarr_aww merge conflicts16:50
racarr_tvoss: Oh while you are around i wanted to ask you...was trying to find a good input demo16:51
racarr_but nothing qwidget based works on qtubuntu for me16:51
racarr_expected/known?16:51
racarr_(Not many QML demos that work with no cursor ;))16:51
tvossracarr_, mostly known I would say. I would think that the qml examples should work, though16:51
racarr_at least precanned ones in /opt/qt5/examples16:52
racarr_yeah16:52
racarr_there is just only one that will accept keyboard input before mouse input16:52
racarr_and it makes a pretty lame video XD (qtdeclarative/quick/keynavigation)16:52
tvossracarr_, ack, @cursor: is there a way to get a cursor rendering easily? IIRC you can provide the InputReader with a cursor handler16:53
racarr_tvoss: We have a cursor handler in trunk16:53
tvossracarr_, is that one actually rendering?16:53
racarr_and InputManager takes a CursorListener object, which would be the place to put a renderer16:53
racarr_but the CursorListener is null atm16:53
racarr_not sure how to render it16:54
racarr_at least in a way that will land :)16:54
tvossracarr_, yeah, so let's postpone a cool video until we have a way to expose the hw cursor, if that's fine with you16:55
racarr_Yeah :)16:56
racarr_I amw ondering if I should try and work on that now...I dunno its probably not that difficult I just can't figure out the interfaces in mir...16:56
=== alan_g|afk is now known as alan_g
racarr_the thing is the cursor listener shouldn't speak directly to the compositor or if it does16:58
racarr_that's a pretty big change!16:58
racarr_because it makes lines that cross surface stack where there were none16:58
tvossracarr_, hw cursor support is more likely to end up somehwere in graphics16:58
racarr_but surface stack isn't really prepared to16:58
racarr_represent a cursor16:58
tvossracarr_, yup16:58
tvossracarr_, so focus on in_process_egl16:59
racarr_ok17:00
racarr_tvoss: The way I was handling that in the iteration-1 branch was17:00
racarr_using almost unmodified qtubuntu backend, and ubuntu_platform_api backed by libmirserver17:01
racarr_does that still make sense? I am not sure exactly what the status of ubuntu_* API is17:01
racarr_I have this thought that we don't really need "qmir" just qtubuntu, a nd ubuntu-application-api-mirclient and ubuntu-application-api-mirserver17:02
tvossracarr_, that's a difficult one. Need to give it some thought17:04
racarr_tvoss: ok17:05
racarr_tvoss: It's a convenient way to proceed ;) that ends with little code duplication17:05
racarr_but I am not entirely sure it makes sense17:05
racarr_i.e. why is the launcher an indirect consumer of ubuntu-application-api17:06
racarr_seems weird.17:07
racarr_ill delay it a day and at least get the inserver EGL display and a demo inprocess app proposed today :)17:10
=== racarr_ is now known as racarr
tvossracarr, that sounds like a good idea :)17:10
alf_status: working on compositing-on-demand, reviewing, fighting with gcc ICEs17:26
racarrit's a shame too that its not easy to downgrade to 4.6 now because of the override use (which I quite like actually)17:27
racarrits just like it's some sort of cruel joke being played on us XD17:27
racarrhmm issues with the new test_client_mir_surface tests when merging trunk in to receive-input17:44
alf_racarr: alan_g: Do we need SurfaceStack::raise_to_top()? No one is using it, and it has memory problems (it uses a potentially invalidated iterator).17:53
alan_galf_: dead code? Delete it!17:54
=== Cheery_ is now known as Cheery
racarralf_: Apparently not!17:58
racarrI think it was used in an early version of sessions/ in copenhagen ;)17:58
racarrthen we decided restacking the surfaces was silly when all we need is visibility17:59
alf_racarr: alan_g: preparing an MP17:59
racarrobviously we will need something like it one day. but lets just drop it and17:59
racarrreadd it working correctly when we do :)17:59
racarrhmm18:00
racarrwhere does the server MesaNativeDisplay implementation go :)18:00
racarrmir::graphics::EGL::?18:01
=== alan_g is now known as alan_g|EOD
kgunnracarr: ping18:41
kgunnalf_: hey, can you change https://blueprints.launchpad.net/ubuntu/+spec/client-1303-mir-glmark2 to have the drafter set to mir-team ?18:49
racarrkgunn: Pongalong!18:51
racarrI think I need to make19:43
racarrmir::DisplayServer mockable but its not clear what the interface is19:43
racarrthe EGLNativeDisplay constructor (well or more likely factory function)19:44
racarrwants to take mir::DisplayServer I think19:45
racarrbecuase the thing is, think of the code paths in unity. Unity starts up, initializes a server configuration, and then calls off to mir::run_mir(Configuration)19:46
racarrat which point control goes to Mir19:46
racarrbut unity needs a time to start, threads19:46
racarrand get some reference to the display server instance (after it is prepared)19:47
racarrso I think we need some callback, the display server instance invokes inbetween starting and entering the main loop19:47
racarrto give unity a time to say, start a thread which creates a surface and starts rendering.19:48
racarreven simpler just imagine we are talking about a simple EGL demo app instead of unity. What does it need? It needs the display to get the platform package to initialize the egl context, and it needs a surface controller19:49
racarrto create a surface.19:49
racarrso it seems like maybe mir::DisplayServer should provide these19:50
racarrthrough a...<NAME GOES HERE> interface19:50
racarrfirst thought is mir::ServerInstance but actually this interface19:51
racarrdoesn't need start/stop like mir::DisplayServer does (and you would guess a ServerInstance would)19:52
racarrso maybe it's more like mir::ServerComponents is the interface with (.shell_surface_controller(), .display(), etc...)19:52
racarrand mir::DisplayServer implements19:52
racarror maybe mir::ServerInstance is the concrete implementation containing start/stop and the .display(), etc...19:53
racarrand mir::DisplayServer becomes the interface with just19:53
racarrthe component access19:53
racarrI think that makes sense. a mir::DisplayServer has a bunch of components that make up the interface mir::* exposes to the shell. a server instance is a display server with API for execution19:55
racarr*shrug*19:56
racarrSorry sounds kind of pedantic but I think it's important to think about this interface because we need to make sure Unity and Mir are cleanly mockable from eachother.19:56
kgunnkdub: quick one i think19:58
kgunnwhat exactly did "display integration" mean ?...i mean  you already go hwc vsync working for nexus4 (not nec'lly landed...but)19:59
racarrLunch!20:00
=== racarr is now known as racarr|lunch
kdubkgunn, making sure that all the pieces fit together (integration test)20:00
kgunnkdub: thanks...it was marked as todo...but i suppose that will hinge on some mp's to say done...20:01
=== racarr|lunch is now known as racarr
kgunnrobert_ancell: would you mind making mir-team drafter on https://blueprints.launchpad.net/ubuntu/+spec/client-1303-mir-nexus421:04
robert_ancellkgunn, done21:04
kgunnthank you!21:04

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