Glamor, X11's OpenGL-Based 2D Acceleration Driver, Is Becoming Useful
The Glamor driver for X11 has sought for years to replace all of the GPU-specific 2D rendering acceleration code in X.org with portable, high performance OpenGL. Unfortunately, that goal was hampered by the project starting in the awkward time when folks thought fixed-function hardware was still worth supporting. But, according to Keith Packard, the last few months have seen the code modernized and finally maturing as a credible replacement for many of the hardware-specific 2D acceleration backends. From his weblog: "Fast forward to the last six months. Eric has spent a bunch of time cleaning up Glamor internals, and in fact he’s had it merged into the core X server for version 1.16 which will be coming up this July. Within the Glamor code base, he's been cleaning some internal structures up and making life more tolerable for Glamor developers. ... A big part of the cleanup was a transition all of the extension function calls to use his other new project, libepoxy, which provides a sane, consistent and performant API to OpenGL extensions for Linux, Mac OS and Windows."
Keith Packard dove in and replaced the Glamor acceleration for core text and points (points in X11 are particularly difficult to accelerate quickly) in just a few days. Text performance is now significantly faster than the software version (not that anyone is using core text any more, but "they’re often one of the hardest things to do efficiently with a heavy weight GPU interface, and OpenGL can be amazingly heavy weight if you let it."). For points, he moved vertex transformation to the GPU getting it up to the same speed as the software implementation. Looking forward, he wrote "Having managed to accelerate 17 of the 392 operations in x11perf, it’s pretty clear that I could spend a bunch of time just stepping through each of the remaining ones and working on them. Before doing that, we want to try and work out some general principles about how to handle core X fill styles. Moving all of the stipple and tile computation to the GPU will help reduce the amount of code necessary to fill rectangles and spans, along with improving performance, assuming the above exercise generalizes to other primitives."
Code is available in anholt's and keithp's xserver branches.
X11 is the Iran-Contra of graphical user interfaces.
"Before doing that, we want to try and work out some general principles about how to handle core X fill styles."
Use textures! And stencil bitplanes!
No sig today...
I wonder, how does it relate to compositing engine? Ain't surfaces already drawn using GPU accelerated function when using GL-based compositing ?
Cheers to the heros working on improving X. It's probably the most important piece of software on GNU/Linux. Real hackers working there on the most complex issues.
NB: The message above might reflect my opinion right now, but not necessarily tomorrow or next year.
Actually, it was officially "Mac OS X Snow Leopard" until 2011, when it was renamed "OS X Lion."
Considering the user share of 10.6 and the amount of time it was Mac OS (X) before then, I think it's fair to forgive the misnomer.
Can't edit because anon.
It was actually OS X Mountain Lion which prompted the change from Mac OS X to OS X, which was released in 2012.
It was referred as "Mac OS" in the pre-OS X days.
"Mac OS" is from the Windows 95/98/XP era.
Get free satoshi (Bitcoin) and Dogecoins
I need to specify "Mac OS != Mac OS X" because some mods hate Apple so much that they can't even be bothered to learn anything about it.
Calling OS X "Mac OS" (instead of at least "Mac OS X") is like calling the latest Windows version "MS-DOS 2014".
Get free satoshi (Bitcoin) and Dogecoins
From reading the blog site, it appears that there is some benefit to creating a 2D acceration wrapper around OpenGL? It's obvious, I'm not getting it.
Why add a layer of complexity to OpenGL? Why not just explain OpenGL for 2D operations more clearly?
The cairo-ickle blog has maintained very interesting benchmarks of the different cairo rendering backends. The short story is that every hardware accelered backend except for sandybridge SNA has performed worse than the software implementation. And in some cases the hardware acceleration is significantly less stable. I'm curious to see if this finally pushes Glamor over the hump and makes it faster than the software path.
Microsoft is going back to their roots of flat filesystems, cumbersome interface, and limited multitasking. This whole push to Metro finally makes sense!
Accleration
Could have been prevented...
The X just represents the major version number. So it's actually more like calling "Windows 8", "Windows".
> It hasn't been called "Mac OS" for about a decade now. It's OS X.
So fucking what? I'm not participating in Apple's asshattery here. They can fool an idiot like you into helping to hijack other people's trademarks but I'm not participating.
A Pirate and a Puritan look the same on a balance sheet.
I'll use X until it is pried from my cold dead hands. Or until Wayland has network transparency at least on par with X. Whichever happens first.
Recently I was re-installing my desktop (Gentoo) from scratch and decided to have a go at not installing any big heavy desktop environment. I already used Ratpoison when I am connected over VNC and have memorized most of the key combos so I thought I would try Ratpoison on the local desktop. Completely banishing KDE I switched from KDM to XDM.
I still have a stock XDM config. I think it's hilarious seing that 80s vintage login on an almost modern machine and having it lead to perfectly up to date applications. Maybe some day I will take the time to pretty it up. I have seen screen shots that show XDM can be made to look nice. But... it's only there until I log in. Why bother?
Actually there are times I want full multitasking on my Android phone. I didn't know it was an option to run regular Windows apps on it. Thanks for enlightening me! Now please, teach me how!
What you really need to believe is that GPUs with decent X support are becoming ubiquitious. Devices where the GPU becomes a paper weight the moment you try to run X because the maker doesn't want to supply any info might as well not have GPUs.
Wasn't X11 supposed to be completely replaced by Wayland everyone until latest end of 2015?
Yeah, OS-X is not the same OS as everything from System 6 to System 9. That was a homegrown cooperative multitasking system, that had no UNIX in it. Whereas OS-X is a NEXTSTEP derived OS which in its current form derives a lot from the FreeBSD project and others.
And going from "Xbox 360" to "Xbox One" is not asshattery? At least "X" is further along the ASCII table than "9".
Get free satoshi (Bitcoin) and Dogecoins
For everyone that disparages Wayland without really understanding anything about Wayland, which seems to be most everyone, I highly recommend listening to this talk by a core X.org developer:
http://www.youtube.com/watch?v... [youtube.com]
TL;DR points:
- X11 is no longer "network transparent" and hasn't been so in a long time, due to reliance on DRI, Xrender, Xvideo, etc.
- X11 is already used in a manner that is similar to Wayland but with a very poor inter-process communication layer and synchronization issues, with most of X11's core bypassed (server-side fonts, drawing APIs, etc).
- X11 when used remotely is already like VNC, but very poor at it. Lots of round-trips, etc, all to show bitmaps.
In the end, there are a few things I need from Wayland, and I think they will be there in the end:
- app-based network transparency, not just remote desktop
- middle click paste. Maybe done with a virtual frame buffer and rdp to ship the final rendering across the wire.
- customizable focus policy (focus follows mouse, click to raise)
- user replaceable window/composite managers
then there's no copying back and forth
are talking about.
I just started up a pidgin instance from Server A to Desktop B and it runs plenty smooth over a lan. Far smoother in face than an equivalent VNC session.
Now mind you I agree that OpenGL, XVideo scalng, etc don't currently offer the same level of network transparency, but that is in large part due to those same schmucks that are producing glamor and wayland, not taking the time to architect protocol extensions that are transmissable over the network. Not in fact any inherent shortcoming of either X's protocol or architecture, but rather simply lazy SOBs taking a half assed approach to development.
Sure it sped up GL support back in the Utah GLX/DRI1 days, but a side effect of it was destroying the utility of X as a network transparent system. A similiar thing happened with OSS versus ALSA, and NAS versus ESD then Pulseaudio.
While OSS had legacy limitations to be overcome, as did NAS (which doesn't work with alsa OSS emulation anymore, although it once did!), both were far more flexible in regards to their intended uses than their replacements, both of which were decidedly desktop oriented and often have issues in the 'professional audio' or 'network transparency' realms, respectively.
While it's unlikely either alternative would get the development time to bring them up to par with the new incumbents, it is perhaps time for a serious and thoughtful look at the shortcomings of both the old and new systems and perhaps find a way to reimplement them now that the hardware has matured and 20/20 hindsight is available for how the drivers/software could best be architected. Then if any future tech has a dramatic shift away from it, provide a new and seperate solution to handle the changes made since, without simply tacking half assed attempts at features onto something that otherwise could be considered mature, stable, and well engineered.