On Thu, Feb 06, 2014 at 08:34:53PM +0530, sagar.a.kam...@intel.com wrote:
> From: Sagar Kamble <sagar.a.kam...@intel.com>
> 
> With clipped sprites these transformations are not working. these
> functions transform complete sprite irrespective of clipping present.
> This leads to invisible portion of sprite show up when rotate 180 if
> it was out of visible area before.

We need to orient the src and dst coordinates the same way to make
clipping come out right, and then go back to the original orientation to
make our src buffer offset calculation work out. I'm pretty sure this was
working exactly as inteded for me.

If the code is actually buggy, I'm going to want a test case that
demonstrates that bug.

> 
> Signed-off-by: Sagar Kamble <sagar.a.kam...@intel.com>
> Tested-by: Sagar Kamble <sagar.a.kam...@intel.com>
> ---
>  drivers/gpu/drm/i915/intel_sprite.c | 6 ------
>  1 file changed, 6 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_sprite.c 
> b/drivers/gpu/drm/i915/intel_sprite.c
> index 62b9f84..e7e4c55 100644
> --- a/drivers/gpu/drm/i915/intel_sprite.c
> +++ b/drivers/gpu/drm/i915/intel_sprite.c
> @@ -769,9 +769,6 @@ intel_update_plane(struct drm_plane *plane, struct 
> drm_crtc *crtc,
>       max_scale = intel_plane->max_downscale << 16;
>       min_scale = intel_plane->can_scale ? 1 : (1 << 16);
>  
> -     drm_rect_rotate(&src, fb->width << 16, fb->height << 16,
> -                     intel_plane->rotation);
> -
>       hscale = drm_rect_calc_hscale_relaxed(&src, &dst, min_scale, max_scale);
>       BUG_ON(hscale < 0);
>  
> @@ -810,9 +807,6 @@ intel_update_plane(struct drm_plane *plane, struct 
> drm_crtc *crtc,
>                                    drm_rect_width(&dst) * hscale - 
> drm_rect_width(&src),
>                                    drm_rect_height(&dst) * vscale - 
> drm_rect_height(&src));
>  
> -             drm_rect_rotate_inv(&src, fb->width << 16, fb->height << 16,
> -                                 intel_plane->rotation);
> -
>               /* sanity check to make sure the src viewport wasn't enlarged */
>               WARN_ON(src.x1 < (int) src_x ||
>                       src.y1 < (int) src_y ||
> -- 
> 1.8.5
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
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