[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