On Thu, 17 Oct 2013 22:53:13 +0300 ville.syrjala@xxxxxxxxxxxxxxx wrote: > From: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> > > 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@xxxxxxxxxxxxxxx> > --- > 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@xxxxxxxxxxxxxxxx> -- Jesse Barnes, Intel Open Source Technology Center _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx