From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752774AbeDEAGB (ORCPT ); Wed, 4 Apr 2018 20:06:01 -0400 Received: from ex13-edg-ou-002.vmware.com ([208.91.0.190]:58452 "EHLO EX13-EDG-OU-002.vmware.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752311AbeDEAGA (ORCPT ); Wed, 4 Apr 2018 20:06:00 -0400 From: Deepak Rawat To: , , CC: , , , , , , , , , , , Deepak Rawat Subject: [RFC 0/3] drm: page-flip with damage Date: Wed, 4 Apr 2018 16:49:05 -0700 Message-ID: <1522885748-67122-1-git-send-email-drawat@vmware.com> X-Mailer: git-send-email 2.7.4 MIME-Version: 1.0 Content-Type: text/plain Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi All, This is extension to Lukasz Spintzyk earlier draft of damage interface for drm. Bascially a new plane property is added called "DAMAGE_CLIPS" which is simply an array of drm_rect (exported to userspace as drm_mode_rect). The clips represents damage in framebuffer coordinate of attached fb to the plane. Helper iterator is added to traverse the damage rectangles and get the damage clips in framebuffer, plane or crtc coordinates as need by driver implementation. Finally a helper to reset damage in case need full update is required. Drivers interested in page-flip with damage should call this from atomic_check hook. With the RFC for atomic implementation of dirtyfb ioctl I was thinking should we need to consider dirty_fb flags, especially DRM_MODE_FB_DIRTY_ANNOTATE_COPY to be passed with atomic DAMAGE_CLIPS property blob? I didn't considered that untill now. If no driver uses that in my opinion for simplicity this can be ignored? About overlaping of damage rectangles is also not finalized. This really depends on driver specific implementation and can be left open-ended? My knowledge is limited to vmwgfx so would like to hear about other driver use cases and this can be modified in keeping other drivers need. Going forward driver implementation for vmwgfx and user-space implementation of kmscube/weston will be next step to test the changes. Thanks, Deepak Deepak Rawat (2): drm: Add helper iterator functions to iterate over plane damage. drm: Add helper to validate damage during modeset_check Lukasz Spintzyk (1): drm: Add DAMAGE_CLIPS property to plane drivers/gpu/drm/drm_atomic.c | 42 +++++++++ drivers/gpu/drm/drm_atomic_helper.c | 173 ++++++++++++++++++++++++++++++++++++ drivers/gpu/drm/drm_mode_config.c | 5 ++ drivers/gpu/drm/drm_plane.c | 12 +++ include/drm/drm_atomic_helper.h | 41 +++++++++ include/drm/drm_mode_config.h | 15 ++++ include/drm/drm_plane.h | 16 ++++ include/uapi/drm/drm_mode.h | 15 ++++ 8 files changed, 319 insertions(+) -- 2.7.4 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Deepak Rawat Subject: [RFC 0/3] drm: page-flip with damage Date: Wed, 4 Apr 2018 16:49:05 -0700 Message-ID: <1522885748-67122-1-git-send-email-drawat@vmware.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from EX13-EDG-OU-002.vmware.com (ex13-edg-ou-002.vmware.com [208.91.0.190]) by gabe.freedesktop.org (Postfix) with ESMTPS id 07F9C6E654 for ; Wed, 4 Apr 2018 23:51:00 +0000 (UTC) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org, thellstrom@vmware.com, syeh@vmware.com Cc: airlied@linux.ie, linux-kernel@vger.kernel.org, linux-graphics-maintainer@vmware.com, Deepak Rawat , lukasz.spintzyk@displaylink.com List-Id: dri-devel@lists.freedesktop.org SGkgQWxsLAoKVGhpcyBpcyBleHRlbnNpb24gdG8gTHVrYXN6IFNwaW50enlrIGVhcmxpZXIgZHJh ZnQgb2YgZGFtYWdlIGludGVyZmFjZSBmb3IgZHJtLgpCYXNjaWFsbHkgYSBuZXcgcGxhbmUgcHJv cGVydHkgaXMgYWRkZWQgY2FsbGVkICJEQU1BR0VfQ0xJUFMiIHdoaWNoIGlzIHNpbXBseQphbiBh cnJheSBvZiBkcm1fcmVjdCAoZXhwb3J0ZWQgdG8gdXNlcnNwYWNlIGFzIGRybV9tb2RlX3JlY3Qp LiBUaGUgY2xpcHMKcmVwcmVzZW50cyBkYW1hZ2UgaW4gZnJhbWVidWZmZXIgY29vcmRpbmF0ZSBv ZiBhdHRhY2hlZCBmYiB0byB0aGUgcGxhbmUuCgpIZWxwZXIgaXRlcmF0b3IgaXMgYWRkZWQgdG8g dHJhdmVyc2UgdGhlIGRhbWFnZSByZWN0YW5nbGVzIGFuZCBnZXQgdGhlIGRhbWFnZQpjbGlwcyBp biBmcmFtZWJ1ZmZlciwgcGxhbmUgb3IgY3J0YyBjb29yZGluYXRlcyBhcyBuZWVkIGJ5IGRyaXZl cgppbXBsZW1lbnRhdGlvbi4gRmluYWxseSBhIGhlbHBlciB0byByZXNldCBkYW1hZ2UgaW4gY2Fz ZSBuZWVkIGZ1bGwgdXBkYXRlIGlzCnJlcXVpcmVkLiBEcml2ZXJzIGludGVyZXN0ZWQgaW4gcGFn ZS1mbGlwIHdpdGggZGFtYWdlIHNob3VsZCBjYWxsIHRoaXMgZnJvbQphdG9taWNfY2hlY2sgaG9v ay4KCldpdGggdGhlIFJGQyBmb3IgYXRvbWljIGltcGxlbWVudGF0aW9uIG9mIGRpcnR5ZmIgaW9j dGwgSSB3YXMgdGhpbmtpbmcKc2hvdWxkIHdlIG5lZWQgdG8gY29uc2lkZXIgZGlydHlfZmIgZmxh Z3MsIGVzcGVjaWFsbHkKRFJNX01PREVfRkJfRElSVFlfQU5OT1RBVEVfQ09QWSB0byBiZSBwYXNz ZWQgd2l0aCBhdG9taWMKREFNQUdFX0NMSVBTIHByb3BlcnR5IGJsb2I/IEkgZGlkbid0IGNvbnNp ZGVyZWQgdGhhdCB1bnRpbGwgbm93LiBJZiBubyBkcml2ZXIKdXNlcyB0aGF0IGluIG15IG9waW5p b24gZm9yIHNpbXBsaWNpdHkgdGhpcyBjYW4gYmUgaWdub3JlZD8KCkFib3V0IG92ZXJsYXBpbmcg b2YgZGFtYWdlIHJlY3RhbmdsZXMgaXMgYWxzbyBub3QgZmluYWxpemVkLiBUaGlzIHJlYWxseQpk ZXBlbmRzIG9uIGRyaXZlciBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbiBhbmQgY2FuIGJlIGxlZnQg b3Blbi1lbmRlZD8KCk15IGtub3dsZWRnZSBpcyBsaW1pdGVkIHRvIHZtd2dmeCBzbyB3b3VsZCBs aWtlIHRvIGhlYXIgYWJvdXQgb3RoZXIgZHJpdmVyIHVzZQpjYXNlcyBhbmQgdGhpcyBjYW4gYmUg bW9kaWZpZWQgaW4ga2VlcGluZyBvdGhlciBkcml2ZXJzIG5lZWQuCgpHb2luZyBmb3J3YXJkIGRy aXZlciBpbXBsZW1lbnRhdGlvbiBmb3Igdm13Z2Z4IGFuZCB1c2VyLXNwYWNlIGltcGxlbWVudGF0 aW9uCm9mIGttc2N1YmUvd2VzdG9uIHdpbGwgYmUgbmV4dCBzdGVwIHRvIHRlc3QgdGhlIGNoYW5n ZXMuCgpUaGFua3MsCkRlZXBhawoKRGVlcGFrIFJhd2F0ICgyKToKICBkcm06IEFkZCBoZWxwZXIg aXRlcmF0b3IgZnVuY3Rpb25zIHRvIGl0ZXJhdGUgb3ZlciBwbGFuZSBkYW1hZ2UuCiAgZHJtOiBB ZGQgaGVscGVyIHRvIHZhbGlkYXRlIGRhbWFnZSBkdXJpbmcgbW9kZXNldF9jaGVjawoKTHVrYXN6 IFNwaW50enlrICgxKToKICBkcm06IEFkZCBEQU1BR0VfQ0xJUFMgcHJvcGVydHkgdG8gcGxhbmUK CiBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jICAgICAgICB8ICA0MiArKysrKysrKysKIGRy aXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jIHwgMTczICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL2RybV9tb2RlX2NvbmZpZy5jICAg fCAgIDUgKysKIGRyaXZlcnMvZ3B1L2RybS9kcm1fcGxhbmUuYyAgICAgICAgIHwgIDEyICsrKwog aW5jbHVkZS9kcm0vZHJtX2F0b21pY19oZWxwZXIuaCAgICAgfCAgNDEgKysrKysrKysrCiBpbmNs dWRlL2RybS9kcm1fbW9kZV9jb25maWcuaCAgICAgICB8ICAxNSArKysrCiBpbmNsdWRlL2RybS9k cm1fcGxhbmUuaCAgICAgICAgICAgICB8ICAxNiArKysrCiBpbmNsdWRlL3VhcGkvZHJtL2RybV9t b2RlLmggICAgICAgICB8ICAxNSArKysrCiA4IGZpbGVzIGNoYW5nZWQsIDMxOSBpbnNlcnRpb25z KCspCgotLSAKMi43LjQKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1k ZXZlbAo=