From patchwork Sun Nov 19 10:56:57 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Javier Martinez Canillas X-Patchwork-Id: 166752 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9910:0:b0:403:3b70:6f57 with SMTP id i16csp1592687vqn; Sun, 19 Nov 2023 02:57:31 -0800 (PST) X-Google-Smtp-Source: AGHT+IFeHy8oZqMoBv8eI4nazajJISHbjTt0jwpuiiNVGM8qbA8bexKRJRMo3VkVKGM7Uoktrlhn X-Received: by 2002:a05:6a20:e129:b0:189:fd93:c9ba with SMTP id kr41-20020a056a20e12900b00189fd93c9bamr4307096pzb.17.1700391451661; Sun, 19 Nov 2023 02:57:31 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1700391451; cv=none; d=google.com; s=arc-20160816; b=rDNRp+AdgfSW2yDGDOxY7hiVYoY4pyjBx+RnuyDunX9Bfbqfom1fOFUyMUCF0D9e5X WkqLixU+aE+MFQ444irSTldDSjlqLgmKuF37Ds9OQtq6kc35RK/7x04J5mQN0Ls4XKUI 88WPCJ2LBLShtbClZAa6Qf14VRjh8Ko1wdkCjyycPMCxh/Rw+UpxoN8wU+4nzz+/pZXm yJzAnKsY++7CooVOFnqt7kQb9jQ3WgJxd4PJboaAW/hI6oNIjFVOcTZLf5/A2AYC6RiB ZkjO7rHfYdxBH425T7otRrOR5W6y6627FMdID50jp8hDnZu2S6H/AvMXbCfHGpccsGp7 78kA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=vwKTxIgr09omGUBF1m9vDxqCyG9hQEMime1yIZzuygQ=; fh=Pfhaoxgv0YQDhRSEIpS7F6unuYs1f6kgYqPAml5aces=; b=BADa8y1jWyS1/7XjTZCSNwYR9Ld5IWeNhkIEUuBBRsgvH+NttbUj9Q3aUGKNasbEaw mSbek4padzVe8832nNf6vil3KvD+tc9zPFiwdpYYqGRhS5d2r0zqe0id1IMO7l+IKoMt jIYSp4cnsXhOpLMB3/cyORhQkR6yAzrhVaoxrcjI+nibNYQho/GJmpB3qyj2tJjOFNoJ xwg0vdgNlwgQIQpZ76IlvjW+H56FqYonu4/OMObwMs2YDRkC2RDM2SWK6o+IheZorzQg wV6K7SWQDM5nQzTcit0qNSwZ8xlUqIJdupCRnLbtNsIjhLagAme0W3QODebGQV+6kzqc l4Pw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=P7NcHxhQ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: from snail.vger.email (snail.vger.email. [2620:137:e000::3:7]) by mx.google.com with ESMTPS id s9-20020a656449000000b0057745d87b50si5746129pgv.139.2023.11.19.02.57.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Nov 2023 02:57:31 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) client-ip=2620:137:e000::3:7; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=P7NcHxhQ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id 3616D80A73E1; Sun, 19 Nov 2023 02:57:30 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230333AbjKSK52 (ORCPT + 99 others); Sun, 19 Nov 2023 05:57:28 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50890 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229833AbjKSK5Y (ORCPT ); Sun, 19 Nov 2023 05:57:24 -0500 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3DB0C12D for ; Sun, 19 Nov 2023 02:57:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1700391440; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=vwKTxIgr09omGUBF1m9vDxqCyG9hQEMime1yIZzuygQ=; b=P7NcHxhQNDMz+CI2Pw8/UlvaUPb3Kj/rDX33ebkCHGBolJjVSiNvjJH6WnJhKbXdZeMyu1 dAK/esyr4ZEMmoB6Fhz+/4sarUGeufApyLTUWk3voFywSK5vL+sveLsyiYXvYaGBRoIW3A XmVrRL4HMFXkjS5GZJbBrB5VYsxA2gQ= Received: from mail-wm1-f71.google.com (mail-wm1-f71.google.com [209.85.128.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-654-2Psi8spXN4iwDzE3kskNYg-1; Sun, 19 Nov 2023 05:57:18 -0500 X-MC-Unique: 2Psi8spXN4iwDzE3kskNYg-1 Received: by mail-wm1-f71.google.com with SMTP id 5b1f17b1804b1-40a4c765d3bso5259665e9.0 for ; Sun, 19 Nov 2023 02:57:18 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1700391436; x=1700996236; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=vwKTxIgr09omGUBF1m9vDxqCyG9hQEMime1yIZzuygQ=; b=W/WextvEb1l+OmTxhsJXj7IeSPZmYtDB5PQOUHKgAbk4QEWRLgRsWxPr7KQHOuT7Vp gcu+AEA3GYUe1ug12XCOaqiA6TUTyxAO9vpU/Y1A1mLUOcl5pB4rFvvO5TA236W/ywke LU9OwAqgouSP3PFH+TtpzI+LaNMft1Dq++WyO6V8gImMBM2XsiEb3197Y8m1PLzXNNbz rBCMEy11GxaQdEbZMCZX4g3yL8B/06JX/U3xvT+x40n74M0l6Z1/r7EDkgh8rFgeU6FJ iSc9O4sHUvnQ3NabwoUAmAINTCezxPTkx0cDiwAtH8l+qkBte0HETe8quVuWfDafj80P aRZA== X-Gm-Message-State: AOJu0Yx3SndItXBO13v4W8IyAOvIfQvRZh8bpC8igdOilxGUQXhCSotL BJ4zLNNFjUDg76XtlafZRHptM8RnbY2eqgoBBMGapnVglxiDEkc/KyKdRvQIEMX5+fr3sWGgY/1 OT7bqNFwJ76du1EcdZLPj6HLVIICZBPYeOnhaUMuBYfRiQTwX2NgJZ0BixNCI7opk9vOVaOhtY8 AEi2Jj79M= X-Received: by 2002:a05:600c:a48:b0:401:b425:2414 with SMTP id c8-20020a05600c0a4800b00401b4252414mr8849702wmq.18.1700391436529; Sun, 19 Nov 2023 02:57:16 -0800 (PST) X-Received: by 2002:a05:600c:a48:b0:401:b425:2414 with SMTP id c8-20020a05600c0a4800b00401b4252414mr8849674wmq.18.1700391436164; Sun, 19 Nov 2023 02:57:16 -0800 (PST) Received: from localhost (205.pool92-176-231.dynamic.orange.es. [92.176.231.205]) by smtp.gmail.com with ESMTPSA id o2-20020a05600c510200b0040a4835d2b2sm14233407wms.37.2023.11.19.02.57.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Nov 2023 02:57:14 -0800 (PST) From: Javier Martinez Canillas To: linux-kernel@vger.kernel.org Cc: Thomas Zimmermann , Maxime Ripard , Pekka Paalanen , Sima Vetter , Erico Nunes , Simon Ser , Bilal Elmoussaoui , Javier Martinez Canillas , stable@vger.kernel.org, nerdopolis , Daniel Vetter , David Airlie , Gerd Hoffmann , Maarten Lankhorst , dri-devel@lists.freedesktop.org Subject: [PATCH v3 1/5] drm: Allow drivers to indicate the damage helpers to ignore damage clips Date: Sun, 19 Nov 2023 11:56:57 +0100 Message-ID: <20231119105709.3143489-2-javierm@redhat.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20231119105709.3143489-1-javierm@redhat.com> References: <20231119105709.3143489-1-javierm@redhat.com> MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF, RCVD_IN_DNSWL_BLOCKED,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL, SPF_HELO_NONE,SPF_NONE,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (snail.vger.email [0.0.0.0]); Sun, 19 Nov 2023 02:57:30 -0800 (PST) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1782989666725510513 X-GMAIL-MSGID: 1782989666725510513 It allows drivers to set a struct drm_plane_state .ignore_damage_clips in their plane's .atomic_check callback, as an indication to damage helpers such as drm_atomic_helper_damage_iter_init() that the damage clips should be ignored. To be used by drivers that do per-buffer (e.g: virtio-gpu) uploads (rather than per-plane uploads), since these type of drivers need to handle buffer damages instead of frame damages. That way, these drivers could force a full plane update if the framebuffer attached to a plane's state has changed since the last update (page-flip). Fixes: 01f05940a9a7 ("drm/virtio: Enable fb damage clips property for the primary plane") Cc: # v6.4+ Reported-by: nerdopolis Closes: https://bugzilla.kernel.org/show_bug.cgi?id=218115 Suggested-by: Thomas Zimmermann Signed-off-by: Javier Martinez Canillas Reviewed-by: Thomas Zimmermann --- (no changes since v2) Changes in v2: - Add a struct drm_plane_state .ignore_damage_clips to set in the plane's .atomic_check, instead of having different helpers (Thomas Zimmermann). drivers/gpu/drm/drm_damage_helper.c | 3 ++- include/drm/drm_plane.h | 8 ++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/drm_damage_helper.c b/drivers/gpu/drm/drm_damage_helper.c index d8b2955e88fd..afb02aae707b 100644 --- a/drivers/gpu/drm/drm_damage_helper.c +++ b/drivers/gpu/drm/drm_damage_helper.c @@ -241,7 +241,8 @@ drm_atomic_helper_damage_iter_init(struct drm_atomic_helper_damage_iter *iter, iter->plane_src.x2 = (src.x2 >> 16) + !!(src.x2 & 0xFFFF); iter->plane_src.y2 = (src.y2 >> 16) + !!(src.y2 & 0xFFFF); - if (!iter->clips || !drm_rect_equals(&state->src, &old_state->src)) { + if (!iter->clips || state->ignore_damage_clips || + !drm_rect_equals(&state->src, &old_state->src)) { iter->clips = NULL; iter->num_clips = 0; iter->full_update = true; diff --git a/include/drm/drm_plane.h b/include/drm/drm_plane.h index 79d62856defb..cc2e8fc35fd2 100644 --- a/include/drm/drm_plane.h +++ b/include/drm/drm_plane.h @@ -190,6 +190,14 @@ struct drm_plane_state { */ struct drm_property_blob *fb_damage_clips; + /** + * @ignore_damage_clips: + * + * Set by drivers to indicate the drm_atomic_helper_damage_iter_init() + * helper that the @fb_damage_clips blob property should be ignored. + */ + bool ignore_damage_clips; + /** * @src: * From patchwork Sun Nov 19 10:56:58 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Javier Martinez Canillas X-Patchwork-Id: 166753 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9910:0:b0:403:3b70:6f57 with SMTP id i16csp1592706vqn; Sun, 19 Nov 2023 02:57:35 -0800 (PST) X-Google-Smtp-Source: AGHT+IHQFVJ80wCKvGBTg41JF17hv0jR7HqIPbndemofDAw0/38Ym3PWLGgg/LmQMmWnNTWXK59W X-Received: by 2002:a05:6358:52c3:b0:168:cfea:2d41 with SMTP id z3-20020a05635852c300b00168cfea2d41mr5166958rwz.14.1700391454878; Sun, 19 Nov 2023 02:57:34 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1700391454; cv=none; d=google.com; s=arc-20160816; b=nY5U67C0qbztwEIXANWcwTjPssMO4viF0Zx7ctW12XOGQt0vb+fzZtbRLLMyZteOWH wUoiGjGKEECeklV3ad92wWNCovpOBeQS0Y3qQ1n1Sm//1Fl7qGuUHSa1Q1S2R94AkE7R yAMJ9kylE0IoyAGjHw6zkYghh0uQBdhu0ENOtoDnHHHA7QLI+AViweeR0q+7OQWMruFp Uz5SbjkTTsm+v9jezUEOiEQRkjTnjZ8nv+8wmYbPhOMwO+cubO4b4RZvd0eCVHXqfNrL 7rqih181wfzWcxMcDOwjKjfr2+mzajhwVagimD+rHXx+m5DUFmucmkAK3fVOJRLXQOre pEow== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=wduLhA1JfH2JIibNOg1UP/hJXljazR5AfhyG/qLMjyE=; fh=Ewr6KfxP7wygPDpTWkF0i9HI6ykdUwgNefoN1mtEwQY=; b=lMCjarzr2SaEcGXUQ2J2XnosLljkJqnFkkqlPrJNVjOEHQ4/hDzOTY9nq2HPap2RAP 8bcdAVcadsbyO7+6R2iXELM4nChcjfa100DxzwzjpmEKU8ZxsgNe0P7fKrowBxsd+fnh qRleH3qhREVK+Lm6w1UZqp9+geKdYAUG/WmlYwRz/WFjyw/6vQsZVVp9DXZ8FKsxI1cr bZ460AhkUQfgh628+n7SSiqnlFBYal/v551eq1M79f87NpogLCHUYN8BIdpY0j7MeAHC FEB1Rz8u28gHKjZrR2dJOAg4afcEcs5OLUhhJRUv5Owic1N23DcFX4EhdjQ6gXpypUTm ovzQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b="R/m4g8Q6"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: from snail.vger.email (snail.vger.email. [23.128.96.37]) by mx.google.com with ESMTPS id bo7-20020a056a02038700b005b9b45ba3c1si6633554pgb.563.2023.11.19.02.57.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Nov 2023 02:57:34 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) client-ip=23.128.96.37; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b="R/m4g8Q6"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id D631380A73CA; Sun, 19 Nov 2023 02:57:33 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230437AbjKSK5a (ORCPT + 99 others); Sun, 19 Nov 2023 05:57:30 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50914 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230337AbjKSK50 (ORCPT ); Sun, 19 Nov 2023 05:57:26 -0500 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C7D36C6 for ; Sun, 19 Nov 2023 02:57:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1700391441; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=wduLhA1JfH2JIibNOg1UP/hJXljazR5AfhyG/qLMjyE=; b=R/m4g8Q6Ky1f49aAV1MFbRQGJKisurwHi9YDCzQJk0MI8OjF/72L5KFOZ0p75LBKcvWra2 mge3A/V6wWF4VFnhnMVOZTmRrthOPVMsqsL9HfwtoXgIQOKbf3maoNOIUFj98Rl3P1jicf hGj3dLVuJxc6xrOWQNUU/qDbKQGIK4w= Received: from mail-wm1-f71.google.com (mail-wm1-f71.google.com [209.85.128.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-395-9ymYD9FXM76kk8t-nb1n0Q-1; Sun, 19 Nov 2023 05:57:20 -0500 X-MC-Unique: 9ymYD9FXM76kk8t-nb1n0Q-1 Received: by mail-wm1-f71.google.com with SMTP id 5b1f17b1804b1-4090fa518bbso6427565e9.2 for ; Sun, 19 Nov 2023 02:57:20 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1700391438; x=1700996238; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=wduLhA1JfH2JIibNOg1UP/hJXljazR5AfhyG/qLMjyE=; b=J0dH6WZYHTZvUHTcS7k/But2D3eLfFo+f5oJ3kfbl0F+RX7FK1m7op4KUwsyAmOzZO wAjH3U/IYYm7T0kR8g7tRL/hs2Q72Xybst1Lcq07aAfwBS/3f5BI4F4unGi9aDyUrM91 7UXb6z6UAQDHE7gOwIt0bbtrKgtHSsbDHEFLaQSmzTM8VRiDsXjnaOxX/mcL8UAJBdgM uDxABZRhUHyBZvwQ8hKZwqPEB1XDixJV821sQe9Kv8/oFpV3QjZn77JfnfU1Zk5b89q7 +75TwmW3W6dKv+8/zv0FeFLzoete5hC9iLvMR6pWcT7ttCbQSg/Zs9TpN96kwPSDyad5 R2jw== X-Gm-Message-State: AOJu0YxgkOboWNhX+Ypoeh89TaHNsMAZ/ZCCQ3yZF7rRXWDGtfSUk7Ih EZomU06/MeU9gfTpxL3nMBnQfMz/o7pArkoziPnR3YvzsY8TRcT4Ge0y/c1AcqM8ZPwtkXcErOT Mo+LuAuJYofvOBfIW8bb8C+19wTZXCYFIM0UsYanPYSs2uIflqCX3mPsqFlPqSQY3YT4a4Qnq7W XClHTHgyA= X-Received: by 2002:a05:600c:5254:b0:408:40e2:773b with SMTP id fc20-20020a05600c525400b0040840e2773bmr3874945wmb.34.1700391438651; Sun, 19 Nov 2023 02:57:18 -0800 (PST) X-Received: by 2002:a05:600c:5254:b0:408:40e2:773b with SMTP id fc20-20020a05600c525400b0040840e2773bmr3874914wmb.34.1700391438309; Sun, 19 Nov 2023 02:57:18 -0800 (PST) Received: from localhost (205.pool92-176-231.dynamic.orange.es. [92.176.231.205]) by smtp.gmail.com with ESMTPSA id t13-20020a05600c450d00b004094e565e71sm9510932wmo.23.2023.11.19.02.57.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Nov 2023 02:57:17 -0800 (PST) From: Javier Martinez Canillas To: linux-kernel@vger.kernel.org Cc: Thomas Zimmermann , Maxime Ripard , Pekka Paalanen , Sima Vetter , Erico Nunes , Simon Ser , Bilal Elmoussaoui , Javier Martinez Canillas , stable@vger.kernel.org, nerdopolis , Chia-I Wu , Daniel Vetter , David Airlie , Gerd Hoffmann , Gurchetan Singh , Maarten Lankhorst , dri-devel@lists.freedesktop.org, virtualization@lists.linux.dev Subject: [PATCH v3 2/5] drm/virtio: Disable damage clipping if FB changed since last page-flip Date: Sun, 19 Nov 2023 11:56:58 +0100 Message-ID: <20231119105709.3143489-3-javierm@redhat.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20231119105709.3143489-1-javierm@redhat.com> References: <20231119105709.3143489-1-javierm@redhat.com> MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF, RCVD_IN_DNSWL_BLOCKED,RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL, SPF_HELO_NONE,SPF_NONE,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (snail.vger.email [0.0.0.0]); Sun, 19 Nov 2023 02:57:34 -0800 (PST) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1782989670452481082 X-GMAIL-MSGID: 1782989670452481082 The driver does per-buffer uploads and needs to force a full plane update if the plane's attached framebuffer has change since the last page-flip. Fixes: 01f05940a9a7 ("drm/virtio: Enable fb damage clips property for the primary plane") Cc: # v6.4+ Reported-by: nerdopolis Closes: https://bugzilla.kernel.org/show_bug.cgi?id=218115 Suggested-by: Sima Vetter Signed-off-by: Javier Martinez Canillas Reviewed-by: Thomas Zimmermann --- (no changes since v2) Changes in v2: - Set struct drm_plane_state .ignore_damage_clips in virtio-gpu plane's .atomic_check instead of using a different helpers (Thomas Zimmermann). drivers/gpu/drm/virtio/virtgpu_plane.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/drivers/gpu/drm/virtio/virtgpu_plane.c b/drivers/gpu/drm/virtio/virtgpu_plane.c index a2e045f3a000..a1ef657eba07 100644 --- a/drivers/gpu/drm/virtio/virtgpu_plane.c +++ b/drivers/gpu/drm/virtio/virtgpu_plane.c @@ -79,6 +79,8 @@ static int virtio_gpu_plane_atomic_check(struct drm_plane *plane, { struct drm_plane_state *new_plane_state = drm_atomic_get_new_plane_state(state, plane); + struct drm_plane_state *old_plane_state = drm_atomic_get_old_plane_state(state, + plane); bool is_cursor = plane->type == DRM_PLANE_TYPE_CURSOR; struct drm_crtc_state *crtc_state; int ret; @@ -86,6 +88,14 @@ static int virtio_gpu_plane_atomic_check(struct drm_plane *plane, if (!new_plane_state->fb || WARN_ON(!new_plane_state->crtc)) return 0; + /* + * Ignore damage clips if the framebuffer attached to the plane's state + * has changed since the last plane update (page-flip). In this case, a + * full plane update should happen because uploads are done per-buffer. + */ + if (old_plane_state->fb != new_plane_state->fb) + new_plane_state->ignore_damage_clips = true; + crtc_state = drm_atomic_get_crtc_state(state, new_plane_state->crtc); if (IS_ERR(crtc_state)) From patchwork Sun Nov 19 10:56:59 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Javier Martinez Canillas X-Patchwork-Id: 166754 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9910:0:b0:403:3b70:6f57 with SMTP id i16csp1592714vqn; Sun, 19 Nov 2023 02:57:39 -0800 (PST) X-Google-Smtp-Source: AGHT+IGj9K3mwfsVOyPno8H9M2vkRqC70ktWW7+Z14EAt4itPBj79mLcNLFKnM3lq5hsm/2Cg+ZP X-Received: by 2002:a05:620a:4454:b0:76c:ba25:a8f1 with SMTP id w20-20020a05620a445400b0076cba25a8f1mr5222346qkp.42.1700391458980; Sun, 19 Nov 2023 02:57:38 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1700391458; cv=none; d=google.com; s=arc-20160816; b=heGz5qu5mzOeWBv2ZG8f9yKQuib4G7eCZmD+OCBBMZ1SCYcnsK6vAy5USg3Vfg24yx XdiejZffOljI/5Muc4L5O608T6aPJFV9c0pEGWY1skq9CjgKzmyCezOfVYtQ4W060K2I 3Adq6f7El8WQzerGXwXTBt6939hKzhuls3PNZcKfhNbQ0hP2LchC/7t6FLxGG9ECSr9m ud1ejweuhmJBTsO11bXDrH5GR2WD18pt9yb1UM7J88Nkb94dl9FcxbMGvtHDR1zngwKc rlfno19r+rUz7qIfNbwwTbOxBHJOcnAMbk/apjWwaeQpEIUBOgfZcifVpfI15I6SlWwS 0Q/w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=6wH8NdnscsW10bLIOLUB7ubQDTo0O64XVfw9Xt/3TIE=; fh=XaNmFx6cpAdzXuiyekH42m5KCoolDseCQmlc95eX5zU=; b=XsSRI544rqihnHGAylcvmaX5T5jENcqVQXJ5l0wLO/GiO6BWS95jv7EUlxoaN+R6ST ru11w1CCHYHwl+XfvdLibpD+gjFq8fA/1GFv8sdoj1pMsiNJfN7zKDY7BAvlNnwQj8FD rrKuLUErRDVe1TIKD3wpYWrEAKGCARuojINlL7k6K0Ik39rOjrzlziohRcxSzSTCGi0C 6O9liKYur79RWfgexHrgefsSJrktg9wapVJaOkmqknm6txdxuS+Cwnz6RduIrUrmj3nL t6RqDvwigizuX6ixBYAX5PeZrjCxtHpCCepUtiZedt/LeeNkT8rVOCQfHRIeiy5E6PYf UEAQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=fSI6ecqS; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: from snail.vger.email (snail.vger.email. [23.128.96.37]) by mx.google.com with ESMTPS id h15-20020a056a00170f00b0068e2d888713si6119049pfc.167.2023.11.19.02.57.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Nov 2023 02:57:38 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) client-ip=23.128.96.37; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=fSI6ecqS; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id 06E08803E49A; Sun, 19 Nov 2023 02:57:38 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230474AbjKSK5f (ORCPT + 99 others); Sun, 19 Nov 2023 05:57:35 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50970 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230368AbjKSK52 (ORCPT ); Sun, 19 Nov 2023 05:57:28 -0500 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B503AE5 for ; Sun, 19 Nov 2023 02:57:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1700391444; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=6wH8NdnscsW10bLIOLUB7ubQDTo0O64XVfw9Xt/3TIE=; b=fSI6ecqS5+V6/MWjONDg0SzTNTXwG4qdKpMbkHPo1ak9jBaLQClX0uzPUlvWPVlIHli48t An10Y5VHDbaGKD06vrrRRzv6YSYnPfkoyzY/pKdketpM9miAXxHtkFIlqfNUxP6CVhpFIa QNr+0SVGqdP3Fb7wORhQof8BA7q//NE= Received: from mail-wr1-f69.google.com (mail-wr1-f69.google.com [209.85.221.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-215-C0IzsknpNIWXX_uTENr_4w-1; Sun, 19 Nov 2023 05:57:22 -0500 X-MC-Unique: C0IzsknpNIWXX_uTENr_4w-1 Received: by mail-wr1-f69.google.com with SMTP id ffacd0b85a97d-32d9cd6eb0bso1862972f8f.0 for ; Sun, 19 Nov 2023 02:57:22 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1700391440; x=1700996240; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=6wH8NdnscsW10bLIOLUB7ubQDTo0O64XVfw9Xt/3TIE=; b=IZ+g6sccgjcVI8nDO2ATvlX/5QjBJoeXApn/5DBQYd6sKTbaydM4HZZjkS0YHryaEk 9yxLt3UsmejTORNYBwsSOCamup8vAqcmNHIadhcJRQmoEhHf0VwEWN8HCl+YDXDvx0E6 IYXmGp6g8MdkzQFhYxt/D8XUgcoXF/lr+qL4n+hHwbiKQMv3D5QcOZGUsed3ABhQNSnD BwIPTqX44VqdlPW/w4mk1dBTfp9dYArDetoW6XdRHEPjyNC6w8sRWWiasysaqIFqrtnt alYyNMRAOVnq1MWn3wKhaNB0W3Cr48cCvONs9oCegTofDWm4JOGnxdAkHc3jH19Ce+o5 D45A== X-Gm-Message-State: AOJu0YwUhbleifPJmHeG07xJmBaiTP78Y/HsiN7BVAT5wKP4/BxyoVQi YNHa+uNEZBmOWQPunNOjl3bmCcyyGwDlyxhJWF9XnZjQMYw/hGK4SexfPxVaGKkzsbD/28KdLUW 69RZCofxCFGJcPcv/8BcA0ugCgZNrzo8QaksWDF3Iu65SEf2oCYHB68T6Bdf1wHniKxrTCpQfCv yxc7BRUos= X-Received: by 2002:adf:f78e:0:b0:32d:a430:beb with SMTP id q14-20020adff78e000000b0032da4300bebmr2829977wrp.39.1700391440297; Sun, 19 Nov 2023 02:57:20 -0800 (PST) X-Received: by 2002:adf:f78e:0:b0:32d:a430:beb with SMTP id q14-20020adff78e000000b0032da4300bebmr2829957wrp.39.1700391440007; Sun, 19 Nov 2023 02:57:20 -0800 (PST) Received: from localhost (205.pool92-176-231.dynamic.orange.es. [92.176.231.205]) by smtp.gmail.com with ESMTPSA id i3-20020a5d5583000000b0031f82743e25sm7726978wrv.67.2023.11.19.02.57.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Nov 2023 02:57:19 -0800 (PST) From: Javier Martinez Canillas To: linux-kernel@vger.kernel.org Cc: Thomas Zimmermann , Maxime Ripard , Pekka Paalanen , Sima Vetter , Erico Nunes , Simon Ser , Bilal Elmoussaoui , Javier Martinez Canillas , Daniel Vetter , David Airlie , Maarten Lankhorst , VMware Graphics Reviewers , Zack Rusin , dri-devel@lists.freedesktop.org Subject: [PATCH v3 3/5] drm/vmwgfx: Disable damage clipping if FB changed since last page-flip Date: Sun, 19 Nov 2023 11:56:59 +0100 Message-ID: <20231119105709.3143489-4-javierm@redhat.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20231119105709.3143489-1-javierm@redhat.com> References: <20231119105709.3143489-1-javierm@redhat.com> MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF, RCVD_IN_DNSWL_BLOCKED,RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL, SPF_HELO_NONE,SPF_NONE,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (snail.vger.email [0.0.0.0]); Sun, 19 Nov 2023 02:57:38 -0800 (PST) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1782989674510486415 X-GMAIL-MSGID: 1782989674510486415 The driver does per-buffer uploads and needs to force a full plane update if the plane's attached framebuffer has change since the last page-flip. Suggested-by: Sima Vetter Signed-off-by: Javier Martinez Canillas Reviewed-by: Thomas Zimmermann --- (no changes since v2) Changes in v2: - Set struct drm_plane_state .ignore_damage_clips in vmwgfx plane's .atomic_check instead of using a different helpers (Thomas Zimmermann). drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c index 818b7f109f53..f9364bf222e3 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c @@ -837,10 +837,21 @@ int vmw_du_primary_plane_atomic_check(struct drm_plane *plane, { struct drm_plane_state *new_state = drm_atomic_get_new_plane_state(state, plane); + struct drm_plane_state *old_state = drm_atomic_get_old_plane_state(state, + plane); struct drm_crtc_state *crtc_state = NULL; struct drm_framebuffer *new_fb = new_state->fb; + struct drm_framebuffer *old_fb = old_state->fb; int ret; + /* + * Ignore damage clips if the framebuffer attached to the plane's state + * has changed since the last plane update (page-flip). In this case, a + * full plane update should happen because uploads are done per-buffer. + */ + if (old_fb != new_fb) + new_state->ignore_damage_clips = true; + if (new_state->crtc) crtc_state = drm_atomic_get_new_crtc_state(state, new_state->crtc); From patchwork Sun Nov 19 10:57:00 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Javier Martinez Canillas X-Patchwork-Id: 166755 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9910:0:b0:403:3b70:6f57 with SMTP id i16csp1592737vqn; Sun, 19 Nov 2023 02:57:43 -0800 (PST) X-Google-Smtp-Source: AGHT+IHTBC5mAaOv6zvDj8w6igTobze+vmEkIfg54fZ5M8kYb4UTab3nolXpKdmHQlilqa3XAE5j X-Received: by 2002:a05:6a00:2e92:b0:6be:b79:eca with SMTP id fd18-20020a056a002e9200b006be0b790ecamr5774796pfb.32.1700391463543; Sun, 19 Nov 2023 02:57:43 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1700391463; cv=none; d=google.com; s=arc-20160816; b=nmk4N2OLA+LVslzfNGMk+8tKekWRpOnIB+DLsyLw1zpY1BWaeiCXgl37WnkTvuJYMs oFoR3UvFoJrGGJ+Jo4GO5XUWde6gh72W9kozjo3AOM4RsoMf+fnXqZGoIdjgbcXzZGK/ JbAIWXN2QXO8o/tanare9peZiUlx8a9ApoWoa26Npiuv96nhMZDDBQLscxSS2ow/WJws MwdUv5u27yqdJiZlIKxGqREXMpovjbmkoCasRB4MdrfeDOxbElQffxpcDFBtEDjhiU2U ySXnxzVy0FRmHue4nXLG5NHfcHld1YxenBTbI6/a4FdTey/gnoHVT4cJmJNGQDzEuFKi SiJA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=272K2eB9MyeGkXnHsQZRLNPPDUgj78GVefhevePLWuQ=; fh=Ew0GoXNMZEyS41zqg4vrbgitwkUligXijH2IduM/FEM=; b=Or3EPtlKdtzws3/oYm8+qlj+77YJgc5eUZ1F5vV+XOYFX6q/NCnPlQuO9cvdSbX3Wy PnYZjDtccOVg7xzNv3SwUqADc4RdYXj7t1ClSjsEzbTm+ukiYrcIZtrimyZ7DQsc8UIQ UaOqEYYBI3/Aqy3mM7rlxUdx1ZMwcmMJdkA1NQOOacYi+EtG341ZBSfw03wKELyCNueM vtSOXg5sesoyv75B0dUyz24aUTSZQkccvlaN/Bb3OlUFvXsqm9IWGeWBG0mxmjVAGveJ mx5FZCjeeXD+COplcL1QFvsmIc8hsAXDeyZ6gHGEb4ISwyt/nZMjXvAtJxDttyR9GP7t DEug== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=W0viOslM; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: from snail.vger.email (snail.vger.email. [2620:137:e000::3:7]) by mx.google.com with ESMTPS id fb37-20020a056a002da500b006cb8daad91csi473141pfb.187.2023.11.19.02.57.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Nov 2023 02:57:43 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) client-ip=2620:137:e000::3:7; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=W0viOslM; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id 4CCCD80ACB56; Sun, 19 Nov 2023 02:57:42 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230493AbjKSK5h (ORCPT + 99 others); Sun, 19 Nov 2023 05:57:37 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50978 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230432AbjKSK5a (ORCPT ); Sun, 19 Nov 2023 05:57:30 -0500 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 11B69E6 for ; Sun, 19 Nov 2023 02:57:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1700391446; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=272K2eB9MyeGkXnHsQZRLNPPDUgj78GVefhevePLWuQ=; b=W0viOslMd9bVTgnlZYPSEBJRjRV4VPXvVxQZwK8ma33EELvQs3vnkO3qT5oQNVS6wLGSuD yP6hdJQms4/qQ/ZIJe7z48/1HUX8UCfbJdIwZ7VlHj+RT2J35SQEvPGG8YSSGEeTSY8/wk iAjTVlcEMkGjZIT9kusWyaDxQ1v8OfI= Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com [209.85.128.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-101-6UjYQEbmOC-NalJrZc6m7Q-1; Sun, 19 Nov 2023 05:57:24 -0500 X-MC-Unique: 6UjYQEbmOC-NalJrZc6m7Q-1 Received: by mail-wm1-f70.google.com with SMTP id 5b1f17b1804b1-4095fcbba0aso7883165e9.1 for ; Sun, 19 Nov 2023 02:57:24 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1700391442; x=1700996242; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=272K2eB9MyeGkXnHsQZRLNPPDUgj78GVefhevePLWuQ=; b=oSx9R/CKTQJfgnHqbFuuPEmdVoAn0bfoI2Ac4gZpInLBguGc9Gy2ydsMH8cvxmgZVC iyDcsTQXqNHOe92jmxD1954MyRH6PHBM4XQU1oxpkiw8M+Nn7iimfDifWD0yPIQxRhDG aakST4Pe+gvPXnr614NSPBiYQ/RAzlONOJA/1sbbj70I1ngMZG55awT/5HKUjcZHt8di HDJ02isbJNZDHVqkvL2QU0nc9bo4P/WX0lBQRY30I0DS9VYdQYVpHhaiRMutOMArmTKF T3G9Kydbj4gZ1l2ZHlrcP3Q1IlE4GKKUtXHMzvcWH01oZmb+Tb9JKVVBCMUWfnGg6iUp M0Ag== X-Gm-Message-State: AOJu0YxmqtXYyyEwHse2k+b7fm+ahqfmVUhkly59r9C6p25YIdW/MwKq 0mH0RrsGoO8eOYdQa/Jw4lvBew6wDhEWIiHn+nTRhGiz3qBAjKoFA11lhx7WdmHFR3RXr7mXSse I8GtmPqTGwuJM844Z+6ehhvClP7mYEuNbNpgjIPlqKzUL77kGnmL47N8o3aYAHLD+jx0+TkMIj0 0WSOhun6w= X-Received: by 2002:a05:600c:3c8f:b0:40a:3e13:22aa with SMTP id bg15-20020a05600c3c8f00b0040a3e1322aamr3944008wmb.7.1700391442504; Sun, 19 Nov 2023 02:57:22 -0800 (PST) X-Received: by 2002:a05:600c:3c8f:b0:40a:3e13:22aa with SMTP id bg15-20020a05600c3c8f00b0040a3e1322aamr3943987wmb.7.1700391442133; Sun, 19 Nov 2023 02:57:22 -0800 (PST) Received: from localhost (205.pool92-176-231.dynamic.orange.es. [92.176.231.205]) by smtp.gmail.com with ESMTPSA id p6-20020a05600c358600b0040a45fffd27sm14009431wmq.10.2023.11.19.02.57.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Nov 2023 02:57:20 -0800 (PST) From: Javier Martinez Canillas To: linux-kernel@vger.kernel.org Cc: Thomas Zimmermann , Maxime Ripard , Pekka Paalanen , Sima Vetter , Erico Nunes , Simon Ser , Bilal Elmoussaoui , Javier Martinez Canillas , Daniel Vetter , David Airlie , Maarten Lankhorst , dri-devel@lists.freedesktop.org Subject: [PATCH v3 4/5] drm/plane: Extend damage tracking kernel-doc Date: Sun, 19 Nov 2023 11:57:00 +0100 Message-ID: <20231119105709.3143489-5-javierm@redhat.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20231119105709.3143489-1-javierm@redhat.com> References: <20231119105709.3143489-1-javierm@redhat.com> MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF, RCVD_IN_DNSWL_BLOCKED,RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL, SPF_HELO_NONE,SPF_NONE,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (snail.vger.email [0.0.0.0]); Sun, 19 Nov 2023 02:57:42 -0800 (PST) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1782989679472836138 X-GMAIL-MSGID: 1782989679472836138 The "Damage Tracking Properties" section in the documentation doesn't have info about the two type of damage handling: frame damage vs buffer damage. Add it to the section and mention that helpers only support frame damage, and how drivers handling buffer damage can indicate that the damage clips should be ignored. Also add references to further documentation about the two damage types. Suggested-by: Simon Ser Signed-off-by: Javier Martinez Canillas Reviewed-by: Simon Ser Reviewed-by: Thomas Zimmermann --- Changes in v3: - Fix typo in the kernel-doc (Simon Ser). - Add a paragraph explaining what the problem in the kernel is and make it clear that the refeference documents are related to how user-space handles this case (Thomas Zimmermann). drivers/gpu/drm/drm_plane.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/drivers/gpu/drm/drm_plane.c b/drivers/gpu/drm/drm_plane.c index 24e7998d1731..87edd6c3c5a4 100644 --- a/drivers/gpu/drm/drm_plane.c +++ b/drivers/gpu/drm/drm_plane.c @@ -1442,6 +1442,32 @@ int drm_mode_page_flip_ioctl(struct drm_device *dev, * Drivers implementing damage can use drm_atomic_helper_damage_iter_init() and * drm_atomic_helper_damage_iter_next() helper iterator function to get damage * rectangles clipped to &drm_plane_state.src. + * + * Note that there are two types of damage handling: frame damage and buffer + * damage, the type of damage handling implemented depends on a driver's upload + * target. Drivers implementing a per-plane or per-CRTC upload target need to + * handle frame damage, while drivers implementing a per-buffer upload target + * need to handle buffer damage. + * + * The existing damage helpers only support the frame damage type, there is no + * buffer age support or similar damage accumulation algorithm implemented yet. + * + * Only drivers handling frame damage can use the mentioned damage helpers to + * iterate over the damaged regions. Drivers that handle buffer damage, need to + * set &struct drm_plane_state.ignore_damage_clips as an indication to + * drm_atomic_helper_damage_iter_init() that the damage clips should be ignored. + * In that case, the returned damage rectangle is the &drm_plane_state.src since + * a full plane update should happen. + * + * That is because drivers with a per-plane upload target, expect the backing + * storage buffer to not change for a given plane. If the upload buffer changes + * between page flips, the new upload buffer has to be updated as a whole. This + * can be improved in the future if support for frame damage is added to the DRM + * damage helpers, similarly to how user-space already handle this case as it is + * explained in the following documents: + * + * https://registry.khronos.org/EGL/extensions/KHR/EGL_KHR_swap_buffers_with_damage.txt + * https://emersion.fr/blog/2019/intro-to-damage-tracking/ */ /** From patchwork Sun Nov 19 10:57:01 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Javier Martinez Canillas X-Patchwork-Id: 166756 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9910:0:b0:403:3b70:6f57 with SMTP id i16csp1592821vqn; Sun, 19 Nov 2023 02:58:09 -0800 (PST) X-Google-Smtp-Source: AGHT+IEqsG7dCqvIah5nPhmJHT4KXMcfI6rShi0mtwalZhiQoBd84MBGtrIrbqGpvf1FVKzHkdve X-Received: by 2002:a05:6830:7192:b0:6b7:4a86:f038 with SMTP id el18-20020a056830719200b006b74a86f038mr6718655otb.15.1700391489447; Sun, 19 Nov 2023 02:58:09 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1700391489; cv=none; d=google.com; s=arc-20160816; b=KnleQHGl8Zjz/pmjM+VteCUBEENLEXvOLPmRH5F41AWKtwExvQ5jvmt3L5mjnfcosm nYup7hibO9222ljRo98sX1+k2kytrEe1FrXP4dSDp8xzUxFlZsK0Ar2ZQaagCa23Ygxt eCTCHG9x9nnKwUnGOuSodTfYefjSx/pCx97HY+wfAMu96AGFqthjQbIfzkwGLN3ilB6y xP+Iglk7IhM7is7sRNhsmMACvwM3fdJO/34volHAw+pop8oCjHVjaqBI/G3Xiv7cEZth uPoT4+FUM+XHOG8EBHxTtj6w3oSEuju+nmd0MGQL0WVoobRBtY4cAPvBT8b949ZjwWAJ 9xYw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=paKcR4aagnq4OR4cFFNyGyCczT8YfM2615gwz6U/Ifs=; fh=HD0NSCRRnbYyuOpJ8a0d0HyYtUv+X5Zf3nST3BdFaMc=; b=arh0sGwE4TRPDFo6AC45VaytQk88PvXAnKBFec2xIzht2GW0qbH6Se3axBl+ZvSVPO xtvCF632Kqnwx0CJWTz488rir2C+2mnndFaWDNddjROwoqm9By6l2cAWsApFzCyqiv1n y2YJMF0nNEWiXJury47mY8uKLZ4/jTNlt42FKEjHa6/AF3n0e2NGknbl86xxYybIN12a DpV93jOD7RzLv6ma+hQbQDKn5mSVO9ADaVf78Ygr8no0HZ78znai9wGRs/8CMb+3l259 SEaOTo8FffkkJIlC0qkJ12puWJtkh4e9976LgMqgU0V8YQ1Vf/u0mQI80ma/Jif6PfER AjYw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=TtQbMRN+; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:5 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: from groat.vger.email (groat.vger.email. [2620:137:e000::3:5]) by mx.google.com with ESMTPS id ja1-20020a170902efc100b001c9b5d2c406si5735341plb.403.2023.11.19.02.58.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Nov 2023 02:58:09 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:5 as permitted sender) client-ip=2620:137:e000::3:5; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=TtQbMRN+; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:5 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by groat.vger.email (Postfix) with ESMTP id 1216280613BC; Sun, 19 Nov 2023 02:58:02 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at groat.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231161AbjKSK5m (ORCPT + 99 others); Sun, 19 Nov 2023 05:57:42 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50824 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230467AbjKSK5c (ORCPT ); Sun, 19 Nov 2023 05:57:32 -0500 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1610D11D for ; Sun, 19 Nov 2023 02:57:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1700391448; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=paKcR4aagnq4OR4cFFNyGyCczT8YfM2615gwz6U/Ifs=; b=TtQbMRN+jI0GVPqUIBw+chII97xHmIfAeOCqMCvjL43aFp6sKGjm/26wDwMdSgDjU7Pfv3 r6Z63G+RlIp8gJfimIUizZp0qX4y7JmBpjpxKMzGvBUBbUAUKMYGIXNr11roHHu6DAYO7W RyvYtDqsPCrJmcWrSBd3Jb4E3R8KNAI= Received: from mail-wr1-f70.google.com (mail-wr1-f70.google.com [209.85.221.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-611-kJXZqyjQNBiMontU1rG26Q-1; Sun, 19 Nov 2023 05:57:26 -0500 X-MC-Unique: kJXZqyjQNBiMontU1rG26Q-1 Received: by mail-wr1-f70.google.com with SMTP id ffacd0b85a97d-32db6a28e24so1696934f8f.0 for ; Sun, 19 Nov 2023 02:57:26 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1700391444; x=1700996244; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=paKcR4aagnq4OR4cFFNyGyCczT8YfM2615gwz6U/Ifs=; b=JXFsJDqxIRa/mrc4ij2sHikWWczq5+BbmBcocdReexkz3hgjoxFDzfyDDYJcHD7BF+ ircILGnf1A4TpqUObaMAOpEcLso7B0DbVFXMg6n5kkn+INlA60KRYr3+lCkV1LvHN9Lq cBOGMGwh9DAN6Uk9EenogGKT1pT+s5aWd9OIz372ebuuDvBfFFD1Mqjk2LirM5nEHuGh xsxm36YA7S7pjMbDkM2qHbKuXfUZ+Kyjh1CpXUZtwngSpI/g/hCIcaCty5wYsuy9PJNz X7jsPsDgKS1rz/aG60st+vQCrXai5buHYmMjTmAw23I1gCmehkXSJNXEYu0b2oyhs/ma cQeA== X-Gm-Message-State: AOJu0YzrtNNv3OIvd274/Wf3G4LmH0WCTgh0QPPGErZDG4d1lwQEw/U3 pTKLkAh6w736V/6OaSerXbv7CyS2hFzlS846iMEahPZkadB38jHyai4XfHUJRcsm7W4h9SCDUib WXKmgkZ/SHa/VcapHhZhzQwTswyrF+2SmsOlQ7my9FTmkZUgQcAXtYHvi0bnt4BGeOsDEIo9bu6 AkAu335OA= X-Received: by 2002:adf:e58b:0:b0:32d:b051:9a27 with SMTP id l11-20020adfe58b000000b0032db0519a27mr2879808wrm.20.1700391444542; Sun, 19 Nov 2023 02:57:24 -0800 (PST) X-Received: by 2002:adf:e58b:0:b0:32d:b051:9a27 with SMTP id l11-20020adfe58b000000b0032db0519a27mr2879785wrm.20.1700391444248; Sun, 19 Nov 2023 02:57:24 -0800 (PST) Received: from localhost (205.pool92-176-231.dynamic.orange.es. [92.176.231.205]) by smtp.gmail.com with ESMTPSA id dm15-20020a0560000bcf00b0032d81837433sm7796649wrb.30.2023.11.19.02.57.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Nov 2023 02:57:23 -0800 (PST) From: Javier Martinez Canillas To: linux-kernel@vger.kernel.org Cc: Thomas Zimmermann , Maxime Ripard , Pekka Paalanen , Sima Vetter , Erico Nunes , Simon Ser , Bilal Elmoussaoui , Javier Martinez Canillas , Daniel Vetter , David Airlie , Jonathan Corbet , Maarten Lankhorst , dri-devel@lists.freedesktop.org, linux-doc@vger.kernel.org Subject: [PATCH v3 5/5] drm/todo: Add entry about implementing buffer age for damage tracking Date: Sun, 19 Nov 2023 11:57:01 +0100 Message-ID: <20231119105709.3143489-6-javierm@redhat.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20231119105709.3143489-1-javierm@redhat.com> References: <20231119105709.3143489-1-javierm@redhat.com> MIME-Version: 1.0 X-Spam-Status: No, score=-0.9 required=5.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on groat.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (groat.vger.email [0.0.0.0]); Sun, 19 Nov 2023 02:58:02 -0800 (PST) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1782989706005475931 X-GMAIL-MSGID: 1782989706005475931 Currently, only damage tracking for frame damage is supported. If a driver needs to do buffer damage (e.g: the framebuffer attached to plane's state has changed since the last page-flip), the damage helpers just fallback to a full plane update. Add en entry in the TODO about implementing buffer age or any other damage accumulation algorithm for buffer damage handling. Suggested-by: Simon Ser Signed-off-by: Javier Martinez Canillas Reviewed-by: Simon Ser Reviewed-by: Thomas Zimmermann --- (no changes since v1) Documentation/gpu/todo.rst | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/Documentation/gpu/todo.rst b/Documentation/gpu/todo.rst index b62c7fa0c2bc..5c43a958814b 100644 --- a/Documentation/gpu/todo.rst +++ b/Documentation/gpu/todo.rst @@ -782,6 +782,26 @@ Contact: Hans de Goede Level: Advanced +Buffer age or other damage accumulation algorithm for buffer damage handling +============================================================================ + +Drivers that do per-buffer uploads, need a buffer damage handling (rather than +frame damage like drivers that do per-plane or per-CRTC uploads), but there is +no support to get the buffer age or any other damage accumulation algorithm. + +For this reason, the damage helpers just fallback to a full plane update if the +framebuffer attached to a plane has changed since the last page-flip. + +This should be improved to get damage tracking properly working on drivers that +do per-buffer uploads. + +More information about damage tracking and references to learning materials in +`Damage Tracking Properties `_ + +Contact: Javier Martinez Canillas + +Level: Advanced + Outside DRM ===========