From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.7 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7A5E9C433E0 for ; Wed, 24 Feb 2021 09:13:20 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 2684A64D79 for ; Wed, 24 Feb 2021 09:13:20 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234454AbhBXJNO (ORCPT ); Wed, 24 Feb 2021 04:13:14 -0500 Received: from mout.kundenserver.de ([217.72.192.73]:53557 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234538AbhBXJLp (ORCPT ); Wed, 24 Feb 2021 04:11:45 -0500 Received: from mail.cetitecgmbh.com ([87.190.42.90]) by mrelayeu.kundenserver.de (mreue107 [213.165.67.113]) with ESMTPSA (Nemesis) id 1MRnXY-1lPOpV2sAs-00TCfi; Wed, 24 Feb 2021 10:08:27 +0100 Received: from pflvmailgateway.corp.cetitec.com (unknown [127.0.0.1]) by mail.cetitecgmbh.com (Postfix) with ESMTP id 732881E01E7; Wed, 24 Feb 2021 09:08:26 +0000 (UTC) X-Virus-Scanned: amavisd-new at cetitec.com Received: from mail.cetitecgmbh.com ([127.0.0.1]) by pflvmailgateway.corp.cetitec.com (pflvmailgateway.corp.cetitec.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Wonho7DAe5NY; Wed, 24 Feb 2021 10:08:26 +0100 (CET) Received: from pflmari.corp.cetitec.com (67-usr-pf-main.vpn.it.cetitec.com [10.8.5.67]) by mail.cetitecgmbh.com (Postfix) with ESMTPSA id F367C1E01E6; Wed, 24 Feb 2021 10:08:25 +0100 (CET) Received: by pflmari.corp.cetitec.com (Postfix, from local account) Date: Wed, 24 Feb 2021 10:08:25 +0100 From: Alex Riesen To: Ilia Mirkin Cc: Lyude Paul , Pankaj Bharadiya , David Airlie , nouveau , James Jones , LKML , dri-devel , Jeremy Cline , Ben Skeggs , Dave Airlie Subject: Re: [PATCH 2/3] drm/nouveau/kms/nv50-: Report max cursor size to userspace Message-ID: References: <20210119015415.2511028-1-lyude@redhat.com> <20210119015415.2511028-2-lyude@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Provags-ID: V03:K1:cGed9gPj+JIzUf3H2cRPnpC8QpnkW70X803lIk1/AQ44QAF3SiG g00oP6MNRxFYbzW5J6kmzHnCpI4c/LDd38xnOztL0+JpRVTlNJ+ysrNYIMSQHb8oAhSYPrG dMIhKmyX+E84qo9WDcwMMFo5MQai1bLvFCFIoioHlAmS1ZHLwhW+bLLBrylJHWbLeHKhJ20 vmGWGvRrwXt6K8J4SJBTw== X-UI-Out-Filterresults: notjunk:1;V03:K0:7bn3tjKrTjE=:rZQSYL5WOWbhb84kuRdpMs Y1NbTu4ibzvvwGDO/ld8k+duIBAKUuVMUTil71dDP/n0iSMt2a9iv5v7n1Q9lv/XFD2psI7yM q0g8MLqyWRTks9I95NkXTgRA/0WP+R7nyR8eErOuHgyNu4NB60s66nogT2iR7Y0qPZW6WFvY1 vWa+TlbEFmORlXryDe0SLeoZR7Sr1+zCAINHL+Fu7PtOkU0rsP8Wpcyat3ysrtSXtbTNa6ItM UDs3aogTL8XlBJGle1cbKCvQheUnGR0uG58pc0wXXee3zwUPS2VOTIC26viatLAkqrGE0hGaL Xu4B6YM+CzPrb3bBpNJgHXjIEgR86T7yB8y2x1LNjF54vkFE/6GSnI58sAj30dCDQjAEh6ZBT ohmnmwKhZwYoqq3H1eqtDexX7JXUyAua3wmS1bkiyBzI1b7FeDStj19HhO9JpmZAhUcPnpRJ4 evW7IlubQA== Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Ilia Mirkin, Tue, Feb 23, 2021 19:13:59 +0100: > On Tue, Feb 23, 2021 at 11:23 AM Alex Riesen wrote: > > > > $ xrandr --listproviders > > Providers: number : 1 > > Provider 0: id: 0x68 cap: 0x7, Source Output, Sink Output, Source Offload crtcs: 4 outputs: 5 associated providers: 0 name:nouveau > > > > And yes, the cursor looks good in v5.11 even without reverting the commit. > > FWIW it's not immediately apparent to me what grave error modesetting > is committing in setting the cursor. The logic looks perfectly > reasonable. It's not trying to be fancy with rendering the cursor/etc. > > The one thing is that it's using drmModeSetCursor2 which sets the > hotspot at the same time. But internally inside nouveau I think it > should work out to the same thing. Perhaps setting the hotspot, or > something in that path, doesn't quite work for 256x256? [Again, no > clue what that might be.] > > It might also be worthwhile just testing if the 256x256 cursor works > quite the way one would want. If you're interested, grab libdrm, > there's a test called 'modetest', which has an option to enable a > moving cursor (-c iirc). It's hard-coded to 64x64, so you'll have to > modify it there too (and probably change the pattern from plain gray > to any one of the other ones). I am interested, so I did. If I start the test without X running, the sprite of 256x256 cursor always contained horizontal lines across it, both with commit reverted and vanilla v5.11. Similarly, the 64x64 cursor has no lines across it in both kernels. The test does not seem to work at all if there is an X server running (using modesetting driver): modetest complained about permission denied to set the mode, and just sits there, drawing nothing on the displays. So I could not run the test in the environment of original problem. Am I starting it correctly? Is the change in modetest.c correct? $ ./modetest -c |grep '^[0-9]\|preferred' 85 86 connected LVDS-1 340x190 13 86 #0 1920x1080 60.01 1920 2010 2070 2226 1080 1086 1095 1142 152540 flags: phsync, nvsync; type: preferred, driver 87 89 connected DP-1 470x300 18 88, 89 #0 1680x1050 59.88 1680 1728 1760 1840 1050 1053 1059 1080 119000 flags: phsync, nvsync; type: preferred, driver 90 0 disconnected DP-2 0x0 0 91, 92 93 95 connected DP-3 520x320 10 94, 95 #0 1920x1200 59.95 1920 1968 2000 2080 1200 1203 1209 1235 154000 flags: phsync, nvsync; type: preferred, driver 96 0 disconnected VGA-1 0x0 0 97 $ ./modetest -s 85:1920x1080 -s 93:1920x1200 -s 87:1680x1050 -C trying to open device 'i915'...failed trying to open device 'amdgpu'...failed trying to open device 'radeon'...failed trying to open device 'nouveau'...done setting mode 1920x1080-60.01Hz on connectors 85, crtc 50 starting cursor cursor stopped This is the change on top of 1225171b (master): diff --git a/tests/modetest/modetest.c b/tests/modetest/modetest.c index fc75383a..cdba7b4e 100644 --- a/tests/modetest/modetest.c +++ b/tests/modetest/modetest.c @@ -1730,14 +1730,14 @@ static void set_cursors(struct device *dev, struct pipe_arg *pipes, unsigned int int ret; /* maybe make cursor width/height configurable some day */ - uint32_t cw = 64; - uint32_t ch = 64; + uint32_t cw = 256; + uint32_t ch = 256; /* create cursor bo.. just using PATTERN_PLAIN as it has * translucent alpha */ bo = bo_create(dev->fd, DRM_FORMAT_ARGB8888, cw, ch, handles, pitches, - offsets, UTIL_PATTERN_PLAIN); + offsets, UTIL_PATTERN_SMPTE); if (bo == NULL) return;