From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 2/3] drm/rect: Handle rounding errors in drm_rect_clip_scaled Date: Thu, 26 Apr 2018 15:32:05 +0200 Message-ID: <20180426133205.GB12521@phenom.ffwll.local> References: <20180426082821.11129-1-maarten.lankhorst@linux.intel.com> <20180426082821.11129-2-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20180426082821.11129-2-maarten.lankhorst@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Maarten Lankhorst Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gVGh1LCBBcHIgMjYsIDIwMTggYXQgMTA6Mjg6MjBBTSArMDIwMCwgTWFhcnRlbiBMYW5raG9y c3Qgd3JvdGU6Cj4gTm8gbWF0dGVyIGhvdyB5b3UgcGVyZm9ybSB0aGUgY2xpcCBhZGp1c3RtZW50 cywgYSBzbWFsbAo+IGVycm9yIG1heSBwdXNoIHRoZSBzY2FsaW5nIGZhY3RvciB0byB0aGUgb3Ro ZXIgc2lkZSBvZgo+IDB4MTAwMDAuIFNvbHZlIHRoaXMgd2l0aCBhIG1hY3JvIHRoYXQgd2lsbCBm aXh1cCB0aGUKPiBzY2FsZSB0byAweDEwMDAwIGlmIHdlIGFjY2lkZW50YWxseSB3cmFwIHRvIHRo ZSBvdGhlciBzaWRlLgo+IAo+IFNpZ25lZC1vZmYtYnk6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFy dGVuLmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb20+CgpJIHRoaW5rIHRoaXMgYW5kIHRoZSBwcmV2 aW91cyBwYXRjaCBhcmUgcGVyZmVjdCBjYW5kaWRhdGVzIGZvciBpbi1rZXJuZWwKc2VsZnRlc3Rz LiBDYW4gSSB2b2x1bnRlZXIgeW91IHRvIGdldCB0aG9zZSBzdGFydGVkIGZvciB0aGUga21zIHNp ZGU/IFdlCmFscmVhZHkgaGF2ZSBhIGRybV9tbSBzZWxmdGVzdCwgYnV0IEkgdGhpbmsgc3BsaXR0 aW5nIHRoaW5ncyBhIGJpdCBtaWdodApiZSB1c2VmdWwuCgpPciB3ZSByZW5hbWUgdGhhdCBvbmUg YW5kIGp1c3Qgc3R1ZmYgYWxsIHRoZSBrbXMgdGVzdHMgaW4gdGhlcmUsIGR1bm5vLgotRGFuaWVs Cgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX3JlY3QuYyB8IDY1ICsrKysrKysrKysrKysr KysrKysrKysrKysrKy0tLS0tLS0tLS0tCj4gIDEgZmlsZSBjaGFuZ2VkLCA0NyBpbnNlcnRpb25z KCspLCAxOCBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2Ry bV9yZWN0LmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3JlY3QuYwo+IGluZGV4IGIxNzljN2M3M2Nj NS4uNzFiNmI3ZjVkNThmIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fcmVjdC5j Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9yZWN0LmMKPiBAQCAtNTAsNiArNTAsMjQgQEAg Ym9vbCBkcm1fcmVjdF9pbnRlcnNlY3Qoc3RydWN0IGRybV9yZWN0ICpyMSwgY29uc3Qgc3RydWN0 IGRybV9yZWN0ICpyMikKPiAgfQo+ICBFWFBPUlRfU1lNQk9MKGRybV9yZWN0X2ludGVyc2VjdCk7 Cj4gIAo+ICtzdGF0aWMgaW50IGRybV9jYWxjX3NjYWxlKGludCBzcmMsIGludCBkc3QpCj4gK3sK PiArCWludCBzY2FsZSA9IDA7Cj4gKwo+ICsJaWYgKFdBUk5fT04oc3JjIDwgMCB8fCBkc3QgPCAw KSkKPiArCQlyZXR1cm4gLUVJTlZBTDsKPiArCj4gKwlpZiAoZHN0ID09IDApCj4gKwkJcmV0dXJu IDA7Cj4gKwo+ICsJaWYgKHNyYyA+IChkc3QgPDwgMTYpKQo+ICsJCXJldHVybiBESVZfUk9VTkRf VVAoc3JjLCBkc3QpOwo+ICsJZWxzZQo+ICsJCXNjYWxlID0gc3JjIC8gZHN0Owo+ICsKPiArCXJl dHVybiBzY2FsZTsKPiArfQo+ICsKPiAgLyoqCj4gICAqIGRybV9yZWN0X2NsaXBfc2NhbGVkIC0g cGVyZm9ybSBhIHNjYWxlZCBjbGlwIG9wZXJhdGlvbgo+ICAgKiBAc3JjOiBzb3VyY2Ugd2luZG93 IHJlY3RhbmdsZQo+IEBAIC03MSw0OSArODksNjAgQEAgYm9vbCBkcm1fcmVjdF9jbGlwX3NjYWxl ZChzdHJ1Y3QgZHJtX3JlY3QgKnNyYywgc3RydWN0IGRybV9yZWN0ICpkc3QsCj4gIHsKPiAgCWlu dCBkaWZmOwo+ICAKPiArCS8qCj4gKwkgKiBXaGVuIHNjYWxlIGlzIG5lYXIgMHgxMDAwMCByb3Vu ZGluZyBlcnJvcnMgbWF5IGNhdXNlIHRoZSBzY2FsaW5nCj4gKwkgKiBmYWN0b3IgdG8gdGhlIG90 aGVyIHNpZGUuIFNvbWUgaGFyZHdhcmUgbWF5IHN1cHBvcnQKPiArCSAqIHVwc2FtcGxpbmcsIGJ1 dCBub3QgZG93bnNhbXBsaW5nLCBhbmQgdGhhdCB3b3VsZCBicmVhayB3aGVuCj4gKwkgKiByb3Vu ZGluZy4KPiArCSAqLwo+ICsjZGVmaW5lIEZJWFVQKG9sZHNjYWxlLCBmbiwgbSwgc2Vjb25kKSBk byB7IFwKPiArCWlmIChvbGRzY2FsZSAhPSAxIDw8IDE2KSB7IFwKPiArCQlpbnQgbmV3c2NhbGUg PSBkcm1fY2FsY19zY2FsZShmbihzcmMpLCBmbihkc3QpKTsgXAo+ICsgXAo+ICsJCWlmIChuZXdz Y2FsZSA8IDApIFwKPiArCQkJcmV0dXJuIGZhbHNlOyBcCj4gKyBcCj4gKwkJaWYgKChvbGRzY2Fs ZSA8IDB4MTAwMDApICE9IChuZXdzY2FsZSA8IDB4MTAwMDApKSB7IFwKPiArCQkJaWYgKCFzZWNv bmQpIFwKPiArCQkJCXNyYy0+bSMjMSA9IHNyYy0+bSMjMiAtICgoZm4oZHN0KSAtIGRpZmYpIDw8 IDE2KTsgXAo+ICsJCQllbHNlIFwKPiArCQkJCXNyYy0+bSMjMiA9IHNyYy0+bSMjMSArICgoZm4o ZHN0KSAtIGRpZmYpIDw8IDE2KTsgXAo+ICsJCX0gXAo+ICsJfSBcCj4gKyB9IHdoaWxlICgwKQo+ ICsKPiAgCWRpZmYgPSBjbGlwLT54MSAtIGRzdC0+eDE7Cj4gIAlpZiAoZGlmZiA+IDApIHsKPiAg CQlpbnQ2NF90IHRtcCA9IHNyYy0+eDEgKyAoaW50NjRfdCkgZGlmZiAqIGhzY2FsZTsKPiAgCQlz cmMtPngxID0gY2xhbXBfdChpbnQ2NF90LCB0bXAsIElOVF9NSU4sIElOVF9NQVgpOwo+ICsJCUZJ WFVQKGhzY2FsZSwgZHJtX3JlY3Rfd2lkdGgsIHgsIDApOwo+ICAJfQo+ICsKPiAgCWRpZmYgPSBj bGlwLT55MSAtIGRzdC0+eTE7Cj4gIAlpZiAoZGlmZiA+IDApIHsKPiAgCQlpbnQ2NF90IHRtcCA9 IHNyYy0+eTEgKyAoaW50NjRfdCkgZGlmZiAqIHZzY2FsZTsKPiAgCQlzcmMtPnkxID0gY2xhbXBf dChpbnQ2NF90LCB0bXAsIElOVF9NSU4sIElOVF9NQVgpOwo+ICsJCUZJWFVQKHZzY2FsZSwgZHJt X3JlY3RfaGVpZ2h0LCB5LCAwKTsKPiAgCX0KPiArCj4gIAlkaWZmID0gZHN0LT54MiAtIGNsaXAt PngyOwo+ICAJaWYgKGRpZmYgPiAwKSB7Cj4gIAkJaW50NjRfdCB0bXAgPSBzcmMtPngyIC0gKGlu dDY0X3QpIGRpZmYgKiBoc2NhbGU7Cj4gIAkJc3JjLT54MiA9IGNsYW1wX3QoaW50NjRfdCwgdG1w LCBJTlRfTUlOLCBJTlRfTUFYKTsKPiArCQlGSVhVUChoc2NhbGUsIGRybV9yZWN0X3dpZHRoLCB4 LCAxKTsKPiAgCX0KPiAgCWRpZmYgPSBkc3QtPnkyIC0gY2xpcC0+eTI7Cj4gIAlpZiAoZGlmZiA+ IDApIHsKPiAgCQlpbnQ2NF90IHRtcCA9IHNyYy0+eTIgLSAoaW50NjRfdCkgZGlmZiAqIHZzY2Fs ZTsKPiAgCQlzcmMtPnkyID0gY2xhbXBfdChpbnQ2NF90LCB0bXAsIElOVF9NSU4sIElOVF9NQVgp Owo+ICsJCUZJWFVQKHZzY2FsZSwgZHJtX3JlY3RfaGVpZ2h0LCB5LCAxKTsKPiAgCX0KPiArI3Vu ZGVmIEZJWFVQCj4gIAo+ICAJcmV0dXJuIGRybV9yZWN0X2ludGVyc2VjdChkc3QsIGNsaXApOwo+ ICB9Cj4gIEVYUE9SVF9TWU1CT0woZHJtX3JlY3RfY2xpcF9zY2FsZWQpOwo+ICAKPiAtc3RhdGlj IGludCBkcm1fY2FsY19zY2FsZShpbnQgc3JjLCBpbnQgZHN0KQo+IC17Cj4gLQlpbnQgc2NhbGUg PSAwOwo+IC0KPiAtCWlmIChXQVJOX09OKHNyYyA8IDAgfHwgZHN0IDwgMCkpCj4gLQkJcmV0dXJu IC1FSU5WQUw7Cj4gLQo+IC0JaWYgKGRzdCA9PSAwKQo+IC0JCXJldHVybiAwOwo+IC0KPiAtCWlm IChzcmMgPiAoZHN0IDw8IDE2KSkKPiAtCQlyZXR1cm4gRElWX1JPVU5EX1VQKHNyYywgZHN0KTsK PiAtCWVsc2UKPiAtCQlzY2FsZSA9IHNyYyAvIGRzdDsKPiAtCj4gLQlyZXR1cm4gc2NhbGU7Cj4g LX0KPiAtCj4gIC8qKgo+ICAgKiBkcm1fcmVjdF9jYWxjX2hzY2FsZSAtIGNhbGN1bGF0ZSB0aGUg aG9yaXpvbnRhbCBzY2FsaW5nIGZhY3Rvcgo+ICAgKiBAc3JjOiBzb3VyY2Ugd2luZG93IHJlY3Rh bmdsZQo+IC0tIAo+IDIuMTcuMAo+IAo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCj4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+IEludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ludGVsLWdmeAoKLS0gCkRhbmllbCBWZXR0ZXIKU29mdHdhcmUgRW5naW5lZXIs IEludGVsIENvcnBvcmF0aW9uCmh0dHA6Ly9ibG9nLmZmd2xsLmNoCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50 ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=