[09:29] <duflu> Wow. Easier to launch and debug Unity8 standalone than I expected. Win.
[09:53] <duflu> greyback: Launching unity8 standalone looks different. Missing pulldown, and now inexplicably in tablet mode too. How to I reset it to look like a proper desktop login?
[09:54] <duflu> Also how to dismiss the tutorial? :)
[09:54] <greyback> duflu: "gsettings set com.canonical.Unity8 usage-mode Windowed"
[09:54] <duflu> Cool ta
[09:55] <greyback> strange that changed, I don't see any unity8 changes that would break those things on you
[09:56] <greyback> dismissing tutorial? I think you just gotta be tutored :)
[09:56] <duflu> Even stranger, sometimes the 12x slowdown Unity8 has compared to other servers just goes away
[09:56] <greyback> 12x slower rendering? Input lag?
[09:56] <duflu> greyback: In production U8 is 10ms per frame, but demo servers are 0.8ms. However in debugging sometimes U8 occasionally becomes just as fast
[09:57] <greyback> unity8 is doing a lot more gl calls..
[09:57] <duflu> I know and am trying to debug it. 10ms per frame on a high-end server is a problem..
[09:59] <greyback> please let us know what you learn
[09:59] <greyback> I've not done an optimisation pass of unity8 graphics in a good while now
[10:01] <duflu> greyback: Was only curious because I wanted to do something new to clear my mind of the week. Now looking at SVG profile graphs of Unity8 but not yet understanding...
[10:02] <greyback> duflu: this might help with high-level perspective, if you've not seen it before: http://doc.qt.io/qt-5/qtquick-visualcanvas-scenegraph-renderer.html
[10:03] <duflu> Oh I forgot I need debug syms for this to be readable
[10:04] <duflu> And now it's the weekend
[10:06] <greyback> duflu: have a good one!
[10:09] <duflu> I give up. Bye
[10:14] <anpok> sometimes?
[11:21] <hikiko> hi alan_g
[11:22] <hikiko> question :)
[11:22] <alan_g> hikiko: well, what is the question?
[11:23] <hikiko> where should I start looking to write a client for mir? miral api or mir client api?
[11:25] <hikiko> is miral something like a simplified mir server or a totally different program?
[11:25] <alan_g> hikiko: miral is, in principle, about writing servers.
[11:26] <alan_g> Although, there's some C++ wrappers for the client API in there that we need to split out as they are proving useful.
[11:26] <hikiko> yes, but I guess that if I need to have access to all mir features I need to run the mir server and start using the client API
[11:28] <alan_g> For access to all the mir features you need to run miral-server. Unity8 is getting there (and does it more stylishly).
[11:29] <alan_g> You writing C++ or C for this?
[11:31] <alan_g> hikiko: http://voices.canonical.com/alan.griffiths/2016/11/25/testing-for-mir/ and, if you're writing C++ you may want to use miral's miral/toolkit headers that wrap the Mir client API.
[11:33] <alan_g> We ought to move those headers into a separate package, and probably to Mir.
[11:33] <alan_g> ...one day there will be time!
[11:33] <hikiko> alan_g, does miral wraps every mir client function?
[11:34] <hikiko> wrap*
[11:34] <alan_g> nope, originally only the ones I happened to need. Then dandrader started using them too...
[11:35] <alan_g> But they don't replace, just simplify use and inter-work just fine.
[11:36] <dandrader> like C++ version of  the client API I guess
[11:37] <hikiko> yeah
[11:37] <hikiko> I need to port the ozone platform on mir
[11:37] <hikiko> so I think it's better to use mir directly
[11:37] <hikiko> I might need most of the client functions
[11:38] <alan_g> it's fine to use mir_toolkit directly, but that isn't a reason to avoid miral/toolkit
[11:43] <alan_g> hikiko: see for example, https://github.com/AlanGriffiths/mircade/blob/master/main.cpp#L141 - that calls a mir_toolkit API with a miral/toolkit Surface.
[11:44] <hikiko> so alan_g you suggest that I run miral server
[11:44] <hikiko> and I use miral where I can
[11:44] <hikiko> and mir_toolkit
[11:45] <hikiko> when miral doesn't have a wrapper?
[11:45] <alan_g> hikiko: running miral-server is easy: sudo apt install miral-examples && miral-app
[11:47] <hikiko> and when I need to use a mir_toolkit functionality that isn't wrapped by miral, will I be able to use it with miral-server?
[11:47] <hikiko> or I need mir server for that case?
[11:47] <hikiko> #include <miral/toolkit/surface_spec.h>
[11:47] <hikiko> #include <mir_toolkit/mir_buffer_stream.h>
[11:48] <hikiko> I see here you combine miral and mir_toolkit
[11:48] <hikiko> so I guess that the miral-server can receive mir-server requests
[11:48] <hikiko> is this correct?
[11:48] <alan_g> miral-server is a mir server (and implements the most features)
[11:49] <alan_g> the miral/toolkit headers just make using the client-side mir_toolkit more convenient.
[11:49] <alan_g> They can be used in any mir client.
[11:50] <alan_g> And  work against all mir server
[11:51] <hikiko> so, if I find out that something I need desperately is not in miral-server yet I can just run mir keeping the mira/toolkit headers in my program?
[11:51] <hikiko> I mean
[11:51] <hikiko> the client will still be running on mir without changes?
[11:52] <hikiko> (if that's the case then I go for miral :D) I want to be sure that if I use miral I won't have to switch to mir in the future because something I need from mir isn't there
[11:53] <hikiko> or if I switch, what I've written in miral/toolkit will still be working
[11:53] <hikiko> it seems that miral can do that, correct?
[11:54] <alan_g> miral/toolkit depends only on the mir/toolkit API, it doesn't need a miral server, just any mir server.
[11:55] <hikiko> then that's great :) I'll start with miral-server miral/toolkit and I'll use mir_toolkit when necessary and then we see if I need to swap servers :)
[11:55] <hikiko> thanks alan_g
[11:56] <alan_g> The easiest mir server to test with is miral-shell (used one of the scripts miral-app or miral-desktop). But you should also test with Unity8
[11:57] <alan_g> hikiko: if you find stuff missing from the miral/toolkit wrappers, please MP it for everyone to use.
[12:01]  * alan_g resolves logs bug 1661584
[13:08] <dandrader> alan_g, is thre any difference between mir_create_input_method_window_spec() and mir_create_window_spec()+mir_window_spec_set_type()+mir_window_spec_set_width()+mir_window_spec_set_height() ?
[13:37] <alan_g> dandrader|afk: yes, it defaults buffer usage and pixel format
[14:00] <alan_g> dandrader: in case you've not found it yet: https://bazaar.launchpad.net/~mir-team/miral/trunk/view/head:/include/miral/toolkit/window_spec.h#L124
[14:01] <dandrader> alan_g, did you just push this?
[14:02] <alan_g> A few hours ago - after the MP got approved
[14:03] <dandrader> alan_g, I had to stop using miral::WindowSpec as it has no equivalent to mir_create_window_spec()
[14:04] <dandrader> alan_g, besides some other methods
[14:04] <alan_g> miral::WindowSpec spec{mir_create_window_spec(...)}
[14:04] <dandrader> alan_g, and going back and forth between miral::WindowSpec and MirWindowSpec makes the code confusing
[14:04]  * dandrader looks
[14:05] <alan_g> You can use miral::WindowSpec anywhere you use MirWindowSpec*
[14:06] <dandrader> alan_g, ah, you call mir_create_window_spec() WindowSpec::for_changes in miral. a bit confusing
[14:08] <alan_g> Well, that is the original intent. It is a PITA to use it to create things as it doesn't init various default values