PeopleProjectsPresentation

This will be used to present the current state of the X.org project at a few upcoming conferences. Others are welcome to use this material for their own presentations. If you find mistakes in a project you are a contributor to, please fix them.


Projects

Radeon ATI driver

Unsupported by ATI. X.org maintainers for the 2D driver are currently made up from

Dave Airlie - general 2D driver + randr 1.2

Michel Dänzer (pic, bio) - general 2D driver + DRI

Alex Deucher - general 2D driver + tv-out

Ben Herrenschmidt - 2D driver memory layout

Roland Scheidegger - xv support

George Sapountzis - ATI wrapper and mach64

The Mesa 3D drivers for radeon/r200 are mainly looked after by Roland Scheidegger. The r300 reverse engineered driver was developed by a few developers, currently Jerome Glisse and Aapo Tahkola will answer questions.

R500 reverse-engineering on 2D started by Dave Airlie is a dead-end due to legal issues. Jerome Glisse and Daniel Stone have started reverse-engineering this from scratch to avoid any similar problems, and have already made pretty good progress; 2D mode setting could come soon. 3D RE could then start and we will be looking forward to get more people involved in the process.

Nouveau driver

Unsupported by NVIDIA. Nvidia cards are quite complex and require a lot of plumbery to get things like context switches to work. All this is already done on nv40, so 3D is working on these cards for untextured polygons. For other cards are currently being worked on. Adding texturing will require porting the DRM to TTM. The main developers on the nouveau project are:

Stephane Marchesin - overall director, nv04, nv40, all around DRI/DRM love

Ben Skeggs - shaders + nv40

Patrice Mandin - nv10/20

Matthieu Castet - nv10/20

Jeremy Kolb - nv30

Dave Airlie - Randr 1.2 and DDX

Input hotplug, Xi 2

Input system more or less rewritten, and input hotplug working fine in the server. Devices can be added and removed at will. Sample client using HAL to add devices automatically written already, but a proper client that integrates with the desktop environment needs to be written. API quite simple: just uses D-Bus. Will be integrated for 7.3. Needs some toolkit support to realise its full potential (using extended events instead of core).

Xi 2 will allow multiple pointers and a few other niceties, such as being able to send keysym events without needing remapping (e.g. Dasher). Peter's already got MPX in a good state on a branch: it works out of the box. Needs merging into Xi, and semantics sorted. Expected for 7.4, possibly. Currently MPX supports multiple mice and multiple keyboards, with hotplugging for both. New mice automatically get a new cursor. Keyboards can be paired with a mouse to follow one cursor's focus, the pairing can be changed dynamically at any time. Additionally MPX has access control mechanisms, to limit parts of the GUI to a set of input devices. This should avoid interference when multiple people are interacting on one screen. MPX has a fair amount of challenges left, such as what happens to applications that do not know about the existance of multiple devices.

The Generic Events extension (XGE) is an attempt to get rid of the 64 extension events limitation. It relays event processing through callbacks, allowing to re-use a single opcode for all events, while shifting the actual opcode into different bytes of the event structure. With the current version, XGE allows 256 extensions with 2^16 event opcodes per extension. Probably even more important, XGE supports long events (> 32 bytes). XGE is part of MPX already.

Daniel Stone: primary developer

Peter Hutterer: MPX, XGE

XCB

Pretty viable as an Xlib replacement. XML-based X protocol description language is working well. Xlib/XCB is shipped by default; cleans up Xlib and allows apps to mix Xlib and XCB calls.

Bart Massey: Lead architect, co-ordination

Jamey Sharp: Development lead, architect, core maintainer

Josh Triplett: XML lead and maintainer

Vincent Torri: Documentation and examples lead, util library maintainer

Jeremy Kolb: Maintainer of many of the extension modules, general maintainer

Ian Osgood: Many team contributions

[Who did I miss?]

Xephyr

Xephyr is a kdrive server that uses a window on a host desktop X Server as its framebuffer. Supports modern extensions,differing color depths to host and more. Useful for embedded device display simulation, server and extension development, testing and performance work.

Matthew Allum (pic, pic ): Lead Developer

Eric Anholt: EXA backend.

Xres

Xres is a server extension to monitor server side resource usage by clients. Recent work includes various bugfixes / improvements. Current and possible future work involves event generation on resource creation/destruction, 'live' pixmap probing, grab debugging etc. Xrestop is a command line tool for monitoring server resource usage with a top like output.

Matthew Allum: recent extension development work and xrestop developer.

XACE

The X Access Control Extension is a generic hook facility similar to and having the same purpose as the Linux Security Modules facility in the Linux kernel. It provides callback lists called from key points in the server, such as the dispatch table routine and the resource lookup routine. This allows loadable modules implementing arbitrary security decision logic to be created without having to touch the core X server code. The modules can register callbacks that get called at each hook point, receiving relevant parameters and passing back the security decision. The author is interested in having such a subsystem for the purpose of providing SELinux controls over X Window System objects.

XACE itself has been merged already but there are several areas of the server that the author is working on in support of the concept of loadable security modules. These include:

The work is moving along well but the major problem is that some of it will affect the X server API, so that an API change point will be necessary to safely merge it (after the work has been nominated and reviewed, of course). After the work is completed SELinux support can be provided as a loadable server module.

Eamon Walsh: SELinux developer. (My talk at XDevConf was at least partially videotaped so it should be possible to get a picture from that).

Intel Driver

2D and 3D drivers for Intel hardware. Main issues involve improving EXA support, implementing XvMC, finishing the modesetting branch and merging that to master.