[Intel-gfx] [PATCH 3/5] drm/vmwgfx: Try to fix plane clipping
Daniel Vetter
daniel at ffwll.ch
Thu Nov 2 10:12:09 UTC 2017
On Wed, Nov 01, 2017 at 08:29:18PM +0200, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala at 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-maintainer at vmware.com>
> Cc: Sinclair Yeh <syeh at vmware.com>
> Cc: Thomas Hellstrom <thellstrom at vmware.com>
> Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
I kinda wonder whether we shouldn't push this down into the helper ...
Either way, Reviewed-by: Daniel Vetter <daniel.vetter at 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-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
More information about the Intel-gfx
mailing list