From patchwork Tue Jun 14 10:13:50 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Marc-Andr=C3=A9_Lureau?= X-Patchwork-Id: 9175431 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id E90436075D for ; Tue, 14 Jun 2016 10:13:56 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id D704928047 for ; Tue, 14 Jun 2016 10:13:56 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id CA342282DC; Tue, 14 Jun 2016 10:13:56 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.1 required=2.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, FREEMAIL_FROM, RCVD_IN_DNSWL_MED, T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 81FCA28047 for ; Tue, 14 Jun 2016 10:13:56 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id D5F0B6E706; Tue, 14 Jun 2016 10:13:54 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-vk0-x241.google.com (mail-vk0-x241.google.com [IPv6:2607:f8b0:400c:c05::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id 737CF6E702 for ; Tue, 14 Jun 2016 10:13:52 +0000 (UTC) Received: by mail-vk0-x241.google.com with SMTP id v188so15082138vkf.3 for ; Tue, 14 Jun 2016 03:13:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=0/VQj6Yc73HScJuBeAhbdcv5FbLHbDjE7eYZwm2mWBw=; b=cxWyYIQL6JWP4rTS39inrK5p+vpsqdnv7oKdwXUB89KbHyh6tt9kH80R0+JOcYal3v 6G61Nnnrcj/1u1pUgkXG6DOnI6Oqgi8+ZntgGkNIgZpqdxDMazrYssmubRaUnm/IdAqp igzJ12z9qJg/i1nvCFVmKXdvtqfXlcny6VLAgWAo9GEmfOhqwBIFucgWoXSsjraOHsw0 /afTZfSzUBxBDsADgsa/RuKH6vuIw0/E9KEDmOu4HAOeBibw34TiOMJ8Rbx4S0BuMH8m pvyYblaOCaajWi+T6RwwGFWQF5SH0ZLHs6S+5gHs9u6v7EFa7zJFi2q1/tCjW96x+Mtf C58g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=0/VQj6Yc73HScJuBeAhbdcv5FbLHbDjE7eYZwm2mWBw=; b=lCC+lJSxRws+Q/6H+AEpr3Nodfby0VU48C0bqqTgdEwD2TaIHkDRM3DOMXU1jApBTy P+lObW+UVbI612B1ZNB8AFHUbCuE6nFgtBP0zCQaR5FfOCd9MoBzdoj0ikybI94kxUXq /qU1TnDKQhQ0N7bOsbsqeq9r+p8trZi1g+m7DzE9hkouOpbfAcA3Hs27ogLwMMMkSmSZ bfzDhKX4WAb2ZQhjvmMSCiHTKhlj8+2oq8//T7gNrGtNLTMkWsh5N8owsRGG8MAY6VZi oaLBHXLbW+sH3zI8fgsIQGzs8c/MCXqXPRMMdBETdjikuRetx44vB2ep9OfMonF9KDFw CS7g== X-Gm-Message-State: ALyK8tItlj6kABINNJsRtWSFQZ3qf15fdQ26cLD17bzByEovU/lxHcfhf4tQvgbG07S8JElGMLsGUfne4z9dUg== X-Received: by 10.176.1.67 with SMTP id 61mr8655912uak.1.1465899231012; Tue, 14 Jun 2016 03:13:51 -0700 (PDT) MIME-Version: 1.0 Received: by 10.159.34.129 with HTTP; Tue, 14 Jun 2016 03:13:50 -0700 (PDT) In-Reply-To: <1464699172-26755-1-git-send-email-kraxel@redhat.com> References: <1464699172-26755-1-git-send-email-kraxel@redhat.com> From: =?UTF-8?B?TWFyYy1BbmRyw6kgTHVyZWF1?= Date: Tue, 14 Jun 2016 12:13:50 +0200 Message-ID: Subject: Re: [PATCH] virtio-gpu: use src not crtc To: Gerd Hoffmann Cc: open list , dri-devel@lists.freedesktop.org, "open list:VIRTIO GPU DRIVER" X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" X-Virus-Scanned: ClamAV using ClamSMTP Hi On Tue, May 31, 2016 at 2:52 PM, Gerd Hoffmann wrote: > Pick up the correct source rectangle from framebuffer. > Without this multihead setups are not working correctly. > > Signed-off-by: Gerd Hoffmann Reviewed-by: Marc-André Lureau Additionally, I had to modify the page_flip() function to take the plane source coordinates for virgl/3d multihead to work. Feel free to squash. > 1 file changed, 18 insertions(+), 13 deletions(-) > > diff --git a/drivers/gpu/drm/virtio/virtgpu_plane.c b/drivers/gpu/drm/virtio/virtgpu_plane.c > index b7778a7..925ca25 100644 > --- a/drivers/gpu/drm/virtio/virtgpu_plane.c > +++ b/drivers/gpu/drm/virtio/virtgpu_plane.c > @@ -85,27 +85,32 @@ static void virtio_gpu_primary_plane_update(struct drm_plane *plane, > if (bo->dumb) { > virtio_gpu_cmd_transfer_to_host_2d > (vgdev, handle, 0, > - cpu_to_le32(plane->state->crtc_w), > - cpu_to_le32(plane->state->crtc_h), > - plane->state->crtc_x, plane->state->crtc_y, NULL); > + cpu_to_le32(plane->state->src_w >> 16), > + cpu_to_le32(plane->state->src_h >> 16), > + plane->state->src_x >> 16, > + plane->state->src_y >> 16, NULL); > } > } else { > handle = 0; > } > > - DRM_DEBUG("handle 0x%x, crtc %dx%d+%d+%d\n", handle, > + DRM_DEBUG("handle 0x%x, crtc %dx%d+%d+%d, src %dx%d+%d+%d\n", handle, > plane->state->crtc_w, plane->state->crtc_h, > - plane->state->crtc_x, plane->state->crtc_y); > + plane->state->crtc_x, plane->state->crtc_y, > + plane->state->src_w >> 16, > + plane->state->src_h >> 16, > + plane->state->src_x >> 16, > + plane->state->src_y >> 16); > virtio_gpu_cmd_set_scanout(vgdev, output->index, handle, > - plane->state->crtc_w, > - plane->state->crtc_h, > - plane->state->crtc_x, > - plane->state->crtc_y); > + plane->state->src_w >> 16, > + plane->state->src_h >> 16, > + plane->state->src_x >> 16, > + plane->state->src_y >> 16); > virtio_gpu_cmd_resource_flush(vgdev, handle, > - plane->state->crtc_x, > - plane->state->crtc_y, > - plane->state->crtc_w, > - plane->state->crtc_h); > + plane->state->src_x >> 16, > + plane->state->src_y >> 16, > + plane->state->src_w >> 16, > + plane->state->src_h >> 16); > } > > static void virtio_gpu_cursor_plane_update(struct drm_plane *plane, > -- > 1.8.3.1 > --- a/drivers/gpu/drm/virtio/virtgpu_display.c +++ b/drivers/gpu/drm/virtio/virtgpu_display.c @@ -68,11 +68,16 @@ static int virtio_gpu_page_flip(struct drm_crtc *crtc, 0, 0, NULL); } virtio_gpu_cmd_set_scanout(vgdev, output->index, handle, - crtc->mode.hdisplay, - crtc->mode.vdisplay, 0, 0); - virtio_gpu_cmd_resource_flush(vgdev, handle, 0, 0, - crtc->mode.hdisplay, - crtc->mode.vdisplay); + plane->state->src_w >> 16, + plane->state->src_h >> 16, + plane->state->src_x >> 16, + plane->state->src_y >> 16); + + virtio_gpu_cmd_resource_flush(vgdev, handle, + plane->state->src_x >> 16, + plane->state->src_y >> 16, + plane->state->src_w >> 16, + plane->state->src_h); > --- > drivers/gpu/drm/virtio/virtgpu_plane.c | 31 ++++++++++++++++++-------------