What is a Composite Manager?

Given that X11 core is all about managing rectangle with content (windows), with bare minimum of primitives, it could not do shaped or transparency. To solve these core limitations, extensions are created and one of the most recent is the Composite extension, that allows, among other things shape, transparency, colorization or any other effects to be applied to the contents before they are painted.

This extension will allow clients to paint to offscreen buffers, to be later used by another client. These buffers may have different bit-depth, like ARGB (alpha with red-green-blue).

The Composite extension allows one of its clients to register as the "Composite Manager", that, roughly, is the one that will get all the windows and draw them in a single buffer that X11 puts on the framebuffer. This manager is responsible to do all the blend of shaped or semi-transparent windows and may do whatever it want with these before putting on the final "scene". This allows the core X11 and extension to remain simple, while allowing maximum flexibility, as the windows may be colored, rotated, put into a face of a 3D cube, draw flames or rain, apply blur and so on.

There is no need that the window manager is the composite manager, as is the case of xcompmgr, but if they overlap such roles, one can do nice effects on window operations, as the action is known, the window surface is known, and the composite manager has the freedom to manipulate his own window with the final scene. This allow nice contextual effects.

Most of the windowing systems and desktop shells provide some kind of window manager: Gnome uses Compiz, KDE has its own inside KWin. There are simple but generic composite managers like xcompmgr.

See theory behind it and more details at  http://en.wikipedia.org/wiki/Compositing_window_manager

Enlightenment Composite Manager

The initial plan was to not have a composite manager in E17, but leave that to E18. However, due its usefulness and frequent demand to at least support real-transparency terminals and real window shadows, in 2010 Rasterman did the first official composite manager with a module called "comp".

This module is quite basic as E17 as not planned to take full advantage of Composite Manager possibilities. So window borders are still the old-fashioned windows that re-parent their contents, but still able to show some nice shadows, window colorization and basic fade-in/out effects.

The module uses Evas itself, having all of the windows as image objects that have their pixels changed by the applications. That allow us the simplicity and speed of this canvas, making E17 fast in OpenGL, OpenGL-ES and even pure software! This also mean in future we can use Edje to do effects, definitely a win for theme makers.

For E18, the plan is to move to full composited system and maybe even drop the non-composited support. The core will be changed to make better use of this feature.

Is my video card Supported?

Enlightenment uses Evas to render the composited scene and can do this optimally with OpenGL or OpenGL-ES support using a feature called "texture-from-pixmap", or can do it on pure software without any special requirement, but MMX/SSE2/NEON/Altivec are suggested.

The OpenGL and OpenGL-ES (2.0) support require a graphics card with full shader support (GLSL). That means a recent card (2010 standards). Texture-from-pixmap is not mandatory, but highly suggested.

Known video cards:

ManufacturerModelStatusTFPIND.RENFast?Remarks
All Software WorksNNYDefault software compositing mode works everywhere
Intel 965GM WorksYNYY
Intel 3150 WorksYNYY
Intel Clarkdale (i3-i5) WorksYNYTested with xf86-video-intel 2.15.0
NVIDIA Geforce 310M WorksYNYUse nvidia closed driver
NVIDIA Geforce 6600 WorksYNYUse nvidia closed driver
NVIDIA Geforce 8400M GT WorksYN**fast except when scrolling gtk2 canvases with lots of text
NVIDIA Geforce 8600GT WorksYNYUse nvidia closed driver
NVIDIA Geforce 8800GT WorksYN**fast except when scrolling gtk2 canvases with lots of text
NVIDIA Geforce GT220 WorksYNYUse nvidia closed driver
NVIDIA Geforce GTS450 WorksYNYUse nvidia closed driver
NVIDIA Quadro FX 560 WorksYNYUse nvidia closed driver
NVIDIA Quadro NVS140M WorksYNNEventually slows down after a couple of hours of use (an old driver bug - fixed in new drivers).
ATI/AMDRadeon HD 4650 WorksNNYUse fglrx closed driver. TFP works, but driver crashes and updates lost
ATI/AMDRadeon HD 6970 WorksYNYOnly fglrx supports acceleration right now (2011-03), but it works and is very fast
ATI/AMDRadeon Mobility x1400WorksYNYUse the open Radeon Gallium drivers as they support OpenGL SL and make sure to switch on TFP. Ubuntu users might use the xorg-edgers ppa
ATI/AMDRadeon x1950 WorksYNYRadeon OSS driver. Sync screen/windows: N, Loose sync, grab server: Y, timeout: 0.01.
ATI/AMDRadeon HD 4290(RS880)WorksYNYGallium 0.4 w. Mesa 7.11 (OpenGL), radeon X11 driver (verified on Fedora 15 x64)

Legend: TFP: Texture from pixmap, IND.REN: Indirect rendering

Be sure to check the remarks for your video card, that may contain specific versions that work or are broken.

If your card is not listed above and you tried to run OpenGL version without success, drop us a note with the version of your system and xorg-server, mesa, libdrm and xf86-video-* You should mail enlightenment-users mail list.

If you have a reasonable new CPU and your OpenGL is listed as unsupported, then you probably can run it solely on software with excellent performance. This may be a solution until drivers are fixed.