/srv/irclogs.ubuntu.com/2014/04/29/#ubuntu-mir.txt

dufluRAOF: https://launchpad.net/ubuntu/+source/libinput ?01:31
dufluSounds official01:31
RAOFIndeed.01:31
* RAOF upgrades to utopic01:32
RAOFBut first: coffee!01:32
josharensonkdub, re: way earlier, I am following the same method as the acceptance tests to launch server/client combo... but it isn't working, likely due to the fact that popen forks01:48
bschaeferanyone know why mesa-common-dev is installing GL headers on arm?02:29
dufluRAOF: I just noticed this happening on my system:02:37
duflu[    1.345960] fb: conflicting fb hw usage inteldrmfb vs EFI VGA - removing generic driver02:37
dufluwhich sounds logical02:37
duflubut doesn't that mean we can never have a seamless boot screen?02:37
dufluBecause any modern system will start with efifb (or other) and then switch to the GPU-specific driver02:38
RAOFbschaefer: Because you can totally build GL applications against mesa on arm?02:58
RAOFduflu: No; intel, for example, has code to seamlessly take over from the EFI bootsplash.02:59
dufluRAOF: I suspected as much. Cool02:59
dufluRAOF: By default?03:00
RAOFI'm not sure if they've enabled it yet.03:00
dufluTrusty's boot screens seem quite broken for many possible reasons. Grub is often one03:01
dufluAs usual, most of the boot experience is a black screen. Sometimes a purple border. And then the login screen03:01
dufluPlymouth doesn't really play a part any more03:01
RAOFIt's because we boot too fast.03:04
dufluYeah. I wonder what purpose the black screen with purple border is intended for though03:04
dufluIt just looks confusing03:04
RAOFThat would probably be grubish.03:04
bschaeferRAOF, with glx?03:07
RAOFbschaefer: Sure, why not!03:07
bschaeferRAOF, hmm then either SDL2 is confused or i am :)03:08
RAOFThere would be some adrino GPUs where you could do GLX :)03:08
bschaeferas SDL2 assumes if GL/gl.h and GL/glx.h then opengl is supported, and attempts to render in opengl on arm03:08
bschaeferwhich fails03:08
RAOFAnd this is at compile-time, obviously.03:15
RAOFThere's no way of explicitly asking for EGL?03:15
bschaeferthere is, and it compiles fine, its at run time when a renderer is picked03:15
bschaeferwhich usually if opengl is around, opengl is picked first03:15
bschaeferRAOF, i can get around this by --disable-video-opengl in the deb for arm builds03:16
bschaeferRAOF, i just thought that opengl stayed away from arm, and it was just es 1/203:16
RAOFIt's technically possible to do on arm hardware (although I haven't followed up if Rob has actually implemented it for any of the reverse-engineered drivers), and (for example) the new nvidia arm stuff supports OpenGL 4.4.03:17
RAOFbschaefer: How does it pick a renderer? It can't pick a GLX one for Mir, because it can't get an X connection :)03:19
bschaeferRAOF, thats awesome! I didn't even know that was close to being supported on arm03:19
bschaeferRAOF, well, SDL2 just does 2 checks03:20
bschaeferif GL/gl.h and GL/glx.h exists, then flip the define VIDEO_OPENGL = 103:20
bschaeferif VIDEO_OPENGL = 1, then we assume opengl is supported, and we attempt to return an opengl context for the renderer in the mir backend03:20
RAOFAh.03:22
bschaeferactually its changed a bit in mir since then, but we get flags that'll hand that to us (in the mir back end)03:22
RAOFWell, it should be checking whether the EGL implementation supports OpenGL.03:22
bschaeferThe check is just for OpenGLX11(), which flips that flag  :(03:23
bschaeferi should add a check if x11 is even around at that point though?03:23
bschaeferIll have to dig more into its criteria for picking opengl, as i think its a bit to loose03:24
bschaeferRAOF, thanks!03:24
RAOFNP :)03:25
=== chihchun is now known as chihchun_afk
=== chihchun_afk is now known as chihchun
dufluRAOF: Here you go. It works at near light speed :)   https://code.launchpad.net/~vanvugt/mir/single-buffer/+merge/21755508:01
RAOFduflu: I notice you assume that reading and writing to that buffer simultaneously won't crash :)08:04
dufluRAOF: Correct for all memory types I know of...?08:04
RAOFI'm pretty sure doing so on some graphics hardware invokes undefined behaviour.08:08
RAOFBut that's ok, because you can't hardware-accelerate single-buffered clients anyway!08:08
dufluRAOF:  I doubt it. Traditionally most GL implementation support single buffering08:08
RAOFNot to window surfaces?08:09
RAOFAnd only GL; that's one of the things removed in GLES08:09
dufluRAOF: Yeah "traditionally" in the good old GL days08:10
anpok_RAOF: duflu: you could have the other buffer in the display control unit that does the scan out.. and only block gl during scanout.. so the gles driver would really see only one buffer08:36
anpok_greyback: duflu is out for short, but comes back soon08:37
duflugreyback: Not sure there was any WM news this week... ?08:54
greybackduflu: not from me, I was out last week08:55
greybackduflu: have you anything?08:55
dufluI have grand plans for making a start on defining "Window" (maybe) and the multi-surface support stuff08:55
duflugreyback: But nothing official yet. I got delayed last week trying to fix some regressions.08:57
dufluAnd it happened to be a 3-day week in Australia :)08:57
greybackduflu: fair enough. This week I hope to sort out the QtCompositor multi-monitor story08:59
dufluanpok_: Yeah I was thinking you could block single buffered clients "only during scanout". But not a pressing issue08:59
duflugreyback: Fun. Let us know if anything needs fixing/improving08:59
greybackduflu: once anpok's custom-input-dispatcher branch lands, I'll be a happy bunny09:01
* duflu doesn't even know what that means09:01
greybackanpok_: note https://code.launchpad.net/~andreas-pokorny/mir/custom_input_dispatcher/+merge/215174 has conflicts with trunk, could you update please09:03
anpok_greyback: ok09:09
=== ondra- is now known as ondra
anpok_hm i seem to be using a different compiler than our ci - the new 4.8 or 4.9 does not include string.h..09:31
anpok_hmm or that caused by a change in boost exception09:31
=== chihchun is now known as chihchun_afk
=== chihchun_afk is now known as chihchun
=== alan_g is now known as alan_g|lunch
=== alan_g|lunch is now known as alan_g
greybackfginther: ping13:21
=== pete-woods1 is now known as pete-woods-lunch
=== jono is now known as Guest72975
=== dandrader is now known as dandrader|afk
=== alan_g is now known as alan_g|tea
=== alan_g|tea is now known as alan_g
=== dandrader|afk is now known as dandrader
=== pete-woods-lunch is now known as pete-woods
=== chihchun is now known as chihchun_afk
=== alan_g is now known as alan_g|EOD
greybackanpok_: hey, do you think lp:~andreas-pokorny/mir/input-sender-split is close to MR?16:57
greyback(fyi it has conflicts with mir-devel right now)16:58
anpok_i know16:59
anpok_i am untangling things that I added during custom_input_dispatcher16:59
greybackanpok_: ok17:01
anpok_it is closeish .. but not done17:01
greybackI'll be working off it for now anyway17:02
anpok_thanks17:02
kdubyay, figured out my resizing problem, lets see if there's any other way to break this overlay stuff17:15
josharensonSo I still cannot figure out how to launch a mir client (via popen) and have it attach to a mir server that was started from a different thread (at least that isn't some kind of hack)... Has anyone done this? I think the issues is popen forks17:22
kdubjosharenson, what sort of problem?17:24
josharensonkdub its either not working at all (client cannot connect to mir), or the performance is terrible (.5 frames / sec)17:25
kdubgenerally, I'd fork first, then have the processes do their things17:25
josharensonkdub I've tried using the test framework (launch_client_process) which does exactly that... no dice17:26
kdubjosharenson, what is like the overarching goal?17:26
kdublike, launch glmark or something automatically?17:27
josharensonkdub, start server, run benchmark, stop server17:27
kdubright, just making sure17:27
josharensonif i call run_mir in a separate thread, sleep the main thread while server inits, and then call popen, it works17:27
josharensonkdub, but that uses a sleep call, and there is no way to gracefully stop the server17:28
kdubuse a condition_variable to wake it up when the client has stopped17:28
josharensonkdub, it blocks at the run_mir call though17:29
kdubwell, run_mir will just stop on the signals iirc17:30
josharensonkdub, so just raise(sigint)?17:30
kdubwell, I dunno if that's the preferable way17:30
kdubif you're using the test framework directly (eg, like writing a new acceptance test)17:30
kdubthen the drivers might not be being hit I think the default with those is to stub out the drivers17:31
kdublike, this new executable that does this should be more of 'in the spirit of the acceptance tests' than an acceptance test itself I guess17:31
kdubjust my two cents though :)17:31
josharensonkdub, nod... however when I tried everything acceptance test related, up to and including dropping the popen into an existing acceptance test, the benchmark still couldn't connect to mir... I'll keep trying things...17:32
alan_g|EODjosharenson: kdub how about using InProcessServer with the default configuration? You can launch glmark in the test body.17:33
* alan_g|EOD hasn't tried it but it should be possible17:33
kdubjosharenson, yeah, thats another idea17:33
kdublike, check out the demo_inprocess_egl example17:33
kdubalan_g|EOD, but if the purpose is benchmarking, I'd rather not cut out the IPC stuff17:33
* josharenson looking at that function17:33
josharensonkdub, alan_g|EOD certainly looks like what I'm trying to do.. I'll give it a try. Thanks17:35
alan_g|EODkdub: If you launch a child process you'll be doing IPC17:36
kdubalan_g|EOD, yeah, good point17:36
kdubno process context switches though17:36
alan_g|EODkdub: If you launch glmark as a child process it will be a different process17:37
kdubwell, I thought we were talking about inprocess egl clients17:38
alan_g|EODInProcessServer creates a server in the test process. But the client can be another process - provided you ship the connection FD across.17:39
* alan_g|EOD wanders away again17:39
kdubhave a nice wander :D17:40
* kdub has to reacquaint myself with InProcessServer17:40
=== dandrader is now known as dandrader|lunch
=== dandrader|lunch is now known as dandrader
stgraberhey there19:37
stgraberso asac asked me to get a Unity8 + Mir desktop session running inside a LXC container (as a way to run 14.10's unity8+mir on 14.04)19:37
stgraberso far I'm trying to run unity8 with mir on vt8 from within a container. I've got access to /dev/tty8 and to /dev/dri but things are still failing a bit19:38
stgraberhttp://paste.ubuntu.com/7361449/ any idea?19:38
stgraberthat's basically a clean container with just unity8-desktop-session-mir installed in there19:38
stgraberasac: http://paste.ubuntu.com/7361648/20:07
asacgreyback: ^^20:07
asacgreyback: who could help?20:08
asackdub: ^ ?20:09
asacracarr__: ^ :) (that was last ping i'll try)20:10
racarr__Hola!20:10
asacyay!20:10
racarr__asac: stgraber: It's not familiar off the top of my head...lemme think/try something20:10
asacnice one... thanks!20:11
racarr__hmm experiment uninformative lol, lsof on a running mir_demo_server_shell20:11
racarr__is all libraries, /dev/tty /dev/dri and /dev/input (which wouldnt give this error...I think opening input still just fails with a log message)20:12
kdubstgraber, lxc container on the desktop?20:12
stgraberkdub: yep20:12
racarr__stgraber: Ok looking at gbm source its definitely the DRM fd20:14
racarr__*thinks*20:14
racarr__stgraber: Hmm if you aren't running USC20:17
racarr__then EGL_PLATFORM="mir" shouldnt be set20:17
racarr__because mir clients (incl nested mir server )use the mir egl platform20:17
racarr__but a host mir server uses the20:17
racarr__drm egl platform20:17
racarr__it shouldnt be necessary to set EGL_PLATFORM="mir"20:18
racarr__that could be it.20:18
racarr__if not, backtrace would be next step to see if its the server context or unity8 failing to initialize20:19
racarr__seems like the server...but *shrug*20:19
asacracarr__: stgraber: no luck?20:40
stgraberasac: sorry, had a meeting, back now20:52
asacheh20:52
asacdont worry20:52
asaci just wanted to check before i drop off :)20:52
stgraberracarr__: ok, so things should work if I only set QT_QPA_PLATFORM=ubuntumirserver in the environment and call unity8?20:53
asacallright, i am off, cu around tomorrow20:53
racarr__stgraber: Should!20:57
=== dandrader is now known as dandrader|afk
AlbertAkdub: ping21:21
kdubAlbertA, pong21:21
AlbertAkdub: so on the fallback path21:21
kdubsure21:21
AlbertAkdub: let's say you are using demo shell21:21
AlbertAkdub: and lets' say evertying is hooked up to hwc as envisioned21:22
kdubright21:22
AlbertAkdub: how does the extended21:22
AlbertArenderer get to render the shadows?21:22
AlbertAI'm not clear how the fallback and the compositor render interplay21:22
kdubwell, in that case, the user of mg::DisplayBuffer (eg, the demo shell writer) would know they're doing something advanced, so they wouldn't try the optimization function21:23
kdublike, if the compositor writer can fit what they want to appear on the screen into a RenderableList, then they have the shot at optimization21:23
kdubotherwise, they have OpenGL to do what they want21:24
AlbertAah I see21:24
kdubnow, a clever compositor writer with this scenario could make a Renderable that is black, and insert it into the list21:24
kdubbut not all ideas behind effects can be captured in the RenderableList21:25
kdublike from a compositor writer's perspective, they don't know about the android fallback GL code21:25
kduband this is a cool abstraction (i'm biased :) ) because it works for like21:26
kdubhardware cursor + bypass buffer too21:26
kdubon mesa21:26
AlbertAI see you could render the shadows just once (until window size changes) and keep inserting into the list21:28
kdubright, but take like the 'magic lamp' animation (like a macos minimize)21:31
kdubduring the animation, the compositor writer wants to do GL, so they have the flexibility21:31
kdubbut once the window has become steady, then the compositor writer knows its simple, and can try submitting to the optimized function to get the optimized render the platform provides21:32
=== dandrader|afk is now known as dandrader
racarr__living on the edge and having a second coffee today :D23:41

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