On Thu, Dec 12, 2013 at 09:58:25PM +0100, Daniel Vetter wrote:
> On Thu, Dec 12, 2013 at 9:56 PM, Jesse Barnes <jbar...@virtuousgeek.org> 
> wrote:
> > On Thu, 17 Oct 2013 22:53:13 +0300
> > ville.syrj...@linux.intel.com wrote:
> >
> >> From: Ville Syrjälä <ville.syrj...@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.syrj...@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 <jbar...@virtuousgeek.org>
> 
> Ready your canisters with gallons full of sore acid and raw hatred,
> maintainer party-crasher coming in: Where's the igt?
> 
> Should be fairly simple to exercise with those fancy CRCs we have ...

Whoever ends up writing the basic plane crc tests gets to add some
colorkey tests too. But this fixes a real bug, so my preference
would to to apply it asap, test or no test.

-- 
Ville Syrjälä
Intel OTC
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to