GSoC/GCI Archive
Google Summer of Code 2009


Web Page:

Mailing List:

X.Org develops the X Window System, the standard window system for open source operating systems and devices. X is the result of more than 20 years of work by teams of leading open source developers. The X.Org Foundation Board of Directors is responsible for non-technical support and guidance of the X.Org project.


  • Complete and comprehensive input support for XCB. XCB lacks support for X Keyboard (Xkb) and X Input (Xi) extensions. These extensions are not perfect, and there is ongoing work on their successors - Xkb2 and Xi2. The goal for this project, is to, implement XCB binding for Xkb,Xi,Xkb2 and Xi2 extensions.
  • Input redirection / transformation Input redirection allows transformation of the input, so that it can match a transformed output. Currently, this is not possible, and input has to be blocked on transformed windows. Currently, input redirection is only available as a set of patches for various x components (by David Reveman). Unfortunately, there are some issues with the patches, as some applications do not behave correctly when transformed. My proposal is to complete the patches, iron out any problems with (potentially broken) applications, and get the patches in a state that can be merged (as it has been waiting for over 2 years, without much happening).
  • Reverse engineering of Nvidia TV encoders. The TV output present on several Nvidia graphics cards lacks support from the nv and nouveau open source device drivers. This forces most users wanting to use their TV out to stick with the proprietary Nvidia software. This project will aim to reverse engineer the operation of the TV encoder integrated on some recent Nvidia chips, and provide a RandR1.3 compliant implementation based on the nouveau driver.
  • Shatter Currently, the X server manages one monolithic root pixmap, which each screen uses a portion of for scanout and display. However, this causes many problems related to various hardware limits and memory management. This proposal would implement Adam Jackson's shatter, a proposed technique in which the server creates one root pixmap per screen and manages inter-pixmap rendering through a series of redirections in the rendering pipeline.