XCB Porting

In order to go to Qt 5 KWin needs to be ported from XLib to XCB. Although it's technically not needed to port everything, we want to port all of KWin over to XCB as XCB has many advantages over XLib, most important that it is an async API.

This document is used to keep track of various parts which need to be ported and to organize an collaborative approach towards the porting. If you are interested in working on one of the parts just add yourself to the specific item.


One of KWin's compositing backends is based on XRender. The porting has a low priority for the core KWin team as the default compositing backend is OpenGL and it is possible to disable building KWin with XRender support. Nevertheless it should be ported as users of the XRender compositor would benefit from a port to xcb. XRender is also used in some effects directly and this is actually a good task to work on as the code areas are small and easy to verify.

Before starting to work on it, it might be a good idea to have a look at the X Rendering Extension Protocol Specification as the API is derived from the protocol description. There is also a render-util library available for which unfortunately the API documentation is lacking. The header file is xcb/xcb_renderutil.h.

Status Component Summary Claimed By
TODO MagnifierEffect
TODO MouseClickEffect
TODO MouseMarkEffect
TODO ResizeEffect
TODO ScreenshotEffect
TODO ShowFPSEffect
TODO ShowPaintEffect
TODO SnapHelperEffect
TODO TrackMouseEffect
TODO ZoomEffect
TODO libkwineffects/kwinxrenderutils Note: in Qt 5 a QPixmap does no longer reference an X11 Pixmap
TODO scene_xrender
TODO libkwineffects/kwineffects.cpp PaintClipper

This page was last edited on 23 December 2012, at 17:44. Content is available under Creative Commons License SA 4.0 unless otherwise noted.