[09:29] Wow. Easier to launch and debug Unity8 standalone than I expected. Win. === marcusto_ is now known as marcustomlinson [09:53] 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] Also how to dismiss the tutorial? :) [09:54] duflu: "gsettings set com.canonical.Unity8 usage-mode Windowed" [09:54] Cool ta [09:55] strange that changed, I don't see any unity8 changes that would break those things on you [09:56] dismissing tutorial? I think you just gotta be tutored :) [09:56] Even stranger, sometimes the 12x slowdown Unity8 has compared to other servers just goes away [09:56] 12x slower rendering? Input lag? [09:56] 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] unity8 is doing a lot more gl calls.. [09:57] I know and am trying to debug it. 10ms per frame on a high-end server is a problem.. [09:59] please let us know what you learn [09:59] I've not done an optimisation pass of unity8 graphics in a good while now [10:01] 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] 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] Oh I forgot I need debug syms for this to be readable [10:04] And now it's the weekend [10:06] duflu: have a good one! [10:09] I give up. Bye [10:14] sometimes? === marcusto_ is now known as marcustomlinson [11:21] hi alan_g [11:22] question :) [11:22] hikiko: well, what is the question? [11:23] where should I start looking to write a client for mir? miral api or mir client api? [11:25] is miral something like a simplified mir server or a totally different program? [11:25] hikiko: miral is, in principle, about writing servers. [11:26] 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] 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] For access to all the mir features you need to run miral-server. Unity8 is getting there (and does it more stylishly). [11:29] You writing C++ or C for this? [11:31] 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] We ought to move those headers into a separate package, and probably to Mir. [11:33] ...one day there will be time! [11:33] alan_g, does miral wraps every mir client function? [11:34] wrap* [11:34] nope, originally only the ones I happened to need. Then dandrader started using them too... [11:35] But they don't replace, just simplify use and inter-work just fine. [11:36] like C++ version of the client API I guess [11:37] yeah [11:37] I need to port the ozone platform on mir [11:37] so I think it's better to use mir directly [11:37] I might need most of the client functions [11:38] it's fine to use mir_toolkit directly, but that isn't a reason to avoid miral/toolkit [11:43] 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] so alan_g you suggest that I run miral server [11:44] and I use miral where I can [11:44] and mir_toolkit [11:45] when miral doesn't have a wrapper? [11:45] hikiko: running miral-server is easy: sudo apt install miral-examples && miral-app [11:47] 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] or I need mir server for that case? [11:47] #include [11:47] #include [11:48] I see here you combine miral and mir_toolkit [11:48] so I guess that the miral-server can receive mir-server requests [11:48] is this correct? [11:48] miral-server is a mir server (and implements the most features) [11:49] the miral/toolkit headers just make using the client-side mir_toolkit more convenient. [11:49] They can be used in any mir client. [11:50] And work against all mir server [11:51] 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] I mean [11:51] the client will still be running on mir without changes? [11:52] (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] or if I switch, what I've written in miral/toolkit will still be working [11:53] it seems that miral can do that, correct? [11:54] miral/toolkit depends only on the mir/toolkit API, it doesn't need a miral server, just any mir server. [11:55] 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] thanks alan_g [11:56] 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] 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 [12:01] bug 1661584 in MirAL "split miral/toolkit out of libmiral-dev as it doesn't belong" [Low,Triaged] https://launchpad.net/bugs/1661584 [13:08] 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() ? === dandrader is now known as dandrader|afk [13:37] dandrader|afk: yes, it defaults buffer usage and pixel format === dandrader|afk is now known as dandrader [14:00] 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] alan_g, did you just push this? [14:02] A few hours ago - after the MP got approved [14:03] alan_g, I had to stop using miral::WindowSpec as it has no equivalent to mir_create_window_spec() [14:04] alan_g, besides some other methods [14:04] miral::WindowSpec spec{mir_create_window_spec(...)} [14:04] alan_g, and going back and forth between miral::WindowSpec and MirWindowSpec makes the code confusing [14:04] * dandrader looks [14:05] You can use miral::WindowSpec anywhere you use MirWindowSpec* [14:06] alan_g, ah, you call mir_create_window_spec() WindowSpec::for_changes in miral. a bit confusing [14:08] Well, that is the original intent. It is a PITA to use it to create things as it doesn't init various default values === dandrader is now known as dandrader|afk === dandrader|afk is now known as dandrader === dandrader is now known as dandrader|afk === dandrader|afk is now known as dandrader