[Intel-gfx] [PATCH 1/7] drm/i915: Don't disable primary when color keying is used

Jesse Barnes jbarnes at virtuousgeek.org
Thu Dec 12 21:56:19 CET 2013


On Thu, 17 Oct 2013 22:53:13 +0300
ville.syrjala at linux.intel.com wrote:

> From: Ville Syrjälä <ville.syrjala at linux.intel.com>
> 
> When color keying is used, the primary may not be invisible even though
> the sprite fully covers it. So check for color keying before deciding to
> disable the primary plane.
> 
> Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
> ---
>  drivers/gpu/drm/i915/intel_sprite.c | 11 ++++++++++-
>  1 file changed, 10 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_sprite.c b/drivers/gpu/drm/i915/intel_sprite.c
> index 07b13dc..74f6bd4 100644
> --- a/drivers/gpu/drm/i915/intel_sprite.c
> +++ b/drivers/gpu/drm/i915/intel_sprite.c
> @@ -643,6 +643,15 @@ format_is_yuv(uint32_t format)
>  	}
>  }
>  
> +static bool colorkey_enabled(struct intel_plane *intel_plane)
> +{
> +	struct drm_intel_sprite_colorkey key;
> +
> +	intel_plane->get_colorkey(&intel_plane->base, &key);
> +
> +	return key.flags != I915_SET_COLORKEY_NONE;
> +}
> +
>  static int
>  intel_update_plane(struct drm_plane *plane, struct drm_crtc *crtc,
>  		   struct drm_framebuffer *fb, int crtc_x, int crtc_y,
> @@ -828,7 +837,7 @@ intel_update_plane(struct drm_plane *plane, struct drm_crtc *crtc,
>  	 * If the sprite is completely covering the primary plane,
>  	 * we can disable the primary and save power.
>  	 */
> -	disable_primary = drm_rect_equals(&dst, &clip);
> +	disable_primary = drm_rect_equals(&dst, &clip) && !colorkey_enabled(intel_plane);
>  	WARN_ON(disable_primary && !visible && intel_crtc->active);
>  
>  	mutex_lock(&dev->struct_mutex);

Reviewed-by: Jesse Barnes <jbarnes at virtuousgeek.org>

-- 
Jesse Barnes, Intel Open Source Technology Center



More information about the Intel-gfx mailing list