GSoC CM collaboration

Tomas Carnecky tom at dbservice.com
Mon Mar 3 09:47:09 PST 2008


Olivier Galibert wrote:
> On Mon, Mar 03, 2008 at 04:41:08PM +0100, Tomas Carnecky wrote:
>> I was thinking about special atoms attached to windows that specify in 
>> which colorspace/profile its contents are [...]
> 
> You can have one window split on multiple monitors, you can have one
> window cloned on multiple monitors.  Dunno if you can have a
> combination of both, but I don't see why not.  Requires 3 simultaneous
> video outputs though, which is still rare nowadays.

But the colorspace/profile stays the same for the whole window, so it 
make sense to attach that information to the window rather then anything 
else. Whether part of the window is displayed on different monitors is 
the problem of whoever does the colorspace transformation.
In case of twinview/xinerama, where the layout of the monitors is known, 
it should be possible to apply different transformation depending on on 
which monitor a particular part of the window is displayed. In the case 
of cloned windows, it depends on who does the cloning. If its the 
compositing manager then nothing changes, the cloned window is simply 
treated as a separate window and the appropriate transformations are 
applied. If the cloning is done using xrandr, eg. the very same 
framebuffer is scanned out to two different monitors, then you're out of 
luck.

The color transformation should be preferably done on the GPU. The 
newest chips, with 1 teraflops and more, are fast enough and it would 
lighten the pressure on the CPU. The downside? Older chips with no 
support for shaders would be not be able to support this type of color 
management.
Then there is the question whether the transformation should be done in 
the xserver or in a client (eg. compositing manager). I don't know how 
hard it would be to add that kind of OpenGL code to the xserver core. 
There certainly wouldn't be a performance downside - now that OpenGL is 
accelerated on the server-side (AIGLX). But that approach would require 
much more complex changes than a client-side solution.

tom



More information about the xorg mailing list