/srv/irclogs.ubuntu.com/2013/09/09/#ubuntu-mir.txt

RAOFOk. Now that I can boot again...00:50
=== chihchun_afk is now known as chihchun
olliRAOF, ping03:43
RAOFolli: Pong03:43
ollihey03:43
olliI don't have the dial in information yet, but will send it via mail to you at the start of the meeting (which starts in 2h:16min)03:44
olliwe won't have IRC at the partner side and (g)mail overall is flaky at best03:44
olliRAOF, do you want to give me a cell I can send the information to just in case?03:44
olli_RAOF, we are starting a bit early05:48
olli_mike should have sent you the dial in information05:48
RAOFolli_: Yes.05:50
RAOFAlthough without a country code.05:51
=== chihchun is now known as chihchun_afk
=== chihchun_afk is now known as chihchun
RAOFolli: http://lists.freedesktop.org/archives/mesa-dev/2013-August/044021.html07:21
RAOFolli: (Vendor-neutral OpenGL dispatch)07:22
RAOFolli: Are you likely to need me more on this call?08:17
olliRAOF, we are good08:27
ollithanks for joining!08:27
RAOFThanks.08:28
* RAOF heads Zoƫwards08:28
mlankhorstRAOF: hmz enough mir bugs filed against xserver :P11:13
=== hikiko is now known as hikiko|lunch
alf_mlankhorst: any thoughts on https://lists.ubuntu.com/archives/mir-devel/2013-September/000376.html ?12:07
mlankhorstalf_: yeah, not sure if it only affects the mir case, I've seen a bug like that before12:11
=== alan_g is now known as alan_g|lunch
=== hikiko|lunch is now known as hikiko
mlankhorstalf_: by any chance can you compile intel-gpu-tools?12:14
alf_mlankhorst: I can, do you need any specific version (e.g. not what's in the package right now)?12:16
mlankhorstgit12:16
alf_mlankhorst: ok, getting and compiling will ping you when I am done12:17
mlankhorstgrab the kernel from http://kernel.ubuntu.com/~kernel-ppa/mainline/drm-next/current/12:17
mlankhorstand then boot it, you don't need to install intel-gpu-tools, just compile it12:17
alf_mlankhorst: ok12:17
alf_mlankhorst: (I am already using drm-next kernel)12:18
mlankhorsttest if the bug still occurs there, if so please run intel-gpu-tools/tests/gem_flink_race ?12:18
mlankhorstrequires i91512:19
mlankhorstand also prime_self_import12:24
alf_mlankhorst: bug still occurs (gem objects "disappear" when using prime fds, work correctly when using GEM names)12:30
alf_mlankhorst: result of tests: http://paste.ubuntu.com/6083268/12:30
mlankhorstalf_: hm can you set pls_die = 0 before each pthread_create in those 2 tests?12:32
alf_mlankhorst: ok12:32
mlankhorstalf_: hm and also run the commands without Xorg running :)12:32
mlankhorstalf_: hm, also seems that it requires RAOF's patch for determining dma-buf size12:34
mlankhorstbut that one doesn't matter as much12:34
mlankhorstit's a separate test12:35
alf_mlankhorst: I have added pls_die before the loops that pthread_create() in the tests12:36
mlankhorstyeah then just retry from console, -41 is suspect :P12:36
alf_mlankhorst: gem_flink_race consistently succeeds without leaks but prime_self_import occasionally fails at export-vs-gem_close-race12:43
mlankhorstalf_: oops, lost connection12:57
mlankhorstdid I miss anything?12:58
alf_mlankhorst: gem_flink_race consistently succeeds without leaks but prime_self_import occasionally fails at export-vs-gem_close-race (http://paste.ubuntu.com/6083327/)12:59
mlankhorstalf_: is that with Xorg killed?13:00
=== chihchun is now known as chihchun_afk
=== alan_g|lunch is now known as alan_g
alf_mlankhorst: ah, I thought you meant "not in Xorg" not with Xorg killed :) Will try...13:01
thomimorning13:04
mlankhorstalf_: considering it uses debugfs, the test is probably useless if xorg can do things behind it's back, but meh that seems to mean that there is no race in i915 at least..13:07
alf_mlankhorst: ok, without X running tests work consistently13:11
=== mzanetti is now known as mzanetti|otp
mlankhorstalf_: hmz13:18
mlankhorstnasty stuff this lifetime thing..13:27
mlankhorstalf_: you'd be my hero if you could come up with a testcase not involving mir, or some way for me to reproduce it, iirc radeon had some weird bug too?13:32
mlankhorston non-nested mir with xorg-server13:32
mlankhorstoh.. hmz13:34
alf_mlankhorst: Instructions to reproduce it with Mir are in the mailing list email. I am not sure how easy is going to be to reproduce this problem outside of Mir, given that we (at least I) have no idea what could be causing it internally  :/13:40
mlankhorstalf_: from what I can tell GEM internally uses no refcount.. eg if you import a bo twice and call close once, the handle will disappear..13:41
mlankhorstor if you import to the same fd, and call close once13:41
mlankhorstclose -> GEM_CLOSE13:41
mlankhorstflink also doesn't seem to survive if GEM_CLOSE is called though.. meh wtf13:56
=== mzanetti|otp is now known as mzanetti
mlankhorstwhat's the mir ml?14:02
mlankhorstnm got it14:03
mhall119RAOF: ping14:07
mlankhorstalf_: I'm guessing it's a bug in mesa, specifically the calls like intel_process_dri2_buffer14:13
mlankhorstit assumes that the same fd can be opened multiple times without consequences14:13
mlankhorstthe solution is to compare against the internal gem handle instead14:14
mlankhorstwhich is drm_intel_bo->handle, or w/e equivalent is returned from drmPrimeFDToHandle :P14:16
mlankhorstguaranteed to be unique to the fd, I'll try to cook up some patch14:16
alf_mlankhorst: That would be great! Ping me if you want me to try out anything. Another related question: My initial implementation of eglcreateimagekhr used image->dupImage() (#if-ed out in the mesa patch) but that doesn't work at all (the creation succeeds)... Any quick ideas why? Does the imag need to be used on the same DRIScreen (the original image is created in the GBM provided DRIScreen)?14:20
mlankhorstalf_: mixing things is probably a recipe for disaster :P though I guess they might be identical14:22
mlankhorstdno tbh14:22
mlankhorstradeon_winsys_bo_from_handle seems to handle it correctly14:25
alf_mlankhorst: (@dupImage, thanks, at least we have a way to create the image that works)14:25
=== mzanetti is now known as mzanetti|food
=== alan_g is now known as alan_g|tea
=== mzanetti|food is now known as mzanetti
mlankhorstalf_: http://paste.debian.net/37451/14:34
mlankhorstno idea if that works or not14:34
mlankhorstoops needs refresh :P14:34
mlankhorsthttp://paste.debian.net/37452/14:35
mlankhorstthat one probably compiles14:35
mlankhorstalf_: let me know if it fixes your issue14:36
alf_mlankhorst: will do thanks14:37
=== alan_g|tea is now known as alan_g
mlankhorstoops :p14:41
dandraderracarr, ping14:42
mlankhorstplan b for fixing, this one didn't work..14:44
mlankhorstalf_: http://paste.debian.net/37460/ that one should compile correctly14:52
alf_mlankhorst: ok, I will try in a bit15:00
mlankhorstalf_: ugh it's missing a chunk15:08
alf_mlankhorst: ?15:17
mlankhorstalf_: because I suck at making packages, try mesa 9.2-1ubuntu2~ppa1 from https://launchpad.net/~canonical-x/+archive/x-staging/+packages15:52
alf_mlankhorst: @populating region.name, if we are dealing with prime fd buffers, won't all incoming buffer only have the .fd field populated? Setting the region flink name, won't help us avoid recreating the region. Am I missing something?15:59
kdubalf_, going to try nested mir on android today... alan_g mentioned there might be some branches that could help with that?16:02
alan_galf_: I meant the cleanup to the "nested" code that you pointed out last week16:03
alf_kdub: alan_g: the changes are here, although there is also a lot of debug code lp:~afrantzis/mir/spike-nested-gbm-egl-image-hack/16:06
kdubalf_, cool, thanks16:06
alf_kdub: the relevant changes are in nested/* files in revision 105416:09
alan_galf_: kdub - if there's no objections I'll wrap them in an MP  to get them onto trunk16:11
alf_alan_g: no objections, although they may need some design love... they were made as a quick POC16:12
alan_galf_: Understood, was planning that16:13
=== dandrader is now known as dandrader|lunch
kgunnalan_g: alf_ kdub ...thanks for all the focus, i'm gonna head to lunch/gym...any questions for me before i head out?16:21
alf_mlankhorst: tried the patches (I applied the intel changes to a local clean branch of RAOF's git to be exact), no change :/16:38
* kdub thinks NativePlatform and Platform should be the same interface17:15
=== alan_g is now known as alan_g|EOD
=== dandrader|lunch is now known as dandrader
racarrdandrader: Pong?18:02
dandraderracarr, check private messages18:04
kdubalf_, (if you're still around) would you mind me removing the NativePlatform interface?18:59
alan_g|EODkdub: why would you want to do that?!19:13
kdubits the same as the Platform interface19:13
alan_g|EODIt is there because we haven't yet proved that they need to be the same.19:14
alan_g|EODI was keeping it separate with the intention of refactoring to remove duplication later19:15
kdubalan_g|EOD, okay, i'll leave it for now... but with android it is the same19:16
alan_g|EODkdub: It will probably be the same or a subset19:20
racarrCool to se enested mir on android come together19:46
racarrand nested in general :)19:46
racarrspinning in circles on this DPMS IPC conundrum though :(19:50
=== dandrader is now known as dandrader|afk
=== dandrader|afk is now known as dandrader
kdubracarr, conundrum?20:19
ricmmracarr: ping20:23
racarrricmm: Pong20:26
racarrkdub: The thing where you turn off the screen via IPC then call next buffer so your server side socket session is blocked20:27
racarrand you can never turn the screen back on20:27
kdubracarr, ah, yes, that one20:31
kdubi guess my thoughts are about the same... swap buffers already has blocking as part of the semantics20:33
kdubwell, to put it more clearly20:35
kdubi'm okay with a client getting stuck in that scenario, would seem like its up to them to avoid20:35
racarrugh sorry internet outage.20:56
racarrkdub: The problem isn't exactly the client getting stuck20:56
racarrthe thing is even if you use async  next buffers20:56
racarryour server side processor gets stuck too20:56
kdubracarr, yeah, might take some reworking of the message processor then21:00
kdubgood morning robert_ancell21:01
kgunnracarr: thinking aloud...is it that you need to like "drain the render queue+ take no more new render submissions"21:01
robert_ancellkdub, hello21:02
racarrkgunn: The thing is it will never drain because it wont finish until you turn the display back on21:03
racarrwhich wont happen until your last message (this buffer swap is finished)21:03
racarrthe buffer swap shouldnt really be an error though21:03
racarrit should just be pending and eventually it runs21:03
kdubracarr, also though, say that the user pushes the power button on the phone or something like that21:04
kdubdo we send an event over the wire, the client processes it, and then invokes the 'screen on' command?21:05
kgunnracarr: oh, i was saying as a precondition to blanking....so user hits button, then you stop new requests...but let any pending renders complete21:05
kgunnracarr: that would be weird to be blanked...then allow a render of a frame or 2 of something ancient21:06
kgunnmornin robert_ancell21:06
racarrthe thing is if you are processing a pending render from the client that asks to turn off the display21:08
racarrand in the xmir case it is a client21:08
racarrthen you never process that message21:08
racarrso you never know like "let pending renders complete" etc21:08
kgunnrobert_ancell: is the last mp to kill to the vt input security bug ? https://code.launchpad.net/~robert-ancell/mir/drop-focus-on-vt-switch/+merge/18305921:08
racarrkdub: On the phone its all in the shell21:09
racarrand clients are just told screen on/off via display configuration and can do their things21:09
kdubracarr, right21:09
racarrswap buffers will block, everyone is happy21:09
racarrxmir is the onlyproblem I thin21:09
racarrand mir demo client display config :p21:09
kgunnracarr: got it...i was thinking of draining renders more from the hw side of things21:09
robert_ancellkgunn, yes, but it's not working. And after talking to RAOF we think it might work better to use the app lifecycle events instead21:11
robert_ancellracarr, How are you supposed to access ApplicationSession? The container just has Session so you'd have to cast it - why doesn't the container contain ApplicationSession?21:15
racarrkgunn: mm21:25
racarrrobert_ancell: It's just a matter of where you have to cast21:25
racarrif the container contains ApplicationSession then you have to cast to frontend session in some places21:25
racarriirc, or some nonsense like that21:25
racarrit's flipped at least once since we started XD21:26
racarrYou just have to cast sometimes21:26
racarrbecause msh::SessionManager API is from mf::Shell so it deals in frontend::Session21:26
robert_ancellracarr, but the container always contains ApplicationSession - so shouldn't we just change the container?21:26
robert_ancellOtherwise what do I do if I can't cast?21:26
racarrrobert_ancell: Throw an exception or assert21:39
racarrchanging the container is reasonable21:39
racarrthere is a bit of problem with testing because ApplicationSession isnt an interface21:39
robert_ancellracarr, why do we need ApplicationSession - why can't this just be part of Session?21:39
racarrrobert_ancell: Well we want at least some interface, i.e. the frontend shouldn't use the shell implementation class21:47
racarrperhaps it should be just like surface, mf::Session and msh::Session21:47
robert_ancellricmm, Should MirLifecycleState contain more states?22:52
ricmmno22:59
ricmmit could contain more information for the application to do more stuff, but the only state exposed to the application is focused(running)/unfocused(not-running)23:00
RAOFmhall119: Yo!23:40
RAOFmlankhorst: You sent a midnighht ping?23:40
RAOFricmm, robert_ancell: But the lifecycle state callback needs more information, doesn't it?23:41
RAOFricmm, robert_ancell: Specifically, it needs a cookie so the client can call back to call back to Mir when it's done saving its state.23:41
robert_ancellricmm, I see mir_lifecycle_state_will_suspend,  mir_lifecycle_state_resumed - does that map to focused / unfocused?23:43
robert_ancellalso what RAOF said23:44
RAOFOooh.23:49
RAOFDo we still have time to roll up some more ABI breakage into libmirclient3?23:49
robert_ancellRAOF, not really23:54
RAOFrobert_ancell: It doesn't look like it has been built into a package yet?23:54
robert_ancellRAOF, well, right23:54
robert_ancellRAOF, I guess you could make a libmirclient4 without any more work23:54
RAOFCan be *stop* it being built into a package?23:54
robert_ancellRAOF, the numbers cost nothing, it's just the migration. So 2-3 costs the same as 2-9923:55
RAOFEh, ok.23:55
RAOFTwo more ABI breaks coming right up!23:55
RAOFAh, no. We changed how get_current_buffer works; this won't be an ABI break.23:58

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