24. September, 2012
After installing a new version of xorg-x11-server, it started crashing every time I started chromium. The effect was consistent: Every time I started the browser, the screen would go black and I’d be back in the login screen.
Looking into /var/log/kdm.log, I saw these lines:
0: /usr/bin/Xorg (xorg_backtrace+0x36) [0x564616]
1: /usr/bin/Xorg (0x400000+0x168349) [0x568349]
2: /lib64/libpthread.so.0 (0x7f1d1618b000+0xf140) [0x7f1d1619a140]Segmentation fault at address (nil)
The reason for the error was that the xorg-x11-server contains the file /usr/lib64/xorg/modules/extensions/libglx.so which is needed for the NVIDIA driver but the NVIDIA driver has its own, special version.
The fix for the error was to reinstall the NVIDIA driver again.
23. February, 2011
If you have problems with your screen in KDE 4.6 (application windows don’t get restored correctly after minimizing them; windows won’t update after a change; when overwriting selected text, part of the selected text stays on the screen; popup windows leave black boxes), try this: Switch the “Compositing Type” from “OpenGL” to “XRender” (in “System Settings” -> “Desktop Effects” -> “Advanced” tab).
As a nice side effect, this reduced the CPU usage of KWin from 10-30% to 0%.
Some desktop effects don’t work with this setting but in return, the UI feels more snappy.
11. November, 2010
Image via Wikipedia
X11 is a bit problematic when it comes to compositing. This is nicely explained on the Wayland architecture page.
The solution is that Wayland requests that every client renders itself in a bitmap and the Wayland server creates a composite image from that. So far so good but I’m really unhappy that Wayland drops support for one of the best features of X11: the remote display.
X11 tried really hard to separate rendering from the application. This allowed lean clients and sending rendering commands (draw a line here, a rectangle there) over an optimized network protocol to the server which displays it to the user. This was priceless in the early days of computing when clients were thin and CPU power was expensive: You would run your application on a server and just get a bunch of rendering commands on your local display (which was basically a graphics card connected to an interpreter for X11 rendering commands which it received over the ‘net).
Other strategies, like copying part of the bitmap which has changed to the server, are much more expensive. A 32×32 pixel image in true color needs 4*32*3 = 384 bytes. That is the same amount you need to render 48 lines or rectangles (using 16-bit coordinates – how big is your screen?). On top of that, rendering commands have a much better compression rate (since there are lots of zero-bits) than images.
While I understand the motivation behind Wayland, I’m not happy with the implementation.