Message ID | 20190329092027.3430-1-daniel.vetter@ffwll.ch (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/gamma: Clarify gamma lut uapi | expand |
On Fri, Mar 29, 2019 at 10:20:27AM +0100, Daniel Vetter wrote: > Interpreting it as a 0.16 fixed point means we can't accurately > represent 1.0. Which is one of the values we really should be able to > represent. > > Since most (all?) luts have lower precision this will only affect > rounding of 0xffff. > > Cc: Uma Shankar <uma.shankar@intel.com> > Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> > Cc: Shashank Sharma <shashank.sharma@intel.com> > Cc: "Kumar, Kiran S" <kiran.s.kumar@intel.com> > Cc: Kausal Malladi <kausalmalladi@gmail.com> > Cc: Lionel Landwerlin <lionel.g.landwerlin@intel.com> > Cc: Matt Roper <matthew.d.roper@intel.com> > Cc: Rob Bradford <robert.bradford@intel.com> > Cc: Daniel Stone <daniels@collabora.com> > Cc: Stefan Schake <stschake@gmail.com> > Cc: Eric Anholt <eric@anholt.net> > Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> > Cc: Harry Wentland <harry.wentland@amd.com> > Cc: Leo Li <sunpeng.li@amd.com> > Cc: amd-gfx@lists.freedesktop.org > Cc: James (Qian) Wang <james.qian.wang@arm.com> > Cc: Liviu Dudau <liviu.dudau@arm.com> > Cc: Mali DP Maintainers <malidp@foss.arm.com> > Cc: CK Hu <ck.hu@mediatek.com> > Cc: Philipp Zabel <p.zabel@pengutronix.de> > Cc: Yannick Fertre <yannick.fertre@st.com> > Cc: Philippe Cornu <philippe.cornu@st.com> > Cc: Benjamin Gaignard <benjamin.gaignard@linaro.org> > Cc: Vincent Abriou <vincent.abriou@st.com> > Cc: Tomi Valkeinen <tomi.valkeinen@ti.com> > Cc: Boris Brezillon <bbrezillon@kernel.org> > Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> Acked-by: Liviu Dudau <liviu.dudau@arm.com> Best regards, Liviu > --- > include/uapi/drm/drm_mode.h | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/include/uapi/drm/drm_mode.h b/include/uapi/drm/drm_mode.h > index 09d72966899a..83cd1636b9be 100644 > --- a/include/uapi/drm/drm_mode.h > +++ b/include/uapi/drm/drm_mode.h > @@ -621,7 +621,8 @@ struct drm_color_ctm { > > struct drm_color_lut { > /* > - * Data is U0.16 fixed point format. > + * Values are mapped linearly to 0.0 - 1.0 range, with 0x0 == 0.0 and > + * 0xffff == 1.0. > */ > __u16 red; > __u16 green; > -- > 2.20.1 >
On 29/03/2019 09:20, Daniel Vetter wrote: > Interpreting it as a 0.16 fixed point means we can't accurately > represent 1.0. Which is one of the values we really should be able to > represent. > > Since most (all?) luts have lower precision this will only affect > rounding of 0xffff. > > Cc: Uma Shankar <uma.shankar@intel.com> > Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> > Cc: Shashank Sharma <shashank.sharma@intel.com> > Cc: "Kumar, Kiran S" <kiran.s.kumar@intel.com> > Cc: Kausal Malladi <kausalmalladi@gmail.com> > Cc: Lionel Landwerlin <lionel.g.landwerlin@intel.com> > Cc: Matt Roper <matthew.d.roper@intel.com> > Cc: Rob Bradford <robert.bradford@intel.com> > Cc: Daniel Stone <daniels@collabora.com> > Cc: Stefan Schake <stschake@gmail.com> > Cc: Eric Anholt <eric@anholt.net> > Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> > Cc: Harry Wentland <harry.wentland@amd.com> > Cc: Leo Li <sunpeng.li@amd.com> > Cc: amd-gfx@lists.freedesktop.org > Cc: James (Qian) Wang <james.qian.wang@arm.com> > Cc: Liviu Dudau <liviu.dudau@arm.com> > Cc: Mali DP Maintainers <malidp@foss.arm.com> > Cc: CK Hu <ck.hu@mediatek.com> > Cc: Philipp Zabel <p.zabel@pengutronix.de> > Cc: Yannick Fertre <yannick.fertre@st.com> > Cc: Philippe Cornu <philippe.cornu@st.com> > Cc: Benjamin Gaignard <benjamin.gaignard@linaro.org> > Cc: Vincent Abriou <vincent.abriou@st.com> > Cc: Tomi Valkeinen <tomi.valkeinen@ti.com> > Cc: Boris Brezillon <bbrezillon@kernel.org> > Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> > --- > include/uapi/drm/drm_mode.h | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/include/uapi/drm/drm_mode.h b/include/uapi/drm/drm_mode.h > index 09d72966899a..83cd1636b9be 100644 > --- a/include/uapi/drm/drm_mode.h > +++ b/include/uapi/drm/drm_mode.h > @@ -621,7 +621,8 @@ struct drm_color_ctm { > > struct drm_color_lut { > /* > - * Data is U0.16 fixed point format. > + * Values are mapped linearly to 0.0 - 1.0 range, with 0x0 == 0.0 and > + * 0xffff == 1.0. > */ > __u16 red; > __u16 green; Thanks, that was the intention when it was introduced. Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
On Fri, Mar 29, 2019 at 10:20:27AM +0100, Daniel Vetter wrote: > Interpreting it as a 0.16 fixed point means we can't accurately > represent 1.0. Which is one of the values we really should be able to > represent. > > Since most (all?) luts have lower precision this will only affect > rounding of 0xffff. > > Cc: Uma Shankar <uma.shankar@intel.com> > Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> > Cc: Shashank Sharma <shashank.sharma@intel.com> > Cc: "Kumar, Kiran S" <kiran.s.kumar@intel.com> > Cc: Kausal Malladi <kausalmalladi@gmail.com> > Cc: Lionel Landwerlin <lionel.g.landwerlin@intel.com> > Cc: Matt Roper <matthew.d.roper@intel.com> > Cc: Rob Bradford <robert.bradford@intel.com> > Cc: Daniel Stone <daniels@collabora.com> > Cc: Stefan Schake <stschake@gmail.com> > Cc: Eric Anholt <eric@anholt.net> > Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> > Cc: Harry Wentland <harry.wentland@amd.com> > Cc: Leo Li <sunpeng.li@amd.com> > Cc: amd-gfx@lists.freedesktop.org > Cc: James (Qian) Wang <james.qian.wang@arm.com> > Cc: Liviu Dudau <liviu.dudau@arm.com> > Cc: Mali DP Maintainers <malidp@foss.arm.com> > Cc: CK Hu <ck.hu@mediatek.com> > Cc: Philipp Zabel <p.zabel@pengutronix.de> > Cc: Yannick Fertre <yannick.fertre@st.com> > Cc: Philippe Cornu <philippe.cornu@st.com> > Cc: Benjamin Gaignard <benjamin.gaignard@linaro.org> > Cc: Vincent Abriou <vincent.abriou@st.com> > Cc: Tomi Valkeinen <tomi.valkeinen@ti.com> > Cc: Boris Brezillon <bbrezillon@kernel.org> > Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> > --- > include/uapi/drm/drm_mode.h | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/include/uapi/drm/drm_mode.h b/include/uapi/drm/drm_mode.h > index 09d72966899a..83cd1636b9be 100644 > --- a/include/uapi/drm/drm_mode.h > +++ b/include/uapi/drm/drm_mode.h > @@ -621,7 +621,8 @@ struct drm_color_ctm { > > struct drm_color_lut { > /* > - * Data is U0.16 fixed point format. > + * Values are mapped linearly to 0.0 - 1.0 range, with 0x0 == 0.0 and > + * 0xffff == 1.0. > */ Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com> > __u16 red; > __u16 green; > -- > 2.20.1
On Fri, Mar 29, 2019 at 10:20:27AM +0100, Daniel Vetter wrote: > Interpreting it as a 0.16 fixed point means we can't accurately > represent 1.0. Which is one of the values we really should be able to > represent. > > Since most (all?) luts have lower precision this will only affect > rounding of 0xffff. > > Cc: Uma Shankar <uma.shankar@intel.com> > Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> > Cc: Shashank Sharma <shashank.sharma@intel.com> > Cc: "Kumar, Kiran S" <kiran.s.kumar@intel.com> > Cc: Kausal Malladi <kausalmalladi@gmail.com> > Cc: Lionel Landwerlin <lionel.g.landwerlin@intel.com> > Cc: Matt Roper <matthew.d.roper@intel.com> > Cc: Rob Bradford <robert.bradford@intel.com> > Cc: Daniel Stone <daniels@collabora.com> > Cc: Stefan Schake <stschake@gmail.com> > Cc: Eric Anholt <eric@anholt.net> > Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> > Cc: Harry Wentland <harry.wentland@amd.com> > Cc: Leo Li <sunpeng.li@amd.com> > Cc: amd-gfx@lists.freedesktop.org > Cc: James (Qian) Wang <james.qian.wang@arm.com> > Cc: Liviu Dudau <liviu.dudau@arm.com> > Cc: Mali DP Maintainers <malidp@foss.arm.com> > Cc: CK Hu <ck.hu@mediatek.com> > Cc: Philipp Zabel <p.zabel@pengutronix.de> > Cc: Yannick Fertre <yannick.fertre@st.com> > Cc: Philippe Cornu <philippe.cornu@st.com> > Cc: Benjamin Gaignard <benjamin.gaignard@linaro.org> > Cc: Vincent Abriou <vincent.abriou@st.com> > Cc: Tomi Valkeinen <tomi.valkeinen@ti.com> > Cc: Boris Brezillon <bbrezillon@kernel.org> > Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> Looks like you're missing a newline between your two s-o-b's. But the patch is Reviewed-by: Matt Roper <matthew.d.roper@intel.com> > --- > include/uapi/drm/drm_mode.h | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/include/uapi/drm/drm_mode.h b/include/uapi/drm/drm_mode.h > index 09d72966899a..83cd1636b9be 100644 > --- a/include/uapi/drm/drm_mode.h > +++ b/include/uapi/drm/drm_mode.h > @@ -621,7 +621,8 @@ struct drm_color_ctm { > > struct drm_color_lut { > /* > - * Data is U0.16 fixed point format. > + * Values are mapped linearly to 0.0 - 1.0 range, with 0x0 == 0.0 and > + * 0xffff == 1.0. > */ > __u16 red; > __u16 green; > -- > 2.20.1 >
On 3/29/19 10:20 AM, Daniel Vetter wrote: > Interpreting it as a 0.16 fixed point means we can't accurately > represent 1.0. Which is one of the values we really should be able to > represent. > > Since most (all?) luts have lower precision this will only affect > rounding of 0xffff. > > Cc: Uma Shankar <uma.shankar@intel.com> > Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> > Cc: Shashank Sharma <shashank.sharma@intel.com> > Cc: "Kumar, Kiran S" <kiran.s.kumar@intel.com> > Cc: Kausal Malladi <kausalmalladi@gmail.com> > Cc: Lionel Landwerlin <lionel.g.landwerlin@intel.com> > Cc: Matt Roper <matthew.d.roper@intel.com> > Cc: Rob Bradford <robert.bradford@intel.com> > Cc: Daniel Stone <daniels@collabora.com> > Cc: Stefan Schake <stschake@gmail.com> > Cc: Eric Anholt <eric@anholt.net> > Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> > Cc: Harry Wentland <harry.wentland@amd.com> > Cc: Leo Li <sunpeng.li@amd.com> > Cc: amd-gfx@lists.freedesktop.org > Cc: James (Qian) Wang <james.qian.wang@arm.com> > Cc: Liviu Dudau <liviu.dudau@arm.com> > Cc: Mali DP Maintainers <malidp@foss.arm.com> > Cc: CK Hu <ck.hu@mediatek.com> > Cc: Philipp Zabel <p.zabel@pengutronix.de> > Cc: Yannick Fertre <yannick.fertre@st.com> > Cc: Philippe Cornu <philippe.cornu@st.com> > Cc: Benjamin Gaignard <benjamin.gaignard@linaro.org> > Cc: Vincent Abriou <vincent.abriou@st.com> > Cc: Tomi Valkeinen <tomi.valkeinen@ti.com> > Cc: Boris Brezillon <bbrezillon@kernel.org> > Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> > --- > include/uapi/drm/drm_mode.h | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/include/uapi/drm/drm_mode.h b/include/uapi/drm/drm_mode.h > index 09d72966899a..83cd1636b9be 100644 > --- a/include/uapi/drm/drm_mode.h > +++ b/include/uapi/drm/drm_mode.h > @@ -621,7 +621,8 @@ struct drm_color_ctm { > > struct drm_color_lut { > /* > - * Data is U0.16 fixed point format. > + * Values are mapped linearly to 0.0 - 1.0 range, with 0x0 == 0.0 and > + * 0xffff == 1.0. for stm, Reviewed-by: Philippe Cornu <philippe.cornu@st.com> Many thanks Philippe :-) > */ > __u16 red; > __u16 green; >
Op 29-03-2019 om 10:20 schreef Daniel Vetter: > Interpreting it as a 0.16 fixed point means we can't accurately > represent 1.0. Which is one of the values we really should be able to > represent. > > Since most (all?) luts have lower precision this will only affect > rounding of 0xffff. > > Cc: Uma Shankar <uma.shankar@intel.com> > Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> > Cc: Shashank Sharma <shashank.sharma@intel.com> > Cc: "Kumar, Kiran S" <kiran.s.kumar@intel.com> > Cc: Kausal Malladi <kausalmalladi@gmail.com> > Cc: Lionel Landwerlin <lionel.g.landwerlin@intel.com> > Cc: Matt Roper <matthew.d.roper@intel.com> > Cc: Rob Bradford <robert.bradford@intel.com> > Cc: Daniel Stone <daniels@collabora.com> > Cc: Stefan Schake <stschake@gmail.com> > Cc: Eric Anholt <eric@anholt.net> > Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> > Cc: Harry Wentland <harry.wentland@amd.com> > Cc: Leo Li <sunpeng.li@amd.com> > Cc: amd-gfx@lists.freedesktop.org > Cc: James (Qian) Wang <james.qian.wang@arm.com> > Cc: Liviu Dudau <liviu.dudau@arm.com> > Cc: Mali DP Maintainers <malidp@foss.arm.com> > Cc: CK Hu <ck.hu@mediatek.com> > Cc: Philipp Zabel <p.zabel@pengutronix.de> > Cc: Yannick Fertre <yannick.fertre@st.com> > Cc: Philippe Cornu <philippe.cornu@st.com> > Cc: Benjamin Gaignard <benjamin.gaignard@linaro.org> > Cc: Vincent Abriou <vincent.abriou@st.com> > Cc: Tomi Valkeinen <tomi.valkeinen@ti.com> > Cc: Boris Brezillon <bbrezillon@kernel.org> > Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> > --- > include/uapi/drm/drm_mode.h | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/include/uapi/drm/drm_mode.h b/include/uapi/drm/drm_mode.h > index 09d72966899a..83cd1636b9be 100644 > --- a/include/uapi/drm/drm_mode.h > +++ b/include/uapi/drm/drm_mode.h > @@ -621,7 +621,8 @@ struct drm_color_ctm { > > struct drm_color_lut { > /* > - * Data is U0.16 fixed point format. > + * Values are mapped linearly to 0.0 - 1.0 range, with 0x0 == 0.0 and > + * 0xffff == 1.0. > */ > __u16 red; > __u16 green; Much better, with sob fixed. :) Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
On Fri, Mar 29, 2019 at 10:20:27AM +0100, Daniel Vetter wrote: > Interpreting it as a 0.16 fixed point means we can't accurately > represent 1.0. Which is one of the values we really should be able to > represent. > > Since most (all?) luts have lower precision this will only affect > rounding of 0xffff. > > Cc: Uma Shankar <uma.shankar@intel.com> > Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> > Cc: Shashank Sharma <shashank.sharma@intel.com> > Cc: "Kumar, Kiran S" <kiran.s.kumar@intel.com> > Cc: Kausal Malladi <kausalmalladi@gmail.com> > Cc: Lionel Landwerlin <lionel.g.landwerlin@intel.com> > Cc: Matt Roper <matthew.d.roper@intel.com> > Cc: Rob Bradford <robert.bradford@intel.com> > Cc: Daniel Stone <daniels@collabora.com> > Cc: Stefan Schake <stschake@gmail.com> > Cc: Eric Anholt <eric@anholt.net> > Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> > Cc: Harry Wentland <harry.wentland@amd.com> > Cc: Leo Li <sunpeng.li@amd.com> > Cc: amd-gfx@lists.freedesktop.org > Cc: James (Qian) Wang <james.qian.wang@arm.com> > Cc: Liviu Dudau <liviu.dudau@arm.com> > Cc: Mali DP Maintainers <malidp@foss.arm.com> > Cc: CK Hu <ck.hu@mediatek.com> > Cc: Philipp Zabel <p.zabel@pengutronix.de> > Cc: Yannick Fertre <yannick.fertre@st.com> > Cc: Philippe Cornu <philippe.cornu@st.com> > Cc: Benjamin Gaignard <benjamin.gaignard@linaro.org> > Cc: Vincent Abriou <vincent.abriou@st.com> > Cc: Tomi Valkeinen <tomi.valkeinen@ti.com> > Cc: Boris Brezillon <bbrezillon@kernel.org> > Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> Applied, thanks for all the reviews. -Daniel > --- > include/uapi/drm/drm_mode.h | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/include/uapi/drm/drm_mode.h b/include/uapi/drm/drm_mode.h > index 09d72966899a..83cd1636b9be 100644 > --- a/include/uapi/drm/drm_mode.h > +++ b/include/uapi/drm/drm_mode.h > @@ -621,7 +621,8 @@ struct drm_color_ctm { > > struct drm_color_lut { > /* > - * Data is U0.16 fixed point format. > + * Values are mapped linearly to 0.0 - 1.0 range, with 0x0 == 0.0 and > + * 0xffff == 1.0. > */ > __u16 red; > __u16 green; > -- > 2.20.1 >
diff --git a/include/uapi/drm/drm_mode.h b/include/uapi/drm/drm_mode.h index 09d72966899a..83cd1636b9be 100644 --- a/include/uapi/drm/drm_mode.h +++ b/include/uapi/drm/drm_mode.h @@ -621,7 +621,8 @@ struct drm_color_ctm { struct drm_color_lut { /* - * Data is U0.16 fixed point format. + * Values are mapped linearly to 0.0 - 1.0 range, with 0x0 == 0.0 and + * 0xffff == 1.0. */ __u16 red; __u16 green;
Interpreting it as a 0.16 fixed point means we can't accurately represent 1.0. Which is one of the values we really should be able to represent. Since most (all?) luts have lower precision this will only affect rounding of 0xffff. Cc: Uma Shankar <uma.shankar@intel.com> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> Cc: Shashank Sharma <shashank.sharma@intel.com> Cc: "Kumar, Kiran S" <kiran.s.kumar@intel.com> Cc: Kausal Malladi <kausalmalladi@gmail.com> Cc: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Cc: Matt Roper <matthew.d.roper@intel.com> Cc: Rob Bradford <robert.bradford@intel.com> Cc: Daniel Stone <daniels@collabora.com> Cc: Stefan Schake <stschake@gmail.com> Cc: Eric Anholt <eric@anholt.net> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Cc: Harry Wentland <harry.wentland@amd.com> Cc: Leo Li <sunpeng.li@amd.com> Cc: amd-gfx@lists.freedesktop.org Cc: James (Qian) Wang <james.qian.wang@arm.com> Cc: Liviu Dudau <liviu.dudau@arm.com> Cc: Mali DP Maintainers <malidp@foss.arm.com> Cc: CK Hu <ck.hu@mediatek.com> Cc: Philipp Zabel <p.zabel@pengutronix.de> Cc: Yannick Fertre <yannick.fertre@st.com> Cc: Philippe Cornu <philippe.cornu@st.com> Cc: Benjamin Gaignard <benjamin.gaignard@linaro.org> Cc: Vincent Abriou <vincent.abriou@st.com> Cc: Tomi Valkeinen <tomi.valkeinen@ti.com> Cc: Boris Brezillon <bbrezillon@kernel.org> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> --- include/uapi/drm/drm_mode.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)