Directfb Xorg server/Color calibrating X11 displays.

Mike Emmel mike.emmel at gmail.com
Wed May 31 17:47:53 PDT 2006


First as I said I've not looked at this in detail.
But I think all this needs to be back in the driver/directfb layer.

If there is a protocol at the x level thats a different story.
Also its not clear what the entire requirments are for example lcd displays.
They have different requirements from a monitor.

are very common today. In any case I'd love to see all this
functionality avialable outside
of X11 its a shame its tied to the xserver today.

In any case I'm a looong way from worrying about gamma correction at the moment
its probably years away.

Mike



On 5/31/06, Graeme Gill <graeme2 at argyllcms.com> wrote:
> Mike Emmel wrote:
>
> > Anyway I'm trying to split the api avialable in X into two groups
> >
> > A.) Api that are almost always local i.e co-server and seldom used by
> > applications.
> > B.) Desktop/Hardware managment
> > C.) The standard application apis used by programs.
> >
> > Supporting the C group is the initial goal understanding the impact of
> > removing.
> > Directfb based solutions will be used for A and be initially via
> > gtk/directfb.
>
>  From the perspective of supporting color calibration and profiling of
> X11 displays, the main considerations are:
>
> 1) Accessing the hardware video lookup tables. The XF86VidMode
>     "GammaRamp" functions are the only semi-standardized X11
>     way of doing this that I'm aware of.
>
> 2) Locating and accessing the physical displays. There seems
>     no way of quickly locating X11 Displays, or getting a description
>     of them. Simply trying to open them takes too long, so this gets
>     thrown back on the user to somehow "know" what to specify. (not very friendly)
>
>     Selecting screens is somewhat easier, but getting some sort
>     of identifiable description of them depends on the XF86VidMode
>     extension once again. Having to know about, and deal with random
>     extensions (Xinerama) doesn't help (ie. it might be good if there
>     was a common distinction between selecting logical and physical screens,
>     so that future Xinerama like extensions don't have to work around
>     the issue by providing extension specific workaround functions, which
>     then every application that wants to access the physical screen has
>     to know about.)
>
> 3) Accessing the displays DDC/CI channel, to adjust the screen
>     controls (brightness, contrast, color temperature etc.) automatically.
>     This seems to be a lost cause at the moment under X11. While the DDC
>     channel is often used in starting the X11 server to read the EDID,
>     it is not made available to applications that need/want to adjust
>     display settings. There is a project that goes in this direction
>     somewhat (DDIcontrol), but it is not properly integrated
>     into X11 - the application drawing the test colors should be
>     able to access the same display.screen's DDC/CI channel, not
>     rely on the user to make the association, and not have to incorporate
>     all sorts of device dependent access code (that's what an X11 display
>     driver is meant to be shielding the application from!)
>     This could be a low level function that allows the application to
>     read and write DDC messages, or it could be a higher level
>     function that allows "brightness", "contrast" etc. to be
>     read and set (encapsulating any display differences).
>
> 4) Turning off things that interfere with calibrating/profiling the
>     display, such as screensavers and power savers. While X11 does
>     have a standard way of turning the screensaver off, it doesn't
>     actually work with the most popular screensaver "xscreensaver",
>     and dealing with power saving relies on another extension.
>     What's actually needed is a standard way that all such utilities
>     hook into, that the application can indicate a "there is activity"
>     heartbeat, analogous to:
>
>     SetThreadExecutionState():
>     <http://msdn.microsoft.com/library/en-us/power/base/setthreadexecutionstate.asp?frame=true>
>     UpdateSystemActivity():
>     <http://tuvix.apple.com/documentation/Carbon/Reference/Power_Manager/Reference/reference.html>
>
>     Such a facility would greatly be appreciated by slide show and video playback
>     applications as well.
>
> 5) Providing a mechanism to access a screens ICC profile. There is a semi-standardized
>     mechanism for accessing the correct ICC profile using the _ICC_Profile atom property
>     of the root window <http://www.burtonini.com/computing/x-icc-profiles-spec-0.1.html>,
>     although the lack of a distinction between logical an physical screens has
>     made this a little awkward
>     - see <http://lists.freedesktop.org/archives/openicc/2006q2/000727.html>
>
> 1) and 3) probably don't need or want to be remotely accessible functions, but a
> standardized, possibly cleaner way of doing all this stuff is desirable.
>
> Graeme Gill.
> _______________________________________________
> xorg mailing list
> xorg at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/xorg
>



More information about the xorg mailing list