[Openicc] questions about Compiz

Richard Hughes hughsient at gmail.com
Mon Jan 31 01:38:31 PST 2011


On 30 January 2011 21:17, Jan-Peter Homann <homann at colormanagement.de> wrote:
> - RGB 2 CMYK
> - CMYK 2 CMYK

You can certainly do this in lcms on the CPU, but the GPU methods are
limited to 3 channels. When doing the GPU transform, we create a 7 or
8 bit three dimensional cube of the pre-computed transform and store
it in the GPU as a 3d texture. It's a pretty huge lump of texture
memory 8x8x8xsizeof(float) for the default precision (~16Mb) and so
even if the GPU could support 4D textures the resulting precomputed
map would be over 1Gb in size.

Stealing 16Mb of texture space might upset some people, we probably
want people to be able to unload (or disable and reload) the texture
memory when playing full screen OpenGL games.

Something else close to my heart is the amount of additional power
this will also use. For me, on my low power Intel 965GM using a GLSL
shader on a 1680x1050 LVDS display increased my power usage by over
15% when idle. A few hundred mW of power on one system isn't much at
all, but when you multiply a few hundred mW by several hundred
thousand workstations you're talking in fractions of power stations.

Maybe we can achieve the same per-area or per-window (rather than
per-display) gamut scaling without using the GPU at all..? Something
to think about.

Richard.


More information about the openicc mailing list