On Wed, Nov 01, 2017 at 08:29:18PM +0200, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrj...@linux.intel.com>
> 
> Try to fix the code to actually clip the plane to the crtc bounds
> instead of the user provided crtc coordinates (which would be a no-op
> since those are exactly the coordinates before clipping).
> 
> Cc: VMware Graphics <linux-graphics-maintai...@vmware.com>
> Cc: Sinclair Yeh <s...@vmware.com>
> Cc: Thomas Hellstrom <thellst...@vmware.com>
> Signed-off-by: Ville Syrjälä <ville.syrj...@linux.intel.com>

I kinda wonder whether we shouldn't push this down into the helper ...

Either way, Reviewed-by: Daniel Vetter <daniel.vet...@ffwll.ch>

> ---
>  drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 23 +++++++++++++----------
>  1 file changed, 13 insertions(+), 10 deletions(-)
> 
> diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c 
> b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
> index 515b67783a41..efa41c086198 100644
> --- a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
> +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
> @@ -441,20 +441,23 @@ vmw_du_cursor_plane_atomic_update(struct drm_plane 
> *plane,
>  int vmw_du_primary_plane_atomic_check(struct drm_plane *plane,
>                                     struct drm_plane_state *state)
>  {
> +     struct drm_crtc_state *crtc_state = NULL;
>       struct drm_framebuffer *new_fb = state->fb;
> -     struct drm_rect clip = {
> -             .x1 = state->crtc_x,
> -             .y1 = state->crtc_y,
> -             .x2 = state->crtc_x + state->crtc_w,
> -             .y2 = state->crtc_y + state->crtc_h,
> -     };
> +     struct drm_rect clip = {};
>       int ret;
>  
> -     ret = drm_plane_helper_check_state(state, &clip,
> -                                         DRM_PLANE_HELPER_NO_SCALING,
> -                                         DRM_PLANE_HELPER_NO_SCALING,
> -                                         false, true);
> +     if (state->crtc)
> +             crtc_state = drm_atomic_get_new_crtc_state(state->state, 
> state->crtc);
>  
> +     if (crtc_state && crtc_state->enable) {
> +             clip.x2 = crtc_state->adjusted_mode.hdisplay;
> +             clip.y2 = crtc_state->adjusted_mode.vdisplay;
> +     }
> +
> +     ret = drm_plane_helper_check_state(state, &clip,
> +                                        DRM_PLANE_HELPER_NO_SCALING,
> +                                        DRM_PLANE_HELPER_NO_SCALING,
> +                                        false, true);
>  
>       if (!ret && new_fb) {
>               struct drm_crtc *crtc = state->crtc;
> -- 
> 2.13.6
> 
> _______________________________________________
> dri-devel mailing list
> dri-de...@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to