Message ID | 1391699093-12625-13-git-send-email-sagar.a.kamble@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Thu, Feb 06, 2014 at 08:34:53PM +0530, sagar.a.kamble@intel.com wrote: > From: Sagar Kamble <sagar.a.kamble@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.kamble@intel.com> > Tested-by: Sagar Kamble <sagar.a.kamble@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
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 ||