Color management in DRM framework
shashank.sharma at intel.com
Mon Jun 22 06:38:30 PDT 2015
Hi Rob, Alex, Ben, All :)
I am Shashank Sharma, from Linux display team Intel, Bangalore.
We are planning to add a color management extension in the existing I915 driver, for Intel HWs.
Plan was to provide a color correction and enhancement interface for any Linux based userspace, based on various HW capabilities.
We are now thinking that if we can generalize this implementation, in such a way that other drivers can also utilize this, this idea can act as an extension to the DRM framework itself.
Based on that thought, We have prepared a design for the same, and a rough implementation based on this design.
Would you all be kind enough to have a look at this design, and give us some feedback, so that we can implement this in a way best suitable to most of the drivers ?
We have gone through few rounds of design discussions internally (design contributors, reviewers in CC), and we all are moreover agree on the design (few comments still in progress).
The highlights of the design:
1. The color correction capabilities of a HW are being registered as a DRM property of a CRTC / Plane (depending on a HW)
2. Properties will be of blob type.
3. New data structures will be added in DRM layer, to encoder and decode color correction and enhancement data.
4. The color correction DRM properties would look like :
a. Palette correction / programming based color properties (like gamma correction). This can support various coefficients counts and correction values, based on the underneath HW.
b. Color transformation matrix based color correction (CSC, wide and narrow gamut mapping)
c. Plane level corrections like gamma correction, hue, saturation, contrast and brightness.
d. One blob type property to showcase the color correction capabilities to the userspace, superset of all other color correction properties.
5. The driver's init function can create the superset color property, and show its color capabilities to the userspace.
6. Userspace can query the current color correction Or apply a new color correction using a set/get property interface.
Please find the detailed design, in this shared google document:
Please feel free to add more people in the design discussion, once we have some basic agreement on the design, we will share the patches in dri-devel level.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the dri-devel