From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH] drm: Don't force all planes to be added to the state due to zpos Date: Mon, 10 Oct 2016 16:32:29 +0300 Message-ID: <20161010133229.GG4329@intel.com> References: <1476101987-31986-1-git-send-email-ville.syrjala@linux.intel.com> <20161010125643.GE4329@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8D20E6E226 for ; Mon, 10 Oct 2016 13:32:34 +0000 (UTC) Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Daniel Vetter Cc: Seung-Woo Kim , stable , Kyungmin Park , dri-devel , Lyude , Marek Szyprowski , Vincent Abriou , Laurent Pinchart List-Id: dri-devel@lists.freedesktop.org T24gTW9uLCBPY3QgMTAsIDIwMTYgYXQgMDM6MTQ6MjJQTSArMDIwMCwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiBPbiBNb24sIE9jdCAxMCwgMjAxNiBhdCAyOjU2IFBNLCBWaWxsZSBTeXJqw6Rsw6QK PiA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+IHdyb3RlOgo+ID4+IEkgdGhpbmsgdGhl Cj4gPj4gcHJvcGVyIHdheSBpcyB0byBrZWVwIHRyYWNrIG9mIGEgcGVyLXBsYW5lIHpwb3MgY2hh bmdlZCAob3IgY29tcHV0ZQo+ID4+IHRoYXQgYWQtaG9jLCB3ZSBoYXZlIGJvdGggc3RhdGVzKS4g QW5kIG9ubHkgZ3JhYiBtb3JlIHBsYW5lcyBpZiBhIHpwb3MKPiA+PiB2YWx1ZSBjaGFuZ2VkLgo+ ID4KPiA+IERvZXNuJ3Qgd29yayB3aXRoIG5vcm1hbGl6ZWQgenBvcy4gVGhlIHBsYW5lJ3MgYWN0 dWFsIHpwb3MgbWF5IGJlCj4gPiB1bmNoYW5nZWQgZXZlbiBpZiB0aGUgbm9ybWFsaXplZCB6cG9z IGNoYW5nZXMuCj4gCj4gV2VsbCBJIG1lYW50IHRvIGRvIGEgZmlyc3QgbG9vcCB0byBjaGVjayBm b3IgYW55IHpwb3MgY2hhbmdlcywgYW5kCj4gb25seSB0aGVuIGFkZCBhbGwgdGhlIHBsYW5lcy4g SWYgbm8gb25lIHRvdWNoZWQgenBvcywgdGhlbiBhbHNvIG5vCj4gbm9ybWFsaXplZCB6cG9zIGNh biBjaGFuZ2UuIEkgdGhpbmsgYXQgbGVhc3QgLi4uIE9yIHdoYXQgYW0gSSBtaXNzaW5nPwoKRW5h YmxpbmcgcGxhbmVzIGNhbiBjaGFuZ2UgenBvcy4gV2hpY2ggaXMgd2hhdCdzIGN1cnJlbnRseSBj YXVzaW5nIGFsbAp0aGUgcGxhbmVzIHRvIGJlIGFkZGVkIHRvIHRoZSBzdGF0ZSBldmVyeSB0aW1l IHRoZSBjdXJzb3IgaXMKZW5hYmxlZC9kaXNhYmxlZCBvbiBpOTE1LiBXaGljaCBpc24ndCBuaWNl LgoKQW5kIGFueXdheSBhZGRpbmcgYWxsIHRoZSBwbGFuZXMgdG8gdGhlIHN0YXRlIHdoZW4gc29t ZSB6cG9zIGNoYW5nZQpoYXBwZW5zIGlzIGVudGlyZWx5IHBvaW50bGVzcyBvbiBpOTE1LiBUaGVy ZSdzIG5vIG5lZWQgdG8gcnVuIHRocm91Z2gKYW55IG9mIC5jaGVja19wbGFuZSgpIGhvb2tzIGlu IHRoaXMgY2FzZS4gVGhlIG9ubHkgdGhpbmcgd2UgbmVlZCB0bwpkbyBpcyByZXdyaXRlIHRoZSBz cHJpdGUgY29udHJvbCByZWdpc3RlcnMgKCsgYmFzZSBhZGRyZXNzZXMgb2YgY291cnNlCnRvIGFy bSB0aGUgdXBkYXRlKS4gU28gd2UgY291bGQganVzdCBhZGQgdGhlIHNwcml0ZSBwbGFuZXMgdG8g c3RhdGUKYWZ0ZXIgdGhlIC5jaGVja19wbGFuZSgpIHN0dWZmIGhhcyBiZWVuIGRvbmUgc28gdGhh dCB3ZSdsbCBqdXN0IGdldCB0aGUKLmNvbW1pdF9wbGFuZSgpLiBTbyBrbm93aW5nIHNvbWVodGlu ZyBhYm91dCB0aGUgaGFyZHdhcmUgYWxsb3dzIHVzIHRvCmRvIGEgbXVjaCBiZXR0ZXIgam9iIG9m IHRoaXMuCgotLSAKVmlsbGUgU3lyasOkbMOkCkludGVsIE9UQwpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1k ZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga05.intel.com ([192.55.52.43]:2636 "EHLO mga05.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752210AbcJJNc7 (ORCPT ); Mon, 10 Oct 2016 09:32:59 -0400 Date: Mon, 10 Oct 2016 16:32:29 +0300 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= To: Daniel Vetter Cc: dri-devel , Seung-Woo Kim , stable , Kyungmin Park , Laurent Pinchart , Lyude , Vincent Abriou , Marek Szyprowski Subject: Re: [PATCH] drm: Don't force all planes to be added to the state due to zpos Message-ID: <20161010133229.GG4329@intel.com> References: <1476101987-31986-1-git-send-email-ville.syrjala@linux.intel.com> <20161010125643.GE4329@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: Sender: stable-owner@vger.kernel.org List-ID: On Mon, Oct 10, 2016 at 03:14:22PM +0200, Daniel Vetter wrote: > On Mon, Oct 10, 2016 at 2:56 PM, Ville Syrj�l� > wrote: > >> I think the > >> proper way is to keep track of a per-plane zpos changed (or compute > >> that ad-hoc, we have both states). And only grab more planes if a zpos > >> value changed. > > > > Doesn't work with normalized zpos. The plane's actual zpos may be > > unchanged even if the normalized zpos changes. > > Well I meant to do a first loop to check for any zpos changes, and > only then add all the planes. If no one touched zpos, then also no > normalized zpos can change. I think at least ... Or what am I missing? Enabling planes can change zpos. Which is what's currently causing all the planes to be added to the state every time the cursor is enabled/disabled on i915. Which isn't nice. And anyway adding all the planes to the state when some zpos change happens is entirely pointless on i915. There's no need to run through any of .check_plane() hooks in this case. The only thing we need to do is rewrite the sprite control registers (+ base addresses of course to arm the update). So we could just add the sprite planes to state after the .check_plane() stuff has been done so that we'll just get the .commit_plane(). So knowing somehting about the hardware allows us to do a much better job of this. -- Ville Syrj�l� Intel OTC