KWin May Drop Support For Catalyst, Vintage GPUs

Martin Gräßlin has written a blog post this afternoon entitled The Costs of Supporting Legacy Hardware. In this blog post Martin talks about the cost of supporting older graphics cards / drivers with the KWin compositing window manager for KDE users. In particular, he shares the troubles he has in supporting the older OpenGL 1.x renderer back-end for KWin. The OpenGL 2.x back-end, which is shared with the OpenGL ES 2.0 support too, is completely different from the old GL1 renderer.
He ends up saying that he may likely drop the OpenGL 1.x renderer from KWin as it's a support burden. A majority of hardware supports OpenGL 2.0+ (basically anything in more than the past half-decade), the GL2 code-paths are superior, and it's really just not worth maintaining the GL1 back-end any longer. Martin also mentions the XRender back-end for Kwin as being a cost with it being considered a "legacy support system" for those without proper OpenGL support.
To sum it up: we have increased complexity, increased maintenance costs and lots of code just for OpenGL 1.x related hardware which we cannot really test. So a rather bad situation. Additionally it is nothing which we can continue to support in the future. Neither Wayland nor Qt 5 will make sense on such hardware (XRender based compositing might still make sense with Qt 5, but as the name says not with Wayland).
Given this the logical step would be to remove the OpenGL 1.x related code completely. This would of course clash with the demand of some user groups thinking we have to run on old legacy hardware. In the case of Intel GPUs it might be in fact true that there is still a larger number of users around – this is of course difficult to judge.
Another real issue for removing is that the proprietary ATI driver (aka Catalyst/fglrx) only provides a decent compositing performance with indirect rendering restricting the available API to OpenGL 1.x. So removing OpenGL 1.x support would mean removing OpenGL compositing support for all fglrx powered systems even if the GPU supports OpenGL 4. But to be honest: given that the radeon driver has no problems with OpenGL 2 on the same hardware, I would not mind removing support for proprietary drivers.
So aside from those running deathly-slow hardware, Catalyst driver users at least temporarily would get shafted by this move. However, this may leave AMD no choice but to improve their GL code-paths that are stressed by KWin. The only other portion of users potentially affected in size would be those with Intel i945-based netbooks, which don't have full GL2 driver support in Mesa. All other worthwhile hardware and drivers out there are capable of handling OpenGL 2.0+ with KWin.
Martin does also mention the possibility of using LLVMpipe with KWin, which is something he is going to explore as a means of software acceleration. LLVMpipe already works quite well with the GNOME Shell, even in virtual machines, thanks to Gallium3D and LLVM. "If I am satisfied with the performance, I will be tempted to remove the OpenGL 1.x based legacy code..."
106 Comments