right me


right i'm alex also and

and i

i am and so we can might recognise this is from glottic two thousand virus

and then in that i know for a long time i initially got there because

i'm right diameters and i ran an sauce

since then i moved on since two thousand one word for red hat just a


you mean random stuff all over the place

recently i've been working on the overall high dpi stuff for

i know desktop and the linux desktop in general

i want to start with a

very specific

problem definition this is a from book pixel

typically runs from list but it's very easy to kind of easy to install any

linux operating system on it and this is

muscles and or nineteen which is

it supported every kind of harvard ask a sickly


why when you read it looks like this

i don't it doesn't actually look like this it's much high resolution but

scaled down to fit on the display

right so

it's not really useful even though it's taking we will support it

is completely useless

because you can even in stuff

normal it's so you know about the do you stuff

and you can use that operate in sure

for wanna taurus generally how many pixels per

in some you wanna start


historically all like

normal monitors i mean be a projected doesn't have it but any random normal wanna

so we have around hundred

nineteen eighty or a hundred twenty or something but not

but the pixel two hundred thirty nine

right so

doesn't really work

so we had a setting in X next we actually

which for on various reasons is always set to ninety six by know

but there is a there's a property

take scale factor i think is that so this had to we get that

and it's now

juice able and some so you can actually read stuff


it really only change the text side

or someone's mother is just to so

one is that why did like scale and it right

it turns out that

during that we went traditional density monitors would be a bad thing

and this monitors be maybe not a pixel but on the other ones

a pixel is like invisible thing

you better not enjoying one point five pixels because that looks fancy we're

and so everything you mentor has actually matched the target

pixel great you even if you're sources an S P G or whatever invented wrong

one point zero pixels or things will

really bad

also lot of content that you see in a typical you why

you have the i can't swich are changing use or can choose a bunch a

pen about our pictures whatever

cursors are also pixels

and scaling those for just doesn't look very well

there's an example of this is

i mean this is a scale version and then all those

and put it down on which is scale so they can see all the pixels

and if you were to render this is a hundred twenty percent

say to compensate for your like to guys change you get like

kind of hard to see that

some of the lines would get in the middle of some pixels evening been fuzzy

summer sharper and the probably once or less

re to get this

and the pixels are scale on they only i can so


those are ceases images and there's the ganges at the core so their scale


turns out that it's not really a problem right

for instance this

thank but i have

are you still a twenty three inch monitor at work

and i'm not sure a button on it

and it's like six millimetres on the laptop in eight on the

so this way and it's not really a problem

and i could

happy to the size and everything to match the deep i spent will be stupid

because you wouldn't be anything but you get all this bad looking stuff


we were getting it from the time they were solution the pixel have not care

the routine and just lay stuff and something it doesn't work

so we had to do something


it's not looking at some of the things that wrong

i don't obviously a pixel they so they're not scale and also the way too

small can see you know they look kind of weird if you look at the

i can there next to the text

much more than the textbooks

out of sync

something on the will gents are

specified in terms and

and you know they're fixed pixel so there will be hard to pay

trying to

had a scrollbar for instance is really hard

and i don't know it's okay here but if you know how they won't talk

as opposed to look supposed to have a really large image background with the tech

sensors on it and it just doesn't care


the full window sizes a

i mean some of this so the windows look okay is there are fully specified

by the size of all we distant anything that has anything that scrolls

but you have it or not less

we don't really know the default size to

the waste typical we fixed a biased having to order of the at specify random

the full

size in pixels

typically a not a problem but and get everything wrong for

the pixel

also some of the intro widgets are specified in pixels

okay with of the sidebars

the weight of the columns are notes

so small that

doesn't say it's a common labels adjust not doesn't make sense

and all on around of you can see it in minutes

really tiny

and also go slowly because it's expiration and everything is based on the typical size

is that

excellent have a little monitors

resizing windows really hard

all the padding is really thin so it's

doesn't look right

and basically

pixels or absolute pixels what is everywhere

either directly or indirectly via pixel based icons and it is

and also there's some points of code all the place that uses this

but we don't wanna have everyone change older cut

additionally if you

and we use multiple monitors things that you know more complicated


i don't think there's any how you've got external monitors


what negatives something super expensive want been generally if you plug in

extra montana and pixel you get a little you can i and how do you

have monitored same time

and windows the rolling back from whence going to the other

well i would become hero which or tiny depending on

what we invite them and if you have a minimum both look really weird


so the solution i came up and then it's not really

original in the sense that number didn't before it's pretty much one that covers dustin

