From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v2] drm/color: Document CTM eqations Date: Wed, 15 Feb 2017 13:39:59 +0200 Message-ID: <20170215113959.GT31595@intel.com> References: <1485859714-26619-1-git-send-email-brian.starkey@arm.com> <20170131151828.GU31595@intel.com> <20170131153928.GB11506@e106950-lin.cambridge.arm.com> <20170131172215.GV31595@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 273376E8D9 for ; Wed, 15 Feb 2017 11:40:04 +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: dri-devel , Linux Kernel Mailing List List-Id: dri-devel@lists.freedesktop.org T24gVHVlLCBKYW4gMzEsIDIwMTcgYXQgMDY6NDY6MzlQTSArMDEwMCwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiBPbiBUdWUsIEphbiAzMSwgMjAxNyBhdCA2OjIyIFBNLCBWaWxsZSBTeXJqw6Rsw6QK PiA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+IHdyb3RlOgo+ID4+ID4+IGRpZmYgLS1n aXQgYS9pbmNsdWRlL3VhcGkvZHJtL2RybV9tb2RlLmggYi9pbmNsdWRlL3VhcGkvZHJtL2RybV9t b2RlLmgKPiA+PiA+PiBpbmRleCBjZTdlZmUyZThhNWUuLjM0MDE2MzdjYWY4ZSAxMDA2NDQKPiA+ PiA+PiAtLS0gYS9pbmNsdWRlL3VhcGkvZHJtL2RybV9tb2RlLmgKPiA+PiA+PiArKysgYi9pbmNs dWRlL3VhcGkvZHJtL2RybV9tb2RlLmgKPiA+PiA+PiBAQCAtNTI1LDcgKzUyNSwxMyBAQCBzdHJ1 Y3QgZHJtX21vZGVfY3J0Y19sdXQgewo+ID4+ID4+ICB9Owo+ID4+ID4+Cj4gPj4gPj4gIHN0cnVj dCBkcm1fY29sb3JfY3RtIHsKPiA+PiA+PiAtICAvKiBDb252ZXJzaW9uIG1hdHJpeCBpbiBTMzEu MzIgZm9ybWF0LiAqLwo+ID4+ID4+ICsgIC8qCj4gPj4gPj4gKyAgICogQ29udmVyc2lvbiBtYXRy aXggaW4gUzMxLjMyIGZvcm1hdCwgaW4gcm93LW1ham9yIGZvcm06Cj4gPj4gPgo+ID4+ID5zMzIu MzIgaXMgaG93IEknZCBzdGF0ZSB0aGF0ICh0byBtYXRjaCB0aGUgcmVndWxhciBzMzIgYW5kIHdo YXRub3QKPiA+PiA+dHlwZXMpLgo+ID4+ID4KPiA+Pgo+ID4+IENhbiB5b3UgZXhwbGFpbiBhIGJp dCBtb3JlIHdoYXQgZXhhY3RseSB5b3UgbWVhbiBieSBzMzIuMzI/IGUuZy4gd2hhdAo+ID4+IHdv dWxkIGJlIHRoZSBiaXRmaWVsZCByZXByZXNlbnRpbmcgdGhlIG1vc3QgbmVnYXRpdmUgbnVtYmVy Pwo+ID4+Cj4gPj4gSSB1bmRlcnN0YW5kIHRoZSBTMzEuMzIgaGVyZSBhcyBhIHNpZ24gKyBtYWdu aXR1ZGUgZm9ybWF0ICh3aGljaCBtYWtlcwo+ID4+IGl0IHJhdGhlciBvZGQgdG8gc3RvcmUgaXQg aW4gYSBzaWduZWQgdmFyaWFibGUsIGJ1dCBuZXZlciBtaW5kKS4gVGhpcwo+ID4+IGFsc28gYXBw ZWFycyB0byBiZSB3aGF0IGlndCBkb2VzIGluIHNldF9jdG0oKSBpbiBrbXNfcGlwZV9jb2xvci5j Ogo+ID4+Cj4gPj4gICAgICAgZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoY3RtLm1hdHJpeCk7 IGkrKykgewo+ID4+ICAgICAgICAgICAgICAgaWYgKGNvZWZmaWNpZW50c1tpXSA8IDApIHsKPiA+ PiAgICAgICAgICAgICAgICAgICAgICAgY3RtLm1hdHJpeFtpXSA9Cj4gPj4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKGludDY0X3QpICgtY29lZmZpY2llbnRzW2ldICogKChpbnQ2NF90 KSAxTCA8PCAzMikpOwo+ID4+ICAgICAgICAgICAgICAgICAgICAgICBjdG0ubWF0cml4W2ldIHw9 IDFVTEwgPDwgNjM7Cj4gPj4gICAgICAgICAgICAgICB9IGVsc2UKPiA+PiAgICAgICAgICAgICAg ICAgICAgICAgY3RtLm1hdHJpeFtpXSA9Cj4gPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKGludDY0X3QpIChjb2VmZmljaWVudHNbaV0gKiAoKGludDY0X3QpIDFMIDw8IDMyKSk7Cj4g Pj4gICAgICAgfQo+ID4+Cj4gPj4gSWYgdGhhdCdzIHdoYXQgeW91IG1lYW50IGFzIHdlbGwsIHRo ZW4gSSBkb24ndCB0aGluayBzMzIuMzIgaXMgYSBnb29kCj4gPj4gd2F5IHRvIGRlc2NyaWJlIGl0 LCBiZWNhdXNlIHRoZSBpbnRlZ2VyIHBhcnQgaGFzIG9ubHkgMzEgYml0cwo+ID4+IGF2YWlsYWJs ZS4KPiA+Pgo+ID4+IElmIHlvdSBtZWFudCBhIHJlZ3VsYXIgdHdvJ3MtY29tcGxlbWVudCBmaXhl ZC1wb2ludCBudW1iZXIsIHdoZXJlIHRoZQo+ID4+IG1vc3QgbmVnYXRpdmUgbnVtYmVyIHdvdWxk IGJlIDB4MTAwMDAwMDAuMDAwMDAwMDAsIHRoZW4geWVhaCB0aGF0J3MKPiA+PiB3aGF0IEkgdGhv dWdodCBpdCBtZWFudCB0b28gb3JpZ2luYWxseS4gQ2xhcmlmeWluZyB0aGUgZG9jcyBoZXJlCj4g Pj4gc291bmRzIGxpa2UgYSBncmVhdCBwbGFuLgo+ID4+Cj4gPj4gSSBndWVzcyB0aGUgaWd0IGlt cGxlbWVudGF0aW9uIG1lYW5zIHRoYXQgaXQncyBhIHNpZ24gKyBtYWduaXR1ZGUKPiA+PiBudW1i ZXIsIGFuZCB0aGUgZmFjdCB0aGF0IGl0J3Mgc3RvcmVkIGluIGFuIHM2NCBpcyBhIGJpemFycmUg cXVpcmsKPiA+PiB0aGF0IHdlIGp1c3QgbGl2ZSB3aXRoLgo+ID4KPiA+IEhtbS4gVHdvJ3MgY29t cGxlbWVudCBpcyB3aGF0IEkgd2FzIHRoaW5raW5nIGl0IGlzLiBXaGljaCBzaG93cyB0aGF0Cj4g PiBJIG5ldmVyIG1hbmFnZWQgdG8gcmVhZCB0aGUgY29kZSBpbiBhbnkgZGV0YWlsLiBEZWZpbml0 ZWx5IG5lZWRzIHRvCj4gPiBiZSBkb2N1bWVudGVkIHByb3Blcmx5Lgo+IAo+IFRoYXQgc291bmRz IHN1cHJlbWVseSBiYWNrd2FyZHMuIEkgZ3Vlc3Mgd2UgY2FuJ3QgZml4IHRoaXMgYW55bW9yZT8K CkkgaGF2ZSBubyBpZGVhLiBBbnlvbmUgZWxzZT8KCi0tIApWaWxsZSBTeXJqw6Rsw6QKSW50ZWwg T1RDCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1k ZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752193AbdBOLkL (ORCPT ); Wed, 15 Feb 2017 06:40:11 -0500 Received: from mga02.intel.com ([134.134.136.20]:32645 "EHLO mga02.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751600AbdBOLkK (ORCPT ); Wed, 15 Feb 2017 06:40:10 -0500 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.35,165,1484035200"; d="scan'208";a="1126920912" Date: Wed, 15 Feb 2017 13:39:59 +0200 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= To: Daniel Vetter Cc: Brian Starkey , dri-devel , Linux Kernel Mailing List , Jani Nikula , Sean Paul , Lionel Landwerlin Subject: Re: [PATCH v2] drm/color: Document CTM eqations Message-ID: <20170215113959.GT31595@intel.com> References: <1485859714-26619-1-git-send-email-brian.starkey@arm.com> <20170131151828.GU31595@intel.com> <20170131153928.GB11506@e106950-lin.cambridge.arm.com> <20170131172215.GV31595@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: User-Agent: Mutt/1.5.24 (2015-08-30) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Jan 31, 2017 at 06:46:39PM +0100, Daniel Vetter wrote: > On Tue, Jan 31, 2017 at 6:22 PM, Ville Syrjälä > wrote: > >> >> diff --git a/include/uapi/drm/drm_mode.h b/include/uapi/drm/drm_mode.h > >> >> index ce7efe2e8a5e..3401637caf8e 100644 > >> >> --- a/include/uapi/drm/drm_mode.h > >> >> +++ b/include/uapi/drm/drm_mode.h > >> >> @@ -525,7 +525,13 @@ struct drm_mode_crtc_lut { > >> >> }; > >> >> > >> >> struct drm_color_ctm { > >> >> - /* Conversion matrix in S31.32 format. */ > >> >> + /* > >> >> + * Conversion matrix in S31.32 format, in row-major form: > >> > > >> >s32.32 is how I'd state that (to match the regular s32 and whatnot > >> >types). > >> > > >> > >> Can you explain a bit more what exactly you mean by s32.32? e.g. what > >> would be the bitfield representing the most negative number? > >> > >> I understand the S31.32 here as a sign + magnitude format (which makes > >> it rather odd to store it in a signed variable, but never mind). This > >> also appears to be what igt does in set_ctm() in kms_pipe_color.c: > >> > >> for (i = 0; i < ARRAY_SIZE(ctm.matrix); i++) { > >> if (coefficients[i] < 0) { > >> ctm.matrix[i] = > >> (int64_t) (-coefficients[i] * ((int64_t) 1L << 32)); > >> ctm.matrix[i] |= 1ULL << 63; > >> } else > >> ctm.matrix[i] = > >> (int64_t) (coefficients[i] * ((int64_t) 1L << 32)); > >> } > >> > >> If that's what you meant as well, then I don't think s32.32 is a good > >> way to describe it, because the integer part has only 31 bits > >> available. > >> > >> If you meant a regular two's-complement fixed-point number, where the > >> most negative number would be 0x10000000.00000000, then yeah that's > >> what I thought it meant too originally. Clarifying the docs here > >> sounds like a great plan. > >> > >> I guess the igt implementation means that it's a sign + magnitude > >> number, and the fact that it's stored in an s64 is a bizarre quirk > >> that we just live with. > > > > Hmm. Two's complement is what I was thinking it is. Which shows that > > I never managed to read the code in any detail. Definitely needs to > > be documented properly. > > That sounds supremely backwards. I guess we can't fix this anymore? I have no idea. Anyone else? -- Ville Syrjälä Intel OTC