Preferences

wkat4242 parent
I was surprised how a room of top notch 1280x1024 terminals was able to function so well on a shared 10mbps with pretty bad collision detection to boot. X apps of the day were super optimised for local drawing. Even games were super smooth. Toolkits like Motif were all draw calls. By the way back then we thought Motif was bloated lol :)

And then... Came the internet. People suddenly started running NCSA Mosaic in droves that bogged down the single core server. And those browsers started to push lots of bitmap stuff through the pipe to the terminals. Now that was bad, yes. When Netscape came with its image backgrounds and even heavier process people started moving away to the PC rooms :( Because all scroll content needed to be bitstreamed then.

Ps video content at that time wasn't even a thing yet. That came a bit later with realvideo first.

But there was a time when X terminals were more than sufficient, probably for a decade or so.


bmacho
> Because all scroll content needed to be bitstreamed then.

Is it better now? Can a browser locally scroll an image, without restreaming it?

londons_explore
A modern browser (ie. chromium) uses the GPU for all drawing.

Here is an awesome (slightly outdated) talk about the architecture: https://groups.google.com/a/chromium.org/g/blink-dev/c/AK_rw...

The basic idea is that HTML content is drawn in transparent 'tiles' which are layered on top of one another. When the user scrolls, the tiles don't need to be redrawn, but instead just re-composited at their new positions. GPU's are super fast at that, and even a 15 year old GPU can easily do this for tens of layers at 60 FPS.

On a linux with a remote X server, I think the tiles would all end up on the X server, with only the pretty small 'draw tile number 22 at this location' going across the network. So the answer to your question is 'yes'.

lxgr
Does all of that (i.e. GPU rasterization and GPU compositing) really work over the network with common browsers?

Based on my limited experience, the performance of running Firefox remotely on a local X11 server was very poor, and I assumed that the absence of these types of acceleration were to blame.

I could imagine XRender to work, though, which would at least support blitting most of the pixels up/down in case of scrolling, and would only require pushing new ones over the network for any newly exposed areas.

londons_explore
A quick test shows that chromium at least cannot use the GPU with a remote X connection. Loading the google homepage is ~100 megabytes of data across the X connection, and scrolling up and down for a few seconds sends a further 1 gigabyte.

My guess is the lack of shared memory buffers stops the use of opengl, and whilst it's theoretically possible, it is probably unimplemented because nobody does that in 2025.

ianburrell
GLX used to work with remote X, what is called indirect rendering, but it sounds like it stopped working recently. Maybe doesn't support recent OpenGL, or nobody uses it so nobody maintains it.
kmeisthax (dead)
ianburrell
I think the XRender extension allows scrolling images. XRender allows quick recompositing of text and images.

But this requires the browser have a special path for remote X and not just use the GPU. Or even just a path for X that lets the X Server do the rendering.

jandrese
In theory you can send the images over as X backing stores and do just that. But I'm not sure it was implemented that way.

I remember GTK 1 was well optimized for X and you could run GTK applications over slow modem lines quite comfortably. GTK 2 went a different direction entirely and became almost unusable over the Internet. I doubt GTK 3 or 4 are any better now that they're designed for compositors.

aidenn0
It's much worse. Now fonts are rendered in the client then streamed over the network to the server as bitmaps.
ianburrell
XRender extension can load font glyphs into the X server and do the rendering locally. But that requires the browser, the X client, to know about this and not do rendering itself.
kristianp
I remember using xterms to do assignments in modula 2 in about 1993. They were 1 bit screens, I think they were square 1024x1024. Very high resolution for the time.
rbanffy
The NCD-16 had a square 1024x1024 1-bpp screen. I want one so much, but the ones that made it to Ireland and Europe seem to all have been responsibly recycled. :-(
kristianp
Googling the NCD-16 gets me a lengthy review by Tim Bray from 1989. It may have been one of those that I used, the screen and mouse look similar.

https://groups.google.com/g/comp.windows.x/c/yGBvXhuTL0Y

rbanffy
I envy you. I’ve never seen a working one in person.

This item has no comments currently.