[01:32] <robert_ancell> duflu, how does mir_pixel_format_xrgb_8888 and mir_pixel_format_bgr_888 have the red channel in the same location?
[01:32] <robert_ancell> Where are the pixel formats defined?
[01:34] <duflu> robert_ancell: common.h ... the 32-bit formats are designed to be expressed as uint32 whereas the 24-bit formats are three bytes. So for little endian they are the reverse
[01:35] <duflu> That said, I'm not sure X can deal with the latter at all
[01:36] <robert_ancell> very confusing
[01:36] <duflu> We use endianess like that so software apps using 32-bit formats don't need to ever do byte swapping to work on any machine.
[01:37] <duflu> robert_ancell: Yes, but it makes sense and is the best option if you think about it. The alternative is that every app would need #ifdef for different endianness
[01:37] <duflu> Unfortunately endian does not apply to 3 byte pixels. It makes no sense there
[01:39] <duflu> BTW, I did not design it that way. It was like that before I/we joined Mir
[01:40] <duflu> And it seems like the right solution too. Just confusing when dealing with some APIs like OpenGL that do the opposite
[01:42] <robert_ancell> duflu, so your branch corrects the wrong masks right? The rest of it is just code moved around.
[01:43] <duflu> robert_ancell: Yes, and it ensures everything (screen and windows) agrees on the format of TrueColor pixels
[01:43] <duflu> Although it's still not ideal for EGL. More work is required there
[01:45] <robert_ancell> duflu, btw we do know that software mode works - the goal is to get EGL to work
[01:45] <duflu> More importantly, I've now done an MP in git-for-launchpad :)
[01:45] <robert_ancell> duflu, yeah, well done!
[01:47] <robert_ancell> duflu, you can just push into the xmir branch
[01:48] <duflu> robert_ancell: Yes, software has always worked. Although the upload/copy operations in software are slowish, rendering the same in OpenGL arguably uses even more resources. And OpenGL needs the buffer held for longer. The only problem is some droids (and I noticed it on mako) sometimes corrupt software buffers on screen. That's usually a flags bug in the Mir android code
[01:48] <robert_ancell> duflu, what do you mean by "uses even more resources"?
[01:49] <robert_ancell> Software mode seems poor when resizing windows, I'd expect that to be faster in OpenGL right?
[01:49] <duflu> robert_ancell: Both rendering approaches require an "upload" or copy of the whole surface. However there's no OpenGL state and texture to worry about in software
[01:50] <duflu> robert_ancell: Yeah some things will be faster in GL on some devices. But there's not a huge difference if your apps are software rendering in the first place
[01:50] <robert_ancell> duflu, so, do you think getting EGL to work is a waste of time?
[01:50] <duflu> robert_ancell: No, I think EGL will be faster for some things and we should do it
[01:52] <duflu> Even the upload itself may be faster in some GL implementations
[01:57] <duflu> robert_ancell: It's satisfying being able to play /usr/games/sol on the phone :)
[01:58] <robert_ancell> heh
[02:22] <duflu> robert_ancell: Theoretically rootless should let us skip a copy completely. Because the X server no longer has to composite its apps in software into the screen surface. But I don't know the reality of the implementation. That's just theory.
[02:23] <robert_ancell> duflu, yeah, I guess
[04:04] <duflu> robert_ancell: BTW found a simpler solution to the xkb problems. Just configure with --prefix=/usr
[04:04] <duflu> So it finds everything in the right place
[04:04] <robert_ancell> duflu, and you can then run without installing?
[04:04] <duflu> robert_ancell: Yep, no installation
[04:04] <robert_ancell> sweet
[04:05] <duflu> Sweet unless there's an ABI break
[04:05] <duflu> But I don't think Xorg does ABI breaks much
[04:19] <RAOF> Xorg breaks ABI every release.
[04:19] <RAOF> Not quite, but very nearly.
[04:21] <RAOF> Hm. That's got to be a gcc bug.
[04:21] <RAOF> auto foo = [this]() { return display_config; }; foo().active_configuration(); blows up.
[04:22] <RAOF> auto foo = [this]() -> mg::DisplayConfiguration const& { return display_config; }; foo().active_configuration(); works as expected.
[04:33] <bschaefer> RAOF, how is 'this' actually defined? Just a pointer to the class right? (raw c pointer?)
[04:34] <bschaefer> nm what i was thinking makes no sense (was thinking something with a std::unique_ptr)
[04:37] <RAOF> Yeah, “this” is a keyword meaning “pointer to the implicit first parameter of the function call” :)
[04:41] <bschaefer> RAOF, yeah was trying to find the actual definition in the standard but 'this' is an over used word :)
[05:27] <RAOF> Ok, wtf?
[06:00] <RAOF> How is DefaultServerConfiguration::configuration_options being set to a non-null value in the constructor, but then the_options() SEGVing because configuration_options contains null?
[06:01] <duflu> Cosmic rays
[06:02] <RAOF> Hm, or slicing?
[06:02] <RAOF> $1 (this) = (mir::DefaultServerConfiguration * const) 0x1c44e10
[06:02] <RAOF> (Contains correct value)
[06:02] <RAOF> $4 (also this) = (const mir::DefaultServerConfiguration * const) 0x1c44e10
[06:03] <RAOF> Oh, no. That's the same value.
[06:03] <RAOF> It looks different in gdb :)
[06:03] <RAOF> Watchpoint it is.
[06:04] <Guest44551> duflu, https://bugs.launchpad.net/ubuntu/+source/unity8/+bug/1493185
[06:05] <duflu> Guest44551: Thanks. Sounds like the ubuntu UI toolkit (that is shader heavy and sometimes the least portable part)
[06:05] <Hock> anyone looking into it?
[06:06] <duflu> Hock: I will reassign it. Can you attach a screenshot? That URL does not work..!?
[06:08] <duflu> Hock: The relevant people log on in a couple of hours
[06:08] <duflu> They should notice it
[06:11] <Hock> i attached it
[06:12] <Hock> i submitted this bug two days ago. :(
[06:12] <duflu> Hock: Thanks. I just checked the source code. Looks like ubuntu-ui-toolkit. It's possible you'll get a better response now it's assigned to the right project today
[06:13] <Hock> duflu, great! thanks
[06:13] <duflu> Hock: We had a similar issue recently. ubuntu-ui-toolkit is ambitious, sometimes to the point of non-portable
[06:13] <Hock> this will not be related to gralloc hal crashing using CM kernel, right?
[06:14] <duflu> Hock: No, your kernel unity8 and Mir seem to be working fine
[06:14] <Hock> this is fine as its on aosp kernel
[06:14] <Hock> when i tried using CM kernel, the gralloc refused to start.
[06:14] <Hock> just died
[06:14] <duflu> Hock: Nice working getting that far
[06:14] <duflu> *Nice work
[06:15] <Hock> nice. but still long way to go
[06:15] <duflu> I'm not so sure it's a long way
[06:15] <Hock> wifi doesnt work as the stock kernel does come with source
[06:15] <Hock> its binary wlan.ko
[06:16] <Hock> have been trying a few prima sources but insmod hung
[06:16] <Hock> and wlan0 does not get created
[06:16] <Hock> CM kernel cant be used as their gralloc dont play nice with ubuntu touch
[06:17] <Hock> anyway hint on how to get cm gralloc to work?
[06:18] <duflu> Hock: Don't know. If you don't get a response within a day then the person is:  https://launchpad.net/~loic.molinari
[06:18] <duflu> For the bug that is
[06:18] <Hock> ok.
[06:18] <Hock> how can I tell the verion of mir that I am running on?
[06:19] <Hock> version
[06:21] <duflu> Hock: dpkg -l | grep libmir
[06:22] <duflu> But Mir is working (or else many things would have failed before the screen got painted that much even)
[06:24] <Hock> 0.13.3+15.04.20150617-0ubuntu1
[06:24] <Hock> libmirclient9:armhf                                  0.14.1+15.04.20150821-0ubuntu1
[06:24] <Hock> mixed of 0.13 and 0.14
[06:24] <duflu> Hock: Sounds like vivid (which is presently a mix of 0.14.1 and 0.13.3, the latter is for some clients that haven't been updated)
[06:24] <Hock> yes, mir is working. just the icons
[06:25] <Hock> yes, i switched back to vivid
[06:25] <Hock> going to wily does not solve the icons issue
[06:47] <RAOF> Ok, that's weird.
[06:48] <RAOF> If you call the_frontend_display_changer() from the_session_coordinator(), Mir crashes.
[06:49] <RAOF> OH!
[06:49] <RAOF> Because there's a cycle there.
[06:50] <RAOF> Nice of ABSOLUTELY NOTHING AT ALL to notice a stack overflow.
[13:20] <tedg> RAOF: Is there a reason that those are needed over the binary blog that the RaspPi folks are using?
[13:35]  * ogra_ shkes fist towards provider ... 
[13:35] <ogra_> tedg, kms support perhaps ?
[13:35] <ogra_> the binary blob is used in any case, you cant boot the board without it
[13:35] <ogra_> (the bootloader is contained in the blob)
[13:36] <tedg> Yeah, not sure. I just want Mir on my RPi2 :-)
[13:40] <ogra_> i dont think we have all needed userspace for the closed driver either yet (libEGL, libGLES etc)
[13:48] <tedg> So perhaps that is the Mesa work that was mentioned.
[13:48] <ogra_> yeah
[17:00] <attente> AlbertA: hi, i'm just wondering if you had a chance to think about how we can implement GtkComboBox behaviour using Mir menu surfaces
[17:15] <AlbertA> attente: not quite just got back from vacation
[17:16] <attente> AlbertA: oh, sorry. welcome back!
[18:05] <dandrader> is mir-platform-graphics-mesa-x4 meant for use in xmir? or is it something else?
[18:14] <kgunn> dandrader: that might be mir on x
[18:14] <kgunn> camako: ^
[18:18] <dandrader> my test laptop (vivid+overlay) is strange after I dist-upgraded and thus got mir 0.15. Some things are not working anymore. Not sure what I messed up. I tried to clean up all traces of mir 0.14 pakages. now at least I can get "sudo mir_proving_server" working
[18:19] <dandrader> but when I try to run a client, it fails to connect. eg running mir_demo_client_egltriangle  gives a "Can't get connection" failure
[18:19] <dandrader> I made sure I had MIR_SOCKET=/tmp/mir_socket set
[18:19] <anpok> dandrader: thats for running mir within x
[18:19] <dandrader> so, how do I start debugging that?
[18:19] <dandrader> anpok, ok, so I can safely ignore this
[18:21] <anpok> hm that should be MIR_CLIENT_SOCKET=
[18:21] <dandrader> so my mir_demo_client_egltriangle is giving a "Can't get connection" error message when I try to run it in my mir_proving_server. how do I start debugging this?
[18:21] <anpok> and --arw-file to ensure that the permission .
[18:22] <anpok> is open enough for other users
[18:22] <dandrader> anpok, yeah, did "sudo chmod a+rw /tmp/mir_socket" as well
[18:22] <dandrader> anpok, what client-side env vars should I set to get some logging explaining what's going on?
[18:23] <dandrader> anpok, or is it really a very basic error where logging wouldn't help anyway...
[18:55] <anpok> hmm dandrader, tried to reproduce but I my vivid vm now has problems with egl..
[18:55] <anpok> dandrader: MIR_SERVER_SESSION_MEDIATOR_REPORT and _CONNETION_REPORT = log are the most basic logs for server interactions
[18:56] <anpok> sorry CONNECTOR_REPORT
[18:59] <dandrader> anpok, but that's on the server side. any env var I could set on the client side?
[19:02] <anpok> there is MIR_CLIENT_RPC_REPORT..
[19:02] <anpok> but not sure what do read out of it
[19:02] <dandrader> the issue seems to be on the client side. like it's not really finding the socket file. so I would like to know what exactly is the filename + path it's trying to use
[19:02] <anpok> strace hmm
[19:11] <dandrader> anpok, thanks for the strace tip. good one
[19:12] <dandrader> anpok, so the problem seem indeed server side: http://paste.ubuntu.com/12330409/
[19:12] <dandrader> anpok, what do you make of this exception?
[19:13] <anpok> hm try fingerpaint?
[19:13] <dandrader> it's like client process ended suddenly or something
[19:13]  * dandrader tries
[19:14] <dandrader> anpok, ah, interesting. it gives more output
[19:15] <dandrader> anpok,  http://paste.ubuntu.com/12330431/
[19:15] <dandrader> anpok, seems I'm missing some package :)
[19:16] <dandrader> I do have  a /usr/lib/x86_64-linux-gnu/mir/client-platform/mesa.so.2
[19:17] <dandrader> which seems to come from a local build of mir 0.14...
[19:17]  * dandrader installs mir-client-platform-mesa3
[19:19] <dandrader> great! now it finally works!
[19:19] <dandrader> anpok, thanks for the help!
[23:04] <RAOF> tedg: Right. The bits that are needed are kms (modesetting), EGL-on-KMS (Mir rendering), and EGL hooks (client rendering).