i'm not exactly sure what

they do and when there's a has something kind of similar

but basically define redefine one pixels me on an old one utterance pixels new money

used to do but on kind of i mean something else

that at you one pixel napster multiple

device pixels

and then

and the scaling factor that would make it an integer to vital the

green alignment issues and also for technical reasons

lot of stuff like X windows

but when the are digit widgets can't add

don't a list of sizes and clipping goes to hell if you have


a box of that's it

and all the scaling is done automatically so the that absolutely know about it

thank you render high resolution or if you draw

but not based in just to get scale automatically


and then and change you actually have some

X a laid out like icons or ceases images for backgrounds and borders or even

like about source or external images

we had a new A P I S or ways to let you specify multiple

sources and then just so that you can pick the right one depending on the

on the on the window


so when that and it looks like this

i mean obviously at this is like

i mean obviously it just looks like any other know but if you actually lot

of pixel and the to be high resolution icons and

all the things where the right sizes and everything i mean

it's still a tiny per se so there's some stuff like to fix but most

of it works


i guess there's a lot of all percent sorry we go over all you have

to change your apps mostly they shouldn't have to change that

only see the ice change a bit

we stopped i roll

generally hire a support scaling and you can just set scale

and we can just set the scale


i have

and it something on the my scale like this at the surface

so that any higher context you create on that so we will automatically always get

initialised diskette

you cannot get rid of the scale accident by like resetting that matrix and whatever

and additionally and maybe even more important if you if you draw the surface of

the something else

scaling is also applied

so you have and

i can as

target of forty eight by forty eight abstract pick something that you have ninety six

by nine six

image then you set unless got that you will enjoy a non scale thing it

will automatically scale down

although generally all this you know don't have to care that a does that for


you can however that with changes

straight window abstraction for forty K so it has all the window screen monitor need

to targets

those not always almost report cites in this abstract pixel space so

when you thing is they were G D K window might not match the size

of the corresponding X one now

so the expand maybe turin pixels and detailed reports

three hundred pixels

and it so to compensate if you really need to do something a little you

have to get scale factor for the when the

or not or if you're doing something


and also the multiple sessions

or like and then it

reported in the abstract texas based that

since time immemorial we use floats for the event so

still have superstition

just in a different for

i had to add a couple of at articles to

get the current

cursor positioning floats of stuff but generally

it always been using floats for women's

did you integrate similar services is what you use when you create all screen images

in U K three

it's always been there is change now so that automatically creates a scale surface if

you if you are targeting scale window

you should always use this role directory in your in services because

if you create a little for solution low scale double buffer for a high scale

when though you get excellent results

and you have to be careful that the scale when that for instance widget whatever

you're working on can change over time so

make sure old problem of course or

we created when you

in the scale changes

and you have this is they wanted to decide

or something about it but

off you don't have to do you

you just

look at the scale it or something

and it is different from what have you rendered it is invalidate

next or

but there is a thing

there there's some you think very similar to prince in the surface but it creates

and just

in the surface which is

it's a long time or service but it's you can access the pixels

market expert

the advantage here is that you can now specify the scale of it

and then

and it also lets you specify window for the target so

if you're creating an

in the service that you eventually will draw a next one now we can handle

time okay and i'm really generally space

so you always get the extra


also there's this

have a circus create for exposed help or which is really

simple wrapper of quite similar in the surface that just converts

from picks before that too

performance which incidentally are not exactly the same so right now

we are actually allocating a new surface and converting from the

to promote apply and also mode

every time you draw textbook so you should use sort of this

i don't know

okay this is what most people actually see it technicians


the size allocation everything that related size

or and this

abstract well that's the pixels

and weighted has a scale proper day you get the scale what you can get


but there's also it's also proper basic and get notified on it if you need


and i wanted to catch whatever


for the reasons

and this about the for hire circles that it is then you prefer way too

i in that state as

don't wanna use X path

i mean you can just pick spot in your internal stuff attendance

supposed to be drawn the screen you probably use our services that

because they can have scale

so when you don't and you will automatically upscale dollars gonna whatever and you can

pre target and to the right

type of window any and they're already in the right kind of formants something more

efficient around

so these are new things you should use

okay and manage and just get some hundred fixed well

i mean that identical except the you say from X possibly on the explode okay

so well still work but you should prefer our services

i can things extend as so that

if you asked for a fully pixel icon and then we did a scale to

we will actually ask for ninety six pixel one use that and furthermore there's also

extension to the actual i can be respectable well i can be in itself to

