Question about the future of Xorg
Vladimir Dergachev
volodya at mindspring.com
Fri Jun 13 21:37:59 UTC 2025
On Fri, 13 Jun 2025, Carsten Haitzler wrote:
> On Fri, 13 Jun 2025 11:41:54 -0400 (EDT) Vladimir Dergachev
> <volodya at mindspring.com> said:
>
>>
>> I am using KDE right now, and the kwin compositor has 3 choices for "keep
>> window thumbnails": "Never", "Only for shown windows" and "Always". And,
>> of course, I can switch compositor off with Alt-Shift-F12.
>
> this is in x11?
Yes. Probably old - I am keeping it on Ubuntu 20.04 until the search
results get published, this way I have the same compiler and tools I
started the search with. My other computers use newer software.
>
>> I tried setting "Always" and the system bogs down completely. So I usually
>> have it with "Only for shown windows". Once every few weeks I am doing
>> something particularly demanding of it and I just switch the compositor
>> off.
>
> wth do you run and do to be that bad. i have NEVER seen anything like this...
> not on my laptops with integrated gpu's... not on my desktop with discrete...
This is a Dell, it has an integrated Intel GPU and and NVidia one. I
usually don't use NVidia GPU - too much heat and no visible benefit.
The NVidia chip is Geforce MX 130, 2 GB RAM.
>
> maybe it's a kde problem/thing? like i can have 50+ windows with zero issue.
If you have a fresh reboot it is fine, but if you keep it running for
months it gradually gets slower.
I found that restarting kwin and restarting plasmashell helps, and also
occasionally I kill firefox and restart it. The latter is a nuisance,
because while it does try to restore windows and tabs it does not restore
all of them.
Btw, if you have the same problem there is a setting in about:config
that lets you increase timeout for reaching website. When you restart
firefox and it tries to open 300 windows with 10-15 tabs each, the urls
will timeout too early in default configuration. Change that setting fixes
it (mostly).
> currently have 27 and nothing is bothered at all. admittedly that's windows
> spread across multiple virtual desktops... but i know i do NOT make any effort
> to "undirect" windows to remove buffers for windows on other desktops. i do
> know that they are completely nuked from the compositing scene graph and get no
> render or even context change effort as the scene graph skips them... but the
> buffers exist and use video ram. in today's world that is not that much...
> unless you really e beginning to run very low on video ram or "regular ram" for
> integrated gpu's - i don't see why this matters?
What's your screen resolution? Mine is 3840x2160, so a single full screen
buffer should be 33MB. A few hundred buffers and you would be out of RAM
on discrete GPU (and way earlier on my NVidia chip).
>
> what's your working style? put 50+ windows on a single desktop and "alt+tab"
> between them?
I got 8 virtual screens, and a bunch of windows on each of them. Most are
firefox.
What happens is that I work on something and it usually involves 10-20
windows, but then I have to pause or wait for one reason or another and
I switch to something else.
It is very convenient that I just leave things as they are and then I just
come back and pick up where I left off. Often I minimize the windows
because I only got 8 virtual screens - its a compromise for space in KDE
panel.
Looking at xrestop right now, kwin has 69 pixmaps and uses 2.7GB RAM,
while firefox has 276 pixmaps and only 300MB RAM. There are a bunch of
other windows, mostly konsole. Compositing is on right now. I am pretty
sure firefox has a lot more than 69 windows.
>
> i just opened 30 terminals and maximized them on the same desktop... i can
> alt-tab between them without anything bogging down. i can open a 31st small
> terminal on top of these 30 and drag it about smoothly. my gpu is a 6800xt - so
> a good gpu but from like 5 years ago. it's not some top of the line thing.
Interesting!
>
> all my terminals are the usual solid (not transparent type) so technically a
> good renderer will actually skip and avoid rendering all but the top most
> maximized window... maybe this is kde's problem?
It is an older KDE, my desktop with newer Kubuntu is smoother, but then it
has more memory and newer GPU.
>
> so either your workflow is something i'm not reproducing, you have one hell of
> a potato of a gpu or cpu, or ... this is a kde thing?
>
>> The only thing I lose is the "present windows" effect, but instead I just
>> get a list of window titles which is perfectly fine.
>>
>> So I am hoping other people use Wayland to get things done, and resource
>> requirements are not as dire as you describe - otherwise it would be a
>> complete no-go for me.
>
> they are the same really as a composited x11. no real difference at all.
Naively, if all the windows always have a buffer than 8GB GPU can only
afford 242 4K windows. And you don't get more memory in consumer GPUs
because they will then compete with AI market devices.
I am, of course, hoping that actual Wayland compositors are smarter than
this and dismiss buffers for windows that are not being rendered at the
moment.
>
> they can;'t be implemented as standard separate wayland apps. they have to be
> tightly bound to the compositor. so it's either a compositor feature built-in,
> or some extension/tool/plugin for your compositor... well if you think of a
> tool like a live magnifier around the mouse cursor wherever it goes...
So there has got to be a way to let teleconferencing apps work without
being part of the compositor. Lots of people need to share slides.
>
> if its a 1-off "screenshot then display a copy of it and just scale that up"
> then there are wayland protocols for that - but the idea is that screenshotting
> protocol access will be limited and a compositor may do a very android/ios
> thing of ask you to grant permission first.
I hate the permission stuff on android. The worst is that they've taken to
removing permissions from apps when you don't use them. So you have some
app that you use once a month and then you have to debug why it does not
work. Especially sucks if you need to take a quick snapshot with a thermal
camera or a similar tool.
A lot of it is pointless anyway - the apps that do shady stuff will find a
way anyway, and the users of good apps are just getting annoyed.
> well some like neko etc. -= yes. per compositor. accessibilty features would
> also be "per compositor" and i'd lump xmag in that. teleconferencing (zoom
> etc.) will be as ai described - limited access "screenshot" protocol -
> pipewire offers this. there's another wl protocol based one (imho better/right
> thing to do).
Screenshot is not perfect - you really want a video, so you can play an
animation.
Another useful tool is screen recorder like vokoscreenNG - with it you can
record your talk to be played back later. Again, you want the ability to
record a video of the screen.
>
>> (PS xmag/kmag are really useful if you are looking at 32" 4K monitor via
>> VNC from 15" laptop. All the fonts are tiny)
>
> i know.. tho you should just bump your fonts up .. though wayland can scale
> much better than x could due to being bale to individually scale different
> client windows and they don't need to know (because they don't get absolute
No, no, I was talking about doing VNC to another computer. The fonts are
normal on that computer's monitor, but when I display fullscreen on mine
they are too small for some apps. So you don't want to change fonts on the
remote computer, but you occasionally want to magnify what you see on the
laptop.
>>> doing this in optimal ways. kms abstracts this so it can be done - but
>>> different compositors may do different things.
>>
>> Well, the 2d library does exist and it is called X11. You also have higher
>> level Qt and gtk, and even Tcl/Tk :)
>
> well tbh the 2d rendering in x11 is likely now backing through glamor which
> uses the 3d unit... :) likely... depends. :) but there has been no lower level
> api/abstraction "direct to device" beyond mesa + drm.
I see. Maybe it is not needed, just do it on the CPU. The CPU memory
bandwidth and vector processing are pretty good nowadays, to the point
that you might argue you don't need a GPU for some uses - just maybe CRTC
to talk to the monitor. Or just send it over network.
If you look at latest Xeons and Epycs they have bandwidth that competes
well with consumer GPUs and have TFlops to match. Priced through the roof,
of course.
>
>> Speaking of which, it would be fun to see what happens if one implements
>> compositor with Tcl/Tk. If only I had more spare time..
>
> in theory you could - assuming they had access to all the libraries and
> api's. :)
Right, wrap libwayland with access calls and create something like the
canvas widget that paints directly to hardware.
best
Vladimir Dergachev
>
> --
> ------------- Codito, ergo sum - "I code, therefore I am" --------------
> Carsten Haitzler - raster at rasterman.com
>
More information about the xorg
mailing list