/srv/irclogs.ubuntu.com/2016/11/09/#ubuntu-mir.txt

=== JanC is now known as Guest19389
=== JanC_ is now known as JanC
=== chihchun_afk is now known as chihchun
RAOFUrgh.04:17
RAOFI wish we didn't so systematically destroy our stacktraces at every opportunity.04:18
RAOFAdmittedly it doesn't help that this is over distributed 2 processes.04:33
RAOF???05:03
RAOFOK, so tearing down and rebuilding the compositor is an integral part of applying nested's display configuration?05:04
dufluExceptions. Love them or hate them05:04
RAOFOh, maybe no it isn't.05:06
RAOFAnd it's just that this test relies on a side-effect of restarting the compositor to work.05:07
RAOFAces!05:07
dufluUmm, Trump is about to win05:14
RAOFYeah, less aces.05:48
dufluRAOF: Could you look at my latency testcase fixes? For some reason that's failing a lot today.06:04
RAOFSure.06:05
anpokRAOF: hmm06:42
RAOFanpok: Yo?06:42
anpokI am looking at a similar spot..06:42
anpokthe nested platform reconfiguring the display configuration rather late on startup..06:43
anpoksuch that the surface of the nested compositor gets occluded for some time06:43
anpokduring stop/start in mediating display changer..06:44
anpokespecially in our tests where stub graphics is used..06:44
anpokso no input events can get through.. until the compositors have run another time and have redrawn the surfaces of the nested server06:45
anpokwe should make that more atomic06:45
anpokor refine the occlusion logic..06:46
RAOFHm.06:49
RAOFThe nested platform's surfaces *aren't* occluded on startup, though.06:50
RAOFThey just don't have any content, so they're not focused?06:50
dufluI would like to think we don't need occlusion testing in future. In the arbitrary compositor case where anything can be translucent, duplicated on multiple desktops, or shrunked to previews, occlusion simply never happens often enough for it to be a useful thing to test for or base logic on07:02
duflu*shrunken*07:02
RAOFI disagree; occlusion remains a super common case. Almost all of my windows spend almost all of their time occluded.07:03
RAOFThe times where windows are *not* occluded are the outliers.07:04
dufluI think both points are valid. But occlusion testing needs to either be perfect or not present at all. Because faulty occlusion testing is a problem obviously, and a complex one at times07:04
=== chihchun is now known as chihchun_afk
anpokRAOF: hm the order is host server starts.. nested server starts.. client connects to nested and posts.. then nested server surface posts.. (is visible then) .. the reconfiguration happens (maybe it was started earlier) .. now nested surface is occluded [meanwhile the tests start to send input events] ..07:25
anpoknow after the configuration is done compositor in the host server start drawing.. now the nested surface is visible again07:26
anpokthe configuration change is not atomic to the rest of the system07:26
=== chihchun_afk is now known as chihchun
alan_ggreyback: I did it for you. 8^) You could vote: https://code.launchpad.net/~alan-griffiths/qtmir/WindowControllerInterface-isVisible/+merge/31018409:27
greybackalan_g: thank you09:31
=== chihchun is now known as chihchun_afk
=== chihchun_afk is now known as chihchun
=== hikiko is now known as hikiko|ln
alan_galf_: try this: https://code.launchpad.net/~alan-griffiths/miral/improved-tiling-wm/+merge/31042112:23
=== dandrader is now known as dandrader|afk
=== dandrader|afk is now known as dandrader
=== dandrader is now known as dandrader|afk
=== dandrader|afk is now known as dandrader
=== dandrader is now known as dandrader|afk
=== dandrader|afk is now known as dandrader
=== chihchun is now known as chihchun_afk
=== JanC_ is now known as JanC
RAOFWe really need to stop writing acceptance tests that rely on real time.23:02
bschaefer+123:07
bschaeferRAOF, rather we need to agree upon that :)23:07
RAOFWell, no.23:07
bschaeferhmm well if someone doesnt agree with that, and still pushes real time tests23:08
bschaeferthen we'll still have that issue?23:08
RAOFWhat we need to do is have someone stick a faketime wrapper around our existing tests and then reject any branch that adds real time tests.23:08
bschaeferthat sounds better23:08
anpokRAOF: i am off already - what do you think about moving the location of the display buffer out of the graphcis platform - and thus being able to preserve the buffer when the display is reconfigured?23:13
anpokor actually moving that information out of the buffer might not be necessary..23:13
RAOFanpok: Reconfiguring the display will, in general, require that the display buffer be invalidated.23:14
anpokat least it seems as if it should not be there.23:14
anpokRAOF: hm thats kind of fine.. but23:14
RAOFNow, a bunch of display configuration does *not* require the display to be reconfigured, true.23:14
anpokthat currently mean that compositor threads are reconstructed23:14
anpok*means23:15
anpokwhich means that compositors come and go...23:15
RAOFBut I think the graphics platform is really the only place where you can tell what sort of configuration changes invalidate the DBs.23:15
anpokand produce unnecessary notifications23:15
RAOFSo, the branches that have landed (for android and kms) and are landing (for nested) reduce this quite a lot, and can be improved to invalidate the DBs even less often.23:17
RAOFBut, in general, if you've got one thread per display buffer, a display configuration change may require compositor threads to be killed or started.23:17
anpokok .. too tired. I am concerned that our reconfigurations are not processed as a single transaction in mir.. So from one perspective want to avoid the problematic cases.. and from the other perspective fix the way the configuration is applied23:17
Pharaoh_Atemhey, do you guys do any testing of your pkg-config files to make sure they are fully defined?23:18
anpokPharaoh_Atem: probably not enough23:19
RAOFHm. By ‘single transaction’ do you mean ‘Hey, shell, I'm going to be changing the configuration, so could you please do a composition pass to these new buffers before I do the switch’?23:19
Pharaoh_Atemanpok: I was asking because I was unable to build something to depend on mir because mir's own pc files don't declare what pkg-config modules they depend on23:20
anpokRAOF: not quite there are many internal bits.. that should wait until the switch is done23:20
Pharaoh_Atemso it didn't pull in things automatically23:20
RAOFPharaoh_Atem: We *do* use those pkg-config files in all of the Mir downstreams, so we should notice any really glaring lacks. What was missing?23:21
RAOF(At least for releases; we don't necessarily notice when lp:mir is wrong)23:21
Pharaoh_Atemwell, I'm using mir 0.24.123:21
RAOFAnd what was missing?23:23
Pharaoh_Atemone sec23:23
anpokRAOF: i found display reconf to be the main source of unexpected misbeheavior on startup23:24
anpokin our acceptance tests..23:25
RAOFThis does not surprise me terribly.23:25
anpokwith that closing thought.. -> off23:25
anpok:)23:25
bschaeferanpok, byes!23:25
RAOF*Particularly* for nested.23:25
RAOFanpok: Sleep well!23:25
anpokRAOF: thats why there is now a preserve dbs in stub graphics MP23:25
bschaeferRAOF, ill have to poke you after this release about apply config :)23:25
bschaeferi suppose it'll just copy the old API?23:26
anpokthat only helps in the trivial cases23:26
bschaefereww cc1plus: error: invalid argument ‘/build/mir’ to -fdebug-prefix-map23:27
RAOFRace race race your build...!23:28
bschaeferhaha... sadly this is for CI soo restart...23:28
* Pharaoh_Atem is rebuilding the libinput->mir->mesa chain23:28
Pharaoh_AtemRAOF: https://paste.fedoraproject.org/469496/47817680/23:31
Pharaoh_Atemseems like xkbcommon wasn't defined as a Requires for mirclient23:32
RAOFPharaoh_Atem: Quite true.23:33
bschaeferhuh why dont we have that as a depends?23:33
* bschaefer has made this assumption23:34
RAOFWe presumably missed that because all of our downstreams link it explicitly.23:34
Pharaoh_Atemthat, and also you guys don't have dependency generation from pkg-config files23:34
bschaeferRAOF, yeah ive had to manually link with it23:34
bschaeferRAOF, hmm libmirclient-dev pulls in libmircommon-dev which should pull xkb?23:35
bschaefer(not sure about the pkg file)23:35
Pharaoh_Atemit does on Ubuntu, because those are manually specified23:35
RAOFRight; we're missing a Requires.private there.23:37
Pharaoh_Atemmmhmm23:37
Pharaoh_AtemI suspect there's more, but that was the first issue23:37
RAOFQuite plausibly. This is indeed not something we use.23:37
RAOFFedora packaging autogenerates build-dependencies by scanning pkg-config?23:38
Pharaoh_Atemyes23:38
Pharaoh_Atemwell, no23:38
Pharaoh_Atemthat would be cool and awesome, but tricky23:38
RAOFBut there's a tool that will populate your control files based on pkg-config that you'll need to edit?23:38
Pharaoh_Atemyep23:39
Pharaoh_Atemno23:39
Pharaoh_Atemit's an addendum23:39
Pharaoh_Atemgenerated at build time23:39
Pharaoh_Atemhttps://copr-be.cloud.fedoraproject.org/results/ngompa/Mir/fedora-24-x86_64/00472459-mir/build.log.gz23:39
Pharaoh_Atemat the end of the log, you see all the generated install-time dependencies23:40
Pharaoh_AtemMy spec is nowhere near as defined: http://copr-dist-git.fedorainfracloud.org/cgit/ngompa/Mir/mir.git/tree/mir.spec23:40
RAOFAh. You generate the dependencies for foo-dev from the pkg-config files?23:40
Pharaoh_Atemyep23:41
Pharaoh_Atemdeps are generated from scanning the files (binaries, libraries, dist/egg-info data, pc files, etc.)23:41
Pharaoh_Atemfor example, instead of using libxkbcommon-devel, I could have used pkgconfig(xkbcommon) as my BuildRequires for that library devel package23:42
RAOFWell, I've added the xkbcommon to the relevant pkg-config file in trunk; you're right, though, it's moderately  likely that this isn't the only missing link in pkg-config, as we basically don't use pkg-config that way.23:45
Pharaoh_Atemwhich is somewhat ironic, given that Debian was the creator and maintainer of modern pkg-config :/23:46
Pharaoh_Atemnot one of the Debian packaging systems supports parsing and exploiting pkg-config for these things23:47
Pharaoh_Atem(i.e. classic debhelper, cdbs, dh)23:47
RAOFHm. Having a look through our #includes, I think this is actually the only one we miss.23:47
RAOFYeah :)23:48
bschaeferwell i can approve w/e its up :)23:48
RAOF...it actually wouldn't be terribly hard to write a dh_pkgconfigdeps helper that extracted the relevant info and put it into ${depends:PkgConfig}...23:50
Pharaoh_Atemthen you'd need ${Provides:PkgConfig} too23:50
Pharaoh_Atemyou need a standard form of representation23:50
Pharaoh_Atemwhich thankfully, you guys can do now, since apt now supports version-release in virtual Provides23:50
Pharaoh_Atemerr EVR23:50
Pharaoh_Atemsee, I keep up with what you guys are doing on the other side of the fence ;)23:51
RAOFNo, I don't think so. You'd just look up the -dev package providing the relevant pkg-config file.23:51
Pharaoh_AtemRAOF: that's way more expensive though23:51
RAOFAbsolutely! But it's build-time expensive, which is cheap.23:51
RAOF:)23:51
Pharaoh_Atem>_>23:51
* Pharaoh_Atem shrugs23:51
Pharaoh_AtemI guess23:51
Pharaoh_Atemyou already do this for library deps, to some extent23:52
Pharaoh_Atemso why not, eh?23:52
RAOFTo a huge extent, yes.23:52
Pharaoh_Atemwell, I say some extent, because a large segment of Debian packages opt to not do so23:52
Pharaoh_Atemand manually specify everything (which is insane!)23:52
RAOFbschaefer: https://code.launchpad.net/~raof/mir/missing-pkgconfig-requires/+merge/31049723:53
RAOFCertainly for things which *aren't* shared libraries we don't have nearly the same sort of tracking.23:54
bschaefernice23:54
RAOFBut I can't think offhand of a single package I've touched which has manual dependencies on a shared library package.23:54
RAOF(Python and other things which aren't ELF DSOs, very much yes)23:54
Pharaoh_AtemI can't either, but then again, I try not to make Debian packages my reference for packaging very often23:55
Pharaoh_Atemtoo much stuff everywhere and difficult to parse most of the time23:55
RAOFYeah, I feel fairly similar reading .spec files :)23:56
Pharaoh_Atemeh, spec files can be clean (and usually are most of the time)23:56
Pharaoh_Atembut some really old ones are nuts23:56
RAOFLikewise Debian packaging :)23:57
RAOFAlthough spread over multiple files.23:58
Pharaoh_AtemI immensely dislike touching libguestfs packaging23:58
Pharaoh_AtemCDBS is way too confusing23:58
* Pharaoh_Atem has to do that from time to time at work23:58
RAOFYeah, also very much old.23:58
RAOFCDBS is from the dark ages before debhelper was sufficiently helpful.23:58
Pharaoh_Atemnow my only problem with debian packaging is that the really modern stuff doesn't tell you what it's doing23:59
Pharaoh_Atemit's hard to figure out how it figures out things23:59

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