/srv/irclogs.ubuntu.com/2015/07/23/#ubuntu-mir.txt

=== chihchun_afk is now known as chihchun
=== marcusto_ is now known as marcustomlinson
duflualf_: Annoyingly, I upgraded, broke and then upgraded mako again. And something other than Mir has changed so I'm not getting consistent results any more. This will take time...07:03
dufluOddly, unity8 is no longer fast enough to qualify for double buffering in wily-proposed whereas it was a few days ago07:04
dufluStill, could be something change in Mir too07:05
=== mibofra is now known as Guest35933
dufluA scary (or spurious) realisation: QtMir doesn't schedule enough frames to render clients smoothly. The only reason they don't appear to hang is because of the frame dropping fallback.08:25
dufluSo it drops (stutters) when it could be rendering smoothly08:25
dufluAlthough dropping should appear in the log. Hmm08:26
dufluBah, words. They're often wrong.08:32
* duflu is still excited about the potential for simple improvements in qtmir08:32
=== Guest35933 is now known as mibofra
alan_ganpok_: you merged the g++-5 changes to 0.14 - does that mean yet another attempt to land has started?08:48
anpok_yes08:49
alan_g/sigh - I was hoping it meant 0.14 had landed and 0.14.1 was speeding through08:49
anpok_this time u-s-c boottest failed as it only upgraded mirserver and client libraries08:49
anpok_but not the drivers08:49
anpok_hence tries to boot without drivers08:50
=== vesar_lunch is now known as vesar
alan_gthe team will owe you a drink for this release08:50
anpok_when I reverted the driver abi bump (we did not bump it during the 0.14 period) assumed that it might not be broken ..08:50
alan_gs/drink/large drink/08:50
anpok_not mir bootest fails (in silo 004 still)08:51
anpok_-not +now08:51
anpok_because guess what .. there was an abi break we missed..08:51
anpok_now looking into efficient ways to find it08:51
anpok_and yeah merged the g++5 fixes..08:52
anpok_I hoped a karma improvement like that might improve our odds08:52
alan_gEarly, automated detection is what we need. Not at the tail end of s stupidly involved manual process.08:53
anpok_yes..08:54
duflugreyback: Is it certain that QTimer::singleShot(0, this, SLOT(update())) will schedule a second frame (16ms later) or is there a risk it could coalesce into the current one being drawn?09:03
dufluI guess it assumes everyone is on a single threaded event loop09:04
greybackduflu: that call executed on the renderer thread. That appends an event to the main GUI thread (with the main event loop) to call the update() function, which indicates the scene is dirty, and tells the renderer to schedule a new pass09:08
duflugreyback: Even when the current pass is still pending? It doesn't get cleared at the end of the pass?09:09
dufluHopefully at the beginning..09:09
greybackduflu: the current pass is in progress when that is called09:09
duflugreyback: I know. That's why I'm asking. Is it clever enough to know the current frame's not finished and a second one after that is needed?09:10
greybackduflu: that's exactly what it's doing. I think it's reliable, it will schedule a second frame if there's another client buffer ready for compositing09:10
duflugreyback: Yeah in theory we'd see more bugs if it didn't work, but I still want to verify09:11
greybackcode is a bit clunky tho, I'll admit that09:11
dufluActually it's about right for an event loop design. Only the Q* syntax is unfamiliar for me09:12
greybackyou'll get used to it ;)09:12
duflugreyback: On a different note, is there somewhere you can put code to execute after the eglSwapBuffers?09:21
duflugreyback: Oh, found it. Sorry09:23
greybackduflu: I know what you're thinking ;) I did try a prototype to release buffers earlier, but can't find it now09:23
duflugreyback: Yeah, it's a tangential thought. I should stay on the first task really09:24
greybackah found it09:25
greybacklp:~gerboland/qtmir/remove-custom-framepump1/09:26
greybackwas causing rendering bugs tho09:26
duflugreyback: OK, yes fair enough09:28
dufluOK, bad news and good news...09:46
dufluBad news: When dynamic double buffering is working properly it may not be beneficial to Unity8.09:46
dufluGood news: Predictive bypass (already landed and coming in 0.15) seems to raise frame rates by 25-35% (!)09:47
dufluWhich really means it avoids frame skipping09:47
greybackduflu: why not beneficial to u8? As a server, or as a client of USC?09:49
duflugreyback: As a client of USC... I should have noticed -- any surface that's bypassed/overlaid (like the fullscreen U8) doesn't get dynamic double buffering. Due to the extra compositor demands of bypass/overlays09:50
dufluPredictive bypass reduces the problem, but apparently not enough09:50
greybackduflu: sounds like we should test and see for sure09:51
duflugreyback: I am. And it's not fun. Although in my full stack test with 0.14 predictive bypass was missing. So maybe it will free up the Unity stack enough to get the benefit back. It doesn't when running the pure 0.15 mir demos, is all09:52
greybackok09:53
dufluToo many variables09:55
duflugreyback: In theory you could achieve a similar benefit in QtMir for apps by changing that zero-millisecond timer to something non-zero (but still short enough to not miss frames)09:57
dufluOr maybe not. Other parts might need to change too before there's any benefit there09:58
greybackduflu: why delay the timer? If we know there's a new frame to be composited, we might as well schedule a new renderer pass immediately09:58
duflugreyback: Hmm actually if the texture update for all surfaces is delayed in the same way, maybe not09:59
dufluIt only works if you know your max render time and have room to play with. So not a good idea for GL on a mobile device I guess10:00
greybackyep10:01
=== dandrader is now known as dandrader|afk
=== dandrader|afk is now known as dandrader
=== dandrader is now known as dandrader|afk
=== chihchun is now known as chihchun_afk
racarrGood morning!16:06
=== dandrader_ is now known as dandrader
kgunnracarr: gm16:29
=== chihchun_afk is now known as chihchun
=== chihchun is now known as chihchun_afk
=== chihchun_afk is now known as chihchun
=== chihchun is now known as chihchun_afk
=== alan_g is now known as alan_g|EOD
=== 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_afk is now known as chihchun
wulfensteynum.. on wily (mir 0.14) clicking on gedit menu crashes unity22:07
wulfensteynalso some strange crashes with gnome-calculator on demo server22:07
wulfensteynthe keyboard works fine now :D the key repeat rate seems to be fixed22:08
wulfensteyn+122:09
bschaefermcphail, popey https://code.launchpad.net/~brandontschaefer/+junk/SDL2-new-mir-ABI22:42
bschaeferis the new branch which is moving to the new mir ABI (though im using trunk mir22:43
bschaefer)22:43
bschaefersooo you'll need a pretty new mir atm (not 100% how far off it is from main)22:43
bschaeferill try to get a ppa with the right version of mir on it22:43
popeyhello!22:49
popeythat's something to play with at the weekend :)22:49
bschaeferpopey, sweet :)22:56
bschaeferpopey, i should be around irc, soo just poke me at any point!22:56
robert_ancellDoes anyone know if Unity8 is planning to support client side decorations for applications (e.g. GNOME applications that are drawing a HeaderBar).23:30
robert_ancellAsking here because I guess a Mir surface will have to hint if it should be decorated23:33
Trevinhomh, wondering the same...23:37
robert_ancellI guess we'd need a mir_surface_spec_set_decorated() or similar23:38
robert_ancellbschaefer, Do you mean the Mir 0.14 API? That's in wily now23:42
robert_ancelloh, 0.15.23:43
bschaeferrobert_ancell, aiming at trunk mir23:43
bschaefersoo 0.15, but i dont think there was an API change from 0.14 --> 0.1523:44
bschaeferbut theres some new stuff23:44
robert_ancellMost of that branch is Mir 0.14 I think23:44
bschaeferyeah, waiting on some new 0.15 stuff to land (relative mouse support and an egl pixel format thing)23:45
bschaeferrelative landed soo i just need to implement those changes23:45

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