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

=== rsalveti_ is now known as rsalveti
dufluRAOF: efifb would be covered by a Mir-side fbdev driver right?01:56
RAOFduflu: Yes.01:57
dufluCool01:57
RAOFduflu: As long as we don't want to handle resolution changes, anything providing /dev/fb0 will do.01:57
dufluEveryone loves to hate fbdev. I'm not familiar with it so don't know why yet. But I'm not impressed at all by DRM either01:57
RAOFWell, fbdev doesn't *do* anything.01:58
dufluJust a header/API right?01:58
dufluHmm, I didn't realize we'd miss out on mode changing. That's one benefit of SimpleDRM01:59
RAOFRight.01:59
RAOFI mean the API doesn't do anything.01:59
RAOFOther than allow you to mmap /dev/fb?, basically.01:59
dufluYep, that's the minimum02:00
duflu(with stride and dimension info)02:00
dufluand pixel format02:00
RAOFYeah, there are ioctls for querying those.02:00
RAOFAnd for uploading new 256 colour palates!02:00
dufluRAOF: Party like it's 199102:01
RAOFRight.02:01
dufluThen again, people still use GIFs with 256-colour palettes02:01
dufluHow did GIFs survive? It must have been wide-scale compatibility that made them convenient02:02
dufluThat and the patent on LZW expired02:02
RAOFAnd a pre-calculated, per image 256-colour palate is much less offensive than a system-wide 256 colour limit.02:07
dufluI think even per image it was offensive... but became less so when we stopped measuring pixels in mm :)02:08
dufluand dithering was more effective02:09
dufluRAOF: Only one concern with raw fbdev I think... on some platforms (VMs) the default resolution isn't going to be the desired resolution. Are you saying fix that later?02:11
RAOFYes, because we can't reasonably fix it with fbdev.02:12
RAOFThe user can, however, by setting a video= kernel command line parameter.02:12
dufluSure. Just means we've all but decided to chase fbdev before chasing SimpleDRM02:12
duflu... or per-driver mode setting :P02:12
RAOFI don't think that we'll need to do anything to support SimpleDRM other than making mesa handle swrast.02:13
RAOFWell, and for added bonus points do a pixman-based compositor.02:13
dufluRAOF: I'll be more convinced when we have a flag to enable shm on our existing platforms for GL rendering. :)02:14
RAOFWell, that's roughly equivalent to having mesa handle swrast :)02:21
=== chihchun is now known as chihchun_afk
=== chihchun_afk is now known as chihchun
RAOFduflu: I'm really conflicted about lp:~duflu/mir/dpi. The more I think about it, the more I think DPI is the wrong thing to be exposing.05:47
RAOFduflu: Because the client wants to render on a 300DPI phone significantly different to on a 300DPI desktop display connected to that phone.05:48
RAOFs/different/differently/05:48
dufluRAOF: It's a metric both existing toolkits (GDK/GTK) need and also my geometry::Length requires to implement window frames. So we need DPI calculated at some point05:48
RAOFGTK/GDK don't really use DPI though; they use scale-factor.05:49
RAOFOr, at least, GTK apps handle DPIs significantly different to 96 extremely poorly.05:49
RAOFAnd I think geometry::Length is the wrong measurement.05:50
RAOFMeasuring in cm-on-screen is easy, but isn't actually what you want.05:50
dufluRAOF: *Correct* apps will call gdk-screen-get-resolution to size their widgets. That returns DPI05:50
dufluRAOF: Measuring cm on screen is exactly what you want. e.g. the Unity panel is always 0.25" high05:51
RAOFduflu: *GTKs* widgets handle DPI-significantly-different-to-96 really badly.05:51
RAOFduflu: But you *don't* want the Unity panel to be 0.25" high on a phone.05:51
dufluRAOF: More importantly for buttons and text, you're talking a fixed size05:52
RAOFduflu: You want the Unity panel to appear to be the same size as if it were 0.25" on an external display.05:52
dufluRAOF: Ignore phone for the moment (since it's visually different) and consider different monitors.05:52
dufluYes, if you're displaying a phone status bar, that's always smaller than 0.25"05:52
dufluBut ideally always the same physical size05:53
RAOFRight, which is what PPD gets you.05:53
RAOFAt least without actual measurements of user-distance.05:53
dufluRAOF: I've hardcoded the viewing distance in the screen perspective transformation. I'm sure with PPD we could still query DPI for easy consumption05:53
dufluRAOF: Regardless, having a DPI value is blocking WM progress05:54
dufluI need to attach a DPI value (or something) to each surface05:54
RAOFSure!05:54
duflu... something which is convertible to DPI without additional parameters :S05:55
RAOFI think that is actively harmful.05:55
RAOFNot very harmful, but a bit.05:55
dufluRAOF: I can make perfect DPI-scalable graphics right now, with ease. Just give me a DPI number... from somewhere :)05:56
dufluIt's crazy I fought for years to get Unity7 to where it is in 14.04 and still it falls short of the basic requirements I described 2 years ago05:57
dufluRAOF: It's not strictly blocking, however everything that requires a DPI value right now would be hardcoded (e.g. 96) until a real value is available05:58
RAOFduflu: Slurp the DPI from the display, assume 64cm for external monitor and 50cm for laptop, and go :)05:59
dufluRAOF: Or... calculate it precisely using basic math :)05:59
dufluI'm happy to have a configurable scale too05:59
dufluRAOF: But a client can't tell which display it is on, so it requires the server to tell it the physical pixel info06:00
RAOFSorry, those were viewing distances.06:00
RAOFYou can easily get the DPI from the EDID.06:00
RAOFBut the client can't render correctly using the DPI.06:01
dufluRAOF: It's trivial. I've been doing it for years.06:01
RAOF(Or, at least, with _just_ the DPI)06:01
RAOFEG: You've got a phone plugged into an external display. Both are 300DPI. You want the output on the external display to be significantly different to the output on the phone.06:01
dufluRAOF: OK I can add viewing distance as a parameter to geometry::Length::as_pixels but I don't think that blocks DPI work06:02
RAOFIt's the same API.06:02
RAOFOr, rather, it's an API for the same purpose.06:02
RAOFUnless we add in the DPI API now, then deprecate it when we put in the proper solution.06:03
RAOFWhich is viable, I guess. We're planning on breaking API, why not one more thing? :)06:04
racarr__ how about everytime you break API you also have to opaquify an existing client struct06:04
RAOF:)06:04
dufluOr fix 10 bugs :)06:05
dufluRAOF: If you can propose the more generic solution that would be great. In the mean time I'm not blocked and will just assume 96ish DPI where the value is required06:07
dufluHmm, or is it just a second attribute?06:07
duflumir_surface_attrib_viewing_distance06:07
RAOFIt's modelable as a second attribute.06:08
RAOFAs I wrote on the MP, I think the tuple {DPI, form_factor, PPD} expresses everything that a client might possibly want to know (but would prefer to not expose DPI, on the basis that clients are unlikely to use it well)06:09
dufluWhich can also be assumed as a hardcoded value for now. Its later introduction doesn't change the physical size of an inch06:09
dufluRAOF: I'm also conflicted with dreams of eventually doing head tracking to update the real eye vector :)06:11
RAOFduflu: Totally possible! Laptops will ship with kinect in the not-too-distant future!06:11
dufluBut that too does not change the definition of an inch06:11
RAOFduflu: But *does* change what should be rendered.06:11
RAOFIt certainly doesn't change the physical DPI of the display, but the physical DPI of the display was never what you wanted in the first place; you always wanted apparent-size.06:12
RAOFOr, rather, you want the DPI in order to determine how big to draw things. You want to determine how big to draw things so that they appear to be an appropriate size to the user.06:13
dufluRAOF: Physical size is important. That dictates the reasonable minimum size of any touch-button on a phone or a big screen. In cases like that, viewing distance must be approximately equal to reach out to06:13
RAOFWe could just tell you how big to draw things so that they appear to be an appropriate size.06:13
RAOFTo reach out to...?06:14
dufluTo physically touch. That said, design requirements change too. Like how an ipad has bigger icons to an iphone06:15
dufluYou're still holding them at the same distance06:15
RAOFI don't think that's the case, actually.06:16
RAOFI think people tend to hold phones closer than tablets.06:16
* duflu refuses to continue that far down the hypothetical path06:17
dufluTime to do other work06:17
RAOF(Apple at least think people hold iPhones ~25cm from their eyes, and iPads ~38cm ☺{)06:17
RAOFYeah, certainly.06:17
dufluWell, if anyone's done the physical research then it would have been Apple06:18
dufluI find that odd06:18
RAOFTablets are bigger :)06:18
duflu25cm is very close. Are people blind?06:19
* RAOF has just determined that he holds his phone between 28cm and 24cm away from his nose.06:20
dufluHah, I just measured 39cm for iPhone :)06:24
RAOFWow. That's getting pretty close to arms-length.06:26
dufluNo, still pretty bent in the elbow06:27
dufluArms length is about 60cm06:27
RAOFDear “bzr heads”: please find that branch head you seem to have deleted somehow.06:32
RAOFWoo!06:40
=== mpt_ is now known as mpt
greybackhey folks, quick question: for screencasting, is the intention for the screencast app to connect to the system compositor (as that is what pushes the final pixels to the screen) or to the session compositor?11:17
alan_ggreyback: is that for Mir to decide? Doesn't that question come down to the needs of the screencast app? (E.g. does it screencast the user session or does it want to "cast" lock screens and switching users?11:21
alan_g)11:21
alan_gMy guess would be it should be to the session server. But I'm not designing screencast. ;)11:22
greybackalan_g: fair point, I can't say what the intention was, but I can ask what he requirements for the feature were :)11:22
alan_galf_: Mir's "screencast" should support both scenarios ^^ right? (But connecting to the system compositor ought to be privileged.)11:24
alf_alan_g: greyback: Right, you can connect to any mir server (nested or host) and get that server's output11:26
alf_alan_g: greyback: (if you have the needed priveleges of course)11:27
alf_s/priveleges/privileges/g11:27
greybackalf_: yep, that's clear. I'm trying to see how QtCompositor will work with the screencasting stuff11:27
greybackso was curious if I had to care at all (only system compositor would be used for screencasting) or if I did have to care11:28
* greyback thinks he has to care :)11:29
alf_greyback: hmm, yeah, screencasting uses the DisplayBufferCompositor(Factory) interfaces currently11:29
greybackalf_: to just check I understand it, for screencasting you create a new GL context, a new renderer for that context and have it render to an FBO, which then you glReadPixels back?11:31
alf_greyback: right, except we don't glReadPixels in the server. We create a new hardware buffer to back the FBO, render into it, and send that back to the client. Then the client can do what it wants with it (our official screencasting client glReadPixels).11:35
greybackalf_: gotcha11:35
greybackalan_g: can I confirm your intention to eventually remove mir::scene::SurfaceConfigurator?11:36
greybackalan_g: and is everything wired up so I could replace my use of it with mir::scene::SurfaceObserver?11:39
alan_ggreyback: Sorry that works's several levels down my stack - I need to review to give a good answer.11:40
greybackalan_g: that's ok. I'm in absolutely no rush for an answer11:41
* alan_g promptly forgets about the question11:42
=== alan_g is now known as alan_g|lunch
greybackanother quick question12:30
greyback    geometry::Size size() const override;12:30
greyback    geometry::Size client_size() const override;12:30
greybackin BasicSurface12:30
greybackwhat is the difference exactly? One the actual geometry of the surface in pixels, the other the size it should actually be rendered at (i.e. scaled)12:31
greybackah, never mind12:32
greybackbasic_surface.cpp:    // TODO: In future when decorated, client_size() would be smaller than size12:32
greybackwhich troubles me, what has decoration got to do with a client's surface?12:34
=== alan_g|lunch is now known as alan_g
alan_ggreyback: You're best talking to duflu  - he's got plans in this area that mean the area of a surface Mir renders can be larger than the area the client is made aware of.13:00
greybackalan_g: indeed. Will have a chat with him13:00
kgunn709cardinal13:10
kgunnoops wrong window13:11
=== tedg is now known as ted
* greyback theorizes what kgunn was writing about in that other channel13:15
kgunnmy address13:15
=== chihchun is now known as chihchun_afk
alan_galf_: do you have an opinion on https://code.launchpad.net/~alan-griffiths/mir/introduce-yet-another-interface-into-frontend/+merge/218667?13:45
alf_alan_g: haven't looked yet, will do so shortly13:46
=== chihchun_afk is now known as chihchun
=== alan_g is now known as alan_g|tea
=== dandrader is now known as dandrader|afk
=== alan_g|tea is now known as alan_g
=== chihchun is now known as chihchun_afk
=== pete-woods is now known as pete-woods-lunch
=== dandrader|afk is now known as dandrader
josharensonkgunn, how would you like me to proceed re: glmark2 android off-screen (or the lack thereof)15:27
kgunnjosharenson: do you have an inkling of how to enable it ?15:28
kgunnjosharenson: second question, does everything hit 60 fps ?15:28
kgunnon android15:28
kgunnon nexus4?15:29
kgunn(running on n10 & n7 pure droid might be interesting also)15:29
josharensonkgunn, I'll run it an see... as for enabling it, I looked for a few ways, and there wasn't anyhting easy...15:29
josharensonkgunn, you can disable vsync, but it seems to only be app side...15:30
josharensonkgunn, I'll look at the code too15:30
kgunnjosharenson: thank...yeah, i don't want you to go down a rathole...but worth a look15:36
josharensonkgunn, would the on screen numbers be of value, across devices?15:36
kgunnjosharenson:  i think so, it will show some relativism and effect of gpu15:37
kgunnsensitivity15:37
josharensonok15:38
=== chihchun_afk is now known as chihchun
=== chihchun is now known as chihchun_afk
=== fginther is now known as fginther|lunch
=== fginther|lunch is now known as fginther
josharensonalf_ are you aware of any way to run glmark2 off screen on android? looks like its not implemented...16:45
kgunnkdub_: you back ?16:47
kdub_kgunn, yep!16:47
kgunnwelcome back! hope it was a good time of16:47
kgunnoff16:47
kdub_thanks!16:50
=== pete-woods-lunch is now known as pete-woods
=== alan_g is now known as alan_g|EOD
kdub_looks like time to upgrade to utopic17:09
racarr__http://richg42.blogspot.co.uk/2014/05/things-that-drive-me-nuts-about-opengl.html17:30
racarr__from a dude at valve, its interesting17:30
racarr__he has lots of bullet points ;)17:30
racarr__alf_: I sa you filed a bug about the custom input dispatcher fixture failure are you orking on it?17:33
racarr__I ran in to it too17:33
slvn_hello, a little question :17:40
slvn_I have ubuntu 14.04, I give a try and setup unity8 + mir17:40
slvn_My touchscreen is not used ! only my mouse is detected17:41
slvn_but I have the /dev/input/mice with receive both mouse and touchscreen information17:41
slvn_do I need to configure something special?17:42
racarr__slvn_:  :) Thanks for testing...you are the second person to bring this up so I guess I should take some time to look at it.17:42
racarr__slvn_: I think its basically just a bug on our end...17:44
racarr__for the touch devices e look for these device configuration files17:44
racarr__that arent present ont he desktop17:44
slvn_racarr__,  yes, my touchscreen is still under warranty :)17:44
racarr__I may be able to suggest a workaround17:45
racarr__if you are interested in testing17:45
slvn_racarr__, is there some configuration file that patch17:45
racarr__need just a minute or to to figure out17:45
racarr__maybe!17:45
slvn_racarr__, yes17:45
racarr__this is some code we inherited from android open source project17:45
racarr__so I have to remind myself...hat it does17:45
slvn_racarr__, I am fine to test a workaround, because my goal is to test something more complicated afterwared17:45
racarr__oh boy fun :D17:46
racarr__slvn_: Ok can you run unity8 or mir_demo_server_basic for me (make sure to run demo_server as root so it can open input, otherwise you cant quit ith ctrl+Alt+backspace)17:51
racarr__with MIR_SERVER_LEGACY_INPUT_REPORT=log17:51
racarr__slvn_: and I guess riter stdout/stderr to a file we are looking17:51
racarr__for some messages about opening input configuration files17:52
racarr__to find what it is calling your touch screen17:52
racarr__then we will make a conf file17:52
racarr__slvn_: IF you run unity8 yourself you will also need to run it as root...from a VT like sudo QT_QPA_PLATFORM=ubuntumirserver MIR_SERVER_LEGACY_INPUT_REPORT=log unity8 > input-log.txt 2>&117:56
slvn_racarr__ of course, I need to close my X session right?17:58
racarr__slvn_: No you should be able to just run it from a VT18:00
racarr__and even switch back and forth18:00
racarr__beteen your X VT and Mir :)18:00
=== dandrader is now known as dandrader|lunch
racarr__slvn__: Uhoh...did we kill your machine ?18:05
slvn__racarr__, yes some trouble :)18:05
racarr__hmm what happened?18:06
slvn__I probably didnt do the command correctly ...18:06
racarr__I mean ho did it break though?18:07
slvn__can you copy paste the command again (my textfile hasn't been save)18:07
slvn__mir is displayed18:07
slvn__but could get out of it18:07
racarr__oh did you forget to run as root?18:07
slvn__so I rebooted ..18:07
racarr__maybe missed the sudo18:07
racarr__sudo QT_QPA_PLATFORM=ubuntumirserver MIR_SERVER_LEGACY_INPUT_REPORT=log unity8 > log.txt 2>&118:08
racarr__should be the stuff18:08
slvn__terminate called after throwing an instance of 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<std::runtime_error> >'   what():  Error opening DRM device18:08
racarr__but it worked ithout root? Hmmm18:09
racarr__very strange...18:09
racarr__*thinks*18:10
slvn__in a terminal, doing Alt+F118:10
slvn__in root18:10
racarr__slvn__: You mean a virtual terminal yes18:10
racarr__not a terminal in X1118:10
slvn__yes, a VT18:10
slvn__I need to reboot that in a VT18:11
slvn__hold on...18:11
slvn__I need to redoo that in a VT18:11
racarr__:)18:12
slvn__ok got it18:13
racarr__slvn__: Yay, can you put the log on a pastebin?18:14
slvn__http://pastebin.com/nBkF7dz918:15
racarr__slvn__: Ah...hmm its actually failing earlier than I guessed18:18
slvn__I have a laptop with a trackpad + a mouse (evoluent) + a usb keyboard + an external monitor with touchscreen18:18
racarr__so I dont really have a workaround...sorry lol18:18
racarr__this is helpful though...I can see where it fails so ill look in to it and try and get something fixed18:18
slvn__racarr__, where does it fail exactly ?18:20
slvn__ in /dev/input/mice ?18:20
racarr__slvn__: Yeah around line 2018:21
racarr__its trying to get...some sort of driver info ith some sort of IOCTL Thats not supported on the desktop18:21
racarr__and apparently there is a fallback for the builtin mouse but18:21
racarr__the touchscreen just fails18:21
slvn__ok :(18:21
slvn__it is working on ubuntu 14.04, but not with unity8. though18:22
racarr__slvn__: Mm. makes sense.18:22
racarr__slvn__: I think it wont be hard to fix...if you want I can try and prepare a branch for you to test later today18:23
racarr__(I dont have a desktop touchscreen)18:23
slvn__Yes, that would be nice :)18:26
slvn__I dont know how hard this is to compile unity818:26
slvn__+mir18:26
racarr__slvn__: Ok great. Will you idle around in the IRC channel so I can catch you sometime later today or tomorrow (I am us pacific time)18:26
racarr__or should I send you an email?18:26
racarr__or I guess we could use a launchpad bug haha18:27
slvn__I am in europe18:27
slvn__by email18:27
racarr__slvn__: Ok. Wanna pm me your email and I ill try and work on something with instructions to test this afternoon18:28
slvn__maybe we could first try the piece of could that should do the ioctl on /dev/input/*18:28
racarr__and you should get them tomorro :)18:29
racarr__yes I think hat is going on is the ioctl is to read18:29
racarr__some like, identifier tag for the device that seems to only work on android18:29
racarr__to try and load a device configuration18:30
racarr__so I think we can just build in a default touchscreen configuration18:30
racarr__which will work on the desktop18:30
anpokha someone looked into the clang ci failures..18:50
anpokthere was one error that happened on my and on alfs mp18:51
anpokcould reproduce locally18:51
anpok*could not :)18:51
racarr__I havent looke dyet happened to my MP too though18:57
racarr__anpok: Hmm wait18:58
racarr__looking at the tests...18:58
racarr__can you run a server process without ac lient with our test fixture18:58
racarr__when the last client exits18:58
racarr__the server process is stopped by the fixture18:58
racarr__which is why all these input tests only set client_may_exit fence after18:58
racarr__all the expectations are validated18:59
racarr__just a guess :)18:59
anpoka failure only with clang in the bespokedisplayserver fixture based tests18:59
=== dandrader|lunch is now known as dandrader
=== dandrader is now known as dandrader|afk
=== jono is now known as Guest3239

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