From patchwork Wed Oct 3 12:31:01 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Daniel Vetter X-Patchwork-Id: 10624749 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 94B2C174A for ; Wed, 3 Oct 2018 12:31:13 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 847DA28ABE for ; Wed, 3 Oct 2018 12:31:13 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 7697B28AD6; Wed, 3 Oct 2018 12:31:13 +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=-5.2 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 4D0C728AC8 for ; Wed, 3 Oct 2018 12:31:12 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 1FD0B6E0C4; Wed, 3 Oct 2018 12:31:11 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-ed1-x541.google.com (mail-ed1-x541.google.com [IPv6:2a00:1450:4864:20::541]) by gabe.freedesktop.org (Postfix) with ESMTPS id BC35D6E0C4 for ; Wed, 3 Oct 2018 12:31:09 +0000 (UTC) Received: by mail-ed1-x541.google.com with SMTP id g32-v6so5127985edg.13 for ; Wed, 03 Oct 2018 05:31:09 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=frg9AgW6LHUPPAVs5H1o3M9AMszPiHx8EtyQJvx6t6w=; b=WYgZC/J8tLburZ6umoJt/0j3YFMg7XtPpkul4Upd/+ckhuKF/zBvqFXrS8H5JcKLrN Ja4l2YkNWTDT5KLiOkIQpMIrxTnnaJwgUSvA2N6vM/5+RICwtWVyhybIlplkXUDRXakw rhh55mfRDmsDs65MMAt7Hxg/Jn5jFffXoxhiNAZ4nJhC2lllxrGQvwtbkw3/CiiLYuCp vH5aKr8ejlLdW46Ly2OYanOfzSXP7BEAO929gmxZ0wGEEbZVFQ+iIizTSM2XYVIrV20o 0lis5ZANXGLGDDrXDtDEqALSOHXIibGNjYHJbCqikdT+kQhlN+3f6q+28nBYVb1hxbwz thGA== X-Gm-Message-State: ABuFfoiQQzLrpTqoVBgTXXnbNfPLujKzOE6xaD12NIEEP5ZQJle0jolC 9PnZ346BiBgP/CMWNlXLx0qDs84qpuU= X-Google-Smtp-Source: ACcGV618VR8oKrbnqKFO96VXYiVErKnO31H5OGBVEnde7o2GjYHkdcWw71mzpQjulS31TXR+uh7EZg== X-Received: by 2002:a17:906:3915:: with SMTP id f21-v6mr1615501eje.159.1538569867934; Wed, 03 Oct 2018 05:31:07 -0700 (PDT) Received: from phenom.ffwll.local ([2a02:168:569e:0:3106:d637:d723:e855]) by smtp.gmail.com with ESMTPSA id g52-v6sm516314edb.91.2018.10.03.05.31.06 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 03 Oct 2018 05:31:06 -0700 (PDT) From: Daniel Vetter To: DRI Development Subject: [PATCH] drm/vkms: Extend todo Date: Wed, 3 Oct 2018 14:31:01 +0200 Message-Id: <20181003123101.28784-1-daniel.vetter@ffwll.ch> X-Mailer: git-send-email 2.19.0.rc2 MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Haneen Mohammed , Rodrigo Siqueira , Daniel Vetter , Daniel Vetter , Sean Paul Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" X-Virus-Scanned: ClamAV using ClamSMTP Typed up all the items Rodrigo capture at the vkms workshop at xdc2018: https://etherpad.net/p/vkms_todo Signed-off-by: Daniel Vetter Cc: Gustavo Padovan Cc: Maarten Lankhorst Cc: Sean Paul Cc: Haneen Mohammed Cc: Rodrigo Siqueira --- Documentation/gpu/vkms.rst | 87 +++++++++++++++++++++++++++++++++++++- 1 file changed, 85 insertions(+), 2 deletions(-) diff --git a/Documentation/gpu/vkms.rst b/Documentation/gpu/vkms.rst index 0a6ea6216e41..80cbe0759d3c 100644 --- a/Documentation/gpu/vkms.rst +++ b/Documentation/gpu/vkms.rst @@ -10,8 +10,8 @@ TODO ==== -CRC API -------- +CRC API Improvements +-------------------- - Optimize CRC computation ``compute_crc()`` and plane blending ``blend()`` @@ -22,3 +22,86 @@ CRC API - Add igt test to check extreme alpha values i.e. fully opaque and fully transparent (intermediate values are affected by hw-specific rounding modes). + +Vblank issues +------------- + +Some IGT testcases are failing. Need to analyze why and fix the issues: + +- plain-flip-fb-recreate +- plain-flip-ts-check +- flip-vs-blocking-wf-vblank +- plain-flip-fb-recreate-interruptible +- flip-vs-wf_vblank-interruptible + +Runtime Configuration +--------------------- + +We want to be able to reconfigure vkms instance without having to reload the +module. Use/Test-cases: + +- Hotplug/hotremove connectors on the fly (to be able to test DP MST handling of + compositors). + +- Configure planes/crtcs/connectors (we'd need some code to have more than 1 of + them first). + +- Change output configuration: Plug/unplug screens, change EDID, allow changing + the refresh rate. + +Currently proposed solution is to expose vkms configuration through configfs. +All existing module options should be supported through configfs too. + +Add Plane Features +------------------ + +There's lots of plane features we could add support fort: + +- Real overlay planes, not just cursor. + +- Full alpha blending on all planes. + +- Rotation, scaling. + +- Additional buffer formats, especially YUV formats for video like NV12. + Low/high bpp RGB formats would also be interesting. + +- Async updates (currently only possible on cursor plane using the legacy cursor + api). + +For all of these we also want to review the igt test coverage and make sure all +relevant igt testcases work on vkms. + +Writeback support +----------------- + +Currently vkms only computes a CRC for each frame. Once we have additional plane +features, we could write back the entire composited frame, and expose it as: + +- Writeback connector. This is useful for testing compositors if you don't have + hardware with writeback support. + +- As a v4l device. This is useful for debugging compositors on special vkms + configurations, so that developers see what's really going on. + +Prime Buffer Sharing +-------------------- + +We already have vgem, which is a gem driver for testing rendering, similar to +how vkms is for testing the modeset side. Adding buffer sharing support to vkms +allows us to test them together, to test synchronization and lots of other +features. Also, this allows compositors to test whether they work correctly on +SoC chips, where the display and rendering is very often split between 2 +drivers. + +Output Features +--------------- + +- Variable refresh rate/freesync support. This probably needs prime buffer + sharing support, so that we can use vgem fences to simulate rendering in + testing. Also needs support to specify the EDID. + +- Add support for link status, so that compositors can validate their runtime + fallbacks when e.g. a Display Port link goes bad. + +- All the hotplug handling describe under "Runtime Configuration".