define hire is versions of

a likens because in it's not always the case and it's a good idea to

use to ninety six point nine six i can

for the forty eight it's a case

because things like that our clients or ten or is more details if there's any

text in it

a and it's gonna be too small if you're better than like this excellent forty

eight size

there's some extensions it in the evening system to like we specify

alternative images

if you use this make sure they have the same

size some scaling factor because layer layout is affected by the size

and we're only going to load the one that

is used

so i don't

something to the current state is layers that was on the stack

i had a bunch of protocol additions for will and landed in one point two

and in one but you only

it's that's out and service we really means monitoring window

that's the we'll in terms

well the positions and sizes are in this abstract pixels

and then the compulsory can shows the actual scale for every monitor

and you can be in it as a property on a little bit but well

the scale is so

if you push a

okay long window on the on a scale to output it will automatically of scale

it all drawing it

but declined can see this and pretty allocate a slice risque to buffer voiced more


so then the compulsory doesn't have to


and it also what's correct handling a mixed mode monitor so one drawing a single

buffer it can upscale online and not scale you know

even scale it difference


it came the backend waylon will automatically take the maximum scale of all the windows

that are cover or all the models are there are covered by the windows so

if you drag your window we automatically get resized where we can you scale which

is one of the reasons you have to take care about a double offers

can change by using that you know in the

implementation size really in simple

waylon and indicate currently is uses inner surfaces

so we used at the device going that and this works and this is

huge and this is what we wanna go it has every support for the parts

a little bit is it does correctly support the next guy wanna for


and the scaling stuff this is really

part of the native system now we can't be on X

a bunch of us don't use expert

so we have sometimes for that you

however we only support a single scale for all

roll the screen actually wanted that you can technically open the books place and different

scales i guess but practise everything's gonna be the same scale

works fine for laptop maybe not if you have lots great thing

indicate like fakes all the states i systems of

so it scale is enable little i think the size of the windows and wanna

sorenson screens one not the coordinates of the excellence are divided by the scale we

were contradictory events

there is this environment variable unique a scale you can set

so really

very useful for the pointing if you're actually don't have to hide if you know

why she decided and running around and see a and you can see if it


the weights actually meant to work is that we had

to next settings that again the settings tingle

set for the chain will

hopefully eventually i have some really bad patches but

and the one on the tech the actually on the screen and just pick the

right scale

and it telex

or is tell detaining just use

there's also new settings

related to scale with just on scaly got because we still wanna is

this don't wanna step and in you know actually lords to support the school apps

like to take a two or whatever

nobody uses that anymore

and it but

if we set a really high tech you know i

false and the scaling and then digits we have the dark to again did fallen

so we have this new on scale late you guys heading that scale where you


also very simple

implementation we use used normal tire likes stuff that the wide scale

you have to be a bit more careful since the scaling stuff is kind of

done extra lead to X

X itself has no idea of the scaling so if you're mixing X stuff and

it a stuff like

using X video or opengl or something you have to

what correctly get the scale factor a lot why sizes and stuff most of the

time if you create stuff from G ditch a in just consume it and read

back the sizes from X

things should work but

you may need to take care at least

we also have a about sex implementation which is

well this trivial would just uses all the ports

stuff just basically identical to our stuff

we do is read back the scale factor from of X

right now there's some bargain on your over

or create similar those and it's

create a scale it sort of

scale words to mention whatever it's cool so all the ski all the scrolling and

everything that's double buffer

currently look kind of excellent a routine this place

i think said when there's eight has some kind of high depressed or i haven't

really looked at it maybe we should

maybe some want to do that

need course are scaling with you have

we need tiny cursor it's hard to see

and into actually finalised i can make changes

didn't get any comments on it something which is can it

when i need the i versions of something like this may be able maybe is

some of them i haven't extra too much detail we have to look at that

details are shipped a bunch of something like those we want probably want iris versions

of those

and we want full integration of

you know detection of dpi and everything you know

i have some

how to hack patches that


mostly work

and it somewhere

also on the future i might or might not depends on how women go so

how much for content and maybe

when it maybe it's possible to do we want to monitor support ready X

at least you have a compulsive

most or because then

compulsory control which window different event

well the working

no it's worth it depends on a classroom goes away when


and also when we do you shot out to run remember we use randomly turned

up on the list as i have this pixel doesn't wanna so they can do

i did work


thank you

it sounds like i think you said that we win you get to separate circuses

at different scales and drive them independently i get some of these i mean it

that way multimode to works and X and where were somewhere one is completely different

and an X you L okay basically was should service that covers everything and they

stand out different parts of it so it's really hard to do we know in

a different sizes and of model to

doesn't work but in whale and

every output scans from it some buffer and it's up to the composite usual window

in both the buffers but i mean you centre and you scale it how everyone's

that if you're an application

with your own application you get you get just select

the scale of your window

but could you possibly say i want you to scale version and the ones known

that has this discussion about that but it's not have i don't i don't think

it's really important because

first was problematic because things like way out in terms of

text is different it's like independent different sizes

what you to hinting else also for related retina coming and also

windows spanning multiple once or is that a colour to is

didn't wanna have extra complexity of all over the place or something

so i guess you just pick scale

i don't want to actually happen

but on our sex if you if you do it as you plug in something

well gonna next i wanna ask you whether you want the best

what can best on the extra always where looking best only internal and

just fix that

right now i'm always pick

the want to not have to

one of

the want to almost or not but that the when the covers i pick the

wanna have to heights

but it's really a just

attention to detail and indicate can do

it's up to the at we need to select

or maybe we wanna support it just seems dpi that you haven't you is really

fourteen this idea

we have a year


scale ribbon

and that it we in this people would be we have in the future we

will be able you i gonna be

that's also some complexities in terms of the male being different and

and the way like

offscreen just for passion scrolly bottles now almost complexity for me

not very important use case

you can do it

i think i think it i think it's

hard enough that it so


the question

you can sort of come up and play with the actual pixels later but

you do each buildings differently or use like demo

don't know what you were you were doing like a filled earlier it's like i

have a


randomly but

right or something

i think about a batteries explore the

system petition or something so the chrome stuff but that it wouldn't boot so how

to be everything that i do have some it failed

and will later it's


it looks like you know

stuff like you have to be really close up to look at that and we

think about later also

question here and we will the composite or

draw itself and multiple


because applications don't

don't have in the different monitors a resolution if you mean in composite turns that

we having that's right all over the place right i do union X server


but i mean the way works and presses waylon is that

you just give your buffer with that's to

composite or and you playing that this is that scale one

but what about the shell it's what's so we show was the composer

so it's a so if the shell as the way one composite are saying

and some apps

at hands that a

a hundred one hundred buffering plane this is that scale one

and your actual window or your actual models or is it scale to

it's up to the composite or the scale it by two

what and i can come are small monitors can need to do it what i

mean do you why of all of the composite or like them shot of barn

no i know mostly uses it a for stuff so

that's not the rest of what is a lot of a lot was also you

see and it are is do you know it's easy to set scale factor you

and i think is currently down that it shouldn't be that

money always fixing it

and but in and basically it's a lot adding it to somewhere in a matrix

that get and it's not really

and then there are some parts harder maybe like


it is they're sending pixel based in is to have multiple

multiple sources of pixel a

i think for

for the shallow so that i us are either symbolic i have the terrace at


or just a file which are these space really arts scale are still look good

okay so


my question be about the you have a motion


you use you were saying that you do you subpixel

subpixel cool didn't we some hard ways actually a problem because they keep sending

they keep sending events with more new changes like as it subpixel motions and we

end up breaking pretty much the whole stack

well we can we will run into

we already do this

well it everywhere

and he indeed is actually causing problems and on wondering whether that's gonna have problems

okay i'm generally you never gonna hit the scale other than one or two so


i'm gonna have closer

zero point five or one

no way how that was great

that know that those adjudicated motion compression full things well subpixel

i mean it was the right way of floating point because

an is to fix it for waco talents

nineteen ninety seven or whatever so

it's in his work

okay very no thank you

so we're now if you're very high dpi screen

and you start an application a

would you could be

does it start a with its windows


no scaling or want one or

all you need to you know with about a hundred snaps you can see it

it's gonna be a do you mean

if you if you i mean i previously i'm recommended or i am updating an

existing application

what happens by the just good but you'll it's it looked as if you were

on a little bit i screen and everything is as


what you mean need to looks

i mean it no it's actually in terms a holly application server whatever sees everything

but it will be scale by default

i know it's if you if you install zero twenty whatever where this is an

excellent it automatically pick up effect of those are really quite a screen but people

everything will be scaled so it's

approximately this line size that would be a

button and hire or something

right precision i mean you know maybe just works

there's some cases i am where you can write it if you're for instance

full at anyone and you have a bunch of ex boss but for all your

project X a wanna render them

you need to take care

detecting that

is actually more pixels

