duflu | Wow. Easier to launch and debug Unity8 standalone than I expected. Win. | 09:29 |
---|---|---|
=== marcusto_ is now known as marcustomlinson | ||
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:53 |
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:54 |
greyback | strange that changed, I don't see any unity8 changes that would break those things on you | 09:55 |
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:56 |
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:57 |
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 | 09:59 |
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:01 |
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:02 |
duflu | Oh I forgot I need debug syms for this to be readable | 10:03 |
duflu | And now it's the weekend | 10:04 |
greyback | duflu: have a good one! | 10:06 |
duflu | I give up. Bye | 10:09 |
anpok | sometimes? | 10:14 |
=== marcusto_ is now known as marcustomlinson | ||
hikiko | hi alan_g | 11:21 |
hikiko | question :) | 11:22 |
alan_g | hikiko: well, what is the question? | 11:22 |
hikiko | where should I start looking to write a client for mir? miral api or mir client api? | 11:23 |
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:25 |
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:26 |
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:28 |
alan_g | You writing C++ or C for this? | 11:29 |
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:31 |
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:33 |
hikiko | wrap* | 11:34 |
alan_g | nope, originally only the ones I happened to need. Then dandrader started using them too... | 11:34 |
alan_g | But they don't replace, just simplify use and inter-work just fine. | 11:35 |
dandrader | like C++ version of the client API I guess | 11:36 |
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:37 |
alan_g | it's fine to use mir_toolkit directly, but that isn't a reason to avoid miral/toolkit | 11:38 |
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:43 |
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:44 |
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:45 |
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:47 |
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:48 |
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:49 |
alan_g | And work against all mir server | 11:50 |
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:51 |
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:52 |
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:53 |
alan_g | miral/toolkit depends only on the mir/toolkit API, it doesn't need a miral server, just any mir server. | 11:54 |
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:55 |
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:56 |
alan_g | hikiko: if you find stuff missing from the miral/toolkit wrappers, please MP it for everyone to use. | 11:57 |
* alan_g resolves logs bug 1661584 | 12:01 | |
ubot5 | bug 1661584 in MirAL "split miral/toolkit out of libmiral-dev as it doesn't belong" [Low,Triaged] https://launchpad.net/bugs/1661584 | 12:01 |
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:08 |
=== dandrader is now known as dandrader|afk | ||
alan_g | dandrader|afk: yes, it defaults buffer usage and pixel format | 13:37 |
=== dandrader|afk is now known as dandrader | ||
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:00 |
dandrader | alan_g, did you just push this? | 14:01 |
alan_g | A few hours ago - after the MP got approved | 14:02 |
dandrader | alan_g, I had to stop using miral::WindowSpec as it has no equivalent to mir_create_window_spec() | 14:03 |
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:04 | |
alan_g | You can use miral::WindowSpec anywhere you use MirWindowSpec* | 14:05 |
dandrader | alan_g, ah, you call mir_create_window_spec() WindowSpec::for_changes in miral. a bit confusing | 14:06 |
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 | 14:08 |
=== 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 |
Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!