
Originally Posted by
F i L
Yes I was thinking about that last night actually. If the window decorations require their own buffer (this size of the window-contents + decoration padding) then not only are you wasting time blitting the content texture over, but it also requires more than double the amount of video memory per window. Uncompressed texture memory isn't cheap, so not only does CSD simplify the DS protocol, it also means better speed and less memory consumption.
There IS an alternative though (i think)... when the client requires a Window at say 800x600 the server actually makes a buffer that size plus the size required for decorations, then the client receives and "contents rect" which is an offset region in the surface at the requested size (800x600) the client can draw into. Of course there will probably a whole crop of other problems that come with that, not the least of which would be efficiently synchronizing when/how the client and server draw into the shared buffer.
Another cool thing about CSD is that, in theory, both KDE apps and GTK apps could look as intended regardless of the WM.