On Wed, Nov 01, 2017 at 08:29:18PM +0200, Ville Syrjala wrote: > From: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> > > 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-maintainer@xxxxxxxxxx> > Cc: Sinclair Yeh <syeh@xxxxxxxxxx> > Cc: Thomas Hellstrom <thellstrom@xxxxxxxxxx> > Signed-off-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> I kinda wonder whether we shouldn't push this down into the helper ... Either way, Reviewed-by: Daniel Vetter <daniel.vetter@xxxxxxxx> > --- > 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-devel@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/dri-devel -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel