[Intel-gfx] [PATCH 3/7] drm/i915: Extract ilk_csc_limited_range()

Ville Syrjälä ville.syrjala at linux.intel.com
Wed Mar 13 16:31:01 UTC 2019


On Wed, Mar 13, 2019 at 03:30:43PM +0000, Shankar, Uma wrote:
> 
> 
> >-----Original Message-----
> >From: Ville Syrjala [mailto:ville.syrjala at linux.intel.com]
> >Sent: Tuesday, February 19, 2019 1:02 AM
> >To: intel-gfx at lists.freedesktop.org
> >Cc: Shankar, Uma <uma.shankar at intel.com>; Roper, Matthew D
> ><matthew.d.roper at intel.com>
> >Subject: [PATCH 3/7] drm/i915: Extract ilk_csc_limited_range()
> >
> >From: Ville Syrjälä <ville.syrjala at linux.intel.com>
> >
> >Extract a helper which determines if we need to use the pipe CSC for limited range
> >RGB output.
> >
> >Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
> >---
> > drivers/gpu/drm/i915/intel_color.c | 22 ++++++++++++++--------
> > 1 file changed, 14 insertions(+), 8 deletions(-)
> >
> >diff --git a/drivers/gpu/drm/i915/intel_color.c b/drivers/gpu/drm/i915/intel_color.c
> >index 93428d86510a..ddc48c0d45ac 100644
> >--- a/drivers/gpu/drm/i915/intel_color.c
> >+++ b/drivers/gpu/drm/i915/intel_color.c
> >@@ -161,22 +161,28 @@ static void ilk_load_ycbcr_conversion_matrix(struct
> >intel_crtc *crtc)
> > 	}
> > }
> >
> >+static bool ilk_csc_limited_range(const struct intel_crtc_state
> >+*crtc_state) {
> >+	struct drm_i915_private *dev_priv =
> >+to_i915(crtc_state->base.crtc->dev);
> >+
> >+	/*
> >+	 * FIXME if there's a gamma LUT after the CSC, we should
> >+	 * do the range compression using the gamma LUT instead.
> >+	 */
> >+	return crtc_state->limited_color_range &&
> >+		(IS_HASWELL(dev_priv) || IS_BROADWELL(dev_priv) ||
> >+		 IS_GEN_RANGE(dev_priv, 9, 10));
> 
> We should include Gen8 also to this list. Is it intentional to drop that ?

IS_BROADWELL is the gen8 we care about.

> With this fixed or justified reasoning, 
> Reviewed-by: Uma Shankar <uma.shankar at intel.com>
> 
> >+}
> >+
> > static void ilk_load_csc_matrix(const struct intel_crtc_state *crtc_state)  {
> > 	struct intel_crtc *crtc = to_intel_crtc(crtc_state->base.crtc);
> > 	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
> >-	bool limited_color_range = false;
> >+	bool limited_color_range = ilk_csc_limited_range(crtc_state);
> > 	enum pipe pipe = crtc->pipe;
> > 	u16 coeffs[9] = {};
> > 	int i;
> >
> >-	/*
> >-	 * FIXME if there's a gamma LUT after the CSC, we should
> >-	 * do the range compression using the gamma LUT instead.
> >-	 */
> >-	if (INTEL_GEN(dev_priv) >= 8 || IS_HASWELL(dev_priv))
> >-		limited_color_range = crtc_state->limited_color_range;
> >-
> > 	if (crtc_state->output_format == INTEL_OUTPUT_FORMAT_YCBCR420 ||
> > 	    crtc_state->output_format == INTEL_OUTPUT_FORMAT_YCBCR444) {
> > 		ilk_load_ycbcr_conversion_matrix(crtc);
> >--
> >2.19.2
> 

-- 
Ville Syrjälä
Intel


More information about the Intel-gfx mailing list