/srv/irclogs.ubuntu.com/2014/05/09/#ubuntu-mir.txt

RAOFOk, that's a bit annoying. gdb now segfaults trying to read debugging symbols from mir_unit_tests01:15
=== chihchun_afk is now known as chihchun
* RAOF heads due luncheon02:33
kgunnok, realized i've never done this...if i run mir_demo_server_basic on vt1 and i want to kill it, how would i do that?03:05
kgunnduflu: RAOF ^ ?03:05
duflukgunn: Firstly, server_shell is much cooler :) Secondly remember to sudo or else Mir doesn't have input (quit) support - https://bugs.launchpad.net/mir/+bug/128625203:06
ubot5Ubuntu bug 1286252 in Mir "mir_demo_server* successfully start as non-root (without input support), meaning it can't be quit/switched away from" [Medium,Confirmed]03:06
duflukgunn: Once you have input support it's Ctrl+Alt+Backspace03:07
kgunnduflu: ah, i did sudo....03:08
dufluThat reminds me, I wanted to move some common logic like that into the server library and let shells override it. It's annoying every demo shell should have to re-implement something as basic as quitting03:09
duflu(because mir_demo_server_minimal is unquitable, I think)03:09
dufluOops. Quit the wrong shell?03:14
RAOFanpok_: Are you planning to try and land https://code.launchpad.net/~andreas-pokorny/mir/add-timer-to-main-loop/+merge/216881 anytime soon, or should I un-depend-upon it in 1Hz-rendering?05:03
RAOFOooh! Oooh! Oooh! There's a new button on Launchpad reviews, “Show inline comments”!06:14
dufluWha?!06:21
RAOFThere's no ability to comment inline yet, but the first parts of that series are landing.06:21
RAOFYay!06:21
dufluRAOF: Heh, yeah I was trying to figure out how to make one06:22
dufluWhat would also be really nice is side-by-side diffs06:23
dufluIn my experience they're much better for code review06:23
RAOFHm. Dumping the diff into meld would be pretty cool, yeah.06:31
RAOFThat would probably be pretty easy to do, actually.06:35
anpokRAOF: i thought about doing so now, but havent started workin on that06:42
RAOFanpok: Well, sometime would be nice, as 1Hz-rendering depends on it.06:51
dufluRAOF: (1) Happy weekend. else (2) Please check again: https://code.launchpad.net/~vanvugt/mir/simplify-BufferQueue/+merge/21879407:24
RAOFduflu: Doing so :)07:24
RAOFduflu: It seems that the uniqueness constraint could be satisfied in a less invasive way.07:28
dufluRAOF: You mean more exhaustive? I'd rather simplify and shrink the code before reconsidering unnecessary micro-optimizations07:28
RAOFI don't suppose you've got a test for this?07:31
dufluRAOF: It can't really be tested. The symptom is memory bloat of a private member... that is never leaked07:32
dufluYou can observe and test it externally, obviously07:32
dufluI'll do another alt fix proposal07:33
dufluI've come to not expect anything to land, so I work on many different things at once :)07:34
RAOFYou could measure memory use over thousands of compositor_acquire/compositor_release cycles, if nothing else :)07:34
dufluRAOF: fprintf tells me the vector is huge... I don't really need any more info07:40
dufluHmm, a "smaller" fix actually isn't working07:40
RAOFBut you can't run an fprintf test on every commit :)07:40
dufluRAOF: I don't intend to. Very few performance bugs get regression tests in general. Although I did manage with a bunch of SwitchingBundle issues before...07:42
dufluAlso memory bloat is an issue most programmers never consider. They think not leaking is enough... but really you need to do real external system testing07:42
RAOFI'm still not sure why this isn't a proper target for an automated test?07:44
dufluRAOF: Hmm, could just set a time limit on the existing test and fail I guess07:44
dufluThat would do it, but only on a small subset of system07:45
dufluHeh. I never intended to fix any bugs with this proposal07:45
dufluIt just happened07:45
RAOFParse /proc/self/status, check RSS isn't increasing over thousands of compositor cycles? :)07:47
alan_gPut a "reasonable" limit on the size and assert? Or add a query to report the queue sizes that can be checked in unit test?07:50
duflualan_g: I think that's a case of testing the known cause, when a fix would eliminate the test. I'm trying for a different test that would remain valid regardless of the implementation07:51
alan_gduflu: I know but lacking a generic option it is better than no test.07:52
duflualan_g: I might have a generic options. On the other hand, I don't think any or all memory bloat problems have internal testing. It's really an external thing usually07:53
RAOFParsing /proc/self/smaps would get you a pretty good “am I using more memory by doing this thing over and over” test.07:53
RAOFThis sounds like something that might be good for mir_test{,_framework}, actually.07:54
alan_gRAOF: that sort of thing is probably more appropriate in the acceptance/stress/performance tests07:54
alan_gyes07:54
RAOFAnyway, EOW for me!08:00
alan_gdednick: do you approve https://code.launchpad.net/~alan-griffiths/mir/spike-passing-out-client-fds/+merge/218629?08:45
alan_gOr are there still problems using it?08:46
dednickalan_g: got it working with trust sessions after you left last night. just approved08:47
alan_gGreat!08:47
duflualan_g: I'm seeing it too now. If you want to take over this, please do: https://bugs.launchpad.net/mir/+bug/131780109:37
ubot5Ubuntu bug 1317801 in Mir "[regression] [BufferQueue] BufferQueueTest.compositor_never_owns_client_buffers occasionally crashes with: what(): unexpected release: buffer was not given to compositor" [High,In progress]09:37
alan_gduflu: ack - not sure I'll get to it this week though09:37
duflualan_g: Sure. Just mentioning in case you do. Otherwise my Monday comes sooner09:38
alf__duflu: I may be able to take it over today, I will reassign is so09:39
alf__s/is/if/09:40
duflualf__: That would be good too09:40
dufluI got way too ambitious in the number of fixes I could get landed09:43
dufluNeed to share the love a bit more09:43
dufluOn the upside, not making progress gives me a clean slate for the weekend. Till next time...10:06
=== chihchun is now known as chihchun_afk
=== alan_g is now known as alan_g|lunch
=== alan_g|lunch is now known as alan_g
=== alan_g is now known as alan_g|lunch
anpokAlbertA: any reason why you wrote for-loops instead of auto pos = find(begin(..),end(..),item).. in the buffer queue?13:28
anpokI mean was that based on the profilings?13:28
AlbertAanpok: yeah they did better in profiling and std::find and iterators13:31
anpokok, i assumed those would be identical for somehing like vector13:31
AlbertAanpok: there's a small overhead when constructing iterators at least on gcc/glibc13:31
AlbertAanpok: so since the number of elements is small - the overhead in comparison is significant13:33
=== alan_g|lunch is now known as alan_g
=== chihchun_afk is now known as chihchun
seb128hey Mir team14:44
seb128I've a dell inspiron 11 laptop, which has a touch screen, testing unity8/Mir on trusty ... things run fine but the touch screen doesn't work14:44
seb128is that a known issue/limitation?14:45
racarr__Morning14:48
seb128hey racarr__, how are you?14:49
alan_gseb128: racarr__ probably knows that part of the stack best.14:51
racarr__seb128: Oh pretty good! You?14:54
seb128I'm good thanks!14:54
racarr__re: the touch screen...hmm...no one has one14:54
racarr__so its hard to say14:54
racarr__its not exactly expected to ork in that anyone has tried it14:54
racarr__but I dont know why it wouldn't work...14:55
racarr__someone has used a laptop touchscreen with success14:55
racarr__maybe olli14:55
racarr__so there must just be some sort of quirk or something14:56
racarr__seb128: If you want to dig deeper MIR_SERVER_LEGACY_INPUT_REPORT=log MIR_SERVER_INPUT_REPORT=log could have something14:56
seb128k14:56
racarr__(export them as env variables in the environment unity system compositor is in)14:56
seb128<bregma>seb128, your hardware may need to be defined as an Android touch device for Mir to recognize it properly14:57
seb128<bregma>all of mine work out of the box now, but initially I had to create a file somewhere with hexadecimal device IDs in the title, can;t recall the details....14:57
seb128<bregma>I'll need to dig that up14:57
seb128 14:57
seb128is that what I've been told yesterday14:57
seb128so I figured that you guys might know more about that ;-)14:57
racarr__seb128: yes there are these ".idc" files14:58
racarr__I  have never touched the code or one though so im not sure...14:58
racarr__thats a good idea though14:58
bregmayeah, .idc files, that's it14:58
racarr__some community guy porting a device...that was his f14:58
racarr__ix14:58
racarr__when his touchscreen didnt work14:59
racarr__um I can look in to it after standup. or you can probably find one on your phone14:59
seb128I'm fine hacking it locally14:59
bregmasome touchscreens are not recognized as such because, well, hardware is flaky, so they need an IDC file to force the issue14:59
seb128but that would be nice if those stuff were working out of the box14:59
seb128normal users are not going to go figure that out14:59
seb128well, the touchscreen is working fine under Xorg/unity715:00
seb128so somehow it's recognized correctly15:00
seb128just not by Mir15:00
tedgDo we get a compose key for free in Mir, or is that something we'll have to do ourselves?15:04
racarr__I dunno, we might get it for free from XKB15:06
=== dandrader is now known as dandrader|afk
=== dandrader|afk is now known as dandrader
=== alan_g is now known as alan_g|EOW
=== dandrader is now known as dandrader|lunch
=== dandrader|lunch is now known as dandrader
AlbertAanpok: so assuming we change to pre-multiplied alpha19:23
anpokAlbertA: where are we using the suspicious masking - or rather19:23
anpokwhy does the issue not occur on the framebuffer?19:23
anpokis the blending function for a normal display buffer different than for screen casing?19:23
anpok*casting19:23
AlbertAanpok: no it's the same19:24
AlbertAanpok: but assuming we change the blending function -19:24
anpokah the scanout fixes it..19:24
AlbertAanpok: there's still the issue that nested servers19:24
anpokhm but over-blending with premultiplied should be associative19:25
AlbertAanpok: would like to specify the final alpha value in the framebuffer19:25
anpokwell the initial one has to be zero19:25
AlbertAanpok: for per-pixel alpha transitions between sessions19:25
anpokhm you mean the nested session want to do direct alpha writes?19:26
anpok*wants19:26
AlbertAanpok: well somehow...the main thing is supporting per-pixel alpha transition effects19:27
anpoki thought for our use cases we start with zero and just combine blend one over the other..19:27
anpokcould you explain more19:28
AlbertAanpok: what do you mean start with zero19:29
AlbertAanpok: alpha zero as background you mean?19:29
anpokclear the frame buffer on usc, and every nested session that has an alpha channel to rgba=0,0,0,019:29
anpokyes19:29
AlbertAanpok: ok, yeah that's what we kinda do19:30
=== dandrader is now known as dandrader|afk
anpokso if the the normal blend mode (1,1-alpha) is not enough, we might have to extend the api19:31
anpokso I think (alpha,1-alpha) is just wrong19:31
anpoki mean we could extend the api to override the normal blending with other modes19:32
anpokah something like nv_blend_equation_advanced19:36
AlbertAanpok: I suppose that in the nested case the resulting surface will have pre-multiplied rgb components19:37
anpokyes19:37
AlbertAanpok: and I suppose the QT renderer will produce the same as well19:37
AlbertAanpok: so yeah I can see we need to assume pre-multiplied alpha19:37
anpokhm we have to places, the demo_renderer and the gl_renderer19:38
AlbertAanpok: right19:38
anpoklooking forward to the review :)19:38
anpokwe even have a test case that requires current behavior19:39
AlbertAanpok: what do you mean?19:39
anpokthe test case of gl_renderer is kind of .. odd19:39
anpokwhenever you change something there you have to update the test case19:40
anpoki mean, you cannot change it without breaking the unit test19:40
anpokah with review - i meant that I expect further comments with regard to alpha usage in gernal19:41
anpokhm the round corners of the window decoration look strange now19:44
AlbertAanpok: ummm, actually now that I think about it...you can change the surface global alpha19:45
AlbertAanpok: which means we can't assume pre-multiplied either19:45
racarr__gonna top approve https://code.launchpad.net/~mir-team/mir/cursor-spike-phase-2-resubmit/+merge/21768519:45
racarr__soon19:46
AlbertAanpok: I suppose we could change the shader to make it so...but doesn't seem right19:46
racarr__unless anyone else wants to weigh in on MirCursor v. MirCursorConfiguration19:46
anpokracarr__: text conflicts?19:46
racarr__damn19:47
racarr__so close19:47
anpokAlbertA: hm i think we have to19:48
racarr__ok fixing19:48
racarr__I honestly cant believe how dumb merge algorithms are19:48
racarr__I mean19:48
racarr__I can because they are very easy to understand19:48
racarr__its just annoying19:48
anpokthere is a project that tries to provide a more semantic merge19:49
racarr__I have seen some lately (Though only proprietary)19:49
racarr__im really excited19:50
anpokdoes the merge on a whole program representation19:50
racarr__yeah19:50
anpoki.e. the one i read about was limited to c# for now19:50
AlbertAanpok: yeah I see if we need to support correct alpha values in the framebuffer (for nested) I don't see a way19:50
AlbertAanpok: around pre-multiplied assumption19:50
anpokyes19:50
anpokAlbertA: if we dont do that we will be haunte by porte&duff19:50
anpok*porter19:50
anpok*haunted19:51
AlbertAright19:51
AlbertA:)19:51
racarr__it would be a really fun problem to hack on (semantic merge)19:51
anpokhm we have clang now19:52
anpokand there is a python libclang wrapper19:52
anpokand you could make it learn from existing merges in the history of the project..19:53
racarr__haha. thats an even more fun problem19:53
anpoki.e. if dev a integrates code of dev b and there is conflict19:53
racarr__I was thinking you could jut come up with19:53
anpokalways take dev a.. or something..19:53
racarr__lots of hardcoded scenarios19:53
racarr__that would solve most dumb problems19:53
anpokok19:53
racarr__i.e. a class definition gains19:53
racarr__two method declarations19:54
racarr__at the same line19:54
racarr__isnt a conflict :p19:54
racarr__its just two people adding a method to a class19:54
anpokbut in different order19:54
racarr__well right, somethings the order does matter, whereas if two developers put a method definition in a class19:55
racarr__at the same time19:55
racarr__its probably just fine to put the one that was added latter (in terms of timestamp) on the line after19:55
racarr__sometimes*19:55
anpokAlbertA: ah that would just be frag*alpha in the shader19:59
anpokit looks like someone did that on purpose the way it is done now19:59
anpokand thats good19:59
AlbertAanpok: right the issue is how do you know which sources are pre-mutiplied already19:59
AlbertAanpok: and which ones aren't20:00
AlbertAanpok: what's in the shader currently is only to handle global alpha20:01
anpokhm right now all our client surface are.. but most of them have alpha=1 so we do not notice the difference20:01
AlbertAanpok: :) he yeah I guess if we look at it that way...20:02
anpokif fingerpait would bitblt an rpba png image wihout telling lpng to premultiply20:03
anpoki guess then we would have that case20:03
anpok(can libpng do that?)20:04
AlbertAanpok: not sure...20:04
AlbertAanpok: but yeah I guess we don't change the shader20:04
AlbertAanpok: or rather20:04
anpokwhy not?20:04
AlbertAanpok: I mean yeah change the shader but correctly compute the global alpha and just assume20:05
anpokah o20:05
anpokk20:05
AlbertAanpok: the source is already pre-multiplied20:05
rsalvetikgunn: glmark2 just got approved20:06
rsalvetishould be migrated soon20:06
kgunn\o/ thanks much rsalveti ... josharenson ^20:06
anpokAlbertA: do you understand how the top decorations are drawn in the demo renderer20:07
AlbertAanpok: the title bar?20:10
anpokyeah, hm the part that should be cut off just started to get shine in the colors of the rainbow20:10
anpok-to get20:11
anpokthere is something wrong20:11
AlbertAanpok: oh really? I'm not seeing that...you mean with the tip of mir devel?20:11
anpokif you swith to porter&duff over blending, then the top  corners of the window are not properly cut off20:15
AlbertAahhh...20:15
anpokbut thats an error in the code that draws the decoration20:15
AlbertAsaturation?20:15
AlbertAor maybe overflow20:15
AlbertAwrapping around20:15
anpokit does if(at corner) { if(in above cricle) { cancel } }  if(cy<y) { shade )20:16
anpokbut it should be20:16
anpokit does if(at corner && (in above cricle) { cancel } else  if(cy<y) { shade )20:16
anpokdemo_renderer.cpp:9820:17
anpokhm still strange20:18
anpokah yes it is a wonderful case of non premultiplied20:20
anpokas it only sets the alpha value but does not multiply it to the rgb20:21
anpokAlbertA: will you create an MP?20:25
josharensonyes thanks rsalveti... So I can look for it in universe in a few days?20:29
rsalvetijosharenson: yeah, probably later today20:30
rsalvetihttps://launchpad.net/ubuntu/+source/glmark220:30
rsalvetionce it migrates from proposed to release20:30
anpokracarr__: you mean you need someone to top approve?20:32
racarr__anpok: Ah well I was going to do so20:33
racarr__I just wanted to20:33
racarr__submit the suggestion to the academy before doing so20:34
racarr__:p20:34
anpokheh20:36
anpokdiscussion there seems to be at a dead end20:37
anpokagreement about an overall disagreement..20:37
anpokin any case you might want to look at https://code.launchpad.net/~andreas-pokorny/mir/drop-dynamic-ptr-cast-in-input-configuration/+merge/21880620:39
anpoksince you are browsing right now..20:39
anpokmaybe i should wait for monday20:42
racarr__anpok: Ill try and look in just a few min20:52
=== dandrader|afk is now known as dandrader
tedgIs there an API for the trusted sessions somewhere?21:22
AlbertAanpok: yeah I will create it...right now I'm mostly concerned about getting unity8 just to work right21:29
AlbertAanpok: I could propose later to fix the support for transparent frame buffers21:30
AlbertAanpok: because switching to porter/duff is practically only applicable to nested usecase21:36
AlbertAanpok: where corrrect alpha is needed21:36
AlbertAanpok: in all other cases including screencasting there's no need21:36
anpokAlbertA: hmm... right now we do apply the alpha channel twice21:37
AlbertAanpok: but as you said, right now unity8 is rendering with alpha 1.0 so it doesn't matter21:38
anpokyes21:38
AlbertAanpok: it only matters in the demo shell I suppose21:38
anpokand potential transparency effects in the greeter some day21:39
AlbertAanpok: right21:39
AlbertAanpok: so maybe for now my initial fix of rendering an opaque background is enough (so that unity8 renders correctly)21:40
AlbertAanpok: then we can open the alpha can-of-worms21:40
AlbertAanpok: :)21:40
anpokfirst or second one?21:46
anpokconfused21:46
AlbertAanpok: I think https://code.launchpad.net/~albaguirre/mir/render-opaque-background/+merge/21871221:47
AlbertAanpok: is the simples solution for now for both the transparent screencast issue and the unity8 rendering issue21:47
AlbertAanpok: and then we need a discussion on supporting transparent framebuffers properly21:48
AlbertAanpok: I think probably an attribute of the DisplayBuffer so we can change21:49
AlbertAanpok: blening modes in the renderer could be the solution21:49
AlbertAanpok: maybe an opaqueness attribute21:49
AlbertAanpok: that the compositor can pass to the GLRenderer21:50
anpokack22:03
AlbertAanpok: yeah an opaqueness attribute makes sense to me...that way we say non-opaque on the nested display buffer22:05
AlbertAanpok: and everything else opaque22:05
AlbertAanpok: i.e. the platform's display buffer and the screencast display buffer22:06
anpokwell we have the pixel format22:06
AlbertAanpok: true but for some reason22:06
AlbertAanpok: the platforms are returning one with alpha support22:07
anpokah yes22:07
AlbertAanpok: dunno why...and the nested display buffer just replicates that22:07
anpokand independent of that if the clients of the nested session make use of transparency we still have to blend properly22:07
AlbertAanpok: right which we haven't seen since nobody is rendering with per-pixel alpha at the mir level22:10
AlbertAanpok: it's all done by Qt...I wonder how they blend22:11
* AlbertA goes to check22:11
AlbertAanpok: glBlendFunc(GL_SRC_ALPHA, GL_ONE);22:20
AlbertAanpok: which I suppose makes sense, always make the destination opaque22:21
AlbertAanpok: well I'm not sure that's what they use---just found some hints here and there22:22
anpokthats odd22:22
AlbertAanpok: no nevermind one of the comments alludes to22:25
AlbertAglBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA)22:25
AlbertAin qsgrendernode.cpp22:26
AlbertAall makes sense now22:26
AlbertA:)22:26
anpokhttp://home.comcast.net/~tom_forsyth/blog.wiki.html#[[Premultiplied%20alpha]] -- So anyway, yeah, premultiplied alpha. Use it, love it, pass it on. Then maybe we'll only take another 20 years til everyone's doing this stuff correctly.22:29
anpokgood22:29
josharensonkgunn, it appears as though you cannot run glmark2 offscreen on android23:08

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