i mean like spectrum ask about a slight begin so well you know if something

present we need to know if it's down scaling

a large textbook and it

have the but to me to do you have to get this going factor to

know that you need to generate more pixels when you're doing something

like one i'm thinking about him and i have michael some widget problem or run

team actually you know those you don't okay

i mean well we don't know but i would still don't show the wrong pixels

compared the device text



so it's not a problem because that's what it's doing okay so this is around

when you have a problem is gonna scale itself but what about the came victims

custom widget

you mean the canvas the display of the actual image itself

and that's the only place think impair you have to take care about actually having

twice the amount of pixels on each axis then you see as virtual pixel so

i don't know how takes cost and i think from what particle rumours that show

how many pixels a but we but you should be i mean and

if you have to image in one to one

right so like hundred percent than you will actually show a little square per image

pixel maybe because i'm just wondering how like about a picking up pixels like rulers

why be a that's sure that a little numbers permission expand scale my

accordingly your i that's just the front pixels like the virtual pixels you

you use an answering everything else i mean the text we get smaller and to

get a

rendered as a vector graphics anyway so it look at risk

but the ruler chicks they should be just in your normal pizzas like not the

device pixels but you know from pixels

and only if you scale out so you your image source has

the canvas itself has actually more pixels available then you want to display then you

can go hi dpi and actually show more this shall know exist and then normally

but that's the only case i need to adapt to make it look

everything else pictures of the box

even the i consider

i'm really surprised by a minimal or no in terms of you know

and like the it just works for a radio readers


i haven't really tried it on absent you custom lot until an expensive of

partially because most ominous for why just lot are excellent

or not really doing a lot of course open G L anymore

i don't know if i would be other pride but registration or

expand you need to fix

stuff that works but and that it should but thank you just work

and it's really nice to hire

right next everything is

automatically scale

it does what

but does it also thanks

does it get the size of a X I D from X

minutes or more

but it should

as long as it doesn't get the case size and believes that was like you


actually i think

there is one issue and when can doesn't currently okay to

twelve double size double but for so what okay and was asleep kind of excellent


which you can use you pictures and

what do you can ace

which toolkits

well right now it's just

okay two or three two am in three a to your whatever you whatever work

because it

has the full set of for X wondering it guys

we don't wanna be alone

it does right and you doing because although i have that so

don't wanna do that

it's just kind of bad but

just wanted i already

i was wondering how this works with the hinting this car now

exactly the dpi that is gonna be

and working out or is it took to a it the other the other thing

i choose

thinking through a little bit about the clapped aside the ten

which is going to require or

we're gonna need to make sure that ten

when it's going to knows about the scale point to


to do that

i mean really looked at it and i just assume that in the you know


but what if we just trucks care what to do when the technicians when as

you look

but there should be some

it's also the for matrix and everything i just have think more they share

so just kind of words statistically well in and well to it

slightly or my maybe give you a slightly different layout your widget sizes

because maybe a label was have extra later

or whatever and

we're gonna pick a different part

or want your phones where the metrics are slightly differently around and whatever

it's not a problem right now because we only support one

surface before per window so it's always to just one scale

but maybe we wanna okay having some way to

always get the same kind of

well did you think of a turning hitting a really want to go to the

like three or something

then that's right out of high dpi text

and various ways that those that

and what does it

i have not really thought about it

it's something we should maybe look at

maybe hunting doesn't really matter that size

i think actually practise it will be disable mostly

basic of origin of fonts the hands are not

there for that kind of size at least like

what the really details

manual point handing is just not enable and

forty pixel point awesome

so we kind of get away

as possible that we want to have

we used to

declare your fonts metric intense whatever one on widgets

try to make in exactly the same on different scales

you know

and something to work well worth looking into

actually but not did a lot more content for

crow i guess but we can ask


more question

and they brought first ask me excuse you're gonna talk another and a for firefox

actually passed this

kind of hidden but if we make that scale that we all the detect

make that


make that available


very see okay

so the this is layouts use S them pixels per pixel

if you set that to choose that makes basically needs to scale

every pixel by to

if we just get gave the finals all people way to we the current scale

should be simple melodies pick that up

and it more

that's it's extension you have it's not going upstream a like if you propose that

in the stack or anything

not really i mean if you look at how all multiple

that's you know alternative things work on the web right now it's like this horrible

mismatch of

defined everything

there's like and javascript the runs

and rewrites that you're always the one

problems all over the don't felix for images and places them that or do you

know this way

maybe i mean

and it's nice a that

i wanna be a

and indexation this