/srv/irclogs.ubuntu.com/2014/11/27/#ubuntu-mir.txt

=== robert-ancell is now known as robert_ancell
=== chihchun_afk is now known as chihchun
=== irsol_ is now known as irsol
anpok_duflu: the thought was... we are passing a triplet of cursor_usage,w,h and it decided to ignore two parts of it to fullfill the first.. what if behaves the other way around or just fails..06:49
dufluanpok_: I don't follow. But if you really do need the drmGetCap then ignore my comment06:50
dufluIt's just a matter of the fix is too big, not faulty06:50
anpok_duflu: hmm my point is.. i am not sure..06:50
anpok_the fix for radeon does not need it..06:51
dufluanpok_: Well ignore Tegra. That's historically so slow (every revision) that we want to avoid caring about it06:51
dufluWhy has Tegra been so consistently bad??06:52
dufluOr the devices that contain them06:52
dufluRAOF: OK I'm now detecting the safety of frame dropping. If unsafe should we not drop (render with vsync) or throw a fatal exception06:53
duflu?06:53
dufluI can't decide. So many evil choices06:54
RAOFduflu: When is framedropping unsafe?06:55
dufluRAOF: When there aren't enough :)06:55
duflubuffers06:55
RAOFI thought you were dynamically allocating said buffers?06:55
dufluRAOF: Not now. Choosing a different evil. I think overallocating creates an imbalance in the protocol request/reply for buffers and starvation/deadloack can happen06:56
RAOFThrowing a fatal exception is certainly the wrong answer, though. Clients should not be able to crash the server.06:56
duflu... that deadlock is the GLMark2Test hang06:57
RAOFHm. That seems like odd behaviour. Why do you think it causes a deadlock?06:57
dufluYou can reallocate, but only at limited safe points in the lifecycle, which are not the same points we want to drop at06:57
dufluRAOF: Because glmark2 freezes and both client and server are left idle waiting for each other06:58
dufluSame theme as other bugs I'm fixing06:58
RAOFHuh, I'm surprised.06:59
dufluMe too, but happy to not have an unbounded buffer queue too06:59
RAOFEh.07:02
RAOFAs a practical matter we kinda need one.07:02
RAOFOr, rather, we need at least one per monitor plus one for the client07:03
dufluRAOF: Actually it's not entirely linear. Not simple, but if all monitors have the same frame rate then max two compositor buffers.07:08
dufluOr max three with bypass multimonitors07:08
dufluOr more with very slow refreshing monitors07:08
dufluBut fortunately not linear with number of monitors07:08
dufluI'm really trying to avoid being asked to rewrite BufferQueue at the same time as the bug fxies07:09
duflufixes07:09
dufluRAOF: To answer your earlier question; dropping frames in the wrong place results in us trying to send more exchange_buffer replies than we got requests, so that's an issue07:19
dufluOh very weird. I'm seeing two compositor buffers held simultaneously on Android08:19
dufluis that overlays?08:19
duflualf: Why is the jellyfish (glmark2) so much smoother on a phone than desktop?08:22
duflualf__, ^08:22
alf__duflu: it's smooth on my desktop :)08:40
duflualf__: I mean the vertices08:40
dufluI've never found a desktop where it was smooth08:40
dufluBut on mako I can see what it's meant to look like08:40
alf__duflu: Not sure what you mean... are you referring to e.g. the tentacles parts appearing to form corners?08:42
duflualf__: Yeah but the body particularly08:42
dufluLike there's much higher mesh detail on the phone than desktop08:43
alf__duflu: I don't know...08:46
alan_g"drop-dead-internals" has landed \o/09:12
dufluWoo09:22
dufluNow to fix those freezes09:22
dufluTo add to the mix, it seems our Android code becomes very unstable with frame dropping.09:22
dufluThat's part of the problem09:22
dufluFortunate that Unity does not use it yet09:23
dufluor much09:23
anpok_alf__: main loop again.. i need it in two places of the input plaform interfaces..09:44
anpok_but  I dont need start/stop only its base interfaces09:45
anpok_waking on fd, action queue and timer09:45
alf__anpok_: do you mean the_main_loop() or do you need two new instances of e.g. GLibMainLoop?09:45
anpok_all three..09:45
anpok_no the interface MainLoop09:45
anpok_the various input platforms that we will need will either trigger events through the action queue, based on fd activity..09:46
anpok_but the decision which of those two is used in that case, depends on the platform09:46
anpok_but I doubt they will ever need run/stop09:47
anpok_or even worse, wouldnt even like them to use it..09:47
anpok_usage of Timer is an implementation detail i would simplify by reusing it..09:48
alf__anpok_: So you want to give them an interface through which to add events or register fd actions. Who is going to own the main loop?09:48
anpok_the input device hub in mirserver will own the input thread which drives that main loop instance (i try to avoid the term "the main loop")09:49
alf__anpok_: one option is to create a new interface in the input namespace that offers exactly what you need, and just implemented with a GLibMainLoop09:51
anpok_I am close to not moving MainLoop over to platform and instead provide a separate interface09:51
anpok_oh yes what you said09:51
anpok_the other option is to reiterate the interface discussion with the idea that what the aggregation 'MainLoop' currently provides is a set of general purpose interfaces that need fixing09:53
anpok_i kind of feel the urge to take the first door,,09:54
alan_gIt is better to adapt the interface hierarchy to current need than to speculate on future needs09:54
alf__anpok_: the MainLoop *is* an aggregation of general purporse interfaces (graphics::EventHandlerRegister, time::Timer, ServerActionQueue)09:55
alf__anpok_: but I think input owning the interface is best09:55
anpok_graphigs::EventHandlerRegister is a too specific name and namespace imo09:55
anpok_s/g/c09:55
anpok_alan_g: you mean the speculation which parts of MainLoop will be required09:56
alan_gIt sounds like the new requirement is EventHandlerRegister+ServerActionQueue - but that the names are too specific09:56
duflualan_g: That glmark2 freeze is more subtle than expected. Looks like our Android-specific code is at fault. But my new proposal today at least does not trigger it09:57
anpok_alan_g: yes thats the next immediate requirement..09:57
=== chihchun is now known as chihchun_afk
alan_gduflu: as in "workaround" or as in "no worse than current"?10:01
duflualan_g: No worse. The bug remains but I'm not working around it. Just not making it worse10:01
dufluHave two separate branches that will trigger it for future testing10:01
dufluAlso, according to the date on the bug, you logged it before my branches existed :)10:02
alan_gthanks for the update. You happy to continue with it or need me to take a look?10:02
duflualan_g: I'll provide instructions in the bugs but will decide if I'm still concerned about them myself tomorrow10:03
duflu*bug10:03
alf__duflu: I recall that you didn't like the name mir_connection_platform_operation(...). Any suggestions? mir_connection_call_platform(), mir_connection_perform_platform_operation() ... ?10:03
duflualf__: Yeah doesn't look nice but I can't think of a solution right now10:04
alan_gOK. (I have my own "how does my code break that in CI?" issue to look into.)10:04
dufluI *expect* CI to pass. My phone certainly likes the new branch10:04
alf__alan_g: anpok: ^^ four lines up10:05
* alan_g tries to imagine the context calling it...10:07
=== chihchun_afk is now known as chihchun
anpok_alf__: where is that needed again?10:39
alf__anpok_: to replace platform specific calls e.g. mir_connection_drm_auth_magic(). Such functions are currently used by the EGL layer (e.g. in mesa) and also in the nested platform.10:42
anpok_ahh yes10:42
anpok_and really  ...?10:43
alan_gmir_connection_magic()10:59
mlankhorsthm.. :p11:37
mlankhorst23782 frames in 5.0 seconds = 4756.278 FPS11:37
mlankhorstshould be better if I implement flip completion11:37
=== alan_g is now known as alan_g|afk
=== alan_g|afk is now known as alan_g
=== dandrader is now known as dandrader|afk
mlankhorstoh there we go12:21
mlankhorstuploaded xorg-server_1.16.1.901-1ubuntu2+sa2 to my ppa, enjoy breaking things :P12:29
anpok_mlankhorst: whats inside xorg? on mir?12:34
=== dandrader|afk is now known as dandrader
mlankhorststandalone XMir, eg not using the xorg binary12:44
=== pete-woods is now known as pete-woods|away
mlankhorstlack of cursor support is annoying13:10
=== chihchun is now known as chihchun_afk
alf__alan_g: What's the UMR fix?13:17
alf__alan_g: ahh, Uninitialized Memory...13:19
anpok_alan_g: hm ogra today said that the alternative selection thing want upgraded after the last mir release13:37
anpok_*wasnt13:38
ogra_yeah, and mir still pulls in mesa13:38
anpok_this would explain13:39
ogra_which makes it use mesa libs by default13:39
anpok_libmirplatform4driver-android is already the newest version.13:39
anpok_oops13:39
anpok_https://bugs.launchpad.net/mir/+bug/139697813:39
ubot5Launchpad bug 1396978 in Mir "[testsfail] GLMark2Test fails to run in CI" [Undecided,New]13:39
alan_gogra_: you know what's going on then? ^^13:53
* alan_g hopes it is someone else's problem13:54
ogra_alan_g, as i said, mir install libmirplatform4driver-mesa14:03
alan_gBut why has that started happening today and how do we fix it?14:06
ogra_because today the new mir landed in the vivid image14:07
ogra_we have a hack in the build scripts that forces the driver alternative to -adnroid even if -mesa is installed ... i just made sure that always gets applied, image #35 should behave better again14:08
ogra_(indeed that wont solve the issue that we install mesa where we shouldnt)14:08
alan_gso the mako image is broken because mesa is installed?14:08
ogra_right, it has both, -mesa and -adnroid installed14:09
ogra_the driver alternative defaults to mesa in such a case14:09
alan_gI'm still not sure what the right way to fix is. (Hacking around the problem in the CI build isn't it though.)14:13
ogra_just wait for the next image, it will have the forced alternative14:14
ogra_(i assume CI devices just use the latest image)14:14
ogra_long term it would be nice if we wouldnt end up with libmirplatform4driver-mesa on phones though :)14:15
alan_gCI image updates are unpredictable (we've evidently got a mix currently)14:16
alan_gI agree about not having libmirplatform4driver-mesa on phone - but the packaging stuff is magic where I don't understand how it should work well enough to fix it14:17
* alan_g just knows it is broken14:18
=== Rookie is now known as Guest98177
=== dandrader is now known as dandrader|lunch
=== chihchun_afk is now known as chihchun
=== pete-woods|away is now known as pete-woods
AlbertAogra_: so the new meta packages didn't help?15:01
ogra_AlbertA, well, not sure what pulls in -mesa ... it might not be mir but some other package with a dep that -mesa fulfills for it15:02
ogra_this needs deeper research (whcih i currently cant do)15:02
mlankhorstbah, when looking for failures to fix on things related to dri2, make sure they pass on normal x first :/15:19
=== dandrader|lunch is now known as dandrader
=== chihchun is now known as chihchun_afk
=== dandrader is now known as dandrader|afk
=== dandrader|afk is now known as dandrader
gcollurado I need to use opensource driver in order to test unity8 on utopic?19:00
gcolluraI'm on amd btw19:11
attente_RAOF: hi, is there a way to specify the position of a transient window/surface in the mir client api? or set the position of a surface in general?19:45
greybackattente_: the plan is to be able to specify the position of a child window relative to its parent window20:13
greybackis being worked on currently20:14
attente_greyback: thanks, is there a timeline for the feature?20:15
greybackattente_: January most likely20:16
greybackit's something I want too20:16
desrtgreyback: can you tell attente_ a bit about the difference between the in-mir-process qt support and the normal-client qt support?20:16
desrti know there are two things here but i forgot which is which20:17
greybackdesrt: sure20:17
greybackQt has a platform abstraction layer, to allow it be cross platform. Each platform has a plugin (QPA plugin).20:18
greybackso on linux we mainly use the xcb QPA20:18
greybackfor Mir clients, we've an "ubuntumirclient" QPA plugin20:19
greybackfor a mir server, we also made a QPA plugin "mirserver" which is what unity8 uses.20:19
greybackthis plugin instantiates a Mir server, pretends that a Mir "Display" is a Qt QWindow, and connects up Mir's input handling with Qt's20:20
greybackso your Qt app, using this mirserver plugin, is in fact a mir server20:21
greybackif you use QML, anything you draw is drawn directly to the display's framebuffer20:21
greybackany mouse/key input goes straight to Qt20:21
greybackthe final part to make Qt a useful mir server, is to allow it to integrate client surfaces into the QML scene, and send input events to those clients. For that we've a QML module20:22
greybackthis is all implemented in lp:qtmir20:22
=== benonsoftware is now known as \b
=== \b is now known as benonsoftware
attente_sorry if i misunderstood, but the Qt app is a mir server? not a mir client?20:28
greybackattente_: unity8 is a special qt app which is a mir server.20:37
greybackall other apps on ubuntu touch are Qt apps which are mir clients20:38
attente_greyback: oh, ok20:40

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