0:00:10because you i think everything that talking on the
0:00:14so question you know
0:00:16i can join us like product this year
0:00:20i so you know nice easy question this talk with what's your sixty second package
0:00:25for while and
0:00:32better that's a so that that's common question in this one that that's always hard
0:00:37times of but i think the key idea is that if you look at the
0:00:42way most modern uses a mix use X today isn't that they've don't actually use
0:00:48X we have a composite or that that's responsible for presenting everything on screen
0:00:53and
0:00:54we have clients that really just wanna put push your content to the composite are
0:00:58and it find we have input going into the X to which we don't know
0:01:02with window we should be going to and
0:01:06in the middle there's the X i was sitting there trying to talk clients and
0:01:10talk to composite or with an external process but what we were you want to
0:01:13build today second possible the talks directly to the kinds not had any middle name
0:01:18that sits there and doesn't do anything so it it's
0:01:21a big part of the idea is to just cut out there's this big old
0:01:25me demanding and get a straight path five to composite are and we got a
0:01:29lot of in small benefit from this and big benefits in the in the process
0:01:34you know
0:01:37what the basic idea is that if we look at the system we have today
0:01:40and if we were to design a graphics that tools to support that user experience
0:01:44there's just no way you wind up inexorably to
0:01:48okay thank you know the more than six seconds by get like
0:01:53so you know what way to form of this one side a few questions prepared
0:01:57but anytime i wanted to get some questions to think that or question myself of
0:02:04an owl and
0:02:07so if you do any questions please makes visible we when we have a question
0:02:11again
0:02:12so
0:02:14first question gets is michael sorted you can think about a nice mission which is
0:02:18you know
0:02:20and who
0:02:21there might be the i so do you said you see when in the dark
0:02:24as it the X eleven
0:02:27you know what you she's it key advantages
0:02:32well i think it is a competitive to X in many use cases but and
0:02:37you can you can state it like that you can say is wailing competing with
0:02:40X because there is there are two different especially
0:02:43but if you look at it in this case like don't shell and yes we
0:02:47could definitely use X M use brain and if there's a comparison we can make
0:02:51their
0:02:52if you're using thilo be among it has to be happy with you do timit
0:02:56exterm there's no reason you should switch to wait and we can improve that situation
0:03:00for that use
0:03:01if you're building a new system for automotive
0:03:05in entertainment in your car then if you're building a clean slate system there you
0:03:10can also use weight and we can make the same comparison they're not does this
0:03:13way to get other
0:03:15and
0:03:17so would you say is the way to direct compared to tell you it in
0:03:20some sense
0:03:22that that's nothing in there that that's try to them at the school where you
0:03:26can use weighted it's not time for just a bone formal but only but at
0:03:30the same time is a different system and you can
0:03:33you can make the comparison for a given
0:03:38you know open when we point of the spectrogram you see the model come amount
0:03:41in terms of these of underlying stack them used on that and building on exactly
0:03:47the same underlying technologies the more taxes bill on
0:03:52data sharing resources and very bugs yep so that was a lot of what and
0:03:57one of the really it is a brilliant is that we have a in for
0:04:01infrastructure now that's great of into modular components all the hard stuff about painting input
0:04:06viruses don't you get
0:04:08three drivers so independent a big star can be used and came yes
0:04:12"'kay" misses most addicts bit of the X to is that we can use it
0:04:15without having to bring up a next over of course on the clients that we
0:04:19for a long time moving we things out of exhibiting two times
0:04:24font rendering
0:04:27hydro is it'll as a five hundred are now
0:04:31so all the all this complexity has moved out of clients or how to fix
0:04:36the rain to as well eight zero in two times in the online stack we
0:04:41can we can now scale that bring of a different place
0:04:44so it's a this is wise feasible that old we talk different space to because
0:04:48all the hard not think it's now market right
0:04:53everybody libraries a private so
0:04:55we can see are the
0:04:57the driver running
0:04:59driver rider really for we can see are the libraries
0:05:04retyping our way
0:05:06one go all the stuff this year we will have a lot of the same
0:05:10basic we just have
0:05:13and what lot of active
0:05:15of mixes what we from
0:05:20but i mean you don't think
0:05:22some events you don't know what recently on that trying to avoid some of the
0:05:25some of the problem we have an X M S between the compose the you
0:05:28know a extensions to a for you know in hot rendering and shoulder we kind
0:05:34of get tools manage the weighted manager of every frame is perfect and X
0:05:38do you know that do you think that
0:05:41there is just immiscibility need all waited given the improvements you be making to the
0:05:47composite and that there is no individual problem you can't solve the next are like
0:05:53a little bit better with the break ticket working for three eight when a rabbit
0:05:58it done well the resizing in that
0:06:01you're taking away the who is not a probably what said okay i have we
0:06:05don't create my window resize like that too but i mean the thing is
0:06:10you know it's not every problem individually eventually the number of messages in a context
0:06:15which is and just draw to have so you doing in there really becomes unattainable
0:06:21and you know some things are really easy to do with max and some things
0:06:25are really hard i mean there are things where they get with waylon that would
0:06:29require whole new X extensions and of just the all you know i'm really looking
0:06:34for that year we don't sell say i no longer have to talk the X
0:06:38server whenever i want to do something to display hardware i connected this access to
0:06:42display hardware instead of like sending everything process X interface it's not that we can
0:06:48devise solutions there and i think the other case where want to devise solutions short
0:06:52term to get people improve performance before we consider every do real and but
0:06:58you know the more given doing that the more pay more suffering from so i
0:07:02think it's a great opportunity to clean about pain and make so the new things
0:07:06why do instead of being really hard the this recording easy
0:07:11it to give an example of one of those features is it there
0:07:15how coffee to go feel where we had we had it it's extensions to come
0:07:20find me it the on the motion to that corner when you when you for
0:07:23the corner of the over that contraband of the old you then we had to
0:07:27and extension to can find the cursor into that corner and we have to make
0:07:31known to use it we with the weight and based don't feel you position the
0:07:36cursor inside don't feel we waited work on the screen you want you can find
0:07:40the motion however you want so in you know what is don't feel finally because
0:07:45it's just a matter of adding that were to occur some okay so i don't
0:07:49feel you have to go by export called X extensions for that
0:07:56because on any questions nutrients
0:08:02rich can so you could
0:08:06but just to add want one that and then to follow elevator pitch question this
0:08:12is why it's hard to make a elevator pitch will it because there is it
0:08:15is one of those days where we have a thousand apricots and if i have
0:08:18to listen thousand caught in an elevator pitch it's gonna be model sixty seconds but
0:08:23that is that is the problem is that we can always fix something in X
0:08:27what it takes a lot if we're in and
0:08:29it takes a lot of all of topics and
0:08:33it is just something that
0:08:35there's too much work involved
0:08:38it
0:08:41okay some question that you don't want sorority but we'll suspend just with system composites
0:08:45a and
0:08:46G and or what's done
0:08:49i will be you we using G i don't shout was the system and section
0:08:54of the whole one
0:08:59well
0:09:00things like whether or not we're using a range create any composer is the system
0:09:05composed rapping that idea of a system post a piece aces
0:09:11coolness a bit by the wayside to what's the name
0:09:18david letterman david have
0:09:22you so is the recent progress explaining
0:09:27this
0:09:28thinking at the moment is more like having
0:09:33halvings assistant be basically deal with a lot of challenges or moving in a
0:09:41us
0:09:42privileges between can post as a spy
0:09:46the different sessions if you had different user sessions you're switching between
0:09:50might have
0:09:51composes the need to where you need to repair privileges of the you could have
0:09:57devices and the
0:09:58the around device we to switch between mouse to
0:10:02my and
0:10:03that's yes it in
0:10:10that that's what i tried but you can do it it's possible you have a
0:10:16policy expertise that in one you between these different
0:10:20session composed this you have a i'm starting might have to switch from one section
0:10:25to another but the problem is if you go for the session can post a
0:10:29model now your inputs being rudy
0:10:33another part
0:10:34and so we don't really want that actually like see we are and
0:10:40so
0:10:41the king or it's very hard we you don't you don't need it us to
0:10:46do with the new frame to the
0:10:49just a very possible so that basically so i think the like there is to
0:10:52instead of five to put W process in between the composer and hardware the ideas
0:10:57to maybe add a few but i hope tools to be that's that we can
0:11:01be devices
0:11:02and we already had defeated okay so we take away came it's nothing from india
0:11:06five
0:11:07so that is to just put the arbitration into a small process so that we
0:11:12don't have a process in the hot that between input and make living and so
0:11:16on what a process that you know
0:11:20disables
0:11:21and as well as the sexy part and there's a few things we can do
0:11:24the that and
0:11:27one thing is that when you be to switch the way if we if we
0:11:29do process sessions which might be to switch you can still get that an estimate
0:11:34on the screen so you can still go to get away on if you
0:11:36or fate something else on top of it but what you what you're missing there
0:11:39is you can have it like any meeting and she's been a waste get caught
0:11:43that snapshot of what was on screen anyway so and we can get that to
0:11:48a thank you did you could be the process it does this so when you
0:11:53switched away from usa i
0:11:58thank you guys that are uncontroversial question coming up so you know why just we
0:12:05don't expect to draw decorations for that we can of themselves well try to in
0:12:11can system user interfaces you know
0:12:15you made that decision
0:12:18well it's a
0:12:20that's a lot
0:12:22it is that that's a lot of
0:12:25reasons and everyone of all the deep technical reasons is that we want to have
0:12:30a line window you want
0:12:33so one text
0:12:34so we don't wanna spit
0:12:36what is like one screen at one unit
0:12:39one atomic going to like different
0:12:42texture so that you have to have decorations
0:12:45so the same from want to extend called the same from another take to because
0:12:48we need to rotate or scale down or otherwise transform your window you end up
0:12:53with there seems that seems but it and eighty S
0:12:57it is between these parts
0:13:00the window but if you if you all same thing from one protected so this
0:13:03is this is really deal
0:13:05details of hardware that we what we could do simple one big text a that
0:13:09you get bilinear filtering on the same can you give nice very nice
0:13:14it is between winners to and from behind the point of you i think it
0:13:18also makes sense to have application percent the higher window it's one unit that's the
0:13:23you and percent it
0:13:25so when we thought what consistency there's like just two dimensions you can see this
0:13:29well one window do we talk about consistency
0:13:32within that window do we want it
0:13:35title bar and the decorations to be consistent with the rest of that we know
0:13:38content what do we want to talk about maybe inconsistent between the contents but be
0:13:43consistent with all the time lost on this
0:13:45and that that's
0:13:46so that's a trade-off there can common as well on the had a
0:13:51cases where it's kind of nice having
0:13:53that's why decorations if you're working with designers
0:13:56sometimes they want to have the model be where you can somebody applications contents will
0:14:03over that's where you might wanna close button for winter objective start when we are
0:14:09working on the case
0:14:10as you go more than this but is we have the browser you are where
0:14:15they wanted to be able huh
0:14:17location bar top browser
0:14:20no need to have
0:14:25i'm sorry
0:14:27to the right and that you are
0:14:30about within sprite
0:14:32class wearing
0:14:41so their case
0:14:43by design choice
0:14:45you want
0:14:47and of course inconsistencies enforce we didn't want to look at because it's not something
0:14:51that an application would do it's a toolkit which are just like boston and the
0:14:55scroll bar to which is so there's just this parliament indicate we know that there
0:14:59is a toolbar that you kate also forty to get see it's gonna look the
0:15:03same
0:15:04and you can and if you were going up and
0:15:09exterm function and an X okay since i will and that guess
0:15:12a decoration from the X window manager
0:15:14and look that different from your rest of the gnome desktop what exterm those different
0:15:20from the rest of
0:15:21so it is probably fair that it gets a different great
0:15:26that the biggest concern i guess is it consisted interaction so you don't have like
0:15:31buttons and different places but the windows you don't have a close button right click
0:15:35windows those point
0:15:37therefore
0:15:39you kate make it
0:15:44so on any other questions millions a gym on
0:15:53there's actually another problem we do we tyneside decorations implement right now is that they
0:15:58include that input our a and it shadows what we what about we don't want
0:16:04to change the channel for example in the other you know that none shall we
0:16:08have a what around the we know and we don't want that's the into space
0:16:12on the wind attacks
0:16:14so about this is that when you application when this is yellow and borders
0:16:21you have to annotate
0:16:23the card with the composer and you re the one thing about snap you don't
0:16:28wanna step windows will see a stop they need to annotate window thing this
0:16:34thirty two pixels inside of exactly where that we know this starts the when you
0:16:38wanna move away the rights that that's what was
0:16:41so snapping
0:16:45we of against we are still be computed based on that
0:16:49content big input is a different we see this is we will take so that
0:16:55way you don't
0:16:57you can make that market so you can pick up to resize
0:17:03that any if we from their job of that window which is again different of
0:17:12well for
0:17:13over an extent
0:17:16so but then besides basically the actual size of the window which the visible part
0:17:23a great part about part that you don't know which stands outside of this because
0:17:29you have invisible board of writing and then you have the shadows which is it
0:17:33actually tells pointed part and from the composer to you want to do it you
0:17:38was high to control that
0:17:41to treat them separately
0:17:43from time to time
0:17:46yes and it was one of the you didn't mention which i guess was the
0:17:50specific
0:17:53still it's
0:17:55region
0:17:56that's you
0:17:59so if you know if you need to blend certain regions of your window come
0:18:03close to wants to limit how much event spending is kind of expensive especially considering
0:18:09screen a
0:18:12it's just it's
0:18:14right
0:18:16right
0:18:18but your windows do but region are just implementation it does not directly map to
0:18:24the visible are we know because we know might be transporting inside
0:18:31i mean going further we have the possibility that you could enhance the winner particles
0:18:35that say hey you know if well i meant easy cake one and i'm talking
0:18:38to name shall and this is what you should be presenting for the in the
0:18:42energy but then it fullback this heuristic of such as what the dog was the
0:18:47dimensions with the actually in the region and then click on that but hey maybe
0:18:51percent applications at that very small maybe to make a lot of sense at the
0:18:54way that rule not big be drawn back to sell that's a that's a graphical
0:18:58representation pull than inside a that useful so you could actually hand house having a
0:19:05specific vertical a specific lines talk to because
0:19:09right
0:19:11cool
0:19:13well what is question
0:19:20what about network transplants
0:19:27as well and
0:19:30wouldn't be too difficult to implemented in the future
0:19:36which is not
0:19:38transparency what like that that's entirely possible and the think that people focus on where
0:19:49we don't discuss network transparency is whether or not remote rendering it's worthwhile
0:19:54so the what X does is that you have out just industry rendering commands you
0:19:59save rented this gleefully here or there
0:20:03rectangle here what is
0:20:06why are we here and there so you used and the scheme of entering commands
0:20:11and they it's that's a nice concept that every can understand that you've got a
0:20:15big ball for use in the be coming a time to commit to feel that
0:20:19with the break thing that's a very efficient encoding of the result
0:20:24but what we have today is a that all the rendering command that you have
0:20:28to sing to rent any given web page so
0:20:31three D C is that the that the data have to send to render that
0:20:34is also bigger then the final assault
0:20:38so encoding it it's not as simple as
0:20:42as most people think that there's a there's a trade off for some scenes obviously
0:20:46the big rectangle it's not more efficient us and that one minute maid for most
0:20:50break there
0:20:51we're just to use cases it's a
0:20:55it's a especially when you're back compression to be the end result
0:21:00it's not clear that sending the comments is a better choice and then if we
0:21:04accept that is sending them and it makes is not necessarily a win then there's
0:21:08really nothing and weighted that prevents you from the remote rendering you have for every
0:21:12application in the system have between the content
0:21:16and you can you can either take that window content that's in people's pictures across
0:21:21with some kind of encoding or you can you can do would be in C
0:21:24start a remote waiting tightest of after can possibly more windows and some that is
0:21:29and since we know when a kind of it's window we know the damage we
0:21:34know exactly what we all react phantastic position to do right here because we have
0:21:40pixels we have there
0:21:42information about what changed and we just need to call this and cost
0:21:46so
0:21:48that that's the something that that's that can be done and what i think what
0:21:52we can protocol is that it's optimised for
0:21:56if you want to say
0:21:57and in general will be trying to do is when you any meeting something we
0:22:01only one of context with into also the ones and then back into the time
0:22:05once frame so if you wanting six different to say can you have occasionally runs
0:22:09sixty times a second to render that you free so that means that we can
0:22:12just in kind of events back and forth
0:22:15to that frame it's all optimised so that
0:22:18it is started for you receive what eventually composite that you need to render that
0:22:22frame what you're gonna frame you send everything back to impossible that the composer needs
0:22:26to know about that next right
0:22:28and it turns out that optimization is
0:22:31it works real well for network transparency to where we're not becomes way more expensive
0:22:36so if we if we're animating something we are
0:22:41receiving input mentoring in response
0:22:44a over the network then that think mathematician that makes sense in local case for
0:22:48or maybe embedded devices what we have is our that makes a lotta sense in
0:22:53more cases well because we don't have a lot of our kids over the network
0:22:56we have a protocol that is very asynchronous and doesn't have any round trip so
0:23:01i think so they're the protocol itself is
0:23:04it's good promoting the pixel constant something we can send us very silly
0:23:10so there's really nothing in the way of doing remote will and i have a
0:23:13have a prototype that i'm working on a no
0:23:17we have an R P you were that the less you run and wisdom
0:23:21instance and then connected not peak onto that you get you get an are you
0:23:25into your desktop so this is if we're just the top
0:23:28remote
0:23:29display
0:23:30but the only thing that we not gonna do is remote rendering
0:23:34because
0:23:36the way will it works is at all times to whatever entering locally and we
0:23:40just take
0:23:41so but well
0:23:45but in so the short answer is no nothing in the way of remote rendering
0:23:49and we will do eventually one way or another
0:23:55what he will bring we could do we have it
0:23:58a custom extensively and then it's to create able for an instant when it