From nobody Sun Oct 5 00:09:22 2025 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2079.outbound.protection.outlook.com [40.107.223.79]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 667522E4255 for ; Mon, 11 Aug 2025 21:57:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.223.79 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754949435; cv=fail; b=pAB6oMDyJLJTL6lWxFchQ9pJd8aHVtyFp38/esfMynKqGLClaLVlF8Tdx7TEwV+/UudEDhe4+VIwh6bivXeYpE8BRyMjP4FN+V8Lzs+CrzkeE17mmwgt+ydGZbcCu503mPzGvQNyZn5WVW+plV98XoBzmR7kq19PqaG39z2pYjo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754949435; c=relaxed/simple; bh=kJAIo6G8dD9VBzttEwTGNKG+6lP08vmOCJJD4ii9zmc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=q3cFQH/K0HPKKyqZ1IypEjTBtHl4AXVyZnW4S1TfAFmwOrh9Prz9NyYTDVHk9+t6EGfBowHEHfyTsCnvm8Zu2W0PJpUlqo4cTim/2Waa8Laj2CbYxPP1A2H4utY2o/LKQ1D9GrtW8kD8C4neO81I6WJOl4eChSBinKn0A7SVpFY= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=P1ySX2dl; arc=fail smtp.client-ip=40.107.223.79 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="P1ySX2dl" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=My9pWyPbH0gkdXyd3jTWYPtNg7BmIfguzcTQfTfVOroaz3S7u2Z/7SXpAl8XNdqZnar76SYDv4NAl+VLIkorj1ZsbpyYCp4fw/xiJCm5pCcKg2jS84G5kuKJbjV86ATt6izmiOIcWNKxaaAng3J4j9nEBfLSCEIy7wldXF3JONEGZ0qmolNmoDPo6gBkEjA38gMdh2pwohPH6wBdbp99G+a6sG8ybep5cflHpc1q9iikDkw15itAMTeKDYgUdl9ZeDAY9thV7vAryvtbnbxN+Cu25hIGAHJB90UzAFHF7SXb7JXB7XaIlbK/iDLQCJo+1EhOfbiym1a6wRBo33wzWQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=P62SQeRITPq6AjqdHqJbZ7lVGt4MzG0jNVLRzKk90js=; b=TwKzatdbQ3Z68cITt1sa6s+6PrE9iz4sPrqIEy5J6W6Dftk+AeAd0yg8zepSRYzDFWgYCqubXxIjYRkQuXqhYMOHvzJ/gofqF6wcocn1RmAK/QKy1vfa1E7XK+ERcpYqGRCefi/pfAOYkJJg9cPFp1zbL9GHntxFrIFFQ1QOQWdNf4ps5qJy3HRHhow392YSbIGPG/dT92ynoI18NgivAfmTv7wEoWnJwQrQ1LajEFERGnziDrQ4i6iqcx1Z1CIlOBZk3ePQ0b/PMFsnOnLvfrkpaw/KKlFcv4aCuHeiZ3ckkPppBxuuTau+ddO4FcbxyIoEypQi6FgOciiGIVOaVw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=P62SQeRITPq6AjqdHqJbZ7lVGt4MzG0jNVLRzKk90js=; b=P1ySX2dljQ5oViAtctvuEVBOc2dvn8lEbtTN/athB+ZnOoOX84IKPxST+LC2ZDlbYnRJ/exWLYZ8jzDTJUpKvlDZBJlCflORFzxgIH2+M7RXUSlL5IYJuNtEt2YLVBRX6zLr2xLVHvfi5sO9XYlEQSVQMmtBOckbVLF4elyf78ey/JXcHdbQItnP+KxY0I0e7jtD3mkB5K0lH3oYKoWKNqB6WmOXS4XJFKAOjozNx2ylSTX99jAbLPEFWti+jMTdVfUomNXGvwczKk3TcfhfnJcuVpsA0FoQ5jyUSnN90EJIJCMHmknUE9vYQ3YfNQogzAjhz+CKCk0ZaInlc04Oyw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from SN7PR12MB6691.namprd12.prod.outlook.com (2603:10b6:806:271::9) by MN2PR12MB4207.namprd12.prod.outlook.com (2603:10b6:208:1d9::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.21; Mon, 11 Aug 2025 21:57:10 +0000 Received: from SN7PR12MB6691.namprd12.prod.outlook.com ([fe80::d15a:729a:9a36:4376]) by SN7PR12MB6691.namprd12.prod.outlook.com ([fe80::d15a:729a:9a36:4376%7]) with mapi id 15.20.9009.018; Mon, 11 Aug 2025 21:57:10 +0000 From: James Jones To: Danilo Krummrich , Lyude Paul , Faith Ekstrand Cc: nouveau@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, David Airlie , Simona Vetter , Joel Fernandes , James Jones Subject: [PATCH 1/3] drm: define NVIDIA DRM format modifiers for GB20x Date: Mon, 11 Aug 2025 15:00:15 -0700 Message-ID: <20250811220017.1337-2-jajones@nvidia.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20250811220017.1337-1-jajones@nvidia.com> References: <20250811220017.1337-1-jajones@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BYAPR06CA0036.namprd06.prod.outlook.com (2603:10b6:a03:d4::49) To SN7PR12MB6691.namprd12.prod.outlook.com (2603:10b6:806:271::9) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN7PR12MB6691:EE_|MN2PR12MB4207:EE_ X-MS-Office365-Filtering-Correlation-Id: 2104f5cf-2a2a-425a-2cfa-08ddd9220597 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?fTttguq1ncZm7lHA00M7Z8tGN8xpaPwSSn30+B0TTDQ/ydmUWv/0Aep++dRu?= =?us-ascii?Q?qAKvqPFWXiFW5gFLQ+J3XJ6Sk7vRAC+H6Wp4Xse2LdtlHPkuNIE2OBFWf7X0?= =?us-ascii?Q?DCyuJ3yfDKLCV/AzZVgGjBvEjdvvuY/S1BrTzUce67wScNlQ978ldQAF36R3?= =?us-ascii?Q?49qls6jKzsP2n12/yBlCoqLbdSzfZ+z3HX92/gReo929vShcDbpT8aBgYTmm?= =?us-ascii?Q?65gczKYXKA5tXulm05s93LfW6w2Bp2EZl3k2NYu4UeO3YsnSZzBqFTDPTOdc?= =?us-ascii?Q?W9S5JUqDvcsomQpWmMrASlSs45VzjxgHt5s5Fj6n0MMwKDwnmz3dfOMWqhUT?= =?us-ascii?Q?e+pAE/7vmJbEkUUrriq24xMVxrehjrU1JW4cL64gMP2dsojaTMZ5/2LhSLeQ?= =?us-ascii?Q?Mg4oobceAeA3jatWeV9+du9z395eE2MgDZ6MZL7Wq6WcD4ifW2KptJB9Ml1j?= =?us-ascii?Q?mr2rMSgZ3XeX2a7fg9qduASezHCuq4g1y9l1ZgvdX46HxXNnO4xfAs36kCcv?= =?us-ascii?Q?qF222qbqiiWCYrPt8bV5yiKXEatymFJEoFabxb+6cxOGvT3DhCEyNXzYRJfE?= =?us-ascii?Q?/2E8cXN5Q3ndmbB8b+AFwITbKHNHz9hy7zAKTSNl0sRWnXo/XDjPr4pmaOmM?= =?us-ascii?Q?dJOQAV3qNSU714Cyh6npuGfmsuoNjPUIXxP28MQy++Xjv9KXxFb5O6xAmhD6?= =?us-ascii?Q?rYF5wTXtWNCFSHnjTbSuUSDkIqTBG5swavtdAhdsXRVdL75YDUdxnozuFHwY?= =?us-ascii?Q?u3e0E2SrnjBocBIGk208G9s7TqMC/p7Vj5AY4T6kzfGzDbguLqyuZ1aYJv/h?= =?us-ascii?Q?yHMpneWGW8rFZwilqp/PRBkPQsIG7R77Q3czbOfpq0diQREFPK599LIpjN/v?= =?us-ascii?Q?jsDjm2UQSJBPV4YPAMiz/ayhzNkP9TeWrh1q9Es/Ay5LOV7VQ3U3wa44AZQk?= =?us-ascii?Q?klSjM8b8sUauVGI2HPKrdLRg0tRMzkxcyBx/9A6XXVBxUrHfM1Bc/qsXngbU?= =?us-ascii?Q?JofMhMRsA+LjOGXHmbKF2etjjxuLUfAsGG50cs/G3EoMAPyi2PNL6Yn/IIMT?= =?us-ascii?Q?J2bBEL9NVc5nlW2/ORjuO4AsME9aU5C8XVfhQPDGjKIyIlVQv0ZAf3RAxa78?= =?us-ascii?Q?KSu5vndVvoCsaBuo5ejaJRplRx++fWrD2Q4vka8rmYOQIw42MAY373UFnLkK?= =?us-ascii?Q?XrAA8NlvYbtLCftsvVce34plxHGRGQyQdMML3soZ0Bdh0Z5CrsqwOi3GKonc?= =?us-ascii?Q?tQDtibb0mqkptWuyEL3Ic7zOXXfSwbboqddRROhz+/Hy+lv3PoSa5cAIj5l7?= =?us-ascii?Q?RADddZz1evTQSjh3GMgvgYFCORKkasMgn0dpoUd+9gWd/Z8C/OXMAW0xbJyT?= =?us-ascii?Q?qchM7lK3avPD/x14SAqGv7Ru8FFMMYf7Bfz7s45xKvbv9Q9RZ684i4c0hyyl?= =?us-ascii?Q?K+I3nGm8HvM=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN7PR12MB6691.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?YjqA7MWQDqSiP8H/VU5wCuIM1U+TEjyXrEWb0V1rtLaxqQfoofPFq/g36CqF?= =?us-ascii?Q?fKVf0ZgzY0xSN7nKfzJxJm9TZOn4XrONvVK494zvj7jrLN57OVYOvd9t8ikP?= =?us-ascii?Q?mh8DIi3Ko2HHw5cVL4ZoQQxjiJxVcg2RKafiI6Rdjrqs95Kua4nPpoOQOEp9?= =?us-ascii?Q?Nz07rVo28YpQ73SX8zMXkDMEOu9iNP7+EbOgVWTMl9s0qgZdideOH8gcagEc?= =?us-ascii?Q?nxtPAm0M2dOPVNhyd5mo0U5eA70qwbuWgBoWUFZQ1uSNLd3XFaYNaAm4NO8P?= =?us-ascii?Q?xQ/rXmDEutSO53C9G+edN5LlWlCbFn3FqeqmZMR8zhCWz7RNdwBIfjVo4vWr?= =?us-ascii?Q?vE0Jsn3zAMD1kJB8ktxYWK+Y0eyeRVIzmHE+z2Bxq7KoN0KLEVouH6QJ/uN6?= =?us-ascii?Q?DsBogByxr6x2Tsujr50qirYIJ4GcWQ9itIg+FgnbVzl2td6heSlv3r+qUZyV?= =?us-ascii?Q?Btat6NsOjHaW3PEHvob+RuqXUpfz/6UbtouuLtwImQrsnUB4BXKYYvhggaAl?= =?us-ascii?Q?G2AJpc4eSJjBzswJNAbmUW4lQew/XURw3upTx2STyfX1IhVMr7pgMXYZ2Oo8?= =?us-ascii?Q?yyaUBtAacIP9+hs7cS3lu/ugKwoN0xfRB5Pp7Tcxoz8mzhE3A4M9GqrPHEQW?= =?us-ascii?Q?QJ9S1m919KgvM9McTaSp5cRrebEJ6+3Ri5lVitlvvHunZwXIwNxJ1KsI9zV5?= =?us-ascii?Q?P+KImagH+WMyp30k/gLN5HU7WCD3bKV0wl+Qugu/9dHN7wFJ74C4MGdA3+Vv?= =?us-ascii?Q?FFm7eI5QIXtCIfUv7i88g3F3Q0c3cmgcrR0etqVMq1egR5CNJmnuwZXsemFT?= =?us-ascii?Q?75H1pB78A433e21aF+4AIBxXu02Rzv7DBi+ddeTxGxAIFAXRuHU50d3ZYP6j?= =?us-ascii?Q?zLiosF4FVUH4zm9UIHVK/GbUI3AxB3hB/rPaG/xczOishaMGjh85bzBAI9PS?= =?us-ascii?Q?2XMVQbpce9IoGlNnUEekf7sSIdO9OsX4Re+1QPUderJ88gjwWl07RZXdyZmg?= =?us-ascii?Q?gRppsGq2yL4RK4h+96MdR5VbxmFKNPIbe3PMGk6PmTiHgVj/E9wZiaOC99t7?= =?us-ascii?Q?IQWW9ve+qdGrSQc4vhwjYPR+8b8bg+focepT5ySd+4pemuikBWDTVI/UM0fT?= =?us-ascii?Q?PFVTnom7VHVJYJzmYfrHNRn5WjI4L3L9sMt83QcsY/bHfsvZ6SVckPZNL4My?= =?us-ascii?Q?AXmDct79FhxnTdDFiLqvdBe/swn8MhPKeRHjJO6tTsNAkA84nOs3+pxOwmy4?= =?us-ascii?Q?qXZY/ioUu8g8LSzm6z7Zl8jbsxQg+ocuosooC8x2UXqA8+LOK0MVSFa8it5H?= =?us-ascii?Q?H8wLvsvCd7FVCbuKsrTkbyJ2zmX3BeKe6PxCj8jSediCL1hxNOebMxf3bLrm?= =?us-ascii?Q?weN4QiR4DZ9Fxe4Km1jhyv3stLJxqD1egASJYpVGaeiJHaXu4RqhOVZFd+lN?= =?us-ascii?Q?/RtabxWMrLO7TkyNYbBlO/sAdZ9L7JVxL/R5p/XmSzH0odfJmpIFjCRY+phG?= =?us-ascii?Q?rUW5QKSEFdQDfJGq17QQ+GoyWQ1mmg/C73ahxA4caYcYHwfqlm7z+9gjNYul?= =?us-ascii?Q?TEODJpMYmdSk75O765uELH4ByMPDSIpqkeWRwFSA?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2104f5cf-2a2a-425a-2cfa-08ddd9220597 X-MS-Exchange-CrossTenant-AuthSource: SN7PR12MB6691.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Aug 2025 21:57:10.3631 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Fngtosco3YuG5bOIVBqHmXv8DwnYHSzGmx9k/qM2JW+379ufF9uZ9TFKBnTAn+NbPKARMX1f38IuC0HHnTg8Fg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4207 Content-Type: text/plain; charset="utf-8" The layout of bits within the individual tiles (referred to as sectors in the DRM_FORMAT_MOD_NVIDIA_BLOCK_LINEAR_2D() macro) changed for 8 and 16-bit surfaces starting in Blackwell 2 GPUs (With the exception of GB10). To denote the difference, extend the sector field in the parametric format modifier definition used to generate modifier values for NVIDIA hardware. Without this change, it would be impossible to differentiate the two layouts based on modifiers, and as a result software could attempt to share surfaces directly between pre-GB20x and GB20x cards, resulting in corruption when the surface was accessed on one of the GPUs after being populated with content by the other. Of note: This change causes the DRM_FORMAT_MOD_NVIDIA_BLOCK_LINEAR_2D() macro to evaluate its "s" parameter twice, with the side effects that entails. I surveyed all usage of the modifier in the kernel and Mesa code, and that does not appear to be problematic in any current usage, but I thought it was worth calling out. Signed-off-by: James Jones Reviewed-by: Faith Ekstrand --- include/uapi/drm/drm_fourcc.h | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/include/uapi/drm/drm_fourcc.h b/include/uapi/drm/drm_fourcc.h index ea91aa8afde9..e527b24bd824 100644 --- a/include/uapi/drm/drm_fourcc.h +++ b/include/uapi/drm/drm_fourcc.h @@ -979,14 +979,20 @@ extern "C" { * 2 =3D Gob Height 8, Turing+ Page Kind mapping * 3 =3D Reserved for future use. * - * 22:22 s Sector layout. On Tegra GPUs prior to Xavier, there is a f= urther - * bit remapping step that occurs at an even lower level than = the - * page kind and block linear swizzles. This causes the layou= t of - * surfaces mapped in those SOC's GPUs to be incompatible with= the - * equivalent mapping on other GPUs in the same system. - * - * 0 =3D Tegra K1 - Tegra Parker/TX2 Layout. - * 1 =3D Desktop GPU and Tegra Xavier+ Layout + * 22:22 s Sector layout. There is a further bit remapping step that = occurs + * 26:27 at an even lower level than the page kind and block linear + * swizzles. This causes the bit arrangement of surfaces in m= emory + * to differ subtly, and prevents direct sharing of surfaces b= etween + * GPUs with different layouts. + * + * 0 =3D Tegra K1 - Tegra Parker/TX2 Layout + * 1 =3D Pre-GB20x, GB20x 32+ bpp, GB10, Tegra Xavier-Orin L= ayout + * 2 =3D GB20x(Blackwell 2)+ 8 bpp surface layout + * 3 =3D GB20x(Blackwell 2)+ 16 bpp surface layout + * 4 =3D Reserved for future use. + * 5 =3D Reserved for future use. + * 6 =3D Reserved for future use. + * 7 =3D Reserved for future use. * * 25:23 c Lossless Framebuffer Compression type. * @@ -1001,7 +1007,7 @@ extern "C" { * 6 =3D Reserved for future use * 7 =3D Reserved for future use * - * 55:25 - Reserved for future use. Must be zero. + * 55:28 - Reserved for future use. Must be zero. */ #define DRM_FORMAT_MOD_NVIDIA_BLOCK_LINEAR_2D(c, s, g, k, h) \ fourcc_mod_code(NVIDIA, (0x10 | \ @@ -1009,6 +1015,7 @@ extern "C" { (((k) & 0xff) << 12) | \ (((g) & 0x3) << 20) | \ (((s) & 0x1) << 22) | \ + (((s) & 0x6) << 25) | \ (((c) & 0x7) << 23))) =20 /* To grandfather in prior block linear format modifiers to the above layo= ut, --=20 2.50.1 From nobody Sun Oct 5 00:09:22 2025 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2067.outbound.protection.outlook.com [40.107.94.67]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 51C0A2E5411 for ; Mon, 11 Aug 2025 21:57:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.94.67 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754949441; cv=fail; b=rzLlhl6DFeiaFVpiEQlnc7SNZT3XmhchFTZUe2thFQuKbBW/9CKwEqRUmL6fVIEfSyoCPTk9j3WB1TyGKs07TUvarrbKxKZk4Q7CXa+yIJWPvcGN9AQre5aY+1uJ2gOj61ID/ptKdi/+f9QuoateIMYgu6MhGNst9ZU4xOxMGLs= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754949441; c=relaxed/simple; bh=SdOdUHzoKNlQbQUXpNNF9XSC0ExmLJeDo9ZLkbqBwz4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=ZcEUUvrDbvt2WcPdUeBTyHbXFMK5J8a7V7Kfhu1SoQWz6L8UPdGT7eLpwHPqCGe8QP99jOaULlKR8caoXlpYPW0RNdirXB5y9Pfy4oMol0U0+wXOxiWSPTlXlY7CMeTj+ilP2wEnc7H0lJgUSOFV+eFLhZE8LhM0+dLR/g1h/Gc= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=LfDdkegH; arc=fail smtp.client-ip=40.107.94.67 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="LfDdkegH" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Er3zoDrLkWrlEYrdL8bGg8iVkiXkga/ANwgl1GAV5iyrtM2WOrQk1OAcHP/ESeu2usyVK44YxYNDS10F38T4VJNnwqvy0XrnRKMGiDzmeuOb9Frt7WOOUECY5Ktb3wUj2Kt83yHOH5HALcrv6UKYsmsIH38wTH3+KBtSLx+YJr8UFiMBkU/q7e7c8m0EUdlS4O9QVCAKI/JVszf8FDySq41GIc52yJzGwqWq+6IVPPnbhK2ZSRaQpC9xNAvq06i0zYI4wtrrXALSMgnZ6XObrjUoztgk6dQJ5tcLNXRMRBi0EF52DUlIxBG0a68QybDbqycGxUxJyTxK/SKDWIUpLQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=pMDCUEYtrIFUxLONA8iGoB1QLo3MDnszV2H7rBE3jpw=; b=UlQ8as643A6kXSy+0y9zgd44oVlmv02jtTSEbzc8mdlmClQzlZt/2GwTONjw+Wa+/AcJvXFhZ7AV19EzMOz0OqnbsH6euzr4bhYqc2VjAp4uls85qmrz9Q1GHvP73TeMcR+zXtMi+PXqqT67NCWfsGV/alvzwoJ6MvzglqU45Hb6L8qoxbU6p29vRfQ2QqF57M+wkpD9GtGEJ7hKwooaD5EAtlyIHTFpFFpWh2ftcbiRm13NgeIgGUHP4jORtIU2A4gXw7znkCTtdqd7eQlGOh2LV4zZDJmgN7WodQbI2raKPK493vCgkEvJPs51hB0ji3kS2D9YbkzXEi5o1Y4xIw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=pMDCUEYtrIFUxLONA8iGoB1QLo3MDnszV2H7rBE3jpw=; b=LfDdkegHlbzwmDQcyKPW0lwWPMT4G23RHY/ILtKBVZ+JZ7qWO53DW8puHUtPGzWOwcwMdr/KXYtRF1hX6Ntha2xvGfa7JhMAxwF9WnPkbXpyAksacujKrcdcKN+ga6zfIDnwoW7AItg9/mXou9mjCgy6PZsQ63WwLSQto7FsBQSzaVcp29r2Id+GdKOu4rt9RQvhA8Pa3Xf9tqU+pToLf8zA4HFwjZUrUs1hG2lPFJAJ6hmVM4lheQANydtfIrX2fJEDZULj11ogH7xsT1XIQRX7wKqQxgNmvM4lxQBsFab+Iatc8MLE5bcXp7Qgl4cPwqQcC9i+ABz69E+sI6lpVQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from SN7PR12MB6691.namprd12.prod.outlook.com (2603:10b6:806:271::9) by MN2PR12MB4207.namprd12.prod.outlook.com (2603:10b6:208:1d9::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.21; Mon, 11 Aug 2025 21:57:16 +0000 Received: from SN7PR12MB6691.namprd12.prod.outlook.com ([fe80::d15a:729a:9a36:4376]) by SN7PR12MB6691.namprd12.prod.outlook.com ([fe80::d15a:729a:9a36:4376%7]) with mapi id 15.20.9009.018; Mon, 11 Aug 2025 21:57:15 +0000 From: James Jones To: Danilo Krummrich , Lyude Paul , Faith Ekstrand Cc: nouveau@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, David Airlie , Simona Vetter , Joel Fernandes , James Jones Subject: [PATCH 2/3] drm/nouveau/disp: Always accept linear modifier Date: Mon, 11 Aug 2025 15:00:16 -0700 Message-ID: <20250811220017.1337-3-jajones@nvidia.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20250811220017.1337-1-jajones@nvidia.com> References: <20250811220017.1337-1-jajones@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BYAPR06CA0034.namprd06.prod.outlook.com (2603:10b6:a03:d4::47) To SN7PR12MB6691.namprd12.prod.outlook.com (2603:10b6:806:271::9) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN7PR12MB6691:EE_|MN2PR12MB4207:EE_ X-MS-Office365-Filtering-Correlation-Id: b81317a4-b774-491e-2814-08ddd922085b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?oOwFJ3kjqq2OuEvYLFpW8+GsB2NRJ+QU7g8GnnScD+hHLbAI9dy657RnRj9T?= =?us-ascii?Q?CagWwtPVjtEujsUnf2o4aA+/79hjd4ohLwAVovqWK/8bFsIy0Cf2rcc4g30+?= =?us-ascii?Q?98B1HiqEyzpujaUxtJMkcBTvcm++06X8gDTT9taqA7tkFN6Rt7WrzMledmKX?= =?us-ascii?Q?rReeOUQAjejuvW7A3PCqVPUook1NJUcmhEcRonIJFzCtejIJUSIqeopwJqyd?= =?us-ascii?Q?Y+16o6RxzglPqrrREGv/L/VDsN0iVrllXPU5ONkw7pVPpMjyuMuFNgugOPa+?= =?us-ascii?Q?OWgcS7uh6/1RTZ7ylRh8Yc12mjHe21v/KX5v+Iqx7z6DGLg0Qg+rU4hvsgs/?= =?us-ascii?Q?WEVZfreLgu0Y3RmCnVTDELP+NMMspxjni2YdfMqjh+IZvY2+nealzDkTKrJJ?= =?us-ascii?Q?y7wFiEM6LW67On6fcPSczphELeVcPXZ27QA/UC1dcTEYQEwekQGUiwmvm7au?= =?us-ascii?Q?9Ew8QksHd6sUlK0EAYxsJzXpRXbTbHKPDpoH6r3Vvc2e5+o+Owpjy4eIxS4l?= =?us-ascii?Q?YcCn2nKDrAUBH3u1gI4vp7/gKNtoisdw4U1NFfshddtATXuq69GeHykpoA0C?= =?us-ascii?Q?Vjx6tQpXqsr2ucxXuPY1KTyqJAqtqKo2eOaVsTQ9S9agPWywAbVbUxyG8pEP?= =?us-ascii?Q?wHR+Yj3WU3U3aciNWe3vq7rTuKyOJGR0Ervd0jcBEWIefpatkDmlpOl3I0uT?= =?us-ascii?Q?D9GQfnbPIzBbOOL21oyChSW9YF93ElC5NZqKI825IUNuMlbGhna3CJoBQ1Dn?= =?us-ascii?Q?q/eI4A+E8yPQLXPjg+V8v/yZTRVSy2VLowlxy/M6rq7kDKK7wCNBPGzWkyAN?= =?us-ascii?Q?6Mn51b6JQMXNeSxyVbARloeBYseuSxBDQS6ghzxWAb0JiyfoDx6cXo9D6SG3?= =?us-ascii?Q?QfYpR7M2m7BiuxctzWwOfkdmQPaa93W3LN6VhCKn30rm0JvLvOA1fpQGAUZT?= =?us-ascii?Q?+at1IRgi6ZjNBaolI3yKmz9uKhoEkvsVUxSpnrrRqO79IPT18dvXhEnm3wda?= =?us-ascii?Q?sdHP1rXDzeBJv2LdZt8G0mAtYys5/QoUhlBWLBNtuWPzggTi5olRboiOGVKN?= =?us-ascii?Q?+a5fb5YD1Eapz0rqoIAnZ5LgBGdy3Dk9geKBbj474OeD/qQx7GdhBHYgoONn?= =?us-ascii?Q?s11eR4WLsSHu6fpH5eBNYJdum9XBsYIpois1PkGcdtZqFazPiRZfYYJMqMDm?= =?us-ascii?Q?e8MGZRbaHDDTrly1TXYq2/iUZYy0LIhtTHJcEn6FFeBZ9/VFpwl5qWc8hOam?= =?us-ascii?Q?DQQVBPuivC5N9IHe+CTFqstmdOM0nQm8yK3/p79Ib96K25wVRt0vu1y4lUda?= =?us-ascii?Q?0albvoq75GDk8ub2CJ5YQQ44075WfXkoT+s4p9uRE7qWdBTLA3jBI+L1IKes?= =?us-ascii?Q?/5nLuTSwH5Veqr34W8GOCnrti/IjOngDxdNmeFxclHIntOhQ1q5SzjzJBr/i?= =?us-ascii?Q?9KNzr5pDGRE=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN7PR12MB6691.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?LcFOYqUlDc6COeaw4wAARdLo44c/jEWyD5YufrhWMgoPKQGrZBfg07TOwgeM?= =?us-ascii?Q?+MmKhjQFBxenUolRnJ63QaxHyFBlHjJVGbzmB2pOzTVCiCaOeEi1Mey7yRq1?= =?us-ascii?Q?TeAy/Ifl5PGDgItPxzhUP00dBqjL+lpLKgbUcJ9POTktPmWyJnV1wFw7v9Mn?= =?us-ascii?Q?nLXt2qQe18HstsCszpEvUlcwZOLAQpKakJLupMn093Y7Cq/g/vqve7I9B8aW?= =?us-ascii?Q?zm8uQkx8efTeruGWZAbDT/gkr8idAKoX2/WXR9VA9m64ZURJCOnNpUpt8F6G?= =?us-ascii?Q?xzCY6T9RuR48UYbqo8xFybdHIe7oiFn4nSPTchSiAh7GSdQ74+5z1XW58x9g?= =?us-ascii?Q?S8QJCdgz+iFcPID9Q6LOwAdWa421wCEopncjLfKR2DbXTA2H2QumtOi58R2Z?= =?us-ascii?Q?reLZTg+0AT+b74h1V+f4hFRu9oesL7ET/d2LhTmfryGa/42xj+0lRwHJMzxV?= =?us-ascii?Q?ZDjzLI0b/jxdP5c4vDl3hfKnx4EJuzhrpa3fPNtXmnQe7eoTsk/5meWq9Ss/?= =?us-ascii?Q?oJgDgHpaWOwd7CBD66+jukqhu7JH1JecrygD54J9WVWY5IqUX9LZLE08TOWU?= =?us-ascii?Q?82/zZR+o2HadHCF5j7PM6SYtot0G4vVtr7Mt4NeeI0pa9yBT2txkk/wZomuT?= =?us-ascii?Q?tKbOb/3pKgovzKt7WDj3vSj+shxhObgf04MtnktRZIOpoqyJHwFrHgiXo6Hh?= =?us-ascii?Q?PyeLu32LcWGOL8mC7ScHXwLDDhpMtlcR7zn43azAHHwx19pyzclrvA+tDMbP?= =?us-ascii?Q?Dc1Ps+0PPOeuhTzUxHxheKL4ptCfojKWYPYbR3g/GeNJdO2N5Sw9gGA5Buay?= =?us-ascii?Q?Tq6ZDn8PZop8Vuf46cobWBW0lAkRBbj6PbXbrLbOZWSHo5C9WbTCudoZ0mIK?= =?us-ascii?Q?f4/YoOOEesAxsgHwRdrP+gkBJGLeqjZp38EK6TgPYukxsDJx9/wr9a/PycXn?= =?us-ascii?Q?nQ1fYPsazxylQTGvlv5ai3gzioVTw2Tr7s65Uqv6cR3xCJnugd17MNuFFwkR?= =?us-ascii?Q?98EQQ3J91Wft7rpfoDA8I2WX0Jy6Tx4s3e4I1JrgmIS345DvVD0junizIe6/?= =?us-ascii?Q?+tcRGhh1/zG46TFmsXVsxDb9bSmRCy4fFrHRv9VLJFXJYyOL5Kobj7umc+0P?= =?us-ascii?Q?LesTVS4/KeBJk6HcHfny2A2lQtx1g20rlgmfABCvDXTMvaWX4N8GEK0aBcHa?= =?us-ascii?Q?ff47qbS+hBsxTfFbYl75ZffSYWbbd00V+pwasjUJwKtt6I+UscFJE0h6qxIZ?= =?us-ascii?Q?aJaTTKBXSIqGc8Tw5uE4XTg5Bpn4000EzuQcpd0ImvvSFGpRq4eRxOG3Eian?= =?us-ascii?Q?nmD/+HdCMRN5R7IqPHwM5klGXSgy5ShUhOVJ4VY3TdhopST556N3rzRsAcEI?= =?us-ascii?Q?gqygmeL2wBg/jkfVx5mNchZAKGhE1Mr+QSRUmpmViUsBcYWrPwTCdxi89Q0E?= =?us-ascii?Q?KsO1Nec5AMTX/w004JopEhU0bo1uatPXjvz0TfFK77+cjNzRyyJXMyeuWZyS?= =?us-ascii?Q?HzGia1FoKD4JJKu7UfgT8Gh0op8qQ9Fv1IzsvA9puGVq+Htkl4Mtxo30pb+Z?= =?us-ascii?Q?dWPpZl6+A21mwtP7tFpSapzyM4FhQu6kIpQh+uXm?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: b81317a4-b774-491e-2814-08ddd922085b X-MS-Exchange-CrossTenant-AuthSource: SN7PR12MB6691.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Aug 2025 21:57:14.9795 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Du1d8ls0XGyS2xXF+rLPWa4s4lHDE0VAM5QSYCL79jVWGe9SF5DNVmk9h8qW1rt4Mux8rcMRIdoS3BxuERp+zA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4207 Content-Type: text/plain; charset="utf-8" On some chipsets, which block-linear modifiers are supported is format-specific. However, linear modifiers are always be supported. The prior modifier filtering logic was not accounting for the linear case. Fixes: c586f30bf74c ("drm/nouveau/kms: Add format mod prop to base/ovly/nvd= isp") Signed-off-by: James Jones Reviewed-by: Faith Ekstrand --- drivers/gpu/drm/nouveau/dispnv50/wndw.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/gpu/drm/nouveau/dispnv50/wndw.c b/drivers/gpu/drm/nouv= eau/dispnv50/wndw.c index 11d5b923d6e7..e2c55f4b9c5a 100644 --- a/drivers/gpu/drm/nouveau/dispnv50/wndw.c +++ b/drivers/gpu/drm/nouveau/dispnv50/wndw.c @@ -795,6 +795,10 @@ static bool nv50_plane_format_mod_supported(struct drm= _plane *plane, struct nouveau_drm *drm =3D nouveau_drm(plane->dev); uint8_t i; =20 + /* All chipsets can display all formats in linear layout */ + if (modifier =3D=3D DRM_FORMAT_MOD_LINEAR) + return true; + if (drm->client.device.info.chipset < 0xc0) { const struct drm_format_info *info =3D drm_format_info(format); const uint8_t kind =3D (modifier >> 12) & 0xff; --=20 2.50.1 From nobody Sun Oct 5 00:09:22 2025 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2067.outbound.protection.outlook.com [40.107.94.67]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DC5F72E4249 for ; Mon, 11 Aug 2025 21:57:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.94.67 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754949443; cv=fail; b=R1v5OCJstbxfGU0MyjoDlWCMt2sYUhNVBVJ0J5H/sfCWoPU1LuAhdZHDwyP8Ow+TDsAGY7A1Y0vnb6YZiMtgJW+qQtKosbiOXxRxnuUcHsiFumU2+D/nGW9TxJGgim9KLQDJBN+d8h6Hu/VTp73ERlul5ERZ2mfjgnwlpPf/jFo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754949443; c=relaxed/simple; bh=lP9+R4iYCEIajdY5FvlEUBWvbY7f6RkFRSdaF7bYyPs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=YK3Rpf1zjs+k1bqWnkOamIsVSgpLjBrD5KLjhciVWRzlPhjEIw8jl6w3XBhtC0ugDUyXUWZPeEvzZHidUGS8xKm9jhH5Oe+LRrwwP5OBnY/Xd36zdVn4+Vkhx2zN/vR8aU+xOw/0T+EZmRmGLCEbECNovawoJtNtEjrIjCzeBFs= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=HgzQnRt9; arc=fail smtp.client-ip=40.107.94.67 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="HgzQnRt9" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=v3VRfJ5N/Ucr3XCxzhvqWQKN+T65L002j/fgadejPrjebOC8ZrtytIP8k8dOHDRzFeM/HKHA1ArbkXxJj11fX8oJdIk+mIUvJSds0KoqH1GZpk45FxM4BqL86t7s+iGwhs24g1NWFU88VTkUlLy2YRVcbfpAyldvZWduvY840rLiWJfXw5ZhoUBcuzIz4H0c8jJzp03LQZFWx6d4hnLHLV+5BjsBMfdAVVAX9jq84agP2G9XqVUjMMR75hC0kFiOi8cnaMYq8qVFZj+3xR/nFOgTVPANbeZ0A1GhaEacemZ4V5i29lDojdYqCx1rgxhAlApiXkHCHC6/fWWWbjpN4g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=P0KnV2xp1HsfYq54AuIE4WEprUYaKC6a3xpsR4ZhJSs=; b=sBxI1XgjOc1ztfMTSkbtpkKJthEQlkf3GGQFPCt+srWmasAotHb3hgi7f1LS2AKd0bEaZezQiBBdIh+08vj2JVgsB68PpJ+p/Sd+sQN1LAgHAlV4jkvvNgnh74rST1qNV4Targso34GSJVXeBprKtjIk9UWa6XDc2Y4mxnEnw4W77ph7ApfflBzzutP2xhGQ7QJo/fwxAomCWALYJnLYh17JzqdoYorSOL57HowtduCQ6FZfkx37okjTaWoUkVabNnwCNfGgbahl4l9nrZbQQur069FHr0s/JfFn5GPNjxzlbj3PPhpYBWUTaluBzSfoHPVr2Aq0eBbWN691t9qW/Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=P0KnV2xp1HsfYq54AuIE4WEprUYaKC6a3xpsR4ZhJSs=; b=HgzQnRt99i+2uzpLHCfzDraUcg4FQjeIxm8DMcEu3pLgSPm3qaKLGWMzncjb3e+yk0UGCZRN8A1uZveLelq4zRYaY/WIPaNENq9tS28gMxCFZIST1UAqqEWMgLnNfAATCz2aPe1sqSscx3JkrpLf1YQ8izoJOlYr6vyUq5od3YoRlKR+j9s4+FjIyYtnGFWH4JtP9htoWXRcuWkPqd3NSZSF6x/cZDFGaHKawXEkv0RX7ZsnjLiquHoGqZqrrHgGe+41aDaCWqO1J4b8T/l354zXqbCO6+ayjxGfD/VElfzFrhCsoS37x8Z0wnQypjCBQMqVZTeAB7sX7F1hvWBrZA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from SN7PR12MB6691.namprd12.prod.outlook.com (2603:10b6:806:271::9) by MN2PR12MB4207.namprd12.prod.outlook.com (2603:10b6:208:1d9::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.21; Mon, 11 Aug 2025 21:57:18 +0000 Received: from SN7PR12MB6691.namprd12.prod.outlook.com ([fe80::d15a:729a:9a36:4376]) by SN7PR12MB6691.namprd12.prod.outlook.com ([fe80::d15a:729a:9a36:4376%7]) with mapi id 15.20.9009.018; Mon, 11 Aug 2025 21:57:18 +0000 From: James Jones To: Danilo Krummrich , Lyude Paul , Faith Ekstrand Cc: nouveau@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, David Airlie , Simona Vetter , Joel Fernandes , James Jones Subject: [PATCH 3/3] drm/nouveau: Advertise correct modifiers on GB20x Date: Mon, 11 Aug 2025 15:00:17 -0700 Message-ID: <20250811220017.1337-4-jajones@nvidia.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20250811220017.1337-1-jajones@nvidia.com> References: <20250811220017.1337-1-jajones@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SJ2PR07CA0002.namprd07.prod.outlook.com (2603:10b6:a03:505::25) To SN7PR12MB6691.namprd12.prod.outlook.com (2603:10b6:806:271::9) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN7PR12MB6691:EE_|MN2PR12MB4207:EE_ X-MS-Office365-Filtering-Correlation-Id: 58daf08b-2ff7-445a-ff3e-08ddd9220a40 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?Z7RzuHOJydQhT2OX3j9aX08lcXhJZWt50bL3R03GM9aVks4jw6D3ZM7eflEZ?= =?us-ascii?Q?j/D8199EtI4e0u1JaIKBEy6ikxqybUX4Ap2VHBxHj34wZifsALLKXxX1KM4C?= =?us-ascii?Q?tF0RWs8Dm4E7NORNcaRdInYCGPL2xS4lr+m8caFgcxgkkL3KlIoaeGpSoCbx?= =?us-ascii?Q?fJClK4Uc71KAkAzHQECTQQU7TVRMwq3nbCHwEyqgqotjwT5mrWzzIKQHiK+X?= =?us-ascii?Q?MH1oHoQKScZVhN1yJUPly5407Ic77wuF5Z6K7cDEHnLTLHcUIw/XD3VS0Wmn?= =?us-ascii?Q?Hw1mhHi/1Ku1W7w8gVj+1SG0QdKS81J/Vi3DngGugF6dnEqGs017JHEchKt4?= =?us-ascii?Q?aKE4qPVJTfv9xvZsMPhAxRa5LuzlGcokToKjETIDckcuONyw2rgrJuj+XsUn?= =?us-ascii?Q?RpOYW1sp075/ltGL7r5frr5KxDGY5WlNGuw/vWqTciRPsATWTt/ii3V4W3Co?= =?us-ascii?Q?DyUUFzVmzkmbNDEbiO1Hl85s4/r5vTtreVVUxvv97kLQfv2uAJbUkwyqITgw?= =?us-ascii?Q?myyThqvuY5usxrDJWMrABdBvpRLiXJ1uckH5sk7GBpH59g9GFKeNAXv4Xy7A?= =?us-ascii?Q?Aa4oxOE+r1fqVBr/CinUOQd9MEHI8cliyeGLjSnkMQlke1bEW26W5q0mqpzK?= =?us-ascii?Q?QjnschzVj/rDB6rG5xNxJColJXI7ibKEOBS4wDTXw9Btqif6GKdgknJrftGa?= =?us-ascii?Q?sW8TnVB5fc4QQyTicEN0vgt+vnfmhgK3pBMROv1PWmzs3GkN2aJHDh/ynEMw?= =?us-ascii?Q?FNy/2ZSCaSQ26oHfGx3mp59MS+sQXXI+qV5aiMPdgBnjMbVYMEwMTpxu35tL?= =?us-ascii?Q?6N/oH34jtbcpj4gFp9fSXhQqNqcD2mQLzvy4qsv7dd6DvCbXLhPOb9fdqzaL?= =?us-ascii?Q?eyDAOrljSt6QkVd9aP6wsSY8AcZ5DCgUKlLHCurJ4N4lOuq0xaFwSSaPlAfI?= =?us-ascii?Q?TSp1L0tNpF/tWJK2CKNwnlELcRd6dGiqjJbhD5tek+PDGQhrnTfvLC0lNd7W?= =?us-ascii?Q?LVMSBNNohxK2jkPc+XX89ifYG5Gu0OUczdJH4DvkNdKmX7FVxK6NmPWqSqan?= =?us-ascii?Q?vt5Yz9im+RO2pkm1YXxyVlJrXSVPL2rk2FOCP6zZ/EB8VWwCACOhXxmDH6y9?= =?us-ascii?Q?Sl7AxfvnlaOljsDHskw6zJ9p72WF0iZNyeVSIm9YiDkGI8jq6qDrHI/Nv2As?= =?us-ascii?Q?lCZoTWqn7ZQ1z9F7yD5DQ1UuvZloRer92fItaOkTklj2nMitCZ9OXNYV4Kv0?= =?us-ascii?Q?HmcQ1S2Iwlf/rcu0eawAMktKvjYPn8FId7fPI7F8irVui6HlkUI3QTwD8kwx?= =?us-ascii?Q?wWWdo6VnRf524xdjxT0uVTZgSbBfeUwnFmxRybmPaZooGHYziPQVRulNXCm3?= =?us-ascii?Q?tTECHhj7IoP4wMdixqug6YzMyKD66SCycqEPgJnB70e6I1Y9SQ=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN7PR12MB6691.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?gsG5M3+4tF6J9Kzs7iJK5CYeKqD9GimQ9IIDYHl4y1aN7bKi8A799wRuadb/?= =?us-ascii?Q?+jHKKb2WLs0PLKknWOfb6UhkFQQeH4YuouSjhYmopHjFdHeJsXWisb5CLZ/r?= =?us-ascii?Q?LCvKvofhh3c4b+AdWfOewFblXFxpAE0l6Jtfv/45etrCCAac845s6X+XLuWJ?= =?us-ascii?Q?Bt1/WfKtLCAqUaKclFOCctn76zy9XJnTUOrusEiVCeLJBVvXVfjWViF03/Pv?= =?us-ascii?Q?iAmO+C2WvZowluRdp/tNEwr3Dtc587RsQEXrC6j+c3hpfiZtCp5mvqzuoDdl?= =?us-ascii?Q?pbHS8sb0dD6bT5Ruz66ElWRXQGh7iGY8HY9QxWklbtxS/MvMcpwn2IJD/T6C?= =?us-ascii?Q?YpnZNQJkatt1ie6WXMxp/rDr1O7PWkgMzwpVNuS792A5B+nkeOFu1lyEy8n5?= =?us-ascii?Q?HzyNZJRPVwOkasDAuEaSjc+ejvY+ILWB7bQXuePyAl1Ec7ytVaJkQaf21+jl?= =?us-ascii?Q?R3rIo34I+Hye1wvcxKYJ2Ai9ZUm5NW6E5hubAFOd8J4+8CRyzlHH642/Qn/8?= =?us-ascii?Q?BW7gLNPf7XxmKlH4X7ZTY6IPc7qEhqoVm+Ebbm3+NzQcxJHh4IY+pRDV2Q4z?= =?us-ascii?Q?FYBrrfOt34tL4XObh1Qe1seL+IiYKoUuHh+0gDam+BismKPGXwu30JwcuKXb?= =?us-ascii?Q?nEPDbnhCmi9AV32D7WVyIwbDeqQ+olYQVnOJdWSgupiYUCT2BdjSoa9t+dIF?= =?us-ascii?Q?jCleDVsHx38kD1s06tg2lJDlQxc4l7rzxrivVf4OTRuZz8qY+/WG2BWld8ml?= =?us-ascii?Q?cmJ/3WV7MaQUHcrZkN7bd25H+rD/hBWmVI3mM5WpAeahWSXl+iQeQqxyJtyS?= =?us-ascii?Q?iNpOT2S23TvuirsD0AmWGvoXwLkA2Op/IkAd/TefT5M9XV/HzBSYLxW2+BNK?= =?us-ascii?Q?E8+RHFCmmdx0+9nMKfsTl/4+BTL2OGDsGzkKuiL4oI8IOTxID4Eimdr/3qYB?= =?us-ascii?Q?C+qJ3gYUQy78IrGKAxZFjDTG8lTDINd14DhYrz2rz5t3LJHYmsMx+Tjpr6y7?= =?us-ascii?Q?Ebvy9mhxqp4N2RIGK/CHYep3Xl9AjLP74ns4QYg600l7uB1ABfKDxXaaNIqy?= =?us-ascii?Q?pUrOAUY+VTIytP6xNdKTjO8VWkVP+TFmpyblRG2TVoaNgDrQDQfNceTaW5wL?= =?us-ascii?Q?oIEJMa8VaNCmliRbTLtgY4Rt/i/nGOvSFuodok+bQs6cQdQ/poQKxrj/s9hI?= =?us-ascii?Q?Pe366H5gE9FJB7h4D37QFli8+q+JyqIk/jIe7P9GUzXq7B93hX2Ajk5G5g3Z?= =?us-ascii?Q?TMoDYXJvl+/6NweOWy01IQa2RoOfUR8qWfbkYNDGyP9dUsyr8ZJS5oCk2hFP?= =?us-ascii?Q?jEJb+m+VVUUejpBGdlegla4T1Tur725zaR1lX9WbW5T4TmWOLVaWrl33FzRK?= =?us-ascii?Q?cdqg7+9QttIwATsl+26sKgWYIjcisLcPeYzSpZI18TuCafssjxc6YvUHwjmc?= =?us-ascii?Q?PRbajrmapavokkKkshdHZWIxyfABRaaaXSZJFityak7s1RxXJK56B8IrJJvq?= =?us-ascii?Q?7JWiG1xTXjCl4PmNh1oTHm8Z3n1NMAhKcQ9e1J//qUNqMhrFmLGd1Od8XX18?= =?us-ascii?Q?sTnmK1yfAsavJPVK4Hc7gjXoftFpLflJw324XMKP?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 58daf08b-2ff7-445a-ff3e-08ddd9220a40 X-MS-Exchange-CrossTenant-AuthSource: SN7PR12MB6691.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Aug 2025 21:57:18.2127 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: gqxMHwaPARKYun8mf2oCrOxi4/lcptzExWMuAUUs3bjEtLejVgWaDaHBJ725/ejGTAsWnF0mIbS/zDnHDdRB3g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4207 Content-Type: text/plain; charset="utf-8" 8 and 16 bit formats use a different layout on GB20x than they did on prior chips. Add the corresponding DRM format modifiers to the list of modifiers supported by the display engine on such chips, and filter the supported modifiers for each format based on its bytes per pixel in nv50_plane_format_mod_supported(). Note this logic will need to be updated when GB10 support is added, since it is a GB20x chip that uses the pre-GB20x sector layout for all formats. Signed-off-by: James Jones --- drivers/gpu/drm/nouveau/dispnv50/disp.c | 4 ++- drivers/gpu/drm/nouveau/dispnv50/disp.h | 1 + drivers/gpu/drm/nouveau/dispnv50/wndw.c | 24 +++++++++++++-- drivers/gpu/drm/nouveau/dispnv50/wndwca7e.c | 33 +++++++++++++++++++++ 4 files changed, 59 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/nouveau/dispnv50/disp.c b/drivers/gpu/drm/nouv= eau/dispnv50/disp.c index e97e39abf3a2..12b1dba8e05d 100644 --- a/drivers/gpu/drm/nouveau/dispnv50/disp.c +++ b/drivers/gpu/drm/nouveau/dispnv50/disp.c @@ -2867,7 +2867,9 @@ nv50_display_create(struct drm_device *dev) } =20 /* Assign the correct format modifiers */ - if (disp->disp->object.oclass >=3D TU102_DISP) + if (disp->disp->object.oclass >=3D GB202_DISP) + nouveau_display(dev)->format_modifiers =3D wndwca7e_modifiers; + else if (disp->disp->object.oclass >=3D TU102_DISP) nouveau_display(dev)->format_modifiers =3D wndwc57e_modifiers; else if (drm->client.device.info.family >=3D NV_DEVICE_INFO_V0_FERMI) diff --git a/drivers/gpu/drm/nouveau/dispnv50/disp.h b/drivers/gpu/drm/nouv= eau/dispnv50/disp.h index 15f9242b72ac..5d998f0319dc 100644 --- a/drivers/gpu/drm/nouveau/dispnv50/disp.h +++ b/drivers/gpu/drm/nouveau/dispnv50/disp.h @@ -104,4 +104,5 @@ struct nouveau_encoder *nv50_real_outp(struct drm_encod= er *encoder); extern const u64 disp50xx_modifiers[]; extern const u64 disp90xx_modifiers[]; extern const u64 wndwc57e_modifiers[]; +extern const u64 wndwca7e_modifiers[]; #endif diff --git a/drivers/gpu/drm/nouveau/dispnv50/wndw.c b/drivers/gpu/drm/nouv= eau/dispnv50/wndw.c index e2c55f4b9c5a..ef9e410babbf 100644 --- a/drivers/gpu/drm/nouveau/dispnv50/wndw.c +++ b/drivers/gpu/drm/nouveau/dispnv50/wndw.c @@ -786,13 +786,14 @@ nv50_wndw_destroy(struct drm_plane *plane) } =20 /* This function assumes the format has already been validated against the= plane - * and the modifier was validated against the device-wides modifier list a= t FB + * and the modifier was validated against the device-wide modifier list at= FB * creation time. */ static bool nv50_plane_format_mod_supported(struct drm_plane *plane, u32 format, u64 modifier) { struct nouveau_drm *drm =3D nouveau_drm(plane->dev); + const struct drm_format_info *info =3D drm_format_info(format); uint8_t i; =20 /* All chipsets can display all formats in linear layout */ @@ -800,13 +801,32 @@ static bool nv50_plane_format_mod_supported(struct dr= m_plane *plane, return true; =20 if (drm->client.device.info.chipset < 0xc0) { - const struct drm_format_info *info =3D drm_format_info(format); const uint8_t kind =3D (modifier >> 12) & 0xff; =20 if (!format) return false; =20 for (i =3D 0; i < info->num_planes; i++) if ((info->cpp[i] !=3D 4) && kind !=3D 0x70) return false; + } else if (drm->client.device.info.chipset >=3D 0x1b2) { + const uint8_t slayout =3D ((modifier >> 22) & 0x1) | + ((modifier >> 25) & 0x6); + + if (!format) + return false; + + /* + * Note in practice this implies only formats where cpp is equal + * for each plane, or >=3D 4 for all planes, are supported. + */ + for (i =3D 0; i < info->num_planes; i++) { + if (((info->cpp[i] =3D=3D 2) && slayout !=3D 3) || + ((info->cpp[i] =3D=3D 1) && slayout !=3D 2) || + ((info->cpp[i] >=3D 4) && slayout !=3D 1)) + return false; + + /* 24-bit not supported. It has yet another layout */ + WARN_ON(info->cpp[i] =3D=3D 3); + } } =20 return true; diff --git a/drivers/gpu/drm/nouveau/dispnv50/wndwca7e.c b/drivers/gpu/drm/= nouveau/dispnv50/wndwca7e.c index 0d8e9a9d1a57..2cec8cfbd546 100644 --- a/drivers/gpu/drm/nouveau/dispnv50/wndwca7e.c +++ b/drivers/gpu/drm/nouveau/dispnv50/wndwca7e.c @@ -179,6 +179,39 @@ wndwca7e_ntfy_set(struct nv50_wndw *wndw, struct nv50_= wndw_atom *asyw) return 0; } =20 +/**************************************************************** + * Log2(block height) ----------------------------+ * + * Page Kind ----------------------------------+ | * + * Gob Height/Page Kind Generation ------+ | | * + * Sector layout -------+ | | | * + * Compression ------+ | | | | */ +const u64 wndwca7e_modifiers[] =3D { /* | | | | | */ + /* 4cpp+ modifiers */ + DRM_FORMAT_MOD_NVIDIA_BLOCK_LINEAR_2D(0, 1, 2, 0x06, 0), + DRM_FORMAT_MOD_NVIDIA_BLOCK_LINEAR_2D(0, 1, 2, 0x06, 1), + DRM_FORMAT_MOD_NVIDIA_BLOCK_LINEAR_2D(0, 1, 2, 0x06, 2), + DRM_FORMAT_MOD_NVIDIA_BLOCK_LINEAR_2D(0, 1, 2, 0x06, 3), + DRM_FORMAT_MOD_NVIDIA_BLOCK_LINEAR_2D(0, 1, 2, 0x06, 4), + DRM_FORMAT_MOD_NVIDIA_BLOCK_LINEAR_2D(0, 1, 2, 0x06, 5), + /* 1cpp/8bpp modifiers */ + DRM_FORMAT_MOD_NVIDIA_BLOCK_LINEAR_2D(0, 2, 2, 0x06, 0), + DRM_FORMAT_MOD_NVIDIA_BLOCK_LINEAR_2D(0, 2, 2, 0x06, 1), + DRM_FORMAT_MOD_NVIDIA_BLOCK_LINEAR_2D(0, 2, 2, 0x06, 2), + DRM_FORMAT_MOD_NVIDIA_BLOCK_LINEAR_2D(0, 2, 2, 0x06, 3), + DRM_FORMAT_MOD_NVIDIA_BLOCK_LINEAR_2D(0, 2, 2, 0x06, 4), + DRM_FORMAT_MOD_NVIDIA_BLOCK_LINEAR_2D(0, 2, 2, 0x06, 5), + /* 2cpp/16bpp modifiers */ + DRM_FORMAT_MOD_NVIDIA_BLOCK_LINEAR_2D(0, 3, 2, 0x06, 0), + DRM_FORMAT_MOD_NVIDIA_BLOCK_LINEAR_2D(0, 3, 2, 0x06, 1), + DRM_FORMAT_MOD_NVIDIA_BLOCK_LINEAR_2D(0, 3, 2, 0x06, 2), + DRM_FORMAT_MOD_NVIDIA_BLOCK_LINEAR_2D(0, 3, 2, 0x06, 3), + DRM_FORMAT_MOD_NVIDIA_BLOCK_LINEAR_2D(0, 3, 2, 0x06, 4), + DRM_FORMAT_MOD_NVIDIA_BLOCK_LINEAR_2D(0, 3, 2, 0x06, 5), + /* All formats support linear */ + DRM_FORMAT_MOD_LINEAR, + DRM_FORMAT_MOD_INVALID +}; + static const struct nv50_wndw_func wndwca7e =3D { .acquire =3D wndwc37e_acquire, --=20 2.50.1